From 6ff08712db3c6d1b4d9a4d72f6b1eaab3cfb7f4c Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 23 Jul 2018 06:02:25 -1100 Subject: [PATCH] Test --- src/rpcserver.cpp | 1 + src/rpcserver.h | 1 + src/wallet/rpcwallet.cpp | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index ab676ddae..c8a8c4291 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -347,6 +347,7 @@ static const CRPCCommand vRPCCommands[] = /* faucet */ { "faucet", "faucetfund", &faucetfund, true }, { "faucet", "faucetget", &faucetget, true }, + { "faucet", "faucetaddress", &faucetaddress, true }, /* tokens */ { "tokens", "tokenorders", &tokenorders, true }, diff --git a/src/rpcserver.h b/src/rpcserver.h index 021e2d274..5c330497a 100644 --- a/src/rpcserver.h +++ b/src/rpcserver.h @@ -223,6 +223,7 @@ extern UniValue tokenswapask(const UniValue& params, bool fHelp); extern UniValue tokenfillswap(const UniValue& params, bool fHelp); extern UniValue faucetfund(const UniValue& params, bool fHelp); extern UniValue faucetget(const UniValue& params, bool fHelp); +UniValue faucetaddress(const UniValue& params, bool fHelp); extern UniValue getnewaddress(const UniValue& params, bool fHelp); // in rpcwallet.cpp //extern UniValue getnewaddress64(const UniValue& params, bool fHelp); // in rpcwallet.cpp diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 91916d6a7..490992d7a 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -4842,6 +4842,27 @@ int32_t ensure_CCrequirements() #include "../cc/CCfaucet.h" +UniValue faucetaddress(const UniValue& params, bool fHelp) +{ + UniValue result(UniValue::VOBJ); std::vector pubkey; char destaddr[64]; + if ( fHelp || params.size() > 1 ) + throw runtime_error("faucetaddress [pubkey]\n"); + if ( ensure_CCrequirements() < 0 ) + throw runtime_error("to use CC contracts, you need to launch daemon with valid -pubkey= for an address in your wallet\n"); + result.push_back(Pair("result", "success")); + if ( GetCCaddress(FAUCET_ASSETS,destaddr,pubkey2pk(pubkey)) != 0 ) + result.push_back(Pair("AssetsCCaddress",destaddr)); + if ( params.size() == 1 ) + { + pubkey = ParseHex(params[0].get_str().c_str()); + if ( GetCCaddress(FAUCET_ASSETS,destaddr,pubkey2pk(pubkey)) != 0 ) + result.push_back(Pair("CCaddress",destaddr)); + } + if ( GetCCaddress(FAUCET_ASSETS,destaddr,pubkey2pk(Mypubkey())) != 0 ) + result.push_back(Pair("myCCaddress",destaddr)); + return(result); +} + UniValue faucetfund(const UniValue& params, bool fHelp) { UniValue result(UniValue::VOBJ); uint64_t funds; std::string hex;