Browse Source

Closes #2639. z_shieldcoinbase is now supported, no longer experimental.

This reverts commit 5023af7bd5.
pull/4/head
Simon 7 years ago
parent
commit
c2d3bafeaa
  1. 4
      qa/rpc-tests/wallet_shieldcoinbase.py
  2. 2
      src/init.cpp
  3. 11
      src/wallet/rpcwallet.cpp

4
qa/rpc-tests/wallet_shieldcoinbase.py

@ -18,11 +18,11 @@ class WalletShieldCoinbaseTest (BitcoinTestFramework):
initialize_chain_clean(self.options.tmpdir, 4)
def setup_network(self, split=False):
args = ['-regtestprotectcoinbase', '-debug=zrpcunsafe', '-experimentalfeatures', '-zshieldcoinbase']
args = ['-regtestprotectcoinbase', '-debug=zrpcunsafe']
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir, args))
self.nodes.append(start_node(1, self.options.tmpdir, args))
args2 = ['-regtestprotectcoinbase', '-debug=zrpcunsafe', '-experimentalfeatures', '-zshieldcoinbase', "-mempooltxinputlimit=7"]
args2 = ['-regtestprotectcoinbase', '-debug=zrpcunsafe', "-mempooltxinputlimit=7"]
self.nodes.append(start_node(2, self.options.tmpdir, args2))
connect_nodes_bi(self.nodes,0,1)
connect_nodes_bi(self.nodes,1,2)

2
src/init.cpp

@ -790,8 +790,6 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
if (!fExperimentalMode) {
if (mapArgs.count("-developerencryptwallet")) {
return InitError(_("Wallet encryption requires -experimentalfeatures."));
} else if (mapArgs.count("-zshieldcoinbase")) {
return InitError(_("RPC call z_shieldcoinbase requires -experimentalfeatures."));
}
}

11
src/wallet/rpcwallet.cpp

@ -3527,16 +3527,9 @@ UniValue z_shieldcoinbase(const UniValue& params, bool fHelp)
if (!EnsureWalletIsAvailable(fHelp))
return NullUniValue;
bool fEnableShieldCoinbase = fExperimentalMode && GetBoolArg("-zshieldcoinbase", false);
std::string strDisabledMsg = "";
if (!fEnableShieldCoinbase) {
strDisabledMsg = "\nWARNING: z_shieldcoinbase is DISABLED but can be enabled as an experimental feature.\n";
}
if (fHelp || params.size() < 2 || params.size() > 3)
throw runtime_error(
"z_shieldcoinbase \"fromaddress\" \"tozaddress\" ( fee )\n"
+ strDisabledMsg +
"\nShield transparent coinbase funds by sending to a shielded zaddr. This is an asynchronous operation and utxos"
"\nselected for shielding will be locked. If there is an error, they are unlocked. The RPC call `listlockunspent`"
"\ncan be used to return a list of locked utxos. The number of coinbase utxos selected for shielding is limited by"
@ -3558,10 +3551,6 @@ UniValue z_shieldcoinbase(const UniValue& params, bool fHelp)
"}\n"
);
if (!fEnableShieldCoinbase) {
throw JSONRPCError(RPC_WALLET_ERROR, "Error: z_shieldcoinbase is disabled.");
}
LOCK2(cs_main, pwalletMain->cs_wallet);
// Validate the from address

Loading…
Cancel
Save