Auto merge of #4178 - oxarbitrage:issue3731, r=str4d
Remove z_mergetoaddress from experimental state Closes #3731.
This commit is contained in:
commit
fd8444d0b7
|
@ -41,12 +41,12 @@ class MergeToAddressHelper:
|
||||||
initialize_chain_clean(test.options.tmpdir, 4)
|
initialize_chain_clean(test.options.tmpdir, 4)
|
||||||
|
|
||||||
def setup_network(self, test, additional_args=[]):
|
def setup_network(self, test, additional_args=[]):
|
||||||
args = ['-debug=zrpcunsafe', '-experimentalfeatures', '-zmergetoaddress']
|
args = ['-debug=zrpcunsafe']
|
||||||
args += additional_args
|
args += additional_args
|
||||||
test.nodes = []
|
test.nodes = []
|
||||||
test.nodes.append(start_node(0, test.options.tmpdir, args))
|
test.nodes.append(start_node(0, test.options.tmpdir, args))
|
||||||
test.nodes.append(start_node(1, test.options.tmpdir, args))
|
test.nodes.append(start_node(1, test.options.tmpdir, args))
|
||||||
args2 = ['-debug=zrpcunsafe', '-experimentalfeatures', '-zmergetoaddress', '-mempooltxinputlimit=7']
|
args2 = ['-debug=zrpcunsafe', '-mempooltxinputlimit=7']
|
||||||
args2 += additional_args
|
args2 += additional_args
|
||||||
test.nodes.append(start_node(2, test.options.tmpdir, args2))
|
test.nodes.append(start_node(2, test.options.tmpdir, args2))
|
||||||
connect_nodes_bi(test.nodes, 0, 1)
|
connect_nodes_bi(test.nodes, 0, 1)
|
||||||
|
|
|
@ -14,9 +14,7 @@ from mergetoaddress_helper import assert_mergetoaddress_exception
|
||||||
|
|
||||||
class MergeToAddressMixedNotes(BitcoinTestFramework):
|
class MergeToAddressMixedNotes(BitcoinTestFramework):
|
||||||
def setup_nodes(self):
|
def setup_nodes(self):
|
||||||
return start_nodes(4, self.options.tmpdir, [[
|
return start_nodes(4, self.options.tmpdir)
|
||||||
'-experimentalfeatures', '-zmergetoaddress'
|
|
||||||
]] * 4)
|
|
||||||
|
|
||||||
def setup_chain(self):
|
def setup_chain(self):
|
||||||
print("Initializing test directory " + self.options.tmpdir)
|
print("Initializing test directory " + self.options.tmpdir)
|
||||||
|
|
|
@ -27,8 +27,7 @@ class WalletChangeAddressesTest(BitcoinTestFramework):
|
||||||
args = [
|
args = [
|
||||||
'-nuparams=5ba81b19:1', # Overwinter
|
'-nuparams=5ba81b19:1', # Overwinter
|
||||||
'-nuparams=76b809bb:1', # Sapling
|
'-nuparams=76b809bb:1', # Sapling
|
||||||
'-txindex', # Avoid JSONRPC error: No information available about transaction
|
'-txindex' # Avoid JSONRPC error: No information available about transaction
|
||||||
'-experimentalfeatures', '-zmergetoaddress',
|
|
||||||
]
|
]
|
||||||
self.nodes = []
|
self.nodes = []
|
||||||
self.nodes.append(start_node(0, self.options.tmpdir, args))
|
self.nodes.append(start_node(0, self.options.tmpdir, args))
|
||||||
|
|
|
@ -20,9 +20,7 @@ from decimal import Decimal
|
||||||
class WalletSaplingTest(BitcoinTestFramework):
|
class WalletSaplingTest(BitcoinTestFramework):
|
||||||
|
|
||||||
def setup_nodes(self):
|
def setup_nodes(self):
|
||||||
return start_nodes(4, self.options.tmpdir, [[
|
return start_nodes(4, self.options.tmpdir)
|
||||||
'-experimentalfeatures', '-zmergetoaddress',
|
|
||||||
]] * 4)
|
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
# Sanity-check the test harness
|
# Sanity-check the test harness
|
||||||
|
|
|
@ -848,8 +848,6 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
||||||
return InitError(_("Setting the size of shielded pools to zero requires -experimentalfeatures."));
|
return InitError(_("Setting the size of shielded pools to zero requires -experimentalfeatures."));
|
||||||
} else if (mapArgs.count("-paymentdisclosure")) {
|
} else if (mapArgs.count("-paymentdisclosure")) {
|
||||||
return InitError(_("Payment disclosure requires -experimentalfeatures."));
|
return InitError(_("Payment disclosure requires -experimentalfeatures."));
|
||||||
} else if (mapArgs.count("-zmergetoaddress")) {
|
|
||||||
return InitError(_("RPC method z_mergetoaddress requires -experimentalfeatures."));
|
|
||||||
} else if (mapArgs.count("-insightexplorer")) {
|
} else if (mapArgs.count("-insightexplorer")) {
|
||||||
return InitError(_("Insight explorer requires -experimentalfeatures."));
|
return InitError(_("Insight explorer requires -experimentalfeatures."));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1686,13 +1686,6 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters)
|
||||||
|
|
||||||
LOCK(pwalletMain->cs_wallet);
|
LOCK(pwalletMain->cs_wallet);
|
||||||
|
|
||||||
CheckRPCThrows("z_mergetoaddress 1 2",
|
|
||||||
"Error: z_mergetoaddress is disabled. Run './zcash-cli help z_mergetoaddress' for instructions on how to enable this feature.");
|
|
||||||
|
|
||||||
// Set global state required for z_mergetoaddress
|
|
||||||
fExperimentalMode = true;
|
|
||||||
mapArgs["-zmergetoaddress"] = "1";
|
|
||||||
|
|
||||||
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress"), runtime_error);
|
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress"), runtime_error);
|
||||||
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress toofewargs"), runtime_error);
|
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress toofewargs"), runtime_error);
|
||||||
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress just too many args present for this method"), runtime_error);
|
BOOST_CHECK_THROW(CallRPC("z_mergetoaddress just too many args present for this method"), runtime_error);
|
||||||
|
@ -1830,10 +1823,6 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters)
|
||||||
} catch (const UniValue& objError) {
|
} catch (const UniValue& objError) {
|
||||||
BOOST_CHECK( find_error(objError, "Invalid recipient address"));
|
BOOST_CHECK( find_error(objError, "Invalid recipient address"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Un-set global state
|
|
||||||
fExperimentalMode = false;
|
|
||||||
mapArgs.erase("-zmergetoaddress");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4262,17 +4262,9 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp)
|
||||||
if (!EnsureWalletIsAvailable(fHelp))
|
if (!EnsureWalletIsAvailable(fHelp))
|
||||||
return NullUniValue;
|
return NullUniValue;
|
||||||
|
|
||||||
string enableArg = "zmergetoaddress";
|
|
||||||
auto fEnableMergeToAddress = fExperimentalMode && GetBoolArg("-" + enableArg, false);
|
|
||||||
std::string strDisabledMsg = "";
|
|
||||||
if (!fEnableMergeToAddress) {
|
|
||||||
strDisabledMsg = experimentalDisabledHelpMsg("z_mergetoaddress", enableArg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fHelp || params.size() < 2 || params.size() > 6)
|
if (fHelp || params.size() < 2 || params.size() > 6)
|
||||||
throw runtime_error(
|
throw runtime_error(
|
||||||
"z_mergetoaddress [\"fromaddress\", ... ] \"toaddress\" ( fee ) ( transparent_limit ) ( shielded_limit ) ( memo )\n"
|
"z_mergetoaddress [\"fromaddress\", ... ] \"toaddress\" ( fee ) ( transparent_limit ) ( shielded_limit ) ( memo )\n"
|
||||||
+ strDisabledMsg +
|
|
||||||
"\nMerge multiple UTXOs and notes into a single UTXO or note. Coinbase UTXOs are ignored; use `z_shieldcoinbase`"
|
"\nMerge multiple UTXOs and notes into a single UTXO or note. Coinbase UTXOs are ignored; use `z_shieldcoinbase`"
|
||||||
"\nto combine those into a single note."
|
"\nto combine those into a single note."
|
||||||
"\n\nThis is an asynchronous operation, and UTXOs selected for merging will be locked. If there is an error, they"
|
"\n\nThis is an asynchronous operation, and UTXOs selected for merging will be locked. If there is an error, they"
|
||||||
|
@ -4323,10 +4315,6 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp)
|
||||||
+ HelpExampleRpc("z_mergetoaddress", "[\"ANY_SAPLING\", \"t1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\"], \"ztestsapling19rnyu293v44f0kvtmszhx35lpdug574twc0lwyf4s7w0umtkrdq5nfcauxrxcyfmh3m7slemqsj\"")
|
+ HelpExampleRpc("z_mergetoaddress", "[\"ANY_SAPLING\", \"t1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\"], \"ztestsapling19rnyu293v44f0kvtmszhx35lpdug574twc0lwyf4s7w0umtkrdq5nfcauxrxcyfmh3m7slemqsj\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!fEnableMergeToAddress) {
|
|
||||||
throw JSONRPCError(RPC_WALLET_ERROR, "Error: z_mergetoaddress is disabled. Run './zcash-cli help z_mergetoaddress' for instructions on how to enable this feature.");
|
|
||||||
}
|
|
||||||
|
|
||||||
LOCK2(cs_main, pwalletMain->cs_wallet);
|
LOCK2(cs_main, pwalletMain->cs_wallet);
|
||||||
|
|
||||||
bool useAnyUTXO = false;
|
bool useAnyUTXO = false;
|
||||||
|
|
Loading…
Reference in New Issue