Skip to content

Commit

Permalink
Add hashFinalSaplingRoot to getblocktemplate
Browse files Browse the repository at this point in the history
  • Loading branch information
Eirik Ogilvie-Wigley committed Jun 1, 2018
1 parent bae5adf commit 25c13ef
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
11 changes: 8 additions & 3 deletions qa/rpc-tests/getblocktemplate.py
Expand Up @@ -4,8 +4,8 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import initialize_chain_clean, start_nodes, \
connect_nodes_bi
from test_framework.util import assert_equal, connect_nodes_bi, \
initialize_chain_clean, start_nodes


class GetBlockTemplateTest(BitcoinTestFramework):
Expand Down Expand Up @@ -49,11 +49,16 @@ def run_test(self):

# Test 5: General checks
tmpl = node.getblocktemplate()
assert(len(tmpl['noncerange']) == 16)
assert_equal(16, len(tmpl['noncerange']))

# Test 6: coinbasetxn checks
assert('foundersreward' in tmpl['coinbasetxn'])
assert(tmpl['coinbasetxn']['required'])

# Test 7: hashFinalSaplingRoot checks
assert('finalsaplingroothash' in tmpl)
finalsaplingroothash = '3e49b5f954aa9d3545bc6c37744661eea48d7c34e3000d82b7f0010c30f4c2fb'
assert_equal(finalsaplingroothash, tmpl['finalsaplingroothash'])

if __name__ == '__main__':
GetBlockTemplateTest().main()
6 changes: 4 additions & 2 deletions src/rpcmining.cpp
Expand Up @@ -447,9 +447,10 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)

"\nResult:\n"
"{\n"
" \"version\" : n, (numeric) The block version\n"
" \"version\" : n, (numeric) The block version\n"
" \"previousblockhash\" : \"xxxx\", (string) The hash of current highest block\n"
" \"transactions\" : [ (array) contents of non-coinbase transactions that should be included in the next block\n"
" \"finalsaplingroothash\" : \"xxxx\", (string) The hash of the final sapling root\n"
" \"transactions\" : [ (array) contents of non-coinbase transactions that should be included in the next block\n"
" {\n"
" \"data\" : \"xxxx\", (string) transaction data encoded in hexadecimal (byte-for-byte)\n"
" \"hash\" : \"xxxx\", (string) hash/id encoded in little-endian hexadecimal\n"
Expand Down Expand Up @@ -706,6 +707,7 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
result.push_back(Pair("capabilities", aCaps));
result.push_back(Pair("version", pblock->nVersion));
result.push_back(Pair("previousblockhash", pblock->hashPrevBlock.GetHex()));
result.push_back(Pair("finalsaplingroothash", pblock->hashFinalSaplingRoot.GetHex()));
result.push_back(Pair("transactions", transactions));
if (coinbasetxn) {
assert(txCoinbase.isObject());
Expand Down

0 comments on commit 25c13ef

Please sign in to comment.