@ -768,18 +768,31 @@ UniValue getbalance(const JSONRPCRequest& request)
LOCK2 ( cs_main , pwallet - > cs_wallet ) ;
if ( request . params [ 0 ] . isNull ( ) & & request . params [ 1 ] . isNull ( ) & & request . params [ 2 ] . isNull ( ) )
return ValueFromAmount ( pwallet - > GetBalance ( ) ) ;
const UniValue & account_value = request . params [ 0 ] ;
const UniValue & minconf = request . params [ 1 ] ;
const UniValue & include_watchonly = request . params [ 2 ] ;
if ( account_value . isNull ( ) ) {
if ( ! minconf . isNull ( ) ) {
throw JSONRPCError ( RPC_INVALID_PARAMETER ,
" getbalance minconf option is only currently supported if an account is specified " ) ;
}
if ( ! include_watchonly . isNull ( ) ) {
throw JSONRPCError ( RPC_INVALID_PARAMETER ,
" getbalance include_watchonly option is only currently supported if an account is specified " ) ;
}
return ValueFromAmount ( pwallet - > GetBalance ( ) ) ;
}
const std : : string & account_param = request . params [ 0 ] . get_str ( ) ;
const std : : string & account_param = account_value . get_str ( ) ;
const std : : string * account = account_param ! = " * " ? & account_param : nullptr ;
int nMinDepth = 1 ;
if ( ! request . params [ 1 ] . isNull ( ) )
nMinDepth = request . params [ 1 ] . get_int ( ) ;
if ( ! minconf . isNull ( ) )
nMinDepth = minconf . get_int ( ) ;
isminefilter filter = ISMINE_SPENDABLE ;
if ( ! request . params [ 2 ] . isNull ( ) )
if ( request . params [ 2 ] . get_bool ( ) )
if ( ! include_watchonly . isNull ( ) )
if ( include_watchonly . get_bool ( ) )
filter = filter | ISMINE_WATCH_ONLY ;
return ValueFromAmount ( pwallet - > GetLegacyBalance ( filter , nMinDepth , account ) ) ;