Skip to content

Commit cb56b37

Browse files
committed
[Sapling][RPC] getnewsaplingaddress method created.
1 parent 06b6966 commit cb56b37

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/wallet/rpcwallet.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
#include "walletdb.h"
2121
#include "zpivchain.h"
2222

23+
#include "sapling/key_io_sapling.h"
24+
2325
#include <stdint.h>
2426

2527
#include "libzerocoin/Coin.h"
@@ -495,6 +497,29 @@ UniValue getnewstakingaddress(const JSONRPCRequest& request)
495497
return EncodeDestination(GetNewAddressFromLabel("coldstaking", request.params, CChainParams::STAKING_ADDRESS), CChainParams::STAKING_ADDRESS);
496498
}
497499

500+
UniValue getnewshieldedaddress(const JSONRPCRequest& request)
501+
{
502+
if (request.fHelp || request.params.size() > 1)
503+
throw std::runtime_error(
504+
"getnewshieldedaddress\n"
505+
"\nReturns a new shielded address for receiving payments.\n"
506+
"\nArguments:\n"
507+
"\nResult:\n"
508+
"\"address\" (string) The new shielded address.\n"
509+
"\nExamples:\n"
510+
+ HelpExampleCli("getnewshieldedaddress", "")
511+
+ HelpExampleRpc("getnewshieldedaddress", "")
512+
);
513+
514+
EnsureWallet();
515+
516+
LOCK2(cs_main, pwalletMain->cs_wallet);
517+
518+
EnsureWalletIsUnlocked();
519+
520+
return KeyIO::EncodePaymentAddress(pwalletMain->GenerateNewSaplingZKey());
521+
}
522+
498523
UniValue delegatoradd(const JSONRPCRequest& request)
499524
{
500525
if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
@@ -5005,6 +5030,9 @@ const CRPCCommand vWalletRPCCommands[] =
50055030
{ "wallet", "delegatoradd", &delegatoradd, true },
50065031
{ "wallet", "delegatorremove", &delegatorremove, true },
50075032

5033+
/** Sapling functions */
5034+
{ "wallet", "getnewshieldedaddress", &getnewshieldedaddress, true },
5035+
50085036
/** Account functions (deprecated) */
50095037
{ "wallet", "getaccountaddress", &getaccountaddress, true },
50105038
{ "wallet", "getaccount", &getaccount, true },

0 commit comments

Comments
 (0)