Browse Source

Make z_anonsettxdelta work on a tx that is not in our wallet and fix calculation

pull/305/head
Duke Leto 2 years ago
parent
commit
cc61b19930
  1. 12
      src/wallet/rpcwallet.cpp

12
src/wallet/rpcwallet.cpp

@ -3724,17 +3724,17 @@ UniValue z_anonsettxdelta(const UniValue& params, bool fHelp, const CPubKey& myp
+ HelpExampleRpc("z_anonsettxdelta txid", "123")
);
LOCK2(cs_main, pwalletMain->cs_wallet);
uint256 txid;
uint256 txid,hashBlock;
CTransaction tx;
txid.SetHex(params[0].get_str());
if (!pwalletMain->mapWallet.count(txid))
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid or non-wallet transaction id!");
const CWalletTx& wtx = pwalletMain->mapWallet[txid];
LOCK(cs_main);
if (!GetTransaction(txid, tx, hashBlock, true))
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "No information available about transaction");
// delta = shielded outputs - shielded inputs
int delta = wtx.vShieldedSpend.size() - wtx.vShieldedOutput.size();
int delta = tx.vShieldedOutput.size() - tx.vShieldedSpend.size();
return delta;
}

Loading…
Cancel
Save