From 5432530df447fd2f01db31d135bc79a21f9d4a7f Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Mon, 25 May 2020 16:41:39 +0300 Subject: [PATCH] result: use witnesses field in result.Header JSON Follow new Neo 3.0 standard for these outputs. --- pkg/rpc/client/rpc_test.go | 6 +++--- pkg/rpc/response/result/block_header.go | 24 ++++++++++++------------ pkg/rpc/server/server_test.go | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pkg/rpc/client/rpc_test.go b/pkg/rpc/client/rpc_test.go index 838a91ad2..feaaca5c8 100644 --- a/pkg/rpc/client/rpc_test.go +++ b/pkg/rpc/client/rpc_test.go @@ -469,7 +469,7 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ } return c.GetBlockHeaderVerbose(hash) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0xe93d17a52967f9e69314385482bf86f85260e811b46bf4d4b261a7f4135a623c","size":442,"version":0,"previousblockhash":"0x996e37358dc369912041f966f8c5d8d3a8255ba5dcbd3447f8a82b55db869099","merkleroot":"0xcb6ddb5f99d6af4c94a6c396d5294472f2eebc91a2c933e0f527422296fa9fb2","time":1541215200,"index":1,"nonce":"51b484a2fe49ed4d","nextconsensus":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","script":{"invocation":"40356a91d94e398170e47447d6a0f60aa5470e209782a5452403115a49166db3e1c4a3898122db19f779c30f8ccd0b7d401acdf71eda340655e4ae5237a64961bf4034dd47955e5a71627dafc39dd92999140e9eaeec6b11dbb2b313efa3f1093ed915b4455e199c69ec53778f94ffc236b92f8b97fff97a1f6bbb3770c0c0b3844a40fbe743bd5c90b2f5255e0b073281d7aeb2fb516572f36bec8446bcc37ac755cbf10d08b16c95644db1b2dddc2df5daa377880b20198fc7b967ac6e76474b22df","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"},"confirmations":20061,"nextblockhash":"0xcc37d5bc460e72c9423015cb8d579c13e7b03b93bfaa1a23cf4fa777988e035f"}}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0xe93d17a52967f9e69314385482bf86f85260e811b46bf4d4b261a7f4135a623c","size":442,"version":0,"previousblockhash":"0x996e37358dc369912041f966f8c5d8d3a8255ba5dcbd3447f8a82b55db869099","merkleroot":"0xcb6ddb5f99d6af4c94a6c396d5294472f2eebc91a2c933e0f527422296fa9fb2","time":1541215200,"index":1,"nonce":"51b484a2fe49ed4d","nextconsensus":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","witnesses":[{"invocation":"40356a91d94e398170e47447d6a0f60aa5470e209782a5452403115a49166db3e1c4a3898122db19f779c30f8ccd0b7d401acdf71eda340655e4ae5237a64961bf4034dd47955e5a71627dafc39dd92999140e9eaeec6b11dbb2b313efa3f1093ed915b4455e199c69ec53778f94ffc236b92f8b97fff97a1f6bbb3770c0c0b3844a40fbe743bd5c90b2f5255e0b073281d7aeb2fb516572f36bec8446bcc37ac755cbf10d08b16c95644db1b2dddc2df5daa377880b20198fc7b967ac6e76474b22df","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"}],"confirmations":20061,"nextblockhash":"0xcc37d5bc460e72c9423015cb8d579c13e7b03b93bfaa1a23cf4fa777988e035f"}}`, result: func(c *Client) interface{} { hash, err := util.Uint256DecodeStringLE("e93d17a52967f9e69314385482bf86f85260e811b46bf4d4b261a7f4135a623c") if err != nil { @@ -506,10 +506,10 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ Index: 1, NextConsensus: "AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU", Confirmations: 20061, - Script: transaction.Witness{ + Witnesses: []transaction.Witness{{ InvocationScript: invScript, VerificationScript: verifScript, - }, + }}, } }, }, diff --git a/pkg/rpc/response/result/block_header.go b/pkg/rpc/response/result/block_header.go index 1eeabd4eb..6e087883e 100644 --- a/pkg/rpc/response/result/block_header.go +++ b/pkg/rpc/response/result/block_header.go @@ -13,17 +13,17 @@ type ( // Header wrapper used for the representation of // block header on the RPC Server. Header struct { - Hash util.Uint256 `json:"hash"` - Size int `json:"size"` - Version uint32 `json:"version"` - PrevBlockHash util.Uint256 `json:"previousblockhash"` - MerkleRoot util.Uint256 `json:"merkleroot"` - Timestamp uint64 `json:"time"` - Index uint32 `json:"index"` - NextConsensus string `json:"nextconsensus"` - Script transaction.Witness `json:"script"` - Confirmations uint32 `json:"confirmations"` - NextBlockHash *util.Uint256 `json:"nextblockhash,omitempty"` + Hash util.Uint256 `json:"hash"` + Size int `json:"size"` + Version uint32 `json:"version"` + PrevBlockHash util.Uint256 `json:"previousblockhash"` + MerkleRoot util.Uint256 `json:"merkleroot"` + Timestamp uint64 `json:"time"` + Index uint32 `json:"index"` + NextConsensus string `json:"nextconsensus"` + Witnesses []transaction.Witness `json:"witnesses"` + Confirmations uint32 `json:"confirmations"` + NextBlockHash *util.Uint256 `json:"nextblockhash,omitempty"` } ) @@ -38,7 +38,7 @@ func NewHeader(h *block.Header, chain blockchainer.Blockchainer) Header { Timestamp: h.Timestamp, Index: h.Index, NextConsensus: address.Uint160ToString(h.NextConsensus), - Script: h.Script, + Witnesses: []transaction.Witness{h.Script}, Confirmations: chain.BlockHeight() - h.Index + 1, } diff --git a/pkg/rpc/server/server_test.go b/pkg/rpc/server/server_test.go index 5af4908c1..1bcb382b5 100644 --- a/pkg/rpc/server/server_test.go +++ b/pkg/rpc/server/server_test.go @@ -1041,7 +1041,7 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) [] Timestamp: hdr.Timestamp, Index: hdr.Index, NextConsensus: address.Uint160ToString(hdr.NextConsensus), - Script: hdr.Script, + Witnesses: []transaction.Witness{hdr.Script}, Confirmations: e.chain.BlockHeight() - hdr.Index + 1, NextBlockHash: &nextHash, }