From 7cc847d6551374cbd02595a95fc7972a3e4a9914 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 4 Mar 2020 13:04:11 +0300 Subject: [PATCH 1/4] transaction: add some missing InvocationTX decoding checks Script must have something inside and GAS can't be negative. --- pkg/core/transaction/invocation.go | 10 ++++ pkg/core/transaction/invocation_test.go | 70 +++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 pkg/core/transaction/invocation_test.go diff --git a/pkg/core/transaction/invocation.go b/pkg/core/transaction/invocation.go index 1306dbbe8..a73b74bad 100644 --- a/pkg/core/transaction/invocation.go +++ b/pkg/core/transaction/invocation.go @@ -1,6 +1,8 @@ package transaction import ( + "errors" + "github.com/nspcc-dev/neo-go/pkg/io" "github.com/nspcc-dev/neo-go/pkg/util" ) @@ -36,8 +38,16 @@ func NewInvocationTX(script []byte, gas util.Fixed8) *Transaction { // DecodeBinary implements Serializable interface. func (tx *InvocationTX) DecodeBinary(br *io.BinReader) { tx.Script = br.ReadVarBytes() + if br.Err == nil && len(tx.Script) == 0 { + br.Err = errors.New("no script") + return + } if tx.Version >= 1 { tx.Gas.DecodeBinary(br) + if br.Err == nil && tx.Gas.LessThan(0) { + br.Err = errors.New("negative gas") + return + } } else { tx.Gas = util.Fixed8FromInt64(0) } diff --git a/pkg/core/transaction/invocation_test.go b/pkg/core/transaction/invocation_test.go new file mode 100644 index 000000000..a5e46f464 --- /dev/null +++ b/pkg/core/transaction/invocation_test.go @@ -0,0 +1,70 @@ +package transaction + +import ( + "encoding/hex" + "testing" + + "github.com/nspcc-dev/neo-go/pkg/io" + "github.com/nspcc-dev/neo-go/pkg/util" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestInvocationZeroScript(t *testing.T) { + // Zero-length script. + in, err := hex.DecodeString("000000000000000000") + require.NoError(t, err) + + inv := &InvocationTX{Version: 1} + r := io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.Error(t, r.Err) + + // PUSH1 script. + in, err = hex.DecodeString("01510000000000000000") + require.NoError(t, err) + r = io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.NoError(t, r.Err) +} + +func TestInvocationNegativeGas(t *testing.T) { + // Negative GAS + in, err := hex.DecodeString("015100000000000000ff") + require.NoError(t, err) + + inv := &InvocationTX{Version: 1} + r := io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.Error(t, r.Err) + + // Positive GAS. + in, err = hex.DecodeString("01510100000000000000") + require.NoError(t, err) + r = io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.NoError(t, r.Err) + assert.Equal(t, util.Fixed8(1), inv.Gas) +} + +func TestInvocationVersionZero(t *testing.T) { + in, err := hex.DecodeString("0151") + require.NoError(t, err) + + inv := &InvocationTX{Version: 1} + r := io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.Error(t, r.Err) + + inv = &InvocationTX{Version: 0} + r = io.NewBinReaderFromBuf(in) + + inv.DecodeBinary(r) + assert.NoError(t, r.Err) + assert.Equal(t, util.Fixed8(0), inv.Gas) +} From 823798514ab1cc63360f518174be72e716a1bb47 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 4 Mar 2020 13:26:08 +0300 Subject: [PATCH 2/4] util: rename Int64Value to IntegralValue, add FractionalValue Makes it's interface more clear and allows to easily access fractional part. --- pkg/core/blockchain.go | 2 +- pkg/core/transaction/contract_test.go | 3 ++- pkg/util/fixed8.go | 11 +++++++++-- pkg/util/fixed8_test.go | 11 +++++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/pkg/core/blockchain.go b/pkg/core/blockchain.go index d452bc8a3..160e51db2 100644 --- a/pkg/core/blockchain.go +++ b/pkg/core/blockchain.go @@ -455,7 +455,7 @@ func (bc *Blockchain) storeBlock(block *block.Block) error { cache := newCachedDao(bc.dao.store) fee := bc.getSystemFeeAmount(block.PrevHash) for _, tx := range block.Transactions { - fee += uint32(bc.SystemFee(tx).Int64Value()) + fee += uint32(bc.SystemFee(tx).IntegralValue()) } if err := cache.StoreAsBlock(block, fee); err != nil { return err diff --git a/pkg/core/transaction/contract_test.go b/pkg/core/transaction/contract_test.go index fe3a7348e..dbdd21130 100644 --- a/pkg/core/transaction/contract_test.go +++ b/pkg/core/transaction/contract_test.go @@ -23,7 +23,8 @@ func TestEncodeDecodeContract(t *testing.T) { assert.Equal(t, "eec17cc828d6ede932b57e4eaf79c2591151096a7825435cd67f498f9fa98d88", input.PrevHash.StringLE()) assert.Equal(t, 0, int(input.PrevIndex)) - assert.Equal(t, int64(706), tx.Outputs[0].Amount.Int64Value()) + assert.Equal(t, int64(706), tx.Outputs[0].Amount.IntegralValue()) + assert.Equal(t, int32(0), tx.Outputs[0].Amount.FractionalValue()) assert.Equal(t, "c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b", tx.Outputs[0].AssetID.StringLE()) assert.Equal(t, "a8666b4830229d6a1a9b80f6088059191c122d2b", tx.Outputs[0].ScriptHash.String()) assert.Equal(t, "bdf6cc3b9af12a7565bda80933a75ee8cef1bc771d0d58effc08e4c8b436da79", tx.Hash().StringLE()) diff --git a/pkg/util/fixed8.go b/pkg/util/fixed8.go index 6604f0f38..c511f76de 100644 --- a/pkg/util/fixed8.go +++ b/pkg/util/fixed8.go @@ -46,11 +46,18 @@ func (f Fixed8) FloatValue() float64 { return float64(f) / decimals } -// Int64Value returns the original value representing Fixed8 as int64. -func (f Fixed8) Int64Value() int64 { +// IntegralValue returns integer part of the original value representing +// Fixed8 as int64. +func (f Fixed8) IntegralValue() int64 { return int64(f) / decimals } +// FractionalValue returns decimal part of the original value. It has the same +// sign as f, so that f = f.IntegralValue() + f.FractionalValue(). +func (f Fixed8) FractionalValue() int32 { + return int32(int64(f) % decimals) +} + // Fixed8FromInt64 returns a new Fixed8 type multiplied by decimals. func Fixed8FromInt64(val int64) Fixed8 { return Fixed8(decimals * val) diff --git a/pkg/util/fixed8_test.go b/pkg/util/fixed8_test.go index 893cc86dc..5f01dee12 100644 --- a/pkg/util/fixed8_test.go +++ b/pkg/util/fixed8_test.go @@ -2,6 +2,7 @@ package util import ( "encoding/json" + "math" "strconv" "testing" @@ -16,7 +17,8 @@ func TestFixed8FromInt64(t *testing.T) { for _, val := range values { assert.Equal(t, Fixed8(val*decimals), Fixed8FromInt64(val)) - assert.Equal(t, val, Fixed8FromInt64(val).Int64Value()) + assert.Equal(t, val, Fixed8FromInt64(val).IntegralValue()) + assert.Equal(t, int32(0), Fixed8FromInt64(val).FractionalValue()) } } @@ -35,7 +37,8 @@ func TestFixed8Sub(t *testing.T) { b := Fixed8FromInt64(34) c := a.Sub(b) - assert.Equal(t, int64(8), c.Int64Value()) + assert.Equal(t, int64(8), c.IntegralValue()) + assert.Equal(t, int32(0), c.FractionalValue()) } func TestFixed8FromFloat(t *testing.T) { @@ -44,6 +47,10 @@ func TestFixed8FromFloat(t *testing.T) { for _, val := range inputs { assert.Equal(t, Fixed8(val*decimals), Fixed8FromFloat(val)) assert.Equal(t, val, Fixed8FromFloat(val).FloatValue()) + trunc := math.Trunc(val) + rem := (val - trunc) * decimals + assert.Equal(t, int64(trunc), Fixed8FromFloat(val).IntegralValue()) + assert.Equal(t, int32(math.Round(rem)), Fixed8FromFloat(val).FractionalValue()) } } From ae6edf0601537d9d00df08026901c4ff4d908207 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 4 Mar 2020 13:27:22 +0300 Subject: [PATCH 3/4] core: add a check for fractional gas in invocation TXes It's not allowed in C# code and that's reasonable as it's a sysfee essentially that can only be integer. --- pkg/core/blockchain.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/core/blockchain.go b/pkg/core/blockchain.go index 160e51db2..4a1fdbc0c 100644 --- a/pkg/core/blockchain.go +++ b/pkg/core/blockchain.go @@ -1283,7 +1283,8 @@ func (bc *Blockchain) verifyTx(t *transaction.Transaction, block *block.Block) e } } - if t.Type == transaction.ClaimType { + switch t.Type { + case transaction.ClaimType: claim := t.Data.(*transaction.ClaimTX) if transaction.HaveDuplicateInputs(claim.Claims) { return errors.New("duplicate claims") @@ -1294,6 +1295,11 @@ func (bc *Blockchain) verifyTx(t *transaction.Transaction, block *block.Block) e if err := bc.verifyClaims(t); err != nil { return err } + case transaction.InvocationType: + inv := t.Data.(*transaction.InvocationTX) + if inv.Gas.FractionalValue() != 0 { + return errors.New("invocation gas can only be integer") + } } return bc.verifyTxWitnesses(t, block) From 81d89cd502f784dbb49bf20003f92025a74a7ed7 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 4 Mar 2020 17:45:29 +0300 Subject: [PATCH 4/4] core: fix SystemFee calculation for Invocation TXes They have it specified right in the transaction. Unfortunately, this little change rendered invalid our RPC test chain, but I think it became even better after it, especially given that chain generation is a nice test by itself, so it should be running as a regular test. --- pkg/core/blockchain.go | 6 + pkg/core/helper_test.go | 247 ++++++++++++++++--------- pkg/rpc/server/server_test.go | 13 +- pkg/rpc/server/testdata/testblocks.acc | Bin 28732 -> 109412 bytes 4 files changed, 172 insertions(+), 94 deletions(-) diff --git a/pkg/core/blockchain.go b/pkg/core/blockchain.go index 4a1fdbc0c..77e7c2537 100644 --- a/pkg/core/blockchain.go +++ b/pkg/core/blockchain.go @@ -1209,6 +1209,12 @@ func (bc *Blockchain) NetworkFee(t *transaction.Transaction) util.Fixed8 { // SystemFee returns system fee. func (bc *Blockchain) SystemFee(t *transaction.Transaction) util.Fixed8 { + if t.Type == transaction.InvocationType { + inv := t.Data.(*transaction.InvocationTX) + if inv.Version >= 1 { + return inv.Gas + } + } return bc.GetConfig().SystemFee.TryGetValue(t.Type) } diff --git a/pkg/core/helper_test.go b/pkg/core/helper_test.go index eb171e599..fc82226cb 100644 --- a/pkg/core/helper_test.go +++ b/pkg/core/helper_test.go @@ -93,8 +93,9 @@ func newBlock(cfg config.ProtocolConfiguration, index uint32, prev util.Uint256, func (bc *Blockchain) genBlocks(n int) ([]*block.Block, error) { blocks := make([]*block.Block, n) lastHash := bc.topBlock.Load().(*block.Block).Hash() + lastIndex := bc.topBlock.Load().(*block.Block).Index for i := 0; i < n; i++ { - blocks[i] = newBlock(bc.config, uint32(i)+1, lastHash, newMinerTX()) + blocks[i] = newBlock(bc.config, uint32(i)+lastIndex+1, lastHash, newMinerTX()) if err := bc.AddBlock(blocks[i]); err != nil { return blocks, err } @@ -165,21 +166,117 @@ func getInvocationScript(data []byte, priv *keys.PrivateKey) []byte { } // This function generates "../rpc/testdata/testblocks.acc" file which contains data -// for RPC unit tests. +// for RPC unit tests. It also is a nice integration test. // To generate new "../rpc/testdata/testblocks.acc", follow the steps: -// 1. Rename the function -// 2. Add specific test-case into "neo-go/pkg/core/blockchain_test.go" -// 3. Run tests with `$ make test` -func _(t *testing.T) { +// 1. Set saveChain down below to true +// 2. Run tests with `$ make test` +func TestCreateBasicChain(t *testing.T) { + const saveChain = false const prefix = "../rpc/server/testdata/" + // To make enough GAS. + const numOfEmptyBlocks = 200 + var neoAmount = util.Fixed8FromInt64(99999000) + var neoRemainder = util.Fixed8FromInt64(100000000) - neoAmount bc := newTestChain(t) - n := 50 - _, err := bc.genBlocks(n) + + // Move almost all NEO to one simple account. + txMoveNeo := transaction.NewContractTX() + h, err := util.Uint256DecodeStringBE("6da730b566db183bfceb863b780cd92dee2b497e5a023c322c1eaca81cf9ad7a") + require.NoError(t, err) + txMoveNeo.AddInput(&transaction.Input{ + PrevHash: h, + PrevIndex: 0, + }) + + // multisig address which possess all NEO + scriptHash, err := util.Uint160DecodeStringBE("be48d3a3f5d10013ab9ffee489706078714f1ea2") + require.NoError(t, err) + priv0, err := keys.NewPrivateKeyFromWIF(privNetKeys[0]) + require.NoError(t, err) + txMoveNeo.AddOutput(&transaction.Output{ + AssetID: GoverningTokenID(), + Amount: neoAmount, + ScriptHash: priv0.GetScriptHash(), + Position: 0, + }) + txMoveNeo.AddOutput(&transaction.Output{ + AssetID: GoverningTokenID(), + Amount: neoRemainder, + ScriptHash: scriptHash, + Position: 1, + }) + txMoveNeo.Data = new(transaction.ContractTX) + + validators, err := getValidators(bc.config) + require.NoError(t, err) + rawScript, err := smartcontract.CreateMultiSigRedeemScript(len(bc.config.StandbyValidators)/2+1, validators) + require.NoError(t, err) + data := txMoveNeo.GetSignedPart() + + var invoc []byte + for i := range privNetKeys { + priv, err := keys.NewPrivateKeyFromWIF(privNetKeys[i]) + require.NoError(t, err) + invoc = append(invoc, getInvocationScript(data, priv)...) + } + + txMoveNeo.Scripts = []transaction.Witness{{ + InvocationScript: invoc, + VerificationScript: rawScript, + }} + + b := bc.newBlock(newMinerTX(), txMoveNeo) + require.NoError(t, bc.AddBlock(b)) + t.Logf("txMoveNeo: %s", txMoveNeo.Hash().StringLE()) + + // Generate some blocks to be able to claim GAS for them. + _, err = bc.genBlocks(numOfEmptyBlocks) require.NoError(t, err) - tx1 := newMinerTX() + acc0, err := wallet.NewAccountFromWIF(priv0.WIF()) + require.NoError(t, err) + // Make a NEO roundtrip (send to myself) and claim GAS. + txNeoRound := transaction.NewContractTX() + txNeoRound.AddInput(&transaction.Input{ + PrevHash: txMoveNeo.Hash(), + PrevIndex: 0, + }) + txNeoRound.AddOutput(&transaction.Output{ + AssetID: GoverningTokenID(), + Amount: neoAmount, + ScriptHash: priv0.GetScriptHash(), + Position: 0, + }) + txNeoRound.Data = new(transaction.ContractTX) + require.NoError(t, acc0.SignTx(txNeoRound)) + b = bc.newBlock(newMinerTX(), txNeoRound) + require.NoError(t, bc.AddBlock(b)) + t.Logf("txNeoRound: %s", txNeoRound.Hash().StringLE()) + + txClaim := &transaction.Transaction{Type: transaction.ClaimType} + claim := new(transaction.ClaimTX) + claim.Claims = append(claim.Claims, transaction.Input{ + PrevHash: txMoveNeo.Hash(), + PrevIndex: 0, + }) + txClaim.Data = claim + neoGas, sysGas, err := bc.CalculateClaimable(neoAmount, 1, bc.BlockHeight()) + require.NoError(t, err) + gasOwned := neoGas + sysGas + txClaim.AddOutput(&transaction.Output{ + AssetID: UtilityTokenID(), + Amount: gasOwned, + ScriptHash: priv0.GetScriptHash(), + Position: 0, + }) + require.NoError(t, acc0.SignTx(txClaim)) + b = bc.newBlock(newMinerTX(), txClaim) + require.NoError(t, bc.AddBlock(b)) + t.Logf("txClaim: %s", txClaim.Hash().StringLE()) + + // Push some contract into the chain. avm, err := ioutil.ReadFile(prefix + "test_contract.avm") require.NoError(t, err) @@ -200,11 +297,25 @@ func _(t *testing.T) { emit.Syscall(script.BinWriter, "Neo.Contract.Create") txScript := script.Bytes() - tx2 := transaction.NewInvocationTX(txScript, util.Fixed8FromFloat(100)) - - block := bc.newBlock(tx1, tx2) - require.NoError(t, bc.AddBlock(block)) + invFee := util.Fixed8FromFloat(100) + txDeploy := transaction.NewInvocationTX(txScript, invFee) + txDeploy.AddInput(&transaction.Input{ + PrevHash: txClaim.Hash(), + PrevIndex: 0, + }) + txDeploy.AddOutput(&transaction.Output{ + AssetID: UtilityTokenID(), + Amount: gasOwned - invFee, + ScriptHash: priv0.GetScriptHash(), + Position: 0, + }) + gasOwned -= invFee + require.NoError(t, acc0.SignTx(txDeploy)) + b = bc.newBlock(newMinerTX(), txDeploy) + require.NoError(t, bc.AddBlock(b)) + t.Logf("txDeploy: %s", txDeploy.Hash().StringLE()) + // Now invoke this contract. script = io.NewBufBinWriter() emit.String(script.BinWriter, "testvalue") emit.String(script.BinWriter, "testkey") @@ -213,94 +324,54 @@ func _(t *testing.T) { emit.String(script.BinWriter, "Put") emit.AppCall(script.BinWriter, hash.Hash160(avm), false) - tx3 := transaction.NewInvocationTX(script.Bytes(), util.Fixed8FromFloat(100)) - - tx4 := transaction.NewContractTX() - h, err := util.Uint256DecodeStringBE("6da730b566db183bfceb863b780cd92dee2b497e5a023c322c1eaca81cf9ad7a") - require.NoError(t, err) - tx4.AddInput(&transaction.Input{ - PrevHash: h, - PrevIndex: 0, - }) - - // multisig address which possess all NEO - scriptHash, err := util.Uint160DecodeStringBE("be48d3a3f5d10013ab9ffee489706078714f1ea2") - require.NoError(t, err) - priv, err := keys.NewPrivateKeyFromWIF(privNetKeys[0]) - require.NoError(t, err) - tx4.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: util.Fixed8FromInt64(1000), - ScriptHash: priv.GetScriptHash(), - Position: 0, - }) - tx4.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: util.Fixed8FromInt64(99999000), - ScriptHash: scriptHash, - Position: 1, - }) - tx4.Data = new(transaction.ContractTX) - - validators, err := getValidators(bc.config) - require.NoError(t, err) - rawScript, err := smartcontract.CreateMultiSigRedeemScript(len(bc.config.StandbyValidators)/2+1, validators) - require.NoError(t, err) - data := tx4.GetSignedPart() - - var invoc []byte - for i := range privNetKeys { - priv, err := keys.NewPrivateKeyFromWIF(privNetKeys[i]) - require.NoError(t, err) - invoc = append(invoc, getInvocationScript(data, priv)...) - } - - tx4.Scripts = []transaction.Witness{{ - InvocationScript: invoc, - VerificationScript: rawScript, - }} - - b := bc.newBlock(newMinerTX(), tx3, tx4) + txInv := transaction.NewInvocationTX(script.Bytes(), 0) + b = bc.newBlock(newMinerTX(), txInv) require.NoError(t, bc.AddBlock(b)) + t.Logf("txInv: %s", txInv.Hash().StringLE()) priv1, err := keys.NewPrivateKeyFromWIF(privNetKeys[1]) require.NoError(t, err) - tx5 := transaction.NewContractTX() - tx5.Data = new(transaction.ContractTX) - tx5.AddInput(&transaction.Input{ - PrevHash: tx4.Hash(), + txNeo0to1 := transaction.NewContractTX() + txNeo0to1.Data = new(transaction.ContractTX) + txNeo0to1.AddInput(&transaction.Input{ + PrevHash: txNeoRound.Hash(), PrevIndex: 0, }) - tx5.AddOutput(&transaction.Output{ + txNeo0to1.AddOutput(&transaction.Output{ AssetID: GoverningTokenID(), Amount: util.Fixed8FromInt64(1000), ScriptHash: priv1.GetScriptHash(), }) + txNeo0to1.AddOutput(&transaction.Output{ + AssetID: GoverningTokenID(), + Amount: neoAmount - util.Fixed8FromInt64(1000), + ScriptHash: priv0.GetScriptHash(), + }) - acc, err := wallet.NewAccountFromWIF(priv.WIF()) - require.NoError(t, err) - require.NoError(t, acc.SignTx(tx5)) - b = bc.newBlock(newMinerTX(), tx5) + require.NoError(t, acc0.SignTx(txNeo0to1)) + b = bc.newBlock(newMinerTX(), txNeo0to1) require.NoError(t, bc.AddBlock(b)) - outStream, err := os.Create(prefix + "testblocks.acc") - require.NoError(t, err) - defer outStream.Close() - - writer := io.NewBinWriterFromIO(outStream) - - count := bc.BlockHeight() + 1 - writer.WriteU32LE(count - 1) - - for i := 1; i < int(count); i++ { - bh := bc.GetHeaderHash(i) - b, err := bc.GetBlock(bh) + if saveChain { + outStream, err := os.Create(prefix + "testblocks.acc") require.NoError(t, err) - buf := io.NewBufBinWriter() - b.EncodeBinary(buf.BinWriter) - bytes := buf.Bytes() - writer.WriteU32LE(uint32(len(bytes))) - writer.WriteBytes(bytes) - require.NoError(t, writer.Err) + defer outStream.Close() + + writer := io.NewBinWriterFromIO(outStream) + + count := bc.BlockHeight() + 1 + writer.WriteU32LE(count - 1) + + for i := 1; i < int(count); i++ { + bh := bc.GetHeaderHash(i) + b, err := bc.GetBlock(bh) + require.NoError(t, err) + buf := io.NewBufBinWriter() + b.EncodeBinary(buf.BinWriter) + bytes := buf.Bytes() + writer.WriteU32LE(uint32(len(bytes))) + writer.WriteBytes(bytes) + require.NoError(t, writer.Err) + } } } diff --git a/pkg/rpc/server/server_test.go b/pkg/rpc/server/server_test.go index 05a93da14..fb39e0fcf 100644 --- a/pkg/rpc/server/server_test.go +++ b/pkg/rpc/server/server_test.go @@ -44,14 +44,15 @@ var rpcTestCases = map[string][]rpcTestCase{ "getapplicationlog": { { name: "positive", - params: `["d5cf936296de912aa4d051531bd8d25c7a58fb68fc7f87c8d3e6e85475187c08"]`, + params: `["2441c2776cbab65bf81d38a839cf3a85689421631d4ba091be64703f02867315"]`, result: func(e *executor) interface{} { return &result.ApplicationLog{} }, check: func(t *testing.T, e *executor, acc interface{}) { res, ok := acc.(*result.ApplicationLog) require.True(t, ok) - expectedTxHash := util.Uint256{0x8, 0x7c, 0x18, 0x75, 0x54, 0xe8, 0xe6, 0xd3, 0xc8, 0x87, 0x7f, 0xfc, 0x68, 0xfb, 0x58, 0x7a, 0x5c, 0xd2, 0xd8, 0x1b, 0x53, 0x51, 0xd0, 0xa4, 0x2a, 0x91, 0xde, 0x96, 0x62, 0x93, 0xcf, 0xd5} + expectedTxHash, err := util.Uint256DecodeStringLE("2441c2776cbab65bf81d38a839cf3a85689421631d4ba091be64703f02867315") + require.NoError(t, err) assert.Equal(t, expectedTxHash, res.TxHash) assert.Equal(t, 1, len(res.Executions)) assert.Equal(t, "Application", res.Executions[0].Trigger) @@ -256,13 +257,13 @@ var rpcTestCases = map[string][]rpcTestCase{ "getblock": { { name: "positive", - params: "[1, 1]", + params: "[2, 1]", result: func(e *executor) interface{} { return &result.Block{} }, check: func(t *testing.T, e *executor, blockRes interface{}) { res, ok := blockRes.(*result.Block) require.True(t, ok) - block, err := e.chain.GetBlock(e.chain.GetHeaderHash(1)) + block, err := e.chain.GetBlock(e.chain.GetHeaderHash(2)) require.NoErrorf(t, err, "could not get block") assert.Equal(t, block.Hash(), res.Hash) @@ -381,13 +382,13 @@ var rpcTestCases = map[string][]rpcTestCase{ result: func(*executor) interface{} { // hash of the issueTx h, _ := util.Uint256DecodeStringBE("6da730b566db183bfceb863b780cd92dee2b497e5a023c322c1eaca81cf9ad7a") - amount := util.Fixed8FromInt64(52 * 8) // (endHeight - startHeight) * genAmount[0] + amount := util.Fixed8FromInt64(1 * 8) // (endHeight - startHeight) * genAmount[0] return &result.ClaimableInfo{ Spents: []result.Claimable{ { Tx: h, Value: util.Fixed8FromInt64(100000000), - EndHeight: 52, + EndHeight: 1, Generated: amount, Unclaimed: amount, }, diff --git a/pkg/rpc/server/testdata/testblocks.acc b/pkg/rpc/server/testdata/testblocks.acc index 9f136a2b4659b4c1ca73677212a542f294605568..5507af4ea9c6f326e97dd486e8b9bb733dbd9fa3 100644 GIT binary patch literal 109412 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