@ -455,6 +455,11 @@ UniValue sendtoaddress(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
CTxDestination dest = DecodeDestination ( request . params [ 0 ] . get_str ( ) ) ;
@ -533,6 +538,11 @@ UniValue listaddressgroupings(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
UniValue jsonGroupings ( UniValue : : VARR ) ;
@ -645,6 +655,11 @@ UniValue getreceivedbyaddress(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
// Bitcoin address
@ -707,6 +722,11 @@ UniValue getreceivedbyaccount(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
// Minimum confirmations
@ -780,6 +800,11 @@ UniValue getbalance(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
const UniValue & account_value = request . params [ 0 ] ;
@ -825,6 +850,11 @@ UniValue getunconfirmedbalance(const JSONRPCRequest &request)
" Returns the server's total unconfirmed balance \n " ) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
return ValueFromAmount ( pwallet - > GetUnconfirmedBalance ( ) ) ;
@ -919,6 +949,11 @@ UniValue sendfrom(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
std : : string strAccount = AccountFromValue ( request . params [ 0 ] ) ;
@ -1004,6 +1039,11 @@ UniValue sendmany(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
if ( pwallet - > GetBroadcastTransactions ( ) & & ! g_connman ) {
@ -1455,6 +1495,11 @@ UniValue listreceivedbyaddress(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
return ListReceived ( pwallet , request . params , false ) ;
@ -1495,6 +1540,11 @@ UniValue listreceivedbyaccount(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
return ListReceived ( pwallet , request . params , true ) ;
@ -1683,6 +1733,11 @@ UniValue listtransactions(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
std : : string strAccount = " * " ;
@ -1777,6 +1832,11 @@ UniValue listaccounts(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
int nMinDepth = 1 ;
@ -1886,6 +1946,11 @@ UniValue listsinceblock(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
const CBlockIndex * pindex = nullptr ; // Block index of the specified block or the common ancestor, if the block provided was in a deactivated chain.
@ -2018,6 +2083,11 @@ UniValue gettransaction(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
uint256 hash ;
@ -2080,6 +2150,11 @@ UniValue abandontransaction(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
uint256 hash ;
@ -2114,6 +2189,10 @@ UniValue backupwallet(const JSONRPCRequest& request)
+ HelpExampleRpc ( " backupwallet " , " \" backup.dat \" " )
) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
std : : string strDest = request . params [ 0 ] . get_str ( ) ;
@ -2433,6 +2512,10 @@ UniValue lockunspent(const JSONRPCRequest& request)
+ HelpExampleRpc ( " lockunspent " , " false, \" [{ \\ \" txid \\ \" : \\ \" a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0 \\ \" , \\ \" vout \\ \" :1}] \" " )
) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
RPCTypeCheckArgument ( request . params [ 0 ] , UniValue : : VBOOL ) ;
@ -2592,6 +2675,11 @@ UniValue getwalletinfo(const JSONRPCRequest& request)
) ;
ObserveSafeMode ( ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
UniValue obj ( UniValue : : VOBJ ) ;
@ -2801,6 +2889,10 @@ UniValue listunspent(const JSONRPCRequest& request)
nMaximumCount = options [ " maximumCount " ] . get_int64 ( ) ;
}
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
UniValue results ( UniValue : : VARR ) ;
std : : vector < COutput > vecOutputs ;
assert ( pwallet ! = nullptr ) ;
@ -2911,6 +3003,10 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
ObserveSafeMode ( ) ;
RPCTypeCheck ( request . params , { UniValue : : VSTR } ) ;
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
CCoinControl coinControl ;
int changePosition = - 1 ;
bool lockUnspents = false ;
@ -3121,6 +3217,10 @@ UniValue bumpfee(const JSONRPCRequest& request)
}
}
// Make sure the results are valid at least up to the most recent block
// the user could have gotten from another RPC command prior to now
pwallet - > BlockUntilSyncedToCurrentChain ( ) ;
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
EnsureWalletIsUnlocked ( pwallet ) ;