diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index f41f26195..82bbe0c12 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -772,11 +772,14 @@ Value getblocksubsidy(const Array& params, bool fHelp) if (fHelp || params.size() != 1) throw runtime_error( "getblocksubsidy height\n" - "\nReturns block subsidy reward, taking into account the mining slow start, of block at index provided.\n" + "\nReturns block subsidy reward, taking into account the mining slow start and the founders reward, of block at index provided.\n" "\nArguments:\n" "1. height (numeric, required) The block height.\n" "\nResult:\n" - "amount (numeric) The block reward amount in ZEC.\n" + "{\n" + " \"miner\" : x.xxx (numeric) The mining reward amount in ZEC.\n" + " \"founders\" : x.xxx (numeric) The founders reward amount in ZEC.\n" + "}\n" "\nExamples:\n" + HelpExampleCli("getblocksubsidy", "1000") + HelpExampleRpc("getblockubsidy", "1000") @@ -788,5 +791,13 @@ Value getblocksubsidy(const Array& params, bool fHelp) throw JSONRPCError(RPC_INVALID_PARAMETER, "Block height out of range"); CAmount nReward = GetBlockSubsidy(nHeight, Params().GetConsensus()); - return ValueFromAmount(nReward); + CAmount nFoundersReward = 0; + if ((nHeight > 0) && (nHeight < Params().GetConsensus().nSubsidyHalvingInterval)) { + nFoundersReward = nReward/5; + nReward -= nFoundersReward; + } + Object result; + result.push_back(Pair("miner", ValueFromAmount(nReward))); + result.push_back(Pair("founders", ValueFromAmount(nFoundersReward))); + return result; }