|
|
@ -262,6 +262,11 @@ UniValue importaddress(const JSONRPCRequest& request) |
|
|
|
if (fRescan && fPruneMode) |
|
|
|
if (fRescan && fPruneMode) |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Rescan is disabled in pruned mode"); |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Rescan is disabled in pruned mode"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WalletRescanReserver reserver(pwallet); |
|
|
|
|
|
|
|
if (fRescan && !reserver.reserve()) { |
|
|
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet is currently rescanning. Abort existing rescan or wait."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Whether to import a p2sh version, too
|
|
|
|
// Whether to import a p2sh version, too
|
|
|
|
bool fP2SH = false; |
|
|
|
bool fP2SH = false; |
|
|
|
if (!request.params[3].isNull()) |
|
|
|
if (!request.params[3].isNull()) |
|
|
@ -429,6 +434,11 @@ UniValue importpubkey(const JSONRPCRequest& request) |
|
|
|
if (fRescan && fPruneMode) |
|
|
|
if (fRescan && fPruneMode) |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Rescan is disabled in pruned mode"); |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Rescan is disabled in pruned mode"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WalletRescanReserver reserver(pwallet); |
|
|
|
|
|
|
|
if (fRescan && !reserver.reserve()) { |
|
|
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet is currently rescanning. Abort existing rescan or wait."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!IsHex(request.params[0].get_str())) |
|
|
|
if (!IsHex(request.params[0].get_str())) |
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string"); |
|
|
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string"); |
|
|
|
std::vector<unsigned char> data(ParseHex(request.params[0].get_str())); |
|
|
|
std::vector<unsigned char> data(ParseHex(request.params[0].get_str())); |
|
|
@ -480,6 +490,11 @@ UniValue importwallet(const JSONRPCRequest& request) |
|
|
|
if (fPruneMode) |
|
|
|
if (fPruneMode) |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Importing wallets is disabled in pruned mode"); |
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Importing wallets is disabled in pruned mode"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WalletRescanReserver reserver(pwallet); |
|
|
|
|
|
|
|
if (!reserver.reserve()) { |
|
|
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet is currently rescanning. Abort existing rescan or wait."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int64_t nTimeBegin = 0; |
|
|
|
int64_t nTimeBegin = 0; |
|
|
|
bool fGood = true; |
|
|
|
bool fGood = true; |
|
|
|
{ |
|
|
|
{ |
|
|
@ -1138,6 +1153,11 @@ UniValue importmulti(const JSONRPCRequest& mainRequest) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WalletRescanReserver reserver(pwallet); |
|
|
|
|
|
|
|
if (fRescan && !reserver.reserve()) { |
|
|
|
|
|
|
|
throw JSONRPCError(RPC_WALLET_ERROR, "Wallet is currently rescanning. Abort existing rescan or wait."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int64_t now = 0; |
|
|
|
int64_t now = 0; |
|
|
|
bool fRunScan = false; |
|
|
|
bool fRunScan = false; |
|
|
|
int64_t nLowestTimestamp = 0; |
|
|
|
int64_t nLowestTimestamp = 0; |
|
|
|