Auto merge of #3680 - bitcartel:3671_sapling_default_z_getnewaddress, r=bitcartel
Make Sapling the default address format when calling RPC z_getnewaddress Closes #3671.
This commit is contained in:
commit
8394c30029
|
@ -94,7 +94,7 @@ class FinalSaplingRootTest(BitcoinTestFramework):
|
|||
assert_equal(root, self.nodes[0].getblock("203")["finalsaplingroot"])
|
||||
|
||||
# Mine a block with a Sprout shielded tx and verify the final Sapling root does not change
|
||||
zaddr1 = self.nodes[1].z_getnewaddress()
|
||||
zaddr1 = self.nodes[1].z_getnewaddress('sprout')
|
||||
recipients = []
|
||||
recipients.append({"address": zaddr1, "amount": Decimal('10')})
|
||||
myopid = self.nodes[0].z_sendmany(taddr0, recipients, 1, 0)
|
||||
|
|
|
@ -41,7 +41,7 @@ class MempoolUpgradeActivationTest(BitcoinTestFramework):
|
|||
|
||||
# Shield some ZEC
|
||||
node1_taddr = self.nodes[1].getnewaddress()
|
||||
node0_zaddr = self.nodes[0].z_getnewaddress()
|
||||
node0_zaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
recipients = [{'address': node0_zaddr, 'amount': Decimal('10')}]
|
||||
myopid = self.nodes[1].z_sendmany(node1_taddr, recipients, 1, Decimal('0'))
|
||||
print wait_and_assert_operationid_status(self.nodes[1], myopid)
|
||||
|
|
|
@ -23,9 +23,9 @@ class MempoolTxExpiryTest(BitcoinTestFramework):
|
|||
# chain is at block height 199 when run_test executes
|
||||
def run_test(self):
|
||||
alice = self.nodes[0].getnewaddress()
|
||||
z_alice = self.nodes[0].z_getnewaddress()
|
||||
z_alice = self.nodes[0].z_getnewaddress('sprout')
|
||||
bob = self.nodes[2].getnewaddress()
|
||||
z_bob = self.nodes[2].z_getnewaddress()
|
||||
z_bob = self.nodes[2].z_getnewaddress('sprout')
|
||||
|
||||
# When Overwinter not yet activated, no expiryheight in tx
|
||||
sapling_tx = self.nodes[0].sendtoaddress(bob, 0.01)
|
||||
|
|
|
@ -45,7 +45,7 @@ class MempoolTxInputLimitTest(BitcoinTestFramework):
|
|||
# Check 1: z_sendmany is limited by -mempooltxinputlimit
|
||||
|
||||
# Add zaddr to node 0
|
||||
node0_zaddr = self.nodes[0].z_getnewaddress()
|
||||
node0_zaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# Send three inputs from node 0 taddr to zaddr to get out of coinbase
|
||||
node0_taddr = self.nodes[0].getnewaddress()
|
||||
|
|
|
@ -47,7 +47,7 @@ class PaymentDisclosureTest (BitcoinTestFramework):
|
|||
assert_equal(self.nodes[2].getbalance(), 30)
|
||||
|
||||
mytaddr = self.nodes[0].getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# Check that Node 2 has payment disclosure disabled.
|
||||
try:
|
||||
|
@ -164,7 +164,7 @@ class PaymentDisclosureTest (BitcoinTestFramework):
|
|||
assert_equal(output_value_sum, Decimal('39.99990000'))
|
||||
|
||||
# Create a z->z transaction, sending shielded funds from node 0 to node 1
|
||||
node1zaddr = self.nodes[1].z_getnewaddress()
|
||||
node1zaddr = self.nodes[1].z_getnewaddress('sprout')
|
||||
recipients = [{"address":node1zaddr, "amount":Decimal('1')}]
|
||||
myopid = self.nodes[0].z_sendmany(myzaddr, recipients)
|
||||
txid = wait_and_assert_operationid_status(self.nodes[0], myopid)
|
||||
|
|
|
@ -282,7 +282,7 @@ class WalletTest (BitcoinTestFramework):
|
|||
assert_equal(0, len(myvjoinsplits))
|
||||
|
||||
# z_sendmany is expected to fail if tx size breaks limit
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
recipients = []
|
||||
num_t_recipients = 3000
|
||||
|
@ -316,7 +316,7 @@ class WalletTest (BitcoinTestFramework):
|
|||
newtaddr = self.nodes[2].getnewaddress()
|
||||
recipients.append({"address":newtaddr, "amount":amount_per_recipient})
|
||||
for i in xrange(0,num_z_recipients):
|
||||
newzaddr = self.nodes[2].z_getnewaddress()
|
||||
newzaddr = self.nodes[2].z_getnewaddress('sprout')
|
||||
recipients.append({"address":newzaddr, "amount":amount_per_recipient})
|
||||
|
||||
# Issue #2759 Workaround START
|
||||
|
@ -334,7 +334,7 @@ class WalletTest (BitcoinTestFramework):
|
|||
amount_per_recipient = Decimal('0.00000001')
|
||||
errorString = ''
|
||||
for i in xrange(0,num_z_recipients):
|
||||
newzaddr = self.nodes[2].z_getnewaddress()
|
||||
newzaddr = self.nodes[2].z_getnewaddress('sprout')
|
||||
recipients.append({"address":newzaddr, "amount":amount_per_recipient})
|
||||
try:
|
||||
self.nodes[0].z_sendmany(myzaddr, recipients)
|
||||
|
@ -343,7 +343,7 @@ class WalletTest (BitcoinTestFramework):
|
|||
assert("Invalid parameter, too many zaddr outputs" in errorString)
|
||||
|
||||
# add zaddr to node 2
|
||||
myzaddr = self.nodes[2].z_getnewaddress()
|
||||
myzaddr = self.nodes[2].z_getnewaddress('sprout')
|
||||
|
||||
# send node 2 taddr to zaddr
|
||||
recipients = []
|
||||
|
@ -437,7 +437,7 @@ class WalletTest (BitcoinTestFramework):
|
|||
|
||||
assert_equal("not an integer" in errorString, True)
|
||||
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
recipients = [ {"address": myzaddr, "amount": Decimal('0.0') } ]
|
||||
errorString = ''
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ class Wallet1941RegressionTest (BitcoinTestFramework):
|
|||
self.nodes[0].generate(101)
|
||||
|
||||
mytaddr = self.nodes[0].getnewaddress() # where coins were mined
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# Send 10 coins to our zaddr.
|
||||
recipients = []
|
||||
|
@ -74,7 +74,7 @@ class Wallet1941RegressionTest (BitcoinTestFramework):
|
|||
# Start the new wallet
|
||||
self.add_second_node()
|
||||
self.nodes[1].getnewaddress()
|
||||
self.nodes[1].z_getnewaddress()
|
||||
self.nodes[1].z_getnewaddress('sprout')
|
||||
self.nodes[1].generate(101)
|
||||
self.sync_all()
|
||||
|
||||
|
|
|
@ -37,41 +37,41 @@ class WalletAddressesTest(BitcoinTestFramework):
|
|||
assert_equal(self.nodes[0].getblockcount(), 200)
|
||||
|
||||
# Current height = 200 -> Sprout
|
||||
# Default address type is Sprout
|
||||
# Default address type is Sapling
|
||||
print "Testing height 200 (Sprout)"
|
||||
addr_checks('sprout')
|
||||
addr_checks('sapling')
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
|
||||
# Current height = 201 -> Sprout
|
||||
# Default address type is Sprout
|
||||
# Default address type is Sapling
|
||||
print "Testing height 201 (Sprout)"
|
||||
addr_checks('sprout')
|
||||
addr_checks('sapling')
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
|
||||
# Current height = 202 -> Overwinter
|
||||
# Default address type is Sprout
|
||||
# Default address type is Sapling
|
||||
print "Testing height 202 (Overwinter)"
|
||||
addr_checks('sprout')
|
||||
addr_checks('sapling')
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
|
||||
# Current height = 203 -> Overwinter
|
||||
# Default address type is Sprout
|
||||
# Default address type is Sapling
|
||||
print "Testing height 203 (Overwinter)"
|
||||
addr_checks('sprout')
|
||||
addr_checks('sapling')
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
self.sync_all()
|
||||
|
||||
# Current height = 204 -> Sapling
|
||||
# Default address type is Sprout
|
||||
# Default address type is Sapling
|
||||
print "Testing height 204 (Sapling)"
|
||||
addr_checks('sprout')
|
||||
addr_checks('sapling')
|
||||
|
||||
if __name__ == '__main__':
|
||||
WalletAddressesTest().main()
|
||||
|
|
|
@ -44,7 +44,7 @@ class WalletAnchorForkTest (BitcoinTestFramework):
|
|||
|
||||
# Node 0 creates a joinsplit transaction
|
||||
mytaddr0 = self.nodes[0].getnewaddress()
|
||||
myzaddr0 = self.nodes[0].z_getnewaddress()
|
||||
myzaddr0 = self.nodes[0].z_getnewaddress('sprout')
|
||||
recipients = []
|
||||
recipients.append({"address":myzaddr0, "amount": Decimal('10.0') - Decimal('0.0001')})
|
||||
myopid = self.nodes[0].z_sendmany(mytaddr0, recipients)
|
||||
|
|
|
@ -18,8 +18,8 @@ class WalletChangeIndicatorTest (BitcoinTestFramework):
|
|||
# Tests
|
||||
def run_test(self):
|
||||
taddr = self.nodes[1].getnewaddress()
|
||||
zaddr1 = self.nodes[1].z_getnewaddress()
|
||||
zaddr2 = self.nodes[1].z_getnewaddress()
|
||||
zaddr1 = self.nodes[1].z_getnewaddress('sprout')
|
||||
zaddr2 = self.nodes[1].z_getnewaddress('sprout')
|
||||
|
||||
self.nodes[0].sendtoaddress(taddr, Decimal('1.0'))
|
||||
self.generate_and_sync()
|
||||
|
|
|
@ -70,7 +70,7 @@ class WalletListNotes(BitcoinTestFramework):
|
|||
assert_equal(202, self.nodes[0].getblockcount())
|
||||
|
||||
# Send 1.0 (actually 0.9999) from sproutzaddr to a new zaddr
|
||||
sproutzaddr2 = self.nodes[0].z_getnewaddress()
|
||||
sproutzaddr2 = self.nodes[0].z_getnewaddress('sprout')
|
||||
receive_amount_1 = Decimal('1.0') - Decimal('0.0001')
|
||||
change_amount_9 = receive_amount_10 - Decimal('1.0')
|
||||
assert_equal('sprout', self.nodes[0].z_validateaddress(sproutzaddr2)['type'])
|
||||
|
|
|
@ -54,7 +54,7 @@ class WalletMergeToAddressTest (BitcoinTestFramework):
|
|||
assert_equal(self.nodes[2].getbalance(), 30)
|
||||
|
||||
# Shield the coinbase
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
result = self.nodes[0].z_shieldcoinbase("*", myzaddr, 0)
|
||||
wait_and_assert_operationid_status(self.nodes[0], result['opid'])
|
||||
self.sync_all()
|
||||
|
@ -172,7 +172,7 @@ class WalletMergeToAddressTest (BitcoinTestFramework):
|
|||
assert_equal(self.nodes[2].getbalance(), 30)
|
||||
|
||||
# Shield all notes to another z-addr
|
||||
myzaddr2 = self.nodes[0].z_getnewaddress()
|
||||
myzaddr2 = self.nodes[0].z_getnewaddress('sprout')
|
||||
result = self.nodes[0].z_mergetoaddress(["ANY_ZADDR"], myzaddr2, 0)
|
||||
assert_equal(result["mergingUTXOs"], Decimal('0'))
|
||||
assert_equal(result["remainingUTXOs"], Decimal('0'))
|
||||
|
|
|
@ -18,7 +18,7 @@ class WalletNullifiersTest (BitcoinTestFramework):
|
|||
|
||||
def run_test (self):
|
||||
# add zaddr to node 0
|
||||
myzaddr0 = self.nodes[0].z_getnewaddress()
|
||||
myzaddr0 = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# send node 0 taddr to zaddr to get out of coinbase
|
||||
mytaddr = self.nodes[0].getnewaddress()
|
||||
|
@ -32,7 +32,7 @@ class WalletNullifiersTest (BitcoinTestFramework):
|
|||
self.sync_all()
|
||||
|
||||
# add zaddr to node 2
|
||||
myzaddr = self.nodes[2].z_getnewaddress()
|
||||
myzaddr = self.nodes[2].z_getnewaddress('sprout')
|
||||
|
||||
# import node 2 zaddr into node 1
|
||||
myzkey = self.nodes[2].z_exportkey(myzaddr)
|
||||
|
@ -64,7 +64,7 @@ class WalletNullifiersTest (BitcoinTestFramework):
|
|||
assert_equal(self.nodes[1].z_getbalance(myzaddr), zsendmanynotevalue)
|
||||
|
||||
# add zaddr to node 3
|
||||
myzaddr3 = self.nodes[3].z_getnewaddress()
|
||||
myzaddr3 = self.nodes[3].z_getnewaddress('sprout')
|
||||
|
||||
# send node 2 zaddr to note 3 zaddr
|
||||
recipients = []
|
||||
|
|
|
@ -35,9 +35,9 @@ class WalletOverwinterTxTest (BitcoinTestFramework):
|
|||
taddr0 = self.nodes[0].getnewaddress()
|
||||
taddr1 = self.nodes[1].getnewaddress()
|
||||
taddr2 = self.nodes[2].getnewaddress()
|
||||
zaddr2 = self.nodes[2].z_getnewaddress()
|
||||
zaddr2 = self.nodes[2].z_getnewaddress('sprout')
|
||||
taddr3 = self.nodes[3].getnewaddress()
|
||||
zaddr3 = self.nodes[3].z_getnewaddress()
|
||||
zaddr3 = self.nodes[3].z_getnewaddress('sprout')
|
||||
|
||||
#
|
||||
# Currently at block 198. The next block to be mined 199 is a Sprout block
|
||||
|
|
|
@ -75,7 +75,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
|
|||
|
||||
# Prepare to send taddr->zaddr
|
||||
mytaddr = self.nodes[0].getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# Node 3 will test that watch only address utxos are not selected
|
||||
self.nodes[3].importaddress(mytaddr)
|
||||
|
@ -335,7 +335,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
|
|||
custom_fee = Decimal('0.00012345')
|
||||
zbalance = self.nodes[0].z_getbalance(myzaddr)
|
||||
for i in xrange(0,num_recipients):
|
||||
newzaddr = self.nodes[2].z_getnewaddress()
|
||||
newzaddr = self.nodes[2].z_getnewaddress('sprout')
|
||||
recipients.append({"address":newzaddr, "amount":amount_per_recipient})
|
||||
myopid = self.nodes[0].z_sendmany(myzaddr, recipients, minconf, custom_fee)
|
||||
wait_and_assert_operationid_status(self.nodes[0], myopid)
|
||||
|
|
|
@ -35,7 +35,7 @@ class WalletTreeStateTest (BitcoinTestFramework):
|
|||
self.sync_all()
|
||||
|
||||
mytaddr = self.nodes[0].getnewaddress() # where coins were mined
|
||||
myzaddr = self.nodes[0].z_getnewaddress()
|
||||
myzaddr = self.nodes[0].z_getnewaddress('sprout')
|
||||
|
||||
# Spend coinbase utxos to create three notes of 9.99990000 each
|
||||
recipients = []
|
||||
|
@ -66,15 +66,15 @@ class WalletTreeStateTest (BitcoinTestFramework):
|
|||
|
||||
# Tx 1 will change the treestate while Tx 2 containing chained joinsplits is still being generated
|
||||
recipients = []
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress(), "amount":Decimal('10.0') - Decimal('0.0001')})
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress('sprout'), "amount":Decimal('10.0') - Decimal('0.0001')})
|
||||
myopid = self.nodes[0].z_sendmany(mytaddr, recipients)
|
||||
wait_and_assert_operationid_status(self.nodes[0], myopid)
|
||||
|
||||
# Tx 2 will consume all three notes, which must take at least two joinsplits. This is regardless of
|
||||
# the z_sendmany implementation because there are only two inputs per joinsplit.
|
||||
recipients = []
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress(), "amount":Decimal('18')})
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress(), "amount":Decimal('11.9997') - Decimal('0.0001')})
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress('sprout'), "amount":Decimal('18')})
|
||||
recipients.append({"address":self.nodes[2].z_getnewaddress('sprout'), "amount":Decimal('11.9997') - Decimal('0.0001')})
|
||||
myopid = self.nodes[0].z_sendmany(myzaddr, recipients)
|
||||
|
||||
# Wait for Tx 2 to begin executing...
|
||||
|
|
|
@ -83,7 +83,7 @@ class ZkeyImportExportTest (BitcoinTestFramework):
|
|||
miner.generate(100)
|
||||
self.sync_all()
|
||||
# Shield Alice's coinbase funds to her zaddr
|
||||
alice_zaddr = alice.z_getnewaddress()
|
||||
alice_zaddr = alice.z_getnewaddress('sprout')
|
||||
res = alice.z_shieldcoinbase("*", alice_zaddr)
|
||||
wait_and_assert_operationid_status(alice, res['opid'])
|
||||
self.sync_all()
|
||||
|
@ -91,7 +91,7 @@ class ZkeyImportExportTest (BitcoinTestFramework):
|
|||
self.sync_all()
|
||||
|
||||
# Now get a pristine z-address for receiving transfers:
|
||||
bob_zaddr = bob.z_getnewaddress()
|
||||
bob_zaddr = bob.z_getnewaddress('sprout')
|
||||
verify_utxos(bob, [], bob_zaddr)
|
||||
# TODO: Verify that charlie doesn't have funds in addr
|
||||
# verify_utxos(charlie, [])
|
||||
|
|
|
@ -626,7 +626,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_z_importexport)
|
|||
BOOST_CHECK(myaddrs == listaddrs);
|
||||
|
||||
// Add one more address
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("z_getnewaddress"));
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("z_getnewaddress sprout"));
|
||||
std::string newaddress = retValue.get_str();
|
||||
auto address = DecodePaymentAddress(newaddress);
|
||||
BOOST_CHECK(IsValidPaymentAddress(address));
|
||||
|
@ -1366,7 +1366,7 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_encrypted_wallet_zkeys)
|
|||
|
||||
// create keys
|
||||
for (int i = 0; i < n; i++) {
|
||||
CallRPC("z_getnewaddress");
|
||||
CallRPC("z_getnewaddress sprout");
|
||||
}
|
||||
|
||||
// Verify we can list the keys imported
|
||||
|
@ -1391,14 +1391,14 @@ BOOST_AUTO_TEST_CASE(rpc_wallet_encrypted_wallet_zkeys)
|
|||
BOOST_CHECK(arr.size() == n);
|
||||
|
||||
// Try to add a new key, but we can't as the wallet is locked
|
||||
BOOST_CHECK_THROW(CallRPC("z_getnewaddress"), runtime_error);
|
||||
BOOST_CHECK_THROW(CallRPC("z_getnewaddress sprout"), runtime_error);
|
||||
|
||||
// We can't call RPC walletpassphrase as that invokes RPCRunLater which breaks tests.
|
||||
// So we manually unlock.
|
||||
BOOST_CHECK(pwalletMain->Unlock(strWalletPass));
|
||||
|
||||
// Now add a key
|
||||
BOOST_CHECK_NO_THROW(CallRPC("z_getnewaddress"));
|
||||
BOOST_CHECK_NO_THROW(CallRPC("z_getnewaddress sprout"));
|
||||
|
||||
// Verify the key has been added
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("z_listaddresses"));
|
||||
|
@ -1507,7 +1507,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_listunspent_parameters)
|
|||
BOOST_CHECK_THROW(CallRPC("z_listunspent 1 999 true [\"zcMuhvq8sEkHALuSU2i4NbNQxshSAYrpCExec45ZjtivYPbuiFPwk6WHy4SvsbeZ4siy1WheuRGjtaJmoD1J8bFqNXhsG6U\"]"), runtime_error);
|
||||
|
||||
// create shielded address so we have the spending key
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("z_getnewaddress"));
|
||||
BOOST_CHECK_NO_THROW(retValue = CallRPC("z_getnewaddress sprout"));
|
||||
std::string myzaddr = retValue.get_str();
|
||||
|
||||
// return empty array for this address
|
||||
|
|
|
@ -3146,13 +3146,13 @@ UniValue z_getnewaddress(const UniValue& params, bool fHelp)
|
|||
if (!EnsureWalletIsAvailable(fHelp))
|
||||
return NullUniValue;
|
||||
|
||||
std::string defaultType = ADDR_TYPE_SPROUT;
|
||||
std::string defaultType = ADDR_TYPE_SAPLING;
|
||||
|
||||
if (fHelp || params.size() > 1)
|
||||
throw runtime_error(
|
||||
"z_getnewaddress ( type )\n"
|
||||
"\nReturns a new shielded address for receiving payments.\n"
|
||||
"\nWith no arguments, returns a Sprout address.\n"
|
||||
"\nWith no arguments, returns a Sapling address.\n"
|
||||
"\nArguments:\n"
|
||||
"1. \"type\" (string, optional, default=\"" + defaultType + "\") The type of address. One of [\""
|
||||
+ ADDR_TYPE_SPROUT + "\", \"" + ADDR_TYPE_SAPLING + "\"].\n"
|
||||
|
|
Loading…
Reference in New Issue