From dbecbe39f03a55828dcd20050a08bd39c2e30b69 Mon Sep 17 00:00:00 2001 From: huof6890 <68298506@qq.com> Date: Fri, 20 May 2022 23:25:09 +0800 Subject: [PATCH 1/4] add TestLondonEVM --- action/protocol/execution/protocol_test.go | 83 +++++++++ .../CVE-2021-39137-attack-replay.json | 30 +++ .../execution/testdata-london/accesslist.json | 53 ++++++ .../execution/testdata-london/accesslist.sol | 23 +++ .../testdata-london/array-return.json | 43 +++++ .../testdata-london/array-return.sol | 34 ++++ .../testdata-london/basic-token.json | 44 +++++ .../execution/testdata-london/basic-token.sol | 18 ++ .../testdata-london/call-dynamic.json | 34 ++++ .../testdata-london/call-dynamic.sol | 16 ++ .../testdata-london/chainid-selfbalance.json | 60 ++++++ .../testdata-london/chainid-selfbalance.sol | 19 ++ .../testdata-london/changestate.json | 54 ++++++ .../execution/testdata-london/changestate.sol | 15 ++ .../execution/testdata-london/datacopy.json | 36 ++++ .../execution/testdata-london/datacopy.sol | 34 ++++ .../execution/testdata-london/f.value.json | 46 +++++ .../execution/testdata-london/f.value.sol | 28 +++ .../execution/testdata-london/gas-test.json | 119 ++++++++++++ .../execution/testdata-london/gas-test.sol | 33 ++++ .../testdata-london/infiniteloop.json | 65 +++++++ .../testdata-london/infiniteloop.sol | 29 +++ .../testdata-london/mapping-delete.json | 21 +++ .../testdata-london/mapping-delete.sol | 18 ++ .../execution/testdata-london/maxtime.json | 61 ++++++ .../execution/testdata-london/maxtime.sol | 56 ++++++ .../execution/testdata-london/modifiers.json | 51 +++++ .../execution/testdata-london/modifiers.sol | 37 ++++ .../execution/testdata-london/multisend.json | 133 +++++++++++++ .../execution/testdata-london/multisend.sol | 36 ++++ .../no-variable-length-returns.json | 64 +++++++ .../no-variable-length-returns.sol | 31 +++ .../testdata-london/public-mapping.json | 66 +++++++ .../testdata-london/public-mapping.sol | 24 +++ .../testdata-london/reentry-attack.json | 54 ++++++ .../testdata-london/reentry-attack.sol | 42 +++++ .../testdata-london/remove-from-array.json | 33 ++++ .../testdata-london/remove-from-array.sol | 44 +++++ .../testdata-london/self-destruct.json | 55 ++++++ .../testdata-london/self-destruct.sol | 24 +++ .../execution/testdata-london/send-eth.json | 36 ++++ .../execution/testdata-london/send-eth.sol | 29 +++ .../execution/testdata-london/sha3.json | 176 ++++++++++++++++++ .../execution/testdata-london/sha3.sol | 76 ++++++++ .../testdata-london/storage-test.json | 41 ++++ .../testdata-london/storage-test.sol | 13 ++ .../testdata-london/tail-recursion.json | 55 ++++++ .../testdata-london/tail-recursion.sol | 28 +++ .../execution/testdata-london/tuple.json | 33 ++++ .../execution/testdata-london/tuple.sol | 15 ++ .../testdata-london/wireconnection.json | 44 +++++ .../testdata-london/wireconnection.sol | 27 +++ 52 files changed, 2339 insertions(+) create mode 100644 action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json create mode 100644 action/protocol/execution/testdata-london/accesslist.json create mode 100644 action/protocol/execution/testdata-london/accesslist.sol create mode 100644 action/protocol/execution/testdata-london/array-return.json create mode 100644 action/protocol/execution/testdata-london/array-return.sol create mode 100644 action/protocol/execution/testdata-london/basic-token.json create mode 100644 action/protocol/execution/testdata-london/basic-token.sol create mode 100644 action/protocol/execution/testdata-london/call-dynamic.json create mode 100644 action/protocol/execution/testdata-london/call-dynamic.sol create mode 100644 action/protocol/execution/testdata-london/chainid-selfbalance.json create mode 100644 action/protocol/execution/testdata-london/chainid-selfbalance.sol create mode 100644 action/protocol/execution/testdata-london/changestate.json create mode 100644 action/protocol/execution/testdata-london/changestate.sol create mode 100644 action/protocol/execution/testdata-london/datacopy.json create mode 100644 action/protocol/execution/testdata-london/datacopy.sol create mode 100644 action/protocol/execution/testdata-london/f.value.json create mode 100644 action/protocol/execution/testdata-london/f.value.sol create mode 100644 action/protocol/execution/testdata-london/gas-test.json create mode 100644 action/protocol/execution/testdata-london/gas-test.sol create mode 100644 action/protocol/execution/testdata-london/infiniteloop.json create mode 100644 action/protocol/execution/testdata-london/infiniteloop.sol create mode 100644 action/protocol/execution/testdata-london/mapping-delete.json create mode 100644 action/protocol/execution/testdata-london/mapping-delete.sol create mode 100644 action/protocol/execution/testdata-london/maxtime.json create mode 100644 action/protocol/execution/testdata-london/maxtime.sol create mode 100644 action/protocol/execution/testdata-london/modifiers.json create mode 100644 action/protocol/execution/testdata-london/modifiers.sol create mode 100644 action/protocol/execution/testdata-london/multisend.json create mode 100644 action/protocol/execution/testdata-london/multisend.sol create mode 100644 action/protocol/execution/testdata-london/no-variable-length-returns.json create mode 100644 action/protocol/execution/testdata-london/no-variable-length-returns.sol create mode 100644 action/protocol/execution/testdata-london/public-mapping.json create mode 100644 action/protocol/execution/testdata-london/public-mapping.sol create mode 100644 action/protocol/execution/testdata-london/reentry-attack.json create mode 100644 action/protocol/execution/testdata-london/reentry-attack.sol create mode 100644 action/protocol/execution/testdata-london/remove-from-array.json create mode 100644 action/protocol/execution/testdata-london/remove-from-array.sol create mode 100644 action/protocol/execution/testdata-london/self-destruct.json create mode 100644 action/protocol/execution/testdata-london/self-destruct.sol create mode 100644 action/protocol/execution/testdata-london/send-eth.json create mode 100644 action/protocol/execution/testdata-london/send-eth.sol create mode 100644 action/protocol/execution/testdata-london/sha3.json create mode 100644 action/protocol/execution/testdata-london/sha3.sol create mode 100644 action/protocol/execution/testdata-london/storage-test.json create mode 100644 action/protocol/execution/testdata-london/storage-test.sol create mode 100644 action/protocol/execution/testdata-london/tail-recursion.json create mode 100644 action/protocol/execution/testdata-london/tail-recursion.sol create mode 100644 action/protocol/execution/testdata-london/tuple.json create mode 100644 action/protocol/execution/testdata-london/tuple.sol create mode 100644 action/protocol/execution/testdata-london/wireconnection.json create mode 100644 action/protocol/execution/testdata-london/wireconnection.sol diff --git a/action/protocol/execution/protocol_test.go b/action/protocol/execution/protocol_test.go index 94c01aef61..72157528db 100644 --- a/action/protocol/execution/protocol_test.go +++ b/action/protocol/execution/protocol_test.go @@ -1020,6 +1020,89 @@ func TestIstanbulEVM(t *testing.T) { }) } +func TestLondonEVM(t *testing.T) { + cfg := config.Default + config.SetEVMNetworkID(cfg.Chain.EVMNetworkID) + t.Run("AccessList", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/accesslist.json") + }) + t.Run("ArrayReturn", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/array-return.json") + }) + t.Run("BasicToken", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/basic-token.json") + }) + t.Run("CallDynamic", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/call-dynamic.json") + }) + t.Run("chainid-selfbalance", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/chainid-selfbalance.json") + }) + t.Run("ChangeState", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/changestate.json") + }) + t.Run("F.value", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/f.value.json") + }) + t.Run("Gas-test", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/gas-test.json") + }) + t.Run("InfiniteLoop", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/infiniteloop.json") + }) + t.Run("MappingDelete", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/mapping-delete.json") + }) + t.Run("max-time", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/maxtime.json") + }) + t.Run("Modifier", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/modifiers.json") + }) + t.Run("Multisend", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/multisend.json") + }) + t.Run("NoVariableLengthReturns", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/no-variable-length-returns.json") + }) + t.Run("PublicMapping", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/public-mapping.json") + }) + t.Run("reentry-attack", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/reentry-attack.json") + }) + t.Run("RemoveFromArray", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/remove-from-array.json") + }) + t.Run("SendEth", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/send-eth.json") + }) + t.Run("Sha3", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/sha3.json") + }) + t.Run("storage-test", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/storage-test.json") + }) + t.Run("TailRecursion", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/tail-recursion.json") + }) + t.Run("Tuple", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/tuple.json") + }) + t.Run("wireconnection", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/wireconnection.json") + }) + t.Run("self-destruct", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/self-destruct.json") + }) + t.Run("datacopy", func(t *testing.T) { + NewSmartContractTest(t, "testdata-london/datacopy.json") + }) + t.Run("CVE-2021-39137-attack-replay", func(t *testing.T) { + NewSmartContractTest(t, "testdata/CVE-2021-39137-attack-replay.json") + }) +} + func benchmarkHotContractWithFactory(b *testing.B, async bool) { sct := SmartContractTest{ InitBalances: []ExpectedBalance{ diff --git a/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json new file mode 100644 index 0000000000..767e929084 --- /dev/null +++ b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json @@ -0,0 +1,30 @@ +{ + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "0000000000000000000000008eae784e072e961f76948a785b62c9a950fb17ae62c9a950fb17ae00000000000000000000000000000000000000000000000000", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 16400, + "expectedBalances": [], + "comment": "deploy attack contract(https://etherscan.io/address/0x8eae784e072e961f76948a785b62c9a950fb17ae)" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3034526020600760203460045afa602034343e604034f3", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 12300, + "comment": "launch attack(https://etherscan.io/tx/0x1cb6fb36633d270edefc04d048145b4298e67b8aa82a9e5ec4aa1435dd770ce4)", + "expectedBlockInfos" : { + "txRootHash" : "a59ead74a3870e9b5ca352c5f59108df402ca203ef2109799fe2d8e1da49c83d", + "stateRootHash" : "ed9bd589ee5ab5660a3d5d863bbeea13020a0aacab18e8655a626beaf9a54713", + "receiptRootHash" : "3285579efa8521fbf95829b868ff5d37632c4feac6167e9ab2dc4961004c9272" + } + }] +} diff --git a/action/protocol/execution/testdata-london/accesslist.json b/action/protocol/execution/testdata-london/accesslist.json new file mode 100644 index 0000000000..3b64e0fe4a --- /dev/null +++ b/action/protocol/execution/testdata-london/accesslist.json @@ -0,0 +1,53 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610204806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806364afab72146100515780636763d38d1461008c5780637b82d74e146100cd578063e9b8ede814610118575b600080fd5b61008a61005f36600461015f565b6001600160a01b0390911660009081526020818152604080832093835292905220805460ff19169055565b005b61008a61009a366004610189565b6001600160a01b039290921660009081526020818152604080832093835292905220805460ff1916911515919091179055565b6101046100db36600461015f565b6001600160a01b0391909116600090815260208181526040808320938352929052205460ff1690565b604051901515815260200160405180910390f35b61010461012636600461015f565b600060208181529281526040808220909352908152205460ff1681565b80356001600160a01b038116811461015a57600080fd5b919050565b6000806040838503121561017257600080fd5b61017b83610143565b946020939093013593505050565b60008060006060848603121561019e57600080fd5b6101a784610143565b925060208401359150604084013580151581146101c357600080fd5b80915050925092509256fea26469706673582212207190521dcca4e3d3468ff2948134eb5c05192d634814065d08e2695847c93a0064736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 168153, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy accesslist contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "6763d38d000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 41368, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "set 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae,0x0000000000000000000000000000000000000000000000000000000000000003,true" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "7b82d74e000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae0000000000000000000000000000000000000000000000000000000000000003", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 18155, + "expectedStatus": 1, + "readOnly": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000001", + "expectedBalances": [], + "comment": "get" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "64afab72000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae0000000000000000000000000000000000000000000000000000000000000003", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 11532, + "expectedStatus": 1, + "comment": "remove" + }] +} diff --git a/action/protocol/execution/testdata-london/accesslist.sol b/action/protocol/execution/testdata-london/accesslist.sol new file mode 100644 index 0000000000..61db2b222a --- /dev/null +++ b/action/protocol/execution/testdata-london/accesslist.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract AccessList { + mapping(address => mapping(bytes32 => bool)) public list; + + function set( + address addr, + bytes32 key, + bool ret + ) public { + list[addr][key] = ret; + } + + function get(address addr, bytes32 key) public view returns (bool) { + return list[addr][key]; + } + + function remove(address addr, bytes32 key) public { + delete list[addr][key]; + } +} diff --git a/action/protocol/execution/testdata-london/array-return.json b/action/protocol/execution/testdata-london/array-return.json new file mode 100644 index 0000000000..9f0dd71136 --- /dev/null +++ b/action/protocol/execution/testdata-london/array-return.json @@ -0,0 +1,43 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610115806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b60336047565b604051603e9190609d565b60405180910390f35b60606000805480602002602001604051908101604052809291908181526020018280548015609357602002820191906000526020600020905b8154815260200190600101908083116080575b5050505050905090565b6020808252825182820181905260009190848201906040850190845b8181101560d35783518352928401929184019160010160b9565b5090969550505050505056fea2646970667358221220003153ac66045f6e4649a560a665c439bafefa3a32ad368e45a214ceeb75fdbe64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 96405, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy array-return contract A" + },{ + "rawByteCode": "608060405234801561001057600080fd5b50610212806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063febb0f7e14610030575b600080fd5b61003861004e565b60405161004591906100c4565b60405180910390f35b60008054604080516318530aaf60e31b815290516060936001600160a01b039093169263c298557892600480820193918290030181865afa158015610097573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100bf919081019061011e565b905090565b6020808252825182820181905260009190848201906040850190845b818110156100fc578351835292840192918401916001016100e0565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561013157600080fd5b825167ffffffffffffffff8082111561014957600080fd5b818501915085601f83011261015d57600080fd5b81518181111561016f5761016f610108565b8060051b604051601f19603f8301168101818110858211171561019457610194610108565b6040529182528482019250838101850191888311156101b257600080fd5b938501935b828510156101d0578451845293850193928501926101b7565b9897505050505050505056fea2646970667358221220e2e424aa63507945438677689f578de59a4ff358c3b0332310e7341459ee099164736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 172353, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy array-return contract B" + }], + "executions": [{ + "readOnly": true, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "febb0f7e", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10504, + "expectedStatus": 106, + "failed": true, + "comment": "call bar" + }] +} diff --git a/action/protocol/execution/testdata-london/array-return.sol b/action/protocol/execution/testdata-london/array-return.sol new file mode 100644 index 0000000000..29b8eaea13 --- /dev/null +++ b/action/protocol/execution/testdata-london/array-return.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract A { + uint256[] xs; + + function Apush() internal { + xs.push(100); + xs.push(200); + xs.push(300); + } + + // can be called from web3 + function foo() public view returns (uint256[] memory) { + return xs; + } +} + +// trying to call foo from another contract does not work +contract B { + A a; + + function Bnew() internal { + a = new A(); + } + + // COMPILATION ERROR + // Return argument type inaccessible dynamic type is not implicitly convertible + // to expected type (type of first return variable) uint256[] memory. + function bar() public view returns (uint256[] memory) { + return a.foo(); + } +} diff --git a/action/protocol/execution/testdata-london/basic-token.json b/action/protocol/execution/testdata-london/basic-token.json new file mode 100644 index 0000000000..acc269d217 --- /dev/null +++ b/action/protocol/execution/testdata-london/basic-token.json @@ -0,0 +1,44 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b506101da806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806370a082311461003b578063a9059cbb14610076575b600080fd5b610064610049366004610113565b6001600160a01b031660009081526020819052604090205490565b60405190815260200160405180910390f35b610089610084366004610135565b61008b565b005b3360009081526020819052604090205481116100c65733600090815260208190526040812080548392906100c0908490610175565b90915550505b6001600160a01b038216600090815260208190526040812080548392906100ee90849061018c565b90915550505050565b80356001600160a01b038116811461010e57600080fd5b919050565b60006020828403121561012557600080fd5b61012e826100f7565b9392505050565b6000806040838503121561014857600080fd5b610151836100f7565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156101875761018761015f565b500390565b6000821982111561019f5761019f61015f565b50019056fea2646970667358221220df940e6c929cec5606a2caf0706e2b729904e0a4d6887c561d2dd6c976bd05a464736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 155541, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy an basic token contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "a9059cbb0000000000000000000000003328358128832a260c76a4141e19e2a943cd4b6d0000000000000000000000000000000000000000000000000000000000002710", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 39009, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "transfer 10000 tokens from producer" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "70a082310000000000000000000000003328358128832a260c76a4141e19e2a943cd4b6d", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 14806, + "expectedStatus": 1, + "readOnly": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000002710", + "expectedBalances": [], + "comment": "read the balance" + }] +} diff --git a/action/protocol/execution/testdata-london/basic-token.sol b/action/protocol/execution/testdata-london/basic-token.sol new file mode 100644 index 0000000000..fd87e6fa20 --- /dev/null +++ b/action/protocol/execution/testdata-london/basic-token.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract BasicToken { + mapping(address => uint256) balances; + + function transfer(address recipient, uint256 value) public { + if (balances[msg.sender] >= value) { + balances[msg.sender] -= value; + } + balances[recipient] += value; + } + + function balanceOf(address account) public view returns (uint256) { + return balances[account]; + } +} diff --git a/action/protocol/execution/testdata-london/call-dynamic.json b/action/protocol/execution/testdata-london/call-dynamic.json new file mode 100644 index 0000000000..3c17cdbfd7 --- /dev/null +++ b/action/protocol/execution/testdata-london/call-dynamic.json @@ -0,0 +1,34 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "60806040526000805534801561001457600080fd5b506101bf806100246000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632fbebd381461003b578063febb0f7e14610050575b600080fd5b61004e61004936600461010f565b61006a565b005b61005861007b565b60405190815260200160405180910390f35b61007581600a610128565b60005550565b60405160016024820152600090309060440160408051601f198184030181529181526020820180516001600160e01b03166305f7d7a760e31b179052516100c2919061014e565b6000604051808303816000865af19150503d80600081146100ff576040519150601f19603f3d011682016040523d82523d6000602084013e610104565b606091505b505050600054905090565b60006020828403121561012157600080fd5b5035919050565b6000821982111561014957634e487b7160e01b600052601160045260246000fd5b500190565b6000825160005b8181101561016f5760208186018101518583015201610155565b8181111561017e576000828501525b50919091019291505056fea2646970667358221220f7ceb6bf29142ffe30e8c56eb8bdf47f329f78e8870ef0295242ebe6f895847864736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 148641, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy call dynamic contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "febb0f7e", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 32879, + "expectedStatus": 1, + "readOnly": true, + "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000000b", + "expectedBalances": [], + "comment": "return 11" + }] +} diff --git a/action/protocol/execution/testdata-london/call-dynamic.sol b/action/protocol/execution/testdata-london/call-dynamic.sol new file mode 100644 index 0000000000..3c19bae051 --- /dev/null +++ b/action/protocol/execution/testdata-london/call-dynamic.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MyContract { + uint256 x = 0; + + function foo(uint256 _x) public { + x = 10 + _x; + } + + function bar() public returns (uint256) { + address(this).call(abi.encodeWithSignature("foo(uint256)", 1)); + return x; // returns 11 + } +} diff --git a/action/protocol/execution/testdata-london/chainid-selfbalance.json b/action/protocol/execution/testdata-london/chainid-selfbalance.json new file mode 100644 index 0000000000..7effabd7e3 --- /dev/null +++ b/action/protocol/execution/testdata-london/chainid-selfbalance.json @@ -0,0 +1,60 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "60806040526000805534801561001457600080fd5b5060d2806100236000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063048a5fed146041578063564b81ef146055578063d09de08a14605a575b600080fd5b475b60405190815260200160405180910390f35b466043565b60606062565b005b600080549080606f836076565b9190505550565b600060018201609557634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220de81d1f134e1b02a16ed79b75c1bd5dfab4be2e471e7dc9446b51da91e4cbb8f64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 77399, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "999999999999999999999863365" + }], + "comment": "deploy chainid contract" + }], + "executions": [{ + "readOnly": true, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "564b81ef", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "expectedStatus": 1, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000001251", + "comment": "call getChainID" + }, + { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "d09de08a", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 31452, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "999999999999999999999891149" + }], + "comment": "call increment" + }, + { + "readOnly": true, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "048a5fed", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "expectedStatus": 1, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", + "comment": "call getSelfBalance" + }] +} diff --git a/action/protocol/execution/testdata-london/chainid-selfbalance.sol b/action/protocol/execution/testdata-london/chainid-selfbalance.sol new file mode 100644 index 0000000000..a5a6a929e5 --- /dev/null +++ b/action/protocol/execution/testdata-london/chainid-selfbalance.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract ChainidAndSelfbalance { + uint256 counter = 0; + + function getChainID() public view returns (uint256) { + return block.chainid; + } + + function getSelfBalance() public view returns (uint256) { + return address(this).balance; + } + + function increment() public { + counter++; + } +} diff --git a/action/protocol/execution/testdata-london/changestate.json b/action/protocol/execution/testdata-london/changestate.json new file mode 100644 index 0000000000..30a7682245 --- /dev/null +++ b/action/protocol/execution/testdata-london/changestate.json @@ -0,0 +1,54 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "60806040526000805534801561001457600080fd5b5061012a806100246000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80632e52d60614603757806386b5e2fb146051575b600080fd5b603f60005481565b60405190815260200160405180910390f35b6060605c36600460b1565b6062565b005b806000808282546071919060df565b90915550506000546040519081527f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c9060200160405180910390a1600080fd5b60006020828403121560c257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111560ef5760ef60c9565b50019056fea264697066735822122036e1e8e2c54827484751bc06accc0bc58616042b8d342c6adf160d458a3dfa1864736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 103917, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy a changestate contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "2e52d606", + "rawAmount": "0", + "rawGasLimit": 120000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 11361, + "expectedStatus": 1, + "readOnly": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", + "comment": "query state" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "86b5e2fb000000000000000000000000000000000000000000000000000000000000000d", + "rawAmount": "0", + "rawGasLimit": 120000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 36573, + "expectedStatus": 106, + "failed":true, + "comment": "try changing state" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "2e52d606", + "rawAmount": "0", + "rawGasLimit": 120000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 11361, + "expectedStatus": 1, + "readOnly": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", + "comment": "query state" + }] +} diff --git a/action/protocol/execution/testdata-london/changestate.sol b/action/protocol/execution/testdata-london/changestate.sol new file mode 100644 index 0000000000..87a5de2530 --- /dev/null +++ b/action/protocol/execution/testdata-london/changestate.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract ChangeState { + uint256 public n = 0; + event Log(uint256 n); + + function ChangeStateWithLogFail(uint256 add) public { + n += add; + emit Log(n); + require(false); + n++; + } +} diff --git a/action/protocol/execution/testdata-london/datacopy.json b/action/protocol/execution/testdata-london/datacopy.json new file mode 100644 index 0000000000..b22cbc3e41 --- /dev/null +++ b/action/protocol/execution/testdata-london/datacopy.json @@ -0,0 +1,36 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b5061026d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063574c807814610030575b600080fd5b61003861003a565b005b604080516003808252818301909252600091602082018180368337019050509050601160f81b81600081518110610073576100736101e7565b60200101906001600160f81b031916908160001a905350602260f81b816001815181106100a2576100a26101e7565b60200101906001600160f81b031916908160001a905350603360f81b816002815181106100d1576100d16101e7565b60200101906001600160f81b031916908160001a9053508051604080516003808252818301909252600091602082018180368337019050509050600082602185018460208701600462010000fa9050826000602084013e61013182610137565b50505050565b805161014a90600090602084019061014e565b5050565b82805461015a906101fd565b90600052602060002090601f01602090048101928261017c57600085556101c2565b82601f1061019557805160ff19168380011785556101c2565b828001600101855582156101c2579182015b828111156101c25782518255916020019190600101906101a7565b506101ce9291506101d2565b5090565b5b808211156101ce57600081556001016101d3565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061021157607f821691505b60208210810361023157634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220cb76f887319bd2bf08ab8098cd53e02dcf9d2c8b311ffdae7d73f2c4b7e2442264736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 199671, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy datacopy contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "574c8078", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 33020, + "expectedStatus": 1, + "comment": "the data of return is [0x11, 0x22, 0x33]", + "expectedBlockInfos" : { + "txRootHash" : "3672945ca662bea4dd977e799374c5ce36c0c3e9ecbe98f1655f33439bbfe40c", + "stateRootHash" : "31d9f2c50c45877029ed9afa24e2052bfc36232e9b0d220adfb0f90ec941d86c", + "receiptRootHash" : "866a6a6ed352d53ebc681491a07b99d9e720e32fdae09d241914582ede46f0eb" + } + }] +} diff --git a/action/protocol/execution/testdata-london/datacopy.sol b/action/protocol/execution/testdata-london/datacopy.sol new file mode 100644 index 0000000000..6c2d48c509 --- /dev/null +++ b/action/protocol/execution/testdata-london/datacopy.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract Datacopy { + bytes store; + + function dataCopy() public { + bytes memory arr = new bytes(3); + arr[0] = 0x11; + arr[1] = 0x22; + arr[2] = 0x33; + uint256 length = arr.length; + bytes memory result = new bytes(3); + bool ret; + assembly { + // Call precompiled contract to copy data + ret := staticcall( + 0x10000, + 0x04, + add(arr, 0x20), + length, + add(arr, 0x21), + length + ) + returndatacopy(add(result, 0x20), 0x00, length) + } + updateStore(result); + } + + function updateStore(bytes memory ret) internal { + store = ret; + } +} diff --git a/action/protocol/execution/testdata-london/f.value.json b/action/protocol/execution/testdata-london/f.value.json new file mode 100644 index 0000000000..aea0fc5a33 --- /dev/null +++ b/action/protocol/execution/testdata-london/f.value.json @@ -0,0 +1,46 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610382806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632f64d38614610046578063b5fdeb2314610064578063c4784fd41461006c575b600080fd5b61004e610081565b60405161005b919061024b565b60405180910390f35b61004e61010f565b61007f61007a3660046102a0565b6101a1565b005b6000805461008e90610312565b80601f01602080910402602001604051908101604052809291908181526020018280546100ba90610312565b80156101075780601f106100dc57610100808354040283529160200191610107565b820191906000526020600020905b8154815290600101906020018083116100ea57829003601f168201915b505050505081565b60606000805461011e90610312565b80601f016020809104026020016040519081016040528092919081815260200182805461014a90610312565b80156101975780601f1061016c57610100808354040283529160200191610197565b820191906000526020600020905b81548152906001019060200180831161017a57829003601f168201915b5050505050905090565b6101ad600083836101b2565b505050565b8280546101be90610312565b90600052602060002090601f0160209004810192826101e05760008555610226565b82601f106101f95782800160ff19823516178555610226565b82800160010185558215610226579182015b8281111561022657823582559160200191906001019061020b565b50610232929150610236565b5090565b5b808211156102325760008155600101610237565b600060208083528351808285015260005b818110156102785785810183015185820160400152820161025c565b8181111561028a576000604083870101525b50601f01601f1916929092016040019392505050565b600080602083850312156102b357600080fd5b823567ffffffffffffffff808211156102cb57600080fd5b818501915085601f8301126102df57600080fd5b8135818111156102ee57600080fd5b86602082850101111561030057600080fd5b60209290920196919550909350505050565b600181811c9082168061032657607f821691505b60208210810361034657634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220ed238939b20c65084e7fbd119adbf80e7919e2794cf8a6f7284ebff8909a35b264736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 282826, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy f.value one contract" + },{ + "rawByteCode": "608060405234801561001057600080fd5b5060405161031738038061031783398101604081905261002f916100b8565b600080546001600160a01b0319166001600160a01b03831690811790915560405163311e13f560e21b815260206004808301919091526024820152631d195cdd60e21b604482015263c4784fd490606401600060405180830381600087803b15801561009a57600080fd5b505af11580156100ae573d6000803e3d6000fd5b50505050506100e8565b6000602082840312156100ca57600080fd5b81516001600160a01b03811681146100e157600080fd5b9392505050565b610220806100f76000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b5fdeb2314610030575b600080fd5b61003861004e565b60405161004591906100f4565b60405180910390f35b600080546040805163b5fdeb2360e01b815290516060936001600160a01b039093169263b5fdeb2392600480820193918290030181865afa158015610097573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100bf919081019061013d565b905090565b60005b838110156100df5781810151838201526020016100c7565b838111156100ee576000848401525b50505050565b60208152600082518060208401526101138160408501602087016100c4565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561014f57600080fd5b815167ffffffffffffffff8082111561016757600080fd5b818401915084601f83011261017b57600080fd5b81518181111561018d5761018d610127565b604051601f8201601f19908116603f011681019083821181831017156101b5576101b5610127565b816040528281528760208487010111156101ce57600080fd5b6101df8360208301602088016100c4565b97965050505050505056fea264697066735822122010ff35e04bc24ece56ab696ee9691ac2f78932141df9c84f6bbb8bc22110623564736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "appendContractAddress": true, + "contractIndexToAppend": 0, + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 245495, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy f.value two contract" + }], + "executions": [{ + "contractIndex": 1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "b5fdeb23", + "rawAmount": "0", + "rawGasLimit": 1200000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 16422, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "comment": "get msg" + }] +} diff --git a/action/protocol/execution/testdata-london/f.value.sol b/action/protocol/execution/testdata-london/f.value.sol new file mode 100644 index 0000000000..092c9d5171 --- /dev/null +++ b/action/protocol/execution/testdata-london/f.value.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract One { + string public word; + + function setMsg(string calldata whatever) public { + word = whatever; + } + + function getMsg() public view returns (string memory) { + return word; + } +} + +contract Two { + One o; + + constructor(address one) { + o = One(one); + o.setMsg("test"); + } + + function getMsg() public view returns (string memory) { + return o.getMsg(); + } +} diff --git a/action/protocol/execution/testdata-london/gas-test.json b/action/protocol/execution/testdata-london/gas-test.json new file mode 100644 index 0000000000..4808fc4167 --- /dev/null +++ b/action/protocol/execution/testdata-london/gas-test.json @@ -0,0 +1,119 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments":[{ + "rawByteCode": "608060405234801561001057600080fd5b50610510806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631bb8305d146100465780633f03c8891461005b578063f446c1d014610081575b600080fd5b6100596100543660046102e0565b610096565b005b61006e610069366004610391565b6100ad565b6040519081526020015b60405180910390f35b6100896101a3565b60405161007891906103c3565b80516100a9906000906020840190610231565b5050565b600760005b858110156100e9576305f5e1076100cb8361271761042e565b6100d5919061044d565b9150806100e18161046f565b9150506100b2565b5060005b8481101561010e57600781901b9150806101068161046f565b9150506100ed565b5060005b838110156101495761271761012b836305f5e109610488565b610135919061044d565b9150806101418161046f565b915050610112565b5060005b8281101561019a576040518181527f3a9d05cd2ccc32722d8227d12aba72f740e7ae88c2afc7c40220d2686fda55ac9060200160405180910390a1806101928161046f565b91505061014d565b50949350505050565b600080546101b0906104a0565b80601f01602080910402602001604051908101604052809291908181526020018280546101dc906104a0565b80156102295780601f106101fe57610100808354040283529160200191610229565b820191906000526020600020905b81548152906001019060200180831161020c57829003601f168201915b505050505081565b82805461023d906104a0565b90600052602060002090601f01602090048101928261025f57600085556102a5565b82601f1061027857805160ff19168380011785556102a5565b828001600101855582156102a5579182015b828111156102a557825182559160200191906001019061028a565b506102b19291506102b5565b5090565b5b808211156102b157600081556001016102b6565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156102f257600080fd5b813567ffffffffffffffff8082111561030a57600080fd5b818401915084601f83011261031e57600080fd5b813581811115610330576103306102ca565b604051601f8201601f19908116603f01168101908382118183101715610358576103586102ca565b8160405282815287602084870101111561037157600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080608085870312156103a757600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156103f0578581018301518582016040015282016103d4565b81811115610402576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561044857610448610418565b500290565b60008261046a57634e487b7160e01b600052601260045260246000fd5b500690565b60006001820161048157610481610418565b5060010190565b6000821982111561049b5761049b610418565b500190565b600181811c908216806104b457607f821691505b6020821081036104d457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220b2eb868a280ea9852a255794a48c8caf777c3401e8236346940e3d4f6808a3ba64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 402300, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy gas test contract" + }] , + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000002198000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 2354272, + "expectedStatus": 1, + "comment": "call test multiply" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c889000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062b800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 3258488, + "expectedStatus": 1, + "comment": "call test shift" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022800000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 2222840, + "expectedStatus": 1, + "comment": "call test add" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e30", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 4244056, + "expectedStatus": 1, + "expectedLogs": [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}], + "comment": "call test log" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "1bb8305d000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000019c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 4856782, + "expectedStatus": 1, + "comment": "call storeString" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000016f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "comment": "call test multiply" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001117000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "comment": "call test shift" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177000000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "comment": "call test add" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002260", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "expectedLogs": [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}], + "comment": "call test log" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "1bb8305d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000003390303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738393031323300000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "comment": "call storeString" + }] +} diff --git a/action/protocol/execution/testdata-london/gas-test.sol b/action/protocol/execution/testdata-london/gas-test.sol new file mode 100644 index 0000000000..4afc6087bf --- /dev/null +++ b/action/protocol/execution/testdata-london/gas-test.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract tester { + string public A; + event logTest(uint256 n); + + function test( + uint256 mul, + uint256 shift, + uint256 add, + uint256 log + ) public returns (uint256 a) { + a = 7; + for (uint256 i = 0; i < mul; i++) { + a = (a * 10007) % 100000007; + } + for (uint256 i = 0; i < shift; i++) { + a = i << 7; + } + for (uint256 i = 0; i < add; i++) { + a = (a + 100000009) % 10007; + } + for (uint256 i = 0; i < log; i++) { + emit logTest(i); + } + } + + function storeString(string memory a) public { + A = a; + } +} diff --git a/action/protocol/execution/testdata-london/infiniteloop.json b/action/protocol/execution/testdata-london/infiniteloop.json new file mode 100644 index 0000000000..fff52629dc --- /dev/null +++ b/action/protocol/execution/testdata-london/infiniteloop.json @@ -0,0 +1,65 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "10000000000000000000" + }], + "deployments":[{ + "rawByteCode": "608060405234801561001057600080fd5b506101e5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635bec9e671461004657806360fe47b114610050578063c2bc2efc14610063575b600080fd5b61004e610088565b005b61004e61005e36600461013f565b6100a1565b610076610071366004610158565b6100dc565b60405190815260200160405180910390f35b60008054908061009783610188565b9190505550610088565b60008190556040518181527fdf7a95aebff315db1b7716215d602ab537373cdb769232aae6055c06e798425b9060200160405180910390a150565b60006001600160a01b0382166100f157600080fd5b600054604080516001600160a01b038516815260208101929092527fbde7a70c2261170a87678200113c8e12f82f63d0a1d1cfa45681cbac328e87e3910160405180910390a1505060005490565b60006020828403121561015157600080fd5b5035919050565b60006020828403121561016a57600080fd5b81356001600160a01b038116811461018157600080fd5b9392505050565b6000600182016101a857634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220568e9b0cfa6b1769dec0d8e8973b98156b61ceafd4f4bf667b252995a66b50a864736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 158847, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "9999999999999803029" + }], + "comment": "deploy the contract" + }] , + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "60fe47b10000000000000000000000000000000000000000000000000000000000001f40", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 34889, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "9999999999999806264" + }], + "expectedLogs": [{}], + "comment": "set storedData = 0x1f40" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "c2bc2efc0000000000000000000000000000000000000000000000000000000000000001", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 16934, + "readOnly": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000001f40", + "expectedStatus": 1, + "expectedLogs": [{}], + "comment": "read and verify storedData = 0x1f40" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5bec9e67", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 5000000, + "failed": true, + "expectedStatus": 101, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "9999999999994806264" + }], + "comment": "calling infinite(), this will consume all provided gas, and exit with failure" + }] +} diff --git a/action/protocol/execution/testdata-london/infiniteloop.sol b/action/protocol/execution/testdata-london/infiniteloop.sol new file mode 100644 index 0000000000..c6d2632fba --- /dev/null +++ b/action/protocol/execution/testdata-london/infiniteloop.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract SimpleStorage { + uint256 storedData; + + event Set(uint256); + event Get(address, uint256); + event Deadlock(); + + function set(uint256 x) public { + storedData = x; + emit Set(x); + } + + function get(address _to) public returns (uint256) { + require(_to != address(0)); + emit Get(_to, storedData); + return storedData; + } + + function infinite() public { + while (true) { + storedData++; + } + emit Deadlock(); + } +} diff --git a/action/protocol/execution/testdata-london/mapping-delete.json b/action/protocol/execution/testdata-london/mapping-delete.json new file mode 100644 index 0000000000..038fd000a3 --- /dev/null +++ b/action/protocol/execution/testdata-london/mapping-delete.json @@ -0,0 +1,21 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments":[{ + "rawByteCode": "608060405234801561001057600080fd5b50604080518082018252600180825260026020808401828152600080805280835294517fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb555517fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb6558451808601865260038152600490820152845180860190955260058552600685820190815291845283905292517fabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a5695591517fabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a56a559081527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d8190557fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7e5560b8806101426000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063bfb231d214602d575b600080fd5b60516038366004606a565b6000602081905290815260409020805460019091015482565b6040805192835260208301919091520160405180910390f35b600060208284031215607b57600080fd5b503591905056fea26469706673582212204c81f123b824c90df02ffdb3edccc52378b91c090a88da4ae48f832df13ebdc364736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 179351, + "expectedStatus": 1, + "comment": "deploy mapping-delete contract" + }] , + "executions": [] +} diff --git a/action/protocol/execution/testdata-london/mapping-delete.sol b/action/protocol/execution/testdata-london/mapping-delete.sol new file mode 100644 index 0000000000..c9d27b46c7 --- /dev/null +++ b/action/protocol/execution/testdata-london/mapping-delete.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MyContract { + struct Data { + uint256 a; + uint256 b; + } + mapping(uint256 => Data) public items; + + constructor() { + items[0] = Data(1, 2); + items[1] = Data(3, 4); + items[2] = Data(5, 6); + delete items[1]; + } +} diff --git a/action/protocol/execution/testdata-london/maxtime.json b/action/protocol/execution/testdata-london/maxtime.json new file mode 100644 index 0000000000..a47dc13b9b --- /dev/null +++ b/action/protocol/execution/testdata-london/maxtime.json @@ -0,0 +1,61 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "10000000000000000000" + }], + "deployments":[{ + "rawByteCode": "608060405234801561001057600080fd5b50610395806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806316f7ae7a1461005157806319ae89941461007657806360fe47b114610089578063caf446831461009e575b600080fd5b61006461005f3660046102a8565b6100b1565b60405190815260200160405180910390f35b6100646100843660046102a8565b610173565b61009c6100973660046102a8565b6101e3565b005b6100646100ac3660046102a8565b610246565b600080805b838110156101415760005b602081101561010e57600081602081106100dd576100dd6102c1565b01546100e990846102ed565b60081c92506100fa83610101610305565b92508061010681610324565b9150506100c1565b5081600061011d60208461033d565b6020811061012d5761012d6102c1565b01558061013981610324565b9150506100b6565b5060405181907fdf7a95aebff315db1b7716215d602ab537373cdb769232aae6055c06e798425b90600090a292915050565b600080805b838110156101415760005b60208110156101d0576000816020811061019f5761019f6102c1565b01546101ab90846102ed565b60081c92506101bc83610101610305565b9250806101c881610324565b915050610183565b50806101db81610324565b915050610178565b60005b6020811015610217578160008260208110610203576102036102c1565b01558061020f81610324565b9150506101e6565b5060405181907fdf7a95aebff315db1b7716215d602ab537373cdb769232aae6055c06e798425b90600090a250565b600080805b838110156101415760005b60208110156102955760008160208110610272576102726102c1565b015461027e90846102ed565b60081c92508061028d81610324565b915050610256565b50806102a081610324565b91505061024b565b6000602082840312156102ba57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610300576103006102d7565b500190565b600081600019048311821515161561031f5761031f6102d7565b500290565b600060018201610336576103366102d7565b5060010190565b60008261035a57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212205a1480dc8fd7b4f1e1c414b55d7b96e6655e3e3789b49d9fedb757e4bd4e5e2864736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 288526, + "expectedStatus": 1, + "comment": "deploy the contract" + }] , + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "60fe47b100000000000000000000000000000000000000000000000000000000000001f4", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 659698, + "expectedStatus": 1, + "expectedLogs": [{}], + "comment": "set storedData = 0x1f40" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "19ae89940000000000000000000000000000000000000000000000000000000000000069", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 3796638, + "expectedStatus": 1, + "expectedLogs": [{}], + "comment": "run test1" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "caf44683000000000000000000000000000000000000000000000000000000000000007e", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 4161893, + "expectedStatus": 1, + "expectedLogs": [{}], + "comment": "run test2" + }, { + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "16f7ae7a0000000000000000000000000000000000000000000000000000000000000066", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "1", + "rawExpectedGasConsumed": 3913955, + "expectedStatus": 1, + "expectedLogs": [{}], + "comment": "run store1" + }] +} diff --git a/action/protocol/execution/testdata-london/maxtime.sol b/action/protocol/execution/testdata-london/maxtime.sol new file mode 100644 index 0000000000..0bf0624265 --- /dev/null +++ b/action/protocol/execution/testdata-london/maxtime.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract SimpleStorage { + uint256[32] storedData; + + event Set(uint256 indexed); + event Get(address, uint256); + + function set(uint256 x) public { + for (uint256 i = 0; i < 32; i++) { + storedData[i] = x; + } + emit Set(x); + } + + function test1(uint256 loop) public returns (uint256) { + uint256 x = 0; + for (uint256 j = 0; j < loop; j++) { + for (uint256 i = 0; i < 32; i++) { + x += storedData[i]; + x = x >> 8; + x = x * 257; + } + } + emit Set(x); + return x; + } + + function store1(uint256 loop) public returns (uint256) { + uint256 x = 0; + for (uint256 j = 0; j < loop; j++) { + for (uint256 i = 0; i < 32; i++) { + x += storedData[i]; + x = x >> 8; + x = x * 257; + } + storedData[j % 32] = x; + } + emit Set(x); + return x; + } + + function test2(uint256 loop) public returns (uint256) { + uint256 x = 0; + for (uint256 j = 0; j < loop; j++) { + for (uint256 i = 0; i < 32; i++) { + x += storedData[i]; + x = x >> 8; + } + } + emit Set(x); + return x; + } +} diff --git a/action/protocol/execution/testdata-london/modifiers.json b/action/protocol/execution/testdata-london/modifiers.json new file mode 100644 index 0000000000..e945975701 --- /dev/null +++ b/action/protocol/execution/testdata-london/modifiers.json @@ -0,0 +1,51 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "60806040526000805460ff1916905534801561001a57600080fd5b5061015b8061002a6000396000f3fe6080604052600436106100345760003560e01c8063590e1ae314610039578063e420264a14610043578063fc68521a14610063575b600080fd5b610041610083565b005b34801561004f57600080fd5b5061004161005e3660046100dc565b6100b0565b34801561006f57600080fd5b5061004161007e3660046100f5565b6100c4565b60405133906108fc9060009081818181818888f193505050501580156100ad573d6000803e3d6000fd5b50565b80600a8082116100bf57600080fd5b505050565b806001600160a01b0381166100d857600080fd5b5050565b6000602082840312156100ee57600080fd5b5035919050565b60006020828403121561010757600080fd5b81356001600160a01b038116811461011e57600080fd5b939250505056fea26469706673582212209640b8983c3c50dee60be4865271f520ba5ae96a496ab4d64f90b3f88e3cf02d64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 120035, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy modifiers contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "fc68521a0000000000000000000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 13923, + "expectedStatus": 106, + "failed": true, + "comment": "call validAddress" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "e420264a0000000000000000000000000000000000000000000000000000000000000009", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 13846, + "expectedStatus": 106, + "failed": true, + "comment": "call greaterThan" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "590e1ae3", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 11278, + "expectedStatus": 1, + "comment": "call refund" + }] +} diff --git a/action/protocol/execution/testdata-london/modifiers.sol b/action/protocol/execution/testdata-london/modifiers.sol new file mode 100644 index 0000000000..ce710ea09a --- /dev/null +++ b/action/protocol/execution/testdata-london/modifiers.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MyContract { + bool locked = false; + + modifier validAddress(address account) { + if (account == address(0x0)) { + revert(); + } + _; + } + + modifier greaterThan(uint256 value, uint256 limit) { + if (value <= limit) { + revert(); + } + _; + } + + modifier lock() { + if (locked) { + locked = true; + _; + locked = false; + } + } + + function f(address account) public validAddress(account) {} + + function g(uint256 a) public greaterThan(a, 10) {} + + function refund() public payable { + payable(msg.sender).transfer(0); + } +} diff --git a/action/protocol/execution/testdata-london/multisend.json b/action/protocol/execution/testdata-london/multisend.json new file mode 100644 index 0000000000..ea0d7360d6 --- /dev/null +++ b/action/protocol/execution/testdata-london/multisend.json @@ -0,0 +1,133 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io10t2hrfgcv0j4g2urc0qvjsvsqfwgykvgvff9eg", + "rawBalance": "1000000000000000000000000000" + }, { + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "1000000000000000000000000000" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "0" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "0" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610668806100206000396000f3fe60806040526004361061001e5760003560e01c8063e3b48f4814610023575b600080fd5b610036610031366004610476565b610038565b005b61012c835111156100a05760405162461bcd60e51b815260206004820152602760248201527f6e756d626572206f6620726563697069656e7473206973206c61726765722074604482015266068616e203330360cc1b60648201526084015b60405180910390fd5b81518351146100e85760405162461bcd60e51b81526020600482015260146024820152730e0c2e4c2dacae8cae4e640dcdee840dac2e8c6d60631b6044820152606401610097565b6000805b845181101561012e5783818151811061010757610107610569565b60200260200101518261011a9190610595565b915080610126816105ad565b9150506100ec565b50803410156101725760405162461bcd60e51b815260206004820152601060248201526f3737ba1032b737bab3b4103a37b5b2b760811b6044820152606401610097565b600061017e82346105c6565b905060005b85518110156102895785818151811061019e5761019e610569565b60200260200101516001600160a01b03166108fc8683815181106101c4576101c4610569565b60200260200101519081150290604051600060405180830381858888f193505050501580156101f7573d6000803e3d6000fd5b507f69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de286828151811061022b5761022b610569565b602002602001015186838151811061024557610245610569565b602002602001015160405161026f9291906001600160a01b03929092168252602082015260400190565b60405180910390a180610281816105ad565b915050610183565b5080156102f257604051339082156108fc029083906000818181858888f193505050501580156102bd573d6000803e3d6000fd5b506040518181527f2e1897b0591d764356194f7a795238a87c1987c7a877568e50d829d547c92b979060200160405180910390a15b7f53a85291e316c24064ff2c7668d99f35ecbb40ef4e24794ff9d8abe901c7e62c8360405161032191906105dd565b60405180910390a15050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561036f5761036f610330565b604052919050565b600067ffffffffffffffff82111561039157610391610330565b5060051b60200190565b600082601f8301126103ac57600080fd5b813560206103c16103bc83610377565b610346565b82815260059290921b840181019181810190868411156103e057600080fd5b8286015b848110156103fb57803583529183019183016103e4565b509695505050505050565b600082601f83011261041757600080fd5b813567ffffffffffffffff81111561043157610431610330565b610444601f8201601f1916602001610346565b81815284602083860101111561045957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561048b57600080fd5b833567ffffffffffffffff808211156104a357600080fd5b818601915086601f8301126104b757600080fd5b813560206104c76103bc83610377565b82815260059290921b8401810191818101908a8411156104e657600080fd5b948201945b8386101561051a5785356001600160a01b038116811461050b5760008081fd5b825294820194908201906104eb565b9750508701359250508082111561053057600080fd5b61053c8783880161039b565b9350604086013591508082111561055257600080fd5b5061055f86828701610406565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156105a8576105a861057f565b500190565b6000600182016105bf576105bf61057f565b5060010190565b6000828210156105d8576105d861057f565b500390565b600060208083528351808285015260005b8181101561060a578581018301518582016040015282016105ee565b8181111561061c576000604083870101525b50601f01601f191692909201604001939250505056fea26469706673582212206d0223a5db842371fc5fe7a4c18fa5824b40669109c50e8d235498c0ed7ffa1364736f6c634300080e0033", + "rawPrivateKey": "d3d89ecdb8342c9308b84e73db1149f222ac3b15a087657a579c370078b21e25", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 505568, + "expectedBalances": [], + "expectedStatus" : 1, + "comment": "deploy multisend contract" + }], + "executions": [{ + "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", + "rawByteCode": "e3b48f48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000020000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "rawAmount": "721", + "rawGasLimit": 1200000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 126904, + "expectedBalances": [{ + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "999999999999999999999999556" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "123" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "321" + }], + "expectedLogs": [{},{},{},{}], + "expectedStatus" : 1, + "comment": "send to two accounts" + }, { + "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", + "rawByteCode": "e3b48f48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000020000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "rawAmount": "1", + "rawGasLimit": 1200000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 48112, + "failed": true, + "expectedBalances": [{ + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "999999999999999999999999556" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "123" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "321" + }], + "expectedStatus" : 106, + "expectedErrorMsg" : "not enough token", + "comment": "not enough tokens" + }, { + "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", + "rawByteCode": "e3b48f480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000abc00000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000020000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "rawAmount": "721", + "rawGasLimit": 1200000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 45692, + "failed": true, + "expectedBalances": [{ + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "999999999999999999999999556" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "123" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "321" + }], + "expectedStatus" : 106, + "comment": "broken bytecode" + }, { + "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", + "rawByteCode": "e3b48f48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000004c20000000000000000000000000000000000000000000000000000000000000012e0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc100000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000009ac231543413a274b1691e30292f0c88ec38cc10000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000141000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "rawAmount": "100000000000", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 2024382, + "failed": true, + "expectedBalances": [{ + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "999999999999999999999999556" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "123" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "321" + }], + "expectedStatus" : 106, + "expectedErrorMsg" : "number of recipients is larger than 300", + "comment": "more than 300 recipients" + }, { + "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", + "rawByteCode": "e3b48f48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000004ba0000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", + "rawAmount": "9999999999999999", + "rawGasLimit": 6000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 4853681, + "expectedBalances": [{ + "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", + "rawBalance": "999999999999999999999962656" + }, { + "account": "io18jaldgzc8wlyfnzamgas62yu3kg5nw527czg37", + "rawBalance": "37023" + }, { + "account": "io1ntprz4p5zw38fvtfrcczjtcv3rkr3nqs6sm3pj", + "rawBalance": "321" + }], + "expectedStatus" : 1, + "expectedLogs": [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}], + "comment": "transfer to 300 recipients" + }] +} diff --git a/action/protocol/execution/testdata-london/multisend.sol b/action/protocol/execution/testdata-london/multisend.sol new file mode 100644 index 0000000000..f99fe85707 --- /dev/null +++ b/action/protocol/execution/testdata-london/multisend.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract Multisend { + event Transfer(address recipient, uint256 amount); + event Refund(uint256 refund); + event Payload(string payload); + + function multiSend( + address[] memory recipients, + uint256[] memory amounts, + string memory payload + ) public payable { + require( + recipients.length <= 300, + "number of recipients is larger than 300" + ); + require(recipients.length == amounts.length, "parameters not match"); + uint256 totalAmount = 0; + for (uint256 i = 0; i < recipients.length; i++) { + totalAmount += amounts[i]; + } + require(msg.value >= totalAmount, "not enough token"); + uint256 refund = msg.value - totalAmount; + for (uint256 i = 0; i < recipients.length; i++) { + payable(recipients[i]).transfer(amounts[i]); + emit Transfer(recipients[i], amounts[i]); + } + if (refund > 0) { + payable(msg.sender).transfer(refund); + emit Refund(refund); + } + emit Payload(payload); + } +} diff --git a/action/protocol/execution/testdata-london/no-variable-length-returns.json b/action/protocol/execution/testdata-london/no-variable-length-returns.json new file mode 100644 index 0000000000..4ec27acb9c --- /dev/null +++ b/action/protocol/execution/testdata-london/no-variable-length-returns.json @@ -0,0 +1,64 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610157806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636d4ce63c14610030575b600080fd5b61003861004e565b60405161004591906100d3565b60405180910390f35b606060008054806020026020016040519081016040528092919081815260200182805480156100c957602002820191906000526020600020906000905b82829054906101000a900460c01b6001600160c01b0319168152602001906008019060208260070104928301926001038202915080841161008b5790505b5050505050905090565b6020808252825182820181905260009190848201906040850190845b818110156101155783516001600160c01b031916835292840192918401916001016100ef565b5090969550505050505056fea26469706673582212206ff706ed1b3f9e7cfb5fc73ab395d7ae834ddc42378c3ad226df5e93cbcc6d3d64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 116217, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy A contract" + },{ + "rawByteCode": "608060405234801561001057600080fd5b506103b3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635b1a80421461004657806385aba27514610050578063988acb1d14610080575b600080fd5b61004e610088565b005b61004e61005e366004610255565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b61004e610108565b60008060009054906101000a90046001600160a01b03166001600160a01b0316636d4ce63c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156100dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261010491908101906102b8565b5050565b6000805460408051631b53398f60e21b815290516001600160a01b0390921692636d4ce63c926004808401938290030181865afa15801561014d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261017591908101906102b8565b80516101899160019160209091019061018c565b50565b828054828255906000526020600020906003016004900481019282156102305791602002820160005b838211156101fa57835183826101000a81548167ffffffffffffffff021916908360c01c021790555092602001926008016020816007010492830192600103026101b5565b801561022e5782816101000a81549067ffffffffffffffff02191690556008016020816007010492830192600103026101fa565b505b5061023c929150610240565b5090565b5b8082111561023c5760008155600101610241565b60006020828403121561026757600080fd5b81356001600160a01b038116811461027e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b80516001600160c01b0319811681146102b357600080fd5b919050565b600060208083850312156102cb57600080fd5b825167ffffffffffffffff808211156102e357600080fd5b818501915085601f8301126102f757600080fd5b81518181111561030957610309610285565b8060051b604051601f19603f8301168101818110858211171561032e5761032e610285565b60405291825284820192508381018501918883111561034c57600080fd5b938501935b82851015610371576103628561029b565b84529385019392850192610351565b9897505050505050505056fea2646970667358221220be1f939fbd956f9b5e31ea77bf2ca7bdc9b1b5cae0a61790fb76b532f0dc44e464736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 297532, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy B contract" + }], + "executions": [{ + "contractIndex":1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "85aba275", + "appendContractAddress": true, + "contractIndexToAppend": 0, + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 34724, + "expectedStatus": 1, + "comment": "call assign(address)" + },{ + "contractIndex":1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5b1a8042", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 14687, + "expectedStatus": 1, + "comment": "call copyToMemory" + },{ + "contractIndex":1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "988acb1d", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 16536, + "expectedStatus": 1, + "comment": "call copyToStorage" + }] +} diff --git a/action/protocol/execution/testdata-london/no-variable-length-returns.sol b/action/protocol/execution/testdata-london/no-variable-length-returns.sol new file mode 100644 index 0000000000..c7991a84be --- /dev/null +++ b/action/protocol/execution/testdata-london/no-variable-length-returns.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract A { + bytes8[] stuff; + + function get() public view returns (bytes8[] memory) { + return stuff; + } +} + +contract B { + A a; + bytes8[] mystuff; + + function assign(address _a) public { + a = A(_a); + } + + function copyToMemory() public view { + // VM does not support variably-sized return types from external function calls + // (ERROR: Type inaccessible dynamic type is not implicitly convertible...) + bytes8[] memory stuff = a.get(); + } + + function copyToStorage() public { + // ERROR + mystuff = a.get(); + } +} diff --git a/action/protocol/execution/testdata-london/public-mapping.json b/action/protocol/execution/testdata-london/public-mapping.json new file mode 100644 index 0000000000..8f46eb8810 --- /dev/null +++ b/action/protocol/execution/testdata-london/public-mapping.json @@ -0,0 +1,66 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b5060e68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80632081e911146037578063ed175850146069575b600080fd5b60676000808052602052602a7fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb555565b005b608660743660046098565b60006020819052908152604090205481565b60405190815260200160405180910390f35b60006020828403121560a957600080fd5b503591905056fea26469706673582212200dfaa61c6a328284784717790c3efe9f36b8174503b0824c042d0ecd2529ae3464736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 82199, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy A contract" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "608060405234801561001057600080fd5b50610179806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636d4ce63c1461003b57806375f890ab14610055575b600080fd5b610043610087565b60405190815260200160405180910390f35b6100856100633660046100fa565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b005b60008054604051630ed1758560e41b8152600481018390526001600160a01b039091169063ed17585090602401602060405180830381865afa1580156100d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f5919061012a565b905090565b60006020828403121561010c57600080fd5b81356001600160a01b038116811461012357600080fd5b9392505050565b60006020828403121561013c57600080fd5b505191905056fea2646970667358221220ad3c7e555e870ce385d56628a88cbcd3dcec1d985072f6df0036a506e509fd2a64736f6c634300080e0033", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 126423, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy B contract" + }], + "executions": [{ + "contractIndex": 1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "75f890ab", + "appendContractAddress": true, + "contractIndexToAppend": 0, + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 34724, + "expectedStatus": 1, + "comment": "call setContract" + }, { + "contractIndex": 0, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "2081e911", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 30534, + "expectedStatus": 1, + "comment": "call a.Set()" + }, { + "contractIndex": 1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "6d4ce63c", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 13478, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000002a", + "comment": "call get()" + }] +} diff --git a/action/protocol/execution/testdata-london/public-mapping.sol b/action/protocol/execution/testdata-london/public-mapping.sol new file mode 100644 index 0000000000..b6056da4d3 --- /dev/null +++ b/action/protocol/execution/testdata-london/public-mapping.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract AA { + mapping(uint256 => uint256) public objects; + + function Set() public { + objects[0] = 42; + } +} + +contract BB { + // insert address of deployed First here + AA a; + + function setContract(address addr) public { + a = AA(addr); + } + + function get() public view returns (uint256) { + return a.objects(0); + } +} diff --git a/action/protocol/execution/testdata-london/reentry-attack.json b/action/protocol/execution/testdata-london/reentry-attack.json new file mode 100644 index 0000000000..9873965af9 --- /dev/null +++ b/action/protocol/execution/testdata-london/reentry-attack.json @@ -0,0 +1,54 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b5061020f806100206000396000f3fe6080604052600436106100295760003560e01c80632e1a7d4d1461002e578063d0e30db014610050575b600080fd5b34801561003a57600080fd5b5061004e610049366004610140565b610058565b005b61004e61011a565b3360009081526020819052604090205481111561007457600080fd5b60408051600481526024810182526020810180516001600160e01b031663192e68cb60e31b1790529051339183916100ac9190610159565b60006040518083038185875af1925050503d80600081146100e9576040519150601f19603f3d011682016040523d82523d6000602084013e6100ee565b606091505b505033600090815260208190526040812080548493509091906101129084906101aa565b909155505050565b33600090815260208190526040812080543492906101399084906101c1565b9091555050565b60006020828403121561015257600080fd5b5035919050565b6000825160005b8181101561017a5760208186018101518583015201610160565b81811115610189576000828501525b509190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000828210156101bc576101bc610194565b500390565b600082198211156101d4576101d4610194565b50019056fea264697066735822122096a59ee60e2ca523261c43e031f863d9edbad9dcd9fcadedb43ce59b548c427c64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 171453, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy MiniDAO contract" + },{ + "rawByteCode": "60806040526000805560405161027b38038061027b833981016040819052610026916100b5565b600280546001600160a01b0319166001600160a01b03831617905561004c600a346100e5565b60015560025460408051630d0e30db60e41b815290516001600160a01b039092169163d0e30db0913491600480830192600092919082900301818588803b15801561009657600080fd5b505af11580156100aa573d6000803e3d6000fd5b505050505050610107565b6000602082840312156100c757600080fd5b81516001600160a01b03811681146100de57600080fd5b9392505050565b60008261010257634e487b7160e01b600052601260045260246000fd5b500490565b610165806101166000396000f3fe6080604052600436106100295760003560e01c80639e5faafc1461002e578063c973465814610045575b600080fd5b34801561003a57600080fd5b5061004361004d565b005b6100436100b6565b600254600154604051632e1a7d4d60e01b81526001600160a01b0390921691632e1a7d4d916100829160040190815260200190565b600060405180830381600087803b15801561009c57600080fd5b505af11580156100b0573d6000803e3d6000fd5b50505050565b60008054600391806100c783610108565b91905055101561010657600254600154604051632e1a7d4d60e01b81526001600160a01b0390921691632e1a7d4d916100829160040190815260200190565b565b60006001820161012857634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212207811d30a16290f048991954a891003cbdcb7e0243026442539693f1989681b0764736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "appendContractAddress": true, + "contractIndexToAppend": 0, + "rawAmount": "5000000000000000000", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 220273, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy Attacker contract" + }], + "executions": [{ + "contractIndex":1, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "9e5faafc", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 96695, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "999999995000000000000000000" + },{ + "account": "", + "rawBalance": "2000000000000000000" + },{ + "account": "io1q64m9jsrsd9afa3vvyx2wcn78hgjmx5h0y0kh6", + "rawBalance": "3000000000000000000" + }], + "comment": "attack" + }] +} diff --git a/action/protocol/execution/testdata-london/reentry-attack.sol b/action/protocol/execution/testdata-london/reentry-attack.sol new file mode 100644 index 0000000000..a6869a3f6d --- /dev/null +++ b/action/protocol/execution/testdata-london/reentry-attack.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MiniDAO { + mapping(address => uint256) balances; + + function deposit() public payable { + balances[msg.sender] += msg.value; + } + + function withdraw(uint256 amount) public { + if (balances[msg.sender] < amount) revert(); + //msg.sender.send(amount); + msg.sender.call{value: amount}(abi.encodeWithSignature("recur()")); + balances[msg.sender] -= amount; + } +} + +contract Attacker { + // limit the recursive calls to prevent out-of-gas error + uint256 stack = 0; + uint256 constant stackLimit = 3; + uint256 amount; + MiniDAO dao; + + constructor(address daoAddress) payable { + dao = MiniDAO(daoAddress); + amount = msg.value / 10; + dao.deposit{value: msg.value}(); + } + + function attack() public { + dao.withdraw(amount); + } + + function recur() public payable { + if (stack++ < stackLimit) { + dao.withdraw(amount); + } + } +} diff --git a/action/protocol/execution/testdata-london/remove-from-array.json b/action/protocol/execution/testdata-london/remove-from-array.json new file mode 100644 index 0000000000..b084d18f95 --- /dev/null +++ b/action/protocol/execution/testdata-london/remove-from-array.json @@ -0,0 +1,33 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b506103ca806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635e383d21146100515780638c6fd8ec14610077578063e60ee4111461008c578063f8a8fd6d1461009f575b600080fd5b61006461005f3660046102ad565b6100b4565b6040519081526020015b60405180910390f35b61008a6100853660046102ad565b6100d5565b005b61008a61009a3660046102ad565b61016e565b6100a7610188565b60405161006e91906102c6565b600081815481106100c457600080fd5b600091825260209091200154905081565b6000546100e490600190610320565b8110156101445760006100f8826001610337565b815481106101085761010861034f565b9060005260206000200154600082815481106101265761012661034f565b6000918252602090912001558061013c81610365565b9150506100d5565b60008054806101555761015561037e565b6001900381819060005260206000200160009055905550565b60006101798261026d565b9050610184816100d5565b5050565b6000805460018181018355828052600a7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563928301558254808201845560149083015582548082018455601e90830181905583548083018555602890840155835491820190935560329101556060906101ff9061016e565b600061020b602861026d565b9050610216816100d5565b600080548060200260200160405190810160405280929190818152602001828054801561026257602002820191906000526020600020905b81548152602001906001019080831161024e575b505050505091505090565b6000805b82600082815481106102855761028561034f565b9060005260206000200154146102a7578061029f81610365565b915050610271565b92915050565b6000602082840312156102bf57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156102fe578351835292840192918401916001016102e2565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156103325761033261030a565b500390565b6000821982111561034a5761034a61030a565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600182016103775761037761030a565b5060010190565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204711a54cdbdbf18badca80a29a9ad0e248382ba4aba9966ff6b0034f5972bfd764736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 304438, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy remove-from-array contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "f8a8fd6d", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 160339, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000032", + "comment": "call test()" + }] +} diff --git a/action/protocol/execution/testdata-london/remove-from-array.sol b/action/protocol/execution/testdata-london/remove-from-array.sol new file mode 100644 index 0000000000..563f7c11d3 --- /dev/null +++ b/action/protocol/execution/testdata-london/remove-from-array.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract Contract { + uint256[] public values; + + function find(uint256 value) internal view returns (uint256) { + uint256 i = 0; + while (values[i] != value) { + i++; + } + return i; + } + + function removeByValue(uint256 value) public { + uint256 i = find(value); + removeByIndex(i); + } + + function removeByIndex(uint256 i) public { + while (i < values.length - 1) { + values[i] = values[i + 1]; + i++; + } + values.pop(); + } + + function getValues() internal view returns (uint256[] storage) { + return values; + } + + function test() public returns (uint256[] memory) { + values.push(10); + values.push(20); + values.push(30); + values.push(40); + values.push(50); + removeByValue(30); + uint256 i = find(40); + removeByIndex(i); + return getValues(); + } +} diff --git a/action/protocol/execution/testdata-london/self-destruct.json b/action/protocol/execution/testdata-london/self-destruct.json new file mode 100644 index 0000000000..59ab6a233f --- /dev/null +++ b/action/protocol/execution/testdata-london/self-destruct.json @@ -0,0 +1,55 @@ +{ + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50600080546001600160a01b0319163317905560ca806100316000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80632e64cec114604157806343d726d61460565780636057361d14605e575b600080fd5b60015460405190815260200160405180910390f35b605c606e565b005b605c6069366004607c565b600155565b6000546001600160a01b0316ff5b600060208284031215608d57600080fd5b503591905056fea264697066735822122098bc5d8b70d15684ea7303282380aeb7ae56863ca02d3ce8aec3e624652d7b6164736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 95828, + "expectedBalances": [], + "comment": "deploy self-destruct contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "6057361d0000000000000000000000000000000000000000000000000000000000000014", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 33834, + "comment": "store 20" + },{ + "readOnly": true, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "2e64cec1", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10746, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000014", + "comment": "retrieve" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "43d726d6", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5378, + "comment": "self destruct" + },{ + "readOnly": true, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "2e64cec1", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10400, + "hasReturnValue": true, + "rawReturnValue": "", + "comment": "return nil because contract is destoried" + }] +} \ No newline at end of file diff --git a/action/protocol/execution/testdata-london/self-destruct.sol b/action/protocol/execution/testdata-london/self-destruct.sol new file mode 100644 index 0000000000..2e2e71e27c --- /dev/null +++ b/action/protocol/execution/testdata-london/self-destruct.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract Storage { + address payable private owner; + uint256 number; + + constructor() { + owner = payable(msg.sender); + } + + function store(uint256 num) public { + number = num; + } + + function retrieve() public view returns (uint256) { + return number; + } + + function close() public { + selfdestruct(owner); + } +} diff --git a/action/protocol/execution/testdata-london/send-eth.json b/action/protocol/execution/testdata-london/send-eth.json new file mode 100644 index 0000000000..7a48b27a98 --- /dev/null +++ b/action/protocol/execution/testdata-london/send-eth.json @@ -0,0 +1,36 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "6080604052600080546001600160a01b031916731e14d5373e1af9cc77f0032ad2cd0fba8be5ea2e179055610183806100396000396000f3fe6080604052600436106100295760003560e01c80631ab5d2601461002e578063c298557814610030575b600080fd5b005b34801561003c57600080fd5b5061002e600080546040516001600160a01b039091169190670de0b6b3a76400009082818181858883f1935050505015801561007c573d6000803e3d6000fd5b50600080546040516001600160a01b0390911691670de0b6b3a7640000919081818185875af1925050503d80600081146100d2576040519150601f19603f3d011682016040523d82523d6000602084013e6100d7565b606091505b5050600080546040519192506060916001600160a01b0390911690670de0b6b3a7640000908481818185875af1925050503d8060008114610134576040519150601f19603f3d011682016040523d82523d6000602084013e610139565b606091505b5090925090508161014957600080fd5b505056fea264697066735822122094ad05fcf58df830500a27b673fbea890c82dc362e7f7b72d29a32d19bf4d71f64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "10000000000000000000", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 152741, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy send-eth contract" + }], + "executions": [{ + "contractIndex":0, + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "c2985578", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 60513, + "expectedStatus": 1, + "expectedBalances": [{ + "account": "io1rc2d2de7rtuucalsqv4d9ng0h297t63w7wvlph", + "rawBalance": "3000000000000000000" + }], + "comment": "foo()" + }] +} diff --git a/action/protocol/execution/testdata-london/send-eth.sol b/action/protocol/execution/testdata-london/send-eth.sol new file mode 100644 index 0000000000..2232b560de --- /dev/null +++ b/action/protocol/execution/testdata-london/send-eth.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MyContract { + constructor() payable {} + + address a = 0x1e14d5373E1AF9Cc77F0032aD2cd0FBA8be5Ea2e; + + function transferTo() public payable {} + + function foo() public { + // send ether with default 21,000 gas + // likely causes OOG in callee + payable(a).transfer(1 ether); + + // send ether with all remaining gas + // but no success check! + payable(a).call{value: 1 ether}(""); + + // RECOMMENDED + // send all remaining gas + // explicitly handle callee throw + bool ok; + bytes memory ret; + (ok, ret) = a.call{value: 1 ether}(""); + if (!ok) revert(); + } +} diff --git a/action/protocol/execution/testdata-london/sha3.json b/action/protocol/execution/testdata-london/sha3.json new file mode 100644 index 0000000000..6beb16dcbb --- /dev/null +++ b/action/protocol/execution/testdata-london/sha3.json @@ -0,0 +1,176 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610511806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635985b6241161008c578063c8cf44bd11610066578063c8cf44bd146101ae578063d2f8cf241461021b578063e86783a714610223578063f74d8e321461022b57600080fd5b80635985b6241461019e5780635fdc7f65146101a65780637781deba146101a657600080fd5b806344d9385f116100c857806344d9385f1461017e5780634c9e7ca5146101865780635087821a1461018e578063511931021461019657600080fd5b806304d3c094146100ef578063114be5841461012457806311b405c71461012c575b600080fd5b7f3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb5b6040519081526020015b60405180910390f35b610111610233565b604080516242544360e81b6020808301919091526208aa8960eb1b6028830152624c544360e81b603083015263444f474560e01b60388301528251808303820181529183019092528051910120610111565b61011161025f565b610111610277565b6101116103af565b6101116103ce565b61011161040f565b610111610429565b61020b604051606160f81b6020820152603160f91b6021820152600090602201604051602081830303815290604052805190602001207f67fad3bfa1e0321bd021ca805ce14876e50acac8ca8532eda8cbf924da56516014905090565b604051901515815260200161011b565b61011161043d565b610111610451565b61011161046d565b604080516000196020820152600091015b60405160208183030381529060405280519060200120905090565b604051600160f81b6020820152600090602101610244565b60408051600480825260a08201909252600091829190602082016080803683370190505090506242544360e81b816000815181106102b7576102b7610485565b60200260200101906001600160c01b03191690816001600160c01b031916815250506208aa8960eb1b816001815181106102f3576102f3610485565b60200260200101906001600160c01b03191690816001600160c01b03191681525050624c544360e81b8160028151811061032f5761032f610485565b60200260200101906001600160c01b03191690816001600160c01b0319168152505063444f474560e01b8160038151811061036c5761036c610485565b6001600160c01b03199092166020928302919091018201526040516103939183910161049b565b6040516020818303038152906040528051906020012091505090565b604051606160f81b602082015260016021820152600090604101610244565b6040517319de644fa609a211d3dc42d1f870141b1772918d60621b6020820152600090736779913e982688474f710b47e1c0506c5dca463490603401610393565b604051600560f91b60208201819052600091602101610393565b604080516001602082015260009101610244565b604080516064602082015260009101610244565b6040805168056bc75e2d63100000602082015260009101610244565b604051600160e01b6020820152600090602401610244565b634e487b7160e01b600052603260045260246000fd5b815160009082906020808601845b838110156104cf5781516001600160c01b031916855293820193908201906001016104a9565b5092969550505050505056fea2646970667358221220d2158981ace89707299dda5b0dbdfa6f28c1df9e097ab4e08e3de364f9207f4064736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 402600, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy sha3 contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "4c9e7ca5", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 11869, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "374c0504f79c1d5e6e4ded17d488802b5656bd1d96b16a568d6c324e1c04c37b", + "comment": "call hashArray" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "11b405c7", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10850, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "e79a6745d2205095147fd735f329de58377b2f0b9f4b81ae23e010062127f2bc", + "comment": "call hashPackedArray" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "51193102", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10839, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "229327de236bd04ccac2efc445f1a2b63afddf438b35874b9f6fd1e6c38b0198", + "comment": "call hashAddress" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "c8cf44bd", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10784, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000001", + "comment": "call testPackedArgs" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5985b624", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10773, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8", + "comment": "call hashHex" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5fdc7f65", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10781, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", + "comment": "call hashInt" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "114be584", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10774, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "a9c584056064687e149968cbab758a3376d22aedc6a55823d1b3ecbee81b8fb9", + "comment": "call hashNegative" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "44d9385f", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10765, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", + "comment": "call hash8" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "f74d8e32", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10830, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "51f81bcdfc324a0dff2b5bec9d92e21cbebc4d5e29d3a3d30de3e03fbeab8d7f", + "comment": "call hash32" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "7781deba", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10803, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6", + "comment": "call hash256" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "e86783a7", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10802, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "c7cc234d21c9cfbd4632749fd77669e7ae72f5241ce5895e410c45185a469273", + "comment": "call hashEth" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "d2f8cf24", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10780, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "26700e13983fefbd9cf16da2ed70fa5c6798ac55062a4803121a869731e308d2", + "comment": "call hashWei" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5087821a", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10833, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "b5cafab5b83d18303877bb912b2d66ca18ab7390cfd9be8a2e66cc5096e0ea02", + "comment": "call hashMultipleArgs" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "04d3c094", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10594, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb", + "comment": "call hashString" + }] +} diff --git a/action/protocol/execution/testdata-london/sha3.sol b/action/protocol/execution/testdata-london/sha3.sol new file mode 100644 index 0000000000..edaab25bd4 --- /dev/null +++ b/action/protocol/execution/testdata-london/sha3.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract Sha3 { + function hashArray() public pure returns (bytes32) { + bytes8[] memory tickers = new bytes8[](4); + tickers[0] = bytes8("BTC"); + tickers[1] = bytes8("ETH"); + tickers[2] = bytes8("LTC"); + tickers[3] = bytes8("DOGE"); + return keccak256(abi.encodePacked(tickers)); + // 0x374c0504f79c1d5e6e4ded17d488802b5656bd1d96b16a568d6c324e1c04c37b + } + + function hashPackedArray() public pure returns (bytes32) { + bytes8 btc = bytes8("BTC"); + bytes8 eth = bytes8("ETH"); + bytes8 ltc = bytes8("LTC"); + bytes8 doge = bytes8("DOGE"); + return keccak256(abi.encodePacked(btc, eth, ltc, doge)); + // 0xe79a6745d2205095147fd735f329de58377b2f0b9f4b81ae23e010062127f2bc + } + + function hashAddress() public pure returns (bytes32) { + address account = 0x6779913e982688474F710B47E1c0506c5Dca4634; + return keccak256(abi.encodePacked(account)); + // 0x229327de236bd04ccac2efc445f1a2b63afddf438b35874b9f6fd1e6c38b0198 + } + + function testPackedArgs() public pure returns (bool) { + return keccak256("ab") == keccak256(abi.encodePacked("a", "b")); + } + + function hashHex() public pure returns (bytes32) { + bytes1 i = 0x0a; + return keccak256(abi.encodePacked(i)); + // 0x0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8 + } + + function hashInt() public pure returns (bytes32) { + return keccak256(abi.encodePacked(int256(1))); + } + + function hashNegative() public pure returns (bytes32) { + return keccak256(abi.encodePacked(int256(-1))); + } + + function hash8() public pure returns (bytes32) { + return keccak256(abi.encodePacked(uint8(1))); + } + + function hash32() public pure returns (bytes32) { + return keccak256(abi.encodePacked(uint32(1))); + } + + function hash256() public pure returns (bytes32) { + return keccak256(abi.encodePacked(uint256(1))); + } + + function hashEth() public pure returns (bytes32) { + return keccak256(abi.encodePacked(uint256(100 ether))); + } + + function hashWei() public pure returns (bytes32) { + return keccak256(abi.encodePacked(uint256(100))); + } + + function hashMultipleArgs() public pure returns (bytes32) { + return keccak256(abi.encodePacked("a", uint256(1))); + } + + function hashString() public pure returns (bytes32) { + return keccak256("a"); + } +} diff --git a/action/protocol/execution/testdata-london/storage-test.json b/action/protocol/execution/testdata-london/storage-test.json new file mode 100644 index 0000000000..75820f270d --- /dev/null +++ b/action/protocol/execution/testdata-london/storage-test.json @@ -0,0 +1,41 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments":[{ + "rawByteCode": "608060405234801561001057600080fd5b506103f7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80635b48eb131461003b578063a17a9e6614610050575b600080fd5b61004e610049366004610237565b610079565b005b61006361005e3660046102ec565b6100dc565b6040516100709190610305565b60405180910390f35b60005b818112156100d7576000805460018101825590805283516100c4917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301906020860190610188565b50806100cf8161035a565b91505061007c565b505050565b600081815481106100ec57600080fd5b90600052602060002001600091509050805461010790610387565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610387565b80156101805780601f1061015557610100808354040283529160200191610180565b820191906000526020600020905b81548152906001019060200180831161016357829003601f168201915b505050505081565b82805461019490610387565b90600052602060002090601f0160209004810192826101b657600085556101fc565b82601f106101cf57805160ff19168380011785556101fc565b828001600101855582156101fc579182015b828111156101fc5782518255916020019190600101906101e1565b5061020892915061020c565b5090565b5b80821115610208576000815560010161020d565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561024a57600080fd5b823567ffffffffffffffff8082111561026257600080fd5b818501915085601f83011261027657600080fd5b81358181111561028857610288610221565b604051601f8201601f19908116603f011681019083821181831017156102b0576102b0610221565b816040528281528860208487010111156102c957600080fd5b826020860160208301376000602093820184015298969091013596505050505050565b6000602082840312156102fe57600080fd5b5035919050565b600060208083528351808285015260005b8181101561033257858101830151858201604001528201610316565b81811115610344576000604083870101525b50601f01601f1916929092016040019392505050565b60006001600160ff1b01820161038057634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c9082168061039b57607f821691505b6020821081036103bb57634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212207ac4bf911f6801b1155455c32e3151315fea9b0072600db0c6765078601335d264736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 317945, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy storage test contract" + }] , + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5b48eb130000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 4643961, + "expectedStatus": 1, + "comment": "call storage test" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "5b48eb130000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 5000000, + "expectedStatus": 101, + "failed": true, + "comment": "call storage test" + }] +} diff --git a/action/protocol/execution/testdata-london/storage-test.sol b/action/protocol/execution/testdata-london/storage-test.sol new file mode 100644 index 0000000000..e984fb7906 --- /dev/null +++ b/action/protocol/execution/testdata-london/storage-test.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract tester { + string[] public A; + + function storeStrings(string memory a, int256 n) public { + for (int256 i = 0; i < n; i++) { + A.push(a); + } + } +} diff --git a/action/protocol/execution/testdata-london/tail-recursion.json b/action/protocol/execution/testdata-london/tail-recursion.json new file mode 100644 index 0000000000..52d5da6a0b --- /dev/null +++ b/action/protocol/execution/testdata-london/tail-recursion.json @@ -0,0 +1,55 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b506101de806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063188b85b414610046578063b23913981461006b578063d4d6bc771461007e575b600080fd5b610059610054366004610131565b610091565b60405190815260200160405180910390f35b610059610079366004610131565b6100bf565b61005961008c366004610131565b6100cc565b600081156100b6576100a7610054600184610160565b6100b19083610177565b6100b9565b60005b92915050565b60006100b98260006100fe565b60008060015b8381116100f7576100e38183610177565b9150806100ef8161018f565b9150506100d2565b5092915050565b6000821561012857610123610114600185610160565b61011e8585610177565b6100fe565b61012a565b815b9392505050565b60006020828403121561014357600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156101725761017261014a565b500390565b6000821982111561018a5761018a61014a565b500190565b6000600182016101a1576101a161014a565b506001019056fea2646970667358221220649d55d134b060e38c310603dcceb4265c3b712a5d42d2037b16071c774e642b64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 156741, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy tail-recursion contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "188b85b40000000000000000000000000000000000000000000000000000000000000010", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 17161, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000088", + "comment": "call sum" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "d4d6bc770000000000000000000000000000000000000000000000000000000000000010", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 16861, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000088", + "comment": "call sumloop" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "b23913980000000000000000000000000000000000000000000000000000000000000010", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 17260, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000088", + "comment": "call sumtail" + }] +} diff --git a/action/protocol/execution/testdata-london/tail-recursion.sol b/action/protocol/execution/testdata-london/tail-recursion.sol new file mode 100644 index 0000000000..3a94d14b39 --- /dev/null +++ b/action/protocol/execution/testdata-london/tail-recursion.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract MyContract { + // naive recursion + function sum(uint256 n) public returns (uint256) { + return n == 0 ? 0 : n + sum(n - 1); + } + + // loop + function sumloop(uint256 n) public pure returns (uint256) { + uint256 total = 0; + for (uint256 i = 1; i <= n; i++) { + total += i; + } + return total; + } + + // tail-recursion + function sumtailHelper(uint256 n, uint256 acc) private returns (uint256) { + return n == 0 ? acc : sumtailHelper(n - 1, acc + n); + } + + function sumtail(uint256 n) public returns (uint256) { + return sumtailHelper(n, 0); + } +} diff --git a/action/protocol/execution/testdata-london/tuple.json b/action/protocol/execution/testdata-london/tuple.json new file mode 100644 index 0000000000..20e6f81b2e --- /dev/null +++ b/action/protocol/execution/testdata-london/tuple.json @@ -0,0 +1,33 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b50610147806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633175aae21461003b578063ab5ed15014610073575b600080fd5b61005c604080518082019091526002815261486960f01b6020820152600191565b60405161006a9291906100b4565b60405180910390f35b61007b610089565b60405190815260200161006a565b6000806100ad604080518082019091526002815261486960f01b6020820152600191565b5092915050565b82815260006020604081840152835180604085015260005b818110156100e8578581018301518582016060015282016100cc565b818111156100fa576000606083870101525b50601f01601f19169290920160600194935050505056fea2646970667358221220b5da55e0a6368c1df216b7482d49b767c20ebb47496d1f5a076db1a6c3ed787d64736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 111417, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy array-return contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "ab5ed150", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10700, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000001", + "comment": "call bar" + }] +} diff --git a/action/protocol/execution/testdata-london/tuple.sol b/action/protocol/execution/testdata-london/tuple.sol new file mode 100644 index 0000000000..ea63b9f026 --- /dev/null +++ b/action/protocol/execution/testdata-london/tuple.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +contract A { + function tuple() public pure returns (uint256, string memory) { + return (1, "Hi"); + } + + function getOne() public pure returns (uint256) { + uint256 a; + (a, ) = tuple(); + return a; + } +} diff --git a/action/protocol/execution/testdata-london/wireconnection.json b/action/protocol/execution/testdata-london/wireconnection.json new file mode 100644 index 0000000000..bacad19188 --- /dev/null +++ b/action/protocol/execution/testdata-london/wireconnection.json @@ -0,0 +1,44 @@ +{ + "initGenesis": { + "isBering" : true, + "isIceland" : true + }, + "initBalances": [{ + "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", + "rawBalance": "1000000000000000000000000000" + }], + "deployments": [{ + "rawByteCode": "608060405234801561001057600080fd5b5060ca8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063dba7ab6c146041578063df11c2ac14605d578063ebaa833714606f575b600080fd5b646d69616f7760d81b5b60405190815260200160405180910390f35b606d6068366004607c565b600055565b005b646d69616f7760d81b604b565b600060208284031215608d57600080fd5b503591905056fea2646970667358221220c064a12b90076472ef76304dee377a60987f8737847349e4cda6f48b073c488364736f6c634300080e0033", + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawAmount": "0", + "rawGasLimit": 5000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 73793, + "expectedStatus": 1, + "expectedBalances": [], + "comment": "deploy proposal contract" + }], + "executions": [{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "dba7ab6c", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10553, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "miaow", + "comment": "call utterance()" + },{ + "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", + "rawByteCode": "ebaa8337", + "rawAmount": "0", + "rawGasLimit": 1000000, + "rawGasPrice": "0", + "rawExpectedGasConsumed": 10608, + "expectedStatus": 1, + "hasReturnValue": true, + "rawReturnValue": "miaow", + "comment": "call Utterance()" + }] +} diff --git a/action/protocol/execution/testdata-london/wireconnection.sol b/action/protocol/execution/testdata-london/wireconnection.sol new file mode 100644 index 0000000000..98b29befb0 --- /dev/null +++ b/action/protocol/execution/testdata-london/wireconnection.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.14; + +abstract contract Feline { + // This is how we write the abstract contract + bytes32 name; + + function setname(bytes32 _name) public { + name = _name; + } + + function utterance() public virtual returns (bytes32); + + function Utterance() public virtual returns (bytes32); +} + +// inherit the contract in cat and then override the function utterance with some full definition +contract Cat is Feline { + function utterance() public pure override returns (bytes32) { + return "miaow"; + } + + function Utterance() public pure override returns (bytes32) { + return utterance(); + } +} From 5e273c2816735c57541cc97dd71c911af382ca3f Mon Sep 17 00:00:00 2001 From: huof6890 <68298506@qq.com> Date: Fri, 27 May 2022 21:59:03 +0800 Subject: [PATCH 2/4] add accesslist in excution --- action/execution.go | 5 + action/protocol/execution/protocol_test.go | 34 +- .../CVE-2021-39137-attack-replay.json | 6 + .../execution/testdata-london/accesslist.json | 53 -- .../execution/testdata-london/accesslist.sol | 23 - .../testdata-london/array-return.json | 2 + .../testdata-london/basic-token.json | 17 +- .../testdata-london/call-dynamic.json | 6 +- .../testdata-london/chainid-selfbalance.json | 12 +- .../testdata-london/changestate.json | 12 +- .../execution/testdata-london/datacopy.json | 6 +- .../execution/testdata-london/f.value.json | 6 +- .../execution/testdata-london/gas-test.json | 473 +++++++++++++++- .../testdata-london/infiniteloop.json | 16 +- .../testdata-london/mapping-delete.json | 14 +- .../execution/testdata-london/maxtime.json | 85 ++- .../execution/testdata-london/modifiers.json | 8 +- .../execution/testdata-london/multisend.json | 12 +- .../no-variable-length-returns.json | 11 +- .../testdata-london/public-mapping.json | 10 +- .../testdata-london/reentry-attack.json | 29 +- .../testdata-london/remove-from-array.json | 14 +- .../testdata-london/self-destruct.json | 22 +- .../execution/testdata-london/send-eth.json | 6 +- .../execution/testdata-london/sha3.json | 14 + .../testdata-london/storage-test.json | 514 +++++++++++++++++- .../testdata-london/tail-recursion.json | 4 + .../execution/testdata-london/tuple.json | 2 + .../testdata-london/wireconnection.json | 3 + 29 files changed, 1276 insertions(+), 143 deletions(-) delete mode 100644 action/protocol/execution/testdata-london/accesslist.json delete mode 100644 action/protocol/execution/testdata-london/accesslist.sol diff --git a/action/execution.go b/action/execution.go index 9b0ec5386c..c1556c48c5 100644 --- a/action/execution.go +++ b/action/execution.go @@ -85,6 +85,11 @@ func (ex *Execution) Payload() []byte { return ex.data } // AccessList returns the access list func (ex *Execution) AccessList() types.AccessList { return ex.accessList } +// SetAccessList set the access list +func (ex *Execution) SetAccessList(list types.AccessList) { + ex.accessList = list +} + func toAccessListProto(list types.AccessList) []*iotextypes.AccessTuple { if len(list) == 0 { return nil diff --git a/action/protocol/execution/protocol_test.go b/action/protocol/execution/protocol_test.go index 72157528db..dd0876810a 100644 --- a/action/protocol/execution/protocol_test.go +++ b/action/protocol/execution/protocol_test.go @@ -17,6 +17,8 @@ import ( "os" "testing" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" "github.com/pkg/errors" "github.com/stretchr/testify/require" "go.uber.org/zap" @@ -63,6 +65,7 @@ type ( // GenesisBlockHeight defines an genesis blockHeight GenesisBlockHeight struct { + IsLondon bool `json:"isLondon"` IsBering bool `json:"isBering"` IsIceland bool `json:"isIceland"` } @@ -72,6 +75,11 @@ type ( Data string `json:"data"` } + AccessTuple struct { + Address string `json:"address"` + StorageKeys []string `json:"storageKeys"` + } + ExecutionConfig struct { Comment string `json:"comment"` ContractIndex int `json:"contractIndex"` @@ -84,6 +92,7 @@ type ( RawAmount string `json:"rawAmount"` RawGasLimit uint `json:"rawGasLimit"` RawGasPrice string `json:"rawGasPrice"` + RawAccessList []AccessTuple `json:"rawAccessList"` Failed bool `json:"failed"` RawReturnValue string `json:"rawReturnValue"` RawExpectedGasConsumed uint `json:"rawExpectedGasConsumed"` @@ -189,6 +198,23 @@ func (cfg *ExecutionConfig) GasLimit() uint64 { return uint64(cfg.RawGasLimit) } +func (cfg *ExecutionConfig) AccessList() types.AccessList { + if len(cfg.RawAccessList) == 0 { + return nil + } + accessList := make(types.AccessList, len(cfg.RawAccessList)) + for i, rawAccessList := range cfg.RawAccessList { + accessList[i].Address = common.HexToAddress(rawAccessList.Address) + if numKey := len(rawAccessList.StorageKeys); numKey > 0 { + accessList[i].StorageKeys = make([]common.Hash, numKey) + for j, rawStorageKey := range rawAccessList.StorageKeys { + accessList[i].StorageKeys[j] = common.HexToHash(rawStorageKey) + } + } + } + return accessList +} + func (cfg *ExecutionConfig) ExpectedGasConsumed() uint64 { return uint64(cfg.RawExpectedGasConsumed) } @@ -249,6 +275,7 @@ func readExecution( if err != nil { return nil, nil, err } + exec.SetAccessList(ecfg.AccessList()) addr := ecfg.PrivateKey().PublicKey().Address() if addr == nil { return nil, nil, errors.New("failed to get address") @@ -296,6 +323,7 @@ func runExecutions( if err != nil { return nil, nil, err } + exec.SetAccessList(ecfg.AccessList()) builder := &action.EnvelopeBuilder{} elp := builder.SetAction(exec). SetNonce(exec.Nonce()). @@ -358,6 +386,9 @@ func (sct *SmartContractTest) prepareBlockchain( cfg.Chain.TrieDBPath = testTriePath cfg.ActPool.MinGasPriceStr = "0" + if sct.InitGenesis.IsLondon { + cfg.Genesis.Blockchain.ToBeEnabledBlockHeight = 0 + } if sct.InitGenesis.IsBering { cfg.Genesis.Blockchain.AleutianBlockHeight = 0 cfg.Genesis.Blockchain.BeringBlockHeight = 0 @@ -1023,9 +1054,6 @@ func TestIstanbulEVM(t *testing.T) { func TestLondonEVM(t *testing.T) { cfg := config.Default config.SetEVMNetworkID(cfg.Chain.EVMNetworkID) - t.Run("AccessList", func(t *testing.T) { - NewSmartContractTest(t, "testdata-london/accesslist.json") - }) t.Run("ArrayReturn", func(t *testing.T) { NewSmartContractTest(t, "testdata-london/array-return.json") }) diff --git a/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json index 767e929084..0c71aa0d70 100644 --- a/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json +++ b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json @@ -1,4 +1,9 @@ { + "initGenesis": { + "isLondon" : true, + "isBering" : true, + "isIceland" : true + }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", "rawBalance": "1000000000000000000000000000" @@ -19,6 +24,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 12300, "comment": "launch attack(https://etherscan.io/tx/0x1cb6fb36633d270edefc04d048145b4298e67b8aa82a9e5ec4aa1435dd770ce4)", "expectedBlockInfos" : { diff --git a/action/protocol/execution/testdata-london/accesslist.json b/action/protocol/execution/testdata-london/accesslist.json deleted file mode 100644 index 3b64e0fe4a..0000000000 --- a/action/protocol/execution/testdata-london/accesslist.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "initGenesis": { - "isBering" : true, - "isIceland" : true - }, - "initBalances": [{ - "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", - "rawBalance": "1000000000000000000000000000" - }], - "deployments": [{ - "rawByteCode": "608060405234801561001057600080fd5b50610204806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806364afab72146100515780636763d38d1461008c5780637b82d74e146100cd578063e9b8ede814610118575b600080fd5b61008a61005f36600461015f565b6001600160a01b0390911660009081526020818152604080832093835292905220805460ff19169055565b005b61008a61009a366004610189565b6001600160a01b039290921660009081526020818152604080832093835292905220805460ff1916911515919091179055565b6101046100db36600461015f565b6001600160a01b0391909116600090815260208181526040808320938352929052205460ff1690565b604051901515815260200160405180910390f35b61010461012636600461015f565b600060208181529281526040808220909352908152205460ff1681565b80356001600160a01b038116811461015a57600080fd5b919050565b6000806040838503121561017257600080fd5b61017b83610143565b946020939093013593505050565b60008060006060848603121561019e57600080fd5b6101a784610143565b925060208401359150604084013580151581146101c357600080fd5b80915050925092509256fea26469706673582212207190521dcca4e3d3468ff2948134eb5c05192d634814065d08e2695847c93a0064736f6c634300080e0033", - "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", - "rawAmount": "0", - "rawGasLimit": 5000000, - "rawGasPrice": "0", - "rawExpectedGasConsumed": 168153, - "expectedStatus": 1, - "expectedBalances": [], - "comment": "deploy accesslist contract" - }], - "executions": [{ - "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", - "rawByteCode": "6763d38d000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001", - "rawAmount": "0", - "rawGasLimit": 1000000, - "rawGasPrice": "0", - "rawExpectedGasConsumed": 41368, - "expectedStatus": 1, - "expectedBalances": [], - "comment": "set 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae,0x0000000000000000000000000000000000000000000000000000000000000003,true" - }, { - "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", - "rawByteCode": "7b82d74e000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae0000000000000000000000000000000000000000000000000000000000000003", - "rawAmount": "0", - "rawGasLimit": 1000000, - "rawGasPrice": "0", - "rawExpectedGasConsumed": 18155, - "expectedStatus": 1, - "readOnly": true, - "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000001", - "expectedBalances": [], - "comment": "get" - }, { - "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", - "rawByteCode": "64afab72000000000000000000000000de0b295669a9fd93d5f28d9ec85e40f4cb697bae0000000000000000000000000000000000000000000000000000000000000003", - "rawAmount": "0", - "rawGasLimit": 1000000, - "rawGasPrice": "0", - "rawExpectedGasConsumed": 11532, - "expectedStatus": 1, - "comment": "remove" - }] -} diff --git a/action/protocol/execution/testdata-london/accesslist.sol b/action/protocol/execution/testdata-london/accesslist.sol deleted file mode 100644 index 61db2b222a..0000000000 --- a/action/protocol/execution/testdata-london/accesslist.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0 - -pragma solidity ^0.8.14; - -contract AccessList { - mapping(address => mapping(bytes32 => bool)) public list; - - function set( - address addr, - bytes32 key, - bool ret - ) public { - list[addr][key] = ret; - } - - function get(address addr, bytes32 key) public view returns (bool) { - return list[addr][key]; - } - - function remove(address addr, bytes32 key) public { - delete list[addr][key]; - } -} diff --git a/action/protocol/execution/testdata-london/array-return.json b/action/protocol/execution/testdata-london/array-return.json index 9f0dd71136..a625d37430 100644 --- a/action/protocol/execution/testdata-london/array-return.json +++ b/action/protocol/execution/testdata-london/array-return.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -35,6 +36,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10504, "expectedStatus": 106, "failed": true, diff --git a/action/protocol/execution/testdata-london/basic-token.json b/action/protocol/execution/testdata-london/basic-token.json index acc269d217..9e18dc463f 100644 --- a/action/protocol/execution/testdata-london/basic-token.json +++ b/action/protocol/execution/testdata-london/basic-token.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,7 +25,13 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 39009, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "cd7bfe84e3fe161aeb958aa899cea602147a8edb25bcc4cc49f4753fa3410c17" + ] + }], + "rawExpectedGasConsumed": 43909, "expectedStatus": 1, "expectedBalances": [], "comment": "transfer 10000 tokens from producer" @@ -34,7 +41,13 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 14806, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "cd7bfe84e3fe161aeb958aa899cea602147a8edb25bcc4cc49f4753fa3410c17" + ] + }], + "rawExpectedGasConsumed": 18406, "expectedStatus": 1, "readOnly": true, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000002710", diff --git a/action/protocol/execution/testdata-london/call-dynamic.json b/action/protocol/execution/testdata-london/call-dynamic.json index 3c17cdbfd7..71527a740f 100644 --- a/action/protocol/execution/testdata-london/call-dynamic.json +++ b/action/protocol/execution/testdata-london/call-dynamic.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 148641, + "rawExpectedGasConsumed": 150041, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy call dynamic contract" @@ -24,7 +25,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 32879, + "rawAccessList": [], + "rawExpectedGasConsumed": 33679, "expectedStatus": 1, "readOnly": true, "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000000b", diff --git a/action/protocol/execution/testdata-london/chainid-selfbalance.json b/action/protocol/execution/testdata-london/chainid-selfbalance.json index 7effabd7e3..3080e25028 100644 --- a/action/protocol/execution/testdata-london/chainid-selfbalance.json +++ b/action/protocol/execution/testdata-london/chainid-selfbalance.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 77399, + "rawExpectedGasConsumed": 78799, "expectedStatus": 1, "expectedBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", @@ -28,6 +29,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], + "rawExpectedGasConsumed": 10579, "expectedStatus": 1, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000001251", "comment": "call getChainID" @@ -38,11 +41,12 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 31452, + "rawAccessList": [], + "rawExpectedGasConsumed": 32752, "expectedStatus": 1, "expectedBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", - "rawBalance": "999999999999999999999891149" + "rawBalance": "999999999999999999999888449" }], "comment": "call increment" }, @@ -53,6 +57,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], + "rawExpectedGasConsumed": 10549, "expectedStatus": 1, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", "comment": "call getSelfBalance" diff --git a/action/protocol/execution/testdata-london/changestate.json b/action/protocol/execution/testdata-london/changestate.json index 30a7682245..fd6ae62926 100644 --- a/action/protocol/execution/testdata-london/changestate.json +++ b/action/protocol/execution/testdata-london/changestate.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 103917, + "rawExpectedGasConsumed": 105317, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy a changestate contract" @@ -24,7 +25,8 @@ "rawAmount": "0", "rawGasLimit": 120000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 11361, + "rawAccessList": [], + "rawExpectedGasConsumed": 12661, "expectedStatus": 1, "readOnly": true, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", @@ -35,7 +37,8 @@ "rawAmount": "0", "rawGasLimit": 120000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 36573, + "rawAccessList": [], + "rawExpectedGasConsumed": 37173, "expectedStatus": 106, "failed":true, "comment": "try changing state" @@ -45,7 +48,8 @@ "rawAmount": "0", "rawGasLimit": 120000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 11361, + "rawAccessList": [], + "rawExpectedGasConsumed": 12661, "expectedStatus": 1, "readOnly": true, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/action/protocol/execution/testdata-london/datacopy.json b/action/protocol/execution/testdata-london/datacopy.json index b22cbc3e41..26228b7513 100644 --- a/action/protocol/execution/testdata-london/datacopy.json +++ b/action/protocol/execution/testdata-london/datacopy.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,13 +25,14 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 33020, + "rawAccessList": [], + "rawExpectedGasConsumed": 33720, "expectedStatus": 1, "comment": "the data of return is [0x11, 0x22, 0x33]", "expectedBlockInfos" : { "txRootHash" : "3672945ca662bea4dd977e799374c5ce36c0c3e9ecbe98f1655f33439bbfe40c", "stateRootHash" : "31d9f2c50c45877029ed9afa24e2052bfc36232e9b0d220adfb0f90ec941d86c", - "receiptRootHash" : "866a6a6ed352d53ebc681491a07b99d9e720e32fdae09d241914582ede46f0eb" + "receiptRootHash" : "596f5fd6f5931b252cff495050859df5faffd86ca960d0222b907a31bc1f75ae" } }] } diff --git a/action/protocol/execution/testdata-london/f.value.json b/action/protocol/execution/testdata-london/f.value.json index aea0fc5a33..10435e9387 100644 --- a/action/protocol/execution/testdata-london/f.value.json +++ b/action/protocol/execution/testdata-london/f.value.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -25,7 +26,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 245495, + "rawExpectedGasConsumed": 249395, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy f.value two contract" @@ -37,7 +38,8 @@ "rawAmount": "0", "rawGasLimit": 1200000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 16422, + "rawAccessList": [], + "rawExpectedGasConsumed": 19522, "expectedStatus": 1, "hasReturnValue": true, "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", diff --git a/action/protocol/execution/testdata-london/gas-test.json b/action/protocol/execution/testdata-london/gas-test.json index 4808fc4167..aa4494b3f7 100644 --- a/action/protocol/execution/testdata-london/gas-test.json +++ b/action/protocol/execution/testdata-london/gas-test.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 2354272, "expectedStatus": 1, "comment": "call test multiply" @@ -33,6 +35,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 3258488, "expectedStatus": 1, "comment": "call test shift" @@ -42,6 +45,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 2222840, "expectedStatus": 1, "comment": "call test add" @@ -51,6 +55,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 4244056, "expectedStatus": 1, "expectedLogs": [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}], @@ -59,18 +64,231 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "1bb8305d000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000019c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 4856782, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e565", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e567", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e568", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e569", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e570", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e571", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e572", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e573", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e574", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e575", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e576", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e577", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e578", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e579", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e580", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e581", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e582", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e583", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e584", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e585", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e586", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e587", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e588", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e589", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e590", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e591", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e592", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e593", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e594", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e595", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e596", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e597", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e598", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e599", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5aa", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ab", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ac", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ad", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ae", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5af", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ba", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5be", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bf", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ca", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cf", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5da", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5db", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5dc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5dd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5de", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5df", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ea", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5eb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ec", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ed", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ee", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ef", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fa", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fe", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ff", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e600", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e601", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e602", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e603", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e604", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e605", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e606", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e607", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e608", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e609", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e610", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e611", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e612", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e613", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e614", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e615", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e616", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e617", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e618", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e619", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e620", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e621", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e622", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e623", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e624", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e625", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e626", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e627", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e628", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e629", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e630", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e631" + ] + }], + "rawExpectedGasConsumed": 5253882, "expectedStatus": 1, "comment": "call storeString" },{ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000016f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, "comment": "call test multiply" @@ -78,9 +296,10 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001117000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, "comment": "call test shift" @@ -88,9 +307,10 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177000000000000000000000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, "comment": "call test add" @@ -98,9 +318,10 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "3f03c8890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002260", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, "expectedLogs": [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}], @@ -109,9 +330,237 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "1bb8305d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000003390303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738393031323300000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e565", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e567", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e568", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e569", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e570", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e571", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e572", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e573", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e574", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e575", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e576", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e577", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e578", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e579", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e580", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e581", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e582", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e583", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e584", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e585", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e586", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e587", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e588", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e589", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e590", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e591", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e592", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e593", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e594", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e595", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e596", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e597", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e598", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e599", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5aa", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ab", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ac", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ad", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ae", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5af", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5b9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ba", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5be", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5bf", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5c9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ca", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5cf", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5d9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5da", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5db", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5dc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5dd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5de", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5df", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5e9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ea", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5eb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ec", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ed", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ee", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ef", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f1", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f6", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f7", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5f9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fa", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fc", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5fe", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5ff", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e600", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e601", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e602", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e603", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e604", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e605", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e606", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e607", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e608", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e609", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e60f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e610", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e611", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e612", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e613", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e614", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e615", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e616", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e617", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e618", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e619", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e61f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e620", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e621", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e622", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e623", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e624", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e625", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e626", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e627", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e628", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e629", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e62f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e630", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e631", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e632", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e633", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e634", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e635", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e636", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e637", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e638", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e639", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e64f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e650", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e651" + ] + }], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, "comment": "call storeString" diff --git a/action/protocol/execution/testdata-london/infiniteloop.json b/action/protocol/execution/testdata-london/infiniteloop.json index fff52629dc..f717e4c718 100644 --- a/action/protocol/execution/testdata-london/infiniteloop.json +++ b/action/protocol/execution/testdata-london/infiniteloop.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -19,7 +20,7 @@ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", "rawBalance": "9999999999999803029" }], - "comment": "deploy the contract" + "comment": "deploy infiniteloop contract" }] , "executions": [{ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", @@ -27,11 +28,12 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 34889, - "expectedStatus": 1, + "rawAccessList": [], + "rawExpectedGasConsumed": 36989, + "expectedStatus": 1, "expectedBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", - "rawBalance": "9999999999999806264" + "rawBalance": "9999999999999804164" }], "expectedLogs": [{}], "comment": "set storedData = 0x1f40" @@ -41,7 +43,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 16934, + "rawAccessList": [], + "rawExpectedGasConsumed": 17534, "readOnly": true, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000001f40", "expectedStatus": 1, @@ -53,12 +56,13 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "1", + "rawAccessList": [], "rawExpectedGasConsumed": 5000000, "failed": true, "expectedStatus": 101, "expectedBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", - "rawBalance": "9999999999994806264" + "rawBalance": "9999999999994804164" }], "comment": "calling infinite(), this will consume all provided gas, and exit with failure" }] diff --git a/action/protocol/execution/testdata-london/mapping-delete.json b/action/protocol/execution/testdata-london/mapping-delete.json index 038fd000a3..3c1a665067 100644 --- a/action/protocol/execution/testdata-london/mapping-delete.json +++ b/action/protocol/execution/testdata-london/mapping-delete.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,18 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 179351, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5", + "ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb6", + "abbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569", + "abbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a56a", + "ada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d", + "ada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7e" + ] + }], + "rawExpectedGasConsumed": 191751, "expectedStatus": 1, "comment": "deploy mapping-delete contract" }] , diff --git a/action/protocol/execution/testdata-london/maxtime.json b/action/protocol/execution/testdata-london/maxtime.json index a47dc13b9b..db5089db33 100644 --- a/action/protocol/execution/testdata-london/maxtime.json +++ b/action/protocol/execution/testdata-london/maxtime.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -15,7 +16,7 @@ "rawGasPrice": "1", "rawExpectedGasConsumed": 288526, "expectedStatus": 1, - "comment": "deploy the contract" + "comment": "deploy maxtime contract" }] , "executions": [{ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", @@ -23,7 +24,43 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 659698, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002", + "0000000000000000000000000000000000000000000000000000000000000003", + "0000000000000000000000000000000000000000000000000000000000000004", + "0000000000000000000000000000000000000000000000000000000000000005", + "0000000000000000000000000000000000000000000000000000000000000006", + "0000000000000000000000000000000000000000000000000000000000000007", + "0000000000000000000000000000000000000000000000000000000000000008", + "0000000000000000000000000000000000000000000000000000000000000009", + "000000000000000000000000000000000000000000000000000000000000000a", + "000000000000000000000000000000000000000000000000000000000000000b", + "000000000000000000000000000000000000000000000000000000000000000c", + "000000000000000000000000000000000000000000000000000000000000000d", + "000000000000000000000000000000000000000000000000000000000000000e", + "000000000000000000000000000000000000000000000000000000000000000f", + "0000000000000000000000000000000000000000000000000000000000000010", + "0000000000000000000000000000000000000000000000000000000000000011", + "0000000000000000000000000000000000000000000000000000000000000012", + "0000000000000000000000000000000000000000000000000000000000000013", + "0000000000000000000000000000000000000000000000000000000000000014", + "0000000000000000000000000000000000000000000000000000000000000015", + "0000000000000000000000000000000000000000000000000000000000000016", + "0000000000000000000000000000000000000000000000000000000000000017", + "0000000000000000000000000000000000000000000000000000000000000018", + "0000000000000000000000000000000000000000000000000000000000000019", + "000000000000000000000000000000000000000000000000000000000000001a", + "000000000000000000000000000000000000000000000000000000000000001b", + "000000000000000000000000000000000000000000000000000000000000001c", + "000000000000000000000000000000000000000000000000000000000000001d", + "000000000000000000000000000000000000000000000000000000000000001f" + ] + }], + "rawExpectedGasConsumed": 723098, "expectedStatus": 1, "expectedLogs": [{}], "comment": "set storedData = 0x1f40" @@ -33,7 +70,8 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 3796638, + "rawAccessList": [], + "rawExpectedGasConsumed": 1508638, "expectedStatus": 1, "expectedLogs": [{}], "comment": "run test1" @@ -43,7 +81,8 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 4161893, + "rawAccessList": [], + "rawExpectedGasConsumed": 1403493, "expectedStatus": 1, "expectedLogs": [{}], "comment": "run test2" @@ -53,7 +92,43 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "1", - "rawExpectedGasConsumed": 3913955, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002", + "0000000000000000000000000000000000000000000000000000000000000003", + "0000000000000000000000000000000000000000000000000000000000000004", + "0000000000000000000000000000000000000000000000000000000000000005", + "0000000000000000000000000000000000000000000000000000000000000006", + "0000000000000000000000000000000000000000000000000000000000000007", + "0000000000000000000000000000000000000000000000000000000000000008", + "0000000000000000000000000000000000000000000000000000000000000009", + "000000000000000000000000000000000000000000000000000000000000000a", + "000000000000000000000000000000000000000000000000000000000000000b", + "000000000000000000000000000000000000000000000000000000000000000c", + "000000000000000000000000000000000000000000000000000000000000000d", + "000000000000000000000000000000000000000000000000000000000000000e", + "000000000000000000000000000000000000000000000000000000000000000f", + "0000000000000000000000000000000000000000000000000000000000000010", + "0000000000000000000000000000000000000000000000000000000000000011", + "0000000000000000000000000000000000000000000000000000000000000012", + "0000000000000000000000000000000000000000000000000000000000000013", + "0000000000000000000000000000000000000000000000000000000000000014", + "0000000000000000000000000000000000000000000000000000000000000015", + "0000000000000000000000000000000000000000000000000000000000000016", + "0000000000000000000000000000000000000000000000000000000000000017", + "0000000000000000000000000000000000000000000000000000000000000018", + "0000000000000000000000000000000000000000000000000000000000000019", + "000000000000000000000000000000000000000000000000000000000000001a", + "000000000000000000000000000000000000000000000000000000000000001b", + "000000000000000000000000000000000000000000000000000000000000001c", + "000000000000000000000000000000000000000000000000000000000000001d", + "000000000000000000000000000000000000000000000000000000000000001f" + ] + }], + "rawExpectedGasConsumed": 1576255, "expectedStatus": 1, "expectedLogs": [{}], "comment": "run store1" diff --git a/action/protocol/execution/testdata-london/modifiers.json b/action/protocol/execution/testdata-london/modifiers.json index e945975701..c21347e47b 100644 --- a/action/protocol/execution/testdata-london/modifiers.json +++ b/action/protocol/execution/testdata-london/modifiers.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 120035, + "rawExpectedGasConsumed": 120635, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy modifiers contract" @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 13923, "expectedStatus": 106, "failed": true, @@ -34,6 +36,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 13846, "expectedStatus": 106, "failed": true, @@ -44,7 +47,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 11278, + "rawAccessList": [], + "rawExpectedGasConsumed": 10678, "expectedStatus": 1, "comment": "call refund" }] diff --git a/action/protocol/execution/testdata-london/multisend.json b/action/protocol/execution/testdata-london/multisend.json index ea0d7360d6..9d5f0f515a 100644 --- a/action/protocol/execution/testdata-london/multisend.json +++ b/action/protocol/execution/testdata-london/multisend.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -33,7 +34,8 @@ "rawAmount": "721", "rawGasLimit": 1200000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 126904, + "rawAccessList": [], + "rawExpectedGasConsumed": 130104, "expectedBalances": [{ "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", "rawBalance": "999999999999999999999999556" @@ -53,6 +55,7 @@ "rawAmount": "1", "rawGasLimit": 1200000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 48112, "failed": true, "expectedBalances": [{ @@ -74,6 +77,7 @@ "rawAmount": "721", "rawGasLimit": 1200000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 45692, "failed": true, "expectedBalances": [{ @@ -94,6 +98,7 @@ "rawAmount": "100000000000", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 2024382, "failed": true, "expectedBalances": [{ @@ -113,9 +118,10 @@ "rawPrivateKey": "cff7405126a8e16ea6fd09279836e52abdcae8e4008309effc6d09556535f637", "rawByteCode": "e3b48f48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000004ba0000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a0000000000000000000000003cbbf6a0583bbe44cc5dda3b0d289c8d9149ba8a000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b00000000000000000000000000000000000000000000000000000000000000047465737400000000000000000000000000000000000000000000000000000000", "rawAmount": "9999999999999999", - "rawGasLimit": 6000000, + "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 4853681, + "rawAccessList": [], + "rawExpectedGasConsumed": 4675581, "expectedBalances": [{ "account": "io1757z4d53408usrx2nf2vr5jh0mc5f5qm8nkre2", "rawBalance": "999999999999999999999962656" diff --git a/action/protocol/execution/testdata-london/no-variable-length-returns.json b/action/protocol/execution/testdata-london/no-variable-length-returns.json index 4ec27acb9c..9942d84166 100644 --- a/action/protocol/execution/testdata-london/no-variable-length-returns.json +++ b/action/protocol/execution/testdata-london/no-variable-length-returns.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -23,6 +24,7 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 297532, "expectedStatus": 1, "expectedBalances": [], @@ -37,7 +39,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 34724, + "rawAccessList": [], + "rawExpectedGasConsumed": 36024, "expectedStatus": 1, "comment": "call assign(address)" },{ @@ -47,7 +50,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 14687, + "rawAccessList": [], + "rawExpectedGasConsumed": 18487, "expectedStatus": 1, "comment": "call copyToMemory" },{ @@ -57,7 +61,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 16536, + "rawAccessList": [], + "rawExpectedGasConsumed": 20936, "expectedStatus": 1, "comment": "call copyToStorage" }] diff --git a/action/protocol/execution/testdata-london/public-mapping.json b/action/protocol/execution/testdata-london/public-mapping.json index 8f46eb8810..58afeea887 100644 --- a/action/protocol/execution/testdata-london/public-mapping.json +++ b/action/protocol/execution/testdata-london/public-mapping.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -37,7 +38,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 34724, + "rawAccessList": [], + "rawExpectedGasConsumed": 36024, "expectedStatus": 1, "comment": "call setContract" }, { @@ -47,7 +49,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 30534, + "rawAccessList": [], + "rawExpectedGasConsumed": 32634, "expectedStatus": 1, "comment": "call a.Set()" }, { @@ -57,7 +60,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 13478, + "rawAccessList": [], + "rawExpectedGasConsumed": 17978, "expectedStatus": 1, "hasReturnValue": true, "rawReturnValue": "000000000000000000000000000000000000000000000000000000000000002a", diff --git a/action/protocol/execution/testdata-london/reentry-attack.json b/action/protocol/execution/testdata-london/reentry-attack.json index 9873965af9..345526597b 100644 --- a/action/protocol/execution/testdata-london/reentry-attack.json +++ b/action/protocol/execution/testdata-london/reentry-attack.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -25,7 +26,20 @@ "rawAmount": "5000000000000000000", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 220273, + "rawAccessList": [{ + "address": "67ec2fd251e5563c112b2534590ae74d23e6df19", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000002" + ] + },{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "809fddd0e44ad4227f52c39fc29ccd10b3c1d7ca546bc63db1a7bdde63de0cee" + ] + }], + "rawExpectedGasConsumed": 228673, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy Attacker contract" @@ -37,7 +51,18 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 96695, + "rawAccessList": [{ + "address": "67ec2fd251e5563c112b2534590ae74d23e6df19", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000" + ] + },{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "809fddd0e44ad4227f52c39fc29ccd10b3c1d7ca546bc63db1a7bdde63de0cee" + ] + }], + "rawExpectedGasConsumed": 81795, "expectedStatus": 1, "expectedBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/remove-from-array.json b/action/protocol/execution/testdata-london/remove-from-array.json index b084d18f95..b68b60ff7c 100644 --- a/action/protocol/execution/testdata-london/remove-from-array.json +++ b/action/protocol/execution/testdata-london/remove-from-array.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,7 +25,18 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 160339, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e565", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e567" + ] + }], + "rawExpectedGasConsumed": 154639, "expectedStatus": 1, "hasReturnValue": true, "rawReturnValue": "00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000032", diff --git a/action/protocol/execution/testdata-london/self-destruct.json b/action/protocol/execution/testdata-london/self-destruct.json index 59ab6a233f..a08ce2da26 100644 --- a/action/protocol/execution/testdata-london/self-destruct.json +++ b/action/protocol/execution/testdata-london/self-destruct.json @@ -1,4 +1,9 @@ { + "initGenesis": { + "isLondon" : true, + "isBering" : true, + "isIceland" : true + }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", "rawBalance": "1000000000000000000000000000" @@ -9,7 +14,8 @@ "rawAmount": "0", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 95828, + "rawExpectedGasConsumed": 97728, + "expectedStatus": 1, "expectedBalances": [], "comment": "deploy self-destruct contract" }], @@ -19,7 +25,9 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 33834, + "rawAccessList": [], + "rawExpectedGasConsumed": 35934, + "expectedStatus": 1, "comment": "store 20" },{ "readOnly": true, @@ -28,7 +36,9 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 10746, + "rawAccessList": [], + "rawExpectedGasConsumed": 12646, + "expectedStatus": 1, "hasReturnValue": true, "rawReturnValue": "0000000000000000000000000000000000000000000000000000000000000014", "comment": "retrieve" @@ -38,7 +48,9 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5378, + "rawAccessList": [], + "rawExpectedGasConsumed": 17656, + "expectedStatus": 1, "comment": "self destruct" },{ "readOnly": true, @@ -47,7 +59,9 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10400, + "expectedStatus": 1, "hasReturnValue": true, "rawReturnValue": "", "comment": "return nil because contract is destoried" diff --git a/action/protocol/execution/testdata-london/send-eth.json b/action/protocol/execution/testdata-london/send-eth.json index 7a48b27a98..984f00928f 100644 --- a/action/protocol/execution/testdata-london/send-eth.json +++ b/action/protocol/execution/testdata-london/send-eth.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -13,7 +14,7 @@ "rawAmount": "10000000000000000000", "rawGasLimit": 5000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 152741, + "rawExpectedGasConsumed": 154041, "expectedStatus": 1, "expectedBalances": [], "comment": "deploy send-eth contract" @@ -25,7 +26,8 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 60513, + "rawAccessList": [], + "rawExpectedGasConsumed": 61113, "expectedStatus": 1, "expectedBalances": [{ "account": "io1rc2d2de7rtuucalsqv4d9ng0h297t63w7wvlph", diff --git a/action/protocol/execution/testdata-london/sha3.json b/action/protocol/execution/testdata-london/sha3.json index 6beb16dcbb..7fc834e8aa 100644 --- a/action/protocol/execution/testdata-london/sha3.json +++ b/action/protocol/execution/testdata-london/sha3.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 11869, "expectedStatus": 1, "hasReturnValue": true, @@ -35,6 +37,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10850, "expectedStatus": 1, "hasReturnValue": true, @@ -46,6 +49,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10839, "expectedStatus": 1, "hasReturnValue": true, @@ -68,6 +72,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10773, "expectedStatus": 1, "hasReturnValue": true, @@ -79,6 +84,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10781, "expectedStatus": 1, "hasReturnValue": true, @@ -90,6 +96,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10774, "expectedStatus": 1, "hasReturnValue": true, @@ -101,6 +108,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10765, "expectedStatus": 1, "hasReturnValue": true, @@ -112,6 +120,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10830, "expectedStatus": 1, "hasReturnValue": true, @@ -123,6 +132,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10803, "expectedStatus": 1, "hasReturnValue": true, @@ -134,6 +144,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10802, "expectedStatus": 1, "hasReturnValue": true, @@ -145,6 +156,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10780, "expectedStatus": 1, "hasReturnValue": true, @@ -156,6 +168,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10833, "expectedStatus": 1, "hasReturnValue": true, @@ -167,6 +180,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10594, "expectedStatus": 1, "hasReturnValue": true, diff --git a/action/protocol/execution/testdata-london/storage-test.json b/action/protocol/execution/testdata-london/storage-test.json index 75820f270d..ede2223fa4 100644 --- a/action/protocol/execution/testdata-london/storage-test.json +++ b/action/protocol/execution/testdata-london/storage-test.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -22,20 +23,523 @@ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "5b48eb130000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 4643961, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61d9", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61da", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61db", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61dc", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61dd", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61de", + "510e4e770828ddbf7f7b00ab00a9f6adaf81c0dc9cc85f1f8249c256942d61df", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979a", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979b", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979c", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979d", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979e", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f600979f", + "6c13d8c1c5df666ea9ca2a428504a3776c8ca01021c3a1524ca7d765f60097a0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e565", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f13", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f14", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f15", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f16", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f17", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f18", + "63d75db57ae45c3799740c3cd8dcee96a498324843d79ae390adc81d74b52f19", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8fa", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8fb", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8fc", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8fd", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8fe", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d8ff", + "68ebfc8da80bd809b12832608f406ef96007b3a567d97edcfc62f0f6f6a6d900", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e567", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07d9", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07da", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07db", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07dc", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07dd", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07de", + "9c418048a637d1641c6d732dd38174732bbf7b47a1cf6d5f65895384518b07df", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e568", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0a", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0b", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0c", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0d", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0e", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d0f", + "5306a7ea1091503364459f70885dc372117f70834621ea9300aa244571124d10", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e569", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1a", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1b", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1c", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1d", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1e", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f1f", + "aaab8540682e3a537d17674663ea013e92c83fdd69958f314b4521edb3b76f20", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe66", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe67", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe68", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe69", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe6a", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe6b", + "45991fce5fc3033a0031207ac65e4c413069a0cd6e6bc7664254f8c4341cfe6c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56b", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35eed", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35eee", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35eef", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35ef0", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35ef1", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35ef2", + "51bdce570797d7347ee2c632abdbe21de6c1cddf1026b9348df268225cf35ef3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56c", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d0047b", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d0047c", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d0047d", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d0047e", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d0047f", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d00480", + "7b5fcc8f73196524ea5f04c38888c2f09c6cbef411cb31e259d35b56e3d00481", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56d", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c4909365721185", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c4909365721186", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c4909365721187", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c4909365721188", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c4909365721189", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c490936572118a", + "4a4dc7b36028fb3f9d05fc19190734f0a7ece2c30dc0173f06c490936572118b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56e", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee44476", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee44477", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee44478", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee44479", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee4447a", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee4447b", + "d31af96c2e2fdbf596eef2a4a31d65a68b1fce22049159bf1b39bba52ee4447c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56f", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc5271f", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52720", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52721", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52722", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52723", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52724", + "0ebdbfac0189e4edd3debec57a7ef885f95fab7ca11fa633dea73d7b5dc52725", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e570", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac938e", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac938f", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac9390", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac9391", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac9392", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac9393", + "2742666d31e526c8f5defceabdafd3105bf2b5743774dd0c47702499dbac9394", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e571", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c5c", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c5d", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c5e", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c5f", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c60", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c61", + "a06695c256a4a4a1b8ed004dc824e330f1747032632c0e6d88c1d84c330c1c62", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e572", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70e5", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70e6", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70e7", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70e8", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70e9", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70ea", + "2a3933fcb91ddbd61f0e382d4b94df84f60ad30eacf94376b4a47114691e70eb", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e573", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af2", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af3", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af4", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af5", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af6", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af7", + "ff48e101e1045535d929d495692c383c0f1b7e861d5176a028cb8373d1179af8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e574", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852af", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b0", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b1", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b2", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b3", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b4", + "cc44b221c546b5aea12103918e6268611bfbad5b8d74f4d27f32ffebe4f852b5", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e575", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb444", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb445", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb446", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb447", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb448", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb449", + "a31f1759074a3e9970ff8648c50ab806c4e6725b961b4e54e979ef08b53fb44a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e576", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0590", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0591", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0592", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0593", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0594", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0595", + "be257165ee8c7eae64faf81e97823d50dba1b6a2be88bccea1ac5d01256f0596", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e577", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d259", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25a", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25b", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25c", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25d", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25e", + "c69ecc0828d60b329e3b9668ff42457eb5483fa791f1c1776f7fc1972fd7d25f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e578", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725361", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725362", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725363", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725364", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725365", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725366", + "0d13094d6851bea1cb50cc64a4421ae536705ca2da0347ea1d27f42aeb725367", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e579", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f5389667", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f5389668", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f5389669", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f538966a", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f538966b", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f538966c", + "80f0598597d7a1012e2e0a89cab2b766e02a3a5e30768662751fe258f538966d", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57a", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9e9c", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9e9d", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9e9e", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9e9f", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9ea0", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9ea1", + "df495ae1d831b2618ceb965d36d4e632eea69c8bc7a7859ce77b49dfa22c9ea2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57b", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de00", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de01", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de02", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de03", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de04", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de05", + "904d807394a26a5623e844d859daa1940d13cb7bda091582294562d688f4de06", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57c", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa2", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa3", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa4", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa5", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa6", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa7", + "f108693a29c48396a4afb41c780f4afff0ebecea40e9758ae41ff60e33e7daa8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57d", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816cd", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816ce", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816cf", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816d0", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816d1", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816d2", + "ec8eded089ebe06ee017735c27289ac7b8a08d0464a8b95a3962b219b42816d3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57e", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f34", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f35", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f36", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f37", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f38", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f39", + "c077c8e3f307132f5d5d428a347cbbe434ca00e21ccd39585fde62f273379f3a" + ] + }], + "rawExpectedGasConsumed": 5014361, "expectedStatus": 1, "comment": "call storage test" },{ "rawPrivateKey": "cfa6ef757dee2e50351620dca002d32b9c090cfda55fb81f37f1d26b273743f1", "rawByteCode": "5b48eb130000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000c8303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233303132333435363738396162636465666768696a6b6c6d6e6f707172737475767778797a3031323334353637383930313233000000000000000000000000000000000000000000000000", "rawAmount": "0", - "rawGasLimit": 5000000, + "rawGasLimit": 6000000, "rawGasPrice": "0", - "rawExpectedGasConsumed": 5000000, + "rawAccessList": [{ + "address": "06abb2ca03834bd4f62c610ca7627e3dd12d9a97", + "storageKeys": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e57f", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f74d", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f74e", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f74f", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f750", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f751", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f752", + "8ab6912a296f8f35b3ccbba94a7ef1a0438421ad2191086e6e11caa339c1f753", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e580", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711ce", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711cf", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711d0", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711d1", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711d2", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711d3", + "232f0f7a7af9ed4f160d1c425f37d148d10bddb9c828e99d4145b150485711d4", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e581", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b15f", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b160", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b161", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b162", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b163", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b164", + "ac5f33c1333d426ffde7017786a5ac11afe511fd27c6c0e8505a42b50fd5b165", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e582", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da5c", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da5d", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da5e", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da5f", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da60", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da61", + "9733365717be6fab11c626849dc25bfd611553ba58c9fa326862379441f9da62", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e583", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec680", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec681", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec682", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec683", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec684", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec685", + "8b76c2fa7d287229b6b699c74b5abee97d6e859007fcf0dab8353073d20ec686", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e584", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0dea", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0deb", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0dec", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0ded", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0dee", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0def", + "82983cf1d0e5ef1112485a4f56e94f1ddb52ca674371d2cb12cb0515ca4d0df0", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e585", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac4422c", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac4422d", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac4422e", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac4422f", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac44230", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac44231", + "7f7c73e826b7dd131777470492494a9f14b451e947ae119760ac27c5aac44232", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e586", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba410", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba411", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba412", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba413", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba414", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba415", + "0d31a8c04285395909374f518fcf59c56e560a55846c887741a1c002358ba416", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e587", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c180c", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c180d", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c180e", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c180f", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c1810", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c1811", + "fb92070d6c4bf9091d51718d0b1bea6abd7f108c91f2c8594aa2ab699e7c1812", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e588", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a685d", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a685e", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a685f", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a6860", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a6861", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a6862", + "a80c87265c8f718e21ec868fb390a9a58423b5d397ad3c9f566870b73a7a6863", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e589", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb70", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb71", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb72", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb73", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb74", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb75", + "148ac0381d2a057b56dc816a8b8f6a28ffdcf3cc656eed374fa4ee000f8ffb76", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58a", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de35", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de36", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de37", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de38", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de39", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de3a", + "8ab6fad336e69b72e50a4cec1eff1aac27f3fe4a9e50ec468c2897f8dff1de3b", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58b", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f4", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f5", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f6", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f7", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f8", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372f9", + "30d08b743747dbe649f33f03467478748e55b9af9ec2f15e126ce890353372fa", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58c", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe3", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe4", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe5", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe6", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe7", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe8", + "09483f473fe89bdee59608e37223fe3aa2a6d8e27a1aa12211b3dd437afefbe9", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58d", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff890e", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff890f", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff8910", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff8911", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff8912", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff8913", + "d3a47c3b2f439571c7230ea0128f566e8adb47517d573da993d8644382ff8914", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58e", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d2", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d3", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d4", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d5", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d6", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d7", + "09a03d0b8493603ecd39a1811a587b9eed2654cfeedc2fbe977629f0a49624d8", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e58f", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1ca5", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1ca6", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1ca7", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1ca8", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1ca9", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1caa", + "f95143fe78dd07f761078fae2a49104391f8c5ecb644c7485fe3e51c004c1cab", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e590", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e852514b", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e852514c", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e852514d", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e852514e", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e852514f", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e8525150", + "aa6d8b060d599285ad3ad27727a83a1a8f4d4b356011589a57add160e8525151", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e591", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab94", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab95", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab96", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab97", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab98", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab99", + "ba03254231e164fed7d683af6f1be22cda88175566d319440abcfa73f74bab9a", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e592", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d2568", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d2569", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d256a", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d256b", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d256c", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d256d", + "0cb329bf3f2b427ed0915fd7178e2534f794e0c318e67e34a158264e127d256e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e593", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a8c", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a8d", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a8e", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a8f", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a90", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a91", + "c09d2a33e363d8af11399d1d3f4fe92634456a3a19746ae927ed86e927633a92", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e594", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d691", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d692", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d693", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d694", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d695", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d696", + "61f96013ec5db4774639d8122f0250855863bdf6ebef9b8684e35a974ac0d697", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e595", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbe9d", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbe9e", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbe9f", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbea0", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbea1", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbea2", + "a0bedb31e6d9a66c4c7c6b8c89af4144e0e7cad9aba4216236a403a92a2dbea3", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e596", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d70", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d71", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d72", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d73", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d74", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d75", + "fc7dcc6adae2a42c0668058769002e63e6c1b2887a5e2c2ef4673a4d29516d76", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e597", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018123", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018124", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018125", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018126", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018127", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018128", + "4331910852304e59a0d925cdcfec0b19600fdef46b52e274114f286a59018129", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e598", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e68", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e69", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e6a", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e6b", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e6c", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e6d", + "8a142947a8d1f5b84194d09f6afde86f14c8a0658aa6176c85f5d95eee429e6e", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e599", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acf9", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acfa", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acfb", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acfc", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acfd", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acfe", + "33f33a0afd8ad503a4deca64018725e39899b67d809ff73257df83403094acff", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59a", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dcc7", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dcc8", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dcc9", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dcca", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dccb", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dccc", + "f77f6cc460e30e98718b51b0601a502cc084cc302f96911eff4710e985e4dccd", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59b", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213f9c", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213f9d", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213f9e", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213f9f", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213fa0", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213fa1", + "19eeb23aedb4c2c8eb452e1f8cc44ca22595636986d7ecc92256fe3aa1213fa2", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59c", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f009", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00a", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00b", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00c", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00d", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00e", + "ef458ea0b5e54ffeb1103a039323822c4a85ffc4a3911b3cfb32eabb2e63f00f", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59d", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef3c", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef3d", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef3e", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef3f", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef40", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef41", + "90d389ea5a1c3669f9cac1af92b808bef113a70583f2faa9443f8ed497c6ef42", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59e", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b56", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b57", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b58", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b59", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b5a", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b5b", + "8a23044b54848e2f9d80d11326f7863e89e0aa334f0710afbc6568e6663d3b5c", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e59f", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbac9", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbaca", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbacb", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbacc", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbacd", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbace", + "3fb2cc435d88ad5c56e3ce3c1f8c781ae644ee1710f73e014be9b079ecafbacf", + "290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5a0", + "4add691e919965e9bb30f8df19e77484684340577f2d581069884bb14cd9ef4c", + "4add691e919965e9bb30f8df19e77484684340577f2d581069884bb14cd9ef4d" + ] + }], + "rawExpectedGasConsumed": 6000000, "expectedStatus": 101, "failed": true, - "comment": "call storage test" + "comment": "call storage test again" }] } diff --git a/action/protocol/execution/testdata-london/tail-recursion.json b/action/protocol/execution/testdata-london/tail-recursion.json index 52d5da6a0b..7b29799db1 100644 --- a/action/protocol/execution/testdata-london/tail-recursion.json +++ b/action/protocol/execution/testdata-london/tail-recursion.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 17161, "expectedStatus": 1, "hasReturnValue": true, @@ -35,6 +37,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 16861, "expectedStatus": 1, "hasReturnValue": true, @@ -46,6 +49,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 17260, "expectedStatus": 1, "hasReturnValue": true, diff --git a/action/protocol/execution/testdata-london/tuple.json b/action/protocol/execution/testdata-london/tuple.json index 20e6f81b2e..92f8016386 100644 --- a/action/protocol/execution/testdata-london/tuple.json +++ b/action/protocol/execution/testdata-london/tuple.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10700, "expectedStatus": 1, "hasReturnValue": true, diff --git a/action/protocol/execution/testdata-london/wireconnection.json b/action/protocol/execution/testdata-london/wireconnection.json index bacad19188..7e7541cdab 100644 --- a/action/protocol/execution/testdata-london/wireconnection.json +++ b/action/protocol/execution/testdata-london/wireconnection.json @@ -1,5 +1,6 @@ { "initGenesis": { + "isLondon" : true, "isBering" : true, "isIceland" : true }, @@ -24,6 +25,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10553, "expectedStatus": 1, "hasReturnValue": true, @@ -35,6 +37,7 @@ "rawAmount": "0", "rawGasLimit": 1000000, "rawGasPrice": "0", + "rawAccessList": [], "rawExpectedGasConsumed": 10608, "expectedStatus": 1, "hasReturnValue": true, From b9321b6efcb289a7cab696d3ea51b70fae12d182 Mon Sep 17 00:00:00 2001 From: huof6890 <68298506@qq.com> Date: Thu, 9 Jun 2022 11:03:16 +0800 Subject: [PATCH 3/4] use NewExecutionWithAccessList --- action/execution.go | 5 ----- action/protocol/execution/protocol_test.go | 8 ++++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/action/execution.go b/action/execution.go index bce284f977..5cccd50ae8 100644 --- a/action/execution.go +++ b/action/execution.go @@ -109,11 +109,6 @@ func (ex *Execution) Payload() []byte { return ex.data } // AccessList returns the access list func (ex *Execution) AccessList() types.AccessList { return ex.accessList } -// SetAccessList set the access list -func (ex *Execution) SetAccessList(list types.AccessList) { - ex.accessList = list -} - func toAccessListProto(list types.AccessList) []*iotextypes.AccessTuple { if len(list) == 0 { return nil diff --git a/action/protocol/execution/protocol_test.go b/action/protocol/execution/protocol_test.go index d46ccea4fc..49579e8b97 100644 --- a/action/protocol/execution/protocol_test.go +++ b/action/protocol/execution/protocol_test.go @@ -264,18 +264,18 @@ func readExecution( if err != nil { return nil, nil, err } - exec, err := action.NewExecution( + exec, err := action.NewExecutionWithAccessList( contractAddr, state.Nonce+1, ecfg.Amount(), ecfg.GasLimit(), ecfg.GasPrice(), ecfg.ByteCode(), + ecfg.AccessList(), ) if err != nil { return nil, nil, err } - exec.SetAccessList(ecfg.AccessList()) addr := ecfg.PrivateKey().PublicKey().Address() if addr == nil { return nil, nil, errors.New("failed to get address") @@ -312,18 +312,18 @@ func runExecutions( } nonce = nonce + 1 nonces[executor.String()] = nonce - exec, err := action.NewExecution( + exec, err := action.NewExecutionWithAccessList( contractAddrs[i], nonce, ecfg.Amount(), ecfg.GasLimit(), ecfg.GasPrice(), ecfg.ByteCode(), + ecfg.AccessList(), ) if err != nil { return nil, nil, err } - exec.SetAccessList(ecfg.AccessList()) builder := &action.EnvelopeBuilder{} elp := builder.SetAction(exec). SetNonce(exec.Nonce()). From 6bb2752d970d0e741d0d77d20c66709023de7417 Mon Sep 17 00:00:00 2001 From: huof6890 <68298506@qq.com> Date: Fri, 17 Jun 2022 21:56:57 +0800 Subject: [PATCH 4/4] delete config.SetEVMNetworkID --- action/protocol/execution/protocol_test.go | 10 ++++------ .../testdata-london/CVE-2021-39137-attack-replay.json | 4 ++-- .../execution/testdata-london/array-return.json | 4 ++-- .../execution/testdata-london/basic-token.json | 4 ++-- .../execution/testdata-london/call-dynamic.json | 4 ++-- .../execution/testdata-london/chainid-selfbalance.json | 4 ++-- .../execution/testdata-london/changestate.json | 4 ++-- .../protocol/execution/testdata-london/datacopy.json | 4 ++-- action/protocol/execution/testdata-london/f.value.json | 4 ++-- .../protocol/execution/testdata-london/gas-test.json | 4 ++-- .../execution/testdata-london/infiniteloop.json | 6 +++--- .../execution/testdata-london/mapping-delete.json | 4 ++-- action/protocol/execution/testdata-london/maxtime.json | 4 ++-- .../protocol/execution/testdata-london/modifiers.json | 4 ++-- .../protocol/execution/testdata-london/multisend.json | 4 ++-- .../testdata-london/no-variable-length-returns.json | 4 ++-- .../execution/testdata-london/public-mapping.json | 4 ++-- .../execution/testdata-london/reentry-attack.json | 4 ++-- .../execution/testdata-london/remove-from-array.json | 4 ++-- .../execution/testdata-london/self-destruct.json | 4 ++-- .../protocol/execution/testdata-london/send-eth.json | 4 ++-- action/protocol/execution/testdata-london/sha3.json | 4 ++-- .../execution/testdata-london/storage-test.json | 4 ++-- .../execution/testdata-london/tail-recursion.json | 4 ++-- action/protocol/execution/testdata-london/tuple.json | 4 ++-- .../execution/testdata-london/wireconnection.json | 4 ++-- 26 files changed, 55 insertions(+), 57 deletions(-) diff --git a/action/protocol/execution/protocol_test.go b/action/protocol/execution/protocol_test.go index ffc1e16e08..40ba0e3a3d 100644 --- a/action/protocol/execution/protocol_test.go +++ b/action/protocol/execution/protocol_test.go @@ -64,9 +64,9 @@ type ( // GenesisBlockHeight defines an genesis blockHeight GenesisBlockHeight struct { - IsLondon bool `json:"isLondon"` IsBering bool `json:"isBering"` IsIceland bool `json:"isIceland"` + IsLondon bool `json:"isLondon"` } Log struct { @@ -385,9 +385,6 @@ func (sct *SmartContractTest) prepareBlockchain( cfg.Chain.TrieDBPath = testTriePath cfg.ActPool.MinGasPriceStr = "0" - if sct.InitGenesis.IsLondon { - cfg.Genesis.Blockchain.ToBeEnabledBlockHeight = 0 - } if sct.InitGenesis.IsBering { cfg.Genesis.Blockchain.AleutianBlockHeight = 0 cfg.Genesis.Blockchain.BeringBlockHeight = 0 @@ -403,6 +400,9 @@ func (sct *SmartContractTest) prepareBlockchain( cfg.Genesis.GreenlandBlockHeight = 0 cfg.Genesis.IcelandBlockHeight = 0 } + if sct.InitGenesis.IsLondon { + cfg.Genesis.Blockchain.ToBeEnabledBlockHeight = 0 + } for _, expectedBalance := range sct.InitBalances { cfg.Genesis.InitBalanceMap[expectedBalance.Account] = expectedBalance.Balance().String() } @@ -1034,8 +1034,6 @@ func TestIstanbulEVM(t *testing.T) { } func TestLondonEVM(t *testing.T) { - cfg := config.Default - config.SetEVMNetworkID(cfg.Chain.EVMNetworkID) t.Run("ArrayReturn", func(t *testing.T) { NewSmartContractTest(t, "testdata-london/array-return.json") }) diff --git a/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json index 0c71aa0d70..c2decebb1d 100644 --- a/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json +++ b/action/protocol/execution/testdata-london/CVE-2021-39137-attack-replay.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/array-return.json b/action/protocol/execution/testdata-london/array-return.json index a625d37430..0ef88f839a 100644 --- a/action/protocol/execution/testdata-london/array-return.json +++ b/action/protocol/execution/testdata-london/array-return.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/basic-token.json b/action/protocol/execution/testdata-london/basic-token.json index 9e18dc463f..39ae2a2d1a 100644 --- a/action/protocol/execution/testdata-london/basic-token.json +++ b/action/protocol/execution/testdata-london/basic-token.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/call-dynamic.json b/action/protocol/execution/testdata-london/call-dynamic.json index 71527a740f..ff007d511c 100644 --- a/action/protocol/execution/testdata-london/call-dynamic.json +++ b/action/protocol/execution/testdata-london/call-dynamic.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/chainid-selfbalance.json b/action/protocol/execution/testdata-london/chainid-selfbalance.json index 3080e25028..c0bb65245d 100644 --- a/action/protocol/execution/testdata-london/chainid-selfbalance.json +++ b/action/protocol/execution/testdata-london/chainid-selfbalance.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/changestate.json b/action/protocol/execution/testdata-london/changestate.json index fd6ae62926..f4bc16a1c7 100644 --- a/action/protocol/execution/testdata-london/changestate.json +++ b/action/protocol/execution/testdata-london/changestate.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/datacopy.json b/action/protocol/execution/testdata-london/datacopy.json index 26228b7513..8fd715248a 100644 --- a/action/protocol/execution/testdata-london/datacopy.json +++ b/action/protocol/execution/testdata-london/datacopy.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/f.value.json b/action/protocol/execution/testdata-london/f.value.json index 10435e9387..2f69b730b9 100644 --- a/action/protocol/execution/testdata-london/f.value.json +++ b/action/protocol/execution/testdata-london/f.value.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/gas-test.json b/action/protocol/execution/testdata-london/gas-test.json index aa4494b3f7..361cd44673 100644 --- a/action/protocol/execution/testdata-london/gas-test.json +++ b/action/protocol/execution/testdata-london/gas-test.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/infiniteloop.json b/action/protocol/execution/testdata-london/infiniteloop.json index f717e4c718..34f7248ea7 100644 --- a/action/protocol/execution/testdata-london/infiniteloop.json +++ b/action/protocol/execution/testdata-london/infiniteloop.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, - "isBering" : true, - "isIceland" : true + "isBering" : true, + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/mapping-delete.json b/action/protocol/execution/testdata-london/mapping-delete.json index 3c1a665067..7eeada4857 100644 --- a/action/protocol/execution/testdata-london/mapping-delete.json +++ b/action/protocol/execution/testdata-london/mapping-delete.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/maxtime.json b/action/protocol/execution/testdata-london/maxtime.json index db5089db33..c133254959 100644 --- a/action/protocol/execution/testdata-london/maxtime.json +++ b/action/protocol/execution/testdata-london/maxtime.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/modifiers.json b/action/protocol/execution/testdata-london/modifiers.json index c21347e47b..de719302e7 100644 --- a/action/protocol/execution/testdata-london/modifiers.json +++ b/action/protocol/execution/testdata-london/modifiers.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/multisend.json b/action/protocol/execution/testdata-london/multisend.json index 9d5f0f515a..f0091b8909 100644 --- a/action/protocol/execution/testdata-london/multisend.json +++ b/action/protocol/execution/testdata-london/multisend.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io10t2hrfgcv0j4g2urc0qvjsvsqfwgykvgvff9eg", diff --git a/action/protocol/execution/testdata-london/no-variable-length-returns.json b/action/protocol/execution/testdata-london/no-variable-length-returns.json index 9942d84166..97c0192daa 100644 --- a/action/protocol/execution/testdata-london/no-variable-length-returns.json +++ b/action/protocol/execution/testdata-london/no-variable-length-returns.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/public-mapping.json b/action/protocol/execution/testdata-london/public-mapping.json index 58afeea887..e86327d215 100644 --- a/action/protocol/execution/testdata-london/public-mapping.json +++ b/action/protocol/execution/testdata-london/public-mapping.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/reentry-attack.json b/action/protocol/execution/testdata-london/reentry-attack.json index 345526597b..29adcc7324 100644 --- a/action/protocol/execution/testdata-london/reentry-attack.json +++ b/action/protocol/execution/testdata-london/reentry-attack.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/remove-from-array.json b/action/protocol/execution/testdata-london/remove-from-array.json index b68b60ff7c..6ea867c6d1 100644 --- a/action/protocol/execution/testdata-london/remove-from-array.json +++ b/action/protocol/execution/testdata-london/remove-from-array.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/self-destruct.json b/action/protocol/execution/testdata-london/self-destruct.json index a08ce2da26..621505b146 100644 --- a/action/protocol/execution/testdata-london/self-destruct.json +++ b/action/protocol/execution/testdata-london/self-destruct.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/send-eth.json b/action/protocol/execution/testdata-london/send-eth.json index 984f00928f..629716790f 100644 --- a/action/protocol/execution/testdata-london/send-eth.json +++ b/action/protocol/execution/testdata-london/send-eth.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/sha3.json b/action/protocol/execution/testdata-london/sha3.json index 7fc834e8aa..494a05fb71 100644 --- a/action/protocol/execution/testdata-london/sha3.json +++ b/action/protocol/execution/testdata-london/sha3.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/storage-test.json b/action/protocol/execution/testdata-london/storage-test.json index ede2223fa4..ad29218d18 100644 --- a/action/protocol/execution/testdata-london/storage-test.json +++ b/action/protocol/execution/testdata-london/storage-test.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/tail-recursion.json b/action/protocol/execution/testdata-london/tail-recursion.json index 7b29799db1..8e60c3f9d6 100644 --- a/action/protocol/execution/testdata-london/tail-recursion.json +++ b/action/protocol/execution/testdata-london/tail-recursion.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/tuple.json b/action/protocol/execution/testdata-london/tuple.json index 92f8016386..dcb5a734bd 100644 --- a/action/protocol/execution/testdata-london/tuple.json +++ b/action/protocol/execution/testdata-london/tuple.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms", diff --git a/action/protocol/execution/testdata-london/wireconnection.json b/action/protocol/execution/testdata-london/wireconnection.json index 7e7541cdab..7b40789c3c 100644 --- a/action/protocol/execution/testdata-london/wireconnection.json +++ b/action/protocol/execution/testdata-london/wireconnection.json @@ -1,8 +1,8 @@ { "initGenesis": { - "isLondon" : true, "isBering" : true, - "isIceland" : true + "isIceland" : true, + "isLondon" : true }, "initBalances": [{ "account": "io1mflp9m6hcgm2qcghchsdqj3z3eccrnekx9p0ms",