From 55fd9f8d24cf2c2677ced90cd1b2258347335cb5 Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Wed, 22 Apr 2020 08:57:55 +0300 Subject: [PATCH] core: change block.ConsensusData to neo3 format 1. Dropped `Base.ConsensusData` block field 2. Added `Block.ConsensusData` field with `Nonce` and `PrimaryIndex` 3. Removed "Neo.Header.GetConsensusData" and "AntShares.Header.GetConsensusData" interops --- pkg/consensus/block.go | 4 +- pkg/core/block/block.go | 72 ++++++++++++++---- pkg/core/block/block_base.go | 5 -- pkg/core/block/block_test.go | 5 +- pkg/core/block/consensus_data.go | 52 +++++++++++++ pkg/core/block/header_test.go | 2 - pkg/core/helper_test.go | 10 ++- pkg/core/interop_neo.go | 10 --- pkg/core/interop_neo_test.go | 10 --- pkg/core/interops.go | 2 - pkg/core/interops_test.go | 1 - pkg/core/util.go | 5 +- pkg/core/util_test.go | 2 +- pkg/rpc/client/rpc_test.go | 97 +++++++++++++----------- pkg/rpc/response/result/block.go | 17 ++++- pkg/rpc/response/result/block_header.go | 4 - pkg/rpc/server/server_test.go | 7 +- pkg/rpc/server/testdata/testblocks.acc | Bin 205089 -> 205297 bytes 18 files changed, 196 insertions(+), 109 deletions(-) create mode 100644 pkg/core/block/consensus_data.go diff --git a/pkg/consensus/block.go b/pkg/consensus/block.go index 845e6a2d7..cd6ccb5d6 100644 --- a/pkg/consensus/block.go +++ b/pkg/consensus/block.go @@ -86,10 +86,10 @@ func (n *neoBlock) Index() uint32 { return n.Block.Index } func (n *neoBlock) SetIndex(i uint32) { n.Block.Index = i } // ConsensusData implements block.Block interface. -func (n *neoBlock) ConsensusData() uint64 { return n.Block.ConsensusData } +func (n *neoBlock) ConsensusData() uint64 { return n.Block.ConsensusData.Nonce } // SetConsensusData implements block.Block interface. -func (n *neoBlock) SetConsensusData(nonce uint64) { n.Block.ConsensusData = nonce } +func (n *neoBlock) SetConsensusData(nonce uint64) { n.Block.ConsensusData.Nonce = nonce } // NextConsensus implements block.Block interface. func (n *neoBlock) NextConsensus() util.Uint160 { return n.Block.NextConsensus } diff --git a/pkg/core/block/block.go b/pkg/core/block/block.go index 37ec73847..846069335 100644 --- a/pkg/core/block/block.go +++ b/pkg/core/block/block.go @@ -16,6 +16,9 @@ type Block struct { // The base of the block. Base + // Primary index and nonce + ConsensusData ConsensusData `json:"consensus_data"` + // Transaction list. Transactions []*transaction.Transaction `json:"tx"` @@ -30,10 +33,12 @@ func (b *Block) Header() *Header { } } -func merkleTreeFromTransactions(txes []*transaction.Transaction) (*hash.MerkleTree, error) { - hashes := make([]util.Uint256, len(txes)) - for i, tx := range txes { - hashes[i] = tx.Hash() +// computeMerkleTree computes Merkle tree based on actual block's data. +func (b *Block) computeMerkleTree() (*hash.MerkleTree, error) { + hashes := make([]util.Uint256, len(b.Transactions)+1) + hashes[0] = b.ConsensusData.Hash() + for i, tx := range b.Transactions { + hashes[i+1] = tx.Hash() } return hash.NewMerkleTree(hashes) @@ -41,7 +46,7 @@ func merkleTreeFromTransactions(txes []*transaction.Transaction) (*hash.MerkleTr // RebuildMerkleRoot rebuilds the merkleroot of the block. func (b *Block) RebuildMerkleRoot() error { - merkle, err := merkleTreeFromTransactions(b.Transactions) + merkle, err := b.computeMerkleTree() if err != nil { return err } @@ -66,7 +71,7 @@ func (b *Block) Verify() error { return fmt.Errorf("miner transaction %s is not the first one", tx.Hash().StringLE()) } } - merkle, err := merkleTreeFromTransactions(b.Transactions) + merkle, err := b.computeMerkleTree() if err != nil { return err } @@ -92,12 +97,18 @@ func NewBlockFromTrimmedBytes(b []byte) (*Block, error) { block.Script.DecodeBinary(br) - lenTX := br.ReadVarUint() - block.Transactions = make([]*transaction.Transaction, lenTX) - for i := 0; i < int(lenTX); i++ { - var hash util.Uint256 - hash.DecodeBinary(br) - block.Transactions[i] = transaction.NewTrimmedTX(hash) + lenHashes := br.ReadVarUint() + if lenHashes > 0 { + var consensusDataHash util.Uint256 + consensusDataHash.DecodeBinary(br) + lenTX := lenHashes - 1 + block.Transactions = make([]*transaction.Transaction, lenTX) + for i := 0; i < int(lenTX); i++ { + var hash util.Uint256 + hash.DecodeBinary(br) + block.Transactions[i] = transaction.NewTrimmedTX(hash) + } + block.ConsensusData.DecodeBinary(br) } return block, br.Err @@ -112,14 +123,20 @@ func (b *Block) Trim() ([]byte, error) { buf.WriteB(1) b.Script.EncodeBinary(buf.BinWriter) - buf.WriteVarUint(uint64(len(b.Transactions))) + buf.WriteVarUint(uint64(len(b.Transactions)) + 1) + hash := b.ConsensusData.Hash() + hash.EncodeBinary(buf.BinWriter) + for _, tx := range b.Transactions { h := tx.Hash() h.EncodeBinary(buf.BinWriter) } + + b.ConsensusData.EncodeBinary(buf.BinWriter) if buf.Err != nil { return nil, buf.Err } + return buf.Bytes(), nil } @@ -127,14 +144,39 @@ func (b *Block) Trim() ([]byte, error) { // Serializable interface. func (b *Block) DecodeBinary(br *io.BinReader) { b.Base.DecodeBinary(br) - br.ReadArray(&b.Transactions) + contentsCount := br.ReadVarUint() + if contentsCount == 0 { + br.Err = errors.New("invalid block format") + return + } + b.ConsensusData.DecodeBinary(br) + txes := make([]*transaction.Transaction, contentsCount-1) + for i := 0; i < int(contentsCount)-1; i++ { + tx := new(transaction.Transaction) + tx.DecodeBinary(br) + txes[i] = tx + } + b.Transactions = txes + merkle, err := b.computeMerkleTree() + if err != nil { + br.Err = err + return + } + if !b.MerkleRoot.Equals(merkle.Root()) { + br.Err = errors.New("MerkleRoot mismatch") + return + } } // EncodeBinary encodes the block to the given BinWriter, implementing // Serializable interface. func (b *Block) EncodeBinary(bw *io.BinWriter) { b.Base.EncodeBinary(bw) - bw.WriteArray(b.Transactions) + bw.WriteVarUint(uint64(len(b.Transactions) + 1)) + b.ConsensusData.EncodeBinary(bw) + for i := 0; i < len(b.Transactions); i++ { + b.Transactions[i].EncodeBinary(bw) + } } // Compare implements the queue Item interface. diff --git a/pkg/core/block/block_base.go b/pkg/core/block/block_base.go index f32e17b05..3b4073a5a 100644 --- a/pkg/core/block/block_base.go +++ b/pkg/core/block/block_base.go @@ -29,9 +29,6 @@ type Base struct { // index/height of the block Index uint32 `json:"height"` - // Random number also called nonce - ConsensusData uint64 `json:"nonce"` - // Contract address of the next miner NextConsensus util.Uint160 `json:"next_consensus"` @@ -120,7 +117,6 @@ func (b *Base) encodeHashableFields(bw *io.BinWriter) { bw.WriteBytes(b.MerkleRoot[:]) bw.WriteU64LE(b.Timestamp) bw.WriteU32LE(b.Index) - bw.WriteU64LE(b.ConsensusData) bw.WriteBytes(b.NextConsensus[:]) } @@ -132,7 +128,6 @@ func (b *Base) decodeHashableFields(br *io.BinReader) { br.ReadBytes(b.MerkleRoot[:]) b.Timestamp = br.ReadU64LE() b.Index = br.ReadU32LE() - b.ConsensusData = br.ReadU64LE() br.ReadBytes(b.NextConsensus[:]) // Make the hash of the block here so we dont need to do this diff --git a/pkg/core/block/block_test.go b/pkg/core/block/block_test.go index 7fafc2c58..534002903 100644 --- a/pkg/core/block/block_test.go +++ b/pkg/core/block/block_test.go @@ -73,13 +73,16 @@ func newDumbBlock() *Block { MerkleRoot: hash.Sha256([]byte("b")), Timestamp: 100500, Index: 1, - ConsensusData: 1111, NextConsensus: hash.Hash160([]byte("a")), Script: transaction.Witness{ VerificationScript: []byte{0x51}, // PUSH1 InvocationScript: []byte{0x61}, // NOP }, }, + ConsensusData: ConsensusData{ + PrimaryIndex: 0, + Nonce: 1111, + }, Transactions: []*transaction.Transaction{ transaction.NewMinerTX(), transaction.NewIssueTX(), diff --git a/pkg/core/block/consensus_data.go b/pkg/core/block/consensus_data.go new file mode 100644 index 000000000..ef8cc6f95 --- /dev/null +++ b/pkg/core/block/consensus_data.go @@ -0,0 +1,52 @@ +package block + +import ( + "github.com/nspcc-dev/neo-go/pkg/crypto/hash" + "github.com/nspcc-dev/neo-go/pkg/io" + "github.com/nspcc-dev/neo-go/pkg/util" +) + +// ConsensusData represents primary index and nonce of block in the chain. +type ConsensusData struct { + // Primary index + PrimaryIndex uint32 `json:"primary"` + // Random number + Nonce uint64 `json:"nonce"` + // Hash of the ConsensusData (single SHA256) + hash util.Uint256 +} + +// DecodeBinary implements Serializable interface. +func (c *ConsensusData) DecodeBinary(br *io.BinReader) { + c.PrimaryIndex = uint32(br.ReadVarUint()) + c.Nonce = br.ReadU64LE() +} + +// EncodeBinary encodes implements Serializable interface. +func (c *ConsensusData) EncodeBinary(bw *io.BinWriter) { + bw.WriteVarUint(uint64(c.PrimaryIndex)) + bw.WriteU64LE(c.Nonce) +} + +// Hash returns the hash of the consensus data. +func (c *ConsensusData) Hash() util.Uint256 { + if c.hash.Equals(util.Uint256{}) { + if c.createHash() != nil { + panic("failed to compute hash!") + } + } + return c.hash +} + +// createHash creates the hash of the consensus data. +func (c *ConsensusData) createHash() error { + buf := io.NewBufBinWriter() + c.EncodeBinary(buf.BinWriter) + if buf.Err != nil { + return buf.Err + } + + b := buf.Bytes() + c.hash = hash.Sha256(b) + return nil +} diff --git a/pkg/core/block/header_test.go b/pkg/core/block/header_test.go index 35f669917..989920fbf 100644 --- a/pkg/core/block/header_test.go +++ b/pkg/core/block/header_test.go @@ -18,7 +18,6 @@ func TestHeaderEncodeDecode(t *testing.T) { MerkleRoot: hash.Sha256([]byte("merkleroot")), Timestamp: uint64(time.Now().UTC().Unix() * 1000), Index: 3445, - ConsensusData: 394949, NextConsensus: util.Uint160{}, Script: transaction.Witness{ InvocationScript: []byte{0x10}, @@ -34,7 +33,6 @@ func TestHeaderEncodeDecode(t *testing.T) { assert.Equal(t, header.PrevHash, headerDecode.PrevHash, "expected both prev hashes to be equal") assert.Equal(t, header.MerkleRoot, headerDecode.MerkleRoot, "expected both merkle roots to be equal") assert.Equal(t, header.Index, headerDecode.Index, "expected both indexes to be equal") - assert.Equal(t, header.ConsensusData, headerDecode.ConsensusData, "expected both consensus data fields to be equal") assert.Equal(t, header.NextConsensus, headerDecode.NextConsensus, "expected both next consensus fields to be equal") assert.Equal(t, header.Script.InvocationScript, headerDecode.Script.InvocationScript, "expected equal invocation scripts") assert.Equal(t, header.Script.VerificationScript, headerDecode.Script.VerificationScript, "expected equal verification scripts") diff --git a/pkg/core/helper_test.go b/pkg/core/helper_test.go index 048c87b67..8853e3571 100644 --- a/pkg/core/helper_test.go +++ b/pkg/core/helper_test.go @@ -63,10 +63,13 @@ func newBlock(cfg config.ProtocolConfiguration, index uint32, prev util.Uint256, PrevHash: prev, Timestamp: uint64(time.Now().UTC().Unix()) + uint64(index), Index: index, - ConsensusData: 1111, NextConsensus: witness.ScriptHash(), Script: witness, }, + ConsensusData: block.ConsensusData{ + PrimaryIndex: 0, + Nonce: 1111, + }, Transactions: txs, } _ = b.RebuildMerkleRoot() @@ -132,13 +135,16 @@ func newDumbBlock() *block.Block { MerkleRoot: hash.Sha256([]byte("b")), Timestamp: 100500, Index: 1, - ConsensusData: 1111, NextConsensus: hash.Hash160([]byte("a")), Script: transaction.Witness{ VerificationScript: []byte{0x51}, // PUSH1 InvocationScript: []byte{0x61}, // NOP }, }, + ConsensusData: block.ConsensusData{ + PrimaryIndex: 0, + Nonce: 1111, + }, Transactions: []*transaction.Transaction{ {Type: transaction.MinerType}, {Type: transaction.IssueType}, diff --git a/pkg/core/interop_neo.go b/pkg/core/interop_neo.go index 065ecd8e5..6dcc1f9b9 100644 --- a/pkg/core/interop_neo.go +++ b/pkg/core/interop_neo.go @@ -48,16 +48,6 @@ func headerGetVersion(ic *interop.Context, v *vm.VM) error { return nil } -// headerGetConsensusData returns consensus data from the header. -func headerGetConsensusData(ic *interop.Context, v *vm.VM) error { - header, err := popHeaderFromVM(v) - if err != nil { - return err - } - v.Estack().PushVal(header.ConsensusData) - return nil -} - // headerGetMerkleRoot returns version from the header. func headerGetMerkleRoot(ic *interop.Context, v *vm.VM) error { header, err := popHeaderFromVM(v) diff --git a/pkg/core/interop_neo_test.go b/pkg/core/interop_neo_test.go index d7625d681..24835af64 100644 --- a/pkg/core/interop_neo_test.go +++ b/pkg/core/interop_neo_test.go @@ -136,16 +136,6 @@ func TestHeaderGetVersion_Negative(t *testing.T) { require.Errorf(t, err, "value is not a header or block") } -func TestHeaderGetConsensusData(t *testing.T) { - v, block, context, chain := createVMAndPushBlock(t) - defer chain.Close() - - err := headerGetConsensusData(context, v) - require.NoError(t, err) - value := v.Estack().Pop().Value().(*big.Int) - require.Equal(t, block.ConsensusData, value.Uint64()) -} - func TestHeaderGetMerkleRoot(t *testing.T) { v, block, context, chain := createVMAndPushBlock(t) defer chain.Close() diff --git a/pkg/core/interops.go b/pkg/core/interops.go index 0f2c2c203..93b03d778 100644 --- a/pkg/core/interops.go +++ b/pkg/core/interops.go @@ -151,7 +151,6 @@ var neoInterops = []interop.Function{ {Name: "Neo.Enumerator.Create", Func: enumerator.Create, Price: 1}, {Name: "Neo.Enumerator.Next", Func: enumerator.Next, Price: 1}, {Name: "Neo.Enumerator.Value", Func: enumerator.Value, Price: 1}, - {Name: "Neo.Header.GetConsensusData", Func: headerGetConsensusData, Price: 1}, {Name: "Neo.Header.GetHash", Func: headerGetHash, Price: 1}, {Name: "Neo.Header.GetIndex", Func: headerGetIndex, Price: 1}, {Name: "Neo.Header.GetMerkleRoot", Func: headerGetMerkleRoot, Price: 1}, @@ -229,7 +228,6 @@ var neoInterops = []interop.Function{ {Name: "AntShares.Contract.GetScript", Func: contractGetScript, Price: 1}, {Name: "AntShares.Contract.GetStorageContext", Func: contractGetStorageContext, Price: 1}, {Name: "AntShares.Contract.Migrate", Func: contractMigrate, Price: 0}, - {Name: "AntShares.Header.GetConsensusData", Func: headerGetConsensusData, Price: 1}, {Name: "AntShares.Header.GetHash", Func: headerGetHash, Price: 1}, {Name: "AntShares.Header.GetMerkleRoot", Func: headerGetMerkleRoot, Price: 1}, {Name: "AntShares.Header.GetNextConsensus", Func: headerGetNextConsensus, Price: 1}, diff --git a/pkg/core/interops_test.go b/pkg/core/interops_test.go index 70dd25c8c..c1ca1bdfa 100644 --- a/pkg/core/interops_test.go +++ b/pkg/core/interops_test.go @@ -51,7 +51,6 @@ func TestUnexpectedNonInterops(t *testing.T) { contractGetScript, contractGetStorageContext, contractIsPayable, - headerGetConsensusData, headerGetHash, headerGetIndex, headerGetMerkleRoot, diff --git a/pkg/core/util.go b/pkg/core/util.go index 5f93a09e5..e0d0fedf0 100644 --- a/pkg/core/util.go +++ b/pkg/core/util.go @@ -43,7 +43,6 @@ func createGenesisBlock(cfg config.ProtocolConfiguration) (*block.Block, error) PrevHash: util.Uint256{}, Timestamp: uint64(time.Date(2016, 7, 15, 15, 8, 21, 0, time.UTC).Unix()), Index: 0, - ConsensusData: 2083236893, NextConsensus: nextConsensus, Script: transaction.Witness{ InvocationScript: []byte{}, @@ -90,6 +89,10 @@ func createGenesisBlock(cfg config.ProtocolConfiguration) (*block.Block, error) issueTx, deployNativeContracts(), }, + ConsensusData: block.ConsensusData{ + PrimaryIndex: 0, + Nonce: 2083236893, + }, } if err = b.RebuildMerkleRoot(); err != nil { diff --git a/pkg/core/util_test.go b/pkg/core/util_test.go index 77ec20cb6..7b033406a 100644 --- a/pkg/core/util_test.go +++ b/pkg/core/util_test.go @@ -20,7 +20,7 @@ func TestGenesisBlockMainNet(t *testing.T) { // have been changed. Consequently, hash of the genesis block has been changed. // Update expected genesis block hash for better times. // Old hash is "d42561e3d30e15be6400b6df2f328e02d2bf6354c41dce433bc57687c82144bf" - expect := "c8b1429f154c43321283bb634758951186c00bf4529187ed7e2ff2dadfdfc7a8" + expect := "4dce83edc5bb9cbdf23d37cfb81dd3c8fc0c331c608d2d893289ae36a62a41eb" assert.Equal(t, expect, block.Hash().StringLE()) } diff --git a/pkg/rpc/client/rpc_test.go b/pkg/rpc/client/rpc_test.go index 6e1c483bd..675d644d5 100644 --- a/pkg/rpc/client/rpc_test.go +++ b/pkg/rpc/client/rpc_test.go @@ -136,17 +136,17 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ invoke: func(c *Client) (interface{}, error) { return c.GetBlockByIndex(5) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":"000000000c9e819ca13abd194ea86727f8dae2c28634a855836755bde0217125611aefe7675b5bd2a90a1f5e74b2e4386162240318f86534f4d3061722ba78b4fe10fe53a9d49e5e00000000050000005704000000000000d60ac443bb800fb08261e75fa5925d747d48586101fd0401407153238e784d759f1093e5911fcbb07f78af3f83a2159d59511b1c31dd4b70311feb9d63531427ac0e30dc3ae6656adda1f31713a7d56ff68a8764af523776cb4048630138d8d402902b66107ef9a50a227e1be8d8ce148f821e58f45430e59b8c034f1b5ed8208f7ce9711942405bb991d4e69232235bafa5476a8f30b92ac7e840947723eafcdfa2e9d75b551b5fc72bdb300cf541d84db5be4f2a5c33d45b0e3ae35a18c33af988c88dd201c823c15fced52eeed66d7defa3fcf7ea1587e8851c40365d8fdf714453d48f030cf3f7744b57d2cd35ad07a7980b58718e3da9e4dfe466f2e1089e8123dfc5d8d6fe679627ae78aa4cb4986cb4805d78becc009544c594534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb010000d5040000d60ac443bb800fb08261e75fa5925d747d4858610500000000000001fd040140947358ca2dd7543c3ff3f6ea1389a72c3d5ee99f47a9d0ef70bd84a9f57384e76271efc682f6741568c55907b1794b9f520f7d35f39382303bf0206945b5009a409f467419a886aebe6b482e6d5787981d98b58b82959a2858045bf5683665a5c25c502481b2d9655c902c5dcc147546bed58175c2ed16f328cc21e999e19741554063cab34f1613932947a1c346416b12b1ca724198016acc5fd760597539eed74f2069cfe2a8383e99595aefa3234d79d64a39e3f4c64e8cea800469a6f790999c408e2438fab244bdb79e67f6dab9cde0063e523bd0c175657a66e84897cd15eec8bf358661666679bf50334664872616faa366825f36873b16dd2add64c418cd5794534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb"}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":"0000000062af8cd56d179044215cc8611f75bd96d896f1026c5b42994ae7707df8d82bd3c9f774f449fec7135b506faffaaeee603e2b82e01dec7d0f706789aa1bb983ae0ec7a25e0000000005000000e903736ceceeceae1806eee0e3ec61e7cce476ce01fd08010c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c7763594130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb020057040000000000000000d5040000e903736ceceeceae1806eee0e3ec61e7cce476ce0500000000000001fd08010c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce94130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"}`, result: func(c *Client) interface{} { return &block.Block{} }, check: func(t *testing.T, c *Client, result interface{}) { res, ok := result.(*block.Block) require.True(t, ok) assert.Equal(t, uint32(0), res.Version) - assert.Equal(t, "d745190c4823eb4d97f7a40a907f931e05380c05070bd71cb09d832d7bca4bb8", res.Hash().StringLE()) - assert.Equal(t, "e7ef1a61257121e0bd55678355a83486c2e2daf82767a84e19bd3aa19c819e0c", res.PrevHash.StringLE()) - assert.Equal(t, "53fe10feb478ba221706d3f43465f8180324626138e4b2745e1f0aa9d25b5b67", res.MerkleRoot.StringLE()) + assert.Equal(t, "424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9", res.Hash().StringLE()) + assert.Equal(t, "d32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62", res.PrevHash.StringLE()) + assert.Equal(t, "ae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9", res.MerkleRoot.StringLE()) assert.Equal(t, 1, len(res.Transactions)) - assert.Equal(t, "53fe10feb478ba221706d3f43465f8180324626138e4b2745e1f0aa9d25b5b67", res.Transactions[0].Hash().StringLE()) + assert.Equal(t, "ae63e96d984673b038c83cfcb94323e37bdab29a53921823544b50df9f7edb54", res.Transactions[0].Hash().StringLE()) }, }, { @@ -154,41 +154,41 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ invoke: func(c *Client) (i interface{}, err error) { return c.GetBlockByIndexVerbose(5) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0x66d1c140fbdc0eaa47e69a6a9c5034ebc3a449db98da565191ab863d1a079906","size":946,"version":0,"nextblockhash":"0xf6749a5eb21273ec67951afd22282f002e605e210678c2fa765dbecf0124bd1a","previousblockhash":"0x8fed18d4cf93e3c1607df1ffcce54a39a25c0bb18f80542ebc7a236a9204aab3","merkleroot":"0x79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26","time":1587379353,"index":5,"nonce":"0000000000000457","nextconsensus":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","confirmations":203,"script":{"invocation":"40a6cc2c7fdee4f8fd97f84114d04edda16a37a4c088da9d5be3233e118fccdf73c0305d2cbd15ea0dbcedb594fec3044844e8f59f236ded7fccb1eda2eee2c76740197eba5d648d650ca1d73b8c0a0c7cdc22d31d7b2564764729d271e7ff6378c4f2228f657d65fec530f2af6cdc7af3bc2ab17a7b8175376601fb17ec951faf074038222bb0430f7808d333be3fb8e5b93c490dbb07e6c085350ba64cb7de61127067d1825de30915964dbb345f3b902d61dbf9a294c11ff6459000648f0dc4e66740926854a25b9ea87d7fffe0253bf2bcb3d153434cc0a8ba166136d16aef9a3de70ba3704ba3103a26d01c2bdbeb7262a19bbceab6a7487beba5e55f7ee768a080","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"},"tx":[{"sys_fee":"0","net_fee":"0","txid":"0x79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26","size":437,"type":"MinerTransaction","version":0,"nonce":1237,"sender":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","valid_until_block":5,"attributes":[],"vin":[],"vout":[],"scripts":[{"invocation":"40f50121bb6ec9d8e0d1c15eea66b2ff7b51bb1bc4b3da27d9eac1d46b59e6a319bb1db4eb710c7f1931b0c2deaa2389a0fc3fe8c761cec40906b7973450c43173402dc082417a6815e722216de0b857eda6c846bf435088d543d2ab89f1dd92488e87b4d2c6508b0db945cbe6968e85c1c6d57274bfc898e82876c5cb08613da5d64053100f0162a41709a37305c300e7d6ac0d46575aab98dade7375b8d9ca980086594f1288dc68da0e0e42913d1c68024f63442a79c9478971d3ad93c5467ec53040a1c3a772a88b09cba8cc8ec3b46c0c0db6ac86519a7fd7db29b43d34e804a22d8839eaeb35e2a1e05d591fbad4ae290b90c6dc02dddbe28b2b3bf0fec2a337dd","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"}]}]}}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0x424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9","size":977,"version":0,"nextblockhash":"0xc2ce96d861414ad229101cc9afaec4ae500f730a2180b54bd14a8dd6147bc8c3","previousblockhash":"0xd32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62","merkleroot":"0xae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9","time":1587726094,"index":5,"consensus_data":{"primary":0,"nonce":"0000000000000457"},"nextconsensus":"Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy","confirmations":203,"script":{"invocation":"0c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c77635","verification":"130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"},"tx":[{"sys_fee":"0","net_fee":"0","txid":"0xae63e96d984673b038c83cfcb94323e37bdab29a53921823544b50df9f7edb54","size":450,"type":"MinerTransaction","version":0,"nonce":1237,"sender":"Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy","valid_until_block":5,"attributes":[],"vin":[],"vout":[],"scripts":[{"invocation":"0c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce","verification":"130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"}]}]}}`, result: func(c *Client) interface{} { - hash, err := util.Uint256DecodeStringLE("66d1c140fbdc0eaa47e69a6a9c5034ebc3a449db98da565191ab863d1a079906") + hash, err := util.Uint256DecodeStringLE("424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9") if err != nil { panic(err) } - nextBlockHash, err := util.Uint256DecodeStringLE("f6749a5eb21273ec67951afd22282f002e605e210678c2fa765dbecf0124bd1a") + nextBlockHash, err := util.Uint256DecodeStringLE("c2ce96d861414ad229101cc9afaec4ae500f730a2180b54bd14a8dd6147bc8c3") if err != nil { panic(err) } - prevBlockHash, err := util.Uint256DecodeStringLE("8fed18d4cf93e3c1607df1ffcce54a39a25c0bb18f80542ebc7a236a9204aab3") + prevBlockHash, err := util.Uint256DecodeStringLE("d32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62") if err != nil { panic(err) } - merkleRoot, err := util.Uint256DecodeStringLE("79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26") + merkleRoot, err := util.Uint256DecodeStringLE("ae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9") if err != nil { panic(err) } - invScript, err := hex.DecodeString("40a6cc2c7fdee4f8fd97f84114d04edda16a37a4c088da9d5be3233e118fccdf73c0305d2cbd15ea0dbcedb594fec3044844e8f59f236ded7fccb1eda2eee2c76740197eba5d648d650ca1d73b8c0a0c7cdc22d31d7b2564764729d271e7ff6378c4f2228f657d65fec530f2af6cdc7af3bc2ab17a7b8175376601fb17ec951faf074038222bb0430f7808d333be3fb8e5b93c490dbb07e6c085350ba64cb7de61127067d1825de30915964dbb345f3b902d61dbf9a294c11ff6459000648f0dc4e66740926854a25b9ea87d7fffe0253bf2bcb3d153434cc0a8ba166136d16aef9a3de70ba3704ba3103a26d01c2bdbeb7262a19bbceab6a7487beba5e55f7ee768a080") + invScript, err := hex.DecodeString("0c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c77635") if err != nil { panic(err) } - verifScript, err := hex.DecodeString("532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae") + verifScript, err := hex.DecodeString("130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb") if err != nil { panic(err) } - sender, err := address.StringToUint160("AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU") + sender, err := address.StringToUint160("Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy") if err != nil { panic(err) } - txInvScript, err := hex.DecodeString("40f50121bb6ec9d8e0d1c15eea66b2ff7b51bb1bc4b3da27d9eac1d46b59e6a319bb1db4eb710c7f1931b0c2deaa2389a0fc3fe8c761cec40906b7973450c43173402dc082417a6815e722216de0b857eda6c846bf435088d543d2ab89f1dd92488e87b4d2c6508b0db945cbe6968e85c1c6d57274bfc898e82876c5cb08613da5d64053100f0162a41709a37305c300e7d6ac0d46575aab98dade7375b8d9ca980086594f1288dc68da0e0e42913d1c68024f63442a79c9478971d3ad93c5467ec53040a1c3a772a88b09cba8cc8ec3b46c0c0db6ac86519a7fd7db29b43d34e804a22d8839eaeb35e2a1e05d591fbad4ae290b90c6dc02dddbe28b2b3bf0fec2a337dd") + txInvScript, err := hex.DecodeString("0c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce") if err != nil { panic(err) } - txVerifScript, err := hex.DecodeString("532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae") + txVerifScript, err := hex.DecodeString("130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb") if err != nil { panic(err) } @@ -205,16 +205,19 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ _ = tx.Hash() return &result.Block{ Hash: hash, - Size: 946, + Size: 977, Version: 0, NextBlockHash: &nextBlockHash, PreviousBlockHash: prevBlockHash, MerkleRoot: merkleRoot, - Time: 1587379353, + Time: 1587726094, Index: 5, - Nonce: "0000000000000457", - NextConsensus: "AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU", + NextConsensus: "Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy", Confirmations: 203, + ConsensusData: result.ConsensusData{ + PrimaryIndex: 0, + Nonce: "0000000000000457", + }, Script: transaction.Witness{ InvocationScript: invScript, VerificationScript: verifScript, @@ -232,69 +235,69 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ { name: "byHash_positive", invoke: func(c *Client) (interface{}, error) { - hash, err := util.Uint256DecodeStringLE("b84bca7b2d839db01cd70b07050c38051e937f900aa4f7974deb23480c1945d7") + hash, err := util.Uint256DecodeStringLE("e9f71b58764157f1e2c3e29f217e654b57956ee7c8a60496b03ea85e39084b42") if err != nil { panic(err) } return c.GetBlockByHash(hash) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":"000000000c9e819ca13abd194ea86727f8dae2c28634a855836755bde0217125611aefe7675b5bd2a90a1f5e74b2e4386162240318f86534f4d3061722ba78b4fe10fe53a9d49e5e00000000050000005704000000000000d60ac443bb800fb08261e75fa5925d747d48586101fd0401407153238e784d759f1093e5911fcbb07f78af3f83a2159d59511b1c31dd4b70311feb9d63531427ac0e30dc3ae6656adda1f31713a7d56ff68a8764af523776cb4048630138d8d402902b66107ef9a50a227e1be8d8ce148f821e58f45430e59b8c034f1b5ed8208f7ce9711942405bb991d4e69232235bafa5476a8f30b92ac7e840947723eafcdfa2e9d75b551b5fc72bdb300cf541d84db5be4f2a5c33d45b0e3ae35a18c33af988c88dd201c823c15fced52eeed66d7defa3fcf7ea1587e8851c40365d8fdf714453d48f030cf3f7744b57d2cd35ad07a7980b58718e3da9e4dfe466f2e1089e8123dfc5d8d6fe679627ae78aa4cb4986cb4805d78becc009544c594534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb010000d5040000d60ac443bb800fb08261e75fa5925d747d4858610500000000000001fd040140947358ca2dd7543c3ff3f6ea1389a72c3d5ee99f47a9d0ef70bd84a9f57384e76271efc682f6741568c55907b1794b9f520f7d35f39382303bf0206945b5009a409f467419a886aebe6b482e6d5787981d98b58b82959a2858045bf5683665a5c25c502481b2d9655c902c5dcc147546bed58175c2ed16f328cc21e999e19741554063cab34f1613932947a1c346416b12b1ca724198016acc5fd760597539eed74f2069cfe2a8383e99595aefa3234d79d64a39e3f4c64e8cea800469a6f790999c408e2438fab244bdb79e67f6dab9cde0063e523bd0c175657a66e84897cd15eec8bf358661666679bf50334664872616faa366825f36873b16dd2add64c418cd5794534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb"}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":"0000000062af8cd56d179044215cc8611f75bd96d896f1026c5b42994ae7707df8d82bd3c9f774f449fec7135b506faffaaeee603e2b82e01dec7d0f706789aa1bb983ae0ec7a25e0000000005000000e903736ceceeceae1806eee0e3ec61e7cce476ce01fd08010c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c7763594130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb020057040000000000000000d5040000e903736ceceeceae1806eee0e3ec61e7cce476ce0500000000000001fd08010c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce94130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"}`, result: func(c *Client) interface{} { return &block.Block{} }, check: func(t *testing.T, c *Client, result interface{}) { res, ok := result.(*block.Block) require.True(t, ok) assert.Equal(t, uint32(0), res.Version) - assert.Equal(t, "d745190c4823eb4d97f7a40a907f931e05380c05070bd71cb09d832d7bca4bb8", res.Hash().StringLE()) - assert.Equal(t, "e7ef1a61257121e0bd55678355a83486c2e2daf82767a84e19bd3aa19c819e0c", res.PrevHash.StringLE()) - assert.Equal(t, "53fe10feb478ba221706d3f43465f8180324626138e4b2745e1f0aa9d25b5b67", res.MerkleRoot.StringLE()) + assert.Equal(t, "424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9", res.Hash().StringLE()) + assert.Equal(t, "d32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62", res.PrevHash.StringLE()) + assert.Equal(t, "ae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9", res.MerkleRoot.StringLE()) assert.Equal(t, 1, len(res.Transactions)) - assert.Equal(t, "53fe10feb478ba221706d3f43465f8180324626138e4b2745e1f0aa9d25b5b67", res.Transactions[0].Hash().StringLE()) + assert.Equal(t, "ae63e96d984673b038c83cfcb94323e37bdab29a53921823544b50df9f7edb54", res.Transactions[0].Hash().StringLE()) }, }, { name: "byHash_verbose_positive", invoke: func(c *Client) (i interface{}, err error) { - hash, err := util.Uint256DecodeStringLE("0699071a3d86ab915156da98db49a4c3eb34509c6a9ae647aa0edcfb40c1d166") + hash, err := util.Uint256DecodeStringLE("e9f71b58764157f1e2c3e29f217e654b57956ee7c8a60496b03ea85e39084b42") if err != nil { panic(err) } return c.GetBlockByHashVerbose(hash) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0x66d1c140fbdc0eaa47e69a6a9c5034ebc3a449db98da565191ab863d1a079906","size":946,"version":0,"nextblockhash":"0xf6749a5eb21273ec67951afd22282f002e605e210678c2fa765dbecf0124bd1a","previousblockhash":"0x8fed18d4cf93e3c1607df1ffcce54a39a25c0bb18f80542ebc7a236a9204aab3","merkleroot":"0x79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26","time":1587379353,"index":5,"nonce":"0000000000000457","nextconsensus":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","confirmations":203,"script":{"invocation":"40a6cc2c7fdee4f8fd97f84114d04edda16a37a4c088da9d5be3233e118fccdf73c0305d2cbd15ea0dbcedb594fec3044844e8f59f236ded7fccb1eda2eee2c76740197eba5d648d650ca1d73b8c0a0c7cdc22d31d7b2564764729d271e7ff6378c4f2228f657d65fec530f2af6cdc7af3bc2ab17a7b8175376601fb17ec951faf074038222bb0430f7808d333be3fb8e5b93c490dbb07e6c085350ba64cb7de61127067d1825de30915964dbb345f3b902d61dbf9a294c11ff6459000648f0dc4e66740926854a25b9ea87d7fffe0253bf2bcb3d153434cc0a8ba166136d16aef9a3de70ba3704ba3103a26d01c2bdbeb7262a19bbceab6a7487beba5e55f7ee768a080","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"},"tx":[{"sys_fee":"0","net_fee":"0","txid":"0x79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26","size":437,"type":"MinerTransaction","version":0,"nonce":1237,"sender":"AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU","valid_until_block":5,"attributes":[],"vin":[],"vout":[],"scripts":[{"invocation":"40f50121bb6ec9d8e0d1c15eea66b2ff7b51bb1bc4b3da27d9eac1d46b59e6a319bb1db4eb710c7f1931b0c2deaa2389a0fc3fe8c761cec40906b7973450c43173402dc082417a6815e722216de0b857eda6c846bf435088d543d2ab89f1dd92488e87b4d2c6508b0db945cbe6968e85c1c6d57274bfc898e82876c5cb08613da5d64053100f0162a41709a37305c300e7d6ac0d46575aab98dade7375b8d9ca980086594f1288dc68da0e0e42913d1c68024f63442a79c9478971d3ad93c5467ec53040a1c3a772a88b09cba8cc8ec3b46c0c0db6ac86519a7fd7db29b43d34e804a22d8839eaeb35e2a1e05d591fbad4ae290b90c6dc02dddbe28b2b3bf0fec2a337dd","verification":"532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae"}]}]}}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":{"hash":"0x424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9","size":977,"version":0,"nextblockhash":"0xc2ce96d861414ad229101cc9afaec4ae500f730a2180b54bd14a8dd6147bc8c3","previousblockhash":"0xd32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62","merkleroot":"0xae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9","time":1587726094,"index":5,"consensus_data":{"primary":0,"nonce":"0000000000000457"},"nextconsensus":"Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy","confirmations":203,"script":{"invocation":"0c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c77635","verification":"130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"},"tx":[{"sys_fee":"0","net_fee":"0","txid":"0xae63e96d984673b038c83cfcb94323e37bdab29a53921823544b50df9f7edb54","size":450,"type":"MinerTransaction","version":0,"nonce":1237,"sender":"Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy","valid_until_block":5,"attributes":[],"vin":[],"vout":[],"scripts":[{"invocation":"0c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce","verification":"130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb"}]}]}}`, result: func(c *Client) interface{} { - hash, err := util.Uint256DecodeStringLE("66d1c140fbdc0eaa47e69a6a9c5034ebc3a449db98da565191ab863d1a079906") + hash, err := util.Uint256DecodeStringLE("424b08395ea83eb09604a6c8e76e95574b657e219fe2c3e2f1574176581bf7e9") if err != nil { panic(err) } - nextBlockHash, err := util.Uint256DecodeStringLE("f6749a5eb21273ec67951afd22282f002e605e210678c2fa765dbecf0124bd1a") + nextBlockHash, err := util.Uint256DecodeStringLE("c2ce96d861414ad229101cc9afaec4ae500f730a2180b54bd14a8dd6147bc8c3") if err != nil { panic(err) } - prevBlockHash, err := util.Uint256DecodeStringLE("8fed18d4cf93e3c1607df1ffcce54a39a25c0bb18f80542ebc7a236a9204aab3") + prevBlockHash, err := util.Uint256DecodeStringLE("d32bd8f87d70e74a99425b6c02f196d896bd751f61c85c214490176dd58caf62") if err != nil { panic(err) } - merkleRoot, err := util.Uint256DecodeStringLE("79e5361552be86156c86c000183526f22ce0c8a0be346e692f4b388810275f26") + merkleRoot, err := util.Uint256DecodeStringLE("ae83b91baa8967700f7dec1de0822b3e60eeaefaaf6f505b13c7fe49f474f7c9") if err != nil { panic(err) } - invScript, err := hex.DecodeString("40a6cc2c7fdee4f8fd97f84114d04edda16a37a4c088da9d5be3233e118fccdf73c0305d2cbd15ea0dbcedb594fec3044844e8f59f236ded7fccb1eda2eee2c76740197eba5d648d650ca1d73b8c0a0c7cdc22d31d7b2564764729d271e7ff6378c4f2228f657d65fec530f2af6cdc7af3bc2ab17a7b8175376601fb17ec951faf074038222bb0430f7808d333be3fb8e5b93c490dbb07e6c085350ba64cb7de61127067d1825de30915964dbb345f3b902d61dbf9a294c11ff6459000648f0dc4e66740926854a25b9ea87d7fffe0253bf2bcb3d153434cc0a8ba166136d16aef9a3de70ba3704ba3103a26d01c2bdbeb7262a19bbceab6a7487beba5e55f7ee768a080") + invScript, err := hex.DecodeString("0c408e48ace06fdd7d9bf536b6cb683f7edd336c60a707df8110f69121273fe7e0353e574c55abf2961ac4f7f2bfef44af07e6121f42e5e2115517b29060e3a7dd3e0c40d56609addaa61f06d9df159f7008ffb889d605742baaf7f95a8283469d6e5a4a76c5814f24efa0452e3c6723d88e43833e917551808d05aca8d46a17f25c72440c40fa0b66a2a41933e39685f7cbf45ba0cef286b3eed5f7d1cb60db4bac3a9c55212efb5b1f4a4c5512b2562f8e0a2ebfbc8951734ca53243ec963bd6839773f5910c40c1c0de79304d8ad7e204dceb880325694e5c34abb25ff23beb61e931ecf384e4f06c13a5ea56273c400ecac9408a3eb8e8cf3b0b358f7b2b6ac5120bb5c77635") if err != nil { panic(err) } - verifScript, err := hex.DecodeString("532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae") + verifScript, err := hex.DecodeString("130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb") if err != nil { panic(err) } - sender, err := address.StringToUint160("AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU") + sender, err := address.StringToUint160("Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy") if err != nil { panic(err) } - txInvScript, err := hex.DecodeString("40f50121bb6ec9d8e0d1c15eea66b2ff7b51bb1bc4b3da27d9eac1d46b59e6a319bb1db4eb710c7f1931b0c2deaa2389a0fc3fe8c761cec40906b7973450c43173402dc082417a6815e722216de0b857eda6c846bf435088d543d2ab89f1dd92488e87b4d2c6508b0db945cbe6968e85c1c6d57274bfc898e82876c5cb08613da5d64053100f0162a41709a37305c300e7d6ac0d46575aab98dade7375b8d9ca980086594f1288dc68da0e0e42913d1c68024f63442a79c9478971d3ad93c5467ec53040a1c3a772a88b09cba8cc8ec3b46c0c0db6ac86519a7fd7db29b43d34e804a22d8839eaeb35e2a1e05d591fbad4ae290b90c6dc02dddbe28b2b3bf0fec2a337dd") + txInvScript, err := hex.DecodeString("0c40a9c72069ad0365a8f0787a236ec60293a9846172e9cdeaeb665586d6c72545bcfa694422f8ccd3e76bce7e27ac8099cc9b3f6322bcfeaf971c9b481a1a308a350c4048f7c2a176a7c8eb73f881aacb0a5bc52bb3b2eeeb2341031496aaadbc043dda02d8c79935ac27ecda0dc7c2561af056946e82ff1a819b56461ad32fce83ab960c4036a238579bbe505150f2ea2e4172eb83cfd614af00c1cfe36791a1eb12cb5565f37668fa09a0fcb2528fffe377c96ec9d63d18aa19a5d6c24c5c97034d1811250c4007c3826543bc03b3b6cecf48fb30ff24033c1aad7a946ac6c54e7fa90173ff3b0fe181936079fc0e7030bdde2b655ae3a7101b8a0bd85fc98de83bb72739a9ce") if err != nil { panic(err) } - txVerifScript, err := hex.DecodeString("532102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd622102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc22103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee69954ae") + txVerifScript, err := hex.DecodeString("130c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e0c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd620c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699140b683073b3bb") if err != nil { panic(err) } @@ -311,16 +314,19 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ _ = tx.Hash() return &result.Block{ Hash: hash, - Size: 946, + Size: 977, Version: 0, NextBlockHash: &nextBlockHash, PreviousBlockHash: prevBlockHash, MerkleRoot: merkleRoot, - Time: 1587379353, + Time: 1587726094, Index: 5, - Nonce: "0000000000000457", - NextConsensus: "AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU", + NextConsensus: "Ad1wDxzcRiRSryvJobNV211Tv7UUiziPXy", Confirmations: 203, + ConsensusData: result.ConsensusData{ + PrimaryIndex: 0, + Nonce: "0000000000000457", + }, Script: transaction.Witness{ InvocationScript: invScript, VerificationScript: verifScript, @@ -368,21 +374,21 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ { name: "positive", invoke: func(c *Client) (interface{}, error) { - hash, err := util.Uint256DecodeStringLE("cac0ebfcf1230d0cd236f333dc659b232da612e7ee42bd80f9e6c8d0ce2fb542") + hash, err := util.Uint256DecodeStringLE("68e4bd688b852e807eef13a0ff7da7b02223e359a35153667e88f9cb4a3b0801") if err != nil { panic(err) } return c.GetBlockHeader(hash) }, - serverResponse: `{"id":1,"jsonrpc":"2.0","result":"0000000098166844503a270bf532addc3db1a30e22b5336594ed8944fceaaf8fe697013414aa46a5e3e62056c842d54ea5ba480fc448c498989f505bcae9ae4364436b9da5d49e5e00000000010000005704000000000000d60ac443bb800fb08261e75fa5925d747d48586101fd040140519e5dfec4f07533853ca092139070fb6f033f8ab03b226948ee35910767a2ec426ad16d70e6aaf6e70ba256c829c963efc61b450690f9f4c022ec345f4b698240527d91d454a488419f724f51f44b33f162a4c8dfe84775e3e178abe254c728fda5a81915b3fbd9d41c0609f3cd576ba65b767753b2d52e4f96ce1a9b1cdb1e364021d2d03a1b57ab5bb50ac19679f9543f10c8873ef9a8d4c236f9e022c0a60f684b78bf56bd2b5f82d0a8ed091cadd2f29a16a7e9f48f3feb723dcb7f26470f5e40f447d13062ab7ec4669b82d0da2d4e0165756b30c5f6b734cb2049d91ae0f8ab85ab52f476d825ea12f26cfaf6c8d6c662bb7e3442130785b2d12e3398ac204f94534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb00"}`, + serverResponse: `{"id":1,"jsonrpc":"2.0","result":"00000000d039da5e49d63eb0533437d24ff8ceb6aeacf88680599c39f0ffca8948dfcdb94a3def1fca91cf45d69358414e3be77f7621e557f4cebbdb79a47d3cf56ac007f920a05e0000000001000000d60ac443bb800fb08261e75fa5925d747d48586101fd04014055041db6a59c99ab98137cc57e1e56a0a89856a311b2d2fc0aec76ec714c7616edc8fc5c9b81b27f25b7db1a61f64be0730a9cc103efcea1195cc3fe55843e264027e49c647f48bb08d3c32b79ee3432005ea577d7e497f78b46f1e81858848f961b557fb42a92e8eb4433fed203c917cbebb2138a31ed86750fb769d1e70956c0404c20054aa8bd45b520cba9410a9dd6c256481066bb657d7793fbba5551898c91b6dde81285fac841753ccfdd3193d08f19d5431313fa0d926ca965072a5fa3384026b0705078409bcc62fb98bb985edc387edeaaeba37bb7642d88a90762b2c2a62d9b61d53c097d548a368e450c4d995a178d5af28d4c93698233c52de05e3f0094534c2102103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e4c2102a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd624c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc24c2103d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee6995450683073b3bb00"}`, result: func(c *Client) interface{} { return &block.Header{} }, check: func(t *testing.T, c *Client, result interface{}) { res, ok := result.(*block.Header) require.True(t, ok) assert.Equal(t, uint32(0), res.Version) - assert.Equal(t, "cac0ebfcf1230d0cd236f333dc659b232da612e7ee42bd80f9e6c8d0ce2fb542", res.Hash().StringLE()) - assert.Equal(t, "340197e68fafeafc4489ed946533b5220ea3b13ddcad32f50b273a5044681698", res.PrevHash.StringLE()) - assert.Equal(t, "9d6b436443aee9ca5b509f9898c448c40f48baa54ed542c85620e6e3a546aa14", res.MerkleRoot.StringLE()) + assert.Equal(t, "68e4bd688b852e807eef13a0ff7da7b02223e359a35153667e88f9cb4a3b0801", res.Hash().StringLE()) + assert.Equal(t, "b9cddf4889cafff0399c598086f8acaeb6cef84fd2373453b03ed6495eda39d0", res.PrevHash.StringLE()) + assert.Equal(t, "07c06af53c7da479dbbbcef457e521767fe73b4e415893d645cf91ca1fef3d4a", res.MerkleRoot.StringLE()) }, }, { @@ -429,7 +435,6 @@ var rpcClientTestCases = map[string][]rpcClientTestCase{ MerkleRoot: merkleRoot, Timestamp: 1541215200, Index: 1, - Nonce: "51b484a2fe49ed4d", NextConsensus: "AZ81H31DMWzbSnFDLFkzh9vHwaDLayV7fU", Confirmations: 20061, Script: transaction.Witness{ diff --git a/pkg/rpc/response/result/block.go b/pkg/rpc/response/result/block.go index 74509d1a9..ccdef6fd5 100644 --- a/pkg/rpc/response/result/block.go +++ b/pkg/rpc/response/result/block.go @@ -27,6 +27,12 @@ type ( NetFee util.Fixed8 `json:"net_fee"` } + // ConsensusData is a wrapper for block.ConsensusData + ConsensusData struct { + PrimaryIndex uint32 `json:"primary"` + Nonce string `json:"nonce"` + } + // Block wrapper used for the representation of // block.Block / block.Base on the RPC Server. Block struct { @@ -38,7 +44,7 @@ type ( MerkleRoot util.Uint256 `json:"merkleroot"` Time uint64 `json:"time"` Index uint32 `json:"index"` - Nonce string `json:"nonce"` + ConsensusData ConsensusData `json:"consensus_data"` NextConsensus string `json:"nextconsensus"` Confirmations uint32 `json:"confirmations"` @@ -59,9 +65,12 @@ func NewBlock(b *block.Block, chain blockchainer.Blockchainer) Block { MerkleRoot: b.MerkleRoot, Time: b.Timestamp, Index: b.Index, - Nonce: fmt.Sprintf("%016x", b.ConsensusData), - NextConsensus: address.Uint160ToString(b.NextConsensus), - Confirmations: chain.BlockHeight() - b.Index - 1, + ConsensusData: ConsensusData{ + PrimaryIndex: b.ConsensusData.PrimaryIndex, + Nonce: fmt.Sprintf("%016x", b.ConsensusData.Nonce), + }, + NextConsensus: address.Uint160ToString(b.NextConsensus), + Confirmations: chain.BlockHeight() - b.Index - 1, Script: b.Script, diff --git a/pkg/rpc/response/result/block_header.go b/pkg/rpc/response/result/block_header.go index 614b400ed..1eeabd4eb 100644 --- a/pkg/rpc/response/result/block_header.go +++ b/pkg/rpc/response/result/block_header.go @@ -1,8 +1,6 @@ package result import ( - "strconv" - "github.com/nspcc-dev/neo-go/pkg/core/block" "github.com/nspcc-dev/neo-go/pkg/core/blockchainer" "github.com/nspcc-dev/neo-go/pkg/core/transaction" @@ -22,7 +20,6 @@ type ( MerkleRoot util.Uint256 `json:"merkleroot"` Timestamp uint64 `json:"time"` Index uint32 `json:"index"` - Nonce string `json:"nonce"` NextConsensus string `json:"nextconsensus"` Script transaction.Witness `json:"script"` Confirmations uint32 `json:"confirmations"` @@ -40,7 +37,6 @@ func NewHeader(h *block.Header, chain blockchainer.Blockchainer) Header { MerkleRoot: h.MerkleRoot, Timestamp: h.Timestamp, Index: h.Index, - Nonce: strconv.FormatUint(h.ConsensusData, 16), NextConsensus: address.Uint160ToString(h.NextConsensus), Script: 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 ed5e4b9f5..22e214490 100644 --- a/pkg/rpc/server/server_test.go +++ b/pkg/rpc/server/server_test.go @@ -9,7 +9,6 @@ import ( "net/http" "net/http/httptest" "reflect" - "strconv" "strings" "testing" "time" @@ -967,7 +966,6 @@ func TestRPC(t *testing.T) { MerkleRoot: hdr.MerkleRoot, Timestamp: hdr.Timestamp, Index: hdr.Index, - Nonce: strconv.FormatUint(hdr.ConsensusData, 16), NextConsensus: address.Uint160ToString(hdr.NextConsensus), Script: hdr.Script, Confirmations: e.chain.BlockHeight() - hdr.Index + 1, @@ -1051,10 +1049,13 @@ func newBlock(t *testing.T, bc blockchainer.Blockchainer, index uint32, txs ...* PrevHash: hdr.Hash(), Timestamp: (uint64(time.Now().UTC().Unix()) + uint64(hdr.Index)) * 1000, Index: hdr.Index + index, - ConsensusData: 1111, NextConsensus: witness.ScriptHash(), Script: witness, }, + ConsensusData: block.ConsensusData{ + PrimaryIndex: 0, + Nonce: 1111, + }, Transactions: txs, } _ = b.RebuildMerkleRoot() diff --git a/pkg/rpc/server/testdata/testblocks.acc b/pkg/rpc/server/testdata/testblocks.acc index 520c80ca2b8544e63efb43356e956278283336be..f09535357a0e6b19b6b56da87ea6f2282b0eb4f4 100644 GIT binary patch delta 78030 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

mr1JN9PlBX*{LJ&HQB-33z6&*9ag$`YR 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 delta 78191 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 LhkgzdNFVioBsb;S