@ -1207,6 +1207,12 @@ static UniValue ProcessImport(CWallet * const pwallet, const UniValue& data, con
throw JSONRPCError ( RPC_INVALID_PARAMETER , " Internal addresses should not have a label " ) ;
}
const std : : string & label = data . exists ( " label " ) ? data [ " label " ] . get_str ( ) : " " ;
const bool add_keypool = data . exists ( " keypool " ) ? data [ " keypool " ] . get_bool ( ) : false ;
// Add to keypool only works with privkeys disabled
if ( add_keypool & & ! pwallet - > IsWalletFlagSet ( WALLET_FLAG_DISABLE_PRIVATE_KEYS ) ) {
throw JSONRPCError ( RPC_INVALID_PARAMETER , " Keys can only be imported to the keypool when private keys are disabled " ) ;
}
ImportData import_data ;
std : : map < CKeyID , CPubKey > pubkey_map ;
@ -1267,6 +1273,11 @@ static UniValue ProcessImport(CWallet * const pwallet, const UniValue& data, con
pwallet - > AddKeyOrigin ( pubkey , key_orig_it - > second ) ;
}
pwallet - > mapKeyMetadata [ id ] . nCreateTime = timestamp ;
// Add to keypool only works with pubkeys
if ( add_keypool ) {
pwallet - > AddKeypoolPubkey ( pubkey , internal ) ;
}
}
for ( const CScript & script : script_pub_keys ) {