From 25f1f7dc615c4b5f395039b71ed34d8dfc436d00 Mon Sep 17 00:00:00 2001 From: Eirik Ogilvie-Wigley Date: Tue, 11 Dec 2018 14:25:35 -0700 Subject: [PATCH] Update z_mergetoaddress documentation --- src/test/rpc_wallet_tests.cpp | 8 ++++---- src/wallet/rpcwallet.cpp | 37 +++++++++++++++++++---------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/test/rpc_wallet_tests.cpp b/src/test/rpc_wallet_tests.cpp index b3ad832d2..418d4843d 100644 --- a/src/test/rpc_wallet_tests.cpp +++ b/src/test/rpc_wallet_tests.cpp @@ -1689,7 +1689,7 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters) LOCK(pwalletMain->cs_wallet); CheckRPCThrows("z_mergetoaddress 1 2", - "Error: z_mergetoaddress is disabled."); + "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; @@ -1752,13 +1752,13 @@ BOOST_AUTO_TEST_CASE(rpc_z_mergetoaddress_parameters) "Limit on maximum number of notes cannot be negative"); CheckRPCThrows("z_mergetoaddress [\"ANY_TADDR\",\"" + taddr1 + "\"] " + taddr2, - "Cannot specify specific t-addrs when using \"ANY_TADDR\""); + "Cannot specify specific taddrs when using \"ANY_TADDR\""); CheckRPCThrows("z_mergetoaddress [\"ANY_SPROUT\",\"" + aSproutAddr + "\"] " + taddr2, - "Cannot specify specific z-addrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); + "Cannot specify specific zaddrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); CheckRPCThrows("z_mergetoaddress [\"ANY_SAPLING\",\"" + aSaplingAddr + "\"] " + taddr2, - "Cannot specify specific z-addrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); + "Cannot specify specific zaddrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); // memo bigger than allowed length of ZC_MEMO_SIZE std::vector v (2 * (ZC_MEMO_SIZE+1)); // x2 for hexadecimal string format diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 38f117de0..1ddfa0fe3 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -4153,28 +4153,31 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp) "\nare unlocked. The RPC call `listlockunspent` can be used to return a list of locked UTXOs." "\n\nThe number of UTXOs and notes selected for merging can be limited by the caller. If the transparent limit" "\nparameter is set to zero, and Overwinter is not yet active, the -mempooltxinputlimit option will determine the" - "\nnumber of UTXOs. Any limit is constrained by the consensus rule defining a maximum transaction size of" - + strprintf("\n%d bytes before Sapling, and %d bytes once Sapling activates.", MAX_TX_SIZE_BEFORE_SAPLING, MAX_TX_SIZE_AFTER_SAPLING) + "\nnumber of UTXOs. After Overwinter has activated -mempooltxinputlimit is ignored and having a transparent" + "\ninput limit of zero will mean limit the number of UTXOs based on the size of the transaction. Any limit is" + "\nconstrained by the consensus rule defining a maximum transaction size of " + + strprintf("%d bytes before Sapling, and %d", MAX_TX_SIZE_BEFORE_SAPLING, MAX_TX_SIZE_AFTER_SAPLING) + + "\nbytes once Sapling activates." + HelpRequiringPassphrase() + "\n" "\nArguments:\n" - "1. fromaddresses (string, required) A JSON array with addresses.\n" + "1. fromaddresses (array, required) A JSON array with addresses.\n" " The following special strings are accepted inside the array:\n" - " - \"ANY_TADDR\": Merge UTXOs from any t-addrs belonging to the wallet.\n" - " - \"ANY_SPROUT\": Merge notes from any Sprout z-addrs belonging to the wallet.\n" - " - \"ANY_SAPLING\": Merge notes from any Sapling z-addrs belonging to the wallet.\n" - " If a special string is given, any given addresses of that type will be ignored.\n" + " - \"ANY_TADDR\": Merge UTXOs from any taddrs belonging to the wallet.\n" + " - \"ANY_SPROUT\": Merge notes from any Sprout zaddrs belonging to the wallet.\n" + " - \"ANY_SAPLING\": Merge notes from any Sapling zaddrs belonging to the wallet.\n" + " If a special string is given, any given addresses of that type will be counted as duplicates and cause an error.\n" " [\n" - " \"address\" (string) Can be a t-addr or a z-addr\n" + " \"address\" (string) Can be a taddr or a zaddr\n" " ,...\n" " ]\n" - "2. \"toaddress\" (string, required) The t-addr or z-addr to send the funds to.\n" + "2. \"toaddress\" (string, required) The taddr or zaddr to send the funds to.\n" "3. fee (numeric, optional, default=" + strprintf("%s", FormatMoney(MERGE_TO_ADDRESS_OPERATION_DEFAULT_MINERS_FEE)) + ") The fee amount to attach to this transaction.\n" "4. transparent_limit (numeric, optional, default=" + strprintf("%d", MERGE_TO_ADDRESS_DEFAULT_TRANSPARENT_LIMIT) + ") Limit on the maximum number of UTXOs to merge. Set to 0 to use node option -mempooltxinputlimit (before Overwinter), or as many as will fit in the transaction (after Overwinter).\n" - "4. shielded_limit (numeric, optional, default=" + "5. shielded_limit (numeric, optional, default=" + strprintf("%d Sprout or %d Sapling Notes", MERGE_TO_ADDRESS_DEFAULT_SPROUT_LIMIT, MERGE_TO_ADDRESS_DEFAULT_SAPLING_LIMIT) + ") Limit on the maximum number of notes to merge. Set to 0 to merge as many as will fit in the transaction.\n" - "5. \"memo\" (string, optional) Encoded as hex. When toaddress is a z-addr, this will be stored in the memo field of the new note.\n" + "6. \"memo\" (string, optional) Encoded as hex. When toaddress is a zaddr, this will be stored in the memo field of the new note.\n" "\nResult:\n" "{\n" " \"remainingUTXOs\": xxx (numeric) Number of UTXOs still available for merging.\n" @@ -4185,15 +4188,15 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp) " \"mergingTransparentValue\": xxx (numeric) Value of UTXOs being merged.\n" " \"mergingNotes\": xxx (numeric) Number of notes being merged.\n" " \"mergingShieldedValue\": xxx (numeric) Value of notes being merged.\n" - " \"opid\": xxx (string) An operationid to pass to z_getoperationstatus to get the result of the operation.\n" + " \"opid\": xxx (string) An operationid to pass to z_getoperationstatus to get the result of the operation.\n" "}\n" "\nExamples:\n" - + HelpExampleCli("z_mergetoaddress", "'[\"t1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\"]' ztfaW34Gj9FrnGUEf833ywDVL62NWXBM81u6EQnM6VR45eYnXhwztecW1SjxA7JrmAXKJhxhj3vDNEpVCQoSvVoSpmbhtjf") - + HelpExampleRpc("z_mergetoaddress", "[\"t1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\"], \"ztfaW34Gj9FrnGUEf833ywDVL62NWXBM81u6EQnM6VR45eYnXhwztecW1SjxA7JrmAXKJhxhj3vDNEpVCQoSvVoSpmbhtjf\"") + + HelpExampleCli("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."); + 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); @@ -4244,10 +4247,10 @@ UniValue z_mergetoaddress(const UniValue& params, bool fHelp) } if (useAnyUTXO && taddrs.size() > 0) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific t-addrs when using \"ANY_TADDR\""); + throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific taddrs when using \"ANY_TADDR\""); } if ((useAnySprout || useAnySapling) && zaddrs.size() > 0) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific z-addrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); + throw JSONRPCError(RPC_INVALID_PARAMETER, "Cannot specify specific zaddrs when using \"ANY_SPROUT\" or \"ANY_SAPLING\""); } const int nextBlockHeight = chainActive.Height() + 1;