[wallet] Remove wallet account RPCs
Also remove the RPC deprecation tests for accounts, and make one small change to another wallet test that relies on account behaviour. (cherry picked from commit f0dc850bf698f7377797d7d68365d4fc79b0221c)
This commit is contained in:
parent
0bf8b56b29
commit
3ef50b3647
|
@ -42,20 +42,20 @@ class ListTransactionsTest(BitcoinTestFramework):
|
|||
self.sync_all()
|
||||
check_array_result(self.nodes[0].listtransactions(),
|
||||
{"txid":txid},
|
||||
{"category":"send","account":"","amount":Decimal("-0.1"),"amountZat":-10000000,"confirmations":0})
|
||||
{"category":"send","amount":Decimal("-0.1"),"amountZat":-10000000,"confirmations":0})
|
||||
check_array_result(self.nodes[1].listtransactions(),
|
||||
{"txid":txid},
|
||||
{"category":"receive","account":"","amount":Decimal("0.1"),"amountZat":10000000,"confirmations":0})
|
||||
{"category":"receive","amount":Decimal("0.1"),"amountZat":10000000,"confirmations":0})
|
||||
|
||||
# mine a block, confirmations should change:
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
check_array_result(self.nodes[0].listtransactions(),
|
||||
{"txid":txid},
|
||||
{"category":"send","account":"","amount":Decimal("-0.1"),"amountZat":-10000000,"confirmations":1})
|
||||
{"category":"send","amount":Decimal("-0.1"),"amountZat":-10000000,"confirmations":1})
|
||||
check_array_result(self.nodes[1].listtransactions(),
|
||||
{"txid":txid},
|
||||
{"category":"receive","account":"","amount":Decimal("0.1"),"amountZat":10000000,"confirmations":1})
|
||||
{"category":"receive","amount":Decimal("0.1"),"amountZat":10000000,"confirmations":1})
|
||||
|
||||
# send-to-self:
|
||||
txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 0.2)
|
||||
|
@ -67,10 +67,14 @@ class ListTransactionsTest(BitcoinTestFramework):
|
|||
{"amount":Decimal("0.2"),"amountZat":20000000})
|
||||
|
||||
# sendmany from node1: twice to self, twice to node2:
|
||||
send_to = { self.nodes[0].getnewaddress() : 0.11,
|
||||
self.nodes[1].getnewaddress() : 0.22,
|
||||
self.nodes[0].getaccountaddress("") : 0.33,
|
||||
self.nodes[1].getaccountaddress("") : 0.44 }
|
||||
node_0_addr_0 = self.nodes[0].getnewaddress()
|
||||
node_0_addr_1 = self.nodes[0].getnewaddress()
|
||||
node_1_addr_0 = self.nodes[1].getnewaddress()
|
||||
node_1_addr_1 = self.nodes[1].getnewaddress()
|
||||
send_to = { node_0_addr_0 : 0.11,
|
||||
node_1_addr_0 : 0.22,
|
||||
node_0_addr_1 : 0.33,
|
||||
node_1_addr_1 : 0.44 }
|
||||
txid = self.nodes[1].sendmany("", send_to)
|
||||
self.sync_all()
|
||||
check_array_result(self.nodes[1].listtransactions(),
|
||||
|
@ -90,23 +94,22 @@ class ListTransactionsTest(BitcoinTestFramework):
|
|||
{"txid":txid} )
|
||||
check_array_result(self.nodes[0].listtransactions(),
|
||||
{"category":"receive","amount":Decimal("0.33"),"amountZat":33000000},
|
||||
{"txid":txid, "account" : ""} )
|
||||
{"txid":txid} )
|
||||
check_array_result(self.nodes[1].listtransactions(),
|
||||
{"category":"send","amount":Decimal("-0.44"),"amountZat":-44000000},
|
||||
{"txid":txid, "account" : ""} )
|
||||
{"txid":txid} )
|
||||
check_array_result(self.nodes[1].listtransactions(),
|
||||
{"category":"receive","amount":Decimal("0.44"),"amountZat":44000000},
|
||||
{"txid":txid, "account" : ""} )
|
||||
{"txid":txid} )
|
||||
|
||||
multisig = self.nodes[1].createmultisig(1, [self.nodes[1].getnewaddress()])
|
||||
self.nodes[0].importaddress(multisig["redeemScript"], "watchonly", False, True)
|
||||
txid = self.nodes[1].sendtoaddress(multisig["address"], 0.1)
|
||||
self.nodes[1].generate(1)
|
||||
self.sync_all()
|
||||
assert(len(self.nodes[0].listtransactions("watchonly", 100, 0, False)) == 0)
|
||||
check_array_result(self.nodes[0].listtransactions("watchonly", 100, 0, True),
|
||||
check_array_result(self.nodes[0].listtransactions("*", 100, 0, True),
|
||||
{"category":"receive","amount":Decimal("0.1"),"amountZat":10000000},
|
||||
{"txid":txid, "account" : "watchonly"} )
|
||||
{"txid":txid, "involvesWatchonly": True} )
|
||||
|
||||
if __name__ == '__main__':
|
||||
ListTransactionsTest().main()
|
||||
|
|
|
@ -52,8 +52,8 @@ class TxnMallTest(BitcoinTestFramework):
|
|||
# Create two transaction from node[0] to node[1]; the
|
||||
# second must spend change from the first because the first
|
||||
# spends all mature inputs:
|
||||
txid1 = self.nodes[0].sendfrom("", node1_address, (starting_balance - (mining_reward - 2)), 0)
|
||||
txid2 = self.nodes[0].sendfrom("", node1_address, 5, 0)
|
||||
txid1 = self.nodes[0].sendtoaddress(node1_address, (starting_balance - (mining_reward - 2)))
|
||||
txid2 = self.nodes[0].sendtoaddress(node1_address, 5)
|
||||
|
||||
# Have node0 mine a block:
|
||||
if (self.options.mine_block):
|
||||
|
|
|
@ -38,27 +38,16 @@ static const CRPCConvertParam vRPCConvertParams[] =
|
|||
{ "settxfee", 0 },
|
||||
{ "getreceivedbyaddress", 1 },
|
||||
{ "getreceivedbyaddress", 2 },
|
||||
{ "getreceivedbyaccount", 1 },
|
||||
{ "getreceivedbyaccount", 2 },
|
||||
{ "listreceivedbyaddress", 0 },
|
||||
{ "listreceivedbyaddress", 1 },
|
||||
{ "listreceivedbyaddress", 2 },
|
||||
{ "listreceivedbyaccount", 0 },
|
||||
{ "listreceivedbyaccount", 1 },
|
||||
{ "listreceivedbyaccount", 2 },
|
||||
{ "getbalance", 1 },
|
||||
{ "getbalance", 2 },
|
||||
{ "getbalance", 3 },
|
||||
{ "getblockhash", 0 },
|
||||
{ "move", 2 },
|
||||
{ "move", 3 },
|
||||
{ "sendfrom", 2 },
|
||||
{ "sendfrom", 3 },
|
||||
{ "listtransactions", 1 },
|
||||
{ "listtransactions", 2 },
|
||||
{ "listtransactions", 3 },
|
||||
{ "listaccounts", 0 },
|
||||
{ "listaccounts", 1 },
|
||||
{ "walletpassphrase", 1 },
|
||||
{ "getblocktemplate", 0 },
|
||||
{ "listsinceblock", 1 },
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -139,20 +139,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
|
||||
CPubKey setaccountDemoPubkey = pwalletMain->GenerateNewKey();
|
||||
CTxDestination setaccountDemoAddress(CTxDestination(setaccountDemoPubkey.GetID()));
|
||||
|
||||
/*********************************
|
||||
* setaccount
|
||||
*********************************/
|
||||
KeyIO keyIO(Params());
|
||||
BOOST_CHECK_NO_THROW(CallRPC("setaccount " + keyIO.EncodeDestination(setaccountDemoAddress) + " \"\""));
|
||||
/* Accounts are disabled */
|
||||
BOOST_CHECK_THROW(CallRPC("setaccount " + keyIO.EncodeDestination(setaccountDemoAddress) + " nullaccount"), runtime_error);
|
||||
/* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV is not owned by the test wallet. */
|
||||
BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1GpgV nullaccount"), runtime_error);
|
||||
BOOST_CHECK_THROW(CallRPC("setaccount"), runtime_error);
|
||||
/* t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg (34 chars) is an illegal address (should be 35 chars) */
|
||||
BOOST_CHECK_THROW(CallRPC("setaccount t1VtArtnn1dGPiD2WFfMXYXW5mHM3q1Gpg nullaccount"), runtime_error);
|
||||
|
||||
|
||||
/*********************************
|
||||
* getbalance
|
||||
|
@ -181,16 +168,6 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaddress 0 true"));
|
||||
BOOST_CHECK_THROW(CallRPC("listreceivedbyaddress 0 true extra"), runtime_error);
|
||||
|
||||
/*********************************
|
||||
* listreceivedbyaccount
|
||||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0"));
|
||||
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount not_int"), runtime_error);
|
||||
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 not_bool"), runtime_error);
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listreceivedbyaccount 0 true"));
|
||||
BOOST_CHECK_THROW(CallRPC("listreceivedbyaccount 0 true extra"), runtime_error);
|
||||
|
||||
/*********************************
|
||||
* listsinceblock
|
||||
*********************************/
|
||||
|
@ -200,9 +177,9 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
* listtransactions
|
||||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + keyIO.EncodeDestination(demoAddress)));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + keyIO.EncodeDestination(demoAddress) + " 20"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions " + keyIO.EncodeDestination(demoAddress) + " 20 0"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions *"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions * 20"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listtransactions * 20 0"));
|
||||
BOOST_CHECK_THROW(CallRPC("listtransactions " + keyIO.EncodeDestination(demoAddress) + " not_int"), runtime_error);
|
||||
|
||||
/*********************************
|
||||
|
@ -210,11 +187,6 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listlockunspent"));
|
||||
|
||||
/*********************************
|
||||
* listaccounts
|
||||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("listaccounts"));
|
||||
|
||||
/*********************************
|
||||
* listaddressgroupings
|
||||
*********************************/
|
||||
|
@ -229,24 +201,6 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
* getnewaddress
|
||||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("getnewaddress"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("getnewaddress \"\""));
|
||||
/* Accounts are deprecated */
|
||||
BOOST_CHECK_THROW(CallRPC("getnewaddress getnewaddress_demoaccount"), runtime_error);
|
||||
|
||||
/*********************************
|
||||
* getaccountaddress
|
||||
*********************************/
|
||||
BOOST_CHECK_NO_THROW(CallRPC("getaccountaddress \"\""));
|
||||
/* Accounts are deprecated */
|
||||
BOOST_CHECK_THROW(CallRPC("getaccountaddress accountThatDoesntExists"), runtime_error);
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("getaccountaddress " + strAccount));
|
||||
BOOST_CHECK(keyIO.DecodeDestination(retValue.get_str()) == demoAddress);
|
||||
|
||||
/*********************************
|
||||
* getaccount
|
||||
*********************************/
|
||||
BOOST_CHECK_THROW(CallRPC("getaccount"), runtime_error);
|
||||
BOOST_CHECK_NO_THROW(CallRPC("getaccount " + keyIO.EncodeDestination(demoAddress)));
|
||||
|
||||
/*********************************
|
||||
* signmessage + verifymessage
|
||||
|
@ -268,19 +222,6 @@ BOOST_AUTO_TEST_CASE(rpc_wallet)
|
|||
/* Correct address, message and signature*/
|
||||
BOOST_CHECK(CallRPC("verifymessage " + keyIO.EncodeDestination(demoAddress) + " " + retValue.get_str() + " mymessage").get_bool() == true);
|
||||
|
||||
/*********************************
|
||||
* getaddressesbyaccount
|
||||
*********************************/
|
||||
BOOST_CHECK_THROW(CallRPC("getaddressesbyaccount"), runtime_error);
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("getaddressesbyaccount " + strAccount));
|
||||
UniValue arr = retValue.get_array();
|
||||
BOOST_CHECK_EQUAL(4, arr.size());
|
||||
bool notFound = true;
|
||||
for (auto a : arr.getValues()) {
|
||||
notFound &= keyIO.DecodeDestination(a.get_str()) != demoAddress;
|
||||
}
|
||||
BOOST_CHECK(!notFound);
|
||||
|
||||
/*********************************
|
||||
* fundrawtransaction
|
||||
*********************************/
|
||||
|
@ -1907,9 +1848,9 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters)
|
|||
BOOST_CHECK( find_error(objError, "Recipient parameter missing"));
|
||||
}
|
||||
|
||||
std::vector<MergeToAddressInputSproutNote> sproutNoteInputs =
|
||||
std::vector<MergeToAddressInputSproutNote> sproutNoteInputs =
|
||||
{MergeToAddressInputSproutNote{JSOutPoint(), SproutNote(), 0, SproutSpendingKey()}};
|
||||
std::vector<MergeToAddressInputSaplingNote> saplingNoteInputs =
|
||||
std::vector<MergeToAddressInputSaplingNote> saplingNoteInputs =
|
||||
{MergeToAddressInputSaplingNote{SaplingOutPoint(), SaplingNote({}, uint256(), 0, uint256(), Zip212Enabled::BeforeZip212), 0, SaplingExpandedSpendingKey()}};
|
||||
|
||||
// Sprout and Sapling inputs -> throw
|
||||
|
|
|
@ -409,6 +409,31 @@ private:
|
|||
const CWallet* pwallet;
|
||||
|
||||
public:
|
||||
/**
|
||||
* Key/value map with information about the transaction.
|
||||
*
|
||||
* The following keys can be read and written through the map and are
|
||||
* serialized in the wallet database:
|
||||
*
|
||||
* "comment", "to" - comment strings provided to sendtoaddress,
|
||||
* and sendmany wallet RPCs
|
||||
* "replaces_txid" - txid (as HexStr) of transaction replaced by
|
||||
* bumpfee on transaction created by bumpfee
|
||||
* "replaced_by_txid" - txid (as HexStr) of transaction created by
|
||||
* bumpfee on transaction replaced by bumpfee
|
||||
* "from", "message" - obsolete fields that could be set in UI prior to
|
||||
* 2011 (removed in commit 4d9b223)
|
||||
*
|
||||
* The following keys are serialized in the wallet database, but shouldn't
|
||||
* be read or written through the map (they will be temporarily added and
|
||||
* removed from the map during serialization):
|
||||
*
|
||||
* "fromaccount" - serialized strFromAccount value
|
||||
* "n" - serialized nOrderPos value
|
||||
* "timesmart" - serialized nTimeSmart value
|
||||
* "spent" - serialized vfSpent value that existed prior to
|
||||
* 2014 (removed in commit 93a18a3)
|
||||
*/
|
||||
mapValue_t mapValue;
|
||||
mapSproutNoteData_t mapSproutNoteData;
|
||||
mapSaplingNoteData_t mapSaplingNoteData;
|
||||
|
|
Loading…
Reference in New Issue