From 0d7a4a929df97ac2b051565c117c8c94e85a81c7 Mon Sep 17 00:00:00 2001 From: winsvega Date: Sat, 31 Jan 2015 20:36:14 +0300 Subject: [PATCH 01/52] transaction address length test fix --- test/transaction.cpp | 4 +++- test/ttTransactionTestFiller.json | 34 ++----------------------------- 2 files changed, 5 insertions(+), 33 deletions(-) diff --git a/test/transaction.cpp b/test/transaction.cpp index e1e275302..8c2e99cf9 100644 --- a/test/transaction.cpp +++ b/test/transaction.cpp @@ -21,7 +21,6 @@ */ #include "TestHelper.h" - using namespace std; using namespace json_spirit; using namespace dev; @@ -152,6 +151,9 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) if (!txFromFields.signature().isValid()) BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("transaction from RLP signature is invalid") ); + //cause Address is length20 array, when trying to create address from sting of another length, field "to" would be diffrent from RLP encoded Address + BOOST_CHECK_MESSAGE(Address(tObj["to"].get_str()) == txFromFields.receiveAddress(), "seems that transaction 'to' address has wrong format"); + o["sender"] = toString(txFromFields.sender()); } catch(...) diff --git a/test/ttTransactionTestFiller.json b/test/ttTransactionTestFiller.json index 3c39b9da5..6967f4284 100644 --- a/test/ttTransactionTestFiller.json +++ b/test/ttTransactionTestFiller.json @@ -242,44 +242,14 @@ } }, - "AddressMore20" : { + "WrongAddress" : { "transaction" : { "data" : "", "gasLimit" : "", "gasPrice" : "", "nonce" : "", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d871f", - "value" : "", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" - } - }, - - "AddressLess20" : { - "transaction" : - { - "data" : "", - "gasLimit" : "", - "gasPrice" : "", - "nonce" : "", - "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d", - "value" : "", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" - } - }, - - "AddressMore20WithFirstZeros" : { - "transaction" : - { - "data" : "", - "gasLimit" : "", - "gasPrice" : "", - "nonce" : "", - "to" : "0x00000000000000000000000095e7baea6a6c7c4c2dfeb977efac326af552d", + "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d8v", "value" : "", "v" : "27", "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", From a51e889f4ac10fe5b7820d44b5a84fceee74f804 Mon Sep 17 00:00:00 2001 From: winsvega Date: Sat, 31 Jan 2015 21:00:35 +0300 Subject: [PATCH 02/52] state test conditions to filler files --- test/TestHelper.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index 5a579702a..8cb4e11c0 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -108,6 +108,12 @@ void ImportTest::importState(json_spirit::mObject& _o, State& _state) BOOST_REQUIRE(o.count("storage") > 0); BOOST_REQUIRE(o.count("code") > 0); + bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); + if (bigint(o["balance"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'balance' is equal or grater than 2**256") ); + if (bigint(o["nonce"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'nonce' is equal or grater than 2**256") ); + Address address = Address(i.first); bytes code = importCode(o); @@ -140,6 +146,16 @@ void ImportTest::importTransaction(json_spirit::mObject& _o) BOOST_REQUIRE(_o.count("secretKey") > 0); BOOST_REQUIRE(_o.count("data") > 0); + bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); + if (bigint(_o["nonce"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'nonce' is equal or grater than 2**256") ); + if (bigint(_o["gasPrice"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasPrice' is equal or grater than 2**256") ); + if (bigint(_o["gasLimit"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasLimit' is equal or grater than 2**256") ); + if (bigint(_o["value"].get_str()) >= biValue256) + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'value' is equal or grater than 2**256") ); + m_transaction = _o["to"].get_str().empty() ? Transaction(toInt(_o["value"]), toInt(_o["gasPrice"]), toInt(_o["gasLimit"]), importData(_o), toInt(_o["nonce"]), Secret(_o["secretKey"].get_str())) : Transaction(toInt(_o["value"]), toInt(_o["gasPrice"]), toInt(_o["gasLimit"]), Address(_o["to"].get_str()), importData(_o), toInt(_o["nonce"]), Secret(_o["secretKey"].get_str())); From 2adee26fc012cbc5fee9ddc1c895626d51239590 Mon Sep 17 00:00:00 2001 From: winsvega Date: Fri, 6 Feb 2015 18:28:48 +0300 Subject: [PATCH 03/52] nonce value from 0 to "0" in fillers --- test/TestHelper.cpp | 13 +- test/randomTestFiller.json | 2 +- test/stBlockHashTestFiller.json | 12 +- test/stInitCodeTestFiller.json | 14 +- test/stLogTestsFiller.json | 270 ++++----- test/stPreCompiledContractsFiller.json | 96 +-- test/stRecursiveCreateFiller.json | 4 +- test/stRefundTestFiller.json | 32 +- test/stSpecialTestFiller.json | 6 +- test/stSystemOperationsTestFiller.json | 228 +++---- test/stTransactionTestFiller.json | 296 ++++++++++ test/vmArithmeticTestFiller.json | 624 ++++++++++---------- test/vmBitwiseLogicOperationTestFiller.json | 240 ++++---- test/vmBlockInfoTestFiller.json | 44 +- test/vmEnvironmentalInfoTestFiller.json | 172 +++--- test/vmIOandFlowOperationsTestFiller.json | 424 ++++++------- test/vmLogTestFiller.json | 184 +++--- test/vmPushDupSwapTestFiller.json | 276 ++++----- test/vmSha3TestFiller.json | 28 +- test/vmSystemOperationsTestFiller.json | 136 ++--- test/vmtestsFiller.json | 16 +- 21 files changed, 1707 insertions(+), 1410 deletions(-) diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index 8cb4e11c0..fc05de85a 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -110,9 +110,9 @@ void ImportTest::importState(json_spirit::mObject& _o, State& _state) bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); if (bigint(o["balance"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'balance' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'balance' is equal or greater than 2**256") ); if (bigint(o["nonce"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'nonce' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'nonce' is equal or greater than 2**256") ); Address address = Address(i.first); @@ -148,13 +148,14 @@ void ImportTest::importTransaction(json_spirit::mObject& _o) bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); if (bigint(_o["nonce"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'nonce' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'nonce' is equal or greater than 2**256") ); if (bigint(_o["gasPrice"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasPrice' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasPrice' is equal or greater than 2**256") ); if (bigint(_o["gasLimit"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasLimit' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasLimit' is equal or greater than 2**256") ); if (bigint(_o["value"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'value' is equal or grater than 2**256") ); + BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'value' is equal or greater than 2**256") ); + m_transaction = _o["to"].get_str().empty() ? Transaction(toInt(_o["value"]), toInt(_o["gasPrice"]), toInt(_o["gasLimit"]), importData(_o), toInt(_o["nonce"]), Secret(_o["secretKey"].get_str())) : diff --git a/test/randomTestFiller.json b/test/randomTestFiller.json index 065a21b34..0712cc40f 100644 --- a/test/randomTestFiller.json +++ b/test/randomTestFiller.json @@ -11,7 +11,7 @@ "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "random", "storage": {} } diff --git a/test/stBlockHashTestFiller.json b/test/stBlockHashTestFiller.json index ccbff5d21..af2234976 100644 --- a/test/stBlockHashTestFiller.json +++ b/test/stBlockHashTestFiller.json @@ -11,13 +11,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 0) [[ 1 ]] (BLOCKHASH 5) [[ 2 ]] (BLOCKHASH 4) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -45,13 +45,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 0) [[ 1 ]] (BLOCKHASH 257) [[ 2 ]] (BLOCKHASH 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -79,13 +79,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 1) [[ 1 ]] (BLOCKHASH 2) [[ 2 ]] (BLOCKHASH 256) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } diff --git a/test/stInitCodeTestFiller.json b/test/stInitCodeTestFiller.json index ac6bbee16..0996bd6a2 100644 --- a/test/stInitCodeTestFiller.json +++ b/test/stInitCodeTestFiller.json @@ -229,7 +229,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "0", - "nonce": 0, + "nonce": "0", "code": "{(CREATE 0 0 32)}", "storage": {} }, @@ -267,7 +267,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "0", - "nonce": 0, + "nonce": "0", "code": "{[[ 2 ]](ADDRESS)(CODECOPY 0 0 32)(CREATE 0 0 32)}", "storage": {} }, @@ -305,7 +305,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1", - "nonce": 0, + "nonce": "0", "//": "{[[0]] 12 (CREATE 0 64 32)}", "code": "{(MSTORE 0 0x600c600055602060406000f0)(CREATE 0 20 12)}", "storage": {} @@ -344,7 +344,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1000", - "nonce": 0, + "nonce": "0", "//": "(CREATE 0 64 32)", "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 500 (SLOAD 0) 1 0 0 0 0)}", @@ -384,7 +384,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "0", - "nonce": 0, + "nonce": "0", "//": "(CREATE 0 64 32)", "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 0 0 0 0 0)}", @@ -424,7 +424,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1000", - "nonce": 0, + "nonce": "0", "//": "(CREATE 0 64 32)", "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 1 0 0 0 0)}", @@ -464,7 +464,7 @@ { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1000", - "nonce": 0, + "nonce": "0", "//": "(CREATE 0 64 32)", "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1001 11 21)}", diff --git a/test/stLogTestsFiller.json b/test/stLogTestsFiller.json index 34758ff83..0f31c4c63 100644 --- a/test/stLogTestsFiller.json +++ b/test/stLogTestsFiller.json @@ -11,19 +11,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -52,19 +52,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -93,19 +93,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -135,19 +135,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -176,19 +176,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -217,19 +217,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -258,19 +258,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -299,19 +299,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG1 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -340,19 +340,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -381,19 +381,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -423,19 +423,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -464,19 +464,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -505,19 +505,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -546,19 +546,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -587,19 +587,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -628,19 +628,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -669,19 +669,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG2 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -710,19 +710,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -751,19 +751,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -793,19 +793,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -834,19 +834,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -875,19 +875,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -916,19 +916,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -957,19 +957,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -998,19 +998,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1039,19 +1039,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG3 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1080,19 +1080,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1121,19 +1121,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1163,19 +1163,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1204,19 +1204,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1245,19 +1245,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1286,19 +1286,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1327,19 +1327,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1368,19 +1368,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1409,19 +1409,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1450,19 +1450,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG4 0 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1491,19 +1491,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1532,19 +1532,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1574,19 +1574,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1615,19 +1615,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1656,19 +1656,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1697,19 +1697,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1738,19 +1738,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1779,19 +1779,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 0 (CALLER) ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1820,19 +1820,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 23 0 0 0 0) }", "storage": {} }, "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) (PC) ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } diff --git a/test/stPreCompiledContractsFiller.json b/test/stPreCompiledContractsFiller.json index 62a3a1623..7c7fd8e4b 100644 --- a/test/stPreCompiledContractsFiller.json +++ b/test/stPreCompiledContractsFiller.json @@ -11,13 +11,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -45,13 +45,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 1000 1 0 0 128 64 32) [[ 0 ]] (MOD (MLOAD 64) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -80,13 +80,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MLOAD 128) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -114,13 +114,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 500 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -148,13 +148,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 499 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -182,13 +182,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ [[ 2 ]] (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -216,13 +216,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 1) (MSTORE 64 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 96 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -250,13 +250,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c) (MSTORE 32 28) (MSTORE 33 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f) (MSTORE 65 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) [[ 2 ]] (CALL 1000 1 0 0 97 97 32) [[ 0 ]] (MOD (MLOAD 97) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -284,13 +284,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code": "{ (MSTORE 0 0x2f380a2dea7e778d81affc2443403b8fe4644db442ae4862ff5bb3732829cdb9) (MSTORE 32 27) (MSTORE 64 0x6b65ccb0558806e9b097f27a396d08f964e37b8b7af6ceeb516ff86739fbea0a) (MSTORE 96 0x37cbc8d883e129a4b1ef9d5f1df53c4f21a3ef147cf2a50a4ede0eb06ce092d4) [[ 2 ]] (CALL 1000 1 0 0 128 128 32) [[ 0 ]] (MOD (MLOAD 128) (EXP 2 160)) [[ 1 ]] (EQ (ORIGIN) (SLOAD 0)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -318,13 +318,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160005260206000602060006000600260fff1600051600055", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -352,13 +352,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 2 ]] (CALL 500 2 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -386,13 +386,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 2 ]] (CALL 500 2 0x13 0 0 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -420,13 +420,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -454,13 +454,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 2 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -488,13 +488,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 100 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -522,13 +522,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 99 2 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -556,13 +556,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 500 2 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -590,13 +590,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160005260206000602060006000600360fff1600051600055", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -624,13 +624,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 2 ]] (CALL 500 3 0 0 0 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -658,13 +658,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 5 0xf34578907f) [[ 2 ]] (CALL 500 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -692,13 +692,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xf34578907f) [[ 2 ]] (CALL 500 3 0 0 37 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -726,13 +726,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 100 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -760,13 +760,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 99 3 0 0 32 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -794,13 +794,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 2 ]] (CALL 500 3 0 0 1000000 0 32) [[ 0 ]] (MLOAD 0)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } diff --git a/test/stRecursiveCreateFiller.json b/test/stRecursiveCreateFiller.json index 0d18fb7a5..25a909d9c 100644 --- a/test/stRecursiveCreateFiller.json +++ b/test/stRecursiveCreateFiller.json @@ -11,13 +11,13 @@ "pre": { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "20000000", - "nonce": 0, + "nonce" : "0", "code": "{(CODECOPY 0 0 32)(CREATE 0 0 32)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "balance": "1000000000000000000", - "nonce": 0, + "nonce" : "0", "code": "", "storage": {} } diff --git a/test/stRefundTestFiller.json b/test/stRefundTestFiller.json index 6b2b2fc15..627d0167d 100644 --- a/test/stRefundTestFiller.json +++ b/test/stRefundTestFiller.json @@ -11,7 +11,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] 0 }", "storage" : { "0x01" : "0x01" @@ -19,7 +19,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -47,7 +47,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] 23 }", "storage" : { "0x01" : "0x01" @@ -55,7 +55,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -83,7 +83,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] 0 }", "storage" : { "0x01" : "0x01" @@ -91,7 +91,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "500", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -119,7 +119,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] 0 }", "storage" : { "0x01" : "0x01" @@ -127,7 +127,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "502", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -155,7 +155,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }", "storage" : { "0x01" : "0x01", @@ -167,7 +167,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -195,7 +195,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 10 ]] 1 [[ 11 ]] 1 [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 }", "storage" : { "0x01" : "0x01", @@ -207,7 +207,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -235,7 +235,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ @@1 @@2 [[ 10 ]] (EXP 2 0xff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }", "storage" : { "0x01" : "0x01", @@ -248,7 +248,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -276,7 +276,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ @@1 @@2 [[ 10 ]] (EXP 2 0xffff) [[ 11 ]] (BALANCE (ADDRESS)) [[ 1 ]] 0 [[ 2 ]] 0 [[ 3 ]] 0 [[ 4 ]] 0 [[ 5 ]] 0 [[ 6 ]] 0 }", "storage" : { "0x01" : "0x01", @@ -289,7 +289,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } diff --git a/test/stSpecialTestFiller.json b/test/stSpecialTestFiller.json index 3691df80f..d01072b46 100644 --- a/test/stSpecialTestFiller.json +++ b/test/stSpecialTestFiller.json @@ -11,19 +11,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f20060003554156009570060203560003555) (CALL 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 0xaaaaaaaaace5edbc8e2a8697c15331677e6ebf0b 23 0 0 0 0) }", "storage": {} }, "aaaaaaaaace5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160015532600255", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } diff --git a/test/stSystemOperationsTestFiller.json b/test/stSystemOperationsTestFiller.json index 253ba0a8a..dcdb6d8f0 100644 --- a/test/stSystemOperationsTestFiller.json +++ b/test/stSystemOperationsTestFiller.json @@ -11,13 +11,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -45,13 +45,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "10000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 11000 3 0xffffffffffffffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -79,13 +79,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -113,13 +113,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -148,13 +148,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -182,13 +182,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 1000 3 29) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -216,13 +216,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xfffffffffff 29) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -250,13 +250,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0xfffffffffff) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -284,13 +284,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0baa ) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -318,7 +318,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -331,7 +331,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -360,7 +360,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 0xffffffffff 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0xffffffffffff 64 0) }", "storage": {} }, @@ -373,7 +373,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -402,7 +402,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -415,7 +415,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -444,7 +444,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", "storage": {} }, @@ -457,7 +457,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -486,7 +486,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, @@ -499,7 +499,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -528,7 +528,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 31 1) [[ 1 ]] @0 }", "storage": {} }, @@ -541,7 +541,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -569,7 +569,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001601f60006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f1600055600051565b6023602355", "storage": {} }, @@ -582,7 +582,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -610,7 +610,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001601f60006000601773945304eb96065b2a98b57a48a06ae28d285a71b56103e8f160005560005156605b6023602355", "storage": {} }, @@ -623,7 +623,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -651,7 +651,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) (POST 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 ) }", "storage": {} }, @@ -664,7 +664,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -693,7 +693,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLSTATELESS 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", "storage": {} }, @@ -706,7 +706,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -735,7 +735,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", "storage": {} }, @@ -748,7 +748,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -778,7 +778,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -791,7 +791,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -820,7 +820,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", "storage": {} }, @@ -833,7 +833,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -861,7 +861,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", "storage": {} }, @@ -874,7 +874,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -902,7 +902,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", "storage": {} }, @@ -915,7 +915,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -944,7 +944,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", "storage": {} }, @@ -957,7 +957,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -985,7 +985,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", "storage": {} }, @@ -998,7 +998,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1026,19 +1026,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) } ", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1066,19 +1066,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) } ", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1106,19 +1106,19 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 (GAS)) (LOG0 0 32) [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) } ", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1146,13 +1146,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 2 ]] (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) [[ 1 ]] (CALL (- (GAS) 1024) (ADDRESS) 0 0 (MUL (DIV @@0 0x0402) 0xfffffffffffffffffff) 0 0) } ", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1180,13 +1180,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1214,13 +1214,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1248,13 +1248,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1282,13 +1282,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (CALLER) (SUICIDE (CALLER))}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1316,13 +1316,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (CALLER) (SUICIDE 0xaaa94f5374fce5edbc8e2a8697c15331677e6ebf0b)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1350,13 +1350,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (CALLER) (SUICIDE 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0baa)}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1384,13 +1384,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (ORIGIN) (SUICIDE (ORIGIN))}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1418,13 +1418,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (ADDRESS) (SUICIDE (ADDRESS))}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1452,13 +1452,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SUICIDE 0xaa1722f3947def4cf144679da39c4c32bdc35681 )}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1486,13 +1486,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SUICIDE (ADDRESS) )}", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1527,7 +1527,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1562,7 +1562,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1597,7 +1597,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1625,7 +1625,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -1638,7 +1638,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1666,7 +1666,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0xaa945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -1679,7 +1679,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1707,7 +1707,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5aa 23 0 64 64 0) }", "storage": {} }, @@ -1720,7 +1720,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1748,7 +1748,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, @@ -1761,7 +1761,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1789,13 +1789,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6000355415600957005b60203560003555", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1823,7 +1823,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, @@ -1836,7 +1836,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1864,7 +1864,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, @@ -1877,7 +1877,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1905,7 +1905,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", "storage": {} }, @@ -1918,7 +1918,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1946,7 +1946,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1025000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", "storage": {} }, @@ -1959,7 +1959,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -1987,7 +1987,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) (SUICIDE 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", "storage": {} }, @@ -2000,7 +2000,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -2028,7 +2028,7 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, @@ -2041,7 +2041,7 @@ }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -2069,13 +2069,13 @@ "pre" : { "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[0]] (CALLVALUE) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "", "storage": {} } @@ -2103,13 +2103,13 @@ "pre": { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1000000000000000000", - "nonce": 0, + "nonce": "0", "code": "{ [[0]] (balance (address)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "balance": "1000000000000000000", - "nonce": 0, + "nonce": "0", "code": "", "storage": {} } @@ -2137,13 +2137,13 @@ "pre": { "095e7baea6a6c7c4c2dfeb977efac326af552d87": { "balance": "1000000000000000000", - "nonce": 0, + "nonce": "0", "code": "{ [[0]] (balance (caller)) }", "storage": {} }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "balance": "1000000000000000000", - "nonce": 0, + "nonce": "0", "code": "", "storage": {} } diff --git a/test/stTransactionTestFiller.json b/test/stTransactionTestFiller.json index cd42af795..878aed0d1 100644 --- a/test/stTransactionTestFiller.json +++ b/test/stTransactionTestFiller.json @@ -507,4 +507,300 @@ } }, + "TransactionMakeAccountBalanceOverflow" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "1000000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "1000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "100" + } + }, + + "TransactionMakeAccountNonceOverflow" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "1", + "currentGasLimit" : "1000000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "nonce" : "10000000", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "1000", + "gasPrice" : "1", + "nonce" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "nonce" : "10000000", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "100" + } + }, + + "UserTransactionZeroCost" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "1000000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "5100", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "900" + } + }, + + "UserTransactionGasLimitIsTooLowWhenZeroCost" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "1000000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "12", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "900" + } + }, + + "UserTransactionZeroCostWithData" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "1000000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "3000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "0x3240349548983454", + "gasLimit" : "500", + "gasPrice" : "0", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "900" + } + }, + + "HighGasLimit" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "0x3240349548983454", + "gasLimit" : "2**200", + "gasLimit" : "1606938044258990275541962092341162602522202993782792835301376", + "gasPrice" : "2**56-1", + "gasPrice" : "72057594037927935", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "900" + } + }, + + "OverflowGasRequire" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "0x3240349548983454", + "gasLimit" : "2**200", + "gasLimit" : "1606938044258990275541962092341162602522202993782792835301376", + "gasPrice" : "(2**56)*10", + "gasPrice" : "720575940379279360", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "900" + } + }, + + "RefundOverflow" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "400", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "(2**256+400)/20", + "gasLimit" : "5789604461865809771178549250434395392663499233282028201972879200395656482016", + "gasPrice" : "20", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : "" + } + }, + + "TransactionToAddressh160minusOne" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "100000", + "currentNumber" : "0", + "currentTimestamp" : 1, + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "100000", + "code" : "", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : + { + "data" : "", + "gasLimit" : "1000", + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0xffffffffffffffffffffffffffffffffffffffff", + "value" : "100" + } + } } diff --git a/test/vmArithmeticTestFiller.json b/test/vmArithmeticTestFiller.json index 9e8b3f61c..329e2e507 100644 --- a/test/vmArithmeticTestFiller.json +++ b/test/vmArithmeticTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x00", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ 115792089237316195423570985008687907853269984665640564039457584007913129639935 4) }", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ 115792089237316195423570985008687907853269984665640564039457584007913129639936 1) }", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ 0 0) }", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ 1 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -174,13 +174,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 2 3) }", "storage": {} } @@ -203,13 +203,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -231,13 +231,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 0 23) }", "storage": {} } @@ -259,13 +259,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 23 1) }", "storage": {} } @@ -287,13 +287,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 0x8000000000000000000000000000000000000000000000000000000000000000 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -315,13 +315,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 0x8000000000000000000000000000000000000000000000000000000000000000 0x8000000000000000000000000000000000000000000000000000000000000000) }", "storage": {} } @@ -343,13 +343,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (* 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -372,13 +372,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (- 23 1) }", "storage": {} } @@ -400,13 +400,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (- 2 3) }", "storage": {} } @@ -428,13 +428,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (- 0 23) }", "storage": {} } @@ -456,13 +456,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (- 0 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -484,13 +484,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (- 115792089237316195423570985008687907853269984665640564039457584007913129639935 0) }", "storage": {} } @@ -512,13 +512,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (/ 2 0) }", "storage": {} } @@ -540,13 +540,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (/ 5 2) }", "storage": {} } @@ -568,13 +568,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (/ 23 24) }", "storage": {} } @@ -596,13 +596,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (/ 0 24) }", "storage": {} } @@ -624,13 +624,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (/ 1 1) }", "storage": {} } @@ -652,13 +652,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV (- 0 3) (- 0 0)) }", "storage": {} } @@ -680,13 +680,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV (- 0 115792089237316195423570985008687907853269984665640564039457584007913129639935) 0) }", "storage": {} } @@ -708,13 +708,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV (- 0 115792089237316195423570985008687907853269984665640564039457584007913129639935) 115792089237316195423570985008687907853269984665640564039457584007913129639935) }", "storage": {} } @@ -736,13 +736,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV 115792089237316195423570985008687907853269984665640564039457584007913129639935 (- 0 115792089237316195423570985008687907853269984665640564039457584007913129639935) ) }", "storage": {} } @@ -764,13 +764,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV (- 0 2) (- 0 4) ) }", "storage": {} } @@ -792,13 +792,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV 4 (- 0 2) ) }", "storage": {} } @@ -820,13 +820,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV 5 (- 0 4) ) }", "storage": {} } @@ -848,13 +848,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SDIV (- 0 57896044618658097711785492504343953926634992332820282019728792003956564819967) (- 0 1) ) }", "storage": {} } @@ -876,13 +876,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (% 2 3 ) }", "storage": {} } @@ -904,13 +904,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (% 115792089237316195423570985008687907853269984665640564039457584007913129639935 2 ) }", "storage": {} } @@ -932,13 +932,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (% 0 115792089237316195423570985008687907853269984665640564039457584007913129639935 ) }", "storage": {} } @@ -960,13 +960,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (% 3 0) }", "storage": {} } @@ -988,13 +988,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (% (- 0 2) 3) }", "storage": {} } @@ -1016,13 +1016,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SMOD (- 0 5) (- 0 3))}", "storage": {} } @@ -1044,13 +1044,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SMOD 5 (- 0 3))}", "storage": {} } @@ -1072,13 +1072,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SMOD (- 0 5) 3)}", "storage": {} } @@ -1100,13 +1100,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SMOD (- 0 2) 115792089237316195423570985008687907853269984665640564039457584007913129639935)}", "storage": {} } @@ -1128,13 +1128,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SMOD (- 0 2) 0)}", "storage": {} } @@ -1156,13 +1156,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD 1 2 2) } ", "storage": {} } @@ -1184,13 +1184,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD (- 0 1) (- 0 2) 2) } ", "storage": {} } @@ -1212,13 +1212,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD (- 0 6) 1 3) } ", "storage": {} } @@ -1240,13 +1240,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (SMOD (- 0 5) 3) (ADDMOD (- 0 6) 1 3) ) } ", "storage": {} } @@ -1268,13 +1268,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{[[ 0 ]] (EQ (MOD (- 0 5) 3) (ADDMOD (- 0 6) 1 3) ) }", "storage": {} } @@ -1296,13 +1296,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD 4 1 (- 0 3) )} ", "storage": {} } @@ -1324,13 +1324,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (ADDMOD 4 1 (- 0 3) ) 2 ) } ", "storage": {} } @@ -1352,13 +1352,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD 4 1 0) } ", "storage": {} } @@ -1380,13 +1380,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD 0 1 0) } ", "storage": {} } @@ -1408,13 +1408,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDMOD 1 0 0) } ", "storage": {} } @@ -1437,13 +1437,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD 1 2 2) } ", "storage": {} } @@ -1465,13 +1465,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD (- 0 1) (- 0 2) 3) } ", "storage": {} } @@ -1493,13 +1493,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD (- 0 5) 1 3) } ", "storage": {} } @@ -1521,13 +1521,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (SMOD (- 0 5) 3) (MULMOD (- 0 5) 1 3) ) } ", "storage": {} } @@ -1549,13 +1549,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{[[ 0 ]] (EQ (MOD (- 0 5) 3) (MULMOD (- 0 5) 1 3) ) }", "storage": {} } @@ -1577,13 +1577,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD 5 1 (- 0 3) )} ", "storage": {} } @@ -1605,13 +1605,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (MULMOD 5 1 (- 0 3) ) 2 )} ", "storage": {} } @@ -1633,13 +1633,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD 5 1 0) } ", "storage": {} } @@ -1661,13 +1661,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD 0 1 0) } ", "storage": {} } @@ -1689,13 +1689,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (MULMOD 1 0 0) } ", "storage": {} } @@ -1718,13 +1718,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 2)}", "storage": {} } @@ -1746,13 +1746,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639934 )}", "storage": {} } @@ -1774,13 +1774,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2147483647 2147483647)}", "storage": {} } @@ -1802,13 +1802,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 0 2147483647)}", "storage": {} } @@ -1830,13 +1830,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2147483647 0)}", "storage": {} } @@ -1858,13 +1858,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 257 1)}", "storage": {} } @@ -1886,13 +1886,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 1 257)}", "storage": {} } @@ -1914,13 +1914,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 257)}", "storage": {} } @@ -1942,13 +1942,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 2) [[ 1 ]] (EXP 2 1) [[ 2 ]] (EXP 2 3) }", "storage": {} } @@ -1970,13 +1970,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 4) [[ 1 ]] (EXP 2 3) [[ 2 ]] (EXP 2 5) }", "storage": {} } @@ -1998,13 +1998,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 8) [[ 1 ]] (EXP 2 7) [[ 2 ]] (EXP 2 9) }", "storage": {} } @@ -2026,13 +2026,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 16) [[ 1 ]] (EXP 2 15) [[ 2 ]] (EXP 2 17) }", "storage": {} } @@ -2054,13 +2054,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 32) [[ 1 ]] (EXP 2 31) [[ 2 ]] (EXP 2 33) }", "storage": {} } @@ -2082,13 +2082,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 64) [[ 1 ]] (EXP 2 63) [[ 2 ]] (EXP 2 65) }", "storage": {} } @@ -2110,13 +2110,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 128) [[ 1 ]] (EXP 2 127) [[ 2 ]] (EXP 2 129) }", "storage": {} } @@ -2138,13 +2138,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 2 256) [[ 1 ]] (EXP 2 255) [[ 2 ]] (EXP 2 257) }", "storage": {} } @@ -2166,13 +2166,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 1) [[ 1 ]] (EXP 255 1) [[ 2 ]] (EXP 257 1) }", "storage": {} } @@ -2194,13 +2194,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 2) [[ 1 ]] (EXP 255 2) [[ 2 ]] (EXP 257 2) }", "storage": {} } @@ -2222,13 +2222,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 3) [[ 1 ]] (EXP 255 3) [[ 2 ]] (EXP 257 3) }", "storage": {} } @@ -2250,13 +2250,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 4) [[ 1 ]] (EXP 255 4) [[ 2 ]] (EXP 257 4) }", "storage": {} } @@ -2278,13 +2278,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 5) [[ 1 ]] (EXP 255 5) [[ 2 ]] (EXP 257 5) }", "storage": {} } @@ -2306,13 +2306,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 6) [[ 1 ]] (EXP 255 6) [[ 2 ]] (EXP 257 6) }", "storage": {} } @@ -2334,13 +2334,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 7) [[ 1 ]] (EXP 255 7) [[ 2 ]] (EXP 257 7) }", "storage": {} } @@ -2362,13 +2362,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 8) [[ 1 ]] (EXP 255 8) [[ 2 ]] (EXP 257 8) }", "storage": {} } @@ -2390,13 +2390,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 9) [[ 1 ]] (EXP 255 9) [[ 2 ]] (EXP 257 9) }", "storage": {} } @@ -2418,13 +2418,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 10) [[ 1 ]] (EXP 255 10) [[ 2 ]] (EXP 257 10) }", "storage": {} } @@ -2446,13 +2446,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 11) [[ 1 ]] (EXP 255 11) [[ 2 ]] (EXP 257 11) }", "storage": {} } @@ -2474,13 +2474,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 12) [[ 1 ]] (EXP 255 12) [[ 2 ]] (EXP 257 12) }", "storage": {} } @@ -2502,13 +2502,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 13) [[ 1 ]] (EXP 255 13) [[ 2 ]] (EXP 257 13) }", "storage": {} } @@ -2530,13 +2530,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 14) [[ 1 ]] (EXP 255 14) [[ 2 ]] (EXP 257 14) }", "storage": {} } @@ -2558,13 +2558,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 15) [[ 1 ]] (EXP 255 15) [[ 2 ]] (EXP 257 15) }", "storage": {} } @@ -2586,13 +2586,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 16) [[ 1 ]] (EXP 255 16) [[ 2 ]] (EXP 257 16) }", "storage": {} } @@ -2614,13 +2614,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 17) [[ 1 ]] (EXP 255 17) [[ 2 ]] (EXP 257 17) }", "storage": {} } @@ -2642,13 +2642,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 18) [[ 1 ]] (EXP 255 18) [[ 2 ]] (EXP 257 18) }", "storage": {} } @@ -2670,13 +2670,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 19) [[ 1 ]] (EXP 255 19) [[ 2 ]] (EXP 257 19) }", "storage": {} } @@ -2698,13 +2698,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 20) [[ 1 ]] (EXP 255 20) [[ 2 ]] (EXP 257 20) }", "storage": {} } @@ -2726,13 +2726,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 21) [[ 1 ]] (EXP 255 21) [[ 2 ]] (EXP 257 21) }", "storage": {} } @@ -2754,13 +2754,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 22) [[ 1 ]] (EXP 255 22) [[ 2 ]] (EXP 257 22) }", "storage": {} } @@ -2782,13 +2782,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 23) [[ 1 ]] (EXP 255 23) [[ 2 ]] (EXP 257 23) }", "storage": {} } @@ -2810,13 +2810,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 24) [[ 1 ]] (EXP 255 24) [[ 2 ]] (EXP 257 24) }", "storage": {} } @@ -2838,13 +2838,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 25) [[ 1 ]] (EXP 255 25) [[ 2 ]] (EXP 257 25) }", "storage": {} } @@ -2866,13 +2866,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 26) [[ 1 ]] (EXP 255 26) [[ 2 ]] (EXP 257 26) }", "storage": {} } @@ -2894,13 +2894,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 27) [[ 1 ]] (EXP 255 27) [[ 2 ]] (EXP 257 27) }", "storage": {} } @@ -2922,13 +2922,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 28) [[ 1 ]] (EXP 255 28) [[ 2 ]] (EXP 257 28) }", "storage": {} } @@ -2950,13 +2950,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 29) [[ 1 ]] (EXP 255 29) [[ 2 ]] (EXP 257 29) }", "storage": {} } @@ -2978,13 +2978,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 30) [[ 1 ]] (EXP 255 30) [[ 2 ]] (EXP 257 30) }", "storage": {} } @@ -3006,13 +3006,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 31) [[ 1 ]] (EXP 255 31) [[ 2 ]] (EXP 257 31) }", "storage": {} } @@ -3034,13 +3034,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 32) [[ 1 ]] (EXP 255 32) [[ 2 ]] (EXP 257 32) }", "storage": {} } @@ -3062,13 +3062,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 33) [[ 1 ]] (EXP 255 33) [[ 2 ]] (EXP 257 33) }", "storage": {} } @@ -3090,13 +3090,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 0)) [[ 1 ]] (EXP 256 (EXP 255 0)) [[ 2 ]] (EXP 256 (EXP 257 0)) [[ 3 ]] (EXP 255 (EXP 256 0)) [[ 4 ]] (EXP 255 (EXP 255 0)) [[ 5 ]] (EXP 255 (EXP 257 0)) [[ 6 ]] (EXP 257 (EXP 256 0)) [[ 7 ]] (EXP 257 (EXP 255 0)) [[ 8 ]] (EXP 257 (EXP 257 0)) }", "storage": {} } @@ -3118,13 +3118,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 1)) [[ 1 ]] (EXP 256 (EXP 255 1)) [[ 2 ]] (EXP 256 (EXP 257 1)) [[ 3 ]] (EXP 255 (EXP 256 1)) [[ 4 ]] (EXP 255 (EXP 255 1)) [[ 5 ]] (EXP 255 (EXP 257 1)) [[ 6 ]] (EXP 257 (EXP 256 1)) [[ 7 ]] (EXP 257 (EXP 255 1)) [[ 8 ]] (EXP 257 (EXP 257 1)) }", "storage": {} } @@ -3146,13 +3146,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 2)) [[ 1 ]] (EXP 256 (EXP 255 2)) [[ 2 ]] (EXP 256 (EXP 257 2)) [[ 3 ]] (EXP 255 (EXP 256 2)) [[ 4 ]] (EXP 255 (EXP 255 2)) [[ 5 ]] (EXP 255 (EXP 257 2)) [[ 6 ]] (EXP 257 (EXP 256 2)) [[ 7 ]] (EXP 257 (EXP 255 2)) [[ 8 ]] (EXP 257 (EXP 257 2)) }", "storage": {} } @@ -3174,13 +3174,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 3)) [[ 1 ]] (EXP 256 (EXP 255 3)) [[ 2 ]] (EXP 256 (EXP 257 3)) [[ 3 ]] (EXP 255 (EXP 256 3)) [[ 4 ]] (EXP 255 (EXP 255 3)) [[ 5 ]] (EXP 255 (EXP 257 3)) [[ 6 ]] (EXP 257 (EXP 256 3)) [[ 7 ]] (EXP 257 (EXP 255 3)) [[ 8 ]] (EXP 257 (EXP 257 3)) }", "storage": {} } @@ -3202,13 +3202,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 4)) [[ 1 ]] (EXP 256 (EXP 255 4)) [[ 2 ]] (EXP 256 (EXP 257 4)) [[ 3 ]] (EXP 255 (EXP 256 4)) [[ 4 ]] (EXP 255 (EXP 255 4)) [[ 5 ]] (EXP 255 (EXP 257 4)) [[ 6 ]] (EXP 257 (EXP 256 4)) [[ 7 ]] (EXP 257 (EXP 255 4)) [[ 8 ]] (EXP 257 (EXP 257 4)) }", "storage": {} } @@ -3230,13 +3230,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 5)) [[ 1 ]] (EXP 256 (EXP 255 5)) [[ 2 ]] (EXP 256 (EXP 257 5)) [[ 3 ]] (EXP 255 (EXP 256 5)) [[ 4 ]] (EXP 255 (EXP 255 5)) [[ 5 ]] (EXP 255 (EXP 257 5)) [[ 6 ]] (EXP 257 (EXP 256 5)) [[ 7 ]] (EXP 257 (EXP 255 5)) [[ 8 ]] (EXP 257 (EXP 257 5)) }", "storage": {} } @@ -3258,13 +3258,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 6)) [[ 1 ]] (EXP 256 (EXP 255 6)) [[ 2 ]] (EXP 256 (EXP 257 6)) [[ 3 ]] (EXP 255 (EXP 256 6)) [[ 4 ]] (EXP 255 (EXP 255 6)) [[ 5 ]] (EXP 255 (EXP 257 6)) [[ 6 ]] (EXP 257 (EXP 256 6)) [[ 7 ]] (EXP 257 (EXP 255 6)) [[ 8 ]] (EXP 257 (EXP 257 6)) }", "storage": {} } @@ -3286,13 +3286,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 7)) [[ 1 ]] (EXP 256 (EXP 255 7)) [[ 2 ]] (EXP 256 (EXP 257 7)) [[ 3 ]] (EXP 255 (EXP 256 7)) [[ 4 ]] (EXP 255 (EXP 255 7)) [[ 5 ]] (EXP 255 (EXP 257 7)) [[ 6 ]] (EXP 257 (EXP 256 7)) [[ 7 ]] (EXP 257 (EXP 255 7)) [[ 8 ]] (EXP 257 (EXP 257 7)) }", "storage": {} } @@ -3314,13 +3314,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 8)) [[ 1 ]] (EXP 256 (EXP 255 8)) [[ 2 ]] (EXP 256 (EXP 257 8)) [[ 3 ]] (EXP 255 (EXP 256 8)) [[ 4 ]] (EXP 255 (EXP 255 8)) [[ 5 ]] (EXP 255 (EXP 257 8)) [[ 6 ]] (EXP 257 (EXP 256 8)) [[ 7 ]] (EXP 257 (EXP 255 8)) [[ 8 ]] (EXP 257 (EXP 257 8)) }", "storage": {} } @@ -3342,13 +3342,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 9)) [[ 1 ]] (EXP 256 (EXP 255 9)) [[ 2 ]] (EXP 256 (EXP 257 9)) [[ 3 ]] (EXP 255 (EXP 256 9)) [[ 4 ]] (EXP 255 (EXP 255 9)) [[ 5 ]] (EXP 255 (EXP 257 9)) [[ 6 ]] (EXP 257 (EXP 256 9)) [[ 7 ]] (EXP 257 (EXP 255 9)) [[ 8 ]] (EXP 257 (EXP 257 9)) }", "storage": {} } @@ -3370,13 +3370,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 10)) [[ 1 ]] (EXP 256 (EXP 255 10)) [[ 2 ]] (EXP 256 (EXP 257 10)) [[ 3 ]] (EXP 255 (EXP 256 10)) [[ 4 ]] (EXP 255 (EXP 255 10)) [[ 5 ]] (EXP 255 (EXP 257 10)) [[ 6 ]] (EXP 257 (EXP 256 10)) [[ 7 ]] (EXP 257 (EXP 255 10)) [[ 8 ]] (EXP 257 (EXP 257 10)) }", "storage": {} } @@ -3398,13 +3398,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 11)) [[ 1 ]] (EXP 256 (EXP 255 11)) [[ 2 ]] (EXP 256 (EXP 257 11)) [[ 3 ]] (EXP 255 (EXP 256 11)) [[ 4 ]] (EXP 255 (EXP 255 11)) [[ 5 ]] (EXP 255 (EXP 257 11)) [[ 6 ]] (EXP 257 (EXP 256 11)) [[ 7 ]] (EXP 257 (EXP 255 11)) [[ 8 ]] (EXP 257 (EXP 257 11)) }", "storage": {} } @@ -3426,13 +3426,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 12)) [[ 1 ]] (EXP 256 (EXP 255 12)) [[ 2 ]] (EXP 256 (EXP 257 12)) [[ 3 ]] (EXP 255 (EXP 256 12)) [[ 4 ]] (EXP 255 (EXP 255 12)) [[ 5 ]] (EXP 255 (EXP 257 12)) [[ 6 ]] (EXP 257 (EXP 256 12)) [[ 7 ]] (EXP 257 (EXP 255 12)) [[ 8 ]] (EXP 257 (EXP 257 12)) }", "storage": {} } @@ -3454,13 +3454,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 13)) [[ 1 ]] (EXP 256 (EXP 255 13)) [[ 2 ]] (EXP 256 (EXP 257 13)) [[ 3 ]] (EXP 255 (EXP 256 13)) [[ 4 ]] (EXP 255 (EXP 255 13)) [[ 5 ]] (EXP 255 (EXP 257 13)) [[ 6 ]] (EXP 257 (EXP 256 13)) [[ 7 ]] (EXP 257 (EXP 255 13)) [[ 8 ]] (EXP 257 (EXP 257 13)) }", "storage": {} } @@ -3482,13 +3482,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 14)) [[ 1 ]] (EXP 256 (EXP 255 14)) [[ 2 ]] (EXP 256 (EXP 257 14)) [[ 3 ]] (EXP 255 (EXP 256 14)) [[ 4 ]] (EXP 255 (EXP 255 14)) [[ 5 ]] (EXP 255 (EXP 257 14)) [[ 6 ]] (EXP 257 (EXP 256 14)) [[ 7 ]] (EXP 257 (EXP 255 14)) [[ 8 ]] (EXP 257 (EXP 257 14)) }", "storage": {} } @@ -3510,13 +3510,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 15)) [[ 1 ]] (EXP 256 (EXP 255 15)) [[ 2 ]] (EXP 256 (EXP 257 15)) [[ 3 ]] (EXP 255 (EXP 256 15)) [[ 4 ]] (EXP 255 (EXP 255 15)) [[ 5 ]] (EXP 255 (EXP 257 15)) [[ 6 ]] (EXP 257 (EXP 256 15)) [[ 7 ]] (EXP 257 (EXP 255 15)) [[ 8 ]] (EXP 257 (EXP 257 15)) }", "storage": {} } @@ -3538,13 +3538,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 16)) [[ 1 ]] (EXP 256 (EXP 255 16)) [[ 2 ]] (EXP 256 (EXP 257 16)) [[ 3 ]] (EXP 255 (EXP 256 16)) [[ 4 ]] (EXP 255 (EXP 255 16)) [[ 5 ]] (EXP 255 (EXP 257 16)) [[ 6 ]] (EXP 257 (EXP 256 16)) [[ 7 ]] (EXP 257 (EXP 255 16)) [[ 8 ]] (EXP 257 (EXP 257 16)) }", "storage": {} } @@ -3566,13 +3566,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 17)) [[ 1 ]] (EXP 256 (EXP 255 17)) [[ 2 ]] (EXP 256 (EXP 257 17)) [[ 3 ]] (EXP 255 (EXP 256 17)) [[ 4 ]] (EXP 255 (EXP 255 17)) [[ 5 ]] (EXP 255 (EXP 257 17)) [[ 6 ]] (EXP 257 (EXP 256 17)) [[ 7 ]] (EXP 257 (EXP 255 17)) [[ 8 ]] (EXP 257 (EXP 257 17)) }", "storage": {} } @@ -3594,13 +3594,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 18)) [[ 1 ]] (EXP 256 (EXP 255 18)) [[ 2 ]] (EXP 256 (EXP 257 18)) [[ 3 ]] (EXP 255 (EXP 256 18)) [[ 4 ]] (EXP 255 (EXP 255 18)) [[ 5 ]] (EXP 255 (EXP 257 18)) [[ 6 ]] (EXP 257 (EXP 256 18)) [[ 7 ]] (EXP 257 (EXP 255 18)) [[ 8 ]] (EXP 257 (EXP 257 18)) }", "storage": {} } @@ -3622,13 +3622,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 19)) [[ 1 ]] (EXP 256 (EXP 255 19)) [[ 2 ]] (EXP 256 (EXP 257 19)) [[ 3 ]] (EXP 255 (EXP 256 19)) [[ 4 ]] (EXP 255 (EXP 255 19)) [[ 5 ]] (EXP 255 (EXP 257 19)) [[ 6 ]] (EXP 257 (EXP 256 19)) [[ 7 ]] (EXP 257 (EXP 255 19)) [[ 8 ]] (EXP 257 (EXP 257 19)) }", "storage": {} } @@ -3650,13 +3650,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 20)) [[ 1 ]] (EXP 256 (EXP 255 20)) [[ 2 ]] (EXP 256 (EXP 257 20)) [[ 3 ]] (EXP 255 (EXP 256 20)) [[ 4 ]] (EXP 255 (EXP 255 20)) [[ 5 ]] (EXP 255 (EXP 257 20)) [[ 6 ]] (EXP 257 (EXP 256 20)) [[ 7 ]] (EXP 257 (EXP 255 20)) [[ 8 ]] (EXP 257 (EXP 257 20)) }", "storage": {} } @@ -3678,13 +3678,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 21)) [[ 1 ]] (EXP 256 (EXP 255 21)) [[ 2 ]] (EXP 256 (EXP 257 21)) [[ 3 ]] (EXP 255 (EXP 256 21)) [[ 4 ]] (EXP 255 (EXP 255 21)) [[ 5 ]] (EXP 255 (EXP 257 21)) [[ 6 ]] (EXP 257 (EXP 256 21)) [[ 7 ]] (EXP 257 (EXP 255 21)) [[ 8 ]] (EXP 257 (EXP 257 21)) }", "storage": {} } @@ -3706,13 +3706,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 22)) [[ 1 ]] (EXP 256 (EXP 255 22)) [[ 2 ]] (EXP 256 (EXP 257 22)) [[ 3 ]] (EXP 255 (EXP 256 22)) [[ 4 ]] (EXP 255 (EXP 255 22)) [[ 5 ]] (EXP 255 (EXP 257 22)) [[ 6 ]] (EXP 257 (EXP 256 22)) [[ 7 ]] (EXP 257 (EXP 255 22)) [[ 8 ]] (EXP 257 (EXP 257 22)) }", "storage": {} } @@ -3734,13 +3734,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 23)) [[ 1 ]] (EXP 256 (EXP 255 23)) [[ 2 ]] (EXP 256 (EXP 257 23)) [[ 3 ]] (EXP 255 (EXP 256 23)) [[ 4 ]] (EXP 255 (EXP 255 23)) [[ 5 ]] (EXP 255 (EXP 257 23)) [[ 6 ]] (EXP 257 (EXP 256 23)) [[ 7 ]] (EXP 257 (EXP 255 23)) [[ 8 ]] (EXP 257 (EXP 257 23)) }", "storage": {} } @@ -3762,13 +3762,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 24)) [[ 1 ]] (EXP 256 (EXP 255 24)) [[ 2 ]] (EXP 256 (EXP 257 24)) [[ 3 ]] (EXP 255 (EXP 256 24)) [[ 4 ]] (EXP 255 (EXP 255 24)) [[ 5 ]] (EXP 255 (EXP 257 24)) [[ 6 ]] (EXP 257 (EXP 256 24)) [[ 7 ]] (EXP 257 (EXP 255 24)) [[ 8 ]] (EXP 257 (EXP 257 24)) }", "storage": {} } @@ -3790,13 +3790,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 25)) [[ 1 ]] (EXP 256 (EXP 255 25)) [[ 2 ]] (EXP 256 (EXP 257 25)) [[ 3 ]] (EXP 255 (EXP 256 25)) [[ 4 ]] (EXP 255 (EXP 255 25)) [[ 5 ]] (EXP 255 (EXP 257 25)) [[ 6 ]] (EXP 257 (EXP 256 25)) [[ 7 ]] (EXP 257 (EXP 255 25)) [[ 8 ]] (EXP 257 (EXP 257 25)) }", "storage": {} } @@ -3818,13 +3818,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 26)) [[ 1 ]] (EXP 256 (EXP 255 26)) [[ 2 ]] (EXP 256 (EXP 257 26)) [[ 3 ]] (EXP 255 (EXP 256 26)) [[ 4 ]] (EXP 255 (EXP 255 26)) [[ 5 ]] (EXP 255 (EXP 257 26)) [[ 6 ]] (EXP 257 (EXP 256 26)) [[ 7 ]] (EXP 257 (EXP 255 26)) [[ 8 ]] (EXP 257 (EXP 257 26)) }", "storage": {} } @@ -3846,13 +3846,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 27)) [[ 1 ]] (EXP 256 (EXP 255 27)) [[ 2 ]] (EXP 256 (EXP 257 27)) [[ 3 ]] (EXP 255 (EXP 256 27)) [[ 4 ]] (EXP 255 (EXP 255 27)) [[ 5 ]] (EXP 255 (EXP 257 27)) [[ 6 ]] (EXP 257 (EXP 256 27)) [[ 7 ]] (EXP 257 (EXP 255 27)) [[ 8 ]] (EXP 257 (EXP 257 27)) }", "storage": {} } @@ -3874,13 +3874,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 28)) [[ 1 ]] (EXP 256 (EXP 255 28)) [[ 2 ]] (EXP 256 (EXP 257 28)) [[ 3 ]] (EXP 255 (EXP 256 28)) [[ 4 ]] (EXP 255 (EXP 255 28)) [[ 5 ]] (EXP 255 (EXP 257 28)) [[ 6 ]] (EXP 257 (EXP 256 28)) [[ 7 ]] (EXP 257 (EXP 255 28)) [[ 8 ]] (EXP 257 (EXP 257 28)) }", "storage": {} } @@ -3902,13 +3902,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 29)) [[ 1 ]] (EXP 256 (EXP 255 29)) [[ 2 ]] (EXP 256 (EXP 257 29)) [[ 3 ]] (EXP 255 (EXP 256 29)) [[ 4 ]] (EXP 255 (EXP 255 29)) [[ 5 ]] (EXP 255 (EXP 257 29)) [[ 6 ]] (EXP 257 (EXP 256 29)) [[ 7 ]] (EXP 257 (EXP 255 29)) [[ 8 ]] (EXP 257 (EXP 257 29)) }", "storage": {} } @@ -3930,13 +3930,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 30)) [[ 1 ]] (EXP 256 (EXP 255 30)) [[ 2 ]] (EXP 256 (EXP 257 30)) [[ 3 ]] (EXP 255 (EXP 256 30)) [[ 4 ]] (EXP 255 (EXP 255 30)) [[ 5 ]] (EXP 255 (EXP 257 30)) [[ 6 ]] (EXP 257 (EXP 256 30)) [[ 7 ]] (EXP 257 (EXP 255 30)) [[ 8 ]] (EXP 257 (EXP 257 30)) }", "storage": {} } @@ -3958,13 +3958,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 31)) [[ 1 ]] (EXP 256 (EXP 255 31)) [[ 2 ]] (EXP 256 (EXP 257 31)) [[ 3 ]] (EXP 255 (EXP 256 31)) [[ 4 ]] (EXP 255 (EXP 255 31)) [[ 5 ]] (EXP 255 (EXP 257 31)) [[ 6 ]] (EXP 257 (EXP 256 31)) [[ 7 ]] (EXP 257 (EXP 255 31)) [[ 8 ]] (EXP 257 (EXP 257 31)) }", "storage": {} } @@ -3986,13 +3986,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 32)) [[ 1 ]] (EXP 256 (EXP 255 32)) [[ 2 ]] (EXP 256 (EXP 257 32)) [[ 3 ]] (EXP 255 (EXP 256 32)) [[ 4 ]] (EXP 255 (EXP 255 32)) [[ 5 ]] (EXP 255 (EXP 257 32)) [[ 6 ]] (EXP 257 (EXP 256 32)) [[ 7 ]] (EXP 257 (EXP 255 32)) [[ 8 ]] (EXP 257 (EXP 257 32)) }", "storage": {} } @@ -4014,13 +4014,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXP 256 (EXP 256 33)) [[ 1 ]] (EXP 256 (EXP 255 33)) [[ 2 ]] (EXP 256 (EXP 257 33)) [[ 3 ]] (EXP 255 (EXP 256 33)) [[ 4 ]] (EXP 255 (EXP 255 33)) [[ 5 ]] (EXP 255 (EXP 257 33)) [[ 6 ]] (EXP 257 (EXP 256 33)) [[ 7 ]] (EXP 257 (EXP 255 33)) [[ 8 ]] (EXP 257 (EXP 257 33)) }", "storage": {} } @@ -4042,13 +4042,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x62122ff460000b600055", "storage": {} } @@ -4070,13 +4070,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x62122f6a60000b600055", "storage": {} } @@ -4098,13 +4098,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6212faf460010b600055", "storage": {} } @@ -4126,13 +4126,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x62126af460010b600055", "storage": {} } @@ -4154,13 +4154,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x62126af460500b600055", "storage": {} } @@ -4182,13 +4182,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SIGNEXTEND 0 0) } ", "storage": {} } @@ -4210,13 +4210,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SIGNEXTEND 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) } ", "storage": {} } @@ -4238,13 +4238,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SIGNEXTEND 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -4266,13 +4266,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SIGNEXTEND 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -4294,13 +4294,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SIGNEXTEND 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe) } ", "storage": {} } @@ -4322,13 +4322,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x66f000000000000161ffff0b600055", "storage": {} } @@ -4350,13 +4350,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60ff68f000000000000000010b600055", "storage": {} } diff --git a/test/vmBitwiseLogicOperationTestFiller.json b/test/vmBitwiseLogicOperationTestFiller.json index d0956e261..8954dca1e 100644 --- a/test/vmBitwiseLogicOperationTestFiller.json +++ b/test/vmBitwiseLogicOperationTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (LT (- 0 2) 0 )}", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (LT 0 (- 0 2) )}", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (LT 115792089237316195423570985008687907853269984665640564039457584007913129639935 0 )}", "storage": {} } @@ -90,13 +90,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (LT 0 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -118,13 +118,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] ( GT (- 0 2) 0 )}", "storage": {} } @@ -146,13 +146,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (GT 0 (- 0 2) )}", "storage": {} } @@ -174,13 +174,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (GT 115792089237316195423570985008687907853269984665640564039457584007913129639935 0 )}", "storage": {} } @@ -203,13 +203,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (GT 0 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -231,13 +231,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SLT (- 0 2) 0 )}", "storage": {} } @@ -259,13 +259,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SLT 0 (- 0 2) )}", "storage": {} } @@ -287,13 +287,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SLT 115792089237316195423570985008687907853269984665640564039457584007913129639935 0 )}", "storage": {} } @@ -316,13 +316,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SLT 0 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -344,13 +344,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SLT (- 0 5) (- 0 3) )}", "storage": {} } @@ -372,13 +372,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SGT (- 0 2) 0 )}", "storage": {} } @@ -400,13 +400,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SGT 0 (- 0 2) )}", "storage": {} } @@ -428,13 +428,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SGT 115792089237316195423570985008687907853269984665640564039457584007913129639935 0 )}", "storage": {} } @@ -457,13 +457,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SGT 0 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -485,13 +485,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SGT (- 0 5) (- 0 3) )}", "storage": {} } @@ -513,13 +513,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (- 0 5) (- 0 3) )}", "storage": {} } @@ -541,13 +541,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ 0 0)}", "storage": {} } @@ -569,13 +569,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ 115792089237316195423570985008687907853269984665640564039457584007913129639935 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -597,13 +597,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ISZERO 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -625,13 +625,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ISZERO 0 )}", "storage": {} } @@ -652,13 +652,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ISZERO (- 0 2) )}", "storage": {} } @@ -680,13 +680,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 2 2) }", "storage": {} } @@ -708,13 +708,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 2 1) }", "storage": {} } @@ -736,13 +736,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 3 1) }", "storage": {} } @@ -763,13 +763,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef) } ", "storage": {} } @@ -790,13 +790,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -818,13 +818,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (AND 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -846,13 +846,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 2 2) } ", "storage": {} } @@ -874,13 +874,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 2 1) } ", "storage": {} } @@ -902,13 +902,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 3 1) } ", "storage": {} } @@ -929,13 +929,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef) } ", "storage": {} } @@ -956,13 +956,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -984,13 +984,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (OR 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -1012,13 +1012,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 2 2) } ", "storage": {} } @@ -1040,13 +1040,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 2 1) } ", "storage": {} } @@ -1068,13 +1068,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 3 1) } ", "storage": {} } @@ -1095,13 +1095,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef) } ", "storage": {} } @@ -1122,13 +1122,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -1150,13 +1150,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (XOR 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) } ", "storage": {} } @@ -1178,13 +1178,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT 0 )}", "storage": {} } @@ -1206,13 +1206,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT 2 )}", "storage": {} } @@ -1234,13 +1234,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT 115792089237316195423570985008687907853269984665640564039457584007913129639935 )}", "storage": {} } @@ -1262,13 +1262,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT (- 0 2) )}", "storage": {} } @@ -1290,13 +1290,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT (- 0 115792089237316195423570985008687907853269984665640564039457584007913129639935) )}", "storage": {} } @@ -1318,13 +1318,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NOT (- 0 0) )}", "storage": {} } @@ -1346,13 +1346,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 0) 0x8040201008040201 ) } ", "storage": {} } @@ -1373,13 +1373,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 1) 0x8040201008040201 ) } ", "storage": {} } @@ -1400,13 +1400,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 2) 0x8040201008040201 ) } ", "storage": {} } @@ -1428,13 +1428,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 3) 0x8040201008040201 ) } ", "storage": {} } @@ -1456,13 +1456,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 4) 0x8040201008040201 ) } ", "storage": {} } @@ -1484,13 +1484,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 5) 0x8040201008040201 ) } ", "storage": {} } @@ -1513,13 +1513,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 6) 0x8040201008040201 ) } ", "storage": {} } @@ -1541,13 +1541,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 7) 0x8040201008040201 ) } ", "storage": {} } @@ -1570,13 +1570,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (- 31 31) 0x8040201008040201 ) } ", "storage": {} } @@ -1598,13 +1598,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE (SDIV 31 32) 0x8040201008040201 ) } ", "storage": {} } @@ -1626,13 +1626,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0x8040201008040201 ) } ", "storage": {} } @@ -1654,13 +1654,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BYTE 0 0x8040201008040201) } ", "storage": {} } diff --git a/test/vmBlockInfoTestFiller.json b/test/vmBlockInfoTestFiller.json index 898629477..04cbec51c 100644 --- a/test/vmBlockInfoTestFiller.json +++ b/test/vmBlockInfoTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "1", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 2) }", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "1", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 1) }", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "258", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 1) }", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "257", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 0) }", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "257", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 1) [[ 1 ]] (BLOCKHASH 2) [[ 2 ]] (BLOCKHASH 256) }", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "257", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BLOCKHASH 0) [[ 1 ]] (BLOCKHASH 257) [[ 2 ]] (BLOCKHASH 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -173,13 +173,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (COINBASE) }", "storage": {} } @@ -201,13 +201,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (TIMESTAMP) }", "storage": {} } @@ -229,13 +229,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (NUMBER) }", "storage": {} } @@ -257,13 +257,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (DIFFICULTY) }", "storage": {} } @@ -285,13 +285,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (GASLIMIT) }", "storage": {} } diff --git a/test/vmEnvironmentalInfoTestFiller.json b/test/vmEnvironmentalInfoTestFiller.json index 43f4706cb..bca2c387a 100644 --- a/test/vmEnvironmentalInfoTestFiller.json +++ b/test/vmEnvironmentalInfoTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDRESS)}", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADDRESS)}", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0xcd1722f3947def4cf144679da39c4c32bdc35681 )}", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0xcd1722f3947def4cf144679da39c4c32bdc35681aa )}", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6aa )}", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0xaa0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 )}", "storage": {} } @@ -174,13 +174,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (BALANCE 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 )}", "storage": {} } @@ -202,13 +202,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (BALANCE 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6) (BALANCE (ADDRESS)))}", "storage": {} } @@ -231,13 +231,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (BALANCE 0xcd1722f3947def4cf144679da39c4c32bdc35681) (BALANCE (CALLER)))}", "storage": {} } @@ -259,13 +259,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ORIGIN)}", "storage": {} } @@ -287,13 +287,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLER)}", "storage": {} } @@ -316,13 +316,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLVALUE)}", "storage": {} } @@ -345,13 +345,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATALOAD 0)}", "storage": {} } @@ -373,13 +373,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATALOAD 1)}", "storage": {} } @@ -401,13 +401,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATALOAD 5)}", "storage": {} } @@ -429,13 +429,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATALOAD 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa)}", "storage": {} } @@ -457,13 +457,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATASIZE)}", "storage": {} } @@ -485,13 +485,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATASIZE)}", "storage": {} } @@ -513,13 +513,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CALLDATASIZE)}", "storage": {} } @@ -541,13 +541,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 1 2 ) [[ 0 ]] @0}", "storage": {} } @@ -569,13 +569,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 0 0 ) [[ 0 ]] @0}", "storage": {} } @@ -597,13 +597,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa 0xff ) [[ 0 ]] @0}", "storage": {} } @@ -625,13 +625,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa 9 ) [[ 0 ]] @0}", "storage": {} } @@ -653,13 +653,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 1 1 ) [[ 0 ]] @0}", "storage": {} } @@ -681,13 +681,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALLDATACOPY 0 1 0 ) [[ 0 ]] @0}", "storage": {} } @@ -709,13 +709,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CODESIZE)}", "storage": {} } @@ -737,13 +737,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CODECOPY 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa 8 ) [[ 0 ]] @0}", "storage": {} } @@ -765,13 +765,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CODECOPY 0 0 5 ) [[ 0 ]] @0 }", "storage": {} } @@ -793,13 +793,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CODECOPY 0 0 5 ) [[ 0 ]] @0 }", "storage": {} } @@ -821,13 +821,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CODECOPY 0 0 0 ) [[ 0 ]] @0 }", "storage": {} } @@ -849,13 +849,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (GASPRICE) }", "storage": {} } @@ -877,13 +877,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXTCODESIZE 0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6aa )}", "storage": {} } @@ -905,13 +905,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXTCODESIZE 0xaa0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6 )}", "storage": {} } @@ -934,19 +934,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (EXTCODESIZE (CALLER)) (CODESIZE) ) }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EQ (EXTCODESIZE (CALLER)) (CODESIZE) ) }", "storage": {} } @@ -967,19 +967,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (CODESIZE) }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (EXTCODESIZE (CALLER) ) }", "storage": {} } @@ -1001,13 +1001,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (EXTCODECOPY (ADDRESS) 0 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa 8 ) [[ 0 ]] @0}", "storage": {} } @@ -1029,19 +1029,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (EXTCODECOPY (CALLER) 0 0 0 ) ) [[ 0 ]] @0 }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] 5 }", "storage": {} } @@ -1064,19 +1064,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (EXTCODECOPY (CALLER) 0 0 (EXTCODESIZE (CALLER) ) ) [[ 0 ]] @0 }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] 5 }", "storage": {} } @@ -1098,19 +1098,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (EXTCODECOPY 0xaacd1722f3947def4cf144679da39c4c32bdc35681 0 0 (EXTCODESIZE (CALLER) ) ) [[ 0 ]] @0 }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] 5 }", "storage": {} } @@ -1132,19 +1132,19 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (EXTCODECOPY 0xcd1722f3947def4cf144679da39c4c32bdc35681aa 0 0 (EXTCODESIZE (CALLER) ) ) [[ 0 ]] @0 }", "storage": {} }, "cd1722f3947def4cf144679da39c4c32bdc35681" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] 5 }", "storage": {} } diff --git a/test/vmIOandFlowOperationsTestFiller.json b/test/vmIOandFlowOperationsTestFiller.json index a6c221716..e794fb2c9 100644 --- a/test/vmIOandFlowOperationsTestFiller.json +++ b/test/vmIOandFlowOperationsTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6002600360045055", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5060026003600455", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600260035155", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600260035255", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 23) [[ 1 ]] (MLOAD 0) } ", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{[[ 0 ]] (MLOAD 0) } ", "storage": {} } @@ -173,13 +173,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 1 23) [[ 1 ]] (MLOAD 0) } ", "storage": {} } @@ -201,13 +201,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 1 ]] (MLOAD 7489573) } ", "storage": {} } @@ -229,13 +229,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) [[ 1 ]] (MLOAD 1) } ", "storage": {} } @@ -257,13 +257,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 1 (+ 2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) ) [[ 1 ]] (MLOAD 1) } ", "storage": {} } @@ -285,13 +285,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff23 ) [[ 1 ]] (MLOAD 1) } ", "storage": {} } @@ -313,13 +313,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff23 ) [[ 1 ]] (MLOAD 1) } ", "storage": {} } @@ -341,13 +341,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ) [[ 1 ]] (MLOAD 1) } ", "storage": {} } @@ -369,13 +369,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 1 0xff) (MSTORE8 2 0xee) [[ 1 ]] (MLOAD 0) } ", "storage": {} } @@ -397,13 +397,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SSTORE 0 0xff) (SSTORE 10 0xee) [[ 20 ]] (SLOAD 0) } ", "storage": {} } @@ -425,13 +425,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SSTORE 0 0xff) (SSTORE 10 0xee) [[ 20 ]] (SLOAD 100) } ", "storage": {} } @@ -453,13 +453,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SSTORE 0 0xff) (SSTORE 1 0xee) (SSTORE 2 0xdd) [[ 10 ]] (SLOAD 1) [[ 20 ]] (SLOAD 2) } ", "storage": {} } @@ -481,13 +481,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6009565b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b", "storage": {} } @@ -509,13 +509,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6006560060015b6002600355", "storage": {} } @@ -537,13 +537,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60016008570060015b6002600355", "storage": {} } @@ -565,13 +565,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60055661eeff", "storage": {} } @@ -593,13 +593,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600456655b6001600155", "storage": {} } @@ -621,13 +621,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160075761eeff", "storage": {} } @@ -649,13 +649,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001600657655b6001600155", "storage": {} } @@ -677,13 +677,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5b600056", "storage": {} } @@ -705,13 +705,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x565b600056", "storage": {} } @@ -733,13 +733,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6002600401565b600360005260206000f3600656", "storage": {} } @@ -761,13 +761,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236007566001600255", "storage": {} } @@ -788,13 +788,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360075660015b600255", "storage": {} } @@ -816,13 +816,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236007566001600255", "storage": {} } @@ -844,13 +844,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360085660015b600255", "storage": {} } @@ -872,13 +872,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600a6008505660015b600255", "storage": {} } @@ -900,13 +900,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600b6008505660015b600255", "storage": {} } @@ -928,13 +928,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x620fffff620fffff0156", "storage": {} } @@ -956,13 +956,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360016009576001600255", "storage": {} } @@ -984,13 +984,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236001600a5760015b600255", "storage": {} } @@ -1012,13 +1012,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360006009576001600255", "storage": {} } @@ -1040,13 +1040,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff576002600355", "storage": {} } @@ -1068,13 +1068,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6008600101560060015b6002600355", "storage": {} } @@ -1096,13 +1096,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60016008600301570060015b6002600355", "storage": {} } @@ -1124,13 +1124,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60056003015661eeff", "storage": {} } @@ -1152,13 +1152,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600460030156655b6001600155", "storage": {} } @@ -1180,13 +1180,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160076003015761eeff", "storage": {} } @@ -1208,13 +1208,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001600660030157655b6001600155", "storage": {} } @@ -1236,13 +1236,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5b586000555960115758600052596000575b58600055", "storage": {} } @@ -1264,13 +1264,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5b600060000156", "storage": {} } @@ -1292,13 +1292,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236007600301566001600255", "storage": {} } @@ -1319,13 +1319,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360076003015660015b600255", "storage": {} } @@ -1347,13 +1347,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236007600301566001600255", "storage": {} } @@ -1375,13 +1375,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360086003015660015b600255", "storage": {} } @@ -1403,13 +1403,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600a6008506003015660015b600255", "storage": {} } @@ -1431,13 +1431,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600b6008506003015660015b600255", "storage": {} } @@ -1459,13 +1459,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x620fffff620fffff0160030156", "storage": {} } @@ -1487,13 +1487,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360016009600301576001600255", "storage": {} } @@ -1515,13 +1515,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236001600a6003015760015b600255", "storage": {} } @@ -1543,13 +1543,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360006009600301576001600255", "storage": {} } @@ -1571,13 +1571,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0600301576002600355", "storage": {} } @@ -1599,13 +1599,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160084301570060015b6002600355", "storage": {} } @@ -1627,13 +1627,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600543015661eeff", "storage": {} } @@ -1655,13 +1655,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6004430156655b6001600155", "storage": {} } @@ -1683,13 +1683,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001600743015761eeff", "storage": {} } @@ -1711,13 +1711,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60016006430157655b6001600155", "storage": {} } @@ -1739,13 +1739,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5b600060000156", "storage": {} } @@ -1767,13 +1767,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360074301566001600255", "storage": {} } @@ -1794,13 +1794,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600743015660015b600255", "storage": {} } @@ -1822,13 +1822,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x602360074301566001600255", "storage": {} } @@ -1850,13 +1850,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600843015660015b600255", "storage": {} } @@ -1878,13 +1878,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600a60085043015660015b600255", "storage": {} } @@ -1906,13 +1906,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600b60085043015660015b600255", "storage": {} } @@ -1934,13 +1934,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x620fffff620fffff01430156", "storage": {} } @@ -1962,13 +1962,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600160094301576001600255", "storage": {} } @@ -1990,13 +1990,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236001600a43015760015b600255", "storage": {} } @@ -2018,13 +2018,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600060094301576001600255", "storage": {} } @@ -2046,13 +2046,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04301576002600355", "storage": {} } @@ -2075,13 +2075,13 @@ "currentNumber" : "1", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "//" : "PUSH1 3 JUMP", "code" : "0x6009436006575b566001", "storage": {} @@ -2104,13 +2104,13 @@ "currentNumber" : "1", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600a436006575b5660015b6001600155", "storage": {} } @@ -2132,13 +2132,13 @@ "currentNumber" : "4", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x435660615b4343025660615b60615b5b5b6001600155", "storage": {} } @@ -2160,13 +2160,13 @@ "currentNumber" : "4", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x435660615b4343025660615b60615b605b6001600155", "storage": {} } @@ -2188,13 +2188,13 @@ "currentNumber" : "4", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x435631615b60615b60615b606001600155", "storage": {} } @@ -2216,13 +2216,13 @@ "currentNumber" : "7", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x435631615b60615b60615b606001600155", "storage": {} } @@ -2244,13 +2244,13 @@ "currentNumber" : "7", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x435631615b60615b60615b606001600155", "storage": {} } @@ -2272,13 +2272,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6001600860005401570060015b6002600355", "storage" : { "0x00" : "0x04" @@ -2302,13 +2302,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6005600054015661eeff", "storage" : { "0x00" : "0x04" @@ -2332,13 +2332,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60046000540156655b6001600155", "storage" : { "0x00" : "0x04" @@ -2362,13 +2362,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60016007600054015761eeff", "storage" : { "0x00" : "0x04" @@ -2392,13 +2392,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600160066000540157655b6001600155", "storage" : { "0x00" : "0x04" @@ -2422,13 +2422,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x5b600060000156", "storage" : { "0x00" : "0x04" @@ -2452,13 +2452,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600760005401566001600255", "storage" : { "0x00" : "0x04" @@ -2482,13 +2482,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236007600054015660015b600255", "storage" : { "0x00" : "0x04" @@ -2512,13 +2512,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600760005401566001600255", "storage" : { "0x00" : "0x04" @@ -2543,13 +2543,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236008600054015660015b600255", "storage" : { "0x00" : "0x04" @@ -2573,13 +2573,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600a600850600054015660015b600255", "storage" : { "0x00" : "0x04" @@ -2604,13 +2604,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6023600b600850600054015660015b600255", "storage" : { "0x00" : "0x04" @@ -2634,13 +2634,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x620fffff620fffff016000540156", "storage" : { "0x00" : "0x04" @@ -2665,13 +2665,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236001600960005401576001600255", "storage" : { "0x00" : "0x04" @@ -2695,13 +2695,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236001600a600054015760015b600255", "storage" : { "0x00" : "0x04" @@ -2726,13 +2726,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60236000600960005401576001600255", "storage" : { "0x00" : "0x04" @@ -2756,13 +2756,13 @@ "currentNumber" : "2", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff060005401576002600355", "storage" : { "0x00" : "0x04" @@ -2787,13 +2787,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (PC)}", "storage": {} } @@ -2815,13 +2815,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(SSTORE 0 0xff) [[ 0 ]] (PC)}", "storage": {} } @@ -2843,13 +2843,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 0xff) [[ 0 ]] (MSIZE)}", "storage": {} } @@ -2871,13 +2871,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 0xffffffffff) [[ 0 ]] (MSIZE)}", "storage": {} } @@ -2899,13 +2899,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 0xffffffffff) (MSTORE 32 0xeeee) [[ 0 ]] (MSIZE)}", "storage": {} } @@ -2927,13 +2927,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 0xffffffffff) (MSTORE 90 0xeeee) [[ 0 ]] (MSIZE)}", "storage": {} } @@ -2955,13 +2955,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{(MSTORE 0 0xffffffffff) (MSTORE 90 0xeeee) [[ 0 ]] (GAS)}", "storage": {} } @@ -2983,13 +2983,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{[[ 0 ]] (GAS)}", "storage": {} } diff --git a/test/vmLogTestFiller.json b/test/vmLogTestFiller.json index 4f3d26f52..5b63957c5 100644 --- a/test/vmLogTestFiller.json +++ b/test/vmLogTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG0 0 0) }", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) }", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG0 0 32) (LOG0 2 16) }", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0 1) }", "storage": {} } @@ -118,13 +118,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 31 1) }", "storage": {} } @@ -146,13 +146,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1) }", "storage": {} } @@ -174,13 +174,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -202,13 +202,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG0 1 0) }", "storage": {} } @@ -230,13 +230,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG1 0 0 0) }", "storage": {} } @@ -258,13 +258,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG1 0 32 0) }", "storage": {} } @@ -286,13 +286,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 1 0) }", "storage": {} } @@ -315,13 +315,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 31 1 0) }", "storage": {} } @@ -343,13 +343,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0) }", "storage": {} } @@ -371,13 +371,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0) }", "storage": {} } @@ -399,13 +399,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 1 0 0) }", "storage": {} } @@ -427,13 +427,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG1 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -455,13 +455,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG1 0 32 (CALLER)) }", "storage": {} } @@ -483,13 +483,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG2 0 0 0 0) }", "storage": {} } @@ -511,13 +511,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG2 0 32 0 0) }", "storage": {} } @@ -539,13 +539,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 1 0 0) }", "storage": {} } @@ -568,13 +568,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 31 1 0 0) }", "storage": {} } @@ -596,13 +596,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0) }", "storage": {} } @@ -624,13 +624,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0) }", "storage": {} } @@ -652,13 +652,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 1 0 0 0) }", "storage": {} } @@ -680,13 +680,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG2 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -708,13 +708,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG2 0 32 0 (CALLER) ) }", "storage": {} } @@ -736,13 +736,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG3 0 0 0 0 0) }", "storage": {} } @@ -764,13 +764,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG3 0 32 0 0 0) }", "storage": {} } @@ -792,13 +792,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 1 0 0 0) }", "storage": {} } @@ -821,13 +821,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 31 1 0 0 0) }", "storage": {} } @@ -849,13 +849,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0) }", "storage": {} } @@ -877,13 +877,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0) }", "storage": {} } @@ -905,13 +905,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 1 0 0 0 0) }", "storage": {} } @@ -933,13 +933,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG3 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -961,13 +961,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 (CALLER) ) }", "storage": {} } @@ -989,13 +989,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) ) }", "storage": {} } @@ -1017,13 +1017,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (LOG4 0 0 0 0 0 0) }", "storage": {} } @@ -1045,13 +1045,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (LOG4 0 32 0 0 0 0) }", "storage": {} } @@ -1073,13 +1073,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 1 0 0 0 0) }", "storage": {} } @@ -1102,13 +1102,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 31 1 0 0 0 0) }", "storage": {} } @@ -1130,13 +1130,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 1 0 0 0 0) }", "storage": {} } @@ -1158,13 +1158,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 0 0 0) }", "storage": {} } @@ -1186,13 +1186,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 1 0 0 0 0 0) }", "storage": {} } @@ -1214,13 +1214,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xaabbffffffffffffffffffffffffffffffffffffffffffffffffffffffffccdd) (LOG4 0 32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) }", "storage": {} } @@ -1242,13 +1242,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 0 0 0 (CALLER) ) }", "storage": {} } @@ -1270,13 +1270,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE8 0 0xff) (LOG3 0 32 (PC) (PC) (PC) (PC) ) }", "storage": {} } diff --git a/test/vmPushDupSwapTestFiller.json b/test/vmPushDupSwapTestFiller.json index 69d0254b7..a9b69f79e 100644 --- a/test/vmPushDupSwapTestFiller.json +++ b/test/vmPushDupSwapTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60ff600355", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x61eeff600355", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x62ddeeff600355", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x63ccddeeff600355", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x64bbccddeeff600355", "storage": {} } @@ -173,13 +173,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x65aabbccddeeff600355", "storage": {} } @@ -201,13 +201,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6699aabbccddeeff600355", "storage": {} } @@ -229,13 +229,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x678899aabbccddeeff600355", "storage": {} } @@ -257,13 +257,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x68778899aabbccddeeff600355", "storage": {} } @@ -285,13 +285,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6966778899aabbccddeeff600355", "storage": {} } @@ -313,13 +313,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6a5566778899aabbccddeeff600355", "storage": {} } @@ -341,13 +341,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6b445566778899aabbccddeeff600355", "storage": {} } @@ -369,13 +369,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6c33445566778899aabbccddeeff600355", "storage": {} } @@ -397,13 +397,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6d2233445566778899aabbccddeeff600355", "storage": {} } @@ -425,13 +425,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6e112233445566778899aabbccddeeff600355", "storage": {} } @@ -453,13 +453,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6f10112233445566778899aabbccddeeff600355", "storage": {} } @@ -481,13 +481,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x70ff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -509,13 +509,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x71eeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -537,13 +537,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x72ddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -565,13 +565,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x73ccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -593,13 +593,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x74bbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -621,13 +621,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x75aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -649,13 +649,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7699aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -677,13 +677,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -705,13 +705,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x78778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -733,13 +733,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7966778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -762,13 +762,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7a5566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -790,13 +790,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7b445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -818,13 +818,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7c33445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -846,13 +846,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7d2233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -874,13 +874,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7e112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -902,13 +902,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -930,13 +930,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7fff10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355", "storage": {} } @@ -959,13 +959,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7fff10112233445566778899aabbccddeeff00112233445566778899aabbccdd", "storage": {} } @@ -987,13 +987,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff80600355", "storage": {} } @@ -1015,13 +1015,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff81600355", "storage": {} } @@ -1043,13 +1043,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6002600181600355", "storage": {} } @@ -1071,13 +1071,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60036002600182600355", "storage": {} } @@ -1099,13 +1099,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600460036002600183600355", "storage": {} } @@ -1127,13 +1127,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6005600460036002600184600355", "storage": {} } @@ -1155,13 +1155,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60066005600460036002600185600355", "storage": {} } @@ -1183,13 +1183,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600760066005600460036002600186600355", "storage": {} } @@ -1211,13 +1211,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6008600760066005600460036002600187600355", "storage": {} } @@ -1239,13 +1239,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60096008600760066005600460036002600188600355", "storage": {} } @@ -1267,13 +1267,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600a60096008600760066005600460036002600189600355", "storage": {} } @@ -1295,13 +1295,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600b600a6009600860076006600560046003600260018a600355", "storage": {} } @@ -1323,13 +1323,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600c600b600a6009600860076006600560046003600260018b600355", "storage": {} } @@ -1351,13 +1351,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600d600c600b600a6009600860076006600560046003600260018c600355", "storage": {} } @@ -1379,13 +1379,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600e600d600c600b600a6009600860076006600560046003600260018d600355", "storage": {} } @@ -1407,13 +1407,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600f600e600d600c600b600a6009600860076006600560046003600260018e600355", "storage": {} } @@ -1435,13 +1435,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6010600f600e600d600c600b600a6009600860076006600560046003600260018f600355", "storage": {} } @@ -1463,13 +1463,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039055", "storage": {} } @@ -1491,13 +1491,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039155", "storage": {} } @@ -1519,13 +1519,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6002600160039155", "storage": {} } @@ -1547,13 +1547,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60036002600160039255", "storage": {} } @@ -1575,13 +1575,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600460036002600160039355", "storage": {} } @@ -1603,13 +1603,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6005600460036002600160039455", "storage": {} } @@ -1631,13 +1631,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60066005600460036002600160039555", "storage": {} } @@ -1659,13 +1659,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600760066005600460036002600160039655", "storage": {} } @@ -1687,13 +1687,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6008600760066005600460036002600160039755", "storage": {} } @@ -1715,13 +1715,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x60096008600760066005600460036002600160039855", "storage": {} } @@ -1743,13 +1743,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600a60096008600760066005600460036002600160039955", "storage": {} } @@ -1771,13 +1771,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600b600a60096008600760066005600460036002600160039a55", "storage": {} } @@ -1799,13 +1799,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600c600b600a60096008600760066005600460036002600160039b55", "storage": {} } @@ -1827,13 +1827,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600d600c600b600a60096008600760066005600460036002600160039c55", "storage": {} } @@ -1855,13 +1855,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600e600d600c600b600a60096008600760066005600460036002600160039d55", "storage": {} } @@ -1883,13 +1883,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x600f600e600d600c600b600a60096008600760066005600460036002600160039e55", "storage": {} } @@ -1911,13 +1911,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6010600f600e600d600c600b600a60096008600760066005600460036002600160039f55", "storage": {} } diff --git a/test/vmSha3TestFiller.json b/test/vmSha3TestFiller.json index 7ed729520..dd38f7d0b 100644 --- a/test/vmSha3TestFiller.json +++ b/test/vmSha3TestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 0 0)}", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 4 5)}", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 10 10)}", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 1000 0xfffff)}", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 0xfffffffff 100)}", "storage": {} } @@ -145,13 +145,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 10000 0xfffffffff )}", "storage": {} } @@ -173,13 +173,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}", "storage": {} } diff --git a/test/vmSystemOperationsTestFiller.json b/test/vmSystemOperationsTestFiller.json index 0e160bd53..709af7079 100644 --- a/test/vmSystemOperationsTestFiller.json +++ b/test/vmSystemOperationsTestFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 29) }", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "100", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 230 3 29) }", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "100", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 0xfffffffffff 29) }", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "100", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0x601080600c6000396000f3006000355415600957005b60203560003555) [[ 0 ]] (CREATE 23 3 0xffffffff) }", "storage": {} } @@ -117,13 +117,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -183,13 +183,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2) }", "storage": {} }, @@ -219,13 +219,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) (POST 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 ) }", "storage": {} }, @@ -255,13 +255,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLSTATELESS 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", "storage": {} }, @@ -291,13 +291,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 0 2 ) }", "storage": {} }, @@ -328,13 +328,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 100 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -364,13 +364,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654321 64 64 0) }", "storage": {} }, @@ -400,13 +400,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 9865432 64 0) }", "storage": {} }, @@ -436,13 +436,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 1) }", "storage": {} }, @@ -473,13 +473,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 987654 0) }", "storage": {} }, @@ -509,13 +509,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALL 500 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 987654 0 64 0) }", "storage": {} }, @@ -545,19 +545,19 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (CALL 100000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 0 0 0) }", "storage": {} }, "945304eb96065b2a98b57a48a06ae28d285a71b5" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) } ", "storage": {} } @@ -579,13 +579,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} } @@ -607,13 +607,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} } @@ -635,13 +635,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "20000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (+ (SLOAD 0) 1) [[ 1 ]] (CALL (- (GAS) 224) (ADDRESS) 0 0 0 0 0) }", "storage": {} } @@ -663,13 +663,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SUICIDE (CALLER))}", "storage": {} }, @@ -699,13 +699,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SUICIDE 0xaa1722f3947def4cf144679da39c4c32bdc35681 )}", "storage": {} }, @@ -735,13 +735,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (SUICIDE (ADDRESS) )}", "storage": {} }, @@ -771,7 +771,7 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { @@ -801,7 +801,7 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { @@ -831,7 +831,7 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { @@ -861,13 +861,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) (POST 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 ) }", "storage": {} }, @@ -897,13 +897,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLSTATELESS 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -933,13 +933,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (MSTORE 0 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) (MSTORE 32 0xaaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa ) [[ 0 ]] (CALLCODE 1000000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 23 0 64 64 0) }", "storage": {} }, @@ -969,13 +969,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "0x6000355415600957005b60203560003555", "storage": {} } @@ -997,13 +997,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, @@ -1033,13 +1033,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, @@ -1069,13 +1069,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", "storage": {} }, @@ -1105,13 +1105,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1025000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ 0 ]] (ADD (SLOAD 0) 1) (CALL (- (GAS) 1000) 0x945304eb96065b2a98b57a48a06ae28d285a71b5 1 0 0 0 0) }", "storage": {} }, @@ -1141,13 +1141,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) (SUICIDE 0x945304eb96065b2a98b57a48a06ae28d285a71b5) }", "storage": {} }, @@ -1177,13 +1177,13 @@ "currentNumber" : "0", "currentGasLimit" : "10000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ [[ (PC) ]] (CALL 1000 0x945304eb96065b2a98b57a48a06ae28d285a71b5 24 0 0 0 0) }", "storage": {} }, diff --git a/test/vmtestsFiller.json b/test/vmtestsFiller.json index 6dce8bff7..75bf1da8f 100644 --- a/test/vmtestsFiller.json +++ b/test/vmtestsFiller.json @@ -5,13 +5,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "(suicide (caller))", "storage": {} } @@ -33,13 +33,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "{ (call (- (gas) 200) (caller) (+ 2 2 (* 4 4 4) (/ 2 2) (% 3 2) (- 8 2 2)) 0 0 0 0) }", "storage": {} } @@ -61,13 +61,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "(seq (when (and 1 1) (call (- (gas) 200) (caller) 2 0 0 0 0)) (when (and 1 0) (call (- (gas) 200) (caller) 3 0 0 0 0)) (when (and 0 1) (call (- (gas) 200) (caller) 4 0 0 0 0)) (when (and 0 0) (call (- (gas) 200) (caller) 5 0 0 0 0)) (when (or 1 1) (call (- (gas) 200) (caller) 12 0 0 0 0)) (when (or 1 0) (call (- (gas) 200) (caller) 13 0 0 0 0)) (when (or 0 1) (call (- (gas) 200) (caller) 14 0 0 0 0)) (when (or 0 0) (call (- (gas) 200) (caller) 15 0 0 0 0)) )", "storage": {} } @@ -89,13 +89,13 @@ "currentNumber" : "0", "currentGasLimit" : "1000000", "currentDifficulty" : "256", - "currentTimestamp" : 1, + "currentTimestamp" : "1", "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" }, "pre" : { "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "1000000000000000000", - "nonce" : 0, + "nonce" : "0", "code" : "(call (- (gas) 200) (caller) 500000000000000000 0 0 0 0)", "storage": {} } From 6f4265a615cd0a1e38385dea6bd4403a1976d4ad Mon Sep 17 00:00:00 2001 From: winsvega Date: Sat, 7 Feb 2015 01:13:02 +0300 Subject: [PATCH 04/52] TransactionTest Incorrect receiver address ength --- test/transaction.cpp | 106 ++++++++++++------------------ test/ttTransactionTestFiller.json | 49 +++++++++++++- 2 files changed, 87 insertions(+), 68 deletions(-) diff --git a/test/transaction.cpp b/test/transaction.cpp index 8c2e99cf9..ddd7c3dc4 100644 --- a/test/transaction.cpp +++ b/test/transaction.cpp @@ -28,31 +28,48 @@ using namespace dev::eth; namespace dev { namespace test { -Transaction createTransactionFromFields(mObject& _tObj) +RLPStream createRLPStreamFromTransactionFields(mObject& _tObj) { - BOOST_REQUIRE(_tObj.count("data") > 0); - BOOST_REQUIRE(_tObj.count("value") > 0); - BOOST_REQUIRE(_tObj.count("gasPrice") > 0); - BOOST_REQUIRE(_tObj.count("gasLimit") > 0); - BOOST_REQUIRE(_tObj.count("nonce")> 0); - BOOST_REQUIRE(_tObj.count("to") > 0); - - BOOST_REQUIRE(_tObj.count("v") > 0); - BOOST_REQUIRE(_tObj.count("r") > 0); - BOOST_REQUIRE(_tObj.count("s") > 0); - //Construct Rlp of the given transaction RLPStream rlpStream; - rlpStream.appendList(9); - rlpStream << bigint(_tObj["nonce"].get_str()) << bigint(_tObj["gasPrice"].get_str()) << bigint(_tObj["gasLimit"].get_str()); - if (_tObj["to"].get_str().empty()) - rlpStream << ""; - else - rlpStream << Address(_tObj["to"].get_str()); - rlpStream << bigint(_tObj["value"].get_str()) << importData(_tObj); - rlpStream << bigint(_tObj["v"].get_str()) << bigint(_tObj["r"].get_str()) << bigint(_tObj["s"].get_str()); - - return Transaction(rlpStream.out(), CheckSignature::Sender); + rlpStream.appendList(_tObj.size()); + + if (_tObj.count("nonce") > 0) + rlpStream << bigint(_tObj["nonce"].get_str()); + + if (_tObj.count("gasPrice") > 0) + rlpStream << bigint(_tObj["gasPrice"].get_str()); + + if (_tObj.count("gasLimit") > 0) + rlpStream << bigint(_tObj["gasLimit"].get_str()); + + if (_tObj.count("to") > 0) + { + if (_tObj["to"].get_str().empty()) + rlpStream << ""; + else + rlpStream << importByteArray(_tObj["to"].get_str()); + } + + if (_tObj.count("value") > 0) + rlpStream << bigint(_tObj["value"].get_str()); + + if (_tObj.count("data") > 0) + rlpStream << importData(_tObj); + + if (_tObj.count("v") > 0) + rlpStream << bigint(_tObj["v"].get_str()); + + if (_tObj.count("r") > 0) + rlpStream << bigint(_tObj["r"].get_str()); + + if (_tObj.count("s") > 0) + rlpStream << bigint(_tObj["s"].get_str()); + + if (_tObj.count("extrafield") > 0) + rlpStream << bigint(_tObj["extrafield"].get_str()); + + return rlpStream; } void doTransactionTests(json_spirit::mValue& _v, bool _fillin) @@ -83,7 +100,7 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) BOOST_REQUIRE(o.count("transaction") > 0); mObject tObj = o["transaction"].get_obj(); - Transaction txFromFields = createTransactionFromFields(tObj); + Transaction txFromFields(createRLPStreamFromTransactionFields(tObj).out(),CheckSignature::Sender); //Check the fields restored from RLP to original fields BOOST_CHECK_MESSAGE(txFromFields.data() == txFromRlp.data(), "Data in given RLP not matching the Transaction data!"); @@ -105,44 +122,7 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) mObject tObj = o["transaction"].get_obj(); //Construct Rlp of the given transaction - RLPStream rlpStream; - rlpStream.appendList(tObj.size()); - - if (tObj.count("nonce") > 0) - rlpStream << bigint(tObj["nonce"].get_str()); - - if (tObj.count("gasPrice") > 0) - rlpStream << bigint(tObj["gasPrice"].get_str()); - - if (tObj.count("gasLimit") > 0) - rlpStream << bigint(tObj["gasLimit"].get_str()); - - if (tObj.count("to") > 0) - { - if (tObj["to"].get_str().empty()) - rlpStream << ""; - else - rlpStream << Address(tObj["to"].get_str()); - } - - if (tObj.count("value") > 0) - rlpStream << bigint(tObj["value"].get_str()); - - if (tObj.count("data") > 0) - rlpStream << importData(tObj); - - if (tObj.count("v") > 0) - rlpStream << bigint(tObj["v"].get_str()); - - if (tObj.count("r") > 0) - rlpStream << bigint(tObj["r"].get_str()); - - if (tObj.count("s") > 0) - rlpStream << bigint(tObj["s"].get_str()); - - if (tObj.count("extrafield") > 0) - rlpStream << bigint(tObj["extrafield"].get_str()); - + RLPStream rlpStream = createRLPStreamFromTransactionFields(tObj); o["rlp"] = "0x" + toHex(rlpStream.out()); try @@ -151,9 +131,6 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) if (!txFromFields.signature().isValid()) BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("transaction from RLP signature is invalid") ); - //cause Address is length20 array, when trying to create address from sting of another length, field "to" would be diffrent from RLP encoded Address - BOOST_CHECK_MESSAGE(Address(tObj["to"].get_str()) == txFromFields.receiveAddress(), "seems that transaction 'to' address has wrong format"); - o["sender"] = toString(txFromFields.sender()); } catch(...) @@ -163,7 +140,6 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) } }//for }//doTransactionTests - } }// Namespace Close diff --git a/test/ttTransactionTestFiller.json b/test/ttTransactionTestFiller.json index 6967f4284..26f32271e 100644 --- a/test/ttTransactionTestFiller.json +++ b/test/ttTransactionTestFiller.json @@ -10,8 +10,7 @@ "value" : "10", "v" : "28", "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" - + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, @@ -255,6 +254,50 @@ "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } - } + }, + + "AddressMoreThan20" : { + "transaction" : + { + "data" : "", + "gasLimit" : "2000", + "gasPrice" : "1", + "nonce" : "0", + "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b1c", + "value" : "10", + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + } + }, + + "AddressLessThan20" : { + "transaction" : + { + "data" : "", + "gasLimit" : "2000", + "gasPrice" : "1", + "nonce" : "0", + "to" : "b9331677e6ebf", + "value" : "10", + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + } + }, + "AddressLessThan20Prefixed0" : { + "transaction" : + { + "data" : "", + "gasLimit" : "2000", + "gasPrice" : "1", + "nonce" : "0", + "to" : "0x000000000000000000000000000b9331677e6ebf", + "value" : "10", + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + } + } } From d6ebb4454b60d8e8bfdb4bb0f3fac703606335b7 Mon Sep 17 00:00:00 2001 From: winsvega Date: Sat, 7 Feb 2015 14:23:17 +0300 Subject: [PATCH 05/52] Style Changes New exception for values larger than 2**256 Auto format .json files --- libdevcore/Exceptions.h | 1 + test/TestHelper.cpp | 13 +- test/stInitCodeTestFiller.json | 154 +++++++++++------------ test/stTransactionTestFiller.json | 154 +++++++++++------------ test/transaction.cpp | 2 +- test/ttTransactionTestFiller.json | 198 +++++++++++++++--------------- 6 files changed, 261 insertions(+), 261 deletions(-) diff --git a/libdevcore/Exceptions.h b/libdevcore/Exceptions.h index e13d41476..961fc6f4c 100644 --- a/libdevcore/Exceptions.h +++ b/libdevcore/Exceptions.h @@ -33,6 +33,7 @@ namespace dev // base class for all exceptions struct Exception: virtual std::exception, virtual boost::exception { mutable std::string m_message; }; +struct ValueTooLarge: virtual Exception {}; struct BadHexCharacter: virtual Exception {}; struct RLPException: virtual Exception {}; struct BadCast: virtual RLPException {}; diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index fc05de85a..fbb302f15 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -110,9 +110,9 @@ void ImportTest::importState(json_spirit::mObject& _o, State& _state) bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); if (bigint(o["balance"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'balance' is equal or greater than 2**256") ); + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("State 'balance' is equal or greater than 2**256") ); if (bigint(o["nonce"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("State 'nonce' is equal or greater than 2**256") ); + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("State 'nonce' is equal or greater than 2**256") ); Address address = Address(i.first); @@ -148,14 +148,13 @@ void ImportTest::importTransaction(json_spirit::mObject& _o) bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); if (bigint(_o["nonce"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'nonce' is equal or greater than 2**256") ); + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'nonce' is equal or greater than 2**256") ); if (bigint(_o["gasPrice"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasPrice' is equal or greater than 2**256") ); + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'gasPrice' is equal or greater than 2**256") ); if (bigint(_o["gasLimit"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'gasLimit' is equal or greater than 2**256") ); + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'gasLimit' is equal or greater than 2**256") ); if (bigint(_o["value"].get_str()) >= biValue256) - BOOST_THROW_EXCEPTION(Exception() << errinfo_comment("Transaction 'value' is equal or greater than 2**256") ); - + BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'value' is equal or greater than 2**256") ); m_transaction = _o["to"].get_str().empty() ? Transaction(toInt(_o["value"]), toInt(_o["gasPrice"]), toInt(_o["gasLimit"]), importData(_o), toInt(_o["nonce"]), Secret(_o["secretKey"].get_str())) : diff --git a/test/stInitCodeTestFiller.json b/test/stInitCodeTestFiller.json index 0996bd6a2..134d75198 100644 --- a/test/stInitCodeTestFiller.json +++ b/test/stInitCodeTestFiller.json @@ -19,7 +19,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c6000396000f200600160008035811a8100", "gasLimit" : "599", "gasPrice" : "1", @@ -51,7 +51,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c6000396000f200600160008035811a8100", "gasLimit" : "599", "gasPrice" : "1", @@ -62,7 +62,7 @@ } }, - "OutOfGasContractCreation" : { + "OutOfGasContractCreation" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -82,7 +82,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c6000396000f200600160008035811a8100", "gasLimit" : "590", "gasPrice" : "3", @@ -92,7 +92,7 @@ "value" : "1" } }, - "StackUnderFlowContractCreation" : { + "StackUnderFlowContractCreation" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -112,7 +112,7 @@ } }, "transaction" : - { + { "data" : "0x6000f1", "gasLimit" : "1000", "gasPrice" : "1", @@ -123,7 +123,7 @@ } }, - "TransactionSuicideInitCode" : { + "TransactionSuicideInitCode" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -143,7 +143,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c6000396000fff2ffff600160008035811a81", "gasLimit" : "1000", "gasPrice" : "1", @@ -154,7 +154,7 @@ } }, - "TransactionStopInitCode" : { + "TransactionStopInitCode" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -174,7 +174,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c600039600000f20000600160008035811a81", "gasLimit" : "1000", "gasPrice" : "1", @@ -185,7 +185,7 @@ } }, - "TransactionCreateSuicideContract" : { + "TransactionCreateSuicideContract" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -205,7 +205,7 @@ } }, "transaction" : - { + { "data" : "0x600a80600c6000396000f200ff600160008035811a81", "gasLimit" : "1000", "gasPrice" : "1", @@ -216,7 +216,7 @@ } }, - "CallTheContractToCreateEmptyContract" : { + "CallTheContractToCreateEmptyContract" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -227,12 +227,12 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "0", - "nonce": "0", - "code": "{(CREATE 0 0 32)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "0", + "nonce": "0", + "code": "{(CREATE 0 0 32)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000", @@ -243,7 +243,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "10000", "gasPrice" : "1", @@ -254,7 +254,7 @@ } }, - "CallRecursiveContract" : { + "CallRecursiveContract" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -265,12 +265,12 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "0", - "nonce": "0", - "code": "{[[ 2 ]](ADDRESS)(CODECOPY 0 0 32)(CREATE 0 0 32)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "0", + "nonce": "0", + "code": "{[[ 2 ]](ADDRESS)(CODECOPY 0 0 32)(CREATE 0 0 32)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000", @@ -281,7 +281,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "10000", "gasPrice" : "1", @@ -292,7 +292,7 @@ } }, - "CallContractToCreateContractWhichWouldCreateContractInInitCode" : { + "CallContractToCreateContractWhichWouldCreateContractInInitCode" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -303,13 +303,13 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "1", - "nonce": "0", - "//": "{[[0]] 12 (CREATE 0 64 32)}", - "code": "{(MSTORE 0 0x600c600055602060406000f0)(CREATE 0 20 12)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "1", + "nonce": "0", + "//": "{[[0]] 12 (CREATE 0 64 32)}", + "code": "{(MSTORE 0 0x600c600055602060406000f0)(CREATE 0 20 12)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000000", @@ -320,7 +320,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "20000000", "gasPrice" : "1", @@ -331,7 +331,7 @@ } }, - "CallContractToCreateContractWhichWouldCreateContractIfCalled" : { + "CallContractToCreateContractWhichWouldCreateContractIfCalled" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -342,14 +342,14 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "1000", - "nonce": "0", - "//": "(CREATE 0 64 32)", - "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 500 (SLOAD 0) 1 0 0 0 0)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "1000", + "nonce": "0", + "//": "(CREATE 0 64 32)", + "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 500 (SLOAD 0) 1 0 0 0 0)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000000", @@ -360,7 +360,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "20000000", "gasPrice" : "1", @@ -371,7 +371,7 @@ } }, - "CallContractToCreateContractOOG" : { + "CallContractToCreateContractOOG" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -382,14 +382,14 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "0", - "nonce": "0", - "//": "(CREATE 0 64 32)", - "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 0 0 0 0 0)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "0", + "nonce": "0", + "//": "(CREATE 0 64 32)", + "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 0 0 0 0 0)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000000", @@ -400,7 +400,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "20000000", "gasPrice" : "1", @@ -411,7 +411,7 @@ } }, - "CallContractToCreateContractAndCallItOOG" : { + "CallContractToCreateContractAndCallItOOG" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -422,14 +422,14 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "1000", - "nonce": "0", - "//": "(CREATE 0 64 32)", - "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 1 0 0 0 0)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "1000", + "nonce": "0", + "//": "(CREATE 0 64 32)", + "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1 11 21)(CALL 0 (SLOAD 0) 1 0 0 0 0)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000000", @@ -440,7 +440,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "20000000", "gasPrice" : "1", @@ -451,7 +451,7 @@ } }, - "CallContractToCreateContractNoCash" : { + "CallContractToCreateContractNoCash" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -462,14 +462,14 @@ }, "pre" : { - "095e7baea6a6c7c4c2dfeb977efac326af552d87": { - "balance": "1000", - "nonce": "0", - "//": "(CREATE 0 64 32)", - "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", - "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1001 11 21)}", - "storage": {} - }, + "095e7baea6a6c7c4c2dfeb977efac326af552d87": { + "balance": "1000", + "nonce": "0", + "//": "(CREATE 0 64 32)", + "//": "{[[0]] 12 (MSTORE 32 0x602060406000f0)(RETURN 57 7)}", + "code": "{(MSTORE 0 0x600c60005566602060406000f060205260076039f3)[[0]](CREATE 1001 11 21)}", + "storage": {} + }, "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "100000000", @@ -480,7 +480,7 @@ } }, "transaction" : - { + { "data" : "0x00", "gasLimit" : "20000000", "gasPrice" : "1", diff --git a/test/stTransactionTestFiller.json b/test/stTransactionTestFiller.json index 878aed0d1..cf132b0da 100644 --- a/test/stTransactionTestFiller.json +++ b/test/stTransactionTestFiller.json @@ -19,7 +19,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "", "gasPrice" : "", @@ -50,7 +50,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "500", "gasPrice" : "1", @@ -82,7 +82,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "5000", "gasPrice" : "1", @@ -114,7 +114,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "5000", "gasPrice" : "1", @@ -146,7 +146,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "600", "gasPrice" : "1", @@ -178,7 +178,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "600", "gasPrice" : "1", @@ -213,22 +213,22 @@ "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", "nonce" : "0", "storage" : { - "0x" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } } }, "transaction" : - { + { "data" : "", "gasLimit" : "600", "gasPrice" : "1", @@ -263,22 +263,22 @@ "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 12)}", "nonce" : "0", "storage" : { - "0x" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } } }, "transaction" : - { + { "data" : "", "gasLimit" : "600", "gasPrice" : "1", @@ -308,9 +308,9 @@ } }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10", - "//" : "gas = 19 going OOG, gas = 20 fine", + "//" : "gas = 19 going OOG, gas = 20 fine", "code" : "{ (CALL 19 0 1 0 0 0 0) }", "nonce" : "0", "storage" : { @@ -322,23 +322,23 @@ "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", "nonce" : "0", "storage" : { - "0x" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } } }, "transaction" : - { + { "data" : "", "gasLimit" : "700", "gasPrice" : "1", @@ -368,7 +368,7 @@ } }, - "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "10", "//" : "gas = 19 going OOG, gas = 20 fine", "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0) (CALL 19 0 1 0 0 0 0) }", @@ -379,7 +379,7 @@ "0x02" : "0x0c", "0x03" : "0x0c", "0x04" : "0x0c" - } + } }, "0000000000000000000000000000000000000000" : { @@ -387,23 +387,23 @@ "code" : "{(SSTORE 0 0)(SSTORE 1 0)(SSTORE 2 0)(SSTORE 3 0)(SSTORE 4 0)(SSTORE 5 0)(SSTORE 6 0)(SSTORE 7 0)(SSTORE 8 0)(SSTORE 9 0)}", "nonce" : "0", "storage" : { - "0x" : "0x0c", + "0x" : "0x0c", "0x01" : "0x0c", - "0x02" : "0x0c", - "0x03" : "0x0c", - "0x04" : "0x0c", - "0x05" : "0x0c", - "0x06" : "0x0c", - "0x07" : "0x0c", - "0x08" : "0x0c", - "0x09" : "0x0c" - } + "0x02" : "0x0c", + "0x03" : "0x0c", + "0x04" : "0x0c", + "0x05" : "0x0c", + "0x06" : "0x0c", + "0x07" : "0x0c", + "0x08" : "0x0c", + "0x09" : "0x0c" + } } }, "transaction" : - { + { "data" : "", "gasLimit" : "700", "gasPrice" : "1", @@ -414,7 +414,7 @@ } }, - "TransactionNonceCheck" : { + "TransactionNonceCheck" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -434,7 +434,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "1000", "gasPrice" : "1", @@ -465,7 +465,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "1000", "gasPrice" : "1", @@ -496,7 +496,7 @@ } }, "transaction" : - { + { "data" : "0x00000000000000000000112233445566778f32", "gasLimit" : "1000", "gasPrice" : "1", @@ -526,7 +526,7 @@ } }, - "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { "balance" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "code" : "", "nonce" : "0", @@ -535,7 +535,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "1000", "gasPrice" : "1", @@ -561,13 +561,13 @@ "balance" : "100000", "code" : "", "nonce" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", - "nonce" : "10000000", + "nonce" : "10000000", "storage" : { } } }, "transaction" : - { + { "data" : "", "gasLimit" : "1000", "gasPrice" : "1", @@ -579,7 +579,7 @@ } }, - "UserTransactionZeroCost" : { + "UserTransactionZeroCost" : { "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", @@ -599,7 +599,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "5100", "gasPrice" : "0", @@ -630,7 +630,7 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "12", "gasPrice" : "0", @@ -661,7 +661,7 @@ } }, "transaction" : - { + { "data" : "0x3240349548983454", "gasLimit" : "500", "gasPrice" : "0", @@ -676,7 +676,7 @@ "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", - "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "(2**256)-1", "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "currentNumber" : "0", "currentTimestamp" : 1, @@ -693,9 +693,9 @@ } }, "transaction" : - { + { "data" : "0x3240349548983454", - "gasLimit" : "2**200", + "gasLimit" : "2**200", "gasLimit" : "1606938044258990275541962092341162602522202993782792835301376", "gasPrice" : "2**56-1", "gasPrice" : "72057594037927935", @@ -710,7 +710,7 @@ "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", - "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "(2**256)-1", "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "currentNumber" : "0", "currentTimestamp" : 1, @@ -727,9 +727,9 @@ } }, "transaction" : - { + { "data" : "0x3240349548983454", - "gasLimit" : "2**200", + "gasLimit" : "2**200", "gasLimit" : "1606938044258990275541962092341162602522202993782792835301376", "gasPrice" : "(2**56)*10", "gasPrice" : "720575940379279360", @@ -744,7 +744,7 @@ "env" : { "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "currentDifficulty" : "45678256", - "currentGasLimit" : "(2**256)-1", + "currentGasLimit" : "(2**256)-1", "currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", "currentNumber" : "0", "currentTimestamp" : 1, @@ -761,9 +761,9 @@ } }, "transaction" : - { + { "data" : "", - "gasLimit" : "(2**256+400)/20", + "gasLimit" : "(2**256+400)/20", "gasLimit" : "5789604461865809771178549250434395392663499233282028201972879200395656482016", "gasPrice" : "20", "nonce" : "0", @@ -793,13 +793,13 @@ } }, "transaction" : - { + { "data" : "", "gasLimit" : "1000", "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "to" : "0xffffffffffffffffffffffffffffffffffffffff", + "to" : "0xffffffffffffffffffffffffffffffffffffffff", "value" : "100" } } diff --git a/test/transaction.cpp b/test/transaction.cpp index ddd7c3dc4..b51494d84 100644 --- a/test/transaction.cpp +++ b/test/transaction.cpp @@ -100,7 +100,7 @@ void doTransactionTests(json_spirit::mValue& _v, bool _fillin) BOOST_REQUIRE(o.count("transaction") > 0); mObject tObj = o["transaction"].get_obj(); - Transaction txFromFields(createRLPStreamFromTransactionFields(tObj).out(),CheckSignature::Sender); + Transaction txFromFields(createRLPStreamFromTransactionFields(tObj).out(), CheckSignature::Sender); //Check the fields restored from RLP to original fields BOOST_CHECK_MESSAGE(txFromFields.data() == txFromRlp.data(), "Data in given RLP not matching the Transaction data!"); diff --git a/test/ttTransactionTestFiller.json b/test/ttTransactionTestFiller.json index 26f32271e..49831261a 100644 --- a/test/ttTransactionTestFiller.json +++ b/test/ttTransactionTestFiller.json @@ -1,303 +1,303 @@ { "RightVRSTest" : { "transaction" : - { + { "data" : "0x5544", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "3", "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : "10", - "v" : "28", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, "WrongVRSTestVl27" : { "transaction" : - { + { "data" : "", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "0", "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : "10", - "v" : "26", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "26", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, "WrongVRSTestVge31" : { "transaction" : - { + { "data" : "", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "0", "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b", "value" : "10", - "v" : "31", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "31", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, - "SenderTest" : { - "//" : "sender a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "SenderTest" : { + "//" : "sender a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "10", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "secretkey 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "secretkey 45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "TransactionWithTooManyRLPElements" : { + "TransactionWithTooManyRLPElements" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "10", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804", - "extrafield" : "128472387293" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804", + "extrafield" : "128472387293" } }, - "TransactionWithTooFewRLPElements" : { + "TransactionWithTooFewRLPElements" : { "transaction" : - { + { "data" : "", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "TransactionWithHihghValue" : { + "TransactionWithHihghValue" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "115792089237316195423570985008687907853269984665640564039457584007913129639935", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "TransactionWithHihghValueOverflow" : { + "TransactionWithHihghValueOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "115792089237316195423570985008687907853269984665640564039457584007913129639936", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, "TransactionWithSvalueOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f" } }, - "TransactionWithRvalueOverflow" : { + "TransactionWithRvalueOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "TransactionWithNonceOverflow" : { + "TransactionWithNonceOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "1", "nonce" : "115792089237316195423570985008687907853269984665640564039457584007913129639936", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, -"TransactionWithGasPriceOverflow" : { + "TransactionWithGasPriceOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "850", "gasPrice" : "115792089237316195423570985008687907853269984665640564039457584007913129639936", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "TransactionWithGasLimitOverflow" : { + "TransactionWithGasLimitOverflow" : { "transaction" : - { + { "data" : "", "gasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639936", "gasPrice" : "123", "nonce" : "0", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, "RLPElementsWithZeros" : { "transaction" : - { + { "data" : "0x0000011222333", "gasLimit" : "1000", "gasPrice" : "00123", "nonce" : "0054", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "00000011", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "RLPWrongHexElements" : { + "RLPWrongHexElements" : { "transaction" : - { + { "data" : "0x0000000012", "gasLimit" : "1000", "gasPrice" : "123", "nonce" : "54", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "11", - "v" : "27", - "r" : "0x0048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0x00efffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x0048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0x00efffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "EmptyTransaction" : { + "EmptyTransaction" : { "transaction" : - { - "data" : "", + { + "data" : "", "gasLimit" : "", "gasPrice" : "", "nonce" : "", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87", "value" : "", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, "WrongAddress" : { "transaction" : - { - "data" : "", + { + "data" : "", "gasLimit" : "", "gasPrice" : "", "nonce" : "", "to" : "095e7baea6a6c7c4c2dfeb977efac326af552d8v", "value" : "", - "v" : "27", - "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", - "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" + "v" : "27", + "r" : "0x48b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353", + "s" : "0xefffd310ac743f371de3b9f7f9cb56c0b28ad43601b4ab949f53faa07bd2c804" } }, - "AddressMoreThan20" : { + "AddressMoreThan20" : { "transaction" : - { + { "data" : "", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "0", "to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b1c", "value" : "10", - "v" : "28", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, - "AddressLessThan20" : { + "AddressLessThan20" : { "transaction" : - { + { "data" : "", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "0", "to" : "b9331677e6ebf", "value" : "10", - "v" : "28", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } }, - "AddressLessThan20Prefixed0" : { + "AddressLessThan20Prefixed0" : { "transaction" : - { + { "data" : "", "gasLimit" : "2000", "gasPrice" : "1", "nonce" : "0", "to" : "0x000000000000000000000000000b9331677e6ebf", "value" : "10", - "v" : "28", - "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", - "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" + "v" : "28", + "r" : "0x98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a", + "s" : "0x8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a3" } } } From 70eafae18736d4c59728b897f54d60de3e525761 Mon Sep 17 00:00:00 2001 From: debris Date: Sun, 8 Feb 2015 21:41:42 +0100 Subject: [PATCH 06/52] fixed arrays << error in msvc --- libdevcore/CommonIO.h | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/libdevcore/CommonIO.h b/libdevcore/CommonIO.h index d2a67921b..23092b702 100644 --- a/libdevcore/CommonIO.h +++ b/libdevcore/CommonIO.h @@ -57,7 +57,7 @@ template struct StreamOut { static S& bypass(S& _out, T const template struct StreamOut { static S& bypass(S& _out, uint8_t const& _t) { _out << (int)_t; return _out; } }; template inline std::ostream& operator<<(std::ostream& _out, std::vector const& _e); -template inline std::ostream& operator<<(std::ostream& _out, std::array const& _e); +template inline std::ostream& operator<<(std::ostream& _out, std::array const& _e); template inline std::ostream& operator<<(std::ostream& _out, std::pair const& _e); template inline std::ostream& operator<<(std::ostream& _out, std::list const& _e); template inline std::ostream& operator<<(std::ostream& _out, std::tuple const& _e); @@ -84,7 +84,7 @@ inline S& streamout(S& _out, std::vector const& _e) template inline std::ostream& operator<<(std::ostream& _out, std::vector const& _e) { streamout(_out, _e); return _out; } -template +template inline S& streamout(S& _out, std::array const& _e) { _out << "["; @@ -98,23 +98,7 @@ inline S& streamout(S& _out, std::array const& _e) _out << "]"; return _out; } -template inline std::ostream& operator<<(std::ostream& _out, std::array const& _e) { streamout(_out, _e); return _out; } - -template -inline S& streamout(S& _out, std::array const& _e) -{ - _out << "["; - if (!_e.empty()) - { - StreamOut::bypass(_out, _e.front()); - auto i = _e.begin(); - for (++i; i != _e.end(); ++i) - StreamOut::bypass(_out << ",", *i); - } - _out << "]"; - return _out; -} -template inline std::ostream& operator<<(std::ostream& _out, std::array const& _e) { streamout(_out, _e); return _out; } +template inline std::ostream& operator<<(std::ostream& _out, std::array const& _e) { streamout(_out, _e); return _out; } template inline S& streamout(S& _out, std::list const& _e) From 92bfd9181208f9e9c66f0b9d3f8b3e0e0107fd70 Mon Sep 17 00:00:00 2001 From: debris Date: Sun, 8 Feb 2015 21:56:15 +0100 Subject: [PATCH 07/52] cmake mess --- alethzero/CMakeLists.txt | 9 ++++++--- eth/CMakeLists.txt | 1 + libweb3jsonrpc/CMakeLists.txt | 5 ++++- lllc/CMakeLists.txt | 2 ++ mix/CMakeLists.txt | 2 ++ solc/CMakeLists.txt | 2 ++ test/CMakeLists.txt | 6 ++++++ third/CMakeLists.txt | 2 ++ 8 files changed, 25 insertions(+), 4 deletions(-) diff --git a/alethzero/CMakeLists.txt b/alethzero/CMakeLists.txt index b58446935..2cd6f43a4 100644 --- a/alethzero/CMakeLists.txt +++ b/alethzero/CMakeLists.txt @@ -32,6 +32,8 @@ eth_add_executable(${EXECUTABLE} add_dependencies(${EXECUTABLE} BuildInfo.h) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} webthree) target_link_libraries(${EXECUTABLE} qwebthree) @@ -40,9 +42,6 @@ target_link_libraries(${EXECUTABLE} evm) target_link_libraries(${EXECUTABLE} ethcore) target_link_libraries(${EXECUTABLE} devcrypto) target_link_libraries(${EXECUTABLE} secp256k1) -if (NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) -target_link_libraries(${EXECUTABLE} serpent) -endif() target_link_libraries(${EXECUTABLE} lll) target_link_libraries(${EXECUTABLE} solidity) target_link_libraries(${EXECUTABLE} evmcore) @@ -51,6 +50,10 @@ target_link_libraries(${EXECUTABLE} web3jsonrpc) target_link_libraries(${EXECUTABLE} jsqrc) target_link_libraries(${EXECUTABLE} natspec) +if (NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) + target_link_libraries(${EXECUTABLE} serpent) +endif() + # eth_install_executable is defined in cmake/EthExecutableHelper.cmake eth_install_executable(${EXECUTABLE}) diff --git a/eth/CMakeLists.txt b/eth/CMakeLists.txt index c98f3cbec..bdd966bfc 100644 --- a/eth/CMakeLists.txt +++ b/eth/CMakeLists.txt @@ -17,6 +17,7 @@ add_dependencies(${EXECUTABLE} BuildInfo.h) target_link_libraries(${EXECUTABLE} ${Boost_REGEX_LIBRARIES}) target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) if (READLINE_FOUND) target_link_libraries(${EXECUTABLE} ${READLINE_LIBRARIES}) diff --git a/libweb3jsonrpc/CMakeLists.txt b/libweb3jsonrpc/CMakeLists.txt index f371024e6..e4e71e885 100644 --- a/libweb3jsonrpc/CMakeLists.txt +++ b/libweb3jsonrpc/CMakeLists.txt @@ -30,7 +30,10 @@ target_link_libraries(${EXECUTABLE} ${JSON_RPC_CPP_SERVER_LIBRARIES}) target_link_libraries(${EXECUTABLE} webthree) target_link_libraries(${EXECUTABLE} secp256k1) target_link_libraries(${EXECUTABLE} solidity) -target_link_libraries(${EXECUTABLE} serpent) + +if (NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) + target_link_libraries(${EXECUTABLE} serpent) +endif() install( TARGETS ${EXECUTABLE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} ) diff --git a/lllc/CMakeLists.txt b/lllc/CMakeLists.txt index 2e76aa6ff..f41584e04 100644 --- a/lllc/CMakeLists.txt +++ b/lllc/CMakeLists.txt @@ -13,6 +13,8 @@ add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) add_dependencies(${EXECUTABLE} BuildInfo.h) +target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} lll) target_link_libraries(${EXECUTABLE} evmcore) target_link_libraries(${EXECUTABLE} devcore) diff --git a/mix/CMakeLists.txt b/mix/CMakeLists.txt index db9452061..235c41b92 100644 --- a/mix/CMakeLists.txt +++ b/mix/CMakeLists.txt @@ -34,6 +34,8 @@ eth_add_executable(${EXECUTABLE} UI_RESOURCES ${UI_RESOURCES} ) +target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} Qt5::Gui) target_link_libraries(${EXECUTABLE} Qt5::Widgets) diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt index 8c0ece27e..96129c499 100644 --- a/solc/CMakeLists.txt +++ b/solc/CMakeLists.txt @@ -13,6 +13,8 @@ add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) target_link_libraries(${EXECUTABLE} ${Boost_FILESYSTEM_LIBRARIES}) target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} solidity) install( TARGETS ${EXECUTABLE} DESTINATION bin ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 36876eea6..4d240a0ee 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,6 +16,8 @@ add_executable(createRandomTest createRandomTest.cpp vm.cpp TestHelper.cpp) add_executable(checkRandomTest checkRandomTest.cpp vm.cpp TestHelper.cpp) target_link_libraries(testeth ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) +target_link_libraries(testeth ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(testeth ${Boost_CHRONO_LIBRARIES}) target_link_libraries(testeth ${CURL_LIBRARIES}) target_link_libraries(testeth ethereum) target_link_libraries(testeth ethcore) @@ -30,9 +32,13 @@ if (JSONRPC) endif() target_link_libraries(createRandomTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) +target_link_libraries(createRandomTest ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(createRandomTest ${Boost_CHRONO_LIBRARIES}) target_link_libraries(createRandomTest ethereum) target_link_libraries(createRandomTest ethcore) target_link_libraries(checkRandomTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) +target_link_libraries(checkRandomTest ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(checkRandomTest ${Boost_CHRONO_LIBRARIES}) target_link_libraries(checkRandomTest ethereum) target_link_libraries(checkRandomTest ethcore) diff --git a/third/CMakeLists.txt b/third/CMakeLists.txt index 71f1e70f2..db72cdebd 100644 --- a/third/CMakeLists.txt +++ b/third/CMakeLists.txt @@ -31,6 +31,8 @@ eth_add_executable(${EXECUTABLE} add_dependencies(${EXECUTABLE} BuildInfo.h) +target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} webthree) target_link_libraries(${EXECUTABLE} qwebthree) From a53a963b647181e5a8fc07c7f385e815afc35b95 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 9 Feb 2015 18:17:15 +0100 Subject: [PATCH 08/52] Integration with system default font size. --- mix/AppContext.cpp | 2 ++ mix/ClientModel.cpp | 1 - mix/qml/BasicContent.qml | 35 -------------------- mix/qml/CodeEditor.qml | 3 +- mix/qml/CodeEditorStyle.qml | 14 ++++++++ mix/qml/Debugger.qml | 19 ++++++----- mix/qml/DebuggerPaneStyle.qml | 15 +++++++++ mix/qml/FilesSection.qml | 26 +++++++-------- mix/qml/ItemDelegateDataDump.qml | 5 +-- mix/qml/{Style.qml => ProjectFilesStyle.qml} | 15 +++++---- mix/qml/ProjectList.qml | 16 ++++----- mix/qml/StateDialog.qml | 3 +- mix/qml/StateList.qml | 3 +- mix/qml/StateStyle.qml | 14 ++++++++ mix/qml/StatusPane.qml | 5 +-- mix/qml/StatusPaneStyle.qml | 15 +++++++++ mix/qml/qmldir | 5 ++- mix/res.qrc | 7 ++-- 18 files changed, 121 insertions(+), 82 deletions(-) delete mode 100644 mix/qml/BasicContent.qml create mode 100644 mix/qml/CodeEditorStyle.qml create mode 100644 mix/qml/DebuggerPaneStyle.qml rename mix/qml/{Style.qml => ProjectFilesStyle.qml} (72%) create mode 100644 mix/qml/StateStyle.qml create mode 100644 mix/qml/StatusPaneStyle.qml diff --git a/mix/AppContext.cpp b/mix/AppContext.cpp index a806a39f4..7fe22106f 100644 --- a/mix/AppContext.cpp +++ b/mix/AppContext.cpp @@ -81,6 +81,8 @@ void AppContext::load() BOOST_THROW_EXCEPTION(exception); } m_applicationEngine->rootContext()->setContextProperty("projectModel", projectModel); + QFont f; + m_applicationEngine->rootContext()->setContextProperty("systemPointSize", f.pointSize()); qmlRegisterType("CodeEditorExtensionManager", 1, 0, "CodeEditorExtensionManager"); qmlRegisterType("HttpServer", 1, 0, "HttpServer"); m_applicationEngine->load(QUrl("qrc:/qml/main.qml")); diff --git a/mix/ClientModel.cpp b/mix/ClientModel.cpp index 602940078..0838668bb 100644 --- a/mix/ClientModel.cpp +++ b/mix/ClientModel.cpp @@ -89,7 +89,6 @@ ClientModel::ClientModel(AppContext* _context): m_web3Server.reset(new Web3Server(*m_rpcConnector.get(), std::vector { m_client->userAccount() }, m_client.get())); connect(m_web3Server.get(), &Web3Server::newTransaction, this, &ClientModel::onNewTransaction, Qt::DirectConnection); - _context->appEngine()->rootContext()->setContextProperty("clientModel", this); } diff --git a/mix/qml/BasicContent.qml b/mix/qml/BasicContent.qml deleted file mode 100644 index ff31dc86f..000000000 --- a/mix/qml/BasicContent.qml +++ /dev/null @@ -1,35 +0,0 @@ -import QtQuick 2.2 -import QtQuick.Controls 1.1 - -Rectangle { - anchors.fill: parent - width: parent.width - height: parent.height - color: "lightgray" - Text { - font.pointSize: 9 - anchors.left: parent.left - anchors.top: parent.top - anchors.topMargin: 3 - anchors.leftMargin: 3 - height: 9 - font.family: "Monospace" - objectName: "status" - id: status - } - TextArea { - readOnly: true - anchors.left: parent.left - anchors.leftMargin: 10 - anchors.top: status.bottom - anchors.topMargin: 3 - font.pointSize: 9 - font.family: "Monospace" - height: parent.height * 0.8 - width: parent.width - 20 - wrapMode: Text.Wrap - backgroundVisible: false - objectName: "content" - id: content - } -} diff --git a/mix/qml/CodeEditor.qml b/mix/qml/CodeEditor.qml index 0c554b379..9d3df69e5 100644 --- a/mix/qml/CodeEditor.qml +++ b/mix/qml/CodeEditor.qml @@ -3,6 +3,7 @@ import QtQuick.Window 2.0 import QtQuick.Layouts 1.0 import QtQuick.Controls 1.0 import QtQuick.Controls.Styles 1.1 +import "." Item { signal editorTextChanged @@ -65,7 +66,7 @@ Item { height: parent.height font.family: "Monospace" - font.pointSize: 12 + font.pointSize: CodeEditorStyle.general.basicFontSize width: parent.width tabChangesFocus: false diff --git a/mix/qml/CodeEditorStyle.qml b/mix/qml/CodeEditorStyle.qml new file mode 100644 index 000000000..c9740957c --- /dev/null +++ b/mix/qml/CodeEditorStyle.qml @@ -0,0 +1,14 @@ +pragma Singleton +import QtQuick 2.0 + +QtObject { + + function absoluteSize(rel) + { + return systemPointSize + rel; + } + + property QtObject general: QtObject { + property int basicFontSize: absoluteSize(1) + } +} diff --git a/mix/qml/Debugger.qml b/mix/qml/Debugger.qml index e9c718f70..94ab88cf4 100644 --- a/mix/qml/Debugger.qml +++ b/mix/qml/Debugger.qml @@ -6,6 +6,7 @@ import QtQuick.Layouts 1.1 import Qt.labs.settings 1.0 import "js/Debugger.js" as Debugger import "js/ErrorLocationFormater.js" as ErrorLocationFormater +import "." Rectangle { id: debugPanel @@ -346,7 +347,7 @@ Rectangle { color: "#b2b3ae" text: styleData.value.split(' ')[0] font.family: "monospace" - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize wrapMode: Text.NoWrap id: id } @@ -356,7 +357,7 @@ Rectangle { color: styleData.selected ? "white" : "black" font.family: "monospace" text: styleData.value.replace(styleData.value.split(' ')[0], '') - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize } } } @@ -425,11 +426,11 @@ Rectangle { Layout.minimumHeight: parent.height Text { anchors.centerIn: parent - anchors.leftMargin: 5 + anchors.leftMargin: 5() font.family: "monospace" color: "#4a4a4a" text: styleData.row; - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize } } @@ -447,7 +448,7 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter color: "#4a4a4a" text: styleData.value - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize } } } @@ -514,7 +515,7 @@ Rectangle { anchors.leftMargin: 5 color: "#4a4a4a" text: styleData.row; - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize width: parent.width - 5 elide: Text.ElideRight } @@ -535,7 +536,7 @@ Rectangle { color: "#4a4a4a" text: styleData.value; elide: Text.ElideRight - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize } } } @@ -585,7 +586,7 @@ Rectangle { anchors.leftMargin: 5 color: "#4a4a4a" text: styleData.value.split('\t')[0]; - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize width: parent.width - 5 elide: Text.ElideRight } @@ -606,7 +607,7 @@ Rectangle { color: "#4a4a4a" text: styleData.value.split('\t')[1]; elide: Text.ElideRight - font.pointSize: 9 + font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize } } } diff --git a/mix/qml/DebuggerPaneStyle.qml b/mix/qml/DebuggerPaneStyle.qml new file mode 100644 index 000000000..1078df2f9 --- /dev/null +++ b/mix/qml/DebuggerPaneStyle.qml @@ -0,0 +1,15 @@ +pragma Singleton +import QtQuick 2.0 + +QtObject { + + function absoluteSize(rel) + { + return systemPointSize + rel; + } + + property QtObject general: QtObject { + property int basicFontSize: absoluteSize(-2) + property int dataDumpFontSize: absoluteSize(-3) + } +} diff --git a/mix/qml/FilesSection.qml b/mix/qml/FilesSection.qml index 32202f839..76e235e7d 100644 --- a/mix/qml/FilesSection.qml +++ b/mix/qml/FilesSection.qml @@ -20,17 +20,17 @@ ColumnLayout { function hiddenHeightTopLevel() { - return section.state === "hidden" ? Style.documentsList.height : Style.documentsList.fileNameHeight * model.count + Style.documentsList.height; + return section.state === "hidden" ? ProjectFilesStyle.documentsList.height : ProjectFilesStyle.documentsList.fileNameHeight * model.count + ProjectFilesStyle.documentsList.height; } function hiddenHeightRepeater() { - return section.state === "hidden" ? 0 : Style.documentsList.fileNameHeight * wrapperItem.model.count; + return section.state === "hidden" ? 0 : ProjectFilesStyle.documentsList.fileNameHeight * wrapperItem.model.count; } function hiddenHeightElement() { - return section.state === "hidden" ? 0 : Style.documentsList.fileNameHeight; + return section.state === "hidden" ? 0 : ProjectFilesStyle.documentsList.fileNameHeight; } function getDocumentIndex(documentId) @@ -65,7 +65,7 @@ ColumnLayout { anchors.top: parent.top id: rowCol width: parent.width - height: Style.documentsList.height + height: ProjectFilesStyle.documentsList.height Image { source: "qrc:/qml/img/opentriangleindicator_filesproject.png" @@ -83,15 +83,15 @@ ColumnLayout { id: section text: sectionName anchors.left: parent.left - anchors.leftMargin: Style.general.leftMargin - color: Style.documentsList.sectionColor + anchors.leftMargin: ProjectFilesStyle.general.leftMargin + color: ProjectFilesStyle.documentsList.sectionColor font.family: boldFont.name - font.pointSize: Style.documentsList.sectionFontSize + font.pointSize: ProjectFilesStyle.documentsList.sectionFontSize states: [ State { name: "hidden" PropertyChanges { target: filesList; visible: false; } - PropertyChanges { target: rowCol; Layout.minimumHeight: Style.documentsList.height; Layout.maximumHeight: Style.documentsList.height; height: Style.documentsList.height; } + PropertyChanges { target: rowCol; Layout.minimumHeight: ProjectFilesStyle.documentsList.height; Layout.maximumHeight: ProjectFilesStyle.documentsList.height; height: ProjectFilesStyle.documentsList.height; } PropertyChanges { target: imgArrow; source: "qrc:/qml/img/closedtriangleindicator_filesproject.png" } } ] @@ -132,21 +132,21 @@ ColumnLayout { Layout.preferredHeight: wrapperItem.hiddenHeightElement() Layout.maximumHeight: wrapperItem.hiddenHeightElement() height: wrapperItem.hiddenHeightElement() - color: isSelected ? Style.documentsList.highlightColor : Style.documentsList.background + color: isSelected ? ProjectFilesStyle.documentsList.highlightColor : ProjectFilesStyle.documentsList.background property bool isSelected property bool renameMode Text { id: nameText height: parent.height visible: !renameMode - color: rootItem.isSelected ? Style.documentsList.selectedColor : Style.documentsList.color + color: rootItem.isSelected ? ProjectFilesStyle.documentsList.selectedColor : ProjectFilesStyle.documentsList.color text: name; font.family: fileNameFont.name - font.pointSize: Style.documentsList.fontSize + font.pointSize: ProjectFilesStyle.documentsList.fontSize anchors.verticalCenter: parent.verticalCenter verticalAlignment: Text.AlignVCenter anchors.left: parent.left - anchors.leftMargin: Style.general.leftMargin + 2 + anchors.leftMargin: ProjectFilesStyle.general.leftMargin + 2 width: parent.width Connections { @@ -171,7 +171,7 @@ ColumnLayout { visible: renameMode anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - anchors.leftMargin: Style.general.leftMargin + anchors.leftMargin: ProjectFilesStyle.general.leftMargin MouseArea { id: textMouseArea anchors.fill: parent diff --git a/mix/qml/ItemDelegateDataDump.qml b/mix/qml/ItemDelegateDataDump.qml index a57a61b03..9aa6d00db 100644 --- a/mix/qml/ItemDelegateDataDump.qml +++ b/mix/qml/ItemDelegateDataDump.qml @@ -2,6 +2,7 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Layouts 1.0 import QtQuick.Controls.Styles 1.1 +import "." Rectangle { anchors.fill: parent @@ -27,7 +28,7 @@ Rectangle { font.bold: true color: "#4a4a4a" text: modelData[0] - font.pointSize: 8; + font.pointSize: DebuggerPaneStyle.general.dataDumpFontSize; } } @@ -46,7 +47,7 @@ Rectangle { anchors.leftMargin: 4 color: "#4a4a4a" text: modelData[1] - font.pointSize: 8 + font.pointSize: DebuggerPaneStyle.general.dataDumpFontSize } } } diff --git a/mix/qml/Style.qml b/mix/qml/ProjectFilesStyle.qml similarity index 72% rename from mix/qml/Style.qml rename to mix/qml/ProjectFilesStyle.qml index 348d8c4d1..cb8225e0d 100644 --- a/mix/qml/Style.qml +++ b/mix/qml/ProjectFilesStyle.qml @@ -1,10 +1,13 @@ pragma Singleton import QtQuick 2.0 -/* - * Project Files - */ QtObject { + + function absoluteSize(rel) + { + return systemPointSize + rel; + } + property QtObject general: QtObject { property int leftMargin: 45 } @@ -13,7 +16,7 @@ QtObject { property string color: "#808080" property string background: "#f0f0f0" property int height: 55 - property int pointSize: 18 + property int fontSize: absoluteSize(7);// 18 } property QtObject documentsList: QtObject { @@ -24,7 +27,7 @@ QtObject { property string highlightColor: "#4a90e2" property int height: 25 property int fileNameHeight: 30 - property int fontSize: 13 - property int sectionFontSize: 13 + property int fontSize: absoluteSize(2)// 13 + property int sectionFontSize: absoluteSize(2)// 13 } } diff --git a/mix/qml/ProjectList.qml b/mix/qml/ProjectList.qml index 138e86fe9..347e72bcb 100644 --- a/mix/qml/ProjectList.qml +++ b/mix/qml/ProjectList.qml @@ -20,8 +20,8 @@ Item { Rectangle { - color: Style.title.background - height: Style.title.height + color: ProjectFilesStyle.title.background + height: ProjectFilesStyle.title.height Layout.fillWidth: true Image { id: projectIcon @@ -35,14 +35,14 @@ Item { Text { id: projectTitle - color: Style.title.color + color: ProjectFilesStyle.title.color text: projectModel.projectTitle anchors.verticalCenter: parent.verticalCenter visible: !projectModel.isEmpty; anchors.left: parent.left - anchors.leftMargin: Style.general.leftMargin + anchors.leftMargin: ProjectFilesStyle.general.leftMargin font.family: srcSansProLight.name - font.pointSize: Style.title.pointSize + font.pointSize: ProjectFilesStyle.title.fontSize font.weight: Font.Light } @@ -52,7 +52,7 @@ Item { anchors.right: parent.right anchors.rightMargin: 15 font.family: srcSansProLight.name - font.pointSize: Style.title.pointSize + font.pointSize: ProjectFilesStyle.title.fontSize anchors.verticalCenter: parent.verticalCenter font.weight: Font.Light } @@ -62,7 +62,7 @@ Item { { Layout.fillWidth: true height: 10 - color: Style.documentsList.background + color: ProjectFilesStyle.documentsList.background } @@ -71,7 +71,7 @@ Item { { Layout.fillWidth: true Layout.fillHeight: true - color: Style.documentsList.background + color: ProjectFilesStyle.documentsList.background ColumnLayout { diff --git a/mix/qml/StateDialog.qml b/mix/qml/StateDialog.qml index fa48c640e..4384b81a6 100644 --- a/mix/qml/StateDialog.qml +++ b/mix/qml/StateDialog.qml @@ -5,6 +5,7 @@ import QtQuick.Window 2.0 import org.ethereum.qml.QEther 1.0 import "js/QEtherHelper.js" as QEtherHelper import "js/TransactionHelper.js" as TransactionHelper +import "." Window { id: modalStateDialog @@ -158,7 +159,7 @@ Window { Layout.fillWidth: true Layout.fillHeight: true text: functionId - font.pointSize: 12 + font.pointSize: StateStyle.general.basicFontSize //12 verticalAlignment: Text.AlignBottom } ToolButton { diff --git a/mix/qml/StateList.qml b/mix/qml/StateList.qml index 059b35bc2..f6f778cd9 100644 --- a/mix/qml/StateList.qml +++ b/mix/qml/StateList.qml @@ -4,6 +4,7 @@ import QtQuick.Controls 1.1 import QtQuick.Dialogs 1.1 import QtQuick.Layouts 1.1 import QtQuick.Window 2.0 +import "." Window { id: stateListContainer @@ -45,7 +46,7 @@ Window { Layout.fillWidth: true Layout.fillHeight: true text: styleData.value - font.pointSize: 12 + font.pointSize: StateStyle.general.basicFontSize verticalAlignment: Text.AlignBottom } ToolButton { diff --git a/mix/qml/StateStyle.qml b/mix/qml/StateStyle.qml new file mode 100644 index 000000000..c9740957c --- /dev/null +++ b/mix/qml/StateStyle.qml @@ -0,0 +1,14 @@ +pragma Singleton +import QtQuick 2.0 + +QtObject { + + function absoluteSize(rel) + { + return systemPointSize + rel; + } + + property QtObject general: QtObject { + property int basicFontSize: absoluteSize(1) + } +} diff --git a/mix/qml/StatusPane.qml b/mix/qml/StatusPane.qml index 57ade7a3a..956d3f2ec 100644 --- a/mix/qml/StatusPane.qml +++ b/mix/qml/StatusPane.qml @@ -2,6 +2,7 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Layouts 1.1 import "js/ErrorLocationFormater.js" as ErrorLocationFormater +import "." Rectangle { id: statusHeader @@ -59,7 +60,7 @@ Rectangle { spacing: 5 Text { - font.pointSize: 10 + font.pointSize: StatusPaneStyle.general.statusFontSize height: 9 font.family: "sans serif" objectName: "status" @@ -81,7 +82,7 @@ Rectangle { Text { visible: false - font.pointSize: 9 + font.pointSize: StatusPaneStyle.general.logLinkFontSize height: 9 text: qsTr("See Log.") font.family: "Monospace" diff --git a/mix/qml/StatusPaneStyle.qml b/mix/qml/StatusPaneStyle.qml new file mode 100644 index 000000000..e6a1c9910 --- /dev/null +++ b/mix/qml/StatusPaneStyle.qml @@ -0,0 +1,15 @@ +pragma Singleton +import QtQuick 2.0 + +QtObject { + + function absoluteSize(rel) + { + return systemPointSize + rel; + } + + property QtObject general: QtObject { + property int statusFontSize: absoluteSize(-1) + property int logLinkFontSize: absoluteSize(-2) + } +} diff --git a/mix/qml/qmldir b/mix/qml/qmldir index 819842274..9eb0effd0 100644 --- a/mix/qml/qmldir +++ b/mix/qml/qmldir @@ -1 +1,4 @@ -singleton Style 1.0 Style.qml +singleton ProjectFilesStyle 1.0 ProjectFilesStyle.qml +singleton DebuggerPaneStyle 1.0 DebuggerPaneStyle.qml +singleton StateStyle 1.0 StateStyle.qml +singleton StatusPaneStyle 1.0 StatusPaneStyle.qml diff --git a/mix/res.qrc b/mix/res.qrc index d17c32549..a22a2d25b 100644 --- a/mix/res.qrc +++ b/mix/res.qrc @@ -2,7 +2,6 @@ qml/main.qml qml/AlertMessageDialog.qml - qml/BasicContent.qml qml/BasicMessage.qml qml/Debugger.qml qml/MainContent.qml @@ -63,7 +62,6 @@ res/mix_256x256x32.png qml/CallStack.qml qml/QVariableDeclaration.qml - qml/Style.qml qml/qmldir qml/FilesSection.qml qml/fonts/SourceSansPro-Black.ttf @@ -84,5 +82,10 @@ qml/img/closedtriangleindicator_filesproject.png qml/img/opentriangleindicator_filesproject.png qml/img/projecticon.png + qml/ProjectFilesStyle.qml + qml/DebuggerPaneStyle.qml + qml/CodeEditorStyle.qml + qml/StatusPaneStyle.qml + qml/StateStyle.qml From d5b3f224c650676df5a916f2d51bebd5bb634725 Mon Sep 17 00:00:00 2001 From: winsvega Date: Mon, 9 Feb 2015 23:40:47 +0300 Subject: [PATCH 09/52] Bigint bigint(1) << 256 --- test/TestHelper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index fbb302f15..ed351bb73 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -108,7 +108,7 @@ void ImportTest::importState(json_spirit::mObject& _o, State& _state) BOOST_REQUIRE(o.count("storage") > 0); BOOST_REQUIRE(o.count("code") > 0); - bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); + bigint biValue256 = bigint(1) << 256; if (bigint(o["balance"].get_str()) >= biValue256) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("State 'balance' is equal or greater than 2**256") ); if (bigint(o["nonce"].get_str()) >= biValue256) @@ -146,7 +146,7 @@ void ImportTest::importTransaction(json_spirit::mObject& _o) BOOST_REQUIRE(_o.count("secretKey") > 0); BOOST_REQUIRE(_o.count("data") > 0); - bigint biValue256 = bigint("115792089237316195423570985008687907853269984665640564039457584007913129639936"); + bigint biValue256 = bigint(1) << 256; if (bigint(_o["nonce"].get_str()) >= biValue256) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'nonce' is equal or greater than 2**256") ); if (bigint(_o["gasPrice"].get_str()) >= biValue256) From 62c685ae7c7a8fedf87d12a8fd5b6cc605b65ee1 Mon Sep 17 00:00:00 2001 From: yann300 Date: Mon, 9 Feb 2015 22:38:30 +0100 Subject: [PATCH 10/52] integration with system font size - bug fix --- mix/qml/Debugger.qml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mix/qml/Debugger.qml b/mix/qml/Debugger.qml index 94ab88cf4..2bf23ccef 100644 --- a/mix/qml/Debugger.qml +++ b/mix/qml/Debugger.qml @@ -347,7 +347,7 @@ Rectangle { color: "#b2b3ae" text: styleData.value.split(' ')[0] font.family: "monospace" - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize wrapMode: Text.NoWrap id: id } @@ -357,7 +357,7 @@ Rectangle { color: styleData.selected ? "white" : "black" font.family: "monospace" text: styleData.value.replace(styleData.value.split(' ')[0], '') - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize } } } @@ -430,7 +430,7 @@ Rectangle { font.family: "monospace" color: "#4a4a4a" text: styleData.row; - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize } } @@ -448,7 +448,7 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter color: "#4a4a4a" text: styleData.value - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize } } } @@ -515,7 +515,7 @@ Rectangle { anchors.leftMargin: 5 color: "#4a4a4a" text: styleData.row; - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize width: parent.width - 5 elide: Text.ElideRight } @@ -536,7 +536,7 @@ Rectangle { color: "#4a4a4a" text: styleData.value; elide: Text.ElideRight - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize } } } @@ -586,7 +586,7 @@ Rectangle { anchors.leftMargin: 5 color: "#4a4a4a" text: styleData.value.split('\t')[0]; - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize width: parent.width - 5 elide: Text.ElideRight } @@ -607,7 +607,7 @@ Rectangle { color: "#4a4a4a" text: styleData.value.split('\t')[1]; elide: Text.ElideRight - font.pointSize: DebuggerPaneProjectFilesStyle.general.basicFontSize + font.pointSize: DebuggerPaneStyle.general.basicFontSize } } } From df50b9a784db711f13eae2dd2a561a0e718c26cd Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 10:49:41 +0100 Subject: [PATCH 11/52] added missing pragma once --- libnatspec/NatspecExpressionEvaluator.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libnatspec/NatspecExpressionEvaluator.h b/libnatspec/NatspecExpressionEvaluator.h index fc122084e..2ea224027 100644 --- a/libnatspec/NatspecExpressionEvaluator.h +++ b/libnatspec/NatspecExpressionEvaluator.h @@ -19,6 +19,8 @@ * @date 2015 */ +#pragma once + #include #include #include From ce3638f75dd90b90e0d889975182ca6f1238e4a4 Mon Sep 17 00:00:00 2001 From: winsvega Date: Tue, 10 Feb 2015 13:07:31 +0300 Subject: [PATCH 12/52] Test related Constant in TestHelper.h Exception in TestHelper.h --- libdevcore/Exceptions.h | 1 - test/TestHelper.cpp | 14 ++++++-------- test/TestHelper.h | 3 +++ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libdevcore/Exceptions.h b/libdevcore/Exceptions.h index 961fc6f4c..e13d41476 100644 --- a/libdevcore/Exceptions.h +++ b/libdevcore/Exceptions.h @@ -33,7 +33,6 @@ namespace dev // base class for all exceptions struct Exception: virtual std::exception, virtual boost::exception { mutable std::string m_message; }; -struct ValueTooLarge: virtual Exception {}; struct BadHexCharacter: virtual Exception {}; struct RLPException: virtual Exception {}; struct BadCast: virtual RLPException {}; diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index ed351bb73..8e4c493eb 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -108,10 +108,9 @@ void ImportTest::importState(json_spirit::mObject& _o, State& _state) BOOST_REQUIRE(o.count("storage") > 0); BOOST_REQUIRE(o.count("code") > 0); - bigint biValue256 = bigint(1) << 256; - if (bigint(o["balance"].get_str()) >= biValue256) + if (bigint(o["balance"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("State 'balance' is equal or greater than 2**256") ); - if (bigint(o["nonce"].get_str()) >= biValue256) + if (bigint(o["nonce"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("State 'nonce' is equal or greater than 2**256") ); Address address = Address(i.first); @@ -146,14 +145,13 @@ void ImportTest::importTransaction(json_spirit::mObject& _o) BOOST_REQUIRE(_o.count("secretKey") > 0); BOOST_REQUIRE(_o.count("data") > 0); - bigint biValue256 = bigint(1) << 256; - if (bigint(_o["nonce"].get_str()) >= biValue256) + if (bigint(_o["nonce"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'nonce' is equal or greater than 2**256") ); - if (bigint(_o["gasPrice"].get_str()) >= biValue256) + if (bigint(_o["gasPrice"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'gasPrice' is equal or greater than 2**256") ); - if (bigint(_o["gasLimit"].get_str()) >= biValue256) + if (bigint(_o["gasLimit"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'gasLimit' is equal or greater than 2**256") ); - if (bigint(_o["value"].get_str()) >= biValue256) + if (bigint(_o["value"].get_str()) >= c_max256plus1) BOOST_THROW_EXCEPTION(ValueTooLarge() << errinfo_comment("Transaction 'value' is equal or greater than 2**256") ); m_transaction = _o["to"].get_str().empty() ? diff --git a/test/TestHelper.h b/test/TestHelper.h index ae6ea20cc..2b93bccfb 100644 --- a/test/TestHelper.h +++ b/test/TestHelper.h @@ -42,6 +42,9 @@ void connectClients(Client& c1, Client& c2); namespace test { +struct ValueTooLarge: virtual Exception {}; +bigint const c_max256plus1 = bigint(1) << 256; + class ImportTest { public: From b6cb2a87eed2f8b2e8fc1083c0ec2801ee300980 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 12:15:44 +0100 Subject: [PATCH 13/52] fixed jsoncpp find_path --- CMakeLists.txt | 7 ++++--- alethzero/NatspecHandler.h | 2 +- cmake/FindJsoncpp.cmake | 3 ++- libsolidity/ASTJsonConverter.h | 2 +- libsolidity/InterfaceHandler.h | 2 +- test/SolidityABIJSON.cpp | 2 +- test/SolidityNatspecJSON.cpp | 2 +- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a3adde425..a7de17000 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,15 +135,15 @@ endif() add_subdirectory(libdevcore) add_subdirectory(libevmcore) add_subdirectory(liblll) + if (NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) add_subdirectory(libserpent) + add_subdirectory(sc) endif () + add_subdirectory(libsolidity) add_subdirectory(lllc) add_subdirectory(solc) -if (NOT ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")) -add_subdirectory(sc) -endif() if (JSONRPC) add_subdirectory(libweb3jsonrpc) @@ -161,6 +161,7 @@ add_subdirectory(libethereum) add_subdirectory(libwebthree) add_subdirectory(test) add_subdirectory(eth) + if("x${CMAKE_BUILD_TYPE}" STREQUAL "xDebug") add_subdirectory(exp) endif () diff --git a/alethzero/NatspecHandler.h b/alethzero/NatspecHandler.h index edd9281d7..98677dbc2 100644 --- a/alethzero/NatspecHandler.h +++ b/alethzero/NatspecHandler.h @@ -26,7 +26,7 @@ #pragma warning(disable: 4100 4267) #include #pragma warning(pop) -#include +#include #include namespace ldb = leveldb; diff --git a/cmake/FindJsoncpp.cmake b/cmake/FindJsoncpp.cmake index 36ba12a3e..c5b9c87d8 100644 --- a/cmake/FindJsoncpp.cmake +++ b/cmake/FindJsoncpp.cmake @@ -12,7 +12,8 @@ # only look in default directories find_path( JSONCPP_INCLUDE_DIR - NAMES jsoncpp/json/json.h + NAMES json/json.h + PATH_SUFFIXES jsoncpp DOC "jsoncpp include dir" ) diff --git a/libsolidity/ASTJsonConverter.h b/libsolidity/ASTJsonConverter.h index cb43c2d9e..466801e9c 100644 --- a/libsolidity/ASTJsonConverter.h +++ b/libsolidity/ASTJsonConverter.h @@ -27,7 +27,7 @@ #include #include #include -#include +#include namespace dev { diff --git a/libsolidity/InterfaceHandler.h b/libsolidity/InterfaceHandler.h index 2b62cabdf..08232e4d2 100644 --- a/libsolidity/InterfaceHandler.h +++ b/libsolidity/InterfaceHandler.h @@ -28,7 +28,7 @@ #include #include -#include +#include namespace dev { diff --git a/test/SolidityABIJSON.cpp b/test/SolidityABIJSON.cpp index d600340eb..9cb7c9445 100644 --- a/test/SolidityABIJSON.cpp +++ b/test/SolidityABIJSON.cpp @@ -22,7 +22,7 @@ #include #include -#include +#include #include namespace dev diff --git a/test/SolidityNatspecJSON.cpp b/test/SolidityNatspecJSON.cpp index 911820ddd..91d504e8c 100644 --- a/test/SolidityNatspecJSON.cpp +++ b/test/SolidityNatspecJSON.cpp @@ -21,7 +21,7 @@ */ #include -#include +#include #include #include #include From 2ad606baeb7db4c3ba11dde1495dad07498676ff Mon Sep 17 00:00:00 2001 From: yann300 Date: Tue, 10 Feb 2015 12:40:00 +0100 Subject: [PATCH 14/52] bug fix #995 mix: Menu item "Open Project" doesn't do anything #995 --- mix/qml/ProjectList.qml | 5 +++++ mix/qml/ProjectModel.qml | 26 +------------------------- mix/qml/js/ProjectModel.js | 8 -------- mix/qml/main.qml | 27 +++++++++++++++++++++++++-- 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/mix/qml/ProjectList.qml b/mix/qml/ProjectList.qml index 138e86fe9..6895de125 100644 --- a/mix/qml/ProjectList.qml +++ b/mix/qml/ProjectList.qml @@ -137,7 +137,12 @@ Item { sectionModel.clear(); } + onProjectClosed: { + sectionModel.clear(); + } + onProjectLoaded: { + sectionModel.clear(); addDocToSubModel(); if (modelData === "Contracts") { diff --git a/mix/qml/ProjectModel.qml b/mix/qml/ProjectModel.qml index 42bf91d9d..10dde5b41 100644 --- a/mix/qml/ProjectModel.qml +++ b/mix/qml/ProjectModel.qml @@ -34,11 +34,9 @@ Item { //interface function saveAll() { ProjectModelCode.saveAll(); } function createProject() { ProjectModelCode.createProject(); } - function browseProject() { ProjectModelCode.browseProject(); } function closeProject() { ProjectModelCode.closeProject(); } function saveProject() { ProjectModelCode.saveProject(); } function loadProject(path) { ProjectModelCode.loadProject(path); } - function addExistingFile() { ProjectModelCode.addExistingFile(); } function newHtmlFile() { ProjectModelCode.newHtmlFile(); } function newJsFile() { ProjectModelCode.newJsFile(); } function newCssFile() { ProjectModelCode.newCssFile(); } @@ -50,6 +48,7 @@ Item { function removeDocument(documentId) { ProjectModelCode.removeDocument(documentId); } function getDocument(documentId) { return ProjectModelCode.getDocument(documentId); } function getDocumentIndex(documentId) { return ProjectModelCode.getDocumentIndex(documentId); } + function doAddExistingFiles(paths) { ProjectModelCode.doAddExistingFiles(paths); } Connections { target: appContext @@ -96,27 +95,4 @@ Item { id: projectSettings property string lastProjectPath; } - - FileDialog { - id: openProjectFileDialog - visible: false - title: qsTr("Open a Project") - selectFolder: true - onAccepted: { - var path = openProjectFileDialog.fileUrl.toString(); - path += "/"; - loadProject(path); - } - } - - FileDialog { - id: addExistingFileDialog - visible: false - title: qsTr("Add a File") - selectFolder: false - onAccepted: { - var paths = addExistingFileDialog.fileUrls; - ProjectModelCode.doAddExistingFiles(paths); - } - } } diff --git a/mix/qml/js/ProjectModel.js b/mix/qml/js/ProjectModel.js index ac44dffa9..7c7a8ae4c 100644 --- a/mix/qml/js/ProjectModel.js +++ b/mix/qml/js/ProjectModel.js @@ -28,10 +28,6 @@ function createProject() { newProjectDialog.open(); } -function browseProject() { - openProjectFileDialog.open(); -} - function closeProject() { if (!isEmpty) { if (haveUnsavedChanges) @@ -77,10 +73,6 @@ function loadProject(path) { projectLoaded() } -function addExistingFile() { - addExistingFileDialog.open(); -} - function addFile(fileName) { var p = projectPath + fileName; var extension = fileName.substring(fileName.lastIndexOf("."), fileName.length); diff --git a/mix/qml/main.qml b/mix/qml/main.qml index ea5d6dd04..79430eb59 100644 --- a/mix/qml/main.qml +++ b/mix/qml/main.qml @@ -203,7 +203,19 @@ ApplicationWindow { text: qsTr("&Open Project") shortcut: "Ctrl+O" enabled: true; - onTriggered: projectModel.browseProject(); + onTriggered: openProjectFileDialog.open() + } + + FileDialog { + id: openProjectFileDialog + visible: false + title: qsTr("Open a Project") + selectFolder: true + onAccepted: { + var path = openProjectFileDialog.fileUrl.toString(); + path += "/"; + projectModel.loadProject(path); + } } Action { @@ -243,7 +255,18 @@ ApplicationWindow { text: qsTr("Add Existing File") shortcut: "Ctrl+Alt+A" enabled: !projectModel.isEmpty - onTriggered: projectModel.addExistingFile(); + onTriggered: addExistingFileDialog.open() + } + + FileDialog { + id: addExistingFileDialog + visible: false + title: qsTr("Add a File") + selectFolder: false + onAccepted: { + var paths = addExistingFileDialog.fileUrls; + projectModel.doAddExistingFiles(paths); + } } Action { From 604aef47cbd1a67d917ba8d4d352cd38eb290dfe Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 14:31:27 +0100 Subject: [PATCH 15/52] BuildInfo.sh replaced with custom cmake script --- BuildInfo.h.in | 7 +++++ BuildInfo.sh | 55 ----------------------------------- CMakeLists.txt | 7 ++++- cmake/EthDependencies.cmake | 8 +++++ cmake/scripts/buildinfo.cmake | 33 +++++++++++++++++++++ cmake/scripts/configure.cmake | 14 +++++++++ 6 files changed, 68 insertions(+), 56 deletions(-) create mode 100644 BuildInfo.h.in delete mode 100644 BuildInfo.sh create mode 100644 cmake/scripts/buildinfo.cmake create mode 100644 cmake/scripts/configure.cmake diff --git a/BuildInfo.h.in b/BuildInfo.h.in new file mode 100644 index 000000000..7d2bfc1c8 --- /dev/null +++ b/BuildInfo.h.in @@ -0,0 +1,7 @@ +#pragma once + +#define ETH_COMMIT_HASH @ETH_COMMIT_HASH@ +#define ETH_CLEAN_REPO @ETH_CLEAN_REPO@ +#define ETH_BUILD_TYPE @ETH_BUILD_TYPE@ +#define ETH_BUILD_PLATFORM @ETH_BUILD_PLATFORM@ + diff --git a/BuildInfo.sh b/BuildInfo.sh deleted file mode 100644 index 0370297df..000000000 --- a/BuildInfo.sh +++ /dev/null @@ -1,55 +0,0 @@ -CURRENT_SOURCE_DIR=$1 -CURRENT_BINARY_DIR=$2 -BUILD_TYPE=$3 -BUILD_PLATFORM=$4 - -echo "Current source dir: $CURRENT_SOURCE_DIR" -echo "Current binary dir: $CURRENT_BINARY_DIR" -echo "Build type: $BUILD_TYPE" -echo "Build platform: $BUILD_PLATFORM" - -if [[ -e "$CURRENT_SOURCE_DIR/BuildInfo.h" ]] -then - echo "Using existing BuildInfo.h" - cp $CURRENT_SOURCE_DIR/BuildInfo.h $CURRENT_BINARY_DIR/BuildInfo.h.tmp -else - if [[ -e "$CURRENT_SOURCE_DIR/.git" ]] - then - ETH_COMMIT_HASH=$(git --git-dir=$CURRENT_SOURCE_DIR/.git --work-tree=$CURRENT_SOURCE_DIR rev-parse HEAD) - ETH_LOCAL_CHANGES=$(git --git-dir=$CURRENT_SOURCE_DIR/.git --work-tree=$CURRENT_SOURCE_DIR diff --shortstat) - if [[ -z "$ETH_LOCAL_CHANGES" ]] - then - ETH_CLEAN_REPO=1 - else - ETH_CLEAN_REPO=0 - fi - - echo "Commit hash: ${ETH_COMMIT_HASH} (Clean: ${ETH_CLEAN_REPO} - ${ETH_LOCAL_CHANGES})" - else - echo "Unknown repo." - ETH_COMMIT_HASH=0 - ETH_CLEAN_REPO=1 - fi - - echo "// This file was automatically generated by cmake" > $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "#pragma once" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "#define ETH_COMMIT_HASH $ETH_COMMIT_HASH" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "#define ETH_CLEAN_REPO $ETH_CLEAN_REPO" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "#define ETH_BUILD_TYPE $BUILD_TYPE" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp - echo "#define ETH_BUILD_PLATFORM $BUILD_PLATFORM" >> $CURRENT_BINARY_DIR/BuildInfo.h.tmp -fi - -if [[ -e "$CURRENT_BINARY_DIR/BuildInfo.h" ]] -then - DIFF=$(diff $CURRENT_BINARY_DIR/BuildInfo.h $CURRENT_BINARY_DIR/BuildInfo.h.tmp) - if [[ -z "$DIFF" ]] - then - rm $CURRENT_BINARY_DIR/BuildInfo.h.tmp - else - mv $CURRENT_BINARY_DIR/BuildInfo.h.tmp $CURRENT_BINARY_DIR/BuildInfo.h - fi -else - mv $CURRENT_BINARY_DIR/BuildInfo.h.tmp $CURRENT_BINARY_DIR/BuildInfo.h -fi diff --git a/CMakeLists.txt b/CMakeLists.txt index a3adde425..e6b49bf72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,12 @@ function(createBuildInfo) endif() # Generate header file containing useful build information - add_custom_target(BuildInfo.h ALL COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo.sh ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${_cmake_build_type} ${ETH_BUILD_PLATFORM}) + add_custom_target(BuildInfo.h ALL + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + COMMAND cmake -DETH_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DETH_DST_DIR=${CMAKE_BINARY_DIR} + -DETH_BUILD_TYPE=${_cmake_build_type} -DETH_BUILD_PLATFORM=${ETH_BUILD_PLATFORM} + -P ${ETH_SCRIPTS_DIR}/buildinfo.cmake + ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) set(CMAKE_INCLUDE_CURRENT_DIR ON) diff --git a/cmake/EthDependencies.cmake b/cmake/EthDependencies.cmake index 8ff3d1460..00f99e7e3 100644 --- a/cmake/EthDependencies.cmake +++ b/cmake/EthDependencies.cmake @@ -7,6 +7,14 @@ string(TOLOWER ${CMAKE_SYSTEM_NAME} _system_name) set (ETH_DEPENDENCY_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extdep/install/${_system_name}") set (CMAKE_PREFIX_PATH ${ETH_DEPENDENCY_INSTALL_DIR}) +# setup directory for cmake generated files and include it globally +# it's not used yet, but if we have more generated files, consider moving them to ETH_GENERATED_DIR +set(ETH_GENERATED_DIR "${PROJECT_BINARY_DIR}/gen") +include_directories(${ETH_GENERATED_DIR}) + +# custom cmake scripts +set(ETH_SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/cmake/scripts) + # Qt5 requires opengl # TODO use proper version of windows SDK (32 vs 64) # TODO make it possible to use older versions of windows SDK (7.0+ should also work) diff --git a/cmake/scripts/buildinfo.cmake b/cmake/scripts/buildinfo.cmake new file mode 100644 index 000000000..870cbf4e1 --- /dev/null +++ b/cmake/scripts/buildinfo.cmake @@ -0,0 +1,33 @@ +# generates BuildInfo.h +# +# this module expects +# ETH_SOURCE_DIR - main CMAKE_SOURCE_DIR +# ETH_DST_DIR - main CMAKE_BINARY_DIR +# ETH_BUILD_TYPE +# ETH_BUILD_PLATFORM +# +# example usage: +# cmake -DETH_SOURCE_DIR=. -DETH_DST_DIR=build -DETH_BUILD_TYPE=Debug -DETH_BUILD_PLATFORM=mac -P scripts/buildinfo.cmake + +execute_process( + COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} rev-parse HEAD + OUTPUT_VARIABLE ETH_COMMIT_HASH +) + +if (NOT ETH_COMMIT_HASH) + set(ETH_COMMIT_HASH 0) +endif() + +execute_process( + COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} diff --shortstat + OUTPUT_VARIABLE ETH_LOCAL_CHANGES +) + +if (ETH_LOCAL_CHANGES) + set(ETH_CLEAN_REPO 0) +else() + set(ETH_CLEAN_REPO 1) +endif() + +configure_file("${ETH_SOURCE_DIR}/BuildInfo.h.in" "${ETH_DST_DIR}/BuildInfo.h") + diff --git a/cmake/scripts/configure.cmake b/cmake/scripts/configure.cmake new file mode 100644 index 000000000..76fb7b757 --- /dev/null +++ b/cmake/scripts/configure.cmake @@ -0,0 +1,14 @@ +# adds possibility to run configure_file as buildstep +# reference: +# http://www.cmake.org/pipermail/cmake/2012-May/050227.html +# +# This module expects +# INFILE +# OUTFILE +# other custom vars +# +# example usage: +# cmake -DINFILE=blah.in -DOUTFILE=blah.out -Dvar1=value1 -Dvar2=value2 -P scripts/configure.cmake + +configure_file(${INFILE} ${OUTFILE}) + From 169438191ee1404ea09ac198446e7768a23124a5 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 14:36:56 +0100 Subject: [PATCH 16/52] build_type && build_platform unknown by default --- cmake/scripts/buildinfo.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/scripts/buildinfo.cmake b/cmake/scripts/buildinfo.cmake index 870cbf4e1..b33ca1954 100644 --- a/cmake/scripts/buildinfo.cmake +++ b/cmake/scripts/buildinfo.cmake @@ -9,6 +9,14 @@ # example usage: # cmake -DETH_SOURCE_DIR=. -DETH_DST_DIR=build -DETH_BUILD_TYPE=Debug -DETH_BUILD_PLATFORM=mac -P scripts/buildinfo.cmake +if (NOT ETH_BUILD_TYPE) + set(ETH_BUILD_TYPE "unknown") +endif() + +if (NOT ETH_BUILD_PLATFORM) + set(ETH_BUILD_PLATFORM "unknown") +endif() + execute_process( COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} rev-parse HEAD OUTPUT_VARIABLE ETH_COMMIT_HASH From 31d02099242e18e8f17c3db8481c1cfb43385217 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 15:44:35 +0100 Subject: [PATCH 17/52] check if BuildInfo.h is outdated --- cmake/scripts/buildinfo.cmake | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/cmake/scripts/buildinfo.cmake b/cmake/scripts/buildinfo.cmake index b33ca1954..5b9f2fbf1 100644 --- a/cmake/scripts/buildinfo.cmake +++ b/cmake/scripts/buildinfo.cmake @@ -10,25 +10,25 @@ # cmake -DETH_SOURCE_DIR=. -DETH_DST_DIR=build -DETH_BUILD_TYPE=Debug -DETH_BUILD_PLATFORM=mac -P scripts/buildinfo.cmake if (NOT ETH_BUILD_TYPE) - set(ETH_BUILD_TYPE "unknown") + set(ETH_BUILD_TYPE "unknown") endif() if (NOT ETH_BUILD_PLATFORM) - set(ETH_BUILD_PLATFORM "unknown") + set(ETH_BUILD_PLATFORM "unknown") endif() execute_process( COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} rev-parse HEAD - OUTPUT_VARIABLE ETH_COMMIT_HASH + OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) if (NOT ETH_COMMIT_HASH) - set(ETH_COMMIT_HASH 0) + set(ETH_COMMIT_HASH 0) endif() execute_process( COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} diff --shortstat - OUTPUT_VARIABLE ETH_LOCAL_CHANGES + OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE ) if (ETH_LOCAL_CHANGES) @@ -37,5 +37,25 @@ else() set(ETH_CLEAN_REPO 1) endif() -configure_file("${ETH_SOURCE_DIR}/BuildInfo.h.in" "${ETH_DST_DIR}/BuildInfo.h") +set(INFILE "${ETH_SOURCE_DIR}/BuildInfo.h.in") +set(TMPFILE "${ETH_DST_DIR}/BuildInfo.h.tmp") +set(OUTFILE "${ETH_DST_DIR}/BuildInfo.h") + +# create outfile if it doesn't exist +if (NOT (EXISTS ${OUTFILE})) + execute_process(COMMAND touch ${OUTFILE}) +endif() + +configure_file("${INFILE}" "${TMPFILE}") + +execute_process( + COMMAND diff "${OUTFILE}" "${TMPFILE}" + OUTPUT_VARIABLE ETH_FILE_OUTDATED +) + +if (ETH_FILE_OUTDATED) + execute_process(COMMAND mv "${TMPFILE}" "${OUTFILE}") +else() + execute_process(COMMAND rm "${TMPFILE}") +endif() From 3128f90f7702d459d085bb061abb0947a37f2312 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Tue, 10 Feb 2015 16:23:18 +0100 Subject: [PATCH 18/52] quotes --- CMakeLists.txt | 6 +++--- cmake/scripts/buildinfo.cmake | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e6b49bf72..70598f614 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,9 +88,9 @@ function(createBuildInfo) # Generate header file containing useful build information add_custom_target(BuildInfo.h ALL WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMAND cmake -DETH_SOURCE_DIR=${CMAKE_SOURCE_DIR} -DETH_DST_DIR=${CMAKE_BINARY_DIR} - -DETH_BUILD_TYPE=${_cmake_build_type} -DETH_BUILD_PLATFORM=${ETH_BUILD_PLATFORM} - -P ${ETH_SCRIPTS_DIR}/buildinfo.cmake + COMMAND cmake -DETH_SOURCE_DIR="${CMAKE_SOURCE_DIR}" -DETH_DST_DIR="${CMAKE_BINARY_DIR}" + -DETH_BUILD_TYPE="${_cmake_build_type}" -DETH_BUILD_PLATFORM="${ETH_BUILD_PLATFORM}" + -P "${ETH_SCRIPTS_DIR}/buildinfo.cmake" ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/cmake/scripts/buildinfo.cmake b/cmake/scripts/buildinfo.cmake index 5b9f2fbf1..e61e3fa15 100644 --- a/cmake/scripts/buildinfo.cmake +++ b/cmake/scripts/buildinfo.cmake @@ -42,8 +42,8 @@ set(TMPFILE "${ETH_DST_DIR}/BuildInfo.h.tmp") set(OUTFILE "${ETH_DST_DIR}/BuildInfo.h") # create outfile if it doesn't exist -if (NOT (EXISTS ${OUTFILE})) - execute_process(COMMAND touch ${OUTFILE}) +if (NOT (EXISTS "${OUTFILE}")) + execute_process(COMMAND touch "${OUTFILE}") endif() configure_file("${INFILE}" "${TMPFILE}") From e85fe2348f0ca293594546b89933aafe9604bb47 Mon Sep 17 00:00:00 2001 From: Lu Guanqun Date: Sun, 8 Feb 2015 19:23:17 +0800 Subject: [PATCH 19/52] add exponent operator https://www.pivotaltracker.com/n/projects/1189488/stories/83746404 --- libsolidity/ExpressionCompiler.cpp | 3 +++ libsolidity/Scanner.cpp | 10 ++++++++-- libsolidity/Token.h | 5 +++-- libsolidity/Types.cpp | 10 ++++++++++ test/SolidityEndToEndTest.cpp | 30 ++++++++++++++++++++++++++++++ test/SolidityParser.cpp | 11 +++++++++++ 6 files changed, 65 insertions(+), 4 deletions(-) diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index 1d3f23e69..beda01322 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -650,6 +650,9 @@ void ExpressionCompiler::appendArithmeticOperatorCode(Token::Value _operator, Ty case Token::Mod: m_context << (c_isSigned ? eth::Instruction::SMOD : eth::Instruction::MOD); break; + case Token::Exp: + m_context << eth::Instruction::EXP; + break; default: BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Unknown arithmetic operator.")); } diff --git a/libsolidity/Scanner.cpp b/libsolidity/Scanner.cpp index fc4bdb6b5..fbe3ea974 100644 --- a/libsolidity/Scanner.cpp +++ b/libsolidity/Scanner.cpp @@ -465,8 +465,14 @@ void Scanner::scanToken() token = Token::Sub; break; case '*': - // * *= - token = selectToken('=', Token::AssignMul, Token::Mul); + // * ** *= + advance(); + if (m_char == '*') + token = selectToken(Token::Exp); + else if (m_char == '=') + token = selectToken(Token::AssignMul); + else + token = Token::Mul; break; case '%': // % %= diff --git a/libsolidity/Token.h b/libsolidity/Token.h index b913f0cec..ac8c618fa 100644 --- a/libsolidity/Token.h +++ b/libsolidity/Token.h @@ -118,6 +118,7 @@ namespace solidity T(Mul, "*", 13) \ T(Div, "/", 13) \ T(Mod, "%", 13) \ + T(Exp, "**", 14) \ \ /* Compare operators sorted by precedence. */ \ /* IsCompareOp() relies on this block of enum values */ \ @@ -361,10 +362,10 @@ public: // Predicates static bool isElementaryTypeName(Value tok) { return Int <= tok && tok < TypesEnd; } static bool isAssignmentOp(Value tok) { return Assign <= tok && tok <= AssignMod; } - static bool isBinaryOp(Value op) { return Comma <= op && op <= Mod; } + static bool isBinaryOp(Value op) { return Comma <= op && op <= Exp; } static bool isCommutativeOp(Value op) { return op == BitOr || op == BitXor || op == BitAnd || op == Add || op == Mul || op == Equal || op == NotEqual; } - static bool isArithmeticOp(Value op) { return Add <= op && op <= Mod; } + static bool isArithmeticOp(Value op) { return Add <= op && op <= Exp; } static bool isCompareOp(Value op) { return Equal <= op && op <= In; } static Value AssignmentToBinaryOp(Value op) diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index 6fd9e8b4c..dcc0738d7 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -320,6 +320,16 @@ TypePointer IntegerConstantType::binaryOperatorResult(Token::Value _operator, Ty return TypePointer(); value = m_value % other.m_value; break; + case Token::Exp: + if (other.m_value < 0) + BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("exponent can't be negative")); + else + { + value = boost::multiprecision::powm(m_value, other.m_value, bigint(2) << 256); + if (value >= (bigint(1) << 256)) + BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("exp result overflowed")); + } + break; default: return TypePointer(); } diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 31b80894e..748110145 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -56,6 +56,36 @@ BOOST_AUTO_TEST_CASE(empty_contract) BOOST_CHECK(callContractFunction("i_am_not_there()", bytes()).empty()); } +BOOST_AUTO_TEST_CASE(exp_operator) +{ + char const* sourceCode = R"( + contract test { + function f(uint a) returns(uint d) { return 2 ** a; } + })"; + compileAndRun(sourceCode); + testSolidityAgainstCppOnRange("f(uint256)", [](u256 const& a) -> u256 { return u256(1 << a.convert_to()); }, 0, 16); +} + +BOOST_AUTO_TEST_CASE(exp_operator_const) +{ + char const* sourceCode = R"( + contract test { + function f() returns(uint d) { return 2 ** 3; } + })"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("f()", bytes()) == toBigEndian(u256(8))); +} + +BOOST_AUTO_TEST_CASE(exp_operator_const_signed) +{ + char const* sourceCode = R"( + contract test { + function f() returns(int d) { return -2 ** 3; } + })"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("f()", bytes()) == toBigEndian(u256(-8))); +} + BOOST_AUTO_TEST_CASE(recursive_calls) { char const* sourceCode = "contract test {\n" diff --git a/test/SolidityParser.cpp b/test/SolidityParser.cpp index 7af99567b..84f36170f 100644 --- a/test/SolidityParser.cpp +++ b/test/SolidityParser.cpp @@ -387,6 +387,17 @@ BOOST_AUTO_TEST_CASE(complex_expression) BOOST_CHECK_NO_THROW(parseText(text)); } +BOOST_AUTO_TEST_CASE(exp_expression) +{ + char const* text = R"( + contract test { + function fun(uint256 a) { + uint256 x = 3 ** a; + } + })"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + BOOST_AUTO_TEST_CASE(while_loop) { char const* text = "contract test {\n" From aabc234e457075197b70b673c4002994e417a2ed Mon Sep 17 00:00:00 2001 From: Lu Guanqun Date: Mon, 9 Feb 2015 23:15:36 +0800 Subject: [PATCH 20/52] add two more exp tests --- test/SolidityNameAndTypeResolution.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/SolidityNameAndTypeResolution.cpp b/test/SolidityNameAndTypeResolution.cpp index f4be31f4b..b529f0b70 100644 --- a/test/SolidityNameAndTypeResolution.cpp +++ b/test/SolidityNameAndTypeResolution.cpp @@ -974,6 +974,24 @@ BOOST_AUTO_TEST_CASE(overflow_caused_by_ether_units) BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); } +BOOST_AUTO_TEST_CASE(exp_operator_negative_exponent) +{ + char const* sourceCode = R"( + contract test { + function f() returns(uint d) { return 2 ** -3; } + })"; + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), InternalCompilerError); +} + +BOOST_AUTO_TEST_CASE(exp_operator_const_overflowed) +{ + char const* sourceCode = R"( + contract test { + function f() returns(uint d) { return 10 ** 256; } + })"; + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), InternalCompilerError); +} + BOOST_AUTO_TEST_SUITE_END() } From 1372154ff2955068b30b00d352726822a6fc28f6 Mon Sep 17 00:00:00 2001 From: Lu Guanqun Date: Tue, 10 Feb 2015 22:43:13 +0800 Subject: [PATCH 21/52] small fixes per chris's comments --- libsolidity/Types.cpp | 12 ++++++------ test/SolidityEndToEndTest.cpp | 2 +- test/SolidityNameAndTypeResolution.cpp | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index dcc0738d7..5f573a6da 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -26,6 +26,8 @@ #include #include +#include + using namespace std; namespace dev @@ -322,13 +324,11 @@ TypePointer IntegerConstantType::binaryOperatorResult(Token::Value _operator, Ty break; case Token::Exp: if (other.m_value < 0) - BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("exponent can't be negative")); + return TypePointer(); + else if (other.m_value > std::numeric_limits::max()) + return TypePointer(); else - { - value = boost::multiprecision::powm(m_value, other.m_value, bigint(2) << 256); - if (value >= (bigint(1) << 256)) - BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("exp result overflowed")); - } + value = boost::multiprecision::pow(m_value, other.m_value.convert_to()); break; default: return TypePointer(); diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 748110145..13a666fbf 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(exp_operator_const_signed) { char const* sourceCode = R"( contract test { - function f() returns(int d) { return -2 ** 3; } + function f() returns(int d) { return (-2) ** 3; } })"; compileAndRun(sourceCode); BOOST_CHECK(callContractFunction("f()", bytes()) == toBigEndian(u256(-8))); diff --git a/test/SolidityNameAndTypeResolution.cpp b/test/SolidityNameAndTypeResolution.cpp index b529f0b70..d013f5c5e 100644 --- a/test/SolidityNameAndTypeResolution.cpp +++ b/test/SolidityNameAndTypeResolution.cpp @@ -980,16 +980,16 @@ BOOST_AUTO_TEST_CASE(exp_operator_negative_exponent) contract test { function f() returns(uint d) { return 2 ** -3; } })"; - BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), InternalCompilerError); + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); } -BOOST_AUTO_TEST_CASE(exp_operator_const_overflowed) +BOOST_AUTO_TEST_CASE(exp_operator_exponent_too_big) { char const* sourceCode = R"( contract test { - function f() returns(uint d) { return 10 ** 256; } + function f() returns(uint d) { return 2 ** 10000000000; } })"; - BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), InternalCompilerError); + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); } BOOST_AUTO_TEST_SUITE_END() From f7867d39b03128cbabf4d2da823f84ee95346c82 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 10 Feb 2015 16:17:54 +0100 Subject: [PATCH 22/52] MSVC constexpr fix. --- libethcore/CommonEth.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libethcore/CommonEth.cpp b/libethcore/CommonEth.cpp index f71969525..47344a156 100644 --- a/libethcore/CommonEth.cpp +++ b/libethcore/CommonEth.cpp @@ -35,12 +35,12 @@ namespace eth const unsigned c_protocolVersion = 53; const unsigned c_databaseVersion = 5; -template constexpr u256 exp10() +template u256 exp10() { return exp10() * u256(10); } -template <> constexpr u256 exp10<0>() +template <> u256 exp10<0>() { return u256(1); } From ea043668b46cc838af1feb5d4db44a88ef2af9f6 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Tue, 10 Feb 2015 20:53:38 +0100 Subject: [PATCH 23/52] Test stuff into cpp from header. Additional debug stuff in cmake. --- cmake/EthDependencies.cmake | 1 + test/TestHelper.cpp | 3 +++ test/TestHelper.h | 3 --- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmake/EthDependencies.cmake b/cmake/EthDependencies.cmake index 8ff3d1460..18e221583 100644 --- a/cmake/EthDependencies.cmake +++ b/cmake/EthDependencies.cmake @@ -123,6 +123,7 @@ if (NOT HEADLESS) message(" - npm location : ${ETH_NPM}") find_program(ETH_JSON_RPC_STUB jsonrpcstub) + message(" - jsonrpcstub location : ${ETH_JSON_RPC_STUB}") endif() #HEADLESS diff --git a/test/TestHelper.cpp b/test/TestHelper.cpp index 8e4c493eb..8a00a5462 100644 --- a/test/TestHelper.cpp +++ b/test/TestHelper.cpp @@ -64,6 +64,9 @@ void connectClients(Client& c1, Client& c2) namespace test { +struct ValueTooLarge: virtual Exception {}; +bigint const c_max256plus1 = bigint(1) << 256; + ImportTest::ImportTest(json_spirit::mObject& _o, bool isFiller): m_TestObject(_o) { importEnv(_o["env"].get_obj()); diff --git a/test/TestHelper.h b/test/TestHelper.h index 2b93bccfb..ae6ea20cc 100644 --- a/test/TestHelper.h +++ b/test/TestHelper.h @@ -42,9 +42,6 @@ void connectClients(Client& c1, Client& c2); namespace test { -struct ValueTooLarge: virtual Exception {}; -bigint const c_max256plus1 = bigint(1) << 256; - class ImportTest { public: From e3368ad364d67b1e802e2f15191cb43f5b73b02b Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Wed, 11 Feb 2015 07:58:21 +0100 Subject: [PATCH 24/52] cmake replace with ${CMAKE_COMMAND}, fixed #1006 --- CMakeLists.txt | 2 +- libweb3jsonrpc/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70598f614..5aa1f5fcd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ function(createBuildInfo) # Generate header file containing useful build information add_custom_target(BuildInfo.h ALL WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - COMMAND cmake -DETH_SOURCE_DIR="${CMAKE_SOURCE_DIR}" -DETH_DST_DIR="${CMAKE_BINARY_DIR}" + COMMAND ${CMAKE_COMMAND} -DETH_SOURCE_DIR="${CMAKE_SOURCE_DIR}" -DETH_DST_DIR="${CMAKE_BINARY_DIR}" -DETH_BUILD_TYPE="${_cmake_build_type}" -DETH_BUILD_PLATFORM="${ETH_BUILD_PLATFORM}" -P "${ETH_SCRIPTS_DIR}/buildinfo.cmake" ) diff --git a/libweb3jsonrpc/CMakeLists.txt b/libweb3jsonrpc/CMakeLists.txt index e18a53cd8..3e0574ced 100644 --- a/libweb3jsonrpc/CMakeLists.txt +++ b/libweb3jsonrpc/CMakeLists.txt @@ -38,7 +38,7 @@ if (ETH_JSON_RPC_STUB) POST_BUILD WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${ETH_JSON_RPC_STUB} spec.json --cpp-server=AbstractWebThreeStubServer --cpp-client=WebThreeStubClient - COMMAND cmake -E rename webthreestubclient.h ../test/webthreestubclient.h + COMMAND ${CMAKE_COMMAND} -E rename webthreestubclient.h ../test/webthreestubclient.h ) add_dependencies(${EXECUTABLE} jsonrpcstub) endif() From dfcebb93e4b87dfe6a9e9680978d67da7a911d24 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Wed, 11 Feb 2015 09:19:49 +0100 Subject: [PATCH 25/52] checking for changes in jsonrpcstub, fixed #1004 --- cmake/EthUtils.cmake | 24 ++++++++++++++++++++++ cmake/scripts/buildinfo.cmake | 21 ++++--------------- cmake/scripts/jsonrpcstub.cmake | 36 +++++++++++++++++++++++++++++++++ libweb3jsonrpc/CMakeLists.txt | 7 +++++-- 4 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 cmake/EthUtils.cmake create mode 100644 cmake/scripts/jsonrpcstub.cmake diff --git a/cmake/EthUtils.cmake b/cmake/EthUtils.cmake new file mode 100644 index 000000000..c6fd43ed4 --- /dev/null +++ b/cmake/EthUtils.cmake @@ -0,0 +1,24 @@ +# +# renames the file if it is different from its destination +include(CMakeParseArguments) +# +macro(replace_if_different SOURCE DST) + set(extra_macro_args ${ARGN}) + set(options CREATE) + set(one_value_args) + set(multi_value_args) + cmake_parse_arguments(REPLACE_IF_DIFFERENT "${options}" "${one_value_args}" "${multi_value_args}" "${extra_macro_args}") + + if (REPLACE_IF_DIFFERENT_CREATE AND (NOT (EXISTS "${DST}"))) + file(WRITE "${DST}" "") + endif() + + execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files "${SOURCE}" "${DST}" RESULT_VARIABLE DIFFERENT) + + if (DIFFERENT) + execute_process(COMMAND ${CMAKE_COMMAND} -E rename "${SOURCE}" "${DST}") + else() + execute_process(COMMAND ${CMAKE_COMMAND} -E remove "${SOURCE}") + endif() +endmacro() + diff --git a/cmake/scripts/buildinfo.cmake b/cmake/scripts/buildinfo.cmake index e61e3fa15..a0666c9f5 100644 --- a/cmake/scripts/buildinfo.cmake +++ b/cmake/scripts/buildinfo.cmake @@ -19,7 +19,7 @@ endif() execute_process( COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} rev-parse HEAD - OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if (NOT ETH_COMMIT_HASH) @@ -28,7 +28,7 @@ endif() execute_process( COMMAND git --git-dir=${ETH_SOURCE_DIR}/.git --work-tree=${ETH_SOURCE_DIR} diff --shortstat - OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if (ETH_LOCAL_CHANGES) @@ -41,21 +41,8 @@ set(INFILE "${ETH_SOURCE_DIR}/BuildInfo.h.in") set(TMPFILE "${ETH_DST_DIR}/BuildInfo.h.tmp") set(OUTFILE "${ETH_DST_DIR}/BuildInfo.h") -# create outfile if it doesn't exist -if (NOT (EXISTS "${OUTFILE}")) - execute_process(COMMAND touch "${OUTFILE}") -endif() - configure_file("${INFILE}" "${TMPFILE}") -execute_process( - COMMAND diff "${OUTFILE}" "${TMPFILE}" - OUTPUT_VARIABLE ETH_FILE_OUTDATED -) - -if (ETH_FILE_OUTDATED) - execute_process(COMMAND mv "${TMPFILE}" "${OUTFILE}") -else() - execute_process(COMMAND rm "${TMPFILE}") -endif() +include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake") +replace_if_different("${TMPFILE}" "${OUTFILE}" CREATE) diff --git a/cmake/scripts/jsonrpcstub.cmake b/cmake/scripts/jsonrpcstub.cmake new file mode 100644 index 000000000..a9b2c44ab --- /dev/null +++ b/cmake/scripts/jsonrpcstub.cmake @@ -0,0 +1,36 @@ +# generates JSONRPC Stub Server && Client +# +# this script expects +# ETH_SOURCE_DIR - main CMAKE_SOURCE_DIR +# ETH_SPEC_PATH +# ETH_SERVER_DIR +# ETH_CLIENT_DIR +# ETH_SERVER_NAME +# ETH_CLIENT_NAME +# ETH_JSON_RPC_STUB +# +# example usage: +# cmake -DETH_SPEC_PATH=spec.json -DETH_SERVER_DIR=libweb3jsonrpc -DETH_CLIENT_DIR=test +# -DETH_SERVER_NAME=AbstractWebThreeStubServer -DETH_CLIENT_NAME=WebThreeStubClient -DETH_JSON_RPC_STUB=/usr/local/bin/jsonrpcstub + +# by default jsonrpcstub produces files in lowercase, we want to stick to this +string(TOLOWER ${ETH_SERVER_NAME} ETH_SERVER_NAME_LOWER) +string(TOLOWER ${ETH_CLIENT_NAME} ETH_CLIENT_NAME_LOWER) + +# setup names +set(SERVER_TMPFILE "${ETH_SERVER_DIR}/${ETH_SERVER_NAME_LOWER}.h.tmp") +set(SERVER_OUTFILE "${ETH_SERVER_DIR}/${ETH_SERVER_NAME_LOWER}.h") +set(CLIENT_TMPFILE "${ETH_CLIENT_DIR}/${ETH_CLIENT_NAME_LOWER}.h.tmp") +set(CLIENT_OUTFILE "${ETH_CLIENT_DIR}/${ETH_CLIENT_NAME_LOWER}.h") + +# create tmp files +execute_process( + COMMAND ${ETH_JSON_RPC_STUB} ${ETH_SPEC_PATH} + --cpp-server=${ETH_SERVER_NAME} --cpp-server-file=${SERVER_TMPFILE} + --cpp-client=${ETH_CLIENT_NAME} --cpp-client-file=${CLIENT_TMPFILE} +) + +include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake") +replace_if_different("${SERVER_TMPFILE}" "${SERVER_OUTFILE}") +replace_if_different("${CLIENT_TMPFILE}" "${CLIENT_OUTFILE}") + diff --git a/libweb3jsonrpc/CMakeLists.txt b/libweb3jsonrpc/CMakeLists.txt index 3e0574ced..c9b2aa39d 100644 --- a/libweb3jsonrpc/CMakeLists.txt +++ b/libweb3jsonrpc/CMakeLists.txt @@ -37,8 +37,11 @@ if (ETH_JSON_RPC_STUB) add_custom_command(TARGET jsonrpcstub POST_BUILD WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND ${ETH_JSON_RPC_STUB} spec.json --cpp-server=AbstractWebThreeStubServer --cpp-client=WebThreeStubClient - COMMAND ${CMAKE_COMMAND} -E rename webthreestubclient.h ../test/webthreestubclient.h + COMMAND ${CMAKE_COMMAND} -DETH_SPEC_PATH="${CMAKE_CURRENT_SOURCE_DIR}/spec.json" -DETH_SOURCE_DIR="${CMAKE_SOURCE_DIR}" + -DETH_SERVER_DIR="${CMAKE_CURRENT_SOURCE_DIR}" -DETH_CLIENT_DIR="${CMAKE_SOURCE_DIR}/test" + -DETH_SERVER_NAME=AbstractWebThreeStubServer -DETH_CLIENT_NAME=WebThreeStubClient + -DETH_JSON_RPC_STUB="${ETH_JSON_RPC_STUB}" + -P "${ETH_SCRIPTS_DIR}/jsonrpcstub.cmake" ) add_dependencies(${EXECUTABLE} jsonrpcstub) endif() From a253a894e7a4dc1cf88662cd2fde5305390cd962 Mon Sep 17 00:00:00 2001 From: Patrick Salami Date: Wed, 11 Feb 2015 01:16:58 -0800 Subject: [PATCH 26/52] added CLI flag to set number of mining threads for eth and neth --- eth/main.cpp | 7 ++++++- libethereum/Client.cpp | 7 +++++-- libethereum/Client.h | 2 +- libwebthree/WebThree.cpp | 8 ++++---- libwebthree/WebThree.h | 2 +- neth/main.cpp | 7 ++++++- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/eth/main.cpp b/eth/main.cpp index 7a128298a..87fde2bdd 100644 --- a/eth/main.cpp +++ b/eth/main.cpp @@ -119,6 +119,7 @@ void help() << " -p,--port Connect to remote port (default: 30303)." << endl << " -r,--remote Connect to remote host (default: none)." << endl << " -s,--secret Set the secret key for use with send command (default: auto)." << endl + << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl << " -u,--public-ip Force public ip to given (default; auto)." << endl << " -v,--verbosity <0 - 9> Set the log verbosity from 0 to 9 (Default: 8)." << endl << " -x,--peers Attempt to connect to given number of peers (Default: 5)." << endl @@ -195,6 +196,7 @@ int main(int argc, char** argv) unsigned mining = ~(unsigned)0; NodeMode mode = NodeMode::Full; unsigned peers = 5; + int miners = -1; bool interactive = false; #if ETH_JSONRPC int jsonrpc = -1; @@ -295,6 +297,8 @@ int main(int argc, char** argv) g_logVerbosity = atoi(argv[++i]); else if ((arg == "-x" || arg == "--peers") && i + 1 < argc) peers = atoi(argv[++i]); + else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) + miners = atoi(argv[++i]); else if ((arg == "-o" || arg == "--mode") && i + 1 < argc) { string m = argv[++i]; @@ -337,7 +341,8 @@ int main(int argc, char** argv) dbPath, false, mode == NodeMode::Full ? set{"eth", "shh"} : set(), - netPrefs + netPrefs, + miners ); web3.setIdealPeerCount(peers); eth::Client* c = mode == NodeMode::Full ? web3.ethereum() : nullptr; diff --git a/libethereum/Client.cpp b/libethereum/Client.cpp index a42d1df99..f36a9ba22 100644 --- a/libethereum/Client.cpp +++ b/libethereum/Client.cpp @@ -59,7 +59,7 @@ void VersionChecker::setOk() } } -Client::Client(p2p::Host* _extNet, std::string const& _dbPath, bool _forceClean, u256 _networkId): +Client::Client(p2p::Host* _extNet, std::string const& _dbPath, bool _forceClean, u256 _networkId, int miners): Worker("eth"), m_vc(_dbPath), m_bc(_dbPath, !m_vc.ok() || _forceClean), @@ -69,7 +69,10 @@ Client::Client(p2p::Host* _extNet, std::string const& _dbPath, bool _forceClean, { m_host = _extNet->registerCapability(new EthereumHost(m_bc, m_tq, m_bq, _networkId)); - setMiningThreads(); + if(miners > -1) + setMiningThreads(miners); + else + setMiningThreads(); if (_dbPath.size()) Defaults::setDBPath(_dbPath); m_vc.setOk(); diff --git a/libethereum/Client.h b/libethereum/Client.h index ce3506bde..cb4488b17 100644 --- a/libethereum/Client.h +++ b/libethereum/Client.h @@ -166,7 +166,7 @@ class Client: public MinerHost, public Interface, Worker public: /// New-style Constructor. - explicit Client(p2p::Host* _host, std::string const& _dbPath = std::string(), bool _forceClean = false, u256 _networkId = 0); + explicit Client(p2p::Host* _host, std::string const& _dbPath = std::string(), bool _forceClean = false, u256 _networkId = 0, int miners = -1); /// Destructor. virtual ~Client(); diff --git a/libwebthree/WebThree.cpp b/libwebthree/WebThree.cpp index c9f9d56e3..a3a95146e 100644 --- a/libwebthree/WebThree.cpp +++ b/libwebthree/WebThree.cpp @@ -35,15 +35,15 @@ using namespace dev::p2p; using namespace dev::eth; using namespace dev::shh; -WebThreeDirect::WebThreeDirect(std::string const& _clientVersion, std::string const& _dbPath, bool _forceClean, std::set const& _interfaces, NetworkPreferences const& _n): +WebThreeDirect::WebThreeDirect(std::string const& _clientVersion, std::string const& _dbPath, bool _forceClean, std::set const& _interfaces, NetworkPreferences const& _n, int miners): m_clientVersion(_clientVersion), m_net(_clientVersion, _n) { if (_dbPath.size()) Defaults::setDBPath(_dbPath); - - if (_interfaces.count("eth")) - m_ethereum.reset(new eth::Client(&m_net, _dbPath, _forceClean)); + if (_interfaces.count("eth")) + m_ethereum.reset(new eth::Client(&m_net, _dbPath, _forceClean, 0, miners)); + if (_interfaces.count("shh")) m_whisper = m_net.registerCapability(new WhisperHost); diff --git a/libwebthree/WebThree.h b/libwebthree/WebThree.h index 682fdc0b6..013986984 100644 --- a/libwebthree/WebThree.h +++ b/libwebthree/WebThree.h @@ -106,7 +106,7 @@ class WebThreeDirect : public WebThreeNetworkFace public: /// Constructor for private instance. If there is already another process on the machine using @a _dbPath, then this will throw an exception. /// ethereum() may be safely static_cast()ed to a eth::Client*. - WebThreeDirect(std::string const& _clientVersion, std::string const& _dbPath, bool _forceClean = false, std::set const& _interfaces = {"eth", "shh"}, p2p::NetworkPreferences const& _n = p2p::NetworkPreferences()); + WebThreeDirect(std::string const& _clientVersion, std::string const& _dbPath, bool _forceClean = false, std::set const& _interfaces = {"eth", "shh"}, p2p::NetworkPreferences const& _n = p2p::NetworkPreferences(), int miners = -1); /// Destructor. ~WebThreeDirect(); diff --git a/neth/main.cpp b/neth/main.cpp index 2c1a85241..2cc3f6239 100644 --- a/neth/main.cpp +++ b/neth/main.cpp @@ -81,6 +81,7 @@ void help() << " -p,--port Connect to remote port (default: 30303)." << endl << " -r,--remote Connect to remote host (default: none)." << endl << " -s,--secret Set the secret key for use with send command (default: auto)." << endl + << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl << " -u,--public-ip Force public ip to given (default; auto)." << endl << " -v,--verbosity <0..9> Set the log verbosity from 0 to 9 (tmp forced to 1)." << endl << " -x,--peers Attempt to connect to given number of peers (default: 5)." << endl @@ -307,6 +308,7 @@ int main(int argc, char** argv) unsigned mining = ~(unsigned)0; NodeMode mode = NodeMode::Full; unsigned peers = 5; + int miners = -1; #if ETH_JSONRPC int jsonrpc = 8080; #endif @@ -401,6 +403,8 @@ int main(int argc, char** argv) g_logVerbosity = atoi(argv[++i]); else if ((arg == "-x" || arg == "--peers") && i + 1 < argc) peers = atoi(argv[++i]); + else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) + miners = atoi(argv[++i]); else if (arg == "-h" || arg == "--help") help(); else if (arg == "-V" || arg == "--version") @@ -420,7 +424,8 @@ int main(int argc, char** argv) dbPath, false, mode == NodeMode::Full ? set{"eth", "shh"} : set(), - netPrefs + netPrefs, + miners ); web3.setIdealPeerCount(peers); eth::Client* c = mode == NodeMode::Full ? web3.ethereum() : nullptr; From f1acd74f71db84aaebe820191654bc31d8ab6466 Mon Sep 17 00:00:00 2001 From: Patrick Salami Date: Wed, 11 Feb 2015 01:28:58 -0800 Subject: [PATCH 27/52] fixed indentation --- eth/main.cpp | 10 +++++----- libethereum/Client.cpp | 8 ++++---- libwebthree/WebThree.cpp | 4 ++-- neth/main.cpp | 10 +++++----- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/eth/main.cpp b/eth/main.cpp index 87fde2bdd..41036d77e 100644 --- a/eth/main.cpp +++ b/eth/main.cpp @@ -119,7 +119,7 @@ void help() << " -p,--port Connect to remote port (default: 30303)." << endl << " -r,--remote Connect to remote host (default: none)." << endl << " -s,--secret Set the secret key for use with send command (default: auto)." << endl - << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl + << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl << " -u,--public-ip Force public ip to given (default; auto)." << endl << " -v,--verbosity <0 - 9> Set the log verbosity from 0 to 9 (Default: 8)." << endl << " -x,--peers Attempt to connect to given number of peers (Default: 5)." << endl @@ -196,7 +196,7 @@ int main(int argc, char** argv) unsigned mining = ~(unsigned)0; NodeMode mode = NodeMode::Full; unsigned peers = 5; - int miners = -1; + int miners = -1; bool interactive = false; #if ETH_JSONRPC int jsonrpc = -1; @@ -297,8 +297,8 @@ int main(int argc, char** argv) g_logVerbosity = atoi(argv[++i]); else if ((arg == "-x" || arg == "--peers") && i + 1 < argc) peers = atoi(argv[++i]); - else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) - miners = atoi(argv[++i]); + else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) + miners = atoi(argv[++i]); else if ((arg == "-o" || arg == "--mode") && i + 1 < argc) { string m = argv[++i]; @@ -342,7 +342,7 @@ int main(int argc, char** argv) false, mode == NodeMode::Full ? set{"eth", "shh"} : set(), netPrefs, - miners + miners ); web3.setIdealPeerCount(peers); eth::Client* c = mode == NodeMode::Full ? web3.ethereum() : nullptr; diff --git a/libethereum/Client.cpp b/libethereum/Client.cpp index f36a9ba22..455cce7a8 100644 --- a/libethereum/Client.cpp +++ b/libethereum/Client.cpp @@ -69,10 +69,10 @@ Client::Client(p2p::Host* _extNet, std::string const& _dbPath, bool _forceClean, { m_host = _extNet->registerCapability(new EthereumHost(m_bc, m_tq, m_bq, _networkId)); - if(miners > -1) - setMiningThreads(miners); - else - setMiningThreads(); + if(miners > -1) + setMiningThreads(miners); + else + setMiningThreads(); if (_dbPath.size()) Defaults::setDBPath(_dbPath); m_vc.setOk(); diff --git a/libwebthree/WebThree.cpp b/libwebthree/WebThree.cpp index a3a95146e..b11a2dccd 100644 --- a/libwebthree/WebThree.cpp +++ b/libwebthree/WebThree.cpp @@ -41,8 +41,8 @@ WebThreeDirect::WebThreeDirect(std::string const& _clientVersion, std::string co { if (_dbPath.size()) Defaults::setDBPath(_dbPath); - if (_interfaces.count("eth")) - m_ethereum.reset(new eth::Client(&m_net, _dbPath, _forceClean, 0, miners)); + if (_interfaces.count("eth")) + m_ethereum.reset(new eth::Client(&m_net, _dbPath, _forceClean, 0, miners)); if (_interfaces.count("shh")) diff --git a/neth/main.cpp b/neth/main.cpp index 2cc3f6239..15815dd40 100644 --- a/neth/main.cpp +++ b/neth/main.cpp @@ -81,7 +81,7 @@ void help() << " -p,--port Connect to remote port (default: 30303)." << endl << " -r,--remote Connect to remote host (default: none)." << endl << " -s,--secret Set the secret key for use with send command (default: auto)." << endl - << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl + << " -t,--miners Number of mining threads to start (Default: " << thread::hardware_concurrency() << ")" << endl << " -u,--public-ip Force public ip to given (default; auto)." << endl << " -v,--verbosity <0..9> Set the log verbosity from 0 to 9 (tmp forced to 1)." << endl << " -x,--peers Attempt to connect to given number of peers (default: 5)." << endl @@ -308,7 +308,7 @@ int main(int argc, char** argv) unsigned mining = ~(unsigned)0; NodeMode mode = NodeMode::Full; unsigned peers = 5; - int miners = -1; + int miners = -1; #if ETH_JSONRPC int jsonrpc = 8080; #endif @@ -403,8 +403,8 @@ int main(int argc, char** argv) g_logVerbosity = atoi(argv[++i]); else if ((arg == "-x" || arg == "--peers") && i + 1 < argc) peers = atoi(argv[++i]); - else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) - miners = atoi(argv[++i]); + else if ((arg == "-t" || arg == "--miners") && i + 1 < argc) + miners = atoi(argv[++i]); else if (arg == "-h" || arg == "--help") help(); else if (arg == "-V" || arg == "--version") @@ -425,7 +425,7 @@ int main(int argc, char** argv) false, mode == NodeMode::Full ? set{"eth", "shh"} : set(), netPrefs, - miners + miners ); web3.setIdealPeerCount(peers); eth::Client* c = mode == NodeMode::Full ? web3.ethereum() : nullptr; From f36b043f9f400840a4ebe2431fd057f5d89567f6 Mon Sep 17 00:00:00 2001 From: Lefteris Karapetsas Date: Wed, 11 Feb 2015 10:38:50 +0100 Subject: [PATCH 28/52] We should search for jsonrpcstub headless or not --- cmake/EthDependencies.cmake | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmake/EthDependencies.cmake b/cmake/EthDependencies.cmake index 3f012212f..bcb0780c1 100644 --- a/cmake/EthDependencies.cmake +++ b/cmake/EthDependencies.cmake @@ -95,6 +95,10 @@ find_package (CURL) message(" - curl header: ${CURL_INCLUDE_DIRS}") message(" - curl lib : ${CURL_LIBRARIES}") +# find location of jsonrpcstub +find_program(ETH_JSON_RPC_STUB jsonrpcstub) +message(" - jsonrpcstub location : ${ETH_JSON_RPC_STUB}") + # do not compile GUI if (NOT HEADLESS) @@ -130,9 +134,6 @@ if (NOT HEADLESS) string(REGEX REPLACE "npm" "" ETH_NPM_DIRECTORY ${ETH_NPM}) message(" - npm location : ${ETH_NPM}") - find_program(ETH_JSON_RPC_STUB jsonrpcstub) - message(" - jsonrpcstub location : ${ETH_JSON_RPC_STUB}") - endif() #HEADLESS # use multithreaded boost libraries, with -mt suffix From 6e5b352dc007e31bb59f555531580994f7c2bf56 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 11 Feb 2015 10:42:10 +0100 Subject: [PATCH 29/52] - Add SourceSansPro*.qml - Ui changes on state/transaction dialog --- mix/QEther.cpp | 4 +- mix/qml/Ether.qml | 11 ++ mix/qml/FilesSection.qml | 6 +- mix/qml/ProjectList.qml | 4 +- mix/qml/QHashTypeView.qml | 7 + mix/qml/QIntTypeView.qml | 7 + mix/qml/QStringTypeView.qml | 7 + mix/qml/SourceSansProBold.qml | 6 + mix/qml/SourceSansProLight.qml | 7 + mix/qml/SourceSansProRegular.qml | 8 + mix/qml/StateDialog.qml | 155 +++++++++++----- mix/qml/StateDialogStyle.qml | 17 ++ mix/qml/TransactionDialog.qml | 294 ++++++++++++++++++++----------- mix/qml/qmldir | 1 + mix/res.qrc | 4 + 15 files changed, 382 insertions(+), 156 deletions(-) create mode 100644 mix/qml/SourceSansProBold.qml create mode 100644 mix/qml/SourceSansProLight.qml create mode 100644 mix/qml/SourceSansProRegular.qml create mode 100644 mix/qml/StateDialogStyle.qml diff --git a/mix/QEther.cpp b/mix/QEther.cpp index 46562d440..4eef1fbdb 100644 --- a/mix/QEther.cpp +++ b/mix/QEther.cpp @@ -35,7 +35,7 @@ QBigInt* QEther::toWei() const const char* key = units.valueToKey(m_currentUnit); for (std::pair rawUnit: dev::eth::units()) { - if (rawUnit.second == QString(key).toLower().toStdString()) + if (QString::fromStdString(rawUnit.second).toLower() == QString(key).toLower()) return multiply(new QBigInt(rawUnit.first)); } return new QBigInt(dev::u256(0)); @@ -46,7 +46,7 @@ void QEther::setUnit(QString const& _unit) QMetaEnum units = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("EtherUnit")); for (int k = 0; k < units.keyCount(); k++) { - if (QString(units.key(k)).toLower() == _unit) + if (QString(units.key(k)).toLower() == _unit.toLower()) { m_currentUnit = static_cast(units.keysToValue(units.key(k))); return; diff --git a/mix/qml/Ether.qml b/mix/qml/Ether.qml index a5fd5dba2..61727b848 100644 --- a/mix/qml/Ether.qml +++ b/mix/qml/Ether.qml @@ -32,6 +32,11 @@ RowLayout { units.currentIndex = unit; } + SourceSansProRegular + { + id: regularFont + } + TextField { implicitWidth: 200 @@ -46,6 +51,7 @@ RowLayout { readOnly: !edit visible: edit id: etherValueEdit; + font.family: regularFont.name } ComboBox @@ -81,10 +87,15 @@ RowLayout { ListElement { text: "Kwei"; } ListElement { text: "wei"; } } + style: ComboBoxStyle + { + font: regularFont.name + } } Text { visible: displayFormattedValue id: formattedValue + font.family: regularFont.name } } diff --git a/mix/qml/FilesSection.qml b/mix/qml/FilesSection.qml index 32202f839..e002d6394 100644 --- a/mix/qml/FilesSection.qml +++ b/mix/qml/FilesSection.qml @@ -48,16 +48,14 @@ ColumnLayout { model.remove(i); } - FontLoader + SourceSansProRegular { id: fileNameFont - source: "qrc:/qml/fonts/SourceSansPro-Regular.ttf" } - FontLoader + SourceSansProBold { id: boldFont - source: "qrc:/qml/fonts/SourceSansPro-Bold.ttf" } RowLayout diff --git a/mix/qml/ProjectList.qml b/mix/qml/ProjectList.qml index 138e86fe9..66dc7de2a 100644 --- a/mix/qml/ProjectList.qml +++ b/mix/qml/ProjectList.qml @@ -12,10 +12,10 @@ Item { anchors.fill: parent id: filesCol spacing: 0 - FontLoader + + SourceSansProLight { id: srcSansProLight - source: "qrc:/qml/fonts/SourceSansPro-Light.ttf" } Rectangle diff --git a/mix/qml/QHashTypeView.qml b/mix/qml/QHashTypeView.qml index e36514fab..b97284a34 100644 --- a/mix/qml/QHashTypeView.qml +++ b/mix/qml/QHashTypeView.qml @@ -4,6 +4,12 @@ Item { property alias text: textinput.text id: editRoot + + SourceSansProBold + { + id: boldFont + } + Rectangle { anchors.fill: parent TextInput { @@ -11,6 +17,7 @@ Item text: text anchors.fill: parent wrapMode: Text.WrapAnywhere + font.family: boldFont.name MouseArea { id: mouseArea anchors.fill: parent diff --git a/mix/qml/QIntTypeView.qml b/mix/qml/QIntTypeView.qml index f794a3b2d..6bf7f1aa7 100644 --- a/mix/qml/QIntTypeView.qml +++ b/mix/qml/QIntTypeView.qml @@ -4,12 +4,19 @@ Item { property alias text: textinput.text id: editRoot + + SourceSansProBold + { + id: boldFont + } + Rectangle { anchors.fill: parent TextInput { id: textinput text: text anchors.fill: parent + font.family: boldFont.name MouseArea { id: mouseArea anchors.fill: parent diff --git a/mix/qml/QStringTypeView.qml b/mix/qml/QStringTypeView.qml index a78fc1d26..7f0059cc9 100644 --- a/mix/qml/QStringTypeView.qml +++ b/mix/qml/QStringTypeView.qml @@ -4,6 +4,12 @@ Item { property alias text: textinput.text id: editRoot + + SourceSansProBold + { + id: boldFont + } + Rectangle { anchors.fill: parent TextInput { @@ -11,6 +17,7 @@ Item text: text anchors.fill: parent wrapMode: Text.WrapAnywhere + font.family: boldFont.name MouseArea { id: mouseArea anchors.fill: parent diff --git a/mix/qml/SourceSansProBold.qml b/mix/qml/SourceSansProBold.qml new file mode 100644 index 000000000..39c99cc8d --- /dev/null +++ b/mix/qml/SourceSansProBold.qml @@ -0,0 +1,6 @@ +import QtQuick 2.0 + +FontLoader +{ + source: "qrc:/qml/fonts/SourceSansPro-Bold.ttf" +} diff --git a/mix/qml/SourceSansProLight.qml b/mix/qml/SourceSansProLight.qml new file mode 100644 index 000000000..f46abedd5 --- /dev/null +++ b/mix/qml/SourceSansProLight.qml @@ -0,0 +1,7 @@ +import QtQuick 2.0 + +FontLoader +{ + source: "qrc:/qml/fonts/SourceSansPro-Light.ttf" +} + diff --git a/mix/qml/SourceSansProRegular.qml b/mix/qml/SourceSansProRegular.qml new file mode 100644 index 000000000..d9ce908e0 --- /dev/null +++ b/mix/qml/SourceSansProRegular.qml @@ -0,0 +1,8 @@ +import QtQuick 2.0 + +FontLoader +{ + source: "qrc:/qml/fonts/SourceSansPro-Regular.ttf" +} + + diff --git a/mix/qml/StateDialog.qml b/mix/qml/StateDialog.qml index fa48c640e..7f659e7f4 100644 --- a/mix/qml/StateDialog.qml +++ b/mix/qml/StateDialog.qml @@ -2,9 +2,11 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Layouts 1.1 import QtQuick.Window 2.0 +import QtQuick.Controls.Styles 1.3 import org.ethereum.qml.QEther 1.0 import "js/QEtherHelper.js" as QEtherHelper import "js/TransactionHelper.js" as TransactionHelper +import "." Window { id: modalStateDialog @@ -14,6 +16,7 @@ Window { height: 480 visible: false + color: StateDialogStyle.generic.backgroundColor property alias stateTitle: titleField.text property alias stateBalance: balanceField.value @@ -53,59 +56,96 @@ Window { return item; } - GridLayout { - id: dialogContent - columns: 2 + SourceSansProRegular + { + id: regularFont + } + + Rectangle + { anchors.fill: parent anchors.margins: 10 - rowSpacing: 10 - columnSpacing: 10 + color: StateDialogStyle.generic.backgroundColor + GridLayout { + id: dialogContent + columns: 2 + anchors.top: parent.top + rowSpacing: 10 + columnSpacing: 10 - Label { - text: qsTr("Title") - } - TextField { - id: titleField - focus: true - Layout.fillWidth: true - } + Label { + text: qsTr("Title") + font.family: regularFont.name + color: "#808080" + } + TextField { + id: titleField + focus: true + Layout.fillWidth: true + font.family: regularFont.name + } - Label { - text: qsTr("Balance") - } - Ether { - id: balanceField - edit: true - displayFormattedValue: true - Layout.fillWidth: true - } + Label { + text: qsTr("Balance") + font.family: regularFont.name + color: "#808080" + } + Ether { + id: balanceField + edit: true + displayFormattedValue: true + Layout.fillWidth: true + } - Label { - text: qsTr("Default") - } - CheckBox { - id: defaultCheckBox - Layout.fillWidth: true + Label { + text: qsTr("Default") + font.family: regularFont.name + color: "#808080" + } + CheckBox { + id: defaultCheckBox + Layout.fillWidth: true + } } - Label { - text: qsTr("Transactions") - } - ListView { - Layout.fillWidth: true - Layout.fillHeight: true - model: transactionsModel - delegate: transactionRenderDelegate - } + ColumnLayout + { + width: parent.width + anchors.top: dialogContent.bottom + anchors.topMargin: 5 + spacing: 5 + Label { + text: qsTr("Transactions") + font.family: regularFont.name + color: "#808080" + } - Label { + ListView { + id: trList + Layout.preferredWidth: 200 + Layout.fillHeight: true + Layout.minimumHeight: 20 * transactionsModel.count + model: transactionsModel + delegate: transactionRenderDelegate + visible: transactionsModel.count > 0 + } + ToolButton { + onClicked: transactionsModel.addTransaction() + style: ButtonStyle + { + label: Text { + font.family: regularFont.name + text: qsTr("+") + font.pointSize: 20 + color: "#808080" + } + background: Rectangle { + color: "transparent" + } + } + } } - Button { - text: qsTr("Add") - onClicked: transactionsModel.addTransaction() - } - } RowLayout { anchors.bottom: parent.bottom @@ -123,6 +163,10 @@ Window { onClicked: close(); } } +} + + + ListModel { id: transactionsModel @@ -160,18 +204,43 @@ Window { text: functionId font.pointSize: 12 verticalAlignment: Text.AlignBottom + font.family: regularFont.name } ToolButton { text: qsTr("Edit"); visible: !stdContract Layout.fillHeight: true onClicked: transactionsModel.editTransaction(index) + style: ButtonStyle + { + label: Text { + font.family: regularFont.name + text: qsTr("Edit") + font.italic: true + font.pointSize: 9 + } + background: Rectangle { + color: "transparent" + } + } } ToolButton { visible: index >= 0 ? !transactionsModel.get(index).executeConstructor : false text: qsTr("Delete"); Layout.fillHeight: true onClicked: transactionsModel.deleteTransaction(index) + style: ButtonStyle + { + label: Text { + font.family: regularFont.name + text: qsTr("Delete") + font.italic: true + font.pointSize: 9 + } + background: Rectangle { + color: "transparent" + } + } } } } diff --git a/mix/qml/StateDialogStyle.qml b/mix/qml/StateDialogStyle.qml new file mode 100644 index 000000000..39214312a --- /dev/null +++ b/mix/qml/StateDialogStyle.qml @@ -0,0 +1,17 @@ +pragma Singleton +import QtQuick 2.0 + +QtObject { + property QtObject generic: QtObject + { + property string backgroundColor: "#ededed" + } + + property QtObject stateDialog: QtObject + { + } + + property QtObject transactionDialog: QtObject + { + } +} diff --git a/mix/qml/TransactionDialog.qml b/mix/qml/TransactionDialog.qml index 3e6cf0236..90e7e03ba 100644 --- a/mix/qml/TransactionDialog.qml +++ b/mix/qml/TransactionDialog.qml @@ -2,15 +2,18 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Layouts 1.1 import QtQuick.Window 2.0 +import QtQuick.Controls.Styles 1.3 import org.ethereum.qml.QEther 1.0 import "js/TransactionHelper.js" as TransactionHelper +import "." Window { id: modalTransactionDialog modality: Qt.WindowModal - width:640 - height:640 + width: 640 + height: 700 visible: false + color: StateDialogStyle.generic.backgroundColor property int transactionIndex property alias transactionParams: paramsModel; @@ -155,11 +158,17 @@ Window { return item; } + SourceSansProRegular + { + id: regularFont + } + ColumnLayout { id: dialogContent width: parent.width anchors.left: parent.left anchors.right: parent.right + anchors.top: parent.top anchors.margins: 10 spacing: 30 RowLayout @@ -170,10 +179,12 @@ Window { Label { Layout.preferredWidth: 75 text: qsTr("Function") + font.family: regularFont.name + color: "#808080" } ComboBox { id: functionComboBox - Layout.fillWidth: true + Layout.preferredWidth: 350 currentIndex: -1 textRole: "text" editable: false @@ -183,6 +194,10 @@ Window { onCurrentIndexChanged: { loadParameters(); } + style: ComboBoxStyle + { + font: regularFont.name + } } } @@ -191,18 +206,17 @@ Window { { id: rowValue Layout.fillWidth: true + height: 150 Label { Layout.preferredWidth: 75 text: qsTr("Value") + font.family: regularFont.name + color: "#808080" } - Rectangle - { - Layout.fillWidth: true - Ether { - id: valueField - edit: true - displayFormattedValue: true - } + Ether { + id: valueField + edit: true + displayFormattedValue: true } } @@ -211,18 +225,17 @@ Window { { id: rowGas Layout.fillWidth: true + height: 150 Label { Layout.preferredWidth: 75 text: qsTr("Gas") + font.family: regularFont.name + color: "#808080" } - Rectangle - { - Layout.fillWidth: true - Ether { - id: gasField - edit: true - displayFormattedValue: true - } + Ether { + id: gasField + edit: true + displayFormattedValue: true } } @@ -230,31 +243,153 @@ Window { { id: rowGasPrice Layout.fillWidth: true + height: 150 Label { Layout.preferredWidth: 75 text: qsTr("Gas Price") + font.family: regularFont.name + color: "#808080" } - Rectangle - { - Layout.fillWidth: true - Ether { - id: gasPriceField - edit: true - displayFormattedValue: true - } + Ether { + id: gasPriceField + edit: true + displayFormattedValue: true } } - RowLayout - { - Layout.fillWidth: true - Label { - text: qsTr("Parameters") - Layout.preferredWidth: 75 - } - TableView { + //ColumnLayout + //{ + //Layout.fillHeight: true; + //Layout.fillWidth: true; + //visible: paramsModel.count > 0 + + Label { + text: qsTr("Parameters") + Layout.preferredWidth: 75 + font.family: regularFont.name + color: "#808080" + visible: paramsModel.count > 0 + } + + Repeater + { + model: paramsModel + visible: paramsModel.count > 0 + Rectangle + { + color: "transparent" + Layout.fillWidth: true + height: 150 + Label { + id: typeLabel + text: type + } + + Label { + anchors.left: typeLabel.right + id: nameLabel + text: name + } + + Label { + anchors.left: nameLabel.right + id: equalLabel + text: "=" + } + + Loader + { + anchors.left: equalLabel.right + id: typeLoader + height: 50 + width: 150 + Connections { + target: typeLoader.item + onTextChanged: { + console.log("text changed 0 " + value); + value = typeLoader.item.text; + console.log("text changed 1 " + value); + } + } + + sourceComponent: + { + console.log(type); + if (type.indexOf("int") !== -1) + return intViewComp; + else if (type.indexOf("bool") !== -1) + return boolViewComp; + else if (type.indexOf("string") !== -1) + return stringViewComp; + else if (type.indexOf("hash") !== -1) + return hashViewComp; + else + return null; + } + + Component + { + id: intViewComp + QIntTypeView + { + height: 50 + width: 150 + id: intView + text: value + } + } + + Component + { + id: boolViewComp + QBoolTypeView + { + height: 50 + width: 150 + id: boolView + defaultValue: "1" + Component.onCompleted: + { + /*loaderEditor.updateValue(styleData.row, styleData.role, + (paramsModel.get(styleData.row).value === "" ? defaultValue : + paramsModel.get(styleData.row).value)); + text = (paramsModel.get(styleData.row).value === "" ? defaultValue : paramsModel.get(styleData.row).value);*/ + } + } + } + + Component + { + id: stringViewComp + QStringTypeView + { + height: 50 + width: 150 + id: stringView + text: value + } + } + + Component + { + id: hashViewComp + QHashTypeView + { + height: 50 + width: 150 + id: hashView + text: value + } + } + } + + } + } + //} + + /*TableView { model: paramsModel - Layout.preferredWidth: 120 * 2 + 240 + Layout.fillWidth: true Layout.minimumHeight: 150 Layout.preferredHeight: 400 Layout.maximumHeight: 600 @@ -276,27 +411,26 @@ Window { rowDelegate: rowDelegate itemDelegate: editableDelegate - } + }*/ } - } - RowLayout - { - anchors.bottom: parent.bottom - anchors.right: parent.right; - - Button { - text: qsTr("OK"); - onClicked: { - close(); - accepted(); + RowLayout + { + anchors.bottom: parent.bottom + anchors.right: parent.right; + + Button { + text: qsTr("OK"); + onClicked: { + close(); + accepted(); + } + } + Button { + text: qsTr("Cancel"); + onClicked: close(); } } - Button { - text: qsTr("Cancel"); - onClicked: close(); - } - } ListModel { @@ -332,6 +466,7 @@ Window { sourceComponent: { + console.log("role " + styleData.role); if (styleData.role === "value") { if (paramsModel.get(styleData.row) === undefined) @@ -349,53 +484,7 @@ Window { return editor; } - Component - { - id: intViewComp - QIntTypeView - { - id: intView - text: styleData.value - } - } - - Component - { - id: boolViewComp - QBoolTypeView - { - id: boolView - defaultValue: "1" - Component.onCompleted: - { - loaderEditor.updateValue(styleData.row, styleData.role, - (paramsModel.get(styleData.row).value === "" ? defaultValue : - paramsModel.get(styleData.row).value)); - text = (paramsModel.get(styleData.row).value === "" ? defaultValue : paramsModel.get(styleData.row).value); - } - } - } - - Component - { - id: stringViewComp - QStringTypeView - { - id: stringView - text: styleData.value - } - } - - Component - { - id: hashViewComp - QHashTypeView - { - id: hashView - text: styleData.value - } - } Component { id: editor @@ -404,12 +493,7 @@ Window { readOnly: true color: styleData.textColor text: styleData.value - MouseArea { - id: mouseArea - anchors.fill: parent - hoverEnabled: true - onClicked: textinput.forceActiveFocus() - } + font.family: regularFont.name } } } diff --git a/mix/qml/qmldir b/mix/qml/qmldir index 819842274..0fefc3b29 100644 --- a/mix/qml/qmldir +++ b/mix/qml/qmldir @@ -1 +1,2 @@ singleton Style 1.0 Style.qml +singleton StateDialogStyle 1.0 StateDialogStyle.qml diff --git a/mix/res.qrc b/mix/res.qrc index a33323870..d05c3f5b1 100644 --- a/mix/res.qrc +++ b/mix/res.qrc @@ -83,5 +83,9 @@ qml/img/closedtriangleindicator_filesproject.png qml/img/opentriangleindicator_filesproject.png qml/img/projecticon.png + qml/SourceSansProRegular.qml + qml/SourceSansProBold.qml + qml/SourceSansProLight.qml + qml/StateDialogStyle.qml From 5ca7b3209f2ef9f8b24097502c45a0f533f06c47 Mon Sep 17 00:00:00 2001 From: debris Date: Wed, 11 Feb 2015 11:41:56 +0100 Subject: [PATCH 30/52] fixed transitive dependencies for msvc --- alethzero/CMakeLists.txt | 2 -- eth/CMakeLists.txt | 2 -- libdevcore/CMakeLists.txt | 7 ++++++- lllc/CMakeLists.txt | 2 -- mix/CMakeLists.txt | 2 -- solc/CMakeLists.txt | 2 -- test/CMakeLists.txt | 6 ------ third/CMakeLists.txt | 2 -- 8 files changed, 6 insertions(+), 19 deletions(-) diff --git a/alethzero/CMakeLists.txt b/alethzero/CMakeLists.txt index 2cd6f43a4..8f355def7 100644 --- a/alethzero/CMakeLists.txt +++ b/alethzero/CMakeLists.txt @@ -32,8 +32,6 @@ eth_add_executable(${EXECUTABLE} add_dependencies(${EXECUTABLE} BuildInfo.h) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} webthree) target_link_libraries(${EXECUTABLE} qwebthree) diff --git a/eth/CMakeLists.txt b/eth/CMakeLists.txt index bdd966bfc..31aa8df96 100644 --- a/eth/CMakeLists.txt +++ b/eth/CMakeLists.txt @@ -16,8 +16,6 @@ add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) add_dependencies(${EXECUTABLE} BuildInfo.h) target_link_libraries(${EXECUTABLE} ${Boost_REGEX_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) if (READLINE_FOUND) target_link_libraries(${EXECUTABLE} ${READLINE_LIBRARIES}) diff --git a/libdevcore/CMakeLists.txt b/libdevcore/CMakeLists.txt index 51caee3d3..40aa7ce24 100644 --- a/libdevcore/CMakeLists.txt +++ b/libdevcore/CMakeLists.txt @@ -26,9 +26,14 @@ else() endif() target_link_libraries(${EXECUTABLE} ${Boost_THREAD_LIBRARIES}) -#target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) target_link_libraries(${EXECUTABLE} ${Boost_SYSTEM_LIBRARIES}) +# transitive dependencies for windows executables +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) + target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) +endif() + if (APPLE) find_package(Threads REQUIRED) target_link_libraries(${EXECUTABLE} ${CMAKE_THREAD_LIBS_INIT}) diff --git a/lllc/CMakeLists.txt b/lllc/CMakeLists.txt index f41584e04..2e76aa6ff 100644 --- a/lllc/CMakeLists.txt +++ b/lllc/CMakeLists.txt @@ -13,8 +13,6 @@ add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) add_dependencies(${EXECUTABLE} BuildInfo.h) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} lll) target_link_libraries(${EXECUTABLE} evmcore) target_link_libraries(${EXECUTABLE} devcore) diff --git a/mix/CMakeLists.txt b/mix/CMakeLists.txt index 235c41b92..db9452061 100644 --- a/mix/CMakeLists.txt +++ b/mix/CMakeLists.txt @@ -34,8 +34,6 @@ eth_add_executable(${EXECUTABLE} UI_RESOURCES ${UI_RESOURCES} ) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} Qt5::Gui) target_link_libraries(${EXECUTABLE} Qt5::Widgets) diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt index 96129c499..8c0ece27e 100644 --- a/solc/CMakeLists.txt +++ b/solc/CMakeLists.txt @@ -13,8 +13,6 @@ add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) target_link_libraries(${EXECUTABLE} ${Boost_FILESYSTEM_LIBRARIES}) target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} solidity) install( TARGETS ${EXECUTABLE} DESTINATION bin ) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4d240a0ee..36876eea6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,8 +16,6 @@ add_executable(createRandomTest createRandomTest.cpp vm.cpp TestHelper.cpp) add_executable(checkRandomTest checkRandomTest.cpp vm.cpp TestHelper.cpp) target_link_libraries(testeth ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) -target_link_libraries(testeth ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(testeth ${Boost_CHRONO_LIBRARIES}) target_link_libraries(testeth ${CURL_LIBRARIES}) target_link_libraries(testeth ethereum) target_link_libraries(testeth ethcore) @@ -32,13 +30,9 @@ if (JSONRPC) endif() target_link_libraries(createRandomTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) -target_link_libraries(createRandomTest ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(createRandomTest ${Boost_CHRONO_LIBRARIES}) target_link_libraries(createRandomTest ethereum) target_link_libraries(createRandomTest ethcore) target_link_libraries(checkRandomTest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARIES}) -target_link_libraries(checkRandomTest ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(checkRandomTest ${Boost_CHRONO_LIBRARIES}) target_link_libraries(checkRandomTest ethereum) target_link_libraries(checkRandomTest ethcore) diff --git a/third/CMakeLists.txt b/third/CMakeLists.txt index db72cdebd..71f1e70f2 100644 --- a/third/CMakeLists.txt +++ b/third/CMakeLists.txt @@ -31,8 +31,6 @@ eth_add_executable(${EXECUTABLE} add_dependencies(${EXECUTABLE} BuildInfo.h) -target_link_libraries(${EXECUTABLE} ${Boost_DATE_TIME_LIBRARIES}) -target_link_libraries(${EXECUTABLE} ${Boost_CHRONO_LIBRARIES}) target_link_libraries(${EXECUTABLE} Qt5::Core) target_link_libraries(${EXECUTABLE} webthree) target_link_libraries(${EXECUTABLE} qwebthree) From 1966e57e396e33145b86ae41ba6776eb24030806 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Wed, 11 Feb 2015 13:37:32 +0100 Subject: [PATCH 31/52] Avoid making blocks with invalid timestamps. --- libethereum/State.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libethereum/State.cpp b/libethereum/State.cpp index e44b81c83..beab32abb 100644 --- a/libethereum/State.cpp +++ b/libethereum/State.cpp @@ -370,7 +370,7 @@ void State::resetCurrent() m_cache.clear(); m_currentBlock = BlockInfo(); m_currentBlock.coinbaseAddress = m_ourAddress; - m_currentBlock.timestamp = time(0); + m_currentBlock.timestamp = max(m_previousBlock.timestamp + 1, (u256)time(0)); m_currentBlock.transactionsRoot = h256(); m_currentBlock.sha3Uncles = h256(); m_currentBlock.populateFromParent(m_previousBlock); From 96f1e772d02800c5540e995a2d4f9df930fb810b Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Wed, 11 Feb 2015 15:17:26 +0100 Subject: [PATCH 32/52] fixed compile errors when using old version of jsonrpcstub, fixed #1003 --- cmake/scripts/jsonrpcstub.cmake | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/cmake/scripts/jsonrpcstub.cmake b/cmake/scripts/jsonrpcstub.cmake index a9b2c44ab..39f850e53 100644 --- a/cmake/scripts/jsonrpcstub.cmake +++ b/cmake/scripts/jsonrpcstub.cmake @@ -27,10 +27,19 @@ set(CLIENT_OUTFILE "${ETH_CLIENT_DIR}/${ETH_CLIENT_NAME_LOWER}.h") execute_process( COMMAND ${ETH_JSON_RPC_STUB} ${ETH_SPEC_PATH} --cpp-server=${ETH_SERVER_NAME} --cpp-server-file=${SERVER_TMPFILE} - --cpp-client=${ETH_CLIENT_NAME} --cpp-client-file=${CLIENT_TMPFILE} + --cpp-client=${ETH_CLIENT_NAME} --cpp-client-file=${CLIENT_TMPFILE} + OUTPUT_VARIABLE ERR ERROR_QUIET ) -include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake") -replace_if_different("${SERVER_TMPFILE}" "${SERVER_OUTFILE}") -replace_if_different("${CLIENT_TMPFILE}" "${CLIENT_OUTFILE}") +# don't throw fatal error on jsonrpcstub error, someone might have old version of jsonrpcstub, +# he does not need to upgrade it if he is not working on JSON RPC +# show him warning instead +if (ERR) + message(WARNING "Your version of jsonrcpstub tool is not supported. Please upgrade it.") + message(WARNING "${ERR}") +else() + include("${ETH_SOURCE_DIR}/cmake/EthUtils.cmake") + replace_if_different("${SERVER_TMPFILE}" "${SERVER_OUTFILE}") + replace_if_different("${CLIENT_TMPFILE}" "${CLIENT_OUTFILE}") +endif() From 785cde6492e83e803c8cac21daf59c6abf203e93 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 11 Feb 2015 15:51:59 +0100 Subject: [PATCH 33/52] StateDialog.qml / TransactionDialog.qml redesign TODO: refactor using Style.qml --- mix/qml/NewProjectDialog.qml | 4 +- mix/qml/QHashTypeView.qml | 2 + mix/qml/QIntTypeView.qml | 2 + mix/qml/QStringTypeView.qml | 2 + mix/qml/StateDialog.qml | 65 +++++++++----- mix/qml/StateListModel.qml | 1 + mix/qml/TransactionDialog.qml | 164 +++++++++++++++++----------------- 7 files changed, 132 insertions(+), 108 deletions(-) diff --git a/mix/qml/NewProjectDialog.qml b/mix/qml/NewProjectDialog.qml index 8d5afc7ac..770775df2 100644 --- a/mix/qml/NewProjectDialog.qml +++ b/mix/qml/NewProjectDialog.qml @@ -5,7 +5,7 @@ import QtQuick.Window 2.0 import QtQuick.Dialogs 1.1 Window { - + id: newProjectWin modality: Qt.WindowModal width: 640 @@ -18,6 +18,8 @@ Window { signal accepted function open() { + newProjectWin.setX((Screen.width - width) / 2); + newProjectWin.setY((Screen.height - height) / 2); visible = true; titleField.focus = true; } diff --git a/mix/qml/QHashTypeView.qml b/mix/qml/QHashTypeView.qml index b97284a34..6f3c1910e 100644 --- a/mix/qml/QHashTypeView.qml +++ b/mix/qml/QHashTypeView.qml @@ -12,6 +12,8 @@ Item Rectangle { anchors.fill: parent + radius: 4 + color: "#f7f7f7" TextInput { id: textinput text: text diff --git a/mix/qml/QIntTypeView.qml b/mix/qml/QIntTypeView.qml index 6bf7f1aa7..00a08d819 100644 --- a/mix/qml/QIntTypeView.qml +++ b/mix/qml/QIntTypeView.qml @@ -12,6 +12,8 @@ Item Rectangle { anchors.fill: parent + radius: 4 + color: "#f7f7f7" TextInput { id: textinput text: text diff --git a/mix/qml/QStringTypeView.qml b/mix/qml/QStringTypeView.qml index 7f0059cc9..7e7d2ec76 100644 --- a/mix/qml/QStringTypeView.qml +++ b/mix/qml/QStringTypeView.qml @@ -12,6 +12,8 @@ Item Rectangle { anchors.fill: parent + radius: 4 + color: "#f7f7f7" TextInput { id: textinput text: text diff --git a/mix/qml/StateDialog.qml b/mix/qml/StateDialog.qml index 532d40857..886805cca 100644 --- a/mix/qml/StateDialog.qml +++ b/mix/qml/StateDialog.qml @@ -12,9 +12,9 @@ Window { id: modalStateDialog modality: Qt.WindowModal - width: 640 + width: 450 height: 480 - + title: qsTr("State Edition") visible: false color: StateDialogStyle.generic.backgroundColor @@ -36,10 +36,16 @@ Window { transactionsModel.append(item.transactions[t]); stateTransactions.push(item.transactions[t]); } + + modalStateDialog.setX((Screen.width - width) / 2); + modalStateDialog.setY((Screen.height - height) / 2); + visible = true; isDefault = setDefault; titleField.focus = true; defaultCheckBox.enabled = !isDefault; + + } function close() { @@ -110,15 +116,43 @@ Window { ColumnLayout { - width: parent.width anchors.top: dialogContent.bottom anchors.topMargin: 5 spacing: 5 - Label { - text: qsTr("Transactions") - font.family: regularFont.name - color: "#808080" + RowLayout + { + Label { + text: qsTr("Transactions") + font.family: regularFont.name + color: "#808080" + } + + Button { + tooltip: qsTr("Create a new transaction") + onClicked: transactionsModel.addTransaction() + height: 5 + width: 5 + style: ButtonStyle + { + label: Text { + font.family: regularFont.name + text: qsTr("+") + font.pointSize: 15 + color: "#808080" + height: 5 + width: 5 + } + background: Rectangle { + radius: 4 + border.width: 1 + color: "#f7f7f7" + height: 5 + implicitHeight: 5 + } + } + } + } ListView { id: trList @@ -129,22 +163,6 @@ Window { delegate: transactionRenderDelegate visible: transactionsModel.count > 0 } - - ToolButton { - onClicked: transactionsModel.addTransaction() - style: ButtonStyle - { - label: Text { - font.family: regularFont.name - text: qsTr("+") - font.pointSize: 20 - color: "#808080" - } - background: Rectangle { - color: "transparent" - } - } - } } RowLayout { @@ -260,5 +278,4 @@ Window { } } } - } diff --git a/mix/qml/StateListModel.qml b/mix/qml/StateListModel.qml index e87a96f76..fd7959477 100644 --- a/mix/qml/StateListModel.qml +++ b/mix/qml/StateListModel.qml @@ -2,6 +2,7 @@ import QtQuick 2.2 import QtQuick.Controls.Styles 1.1 import QtQuick.Controls 1.1 import QtQuick.Dialogs 1.1 +import QtQuick.Window 2.2 import QtQuick.Layouts 1.1 import org.ethereum.qml.QEther 1.0 import "js/QEtherHelper.js" as QEtherHelper diff --git a/mix/qml/TransactionDialog.qml b/mix/qml/TransactionDialog.qml index 90e7e03ba..c2b531367 100644 --- a/mix/qml/TransactionDialog.qml +++ b/mix/qml/TransactionDialog.qml @@ -10,11 +10,11 @@ import "." Window { id: modalTransactionDialog modality: Qt.WindowModal - width: 640 - height: 700 + width: 450 + height: (paramsModel.count > 0 ? 550 : 300) visible: false color: StateDialogStyle.generic.backgroundColor - + title: qsTr("Transaction Edition") property int transactionIndex property alias transactionParams: paramsModel; property alias gas: gasField.value; @@ -66,6 +66,9 @@ Window { for (var p = 0; p < parameters.length; p++) loadParameter(parameters[p]); } + modalTransactionDialog.setX((Screen.width - width) / 2); + modalTransactionDialog.setY((Screen.height - height) / 2); + visible = true; valueField.focus = true; } @@ -108,6 +111,15 @@ Window { } } + function param(name) + { + for (var k = 0; k < paramsModel.count; k++) + { + if (paramsModel.get(k).name === name) + return paramsModel.get(k); + } + } + function close() { visible = false; @@ -163,13 +175,16 @@ Window { id: regularFont } - ColumnLayout { - id: dialogContent - width: parent.width + Rectangle { + anchors.fill: parent anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top anchors.margins: 10 + color: StateDialogStyle.generic.backgroundColor + + ColumnLayout { + id: dialogContent spacing: 30 RowLayout { @@ -257,64 +272,74 @@ Window { } } - //ColumnLayout - //{ - //Layout.fillHeight: true; - //Layout.fillWidth: true; - //visible: paramsModel.count > 0 - - Label { - text: qsTr("Parameters") - Layout.preferredWidth: 75 - font.family: regularFont.name - color: "#808080" - visible: paramsModel.count > 0 - } + Label { + text: qsTr("Parameters") + Layout.preferredWidth: 75 + font.family: regularFont.name + color: "#808080" + visible: paramsModel.count > 0 + } + ScrollView + { + Layout.fillWidth: true + visible: paramsModel.count > 0 + ColumnLayout + { + id: paramRepeater + Layout.fillWidth: true + spacing: 10 Repeater { + anchors.fill: parent model: paramsModel visible: paramsModel.count > 0 - Rectangle + RowLayout { - color: "transparent" + id: row Layout.fillWidth: true height: 150 + Label { id: typeLabel text: type + font.family: regularFont.name + Layout.preferredWidth: 50 } Label { - anchors.left: typeLabel.right id: nameLabel text: name + font.family: regularFont.name + Layout.preferredWidth: 50 } Label { - anchors.left: nameLabel.right id: equalLabel text: "=" + font.family: regularFont.name + Layout.preferredWidth: 15 } Loader { - anchors.left: equalLabel.right id: typeLoader - height: 50 - width: 150 + Layout.preferredHeight: 50 + Layout.preferredWidth: 150 + function getCurrent() + { + return modalTransactionDialog.param(name); + } + Connections { target: typeLoader.item onTextChanged: { - console.log("text changed 0 " + value); - value = typeLoader.item.text; - console.log("text changed 1 " + value); + typeLoader.getCurrent().value = typeLoader.item.text; } } sourceComponent: { - console.log(type); if (type.indexOf("int") !== -1) return intViewComp; else if (type.indexOf("bool") !== -1) @@ -335,7 +360,7 @@ Window { height: 50 width: 150 id: intView - text: value + text: typeLoader.getCurrent().value } } @@ -350,10 +375,8 @@ Window { defaultValue: "1" Component.onCompleted: { - /*loaderEditor.updateValue(styleData.row, styleData.role, - (paramsModel.get(styleData.row).value === "" ? defaultValue : - paramsModel.get(styleData.row).value)); - text = (paramsModel.get(styleData.row).value === "" ? defaultValue : paramsModel.get(styleData.row).value);*/ + var current = typeLoader.getCurrent().value; + (current === "" ? text = defaultValue : text = current); } } } @@ -366,7 +389,10 @@ Window { height: 50 width: 150 id: stringView - text: value + text: + { + return typeLoader.getCurrent().value + } } } @@ -378,61 +404,34 @@ Window { height: 50 width: 150 id: hashView - text: value + text: typeLoader.getCurrent().value } } } - } } - //} - - /*TableView { - model: paramsModel - Layout.fillWidth: true - Layout.minimumHeight: 150 - Layout.preferredHeight: 400 - Layout.maximumHeight: 600 - TableViewColumn { - role: "name" - title: qsTr("Name") - width: 120 - } - TableViewColumn { - role: "type" - title: qsTr("Type") - width: 120 - } - TableViewColumn { - role: "value" - title: qsTr("Value") - width: 240 - } - - rowDelegate: rowDelegate - itemDelegate: editableDelegate - }*/ + } } + } - RowLayout - { - anchors.bottom: parent.bottom - anchors.right: parent.right; - - Button { - text: qsTr("OK"); - onClicked: { - close(); - accepted(); - } - } - Button { - text: qsTr("Cancel"); - onClicked: close(); + RowLayout + { + anchors.bottom: parent.bottom + anchors.right: parent.right; + + Button { + text: qsTr("OK"); + onClicked: { + close(); + accepted(); } } - - + Button { + text: qsTr("Cancel"); + onClicked: close(); + } + } +} ListModel { id: paramsModel } @@ -466,7 +465,6 @@ Window { sourceComponent: { - console.log("role " + styleData.role); if (styleData.role === "value") { if (paramsModel.get(styleData.row) === undefined) From de88a9ac5bf80172079f08128f859ee7b307d46e Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Wed, 11 Feb 2015 16:03:46 +0100 Subject: [PATCH 34/52] printing CMAKE_VERSION in configure step --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5aa1f5fcd..942bd4d18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,7 @@ cmake_policy(SET CMP0015 NEW) createDefaultCacheConfig() configureProject() +message(STATUS "CMAKE_VERSION: ${CMAKE_VERSION}") message("-- VMTRACE: ${VMTRACE}; PARANOIA: ${PARANOIA}; HEADLESS: ${HEADLESS}; JSONRPC: ${JSONRPC}; EVMJIT: ${EVMJIT}") From 226c435abfe7bb7d6de85fe3ff09c829b471256e Mon Sep 17 00:00:00 2001 From: debris Date: Wed, 11 Feb 2015 16:47:56 +0100 Subject: [PATCH 35/52] fixed cmake include_directories --- alethzero/CMakeLists.txt | 1 + lllc/CMakeLists.txt | 1 + mix/CMakeLists.txt | 1 + solc/CMakeLists.txt | 1 + 4 files changed, 4 insertions(+) diff --git a/alethzero/CMakeLists.txt b/alethzero/CMakeLists.txt index b58446935..fd3addb6b 100644 --- a/alethzero/CMakeLists.txt +++ b/alethzero/CMakeLists.txt @@ -11,6 +11,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) aux_source_directory(. SRC_LIST) include_directories(${JSON_RPC_CPP_INCLUDE_DIRS}) +include_directories(${JSONCPP_INCLUDE_DIRS}) include_directories(..) qt5_wrap_ui(ui_Main.h Main.ui) diff --git a/lllc/CMakeLists.txt b/lllc/CMakeLists.txt index 2e76aa6ff..5aaca0ccc 100644 --- a/lllc/CMakeLists.txt +++ b/lllc/CMakeLists.txt @@ -4,6 +4,7 @@ set(CMAKE_AUTOMOC OFF) aux_source_directory(. SRC_LIST) include_directories(${Boost_INCLUDE_DIRS}) +include_directories(${JSONCPP_INCLUDE_DIRS}) include_directories(..) set(EXECUTABLE lllc) diff --git a/mix/CMakeLists.txt b/mix/CMakeLists.txt index db9452061..755f3df04 100644 --- a/mix/CMakeLists.txt +++ b/mix/CMakeLists.txt @@ -10,6 +10,7 @@ endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) aux_source_directory(. SRC_LIST) +include_directories(${JSONCPP_INCLUDE_DIRS}) include_directories(..) find_package (Qt5WebEngine QUIET) diff --git a/solc/CMakeLists.txt b/solc/CMakeLists.txt index 8c0ece27e..2a7bd7b6d 100644 --- a/solc/CMakeLists.txt +++ b/solc/CMakeLists.txt @@ -4,6 +4,7 @@ set(CMAKE_AUTOMOC OFF) aux_source_directory(. SRC_LIST) include_directories(${Boost_INCLUDE_DIRS}) +include_directories(${JSONCPP_INCLUDE_DIRS}) include_directories(..) set(EXECUTABLE solc) From 26d1798c812630d1487f1605295c2bd595ec8ff1 Mon Sep 17 00:00:00 2001 From: CJentzsch Date: Wed, 11 Feb 2015 16:49:01 +0100 Subject: [PATCH 36/52] safe transaction injection add diagnostic information output compile fix compile fix --- alethzero/MainWin.cpp | 18 +++++++++++++++++- libdevcore/CommonData.cpp | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index 9a29aff40..b76c94508 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -1327,7 +1327,23 @@ void Main::ourAccountsRowsMoved() void Main::on_inject_triggered() { QString s = QInputDialog::getText(this, "Inject Transaction", "Enter transaction dump in hex"); - bytes b = fromHex(s.toStdString()); + bytes b; + try + { + b = fromHex(s.toStdString()); + } + catch(BadHexCharacter& _e) + { + cnote << "invalid hex character, transaction rejected"; + cnote << boost::diagnostic_information(_e); + return; + } + catch(...) + { + cnote << "transaction rejected"; + return; + } + ethereum()->inject(&b); } diff --git a/libdevcore/CommonData.cpp b/libdevcore/CommonData.cpp index b3abe4300..efdd48d4a 100644 --- a/libdevcore/CommonData.cpp +++ b/libdevcore/CommonData.cpp @@ -96,6 +96,7 @@ bytes dev::fromHex(std::string const& _s) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif + throw; } for (unsigned i = s; i < _s.size(); i += 2) try @@ -107,6 +108,7 @@ bytes dev::fromHex(std::string const& _s) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif + throw; } return ret; } From ae5d53bc78a656f6dae92eee1e821589c17302c2 Mon Sep 17 00:00:00 2001 From: yann300 Date: Wed, 11 Feb 2015 17:32:49 +0100 Subject: [PATCH 37/52] fix indentation issues --- mix/qml/Ether.qml | 7 +- mix/qml/StateDialog.qml | 122 +++++---- mix/qml/TransactionDialog.qml | 452 +++++++++++++++------------------- 3 files changed, 257 insertions(+), 324 deletions(-) diff --git a/mix/qml/Ether.qml b/mix/qml/Ether.qml index 61727b848..f737b12b6 100644 --- a/mix/qml/Ether.qml +++ b/mix/qml/Ether.qml @@ -65,6 +65,7 @@ RowLayout { formattedValue.text = value.format(); } } + model: ListModel { id: unitsModel ListElement { text: "Uether"; } @@ -87,11 +88,11 @@ RowLayout { ListElement { text: "Kwei"; } ListElement { text: "wei"; } } - style: ComboBoxStyle - { - font: regularFont.name + style: ComboBoxStyle { + font: regularFont.name } } + Text { visible: displayFormattedValue diff --git a/mix/qml/StateDialog.qml b/mix/qml/StateDialog.qml index 886805cca..a8ac27ecf 100644 --- a/mix/qml/StateDialog.qml +++ b/mix/qml/StateDialog.qml @@ -44,8 +44,6 @@ Window { isDefault = setDefault; titleField.focus = true; defaultCheckBox.enabled = !isDefault; - - } function close() { @@ -67,8 +65,7 @@ Window { id: regularFont } - Rectangle - { + Rectangle { anchors.fill: parent anchors.margins: 10 color: StateDialogStyle.generic.backgroundColor @@ -114,8 +111,7 @@ Window { } } - ColumnLayout - { + ColumnLayout { anchors.top: dialogContent.bottom anchors.topMargin: 5 spacing: 5 @@ -132,27 +128,26 @@ Window { onClicked: transactionsModel.addTransaction() height: 5 width: 5 - style: ButtonStyle - { - label: Text { - font.family: regularFont.name - text: qsTr("+") - font.pointSize: 15 - color: "#808080" - height: 5 - width: 5 - } - background: Rectangle { - radius: 4 - border.width: 1 - color: "#f7f7f7" - height: 5 - implicitHeight: 5 + style: ButtonStyle { + label: Text { + font.family: regularFont.name + text: qsTr("+") + font.pointSize: 15 + color: "#808080" + height: 5 + width: 5 + } + background: Rectangle { + radius: 4 + border.width: 1 + color: "#f7f7f7" + height: 5 + implicitHeight: 5 + } } - } + } } - } ListView { id: trList @@ -165,26 +160,25 @@ Window { } } - RowLayout { - anchors.bottom: parent.bottom - anchors.right: parent.right; - Button { - text: qsTr("OK"); - onClicked: { - close(); - accepted(); + RowLayout + { + anchors.bottom: parent.bottom + anchors.right: parent.right; + + Button { + text: qsTr("OK"); + onClicked: { + close(); + accepted(); + } + } + Button { + text: qsTr("Cancel"); + onClicked: close(); } - } - Button { - text: qsTr("Cancel"); - onClicked: close(); } } -} - - - ListModel { id: transactionsModel @@ -229,17 +223,16 @@ Window { visible: !stdContract Layout.fillHeight: true onClicked: transactionsModel.editTransaction(index) - style: ButtonStyle - { - label: Text { - font.family: regularFont.name - text: qsTr("Edit") - font.italic: true - font.pointSize: 9 - } - background: Rectangle { - color: "transparent" - } + style: ButtonStyle { + label: Text { + font.family: regularFont.name + text: qsTr("Edit") + font.italic: true + font.pointSize: 9 + } + background: Rectangle { + color: "transparent" + } } } ToolButton { @@ -247,26 +240,27 @@ Window { text: qsTr("Delete"); Layout.fillHeight: true onClicked: transactionsModel.deleteTransaction(index) - style: ButtonStyle - { - label: Text { - font.family: regularFont.name - text: qsTr("Delete") - font.italic: true - font.pointSize: 9 - } - background: Rectangle { - color: "transparent" - } + style: ButtonStyle { + label: Text { + font.family: regularFont.name + text: qsTr("Delete") + font.italic: true + font.pointSize: 9 + } + background: Rectangle { + color: "transparent" + } } } } } } - TransactionDialog { + TransactionDialog + { id: transactionDialog - onAccepted: { + onAccepted: + { var item = transactionDialog.getItem(); if (transactionDialog.transactionIndex < transactionsModel.count) { diff --git a/mix/qml/TransactionDialog.qml b/mix/qml/TransactionDialog.qml index c2b531367..4b2b46cd2 100644 --- a/mix/qml/TransactionDialog.qml +++ b/mix/qml/TransactionDialog.qml @@ -183,228 +183,228 @@ Window { anchors.margins: 10 color: StateDialogStyle.generic.backgroundColor - ColumnLayout { - id: dialogContent - spacing: 30 - RowLayout - { - id: rowFunction - Layout.fillWidth: true - height: 150 - Label { - Layout.preferredWidth: 75 - text: qsTr("Function") - font.family: regularFont.name - color: "#808080" - } - ComboBox { - id: functionComboBox - Layout.preferredWidth: 350 - currentIndex: -1 - textRole: "text" - editable: false - model: ListModel { - id: functionsModel - } - onCurrentIndexChanged: { - loadParameters(); + ColumnLayout { + id: dialogContent + spacing: 30 + RowLayout + { + id: rowFunction + Layout.fillWidth: true + height: 150 + Label { + Layout.preferredWidth: 75 + text: qsTr("Function") + font.family: regularFont.name + color: "#808080" } - style: ComboBoxStyle - { - font: regularFont.name + ComboBox { + id: functionComboBox + Layout.preferredWidth: 350 + currentIndex: -1 + textRole: "text" + editable: false + model: ListModel { + id: functionsModel + } + onCurrentIndexChanged: { + loadParameters(); + } + style: ComboBoxStyle { + font: regularFont.name + } } } - } - RowLayout - { - id: rowValue - Layout.fillWidth: true - height: 150 - Label { - Layout.preferredWidth: 75 - text: qsTr("Value") - font.family: regularFont.name - color: "#808080" - } - Ether { - id: valueField - edit: true - displayFormattedValue: true + RowLayout + { + id: rowValue + Layout.fillWidth: true + height: 150 + Label { + Layout.preferredWidth: 75 + text: qsTr("Value") + font.family: regularFont.name + color: "#808080" + } + Ether { + id: valueField + edit: true + displayFormattedValue: true + } } - } - RowLayout - { - id: rowGas - Layout.fillWidth: true - height: 150 - Label { - Layout.preferredWidth: 75 - text: qsTr("Gas") - font.family: regularFont.name - color: "#808080" + RowLayout + { + id: rowGas + Layout.fillWidth: true + height: 150 + Label { + Layout.preferredWidth: 75 + text: qsTr("Gas") + font.family: regularFont.name + color: "#808080" + } + Ether { + id: gasField + edit: true + displayFormattedValue: true + } } - Ether { - id: gasField - edit: true - displayFormattedValue: true + + RowLayout + { + id: rowGasPrice + Layout.fillWidth: true + height: 150 + Label { + Layout.preferredWidth: 75 + text: qsTr("Gas Price") + font.family: regularFont.name + color: "#808080" + } + Ether { + id: gasPriceField + edit: true + displayFormattedValue: true + } } - } - RowLayout - { - id: rowGasPrice - Layout.fillWidth: true - height: 150 Label { + text: qsTr("Parameters") Layout.preferredWidth: 75 - text: qsTr("Gas Price") font.family: regularFont.name color: "#808080" + visible: paramsModel.count > 0 } - Ether { - id: gasPriceField - edit: true - displayFormattedValue: true - } - } - - Label { - text: qsTr("Parameters") - Layout.preferredWidth: 75 - font.family: regularFont.name - color: "#808080" - visible: paramsModel.count > 0 - } - ScrollView - { - Layout.fillWidth: true - visible: paramsModel.count > 0 - ColumnLayout + ScrollView { - id: paramRepeater Layout.fillWidth: true - spacing: 10 - Repeater + visible: paramsModel.count > 0 + ColumnLayout { - anchors.fill: parent - model: paramsModel - visible: paramsModel.count > 0 - RowLayout + id: paramRepeater + Layout.fillWidth: true + spacing: 10 + Repeater { - id: row - Layout.fillWidth: true - height: 150 - - Label { - id: typeLabel - text: type - font.family: regularFont.name - Layout.preferredWidth: 50 - } - - Label { - id: nameLabel - text: name - font.family: regularFont.name - Layout.preferredWidth: 50 - } - - Label { - id: equalLabel - text: "=" - font.family: regularFont.name - Layout.preferredWidth: 15 - } - - Loader + anchors.fill: parent + model: paramsModel + visible: paramsModel.count > 0 + RowLayout { - id: typeLoader - Layout.preferredHeight: 50 - Layout.preferredWidth: 150 - function getCurrent() - { - return modalTransactionDialog.param(name); + id: row + Layout.fillWidth: true + height: 150 + + Label { + id: typeLabel + text: type + font.family: regularFont.name + Layout.preferredWidth: 50 } - Connections { - target: typeLoader.item - onTextChanged: { - typeLoader.getCurrent().value = typeLoader.item.text; - } + Label { + id: nameLabel + text: name + font.family: regularFont.name + Layout.preferredWidth: 50 } - sourceComponent: - { - if (type.indexOf("int") !== -1) - return intViewComp; - else if (type.indexOf("bool") !== -1) - return boolViewComp; - else if (type.indexOf("string") !== -1) - return stringViewComp; - else if (type.indexOf("hash") !== -1) - return hashViewComp; - else - return null; + Label { + id: equalLabel + text: "=" + font.family: regularFont.name + Layout.preferredWidth: 15 } - Component + Loader { - id: intViewComp - QIntTypeView + id: typeLoader + Layout.preferredHeight: 50 + Layout.preferredWidth: 150 + function getCurrent() { - height: 50 - width: 150 - id: intView - text: typeLoader.getCurrent().value + return modalTransactionDialog.param(name); } - } - Component - { - id: boolViewComp - QBoolTypeView + Connections { + target: typeLoader.item + onTextChanged: { + typeLoader.getCurrent().value = typeLoader.item.text; + } + } + + sourceComponent: { - height: 50 - width: 150 - id: boolView - defaultValue: "1" - Component.onCompleted: + if (type.indexOf("int") !== -1) + return intViewComp; + else if (type.indexOf("bool") !== -1) + return boolViewComp; + else if (type.indexOf("string") !== -1) + return stringViewComp; + else if (type.indexOf("hash") !== -1) + return hashViewComp; + else + return null; + } + + Component + { + id: intViewComp + QIntTypeView { - var current = typeLoader.getCurrent().value; - (current === "" ? text = defaultValue : text = current); + height: 50 + width: 150 + id: intView + text: typeLoader.getCurrent().value } } - } - Component - { - id: stringViewComp - QStringTypeView + Component { - height: 50 - width: 150 - id: stringView - text: + id: boolViewComp + QBoolTypeView { - return typeLoader.getCurrent().value + height: 50 + width: 150 + id: boolView + defaultValue: "1" + Component.onCompleted: + { + var current = typeLoader.getCurrent().value; + (current === "" ? text = defaultValue : text = current); + } } } - } - Component - { - id: hashViewComp - QHashTypeView + Component { - height: 50 - width: 150 - id: hashView - text: typeLoader.getCurrent().value + id: stringViewComp + QStringTypeView + { + height: 50 + width: 150 + id: stringView + text: + { + return typeLoader.getCurrent().value + } + } + } + + Component + { + id: hashViewComp + QHashTypeView + { + height: 50 + width: 150 + id: hashView + text: typeLoader.getCurrent().value + } } } } @@ -412,89 +412,27 @@ Window { } } } - } - RowLayout - { - anchors.bottom: parent.bottom - anchors.right: parent.right; - - Button { - text: qsTr("OK"); - onClicked: { - close(); - accepted(); + RowLayout + { + anchors.bottom: parent.bottom + anchors.right: parent.right; + + Button { + text: qsTr("OK"); + onClicked: { + close(); + accepted(); + } + } + Button { + text: qsTr("Cancel"); + onClicked: close(); } - } - Button { - text: qsTr("Cancel"); - onClicked: close(); } } -} + ListModel { id: paramsModel } - - Component { - id: rowDelegate - Item { - height: 100 - } - } - - Component { - id: editableDelegate - Item { - Loader { - id: loaderEditor - anchors.fill: parent - anchors.margins: 4 - Connections { - target: loaderEditor.item - onTextChanged: { - if (styleData.role === "value" && styleData.row < paramsModel.count) - loaderEditor.updateValue(styleData.row, styleData.role, loaderEditor.item.text); - } - } - - function updateValue(row, role, value) - { - paramsModel.setProperty(styleData.row, styleData.role, value); - } - - sourceComponent: - { - if (styleData.role === "value") - { - if (paramsModel.get(styleData.row) === undefined) - return null; - if (paramsModel.get(styleData.row).type.indexOf("int") !== -1) - return intViewComp; - else if (paramsModel.get(styleData.row).type.indexOf("bool") !== -1) - return boolViewComp; - else if (paramsModel.get(styleData.row).type.indexOf("string") !== -1) - return stringViewComp; - else if (paramsModel.get(styleData.row).type.indexOf("hash") !== -1) - return hashViewComp; - } - else - return editor; - } - - - - Component { - id: editor - TextInput { - id: textinput - readOnly: true - color: styleData.textColor - text: styleData.value - font.family: regularFont.name - } - } - } - } - } } From a88377e5cbd4bf908a0bf13de54abe7f51bbb8a4 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 11 Feb 2015 20:20:37 +0100 Subject: [PATCH 38/52] Some windows fixes. --- libsolidity/CompilerContext.cpp | 2 +- test/SolidityEndToEndTest.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libsolidity/CompilerContext.cpp b/libsolidity/CompilerContext.cpp index 52910a556..01a71d7c9 100644 --- a/libsolidity/CompilerContext.cpp +++ b/libsolidity/CompilerContext.cpp @@ -76,7 +76,7 @@ bytes const& CompilerContext::getCompiledContract(const ContractDefinition& _con bool CompilerContext::isLocalVariable(Declaration const* _declaration) const { - return m_localVariables.count(_declaration); + return !!m_localVariables.count(_declaration); } eth::AssemblyItem CompilerContext::getFunctionEntryLabel(Declaration const& _declaration) diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 13a666fbf..8a21290cb 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -963,7 +963,7 @@ BOOST_AUTO_TEST_CASE(multiple_elementary_accessors) compileAndRun(sourceCode); BOOST_CHECK(callContractFunction("data()") == encodeArgs(8)); BOOST_CHECK(callContractFunction("name()") == encodeArgs("Celina")); - BOOST_CHECK(callContractFunction("a_hash()") == encodeArgs(dev::sha3(bytes({0x7b})))); + BOOST_CHECK(callContractFunction("a_hash()") == encodeArgs(dev::sha3(bytes{0x7b}))); BOOST_CHECK(callContractFunction("an_address()") == encodeArgs(toBigEndian(u160(0x1337)))); BOOST_CHECK(callContractFunction("super_secret_data()") == bytes()); } @@ -2202,8 +2202,8 @@ BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_numeric_literals) BOOST_CHECK(callContractFunction("foo(uint256,uint16)", 10, 12) == encodeArgs( dev::sha3( toBigEndian(u256(10)) + - bytes({0x0, 0xc}) + - bytes({0x91})))); + bytes{0x0, 0xc} + + bytes{0x91}))); } BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_string_literals) @@ -2226,9 +2226,9 @@ BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_string_literals) BOOST_CHECK(callContractFunction("bar(uint256,uint16)", 10, 12) == encodeArgs( dev::sha3( toBigEndian(u256(10)) + - bytes({0x0, 0xc}) + - bytes({0x91}) + - bytes({0x66, 0x6f, 0x6f})))); + bytes{0x0, 0xc} + + bytes{0x91} + + bytes{0x66, 0x6f, 0x6f}))); } BOOST_AUTO_TEST_CASE(generic_call) From d8cf73b4ad6d8d7d2cac5dbfdb59df5a8a67dc52 Mon Sep 17 00:00:00 2001 From: CJentzsch Date: Wed, 11 Feb 2015 22:28:43 +0100 Subject: [PATCH 39/52] add ability to throw to fromHex --- alethzero/MainWin.cpp | 6 +++--- libdevcore/CommonData.cpp | 8 +++++--- libdevcore/CommonData.h | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index b76c94508..e5dae5644 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -1330,15 +1330,15 @@ void Main::on_inject_triggered() bytes b; try { - b = fromHex(s.toStdString()); + b = fromHex(s.toStdString(), true); } - catch(BadHexCharacter& _e) + catch (BadHexCharacter& _e) { cnote << "invalid hex character, transaction rejected"; cnote << boost::diagnostic_information(_e); return; } - catch(...) + catch (...) { cnote << "transaction rejected"; return; diff --git a/libdevcore/CommonData.cpp b/libdevcore/CommonData.cpp index efdd48d4a..59372bfd0 100644 --- a/libdevcore/CommonData.cpp +++ b/libdevcore/CommonData.cpp @@ -78,7 +78,7 @@ int dev::fromHex(char _i) BOOST_THROW_EXCEPTION(BadHexCharacter() << errinfo_invalidSymbol(_i)); } -bytes dev::fromHex(std::string const& _s) +bytes dev::fromHex(std::string const& _s, bool _throw) { unsigned s = (_s[0] == '0' && _s[1] == 'x') ? 2 : 0; std::vector ret; @@ -96,7 +96,8 @@ bytes dev::fromHex(std::string const& _s) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - throw; + if (_throw) + throw; } for (unsigned i = s; i < _s.size(); i += 2) try @@ -108,7 +109,8 @@ bytes dev::fromHex(std::string const& _s) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - throw; + if (_throw) + throw; } return ret; } diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index 883e76dd9..b2370950a 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -53,7 +53,8 @@ int fromHex(char _i); /// Converts a (printable) ASCII hex string into the corresponding byte stream. /// @example fromHex("41626261") == asBytes("Abba") -bytes fromHex(std::string const& _s); +/// If _throw = false, it replaces bad hex characters with 0's, otherwise it will throw an exception. +bytes fromHex(std::string const& _s, bool _throw = false); #if 0 std::string toBase58(bytesConstRef _data); From 99a2acbad134e4ae9685d5cf37dab35a886f518c Mon Sep 17 00:00:00 2001 From: CJentzsch Date: Thu, 12 Feb 2015 09:35:33 +0100 Subject: [PATCH 40/52] replace bool with enum --- libdevcore/CommonData.cpp | 6 +++--- libdevcore/CommonData.h | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libdevcore/CommonData.cpp b/libdevcore/CommonData.cpp index 59372bfd0..b2478d233 100644 --- a/libdevcore/CommonData.cpp +++ b/libdevcore/CommonData.cpp @@ -78,7 +78,7 @@ int dev::fromHex(char _i) BOOST_THROW_EXCEPTION(BadHexCharacter() << errinfo_invalidSymbol(_i)); } -bytes dev::fromHex(std::string const& _s, bool _throw) +bytes dev::fromHex(std::string const& _s, ThrowType _throw) { unsigned s = (_s[0] == '0' && _s[1] == 'x') ? 2 : 0; std::vector ret; @@ -96,7 +96,7 @@ bytes dev::fromHex(std::string const& _s, bool _throw) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - if (_throw) + if (_throw = ThrowType::Throw) throw; } for (unsigned i = s; i < _s.size(); i += 2) @@ -109,7 +109,7 @@ bytes dev::fromHex(std::string const& _s, bool _throw) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - if (_throw) + if (_throw = ThrowType::Throw) throw; } return ret; diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index b2370950a..c82d0b7cb 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -35,6 +35,12 @@ namespace dev // String conversion functions, mainly to/from hex/nibble/byte representations. +enum class ThrowType +{ + NoThrow = 0, + Throw = 1, +}; + /// Convert a series of bytes to the corresponding string of hex duplets. /// @param _w specifies the width of each of the elements. Defaults to two - enough to represent a byte. /// @example toHex("A\x69") == "4169" @@ -54,7 +60,7 @@ int fromHex(char _i); /// Converts a (printable) ASCII hex string into the corresponding byte stream. /// @example fromHex("41626261") == asBytes("Abba") /// If _throw = false, it replaces bad hex characters with 0's, otherwise it will throw an exception. -bytes fromHex(std::string const& _s, bool _throw = false); +bytes fromHex(std::string const& _s, ThrowType _throw = ThrowType::NoThrow); #if 0 std::string toBase58(bytesConstRef _data); From 2895dc6648d50cbcf2c812e486272219e4d230e1 Mon Sep 17 00:00:00 2001 From: CJentzsch Date: Thu, 12 Feb 2015 09:37:24 +0100 Subject: [PATCH 41/52] typo --- libdevcore/CommonData.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libdevcore/CommonData.cpp b/libdevcore/CommonData.cpp index b2478d233..09b525d59 100644 --- a/libdevcore/CommonData.cpp +++ b/libdevcore/CommonData.cpp @@ -96,7 +96,7 @@ bytes dev::fromHex(std::string const& _s, ThrowType _throw) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - if (_throw = ThrowType::Throw) + if (_throw == ThrowType::Throw) throw; } for (unsigned i = s; i < _s.size(); i += 2) @@ -109,7 +109,7 @@ bytes dev::fromHex(std::string const& _s, ThrowType _throw) #ifndef BOOST_NO_EXCEPTIONS cwarn << boost::current_exception_diagnostic_information(); #endif - if (_throw = ThrowType::Throw) + if (_throw == ThrowType::Throw) throw; } return ret; From be383da6246254a4bb7c0a6d472c25f419c0e964 Mon Sep 17 00:00:00 2001 From: Lu Guanqun Date: Thu, 12 Feb 2015 17:41:26 +0800 Subject: [PATCH 42/52] spot a simple typo when reading coding standards --- CodingStandards.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodingStandards.txt b/CodingStandards.txt index 78885ce25..f883c9147 100644 --- a/CodingStandards.txt +++ b/CodingStandards.txt @@ -93,7 +93,7 @@ b. Only one per line. c. Associate */& with type, not variable (at ends with parser, but more readable, and safe if in conjunction with (b)). d. Favour declarations close to use; don't habitually declare at top of scope ala C. e. Always pass non-trivial parameters with a const& suffix. -f. If a func tion returns multiple values, use std::tuple (std::pair acceptable). Prefer not using */& arguments, except where efficiency requires. +f. If a function returns multiple values, use std::tuple (std::pair acceptable). Prefer not using */& arguments, except where efficiency requires. g. Never use a macro where adequate non-preprocessor C++ can be written. h. Prefer "using NewType = OldType" to "typedef OldType NewType". From bd373f4be93fecdbe314422d41f74402fefef3b1 Mon Sep 17 00:00:00 2001 From: CJentzsch Date: Thu, 12 Feb 2015 11:12:00 +0100 Subject: [PATCH 43/52] avoiding catastrophic typos in addresses --- alethzero/MainWin.cpp | 32 ++++++++++----- eth/main.cpp | 90 ++++++++++++++++++++++++++++++++++++----- libdevcore/CommonData.h | 2 +- neth/main.cpp | 73 +++++++++++++++++++++++++++++---- 4 files changed, 168 insertions(+), 29 deletions(-) diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index e5dae5644..907eda568 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -569,7 +569,23 @@ Address Main::fromString(QString const& _n) const }*/ if (_n.size() == 40) - return Address(fromHex(_n.toStdString())); + { + try + { + return Address(fromHex(_n.toStdString(), ThrowType::Throw)); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, address rejected"; + cwarn << boost::diagnostic_information(_e); + return Address(); + } + catch (...) + { + cwarn << "address rejected"; + return Address(); + } + } else return Address(); } @@ -1327,24 +1343,20 @@ void Main::ourAccountsRowsMoved() void Main::on_inject_triggered() { QString s = QInputDialog::getText(this, "Inject Transaction", "Enter transaction dump in hex"); - bytes b; try { - b = fromHex(s.toStdString(), true); + bytes b = fromHex(s.toStdString(), ThrowType::Throw); + ethereum()->inject(&b); } catch (BadHexCharacter& _e) { - cnote << "invalid hex character, transaction rejected"; - cnote << boost::diagnostic_information(_e); - return; + cwarn << "invalid hex character, transaction rejected"; + cwarn << boost::diagnostic_information(_e); } catch (...) { - cnote << "transaction rejected"; - return; + cwarn << "transaction rejected"; } - - ethereum()->inject(&b); } void Main::on_blocks_currentItemChanged() diff --git a/eth/main.cpp b/eth/main.cpp index 7a128298a..1c72b7036 100644 --- a/eth/main.cpp +++ b/eth/main.cpp @@ -258,7 +258,23 @@ int main(int argc, char** argv) else if ((arg == "-c" || arg == "--client-name") && i + 1 < argc) clientName = argv[++i]; else if ((arg == "-a" || arg == "--address" || arg == "--coinbase-address") && i + 1 < argc) - coinbase = h160(fromHex(argv[++i])); + { + try + { + coinbase = h160(fromHex(argv[++i], ThrowType::Throw)); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, coinbase rejected"; + cwarn << boost::diagnostic_information(_e); + break; + } + catch (...) + { + cwarn << "coinbase rejected"; + break; + } + } else if ((arg == "-s" || arg == "--secret") && i + 1 < argc) us = KeyPair(h256(fromHex(argv[++i]))); else if ((arg == "-d" || arg == "--path" || arg == "--db-path") && i + 1 < argc) @@ -532,9 +548,21 @@ int main(int argc, char** argv) } else { - Secret secret = h256(fromHex(sechex)); - Address dest = h160(fromHex(hexAddr)); - c->transact(secret, amount, dest, data, gas, gasPrice); + try + { + Secret secret = h256(fromHex(sechex)); + Address dest = h160(fromHex(hexAddr)); + c->transact(secret, amount, dest, data, gas, gasPrice); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, transaction rejected"; + cwarn << boost::diagnostic_information(_e); + } + catch (...) + { + cwarn << "transaction rejected"; + } } } else @@ -583,8 +611,20 @@ int main(int argc, char** argv) auto blockData = bc.block(h); BlockInfo info(blockData); u256 minGas = (u256)Client::txGas(bytes(), 0); - Address dest = h160(fromHex(hexAddr)); - c->transact(us.secret(), amount, dest, bytes(), minGas); + try + { + Address dest = h160(fromHex(hexAddr, ThrowType::Throw)); + c->transact(us.secret(), amount, dest, bytes(), minGas); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, transaction rejected"; + cwarn << boost::diagnostic_information(_e); + } + catch (...) + { + cwarn << "transaction rejected"; + } } } else @@ -615,14 +655,30 @@ int main(int argc, char** argv) { cnote << "Assembled:"; stringstream ssc; - init = fromHex(sinit); + try + { + init = fromHex(sinit, ThrowType::Throw); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, code rejected"; + cwarn << boost::diagnostic_information(_e); + init = bytes(); + } + catch (...) + { + cwarn << "code rejected"; + init = bytes(); + } ssc.str(string()); ssc << disassemble(init); cnote << "Init:"; cnote << ssc.str(); } u256 minGas = (u256)Client::txGas(init, 0); - if (endowment < 0) + if (!init.size()) + cwarn << "Contract creation aborted, no init code."; + else if (endowment < 0) cwarn << "Invalid endowment"; else if (gas < minGas) cwarn << "Minimum gas amount is" << minGas; @@ -759,8 +815,22 @@ int main(int argc, char** argv) if (hexAddr.length() != 40) cwarn << "Invalid address length: " << hexAddr.length(); else - coinbase = h160(fromHex(hexAddr)); - } + { + try + { + coinbase = h160(fromHex(hexAddr, ThrowType::Throw)); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, coinbase rejected"; + cwarn << boost::diagnostic_information(_e); + } + catch (...) + { + cwarn << "coinbase rejected"; + } + } + } else cwarn << "Require parameter: setAddress HEXADDRESS"; } diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index c82d0b7cb..3cdf3b449 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -59,7 +59,7 @@ int fromHex(char _i); /// Converts a (printable) ASCII hex string into the corresponding byte stream. /// @example fromHex("41626261") == asBytes("Abba") -/// If _throw = false, it replaces bad hex characters with 0's, otherwise it will throw an exception. +/// If _throw = ThrowType::NoThrow, it replaces bad hex characters with 0's, otherwise it will throw an exception. bytes fromHex(std::string const& _s, ThrowType _throw = ThrowType::NoThrow); #if 0 diff --git a/neth/main.cpp b/neth/main.cpp index 2c1a85241..efede7bb2 100644 --- a/neth/main.cpp +++ b/neth/main.cpp @@ -366,7 +366,23 @@ int main(int argc, char** argv) else if ((arg == "-c" || arg == "--client-name") && i + 1 < argc) clientName = argv[++i]; else if ((arg == "-a" || arg == "--address" || arg == "--coinbase-address") && i + 1 < argc) - coinbase = h160(fromHex(argv[++i])); + { + try + { + coinbase = h160(fromHex(argv[++i], ThrowType::Throw)); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, coinbase rejected"; + cwarn << boost::diagnostic_information(_e); + break; + } + catch (...) + { + cwarn << "coinbase rejected"; + break; + } + } else if ((arg == "-s" || arg == "--secret") && i + 1 < argc) us = KeyPair(h256(fromHex(argv[++i]))); else if ((arg == "-d" || arg == "--path" || arg == "--db-path") && i + 1 < argc) @@ -709,9 +725,21 @@ int main(int argc, char** argv) } else { - Secret secret = h256(fromHex(sechex)); - Address dest = h160(fromHex(fields[0])); - c->transact(secret, amount, dest, data, gas, gasPrice); + try + { + Secret secret = h256(fromHex(sechex, ThrowType::Throw)); + Address dest = h160(fromHex(fields[0], ThrowType::Throw)); + c->transact(secret, amount, dest, data, gas, gasPrice); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, transaction rejected"; + cwarn << boost::diagnostic_information(_e); + } + catch (...) + { + cwarn << "transaction rejected"; + } } } } @@ -749,8 +777,20 @@ int main(int argc, char** argv) auto blockData = bc.block(h); BlockInfo info(blockData); u256 minGas = (u256)Client::txGas(bytes(), 0); - Address dest = h160(fromHex(fields[0])); - c->transact(us.secret(), amount, dest, bytes(), minGas); + try + { + Address dest = h160(fromHex(fields[0], ThrowType::Throw)); + c->transact(us.secret(), amount, dest, bytes(), minGas); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, transaction rejected"; + cwarn << boost::diagnostic_information(_e); + } + catch (...) + { + cwarn << "transaction rejected"; + } } } } @@ -803,14 +843,31 @@ int main(int argc, char** argv) { cnote << "Assembled:"; stringstream ssc; - init = fromHex(sinit); + try + { + init = fromHex(sinit, ThrowType::Throw); + } + catch (BadHexCharacter& _e) + { + cwarn << "invalid hex character, code rejected"; + cwarn << boost::diagnostic_information(_e); + init = bytes(); + } + catch (...) + { + cwarn << "code rejected"; + init = bytes(); + } + ssc.str(string()); ssc << disassemble(init); cnote << "Init:"; cnote << ssc.str(); } u256 minGas = (u256)Client::txGas(init, 0); - if (endowment < 0) + if (!init.size()) + cwarn << "Contract creation aborted, no init code."; + else if (endowment < 0) cwarn << "Invalid endowment"; else if (gas < minGas) cwarn << "Minimum gas amount is" << minGas; From 1e6f3cb1bd437e18693f0a477bc76128d86978c3 Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 9 Feb 2015 18:45:00 +0100 Subject: [PATCH 44/52] Introduced byte array type. --- libsolidity/Token.h | 6 +++--- libsolidity/Types.cpp | 11 +++++++++++ libsolidity/Types.h | 32 ++++++++++++++++++++++++++++---- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/libsolidity/Token.h b/libsolidity/Token.h index ac8c618fa..5167c1a77 100644 --- a/libsolidity/Token.h +++ b/libsolidity/Token.h @@ -176,8 +176,7 @@ namespace solidity K(SubFinney, "finney", 0) \ K(SubEther, "ether", 0) \ /* type keywords, keep them in this order, keep int as first keyword - * the implementation in Types.cpp has to be synced to this here - * TODO more to be added */ \ + * the implementation in Types.cpp has to be synced to this here */\ K(Int, "int", 0) \ K(Int8, "int8", 0) \ K(Int16, "int16", 0) \ @@ -279,7 +278,8 @@ namespace solidity K(Hash256, "hash256", 0) \ K(Address, "address", 0) \ K(Bool, "bool", 0) \ - K(StringType, "string", 0) \ + K(Bytes, "bytes", 0) \ + K(StringType, "string", 0) \ K(String0, "string0", 0) \ K(String1, "string1", 0) \ K(String2, "string2", 0) \ diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index 5f573a6da..069493e62 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -57,6 +57,8 @@ shared_ptr Type::fromElementaryTypeName(Token::Value _typeToken) return make_shared(); else if (Token::String0 <= _typeToken && _typeToken <= Token::String32) return make_shared(int(_typeToken) - int(Token::String0)); + else if (_typeToken == Token::Bytes) + return make_shared(ByteArrayType::Location::Storage, 0, 0, true); else BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Unable to convert elementary typename " + std::string(Token::toString(_typeToken)) + " to type.")); @@ -506,6 +508,15 @@ TypePointer ContractType::unaryOperatorResult(Token::Value _operator) const return _operator == Token::Delete ? make_shared() : TypePointer(); } +bool ByteArrayType::operator==(Type const& _other) const +{ + if (_other.getCategory() != getCategory()) + return false; + ByteArrayType const& other = dynamic_cast(_other); + return other.m_location == m_location && other.m_dynamicLength == m_dynamicLength + && other.m_length == m_length && other.m_offset == m_offset; +} + bool ContractType::operator==(Type const& _other) const { if (_other.getCategory() != getCategory()) diff --git a/libsolidity/Types.h b/libsolidity/Types.h index 05090c7a2..927ca2902 100644 --- a/libsolidity/Types.h +++ b/libsolidity/Types.h @@ -76,9 +76,10 @@ class Type: private boost::noncopyable, public std::enable_shared_from_this Date: Tue, 10 Feb 2015 09:00:50 +0100 Subject: [PATCH 45/52] Tests and some code for msg.data. --- libsolidity/AST.cpp | 3 ++- libsolidity/Types.cpp | 14 +++++++++++++- libsolidity/Types.h | 2 +- test/SolidityEndToEndTest.cpp | 25 +++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/libsolidity/AST.cpp b/libsolidity/AST.cpp index 041b6277d..33cf8c12d 100644 --- a/libsolidity/AST.cpp +++ b/libsolidity/AST.cpp @@ -403,7 +403,8 @@ void Assignment::checkTypeRequirements() m_leftHandSide->checkTypeRequirements(); m_leftHandSide->requireLValue(); //@todo later, assignments to structs might be possible, but not to mappings - if (!m_leftHandSide->getType()->isValueType() && !m_leftHandSide->isLocalLValue()) + if (m_leftHandSide->getType()->getCategory() != Type::Category::ByteArray && + !m_leftHandSide->getType()->isValueType() && !m_leftHandSide->isLocalLValue()) BOOST_THROW_EXCEPTION(createTypeError("Assignment to non-local non-value lvalue.")); m_type = m_leftHandSide->getType(); if (m_assigmentOperator == Token::Assign) diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index 069493e62..9faa3f3c0 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -508,6 +508,16 @@ TypePointer ContractType::unaryOperatorResult(Token::Value _operator) const return _operator == Token::Delete ? make_shared() : TypePointer(); } +bool ByteArrayType::isImplicitlyConvertibleTo(const Type& _convertTo) const +{ + if (*this == _convertTo) + return true; + if (_convertTo.getCategory() != Category::ByteArray) + return false; + auto const& other = dynamic_cast(_convertTo); + return (m_dynamicLength == other.m_dynamicLength || m_length == other.m_length); +} + bool ByteArrayType::operator==(Type const& _other) const { if (_other.getCategory() != getCategory()) @@ -952,7 +962,9 @@ MagicType::MagicType(MagicType::Kind _kind): case Kind::Message: m_members = MemberList({{"sender", make_shared(0, IntegerType::Modifier::Address)}, {"gas", make_shared(256)}, - {"value", make_shared(256)}}); + {"value", make_shared(256)}, + {"data", make_shared(ByteArrayType::Location::CallData, + 0, 0, true)}}); break; case Kind::Transaction: m_members = MemberList({{"origin", make_shared(0, IntegerType::Modifier::Address)}, diff --git a/libsolidity/Types.h b/libsolidity/Types.h index 927ca2902..ddcfad9ed 100644 --- a/libsolidity/Types.h +++ b/libsolidity/Types.h @@ -287,11 +287,11 @@ public: virtual Category getCategory() const override { return Category::ByteArray; } ByteArrayType(Location _location, u256 const& _offset, u256 const& _length, bool _dynamicLength): m_location(_location), m_offset(_offset), m_length(_length), m_dynamicLength(_dynamicLength) {} + virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override; virtual bool operator==(const Type& _other) const override; virtual unsigned getSizeOnStack() const override { return 1; /* TODO */ } virtual std::string toString() const override { return "bytes"; } - private: Location m_location; u256 m_offset; diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 8a21290cb..054b0c6a4 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -2254,6 +2254,31 @@ BOOST_AUTO_TEST_CASE(generic_call) BOOST_CHECK_EQUAL(m_state.balance(m_contractAddress), 50 - 2); } +BOOST_AUTO_TEST_CASE(storing_bytes) +{ + char const* sourceCode = R"( + contract C { + function save() { + savedData = msg.data; + } + function forward() { + this.call(savedData); + } + function clear() { + delete savedData; + } + function doubleIt(uint a) returns (uint b) { return a * 2; } + bytes savedData; + } + )"; + compileAndRun(sourceCode); + FixedHash<4> innerHash(dev::sha3("doubleIt(uint256)")); + BOOST_CHECK(callContractFunction("save()", innerHash.asBytes(), 7) == bytes()); + BOOST_CHECK(callContractFunction("forward()") == encodeArgs(14)); + BOOST_CHECK(callContractFunction("clear()") == bytes()); + BOOST_CHECK(callContractFunction("forward()") == bytes()); +} + BOOST_AUTO_TEST_SUITE_END() } From f9d853fe909ba443342598aa49c9a7daf8398716 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 10 Feb 2015 14:57:01 +0100 Subject: [PATCH 46/52] Simple copy of bytes to storage. --- libsolidity/ExpressionCompiler.cpp | 118 ++++++++++++++++++++++++----- libsolidity/ExpressionCompiler.h | 5 +- libsolidity/Types.cpp | 18 ++++- libsolidity/Types.h | 11 ++- test/SolidityEndToEndTest.cpp | 65 +++++++++++++++- 5 files changed, 189 insertions(+), 28 deletions(-) diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index beda01322..8c9028e45 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -59,13 +59,15 @@ void ExpressionCompiler::appendStateVariableAccessor(CompilerContext& _context, bool ExpressionCompiler::visit(Assignment const& _assignment) { _assignment.getRightHandSide().accept(*this); - appendTypeConversion(*_assignment.getRightHandSide().getType(), *_assignment.getType()); + if (_assignment.getType()->isValueType()) + appendTypeConversion(*_assignment.getRightHandSide().getType(), *_assignment.getType()); _assignment.getLeftHandSide().accept(*this); solAssert(m_currentLValue.isValid(), "LValue not retrieved."); Token::Value op = _assignment.getAssignmentOperator(); if (op != Token::Assign) // compound assignment { + solAssert(_assignment.getType()->isValueType(), "Compound operators not implemented for non-value types."); if (m_currentLValue.storesReferenceOnStack()) m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2; m_currentLValue.retrieveValue(_assignment.getType(), _assignment.getLocation(), true); @@ -73,7 +75,7 @@ bool ExpressionCompiler::visit(Assignment const& _assignment) if (m_currentLValue.storesReferenceOnStack()) m_context << eth::Instruction::SWAP1; } - m_currentLValue.storeValue(_assignment); + m_currentLValue.storeValue(_assignment, *_assignment.getRightHandSide().getType()); m_currentLValue.reset(); return false; @@ -126,7 +128,7 @@ bool ExpressionCompiler::visit(UnaryOperation const& _unaryOperation) // Stack for postfix: *ref [ref] (*ref)+-1 if (m_currentLValue.storesReferenceOnStack()) m_context << eth::Instruction::SWAP1; - m_currentLValue.storeValue(_unaryOperation, !_unaryOperation.isPrefixOperation()); + m_currentLValue.storeValue(_unaryOperation, *_unaryOperation.getType(), !_unaryOperation.isPrefixOperation()); m_currentLValue.reset(); break; case Token::Add: // + @@ -472,6 +474,10 @@ void ExpressionCompiler::endVisit(MemberAccess const& _memberAccess) m_context << eth::Instruction::GAS; else if (member == "gasprice") m_context << eth::Instruction::GASPRICE; + else if (member == "data") + { + // nothing to store on the stack + } else BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Unknown magic member.")); break; @@ -1014,7 +1020,7 @@ void ExpressionCompiler::LValue::retrieveValueFromStorage(TypePointer const& _ty } } -void ExpressionCompiler::LValue::storeValue(Expression const& _expression, bool _move) const +void ExpressionCompiler::LValue::storeValue(Expression const& _expression, Type const& _sourceType, bool _move) const { switch (m_type) { @@ -1032,28 +1038,45 @@ void ExpressionCompiler::LValue::storeValue(Expression const& _expression, bool break; } case LValueType::Storage: - if (!_expression.getType()->isValueType()) - break; // no distinction between value and reference for non-value types // stack layout: value value ... value ref - if (!_move) // copy values + if (_expression.getType()->isValueType()) { - if (m_size + 1 > 16) - BOOST_THROW_EXCEPTION(CompilerError() << errinfo_sourceLocation(_expression.getLocation()) - << errinfo_comment("Stack too deep.")); + if (!_move) // copy values + { + if (m_size + 1 > 16) + BOOST_THROW_EXCEPTION(CompilerError() << errinfo_sourceLocation(_expression.getLocation()) + << errinfo_comment("Stack too deep.")); + for (unsigned i = 0; i < m_size; ++i) + *m_context << eth::dupInstruction(m_size + 1) << eth::Instruction::SWAP1; + } + if (m_size > 0) // store high index value first + *m_context << u256(m_size - 1) << eth::Instruction::ADD; for (unsigned i = 0; i < m_size; ++i) - *m_context << eth::dupInstruction(m_size + 1) << eth::Instruction::SWAP1; + { + if (i + 1 >= m_size) + *m_context << eth::Instruction::SSTORE; + else + // v v ... v v r+x + *m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2 + << eth::Instruction::SSTORE + << u256(1) << eth::Instruction::SWAP1 << eth::Instruction::SUB; + } } - if (m_size > 0) // store high index value first - *m_context << u256(m_size - 1) << eth::Instruction::ADD; - for (unsigned i = 0; i < m_size; ++i) + else { - if (i + 1 >= m_size) - *m_context << eth::Instruction::SSTORE; + solAssert(!_move, "Move assign for non-value types not implemented."); + solAssert(_sourceType.getCategory() == _expression.getType()->getCategory(), ""); + if (_expression.getType()->getCategory() == Type::Category::ByteArray) + copyByteArrayToStorage(dynamic_cast(*_expression.getType()), + dynamic_cast(_sourceType)); + else if (_expression.getType()->getCategory() == Type::Category::Struct) + { + //@todo + solAssert(false, "Struct copy not yet implemented."); + } else - // v v ... v v r+x - *m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2 - << eth::Instruction::SSTORE - << u256(1) << eth::Instruction::SWAP1 << eth::Instruction::SUB; + BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_sourceLocation(_expression.getLocation()) + << errinfo_comment("Invalid non-value type for assignment.")); } break; case LValueType::Memory: @@ -1145,5 +1168,60 @@ void ExpressionCompiler::LValue::fromIdentifier(Identifier const& _identifier, D << errinfo_comment("Identifier type not supported or identifier not found.")); } +void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _targetType, + ByteArrayType const& _sourceType) const +{ + // stack layout: [source_ref] target_ref (head) + // need to leave target_ref on the stack at the end + solAssert(m_type == LValueType::Storage, ""); + solAssert(_targetType.getLocation() == ByteArrayType::Location::Storage, ""); + switch (_sourceType.getLocation()) + { + case ByteArrayType::Location::CallData: + { + // @todo this does not take length into account. It also assumes that after "CALLDATALENGTH" we only have zeros. + // add some useful constants + *m_context << u256(32) << u256(1); + // stack here: target_ref 32 1 + // store length (in bytes) + if (_sourceType.getOffset() == 0) + *m_context << eth::Instruction::CALLDATASIZE; + else + *m_context << _sourceType.getOffset() << eth::Instruction::CALLDATASIZE << eth::Instruction::SUB; + *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP5 << eth::Instruction::SSTORE; + // jump to end if length is zero + *m_context << eth::Instruction::ISZERO; + eth::AssemblyItem loopEnd = m_context->newTag(); + m_context->appendConditionalJumpTo(loopEnd); + // actual array data is stored at SHA3(storage_offset) + *m_context << eth::Instruction::DUP3; + CompilerUtils(*m_context).storeInMemory(0); + *m_context << u256(32) << u256(0) << eth::Instruction::SHA3; + + *m_context << _sourceType.getOffset(); + // stack now: target_ref 32 1 target_data_ref calldata_offset + eth::AssemblyItem loopStart = m_context->newTag(); + *m_context << loopStart + // copy from calldata and store + << eth::Instruction::DUP1 << eth::Instruction::CALLDATALOAD + << eth::Instruction::DUP3 << eth::Instruction::SSTORE + // increment target_data_ref by 1 + << eth::Instruction::SWAP1 << eth::Instruction::DUP3 << eth::Instruction::ADD + // increment calldata_offset by 32 + << eth::Instruction::SWAP1 << eth::Instruction::DUP4 << eth::Instruction::ADD + // check for loop condition + << eth::Instruction::DUP1 << eth::Instruction::CALLDATASIZE << eth::Instruction::GT; + m_context->appendConditionalJumpTo(loopStart); + *m_context << eth::Instruction::POP << eth::Instruction::POP; + *m_context << loopEnd << eth::Instruction::POP << eth::Instruction::POP; + break; + } + case ByteArrayType::Location::Storage: + break; + default: + solAssert(false, "Byte array location not implemented."); + } +} + } } diff --git a/libsolidity/ExpressionCompiler.h b/libsolidity/ExpressionCompiler.h index 3c94d74c2..bd45e067d 100644 --- a/libsolidity/ExpressionCompiler.h +++ b/libsolidity/ExpressionCompiler.h @@ -148,7 +148,8 @@ private: /// be on the top of the stack, if any) in the lvalue and removes the reference. /// Also removes the stored value from the stack if @a _move is /// true. @a _expression is the current expression, used for error reporting. - void storeValue(Expression const& _expression, bool _move = false) const; + /// @a _sourceType is the type of the expression that is assigned. + void storeValue(Expression const& _expression, Type const& _sourceType, bool _move = false) const; /// Stores zero in the lvalue. /// @a _expression is the current expression, used for error reporting. void setToZero(Expression const& _expression) const; @@ -159,6 +160,8 @@ private: private: /// Convenience function to retrieve Value from Storage. Specific version of @ref retrieveValue void retrieveValueFromStorage(TypePointer const& _type, bool _remove = false) const; + /// Copies from a byte array to a byte array in storage, both references on the stack. + void copyByteArrayToStorage(ByteArrayType const& _targetType, ByteArrayType const& _sourceType) const; CompilerContext* m_context; LValueType m_type = LValueType::None; diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index 9faa3f3c0..16674742e 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -518,6 +518,13 @@ bool ByteArrayType::isImplicitlyConvertibleTo(const Type& _convertTo) const return (m_dynamicLength == other.m_dynamicLength || m_length == other.m_length); } +TypePointer ByteArrayType::unaryOperatorResult(Token::Value _operator) const +{ + if (_operator == Token::Delete) + return make_shared(); + return TypePointer(); +} + bool ByteArrayType::operator==(Type const& _other) const { if (_other.getCategory() != getCategory()) @@ -527,6 +534,14 @@ bool ByteArrayType::operator==(Type const& _other) const && other.m_length == m_length && other.m_offset == m_offset; } +unsigned ByteArrayType::getSizeOnStack() const +{ + if (m_location == Location::CallData) + return 0; + else + return 1; +} + bool ContractType::operator==(Type const& _other) const { if (_other.getCategory() != getCategory()) @@ -963,8 +978,7 @@ MagicType::MagicType(MagicType::Kind _kind): m_members = MemberList({{"sender", make_shared(0, IntegerType::Modifier::Address)}, {"gas", make_shared(256)}, {"value", make_shared(256)}, - {"data", make_shared(ByteArrayType::Location::CallData, - 0, 0, true)}}); + {"data", make_shared(ByteArrayType::Location::CallData)}}); break; case Kind::Transaction: m_members = MemberList({{"origin", make_shared(0, IntegerType::Modifier::Address)}, diff --git a/libsolidity/Types.h b/libsolidity/Types.h index ddcfad9ed..a23790fa2 100644 --- a/libsolidity/Types.h +++ b/libsolidity/Types.h @@ -285,13 +285,20 @@ public: enum class Location { Storage, CallData, Memory }; virtual Category getCategory() const override { return Category::ByteArray; } - ByteArrayType(Location _location, u256 const& _offset, u256 const& _length, bool _dynamicLength): + explicit ByteArrayType(Location _location, u256 const& _offset = 0, u256 const& _length = 0, + bool _dynamicLength = false): m_location(_location), m_offset(_offset), m_length(_length), m_dynamicLength(_dynamicLength) {} virtual bool isImplicitlyConvertibleTo(Type const& _convertTo) const override; + virtual TypePointer unaryOperatorResult(Token::Value _operator) const override; virtual bool operator==(const Type& _other) const override; - virtual unsigned getSizeOnStack() const override { return 1; /* TODO */ } + virtual unsigned getSizeOnStack() const override; virtual std::string toString() const override { return "bytes"; } + Location getLocation() const { return m_location; } + u256 const& getOffset() const { return m_offset; } + u256 const& getLength() const { return m_length; } + bool hasDynamicLength() const { return m_dynamicLength; } + private: Location m_location; u256 m_offset; diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 054b0c6a4..ecf7ba8a5 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -2254,7 +2254,26 @@ BOOST_AUTO_TEST_CASE(generic_call) BOOST_CHECK_EQUAL(m_state.balance(m_contractAddress), 50 - 2); } -BOOST_AUTO_TEST_CASE(storing_bytes) +BOOST_AUTO_TEST_CASE(store_bytes) +{ + // this test just checks that the copy loop does not mess up the stack + char const* sourceCode = R"( + contract C { + function save() returns (uint r) { + r = 23; + savedData = msg.data; + r = 24; + } + bytes savedData; + } + )"; + compileAndRun(sourceCode); + // empty copy loop + BOOST_CHECK(callContractFunction("save()") == encodeArgs(24)); + BOOST_CHECK(callContractFunction("save()", "abcdefg") == encodeArgs(24)); +} + +BOOST_AUTO_TEST_CASE(call_forward_bytes) { char const* sourceCode = R"( contract C { @@ -2267,16 +2286,56 @@ BOOST_AUTO_TEST_CASE(storing_bytes) function clear() { delete savedData; } - function doubleIt(uint a) returns (uint b) { return a * 2; } + function doubleIt(uint a) { val += a * 2; } bytes savedData; + uint public val; } )"; compileAndRun(sourceCode); FixedHash<4> innerHash(dev::sha3("doubleIt(uint256)")); BOOST_CHECK(callContractFunction("save()", innerHash.asBytes(), 7) == bytes()); - BOOST_CHECK(callContractFunction("forward()") == encodeArgs(14)); + BOOST_CHECK(callContractFunction("val()") == bytes(0)); + BOOST_CHECK(callContractFunction("forward()") == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(14)); BOOST_CHECK(callContractFunction("clear()") == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(14)); BOOST_CHECK(callContractFunction("forward()") == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(14)); +} + +BOOST_AUTO_TEST_CASE(copying_bytes_multiassign) +{ + char const* sourceCode = R"( + contract C { + function save() { + data1 = data2 = msg.data; + } + function forward(bool selector) { + if (selector) + { + this.call(data1); + delete data1; + } + else + { + this.call(data2); + delete data2; + } + } + function doubleIt(uint a) returns (uint b) { val += a * 2; } + bytes data1; + bytes data2; + uint public val; + } + )"; + compileAndRun(sourceCode); + FixedHash<4> innerHash(dev::sha3("doubleIt(uint256)")); + BOOST_CHECK(callContractFunction("save()", innerHash.asBytes(), 7) == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(0)); + BOOST_CHECK(callContractFunction("forward(bool)", true) == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(14)); + BOOST_CHECK(callContractFunction("forward(bool)", false) == bytes()); + BOOST_CHECK(callContractFunction("val()") == bytes(28)); } BOOST_AUTO_TEST_SUITE_END() From 9be8307f22bc01a90479dc29706147cef8624e89 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 10 Feb 2015 17:53:43 +0100 Subject: [PATCH 47/52] Dynamic copy to memory. --- libsolidity/Compiler.cpp | 7 +- libsolidity/CompilerUtils.cpp | 41 +++++--- libsolidity/CompilerUtils.h | 12 ++- libsolidity/ExpressionCompiler.cpp | 146 +++++++++++++++++------------ libsolidity/ExpressionCompiler.h | 27 +++--- libsolidity/Types.cpp | 31 +++--- libsolidity/Types.h | 1 + test/SolidityEndToEndTest.cpp | 86 +++++++++-------- 8 files changed, 200 insertions(+), 151 deletions(-) diff --git a/libsolidity/Compiler.cpp b/libsolidity/Compiler.cpp index b36153677..dad79bb06 100644 --- a/libsolidity/Compiler.cpp +++ b/libsolidity/Compiler.cpp @@ -207,15 +207,10 @@ void Compiler::appendReturnValuePacker(TypePointers const& _typeParameters) for (TypePointer const& type: _typeParameters) { - unsigned numBytes = type->getCalldataEncodedSize(); - if (numBytes > 32) - BOOST_THROW_EXCEPTION(CompilerError() - << errinfo_comment("Type " + type->toString() + " not yet supported.")); CompilerUtils(m_context).copyToStackTop(stackDepth, *type); ExpressionCompiler::appendTypeConversion(m_context, *type, *type, true); - bool const c_leftAligned = type->getCategory() == Type::Category::String; bool const c_padToWords = true; - dataOffset += CompilerUtils(m_context).storeInMemory(dataOffset, numBytes, c_leftAligned, c_padToWords); + dataOffset += CompilerUtils(m_context).storeInMemory(dataOffset, *type, c_padToWords); stackDepth -= type->getSizeOnStack(); } // note that the stack is not cleaned up here diff --git a/libsolidity/CompilerUtils.cpp b/libsolidity/CompilerUtils.cpp index 3101c1b44..129403678 100644 --- a/libsolidity/CompilerUtils.cpp +++ b/libsolidity/CompilerUtils.cpp @@ -62,20 +62,22 @@ unsigned CompilerUtils::loadFromMemory(unsigned _offset, unsigned _bytes, bool _ } } -unsigned CompilerUtils::storeInMemory(unsigned _offset, unsigned _bytes, bool _leftAligned, - bool _padToWordBoundaries) +unsigned CompilerUtils::storeInMemory(unsigned _offset, Type const& _type, bool _padToWordBoundaries) { - if (_bytes == 0) + unsigned numBytes = prepareMemoryStore(_type, _padToWordBoundaries); + if (numBytes > 0) + m_context << u256(_offset) << eth::Instruction::MSTORE; + return numBytes; +} + +void CompilerUtils::storeInMemoryDynamic(Type const& _type, bool _padToWordBoundaries) +{ + unsigned numBytes = prepareMemoryStore(_type, _padToWordBoundaries); + if (numBytes > 0) { - m_context << eth::Instruction::POP; - return 0; + m_context << eth::Instruction::DUP2 << eth::Instruction::MSTORE; + m_context << u256(numBytes) << eth::Instruction::ADD; } - solAssert(_bytes <= 32, "Memory store of more than 32 bytes requested."); - if (_bytes != 32 && !_leftAligned && !_padToWordBoundaries) - // shift the value accordingly before storing - m_context << (u256(1) << ((32 - _bytes) * 8)) << eth::Instruction::MUL; - m_context << u256(_offset) << eth::Instruction::MSTORE; - return _padToWordBoundaries ? 32 : _bytes; } void CompilerUtils::moveToStackVariable(VariableDeclaration const& _variable) @@ -114,5 +116,22 @@ unsigned CompilerUtils::getSizeOnStack(vector> const& _va return size; } +unsigned CompilerUtils::prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) +{ + unsigned _encodedSize = _type.getCalldataEncodedSize(); + unsigned numBytes = _padToWordBoundaries ? getPaddedSize(_encodedSize) : _encodedSize; + bool leftAligned = _type.getCategory() == Type::Category::String; + if (numBytes == 0) + m_context << eth::Instruction::POP; + else + { + solAssert(numBytes <= 32, "Memory store of more than 32 bytes requested."); + if (numBytes != 32 && !leftAligned && !_padToWordBoundaries) + // shift the value accordingly before storing + m_context << (u256(1) << ((32 - numBytes) * 8)) << eth::Instruction::MUL; + } + return numBytes; +} + } } diff --git a/libsolidity/CompilerUtils.h b/libsolidity/CompilerUtils.h index b5a695282..e591e9a71 100644 --- a/libsolidity/CompilerUtils.h +++ b/libsolidity/CompilerUtils.h @@ -47,13 +47,14 @@ public: bool _fromCalldata = false, bool _padToWordBoundaries = false); /// Stores data from stack in memory. /// @param _offset offset in memory - /// @param _bytes number of bytes to store - /// @param _leftAligned if true, data is left aligned on stack (otherwise right aligned) + /// @param _type type of the data on the stack /// @param _padToWordBoundaries if true, pad the data to word (32 byte) boundaries /// @returns the number of bytes written to memory (can be different from _bytes if /// _padToWordBoundaries is true) - unsigned storeInMemory(unsigned _offset, unsigned _bytes = 32, bool _leftAligned = false, - bool _padToWordBoundaries = false); + unsigned storeInMemory(unsigned _offset, Type const& _type = IntegerType(256), bool _padToWordBoundaries = false); + /// Dynamic version of @see storeInMemory, expects the memory offset below the value on the stack + /// and also updates that. + void storeInMemoryDynamic(Type const& _type, bool _padToWordBoundaries = true); /// @returns _size rounded up to the next multiple of 32 (the number of bytes occupied in the /// padded calldata) static unsigned getPaddedSize(unsigned _size) { return ((_size + 31) / 32) * 32; } @@ -72,7 +73,10 @@ public: /// Bytes we need to the start of call data. /// - The size in bytes of the function (hash) identifier. static const unsigned int dataStartOffset; + private: + unsigned prepareMemoryStore(Type const& _type, bool _padToWordBoundaries); + CompilerContext& m_context; }; diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index 8c9028e45..363d1d4b2 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -276,10 +276,10 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall) //@todo copy to memory position 0, shift as soon as we use memory m_context << u256(0) << eth::Instruction::CODECOPY; - unsigned length = bytecode.size(); - length += appendArgumentsCopyToMemory(arguments, function.getParameterTypes(), length); + m_context << u256(bytecode.size()); + appendArgumentsCopyToMemory(arguments, function.getParameterTypes()); // size, offset, endowment - m_context << u256(length) << u256(0); + m_context << u256(0); if (function.valueSet()) m_context << eth::dupInstruction(3); else @@ -329,8 +329,9 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall) break; case Location::SHA3: { - unsigned length = appendArgumentsCopyToMemory(arguments, TypePointers(), 0, function.padArguments()); - m_context << u256(length) << u256(0) << eth::Instruction::SHA3; + m_context << u256(0); + appendArgumentsCopyToMemory(arguments, TypePointers(), function.padArguments()); + m_context << u256(0) << eth::Instruction::SHA3; break; } case Location::Log0: @@ -345,23 +346,16 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall) arguments[arg]->accept(*this); appendTypeConversion(*arguments[arg]->getType(), *function.getParameterTypes()[arg], true); } - unsigned length = appendExpressionCopyToMemory(*function.getParameterTypes().front(), - *arguments.front()); - solAssert(length == 32, "Log data should be 32 bytes long (for now)."); - m_context << u256(length) << u256(0) << eth::logInstruction(logNumber); + m_context << u256(0); + appendExpressionCopyToMemory(*function.getParameterTypes().front(), *arguments.front()); + m_context << u256(0) << eth::logInstruction(logNumber); break; } case Location::Event: { _functionCall.getExpression().accept(*this); auto const& event = dynamic_cast(function.getDeclaration()); - // Copy all non-indexed arguments to memory (data) unsigned numIndexed = 0; - unsigned memLength = 0; - for (unsigned arg = 0; arg < arguments.size(); ++arg) - if (!event.getParameters()[arg]->isIndexed()) - memLength += appendExpressionCopyToMemory(*function.getParameterTypes()[arg], - *arguments[arg], memLength); // All indexed arguments go to the stack for (unsigned arg = arguments.size(); arg > 0; --arg) if (event.getParameters()[arg - 1]->isIndexed()) @@ -374,7 +368,12 @@ bool ExpressionCompiler::visit(FunctionCall const& _functionCall) m_context << u256(h256::Arith(dev::sha3(function.getCanonicalSignature(event.getName())))); ++numIndexed; solAssert(numIndexed <= 4, "Too many indexed arguments."); - m_context << u256(memLength) << u256(0) << eth::logInstruction(numIndexed); + // Copy all non-indexed arguments to memory (data) + m_context << u256(0); + for (unsigned arg = 0; arg < arguments.size(); ++arg) + if (!event.getParameters()[arg]->isIndexed()) + appendExpressionCopyToMemory(*function.getParameterTypes()[arg], *arguments[arg]); + m_context << u256(0) << eth::logInstruction(numIndexed); break; } case Location::BlockHash: @@ -514,12 +513,16 @@ bool ExpressionCompiler::visit(IndexAccess const& _indexAccess) { _indexAccess.getBaseExpression().accept(*this); - TypePointer const& keyType = dynamic_cast(*_indexAccess.getBaseExpression().getType()).getKeyType(); - unsigned length = appendExpressionCopyToMemory(*keyType, _indexAccess.getIndexExpression()); - solAssert(length == 32, "Mapping key has to take 32 bytes in memory (for now)."); - // @todo move this once we actually use memory - length += CompilerUtils(m_context).storeInMemory(length); - m_context << u256(length) << u256(0) << eth::Instruction::SHA3; + Type const& baseType = *_indexAccess.getBaseExpression().getType(); + solAssert(baseType.getCategory() == Type::Category::Mapping, ""); + Type const& keyType = *dynamic_cast(baseType).getKeyType(); + m_context << u256(0); + appendExpressionCopyToMemory(keyType, _indexAccess.getIndexExpression()); + solAssert(baseType.getSizeOnStack() == 1, + "Unexpected: Not exactly one stack slot taken by subscriptable expression."); + m_context << eth::Instruction::SWAP1; + appendTypeMoveToMemory(IntegerType(256)); + m_context << u256(0) << eth::Instruction::SHA3; m_currentLValue = LValue(m_context, LValue::LValueType::Storage, *_indexAccess.getType()); m_currentLValue.retrieveValueIfLValueNotRequested(_indexAccess); @@ -810,26 +813,30 @@ void ExpressionCompiler::appendExternalFunctionCall(FunctionType const& _functio unsigned gasStackPos = m_context.currentToBaseStackOffset(gasValueSize); unsigned valueStackPos = m_context.currentToBaseStackOffset(1); - if (!bare) + //@todo only return the first return value for now + Type const* firstType = _functionType.getReturnParameterTypes().empty() ? nullptr : + _functionType.getReturnParameterTypes().front().get(); + unsigned retSize = firstType ? CompilerUtils::getPaddedSize(firstType->getCalldataEncodedSize()) : 0; + m_context << u256(retSize) << u256(0); + + if (bare) + m_context << u256(0); + else { // copy function identifier - m_context << eth::dupInstruction(gasValueSize + 1); - CompilerUtils(m_context).storeInMemory(0, CompilerUtils::dataStartOffset); + m_context << eth::dupInstruction(gasValueSize + 3); + CompilerUtils(m_context).storeInMemory(0, IntegerType(CompilerUtils::dataStartOffset * 8)); + m_context << u256(CompilerUtils::dataStartOffset); } - // reserve space for the function identifier - unsigned dataOffset = bare ? 0 : CompilerUtils::dataStartOffset; // For bare call, activate "4 byte pad exception": If the first argument has exactly 4 bytes, // do not pad it to 32 bytes. - dataOffset += appendArgumentsCopyToMemory(_arguments, _functionType.getParameterTypes(), dataOffset, - _functionType.padArguments(), bare); + appendArgumentsCopyToMemory(_arguments, _functionType.getParameterTypes(), + _functionType.padArguments(), bare); - //@todo only return the first return value for now - Type const* firstType = _functionType.getReturnParameterTypes().empty() ? nullptr : - _functionType.getReturnParameterTypes().front().get(); - unsigned retSize = firstType ? CompilerUtils::getPaddedSize(firstType->getCalldataEncodedSize()) : 0; - // CALL arguments: outSize, outOff, inSize, inOff, value, addr, gas (stack top) - m_context << u256(retSize) << u256(0) << u256(dataOffset) << u256(0); + // CALL arguments: outSize, outOff, inSize, (already present up to here) + // inOff, value, addr, gas (stack top) + m_context << u256(0); if (_functionType.valueSet()) m_context << eth::dupInstruction(m_context.baseToCurrentStackOffset(valueStackPos)); else @@ -858,14 +865,12 @@ void ExpressionCompiler::appendExternalFunctionCall(FunctionType const& _functio } } -unsigned ExpressionCompiler::appendArgumentsCopyToMemory(vector> const& _arguments, - TypePointers const& _types, - unsigned _memoryOffset, - bool _padToWordBoundaries, - bool _padExceptionIfFourBytes) +void ExpressionCompiler::appendArgumentsCopyToMemory(vector> const& _arguments, + TypePointers const& _types, + bool _padToWordBoundaries, + bool _padExceptionIfFourBytes) { solAssert(_types.empty() || _types.size() == _arguments.size(), ""); - unsigned length = 0; for (size_t i = 0; i < _arguments.size(); ++i) { _arguments[i]->accept(*this); @@ -875,31 +880,55 @@ unsigned ExpressionCompiler::appendArgumentsCopyToMemory(vectorgetCalldataEncodedSize() == 4) pad = false; - length += appendTypeMoveToMemory(*expectedType, _arguments[i]->getLocation(), - _memoryOffset + length, pad); + appendTypeMoveToMemory(*expectedType, pad); } - return length; } -unsigned ExpressionCompiler::appendTypeMoveToMemory(Type const& _type, Location const& _location, unsigned _memoryOffset, bool _padToWordBoundaries) +void ExpressionCompiler::appendTypeMoveToMemory(Type const& _type, bool _padToWordBoundaries) { - unsigned const c_encodedSize = _type.getCalldataEncodedSize(); - unsigned const c_numBytes = _padToWordBoundaries ? CompilerUtils::getPaddedSize(c_encodedSize) : c_encodedSize; - if (c_numBytes == 0 || c_numBytes > 32) - BOOST_THROW_EXCEPTION(CompilerError() - << errinfo_sourceLocation(_location) - << errinfo_comment("Type " + _type.toString() + " not yet supported.")); - bool const c_leftAligned = _type.getCategory() == Type::Category::String; - return CompilerUtils(m_context).storeInMemory(_memoryOffset, c_numBytes, c_leftAligned, _padToWordBoundaries); + if (_type.getCategory() == Type::Category::ByteArray) + { + auto const& type = dynamic_cast(_type); + solAssert(type.getLocation() == ByteArrayType::Location::Storage, "Non-storage byte arrays not yet implemented."); + + m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + // stack here: memory_offset storage_offset length_bytes + // jump to end if length is zero + m_context << eth::Instruction::DUP1 << eth::Instruction::ISZERO; + eth::AssemblyItem loopEnd = m_context.newTag(); + m_context.appendConditionalJumpTo(loopEnd); + // compute memory end offset + m_context << eth::Instruction::DUP3 << eth::Instruction::ADD << eth::Instruction::SWAP2; + // actual array data is stored at SHA3(storage_offset) + m_context << eth::Instruction::SWAP1; + CompilerUtils(m_context).storeInMemory(0); + m_context << u256(32) << u256(0) << eth::Instruction::SHA3 + << eth::Instruction::SWAP1; + + // stack here: memory_end_offset storage_data_offset memory_offset + eth::AssemblyItem loopStart = m_context.newTag(); + m_context << loopStart + // load and store + << eth::Instruction::DUP2 << eth::Instruction::SLOAD + << eth::Instruction::DUP2 << eth::Instruction::MSTORE + // increment storage_data_offset by 1 + << eth::Instruction::SWAP1 << u256(1) << eth::Instruction::ADD + // increment memory offset by 32 + << eth::Instruction::SWAP1 << u256(32) << eth::Instruction::ADD + // check for loop condition + << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::GT; + m_context.appendConditionalJumpTo(loopStart); + m_context << loopEnd << eth::Instruction::POP << eth::Instruction::POP; + } + else + CompilerUtils(m_context).storeInMemoryDynamic(_type, _padToWordBoundaries); } -unsigned ExpressionCompiler::appendExpressionCopyToMemory(Type const& _expectedType, - Expression const& _expression, - unsigned _memoryOffset) +void ExpressionCompiler::appendExpressionCopyToMemory(Type const& _expectedType, Expression const& _expression) { _expression.accept(*this); appendTypeConversion(*_expression.getType(), _expectedType, true); - return appendTypeMoveToMemory(_expectedType, _expression.getLocation(), _memoryOffset); + appendTypeMoveToMemory(_expectedType); } void ExpressionCompiler::appendStateVariableAccessor(VariableDeclaration const& _varDecl) @@ -910,7 +939,7 @@ void ExpressionCompiler::appendStateVariableAccessor(VariableDeclaration const& TypePointers const& paramTypes = accessorType.getParameterTypes(); // move arguments to memory for (TypePointer const& paramType: boost::adaptors::reverse(paramTypes)) - length += appendTypeMoveToMemory(*paramType, Location(), length); + length += CompilerUtils(m_context).storeInMemory(length, *paramType, true); // retrieve the position of the variable m_context << m_context.getStorageLocationOfVariable(_varDecl); @@ -1217,6 +1246,7 @@ void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _ta break; } case ByteArrayType::Location::Storage: + solAssert(false, "Not Yet implemented."); break; default: solAssert(false, "Byte array location not implemented."); diff --git a/libsolidity/ExpressionCompiler.h b/libsolidity/ExpressionCompiler.h index bd45e067d..dd26881fd 100644 --- a/libsolidity/ExpressionCompiler.h +++ b/libsolidity/ExpressionCompiler.h @@ -92,21 +92,18 @@ private: /// Appends code to call a function of the given type with the given arguments. void appendExternalFunctionCall(FunctionType const& _functionType, std::vector> const& _arguments, bool bare = false); - /// Appends code that evaluates the given arguments and moves the result to memory (with optional offset). - /// @returns the number of bytes moved to memory - unsigned appendArgumentsCopyToMemory(std::vector> const& _arguments, - TypePointers const& _types = {}, - unsigned _memoryOffset = 0, - bool _padToWordBoundaries = true, - bool _padExceptionIfFourBytes = false); - /// Appends code that moves a stack element of the given type to memory - /// @returns the number of bytes moved to memory - unsigned appendTypeMoveToMemory(Type const& _type, Location const& _location, unsigned _memoryOffset, - bool _padToWordBoundaries = true); - /// Appends code that evaluates a single expression and moves the result to memory (with optional offset). - /// @returns the number of bytes moved to memory - unsigned appendExpressionCopyToMemory(Type const& _expectedType, Expression const& _expression, - unsigned _memoryOffset = 0); + /// Appends code that evaluates the given arguments and moves the result to memory. The memory offset is + /// expected to be on the stack and is updated by this call. + void appendArgumentsCopyToMemory(std::vector> const& _arguments, + TypePointers const& _types = {}, + bool _padToWordBoundaries = true, + bool _padExceptionIfFourBytes = false); + /// Appends code that moves a stack element of the given type to memory. The memory offset is + /// expected below the stack element and is updated by this call. + void appendTypeMoveToMemory(Type const& _type, bool _padToWordBoundaries = true); + /// Appends code that evaluates a single expression and moves the result to memory. The memory offset is + /// expected to be on the stack and is updated by this call. + void appendExpressionCopyToMemory(Type const& _expectedType, Expression const& _expression); /// Appends code for a State Variable accessor function void appendStateVariableAccessor(VariableDeclaration const& _varDecl); diff --git a/libsolidity/Types.cpp b/libsolidity/Types.cpp index 16674742e..f43a3ffe3 100644 --- a/libsolidity/Types.cpp +++ b/libsolidity/Types.cpp @@ -35,7 +35,7 @@ namespace dev namespace solidity { -shared_ptr Type::fromElementaryTypeName(Token::Value _typeToken) +TypePointer Type::fromElementaryTypeName(Token::Value _typeToken) { solAssert(Token::isElementaryTypeName(_typeToken), "Elementary type name expected."); @@ -64,7 +64,12 @@ shared_ptr Type::fromElementaryTypeName(Token::Value _typeToken) std::string(Token::toString(_typeToken)) + " to type.")); } -shared_ptr Type::fromUserDefinedTypeName(UserDefinedTypeName const& _typeName) +TypePointer Type::fromElementaryTypeName(string const& _name) +{ + return fromElementaryTypeName(Token::fromIdentifierOrKeyword(_name)); +} + +TypePointer Type::fromUserDefinedTypeName(UserDefinedTypeName const& _typeName) { Declaration const* declaration = _typeName.getReferencedDeclaration(); if (StructDefinition const* structDef = dynamic_cast(declaration)) @@ -73,21 +78,21 @@ shared_ptr Type::fromUserDefinedTypeName(UserDefinedTypeName const& return make_shared(*function); else if (ContractDefinition const* contract = dynamic_cast(declaration)) return make_shared(*contract); - return shared_ptr(); + return TypePointer(); } -shared_ptr Type::fromMapping(Mapping const& _typeName) +TypePointer Type::fromMapping(Mapping const& _typeName) { - shared_ptr keyType = _typeName.getKeyType().toType(); + TypePointer keyType = _typeName.getKeyType().toType(); if (!keyType) BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_comment("Error resolving type name.")); - shared_ptr valueType = _typeName.getValueType().toType(); + TypePointer valueType = _typeName.getValueType().toType(); if (!valueType) BOOST_THROW_EXCEPTION(_typeName.getValueType().createTypeError("Invalid type name")); return make_shared(keyType, valueType); } -shared_ptr Type::forLiteral(Literal const& _literal) +TypePointer Type::forLiteral(Literal const& _literal) { switch (_literal.getToken()) { @@ -561,8 +566,8 @@ MemberList const& ContractType::getMembers() const if (!m_members) { // All address members and all interface functions - map> members(IntegerType::AddressMemberList.begin(), - IntegerType::AddressMemberList.end()); + map members(IntegerType::AddressMemberList.begin(), + IntegerType::AddressMemberList.end()); if (m_super) { for (ContractDefinition const* base: m_contract.getLinearizedBaseContracts()) @@ -617,14 +622,14 @@ bool StructType::operator==(Type const& _other) const u256 StructType::getStorageSize() const { u256 size = 0; - for (pair> const& member: getMembers()) + for (pair const& member: getMembers()) size += member.second->getStorageSize(); return max(1, size); } bool StructType::canLiveOutsideStorage() const { - for (pair> const& member: getMembers()) + for (pair const& member: getMembers()) if (!member.second->canLiveOutsideStorage()) return false; return true; @@ -640,7 +645,7 @@ MemberList const& StructType::getMembers() const // We need to lazy-initialize it because of recursive references. if (!m_members) { - map> members; + map members; for (ASTPointer const& variable: m_struct.getMembers()) members[variable->getName()] = variable->getType(); m_members.reset(new MemberList(members)); @@ -847,7 +852,7 @@ TypePointers FunctionType::parseElementaryTypeVector(strings const& _types) TypePointers pointers; pointers.reserve(_types.size()); for (string const& type: _types) - pointers.push_back(Type::fromElementaryTypeName(Token::fromIdentifierOrKeyword(type))); + pointers.push_back(Type::fromElementaryTypeName(type)); return pointers; } diff --git a/libsolidity/Types.h b/libsolidity/Types.h index a23790fa2..0270773fb 100644 --- a/libsolidity/Types.h +++ b/libsolidity/Types.h @@ -86,6 +86,7 @@ public: ///@name Factory functions /// Factory functions that convert an AST @ref TypeName to a Type. static TypePointer fromElementaryTypeName(Token::Value _typeToken); + static TypePointer fromElementaryTypeName(std::string const& _name); static TypePointer fromUserDefinedTypeName(UserDefinedTypeName const& _typeName); static TypePointer fromMapping(Mapping const& _typeName); static TypePointer fromFunction(FunctionDefinition const& _function); diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index ecf7ba8a5..235e535d0 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -668,7 +668,7 @@ BOOST_AUTO_TEST_CASE(mapping_state) testSolidityAgainstCpp("getVoteCount(address)", getVoteCount, u160(0)); testSolidityAgainstCpp("getVoteCount(address)", getVoteCount, u160(1)); testSolidityAgainstCpp("getVoteCount(address)", getVoteCount, u160(2)); - // voting without vote right shourd be rejected + // voting without vote right should be rejected testSolidityAgainstCpp("vote(address,address)", vote, u160(0), u160(2)); testSolidityAgainstCpp("getVoteCount(address)", getVoteCount, u160(0)); testSolidityAgainstCpp("getVoteCount(address)", getVoteCount, u160(1)); @@ -2276,68 +2276,66 @@ BOOST_AUTO_TEST_CASE(store_bytes) BOOST_AUTO_TEST_CASE(call_forward_bytes) { char const* sourceCode = R"( - contract C { - function save() { - savedData = msg.data; - } - function forward() { - this.call(savedData); - } - function clear() { - delete savedData; - } - function doubleIt(uint a) { val += a * 2; } + contract receiver { + uint public received; + function receive(uint x) { received += x + 1; } + function() { received = 0x80; } + } + contract sender { + function sender() { rec = new receiver(); } + function() { savedData = msg.data; } + function forward() { rec.call(savedData); } + function clear() { delete savedData; } + function val() returns (uint) { return rec.received(); } + receiver rec; bytes savedData; - uint public val; } )"; - compileAndRun(sourceCode); - FixedHash<4> innerHash(dev::sha3("doubleIt(uint256)")); - BOOST_CHECK(callContractFunction("save()", innerHash.asBytes(), 7) == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(0)); + compileAndRun(sourceCode, 0, "sender"); + BOOST_CHECK(callContractFunction("receive(uint256)", 7) == bytes()); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(0)); BOOST_CHECK(callContractFunction("forward()") == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(14)); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); BOOST_CHECK(callContractFunction("clear()") == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(14)); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); BOOST_CHECK(callContractFunction("forward()") == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(14)); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(0x80)); } BOOST_AUTO_TEST_CASE(copying_bytes_multiassign) { char const* sourceCode = R"( - contract C { - function save() { - data1 = data2 = msg.data; - } + contract receiver { + uint public received; + function receive(uint x) { received += x + 1; } + function() { received = 0x80; } + } + contract sender { + function sender() { rec = new receiver(); } + function() { savedData1 = savedData2 = msg.data; } function forward(bool selector) { - if (selector) - { - this.call(data1); - delete data1; - } - else - { - this.call(data2); - delete data2; - } + if (selector) { rec.call(savedData1); delete savedData1; } + else { rec.call(savedData2); delete savedData2; } } - function doubleIt(uint a) returns (uint b) { val += a * 2; } - bytes data1; - bytes data2; - uint public val; + function val() returns (uint) { return rec.received(); } + receiver rec; + bytes savedData1; + bytes savedData2; } )"; - compileAndRun(sourceCode); - FixedHash<4> innerHash(dev::sha3("doubleIt(uint256)")); - BOOST_CHECK(callContractFunction("save()", innerHash.asBytes(), 7) == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(0)); + compileAndRun(sourceCode, 0, "sender"); + BOOST_CHECK(callContractFunction("receive(uint256)", 7) == bytes()); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(0)); BOOST_CHECK(callContractFunction("forward(bool)", true) == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(14)); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); BOOST_CHECK(callContractFunction("forward(bool)", false) == bytes()); - BOOST_CHECK(callContractFunction("val()") == bytes(28)); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(16)); + BOOST_CHECK(callContractFunction("forward(bool)", true) == bytes()); + BOOST_CHECK(callContractFunction("val()") == encodeArgs(0x80)); } +// TODO test that "delete" also clears the values + BOOST_AUTO_TEST_SUITE_END() } From aa765180f1c7ac887941702e336d5aaa3cf5177d Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 11 Feb 2015 14:24:34 +0100 Subject: [PATCH 48/52] Copy storage to storage. --- libsolidity/CompilerUtils.cpp | 6 +++ libsolidity/CompilerUtils.h | 5 ++ libsolidity/ExpressionCompiler.cpp | 77 +++++++++++++++++++++++++++--- 3 files changed, 81 insertions(+), 7 deletions(-) diff --git a/libsolidity/CompilerUtils.cpp b/libsolidity/CompilerUtils.cpp index 129403678..c38149c14 100644 --- a/libsolidity/CompilerUtils.cpp +++ b/libsolidity/CompilerUtils.cpp @@ -116,6 +116,12 @@ unsigned CompilerUtils::getSizeOnStack(vector> const& _va return size; } +void CompilerUtils::computeHashStatic(Type const& _type, bool _padToWordBoundaries) +{ + unsigned length = storeInMemory(0, _type, _padToWordBoundaries); + m_context << u256(length) << u256(0) << eth::Instruction::SHA3; +} + unsigned CompilerUtils::prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) { unsigned _encodedSize = _type.getCalldataEncodedSize(); diff --git a/libsolidity/CompilerUtils.h b/libsolidity/CompilerUtils.h index e591e9a71..493750476 100644 --- a/libsolidity/CompilerUtils.h +++ b/libsolidity/CompilerUtils.h @@ -70,6 +70,11 @@ public: static unsigned getSizeOnStack(std::vector const& _variables); static unsigned getSizeOnStack(std::vector> const& _variableTypes); + /// Appends code that computes tha SHA3 hash of the topmost stack element of type @a _type. + /// If @a _pad is set, padds the type to muliples of 32 bytes. + /// @note Only works for types of fixed size. + void computeHashStatic(Type const& _type = IntegerType(256), bool _padToWordBoundaries = false); + /// Bytes we need to the start of call data. /// - The size in bytes of the function (hash) identifier. static const unsigned int dataStartOffset; diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index 363d1d4b2..a05d71e69 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -886,6 +886,8 @@ void ExpressionCompiler::appendArgumentsCopyToMemory(vector(_type); @@ -901,9 +903,8 @@ void ExpressionCompiler::appendTypeMoveToMemory(Type const& _type, bool _padToWo m_context << eth::Instruction::DUP3 << eth::Instruction::ADD << eth::Instruction::SWAP2; // actual array data is stored at SHA3(storage_offset) m_context << eth::Instruction::SWAP1; - CompilerUtils(m_context).storeInMemory(0); - m_context << u256(32) << u256(0) << eth::Instruction::SHA3 - << eth::Instruction::SWAP1; + CompilerUtils(m_context).computeHashStatic(); + m_context << eth::Instruction::SWAP1; // stack here: memory_end_offset storage_data_offset memory_offset eth::AssemblyItem loopStart = m_context.newTag(); @@ -1204,6 +1205,9 @@ void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _ta // need to leave target_ref on the stack at the end solAssert(m_type == LValueType::Storage, ""); solAssert(_targetType.getLocation() == ByteArrayType::Location::Storage, ""); + + // @TODO move this to CompilerUtils! + switch (_sourceType.getLocation()) { case ByteArrayType::Location::CallData: @@ -1224,8 +1228,7 @@ void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _ta m_context->appendConditionalJumpTo(loopEnd); // actual array data is stored at SHA3(storage_offset) *m_context << eth::Instruction::DUP3; - CompilerUtils(*m_context).storeInMemory(0); - *m_context << u256(32) << u256(0) << eth::Instruction::SHA3; + CompilerUtils(*m_context).computeHashStatic(); *m_context << _sourceType.getOffset(); // stack now: target_ref 32 1 target_data_ref calldata_offset @@ -1246,10 +1249,70 @@ void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _ta break; } case ByteArrayType::Location::Storage: - solAssert(false, "Not Yet implemented."); + { + // this copies source to target and also clears target if it was larger + + // stack: source_ref target_ref + // fetch lengthes + *m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD << eth::Instruction::SWAP2 + << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + // stack: target_len_bytes target_ref source_ref source_len_bytes + // store new target length + *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::SSTORE; + // compute hashes (data positions) + *m_context << eth::Instruction::SWAP2; + CompilerUtils(*m_context).computeHashStatic(); + *m_context << eth::Instruction::SWAP1; + CompilerUtils(*m_context).computeHashStatic(); + // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos + // convert lengthes from bytes to storage slots + *m_context << u256(31) << u256(32) << eth::Instruction::DUP1 << eth::Instruction::DUP3 + << eth::Instruction::DUP8 << eth::Instruction::ADD << eth::Instruction::DIV + << eth::Instruction::SWAP2 + << eth::Instruction::DUP6 << eth::Instruction::ADD << eth::Instruction::DIV; + // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len + // @todo we might be able to go without a third counter + *m_context << u256(0); + // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len counter + eth::AssemblyItem copyLoopStart = m_context->newTag(); + *m_context << copyLoopStart; + // check for loop condition + *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP3 + << eth::Instruction::GT << eth::Instruction::ISZERO; + eth::AssemblyItem copyLoopEnd = m_context->newTag(); + m_context->appendConditionalJumpTo(copyLoopEnd); + // copy + *m_context << eth::Instruction::DUP4 << eth::Instruction::DUP2 << eth::Instruction::ADD + << eth::Instruction::SLOAD + << eth::Instruction::DUP6 << eth::Instruction::DUP3 << eth::Instruction::ADD + << eth::Instruction::SSTORE; + // increment + *m_context << u256(1) << eth::Instruction::ADD; + m_context->appendJumpTo(copyLoopStart); + *m_context << copyLoopEnd; + // zero-out leftovers in target + eth::AssemblyItem zeroLoopStart = m_context->newTag(); + *m_context << zeroLoopStart; + // check for loop condition + *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP4 + << eth::Instruction::GT << eth::Instruction::ISZERO; + eth::AssemblyItem zeroLoopEnd = m_context->newTag(); + m_context->appendConditionalJumpTo(zeroLoopEnd); + // zero out + *m_context << u256(0) + << eth::Instruction::DUP6 << eth::Instruction::DUP3 << eth::Instruction::ADD + << eth::Instruction::SSTORE; + // increment + *m_context << u256(1) << eth::Instruction::ADD; + m_context->appendJumpTo(zeroLoopStart); + // cleanup + *m_context << zeroLoopEnd; + *m_context << eth::Instruction::POP << eth::Instruction::POP << eth::Instruction::POP + << eth::Instruction::POP << eth::Instruction::POP << eth::Instruction::POP; break; + } default: - solAssert(false, "Byte array location not implemented."); + solAssert(false, "Given byte array location not implemented."); } } From 390097db535b025ce272dc72fe43782006bd3e1e Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 11 Feb 2015 14:32:46 +0100 Subject: [PATCH 49/52] Moved copy code to CompilerUtils. --- libsolidity/CompilerUtils.cpp | 213 ++++++++++++++++++++++++++++- libsolidity/CompilerUtils.h | 13 +- libsolidity/ExpressionCompiler.cpp | 186 +++---------------------- libsolidity/ExpressionCompiler.h | 2 +- test/SolidityEndToEndTest.cpp | 69 ++++++++-- test/solidityExecutionFramework.h | 2 +- 6 files changed, 298 insertions(+), 187 deletions(-) diff --git a/libsolidity/CompilerUtils.cpp b/libsolidity/CompilerUtils.cpp index c38149c14..192d66d5c 100644 --- a/libsolidity/CompilerUtils.cpp +++ b/libsolidity/CompilerUtils.cpp @@ -64,6 +64,7 @@ unsigned CompilerUtils::loadFromMemory(unsigned _offset, unsigned _bytes, bool _ unsigned CompilerUtils::storeInMemory(unsigned _offset, Type const& _type, bool _padToWordBoundaries) { + solAssert(_type.getCategory() != Type::Category::ByteArray, "Unable to statically store dynamic type."); unsigned numBytes = prepareMemoryStore(_type, _padToWordBoundaries); if (numBytes > 0) m_context << u256(_offset) << eth::Instruction::MSTORE; @@ -72,11 +73,47 @@ unsigned CompilerUtils::storeInMemory(unsigned _offset, Type const& _type, bool void CompilerUtils::storeInMemoryDynamic(Type const& _type, bool _padToWordBoundaries) { - unsigned numBytes = prepareMemoryStore(_type, _padToWordBoundaries); - if (numBytes > 0) + if (_type.getCategory() == Type::Category::ByteArray) { - m_context << eth::Instruction::DUP2 << eth::Instruction::MSTORE; - m_context << u256(numBytes) << eth::Instruction::ADD; + auto const& type = dynamic_cast(_type); + solAssert(type.getLocation() == ByteArrayType::Location::Storage, "Non-storage byte arrays not yet implemented."); + + m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + // stack here: memory_offset storage_offset length_bytes + // jump to end if length is zero + m_context << eth::Instruction::DUP1 << eth::Instruction::ISZERO; + eth::AssemblyItem loopEnd = m_context.newTag(); + m_context.appendConditionalJumpTo(loopEnd); + // compute memory end offset + m_context << eth::Instruction::DUP3 << eth::Instruction::ADD << eth::Instruction::SWAP2; + // actual array data is stored at SHA3(storage_offset) + m_context << eth::Instruction::SWAP1; + CompilerUtils(m_context).computeHashStatic(); + m_context << eth::Instruction::SWAP1; + + // stack here: memory_end_offset storage_data_offset memory_offset + eth::AssemblyItem loopStart = m_context.newTag(); + m_context << loopStart + // load and store + << eth::Instruction::DUP2 << eth::Instruction::SLOAD + << eth::Instruction::DUP2 << eth::Instruction::MSTORE + // increment storage_data_offset by 1 + << eth::Instruction::SWAP1 << u256(1) << eth::Instruction::ADD + // increment memory offset by 32 + << eth::Instruction::SWAP1 << u256(32) << eth::Instruction::ADD + // check for loop condition + << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::GT; + m_context.appendConditionalJumpTo(loopStart); + m_context << loopEnd << eth::Instruction::POP << eth::Instruction::POP; + } + else + { + unsigned numBytes = prepareMemoryStore(_type, _padToWordBoundaries); + if (numBytes > 0) + { + m_context << eth::Instruction::DUP2 << eth::Instruction::MSTORE; + m_context << u256(numBytes) << eth::Instruction::ADD; + } } } @@ -122,7 +159,153 @@ void CompilerUtils::computeHashStatic(Type const& _type, bool _padToWordBoundari m_context << u256(length) << u256(0) << eth::Instruction::SHA3; } -unsigned CompilerUtils::prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) +void CompilerUtils::copyByteArrayToStorage(ByteArrayType const& _targetType, + ByteArrayType const& _sourceType) const +{ + // stack layout: [source_ref] target_ref (top) + // need to leave target_ref on the stack at the end + solAssert(_targetType.getLocation() == ByteArrayType::Location::Storage, ""); + + switch (_sourceType.getLocation()) + { + case ByteArrayType::Location::CallData: + { + // @todo this does not take length into account. It also assumes that after "CALLDATALENGTH" we only have zeros. + // fetch old length and convert to words + m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + m_context << u256(31) << eth::Instruction::ADD + << u256(32) << eth::Instruction::SWAP1 << eth::Instruction::DIV; + // stack here: target_ref target_length_words + // actual array data is stored at SHA3(storage_offset) + m_context << eth::Instruction::DUP2; + CompilerUtils(m_context).computeHashStatic(); + // compute target_data_end + m_context << eth::Instruction::DUP1 << eth::Instruction::SWAP2 << eth::Instruction::ADD + << eth::Instruction::SWAP1; + // stack here: target_ref target_data_end target_data_ref + // store length (in bytes) + if (_sourceType.getOffset() == 0) + m_context << eth::Instruction::CALLDATASIZE; + else + m_context << _sourceType.getOffset() << eth::Instruction::CALLDATASIZE << eth::Instruction::SUB; + m_context << eth::Instruction::DUP1 << eth::Instruction::DUP5 << eth::Instruction::SSTORE; + // jump to end if length is zero + m_context << eth::Instruction::ISZERO; + eth::AssemblyItem copyLoopEnd = m_context.newTag(); + m_context.appendConditionalJumpTo(copyLoopEnd); + + m_context << _sourceType.getOffset(); + // stack now: target_ref target_data_end target_data_ref calldata_offset + eth::AssemblyItem copyLoopStart = m_context.newTag(); + m_context << copyLoopStart + // copy from calldata and store + << eth::Instruction::DUP1 << eth::Instruction::CALLDATALOAD + << eth::Instruction::DUP3 << eth::Instruction::SSTORE + // increment target_data_ref by 1 + << eth::Instruction::SWAP1 << u256(1) << eth::Instruction::ADD + // increment calldata_offset by 32 + << eth::Instruction::SWAP1 << u256(32) << eth::Instruction::ADD + // check for loop condition + << eth::Instruction::DUP1 << eth::Instruction::CALLDATASIZE << eth::Instruction::GT; + m_context.appendConditionalJumpTo(copyLoopStart); + m_context << eth::Instruction::POP; + m_context << copyLoopEnd; + + // now clear leftover bytes of the old value + // stack now: target_ref target_data_end target_data_ref + clearStorageLoop(); + + m_context << eth::Instruction::POP; + break; + } + case ByteArrayType::Location::Storage: + { + // this copies source to target and also clears target if it was larger + + // stack: source_ref target_ref + // store target_ref + m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2; + // fetch lengthes + m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD << eth::Instruction::SWAP2 + << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + // stack: target_ref target_len_bytes target_ref source_ref source_len_bytes + // store new target length + m_context << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::SSTORE; + // compute hashes (data positions) + m_context << eth::Instruction::SWAP2; + CompilerUtils(m_context).computeHashStatic(); + m_context << eth::Instruction::SWAP1; + CompilerUtils(m_context).computeHashStatic(); + // stack: target_ref target_len_bytes source_len_bytes target_data_pos source_data_pos + // convert lengthes from bytes to storage slots + m_context << u256(31) << u256(32) << eth::Instruction::DUP1 << eth::Instruction::DUP3 + << eth::Instruction::DUP8 << eth::Instruction::ADD << eth::Instruction::DIV + << eth::Instruction::SWAP2 + << eth::Instruction::DUP6 << eth::Instruction::ADD << eth::Instruction::DIV; + // stack: target_ref target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len + // @todo we might be able to go without a third counter + m_context << u256(0); + // stack: target_ref target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len counter + eth::AssemblyItem copyLoopStart = m_context.newTag(); + m_context << copyLoopStart; + // check for loop condition + m_context << eth::Instruction::DUP1 << eth::Instruction::DUP3 + << eth::Instruction::GT << eth::Instruction::ISZERO; + eth::AssemblyItem copyLoopEnd = m_context.newTag(); + m_context.appendConditionalJumpTo(copyLoopEnd); + // copy + m_context << eth::Instruction::DUP4 << eth::Instruction::DUP2 << eth::Instruction::ADD + << eth::Instruction::SLOAD + << eth::Instruction::DUP6 << eth::Instruction::DUP3 << eth::Instruction::ADD + << eth::Instruction::SSTORE; + // increment + m_context << u256(1) << eth::Instruction::ADD; + m_context.appendJumpTo(copyLoopStart); + m_context << copyLoopEnd; + + // zero-out leftovers in target + // stack: target_ref target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len counter + // add counter to target_data_pos + m_context << eth::Instruction::DUP5 << eth::Instruction::ADD + << eth::Instruction::SWAP5 << eth::Instruction::POP; + // stack: target_ref target_len_bytes target_data_pos_updated target_data_pos source_data_pos target_len source_len + // add length to target_data_pos to get target_data_end + m_context << eth::Instruction::POP << eth::Instruction::DUP3 << eth::Instruction::ADD + << eth::Instruction::SWAP4 + << eth::Instruction::POP << eth::Instruction::POP << eth::Instruction::POP; + // stack: target_ref target_data_end target_data_pos_updated + clearStorageLoop(); + m_context << eth::Instruction::POP; + break; + } + default: + solAssert(false, "Given byte array location not implemented."); + } +} + +void CompilerUtils::clearByteArray(ByteArrayType const& _type) const +{ + solAssert(_type.getLocation() == ByteArrayType::Location::Storage, ""); + + // fetch length + m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD; + // set length to zero + m_context << u256(0) << eth::Instruction::DUP3 << eth::Instruction::SSTORE; + // convert length from bytes to storage slots + m_context << u256(31) << eth::Instruction::ADD + << u256(32) << eth::Instruction::SWAP1 << eth::Instruction::DIV; + // compute data positions + m_context << eth::Instruction::SWAP1; + CompilerUtils(m_context).computeHashStatic(); + // stack: len data_pos + m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2 << eth::Instruction::ADD + << eth::Instruction::SWAP1; + clearStorageLoop(); + // cleanup + m_context << eth::Instruction::POP; +} + +unsigned CompilerUtils::prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) const { unsigned _encodedSize = _type.getCalldataEncodedSize(); unsigned numBytes = _padToWordBoundaries ? getPaddedSize(_encodedSize) : _encodedSize; @@ -139,5 +322,25 @@ unsigned CompilerUtils::prepareMemoryStore(Type const& _type, bool _padToWordBou return numBytes; } +void CompilerUtils::clearStorageLoop() const +{ + // stack: end_pos pos + eth::AssemblyItem loopStart = m_context.newTag(); + m_context << loopStart; + // check for loop condition + m_context << eth::Instruction::DUP1 << eth::Instruction::DUP3 + << eth::Instruction::GT << eth::Instruction::ISZERO; + eth::AssemblyItem zeroLoopEnd = m_context.newTag(); + m_context.appendConditionalJumpTo(zeroLoopEnd); + // zero out + m_context << u256(0) << eth::Instruction::DUP2 << eth::Instruction::SSTORE; + // increment + m_context << u256(1) << eth::Instruction::ADD; + m_context.appendJumpTo(loopStart); + // cleanup + m_context << zeroLoopEnd; + m_context << eth::Instruction::POP; +} + } } diff --git a/libsolidity/CompilerUtils.h b/libsolidity/CompilerUtils.h index 493750476..7ac3cc295 100644 --- a/libsolidity/CompilerUtils.h +++ b/libsolidity/CompilerUtils.h @@ -75,12 +75,23 @@ public: /// @note Only works for types of fixed size. void computeHashStatic(Type const& _type = IntegerType(256), bool _padToWordBoundaries = false); + /// Copies a byte array to a byte array in storage, where the target is assumed to be on the + /// to top of the stay. Leaves a reference to the target on the stack. + void copyByteArrayToStorage(ByteArrayType const& _targetType, ByteArrayType const& _sourceType) const; + /// Clears the length and data elements of the byte array referenced on the stack. + /// Removes the reference from the stack. + void clearByteArray(ByteArrayType const& _type) const; + /// Bytes we need to the start of call data. /// - The size in bytes of the function (hash) identifier. static const unsigned int dataStartOffset; private: - unsigned prepareMemoryStore(Type const& _type, bool _padToWordBoundaries); + unsigned prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) const; + /// Appends a loop that clears all storage between the storage reference at the stack top + /// and the one below it (excluding). + /// Will leave the single value of the end pointer on the stack. + void clearStorageLoop() const; CompilerContext& m_context; }; diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index a05d71e69..b373bfbcb 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -105,7 +105,7 @@ bool ExpressionCompiler::visit(UnaryOperation const& _unaryOperation) break; case Token::Delete: // delete solAssert(m_currentLValue.isValid(), "LValue not retrieved."); - m_currentLValue.setToZero(_unaryOperation); + m_currentLValue.setToZero(_unaryOperation, *_unaryOperation.getSubExpression().getType()); m_currentLValue.reset(); break; case Token::Inc: // ++ (pre- or postfix) @@ -886,43 +886,7 @@ void ExpressionCompiler::appendArgumentsCopyToMemory(vector(_type); - solAssert(type.getLocation() == ByteArrayType::Location::Storage, "Non-storage byte arrays not yet implemented."); - - m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD; - // stack here: memory_offset storage_offset length_bytes - // jump to end if length is zero - m_context << eth::Instruction::DUP1 << eth::Instruction::ISZERO; - eth::AssemblyItem loopEnd = m_context.newTag(); - m_context.appendConditionalJumpTo(loopEnd); - // compute memory end offset - m_context << eth::Instruction::DUP3 << eth::Instruction::ADD << eth::Instruction::SWAP2; - // actual array data is stored at SHA3(storage_offset) - m_context << eth::Instruction::SWAP1; - CompilerUtils(m_context).computeHashStatic(); - m_context << eth::Instruction::SWAP1; - - // stack here: memory_end_offset storage_data_offset memory_offset - eth::AssemblyItem loopStart = m_context.newTag(); - m_context << loopStart - // load and store - << eth::Instruction::DUP2 << eth::Instruction::SLOAD - << eth::Instruction::DUP2 << eth::Instruction::MSTORE - // increment storage_data_offset by 1 - << eth::Instruction::SWAP1 << u256(1) << eth::Instruction::ADD - // increment memory offset by 32 - << eth::Instruction::SWAP1 << u256(32) << eth::Instruction::ADD - // check for loop condition - << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::GT; - m_context.appendConditionalJumpTo(loopStart); - m_context << loopEnd << eth::Instruction::POP << eth::Instruction::POP; - } - else - CompilerUtils(m_context).storeInMemoryDynamic(_type, _padToWordBoundaries); + CompilerUtils(m_context).storeInMemoryDynamic(_type, _padToWordBoundaries); } void ExpressionCompiler::appendExpressionCopyToMemory(Type const& _expectedType, Expression const& _expression) @@ -1097,8 +1061,9 @@ void ExpressionCompiler::LValue::storeValue(Expression const& _expression, Type solAssert(!_move, "Move assign for non-value types not implemented."); solAssert(_sourceType.getCategory() == _expression.getType()->getCategory(), ""); if (_expression.getType()->getCategory() == Type::Category::ByteArray) - copyByteArrayToStorage(dynamic_cast(*_expression.getType()), - dynamic_cast(_sourceType)); + CompilerUtils(*m_context).copyByteArrayToStorage( + dynamic_cast(*_expression.getType()), + dynamic_cast(_sourceType)); else if (_expression.getType()->getCategory() == Type::Category::Struct) { //@todo @@ -1122,7 +1087,7 @@ void ExpressionCompiler::LValue::storeValue(Expression const& _expression, Type } } -void ExpressionCompiler::LValue::setToZero(Expression const& _expression) const +void ExpressionCompiler::LValue::setToZero(Expression const& _expression, Type const& _type) const { switch (m_type) { @@ -1139,20 +1104,21 @@ void ExpressionCompiler::LValue::setToZero(Expression const& _expression) const break; } case LValueType::Storage: - if (m_size == 0) - *m_context << eth::Instruction::POP; - for (unsigned i = 0; i < m_size; ++i) + if (_type.getCategory() == Type::Category::ByteArray) + CompilerUtils(*m_context).clearByteArray(dynamic_cast(_type)); + else { - if (i + 1 >= m_size) - *m_context << u256(0) << eth::Instruction::SWAP1 << eth::Instruction::SSTORE; - else - *m_context << u256(0) << eth::Instruction::DUP2 << eth::Instruction::SSTORE - << u256(1) << eth::Instruction::ADD; + if (m_size == 0) + *m_context << eth::Instruction::POP; + for (unsigned i = 0; i < m_size; ++i) + if (i + 1 >= m_size) + *m_context << u256(0) << eth::Instruction::SWAP1 << eth::Instruction::SSTORE; + else + *m_context << u256(0) << eth::Instruction::DUP2 << eth::Instruction::SSTORE + << u256(1) << eth::Instruction::ADD; } break; case LValueType::Memory: - if (!_expression.getType()->isValueType()) - break; // no distinction between value and reference for non-value types BOOST_THROW_EXCEPTION(InternalCompilerError() << errinfo_sourceLocation(_expression.getLocation()) << errinfo_comment("Location type not yet implemented.")); break; @@ -1161,7 +1127,6 @@ void ExpressionCompiler::LValue::setToZero(Expression const& _expression) const << errinfo_comment("Unsupported location type.")); break; } - } void ExpressionCompiler::LValue::retrieveValueIfLValueNotRequested(Expression const& _expression) @@ -1198,123 +1163,6 @@ void ExpressionCompiler::LValue::fromIdentifier(Identifier const& _identifier, D << errinfo_comment("Identifier type not supported or identifier not found.")); } -void ExpressionCompiler::LValue::copyByteArrayToStorage(ByteArrayType const& _targetType, - ByteArrayType const& _sourceType) const -{ - // stack layout: [source_ref] target_ref (head) - // need to leave target_ref on the stack at the end - solAssert(m_type == LValueType::Storage, ""); - solAssert(_targetType.getLocation() == ByteArrayType::Location::Storage, ""); - - // @TODO move this to CompilerUtils! - - switch (_sourceType.getLocation()) - { - case ByteArrayType::Location::CallData: - { - // @todo this does not take length into account. It also assumes that after "CALLDATALENGTH" we only have zeros. - // add some useful constants - *m_context << u256(32) << u256(1); - // stack here: target_ref 32 1 - // store length (in bytes) - if (_sourceType.getOffset() == 0) - *m_context << eth::Instruction::CALLDATASIZE; - else - *m_context << _sourceType.getOffset() << eth::Instruction::CALLDATASIZE << eth::Instruction::SUB; - *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP5 << eth::Instruction::SSTORE; - // jump to end if length is zero - *m_context << eth::Instruction::ISZERO; - eth::AssemblyItem loopEnd = m_context->newTag(); - m_context->appendConditionalJumpTo(loopEnd); - // actual array data is stored at SHA3(storage_offset) - *m_context << eth::Instruction::DUP3; - CompilerUtils(*m_context).computeHashStatic(); - - *m_context << _sourceType.getOffset(); - // stack now: target_ref 32 1 target_data_ref calldata_offset - eth::AssemblyItem loopStart = m_context->newTag(); - *m_context << loopStart - // copy from calldata and store - << eth::Instruction::DUP1 << eth::Instruction::CALLDATALOAD - << eth::Instruction::DUP3 << eth::Instruction::SSTORE - // increment target_data_ref by 1 - << eth::Instruction::SWAP1 << eth::Instruction::DUP3 << eth::Instruction::ADD - // increment calldata_offset by 32 - << eth::Instruction::SWAP1 << eth::Instruction::DUP4 << eth::Instruction::ADD - // check for loop condition - << eth::Instruction::DUP1 << eth::Instruction::CALLDATASIZE << eth::Instruction::GT; - m_context->appendConditionalJumpTo(loopStart); - *m_context << eth::Instruction::POP << eth::Instruction::POP; - *m_context << loopEnd << eth::Instruction::POP << eth::Instruction::POP; - break; - } - case ByteArrayType::Location::Storage: - { - // this copies source to target and also clears target if it was larger - - // stack: source_ref target_ref - // fetch lengthes - *m_context << eth::Instruction::DUP1 << eth::Instruction::SLOAD << eth::Instruction::SWAP2 - << eth::Instruction::DUP1 << eth::Instruction::SLOAD; - // stack: target_len_bytes target_ref source_ref source_len_bytes - // store new target length - *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP4 << eth::Instruction::SSTORE; - // compute hashes (data positions) - *m_context << eth::Instruction::SWAP2; - CompilerUtils(*m_context).computeHashStatic(); - *m_context << eth::Instruction::SWAP1; - CompilerUtils(*m_context).computeHashStatic(); - // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos - // convert lengthes from bytes to storage slots - *m_context << u256(31) << u256(32) << eth::Instruction::DUP1 << eth::Instruction::DUP3 - << eth::Instruction::DUP8 << eth::Instruction::ADD << eth::Instruction::DIV - << eth::Instruction::SWAP2 - << eth::Instruction::DUP6 << eth::Instruction::ADD << eth::Instruction::DIV; - // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len - // @todo we might be able to go without a third counter - *m_context << u256(0); - // stack: target_len_bytes source_len_bytes target_data_pos source_data_pos target_len source_len counter - eth::AssemblyItem copyLoopStart = m_context->newTag(); - *m_context << copyLoopStart; - // check for loop condition - *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP3 - << eth::Instruction::GT << eth::Instruction::ISZERO; - eth::AssemblyItem copyLoopEnd = m_context->newTag(); - m_context->appendConditionalJumpTo(copyLoopEnd); - // copy - *m_context << eth::Instruction::DUP4 << eth::Instruction::DUP2 << eth::Instruction::ADD - << eth::Instruction::SLOAD - << eth::Instruction::DUP6 << eth::Instruction::DUP3 << eth::Instruction::ADD - << eth::Instruction::SSTORE; - // increment - *m_context << u256(1) << eth::Instruction::ADD; - m_context->appendJumpTo(copyLoopStart); - *m_context << copyLoopEnd; - // zero-out leftovers in target - eth::AssemblyItem zeroLoopStart = m_context->newTag(); - *m_context << zeroLoopStart; - // check for loop condition - *m_context << eth::Instruction::DUP1 << eth::Instruction::DUP4 - << eth::Instruction::GT << eth::Instruction::ISZERO; - eth::AssemblyItem zeroLoopEnd = m_context->newTag(); - m_context->appendConditionalJumpTo(zeroLoopEnd); - // zero out - *m_context << u256(0) - << eth::Instruction::DUP6 << eth::Instruction::DUP3 << eth::Instruction::ADD - << eth::Instruction::SSTORE; - // increment - *m_context << u256(1) << eth::Instruction::ADD; - m_context->appendJumpTo(zeroLoopStart); - // cleanup - *m_context << zeroLoopEnd; - *m_context << eth::Instruction::POP << eth::Instruction::POP << eth::Instruction::POP - << eth::Instruction::POP << eth::Instruction::POP << eth::Instruction::POP; - break; - } - default: - solAssert(false, "Given byte array location not implemented."); - } -} } } diff --git a/libsolidity/ExpressionCompiler.h b/libsolidity/ExpressionCompiler.h index dd26881fd..e0cc75ce8 100644 --- a/libsolidity/ExpressionCompiler.h +++ b/libsolidity/ExpressionCompiler.h @@ -149,7 +149,7 @@ private: void storeValue(Expression const& _expression, Type const& _sourceType, bool _move = false) const; /// Stores zero in the lvalue. /// @a _expression is the current expression, used for error reporting. - void setToZero(Expression const& _expression) const; + void setToZero(Expression const& _expression, Type const& _type) const; /// Convenience function to convert the stored reference to a value and reset type to NONE if /// the reference was not requested by @a _expression. void retrieveValueIfLValueNotRequested(Expression const& _expression); diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 235e535d0..67d05d6e3 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -2284,8 +2284,8 @@ BOOST_AUTO_TEST_CASE(call_forward_bytes) contract sender { function sender() { rec = new receiver(); } function() { savedData = msg.data; } - function forward() { rec.call(savedData); } - function clear() { delete savedData; } + function forward() returns (bool) { rec.call(savedData); return true; } + function clear() returns (bool) { delete savedData; return true; } function val() returns (uint) { return rec.received(); } receiver rec; bytes savedData; @@ -2294,11 +2294,11 @@ BOOST_AUTO_TEST_CASE(call_forward_bytes) compileAndRun(sourceCode, 0, "sender"); BOOST_CHECK(callContractFunction("receive(uint256)", 7) == bytes()); BOOST_CHECK(callContractFunction("val()") == encodeArgs(0)); - BOOST_CHECK(callContractFunction("forward()") == bytes()); + BOOST_CHECK(callContractFunction("forward()") == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); - BOOST_CHECK(callContractFunction("clear()") == bytes()); + BOOST_CHECK(callContractFunction("clear()") == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); - BOOST_CHECK(callContractFunction("forward()") == bytes()); + BOOST_CHECK(callContractFunction("forward()") == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(0x80)); } @@ -2313,9 +2313,10 @@ BOOST_AUTO_TEST_CASE(copying_bytes_multiassign) contract sender { function sender() { rec = new receiver(); } function() { savedData1 = savedData2 = msg.data; } - function forward(bool selector) { + function forward(bool selector) returns (bool) { if (selector) { rec.call(savedData1); delete savedData1; } else { rec.call(savedData2); delete savedData2; } + return true; } function val() returns (uint) { return rec.received(); } receiver rec; @@ -2326,15 +2327,63 @@ BOOST_AUTO_TEST_CASE(copying_bytes_multiassign) compileAndRun(sourceCode, 0, "sender"); BOOST_CHECK(callContractFunction("receive(uint256)", 7) == bytes()); BOOST_CHECK(callContractFunction("val()") == encodeArgs(0)); - BOOST_CHECK(callContractFunction("forward(bool)", true) == bytes()); + BOOST_CHECK(callContractFunction("forward(bool)", true) == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(8)); - BOOST_CHECK(callContractFunction("forward(bool)", false) == bytes()); + BOOST_CHECK(callContractFunction("forward(bool)", false) == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(16)); - BOOST_CHECK(callContractFunction("forward(bool)", true) == bytes()); + BOOST_CHECK(callContractFunction("forward(bool)", true) == encodeArgs(true)); BOOST_CHECK(callContractFunction("val()") == encodeArgs(0x80)); } -// TODO test that "delete" also clears the values +BOOST_AUTO_TEST_CASE(delete_removes_bytes_data) +{ + char const* sourceCode = R"( + contract c { + function() { data = msg.data; } + function del() returns (bool) { delete data; return true; } + bytes data; + } + )"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("---", 7) == bytes()); + BOOST_CHECK(!m_state.storage(m_contractAddress).empty()); + BOOST_CHECK(callContractFunction("del()", 7) == encodeArgs(true)); + BOOST_CHECK(m_state.storage(m_contractAddress).empty()); +} + +BOOST_AUTO_TEST_CASE(copy_from_calldata_removes_bytes_data) +{ + char const* sourceCode = R"( + contract c { + function set() returns (bool) { data = msg.data; return true; } + function() { data = msg.data; } + bytes data; + } + )"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("set()", 1, 2, 3, 4, 5) == encodeArgs(true)); + BOOST_CHECK(!m_state.storage(m_contractAddress).empty()); + sendMessage(bytes(), false); + BOOST_CHECK(m_output == bytes()); + BOOST_CHECK(m_state.storage(m_contractAddress).empty()); +} + +BOOST_AUTO_TEST_CASE(copy_removes_bytes_data) +{ + char const* sourceCode = R"( + contract c { + function set() returns (bool) { data1 = msg.data; return true; } + function reset() returns (bool) { data1 = data2; return true; } + bytes data1; + bytes data2; + } + )"; + compileAndRun(sourceCode); + BOOST_CHECK(callContractFunction("set()", 1, 2, 3, 4, 5) == encodeArgs(true)); + BOOST_CHECK(!m_state.storage(m_contractAddress).empty()); + BOOST_CHECK(callContractFunction("reset()") == encodeArgs(true)); + BOOST_CHECK(m_state.storage(m_contractAddress).empty()); +} BOOST_AUTO_TEST_SUITE_END() diff --git a/test/solidityExecutionFramework.h b/test/solidityExecutionFramework.h index 5a6935365..4ef9bfdc8 100644 --- a/test/solidityExecutionFramework.h +++ b/test/solidityExecutionFramework.h @@ -139,6 +139,7 @@ private: return encode(_cppFunction(_arguments...)); } +protected: void sendMessage(bytes const& _data, bool _isCreation, u256 const& _value = 0) { m_state.addBalance(m_sender, _value); // just in case @@ -171,7 +172,6 @@ private: m_logs = executive.logs(); } -protected: bool m_optimize = false; bool m_addStandardSources = false; Address m_sender; From 3bf06f344bdda4233d5cdb125b5c0caa8b6741ce Mon Sep 17 00:00:00 2001 From: Christian Date: Thu, 12 Feb 2015 11:40:14 +0100 Subject: [PATCH 50/52] Added some comments. --- libsolidity/CompilerUtils.h | 17 +++++++++++------ libsolidity/ExpressionCompiler.cpp | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libsolidity/CompilerUtils.h b/libsolidity/CompilerUtils.h index 7ac3cc295..fe28ceadf 100644 --- a/libsolidity/CompilerUtils.h +++ b/libsolidity/CompilerUtils.h @@ -54,6 +54,8 @@ public: unsigned storeInMemory(unsigned _offset, Type const& _type = IntegerType(256), bool _padToWordBoundaries = false); /// Dynamic version of @see storeInMemory, expects the memory offset below the value on the stack /// and also updates that. + /// Stack pre: memory_offset value... + /// Stack post: (memory_offset+length) void storeInMemoryDynamic(Type const& _type, bool _padToWordBoundaries = true); /// @returns _size rounded up to the next multiple of 32 (the number of bytes occupied in the /// padded calldata) @@ -75,11 +77,13 @@ public: /// @note Only works for types of fixed size. void computeHashStatic(Type const& _type = IntegerType(256), bool _padToWordBoundaries = false); - /// Copies a byte array to a byte array in storage, where the target is assumed to be on the - /// to top of the stay. Leaves a reference to the target on the stack. + /// Copies a byte array to a byte array in storage. + /// Stack pre: [source_reference] target_reference + /// Stack post: target_reference void copyByteArrayToStorage(ByteArrayType const& _targetType, ByteArrayType const& _sourceType) const; /// Clears the length and data elements of the byte array referenced on the stack. - /// Removes the reference from the stack. + /// Stack pre: reference + /// Stack post: void clearByteArray(ByteArrayType const& _type) const; /// Bytes we need to the start of call data. @@ -87,10 +91,11 @@ public: static const unsigned int dataStartOffset; private: + /// Prepares the given type for storing in memory by shifting it if necessary. unsigned prepareMemoryStore(Type const& _type, bool _padToWordBoundaries) const; - /// Appends a loop that clears all storage between the storage reference at the stack top - /// and the one below it (excluding). - /// Will leave the single value of the end pointer on the stack. + /// Appends a loop that clears a sequence of storage slots (excluding end). + /// Stack pre: end_ref start_ref + /// Stack post: end_ref void clearStorageLoop() const; CompilerContext& m_context; diff --git a/libsolidity/ExpressionCompiler.cpp b/libsolidity/ExpressionCompiler.cpp index b373bfbcb..63132a124 100644 --- a/libsolidity/ExpressionCompiler.cpp +++ b/libsolidity/ExpressionCompiler.cpp @@ -1032,7 +1032,7 @@ void ExpressionCompiler::LValue::storeValue(Expression const& _expression, Type break; } case LValueType::Storage: - // stack layout: value value ... value ref + // stack layout: value value ... value target_ref if (_expression.getType()->isValueType()) { if (!_move) // copy values @@ -1050,7 +1050,7 @@ void ExpressionCompiler::LValue::storeValue(Expression const& _expression, Type if (i + 1 >= m_size) *m_context << eth::Instruction::SSTORE; else - // v v ... v v r+x + // stack here: value value ... value value (target_ref+offset) *m_context << eth::Instruction::SWAP1 << eth::Instruction::DUP2 << eth::Instruction::SSTORE << u256(1) << eth::Instruction::SWAP1 << eth::Instruction::SUB; From 697124ac25f75a016a20782787b432acf1490ce8 Mon Sep 17 00:00:00 2001 From: Christian Date: Thu, 12 Feb 2015 11:54:44 +0100 Subject: [PATCH 51/52] Another try in fixing windows build. --- test/SolidityEndToEndTest.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/SolidityEndToEndTest.cpp b/test/SolidityEndToEndTest.cpp index 8a21290cb..1bfb55f66 100644 --- a/test/SolidityEndToEndTest.cpp +++ b/test/SolidityEndToEndTest.cpp @@ -963,7 +963,7 @@ BOOST_AUTO_TEST_CASE(multiple_elementary_accessors) compileAndRun(sourceCode); BOOST_CHECK(callContractFunction("data()") == encodeArgs(8)); BOOST_CHECK(callContractFunction("name()") == encodeArgs("Celina")); - BOOST_CHECK(callContractFunction("a_hash()") == encodeArgs(dev::sha3(bytes{0x7b}))); + BOOST_CHECK(callContractFunction("a_hash()") == encodeArgs(dev::sha3(bytes(1, 0x7b)))); BOOST_CHECK(callContractFunction("an_address()") == encodeArgs(toBigEndian(u160(0x1337)))); BOOST_CHECK(callContractFunction("super_secret_data()") == bytes()); } @@ -2203,7 +2203,7 @@ BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_numeric_literals) dev::sha3( toBigEndian(u256(10)) + bytes{0x0, 0xc} + - bytes{0x91}))); + bytes(1, 0x91)))); } BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_string_literals) @@ -2227,7 +2227,7 @@ BOOST_AUTO_TEST_CASE(sha3_multiple_arguments_with_string_literals) dev::sha3( toBigEndian(u256(10)) + bytes{0x0, 0xc} + - bytes{0x91} + + bytes(1, 0x91) + bytes{0x66, 0x6f, 0x6f}))); } From a5b758e77d52285b0b81a7045d3313be4d152d3a Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 12 Feb 2015 16:34:49 +0100 Subject: [PATCH 52/52] Minor style fix. --- libethereum/Client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libethereum/Client.cpp b/libethereum/Client.cpp index 455cce7a8..4a49812df 100644 --- a/libethereum/Client.cpp +++ b/libethereum/Client.cpp @@ -69,7 +69,7 @@ Client::Client(p2p::Host* _extNet, std::string const& _dbPath, bool _forceClean, { m_host = _extNet->registerCapability(new EthereumHost(m_bc, m_tq, m_bq, _networkId)); - if(miners > -1) + if (miners > -1) setMiningThreads(miners); else setMiningThreads();