rpc: add one to the block height for the getblockcount response

There is a difference in interpretation of what a block count is. neo-go nodes
currently respond to this request with the latest block number which is the
same number that neoscan.io shows. However, C# nodes deliberately do add one
to this number when answering to the getblockcount request to account for the
genesis block number 0.

This patch makes us consistent with C# nodes wrt to getblockcount behaviour.
This commit is contained in:
Roman Khimov 2019-11-01 20:13:00 +03:00
parent 70e4529848
commit de2eeb4671
2 changed files with 2 additions and 2 deletions

View file

@ -157,7 +157,7 @@ Methods:
results = wrappers.NewBlock(block, s.chain) results = wrappers.NewBlock(block, s.chain)
case "getblockcount": case "getblockcount":
getblockcountCalled.Inc() getblockcountCalled.Inc()
results = s.chain.BlockHeight() results = s.chain.BlockHeight() + 1
case "getblockhash": case "getblockhash":
getblockHashCalled.Inc() getblockHashCalled.Inc()

View file

@ -51,7 +51,7 @@ func TestRPC(t *testing.T) {
var res IntResultResponse var res IntResultResponse
err := json.Unmarshal(bytes.TrimSpace(body), &res) err := json.Unmarshal(bytes.TrimSpace(body), &res)
assert.NoErrorf(t, err, "could not parse response: %s", body) assert.NoErrorf(t, err, "could not parse response: %s", body)
assert.Equal(t, chain.BlockHeight(), uint32(res.Result)) assert.Equal(t, chain.BlockHeight()+1, uint32(res.Result))
}) })
t.Run("getblockhash", func(t *testing.T) { t.Run("getblockhash", func(t *testing.T) {