mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge branch 'develop' into p2p
This commit is contained in:
commit
63f27fb920
@ -22,6 +22,7 @@ target_link_libraries(testeth ethcore)
|
|||||||
target_link_libraries(testeth secp256k1)
|
target_link_libraries(testeth secp256k1)
|
||||||
target_link_libraries(testeth solidity)
|
target_link_libraries(testeth solidity)
|
||||||
target_link_libraries(testeth webthree)
|
target_link_libraries(testeth webthree)
|
||||||
|
target_link_libraries(testeth natspec)
|
||||||
|
|
||||||
if (JSONRPC)
|
if (JSONRPC)
|
||||||
target_link_libraries(testeth web3jsonrpc)
|
target_link_libraries(testeth web3jsonrpc)
|
||||||
|
@ -91,7 +91,15 @@ bytes compileFirstExpression(const string& _sourceCode, vector<vector<string>> _
|
|||||||
{
|
{
|
||||||
Parser parser;
|
Parser parser;
|
||||||
ASTPointer<SourceUnit> sourceUnit;
|
ASTPointer<SourceUnit> sourceUnit;
|
||||||
BOOST_REQUIRE_NO_THROW(sourceUnit = parser.parse(make_shared<Scanner>(CharStream(_sourceCode))));
|
try
|
||||||
|
{
|
||||||
|
sourceUnit = parser.parse(make_shared<Scanner>(CharStream(_sourceCode)));
|
||||||
|
}
|
||||||
|
catch(boost::exception const& _e)
|
||||||
|
{
|
||||||
|
auto msg = std::string("Parsing source code failed with: \n") + boost::diagnostic_information(_e);
|
||||||
|
BOOST_FAIL(msg);
|
||||||
|
}
|
||||||
|
|
||||||
vector<Declaration const*> declarations;
|
vector<Declaration const*> declarations;
|
||||||
declarations.reserve(_globalDeclarations.size() + 1);
|
declarations.reserve(_globalDeclarations.size() + 1);
|
||||||
@ -177,6 +185,66 @@ BOOST_AUTO_TEST_CASE(int_literal)
|
|||||||
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(int_with_wei_ether_subdenomination)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract test {
|
||||||
|
function test ()
|
||||||
|
{
|
||||||
|
var x = 1 wei;
|
||||||
|
}
|
||||||
|
})";
|
||||||
|
bytes code = compileFirstExpression(sourceCode);
|
||||||
|
|
||||||
|
bytes expectation({byte(eth::Instruction::PUSH1), 0x1});
|
||||||
|
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(int_with_szabo_ether_subdenomination)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract test {
|
||||||
|
function test ()
|
||||||
|
{
|
||||||
|
var x = 1 szabo;
|
||||||
|
}
|
||||||
|
})";
|
||||||
|
bytes code = compileFirstExpression(sourceCode);
|
||||||
|
|
||||||
|
bytes expectation({byte(eth::Instruction::PUSH5), 0xe8, 0xd4, 0xa5, 0x10, 0x00});
|
||||||
|
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(int_with_finney_ether_subdenomination)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract test {
|
||||||
|
function test ()
|
||||||
|
{
|
||||||
|
var x = 1 finney;
|
||||||
|
}
|
||||||
|
})";
|
||||||
|
bytes code = compileFirstExpression(sourceCode);
|
||||||
|
|
||||||
|
bytes expectation({byte(eth::Instruction::PUSH7), 0x3, 0x8d, 0x7e, 0xa4, 0xc6, 0x80, 0x00});
|
||||||
|
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(int_with_ether_ether_subdenomination)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract test {
|
||||||
|
function test ()
|
||||||
|
{
|
||||||
|
var x = 1 ether;
|
||||||
|
}
|
||||||
|
})";
|
||||||
|
bytes code = compileFirstExpression(sourceCode);
|
||||||
|
|
||||||
|
bytes expectation({byte(eth::Instruction::PUSH8), 0xd, 0xe0, 0xb6, 0xb3, 0xa7, 0x64, 0x00, 0x00});
|
||||||
|
BOOST_CHECK_EQUAL_COLLECTIONS(code.begin(), code.end(), expectation.begin(), expectation.end());
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(comparison)
|
BOOST_AUTO_TEST_CASE(comparison)
|
||||||
{
|
{
|
||||||
char const* sourceCode = "contract test {\n"
|
char const* sourceCode = "contract test {\n"
|
||||||
|
@ -904,6 +904,34 @@ BOOST_AUTO_TEST_CASE(invalid_parameter_names_in_named_args)
|
|||||||
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError);
|
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(disallow_declaration_of_void_type)
|
||||||
|
{
|
||||||
|
char const* sourceCode = "contract c { function f() { var x = f(); } }";
|
||||||
|
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError);
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(overflow_caused_by_ether_units)
|
||||||
|
{
|
||||||
|
char const* sourceCodeFine = R"(
|
||||||
|
contract c {
|
||||||
|
function c ()
|
||||||
|
{
|
||||||
|
a = 115792089237316195423570985008687907853269984665640564039458;
|
||||||
|
}
|
||||||
|
uint256 a;
|
||||||
|
})";
|
||||||
|
BOOST_CHECK_NO_THROW(parseTextAndResolveNames(sourceCodeFine));
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract c {
|
||||||
|
function c ()
|
||||||
|
{
|
||||||
|
a = 115792089237316195423570985008687907853269984665640564039458 ether;
|
||||||
|
}
|
||||||
|
uint256 a;
|
||||||
|
})";
|
||||||
|
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError);
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -660,6 +660,38 @@ BOOST_AUTO_TEST_CASE(multiple_visibility_specifiers)
|
|||||||
BOOST_CHECK_THROW(parseText(text), ParserError);
|
BOOST_CHECK_THROW(parseText(text), ParserError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(literal_constants_with_ether_subdenominations)
|
||||||
|
{
|
||||||
|
char const* text = R"(
|
||||||
|
contract c {
|
||||||
|
function c ()
|
||||||
|
{
|
||||||
|
a = 1 wei;
|
||||||
|
b = 2 szabo;
|
||||||
|
c = 3 finney;
|
||||||
|
b = 4 ether;
|
||||||
|
}
|
||||||
|
uint256 a;
|
||||||
|
uint256 b;
|
||||||
|
uint256 c;
|
||||||
|
uint256 d;
|
||||||
|
})";
|
||||||
|
BOOST_CHECK_NO_THROW(parseTextExplainError(text));
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(literal_constants_with_ether_subdenominations_in_expressions)
|
||||||
|
{
|
||||||
|
char const* text = R"(
|
||||||
|
contract c {
|
||||||
|
function c ()
|
||||||
|
{
|
||||||
|
a = 1 wei * 100 wei + 7 szabo - 3;
|
||||||
|
}
|
||||||
|
uint256 a;
|
||||||
|
})";
|
||||||
|
BOOST_CHECK_NO_THROW(parseTextExplainError(text));
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -255,6 +255,15 @@ BOOST_AUTO_TEST_CASE(comments_mixed_in_sequence)
|
|||||||
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "documentation comment ");
|
BOOST_CHECK_EQUAL(scanner.getCurrentCommentLiteral(), "documentation comment ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(ether_subdenominations)
|
||||||
|
{
|
||||||
|
Scanner scanner(CharStream("wei szabo finney ether"));
|
||||||
|
BOOST_CHECK_EQUAL(scanner.getCurrentToken(), Token::SubWei);
|
||||||
|
BOOST_CHECK_EQUAL(scanner.next(), Token::SubSzabo);
|
||||||
|
BOOST_CHECK_EQUAL(scanner.next(), Token::SubFinney);
|
||||||
|
BOOST_CHECK_EQUAL(scanner.next(), Token::SubEther);
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
112
natspec.cpp
Normal file
112
natspec.cpp
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
/*
|
||||||
|
This file is part of cpp-ethereum.
|
||||||
|
|
||||||
|
cpp-ethereum is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
cpp-ethereum is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
/** @file natspec.cpp
|
||||||
|
* @author Marek Kotewicz <marek@ethdev.com>
|
||||||
|
* @date 2015
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
#include <libdevcore/Log.h>
|
||||||
|
#include <libnatspec/NatspecExpressionEvaluator.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE(natspec)
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_eval_function_exists)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
NatspecExpressionEvaluator e;
|
||||||
|
// when
|
||||||
|
string result = e.evalExpression("`typeof evaluateExpression`").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "function");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_js_eval)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
NatspecExpressionEvaluator e;
|
||||||
|
// when
|
||||||
|
string result = e.evalExpression("`1 + 2`").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "3");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_create_custom_function)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
NatspecExpressionEvaluator e;
|
||||||
|
// when
|
||||||
|
auto x = e.evalExpression("`test = function (x) { return x + 'ok'; }`"); // ommit var, make it global
|
||||||
|
string result = e.evalExpression("`test(5)`").toStdString();
|
||||||
|
string result2 = e.evalExpression("`typeof test`").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "5ok");
|
||||||
|
BOOST_CHECK_EQUAL(result2, "function");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_js_eval_separated_expressions)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
NatspecExpressionEvaluator e;
|
||||||
|
// when
|
||||||
|
string result = e.evalExpression("`x = 1` + `y = 2` will be equal `x + y`").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "1 + 2 will be equal 3");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_js_eval_input_params)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
char const* abi = R"([
|
||||||
|
{
|
||||||
|
"name": "f",
|
||||||
|
"constant": false,
|
||||||
|
"type": "function",
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"name": "a",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "d",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])";
|
||||||
|
NatspecExpressionEvaluator e(abi, "'f'", "[4]");
|
||||||
|
// when
|
||||||
|
string result = e.evalExpression("Will multiply `a` by 7 and return `a * 7`.").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "Will multiply 4 by 7 and return 28.");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(natspec_js_eval_error)
|
||||||
|
{
|
||||||
|
// given
|
||||||
|
NatspecExpressionEvaluator e;
|
||||||
|
// when
|
||||||
|
string result = e.evalExpression("`test(`").toStdString();
|
||||||
|
// then
|
||||||
|
BOOST_CHECK_EQUAL(result, "`test(`");
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END()
|
@ -303,6 +303,34 @@
|
|||||||
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
"data" : ""
|
"data" : ""
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"RefundOverflow" : {
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "45678256",
|
||||||
|
"currentGasLimit" : "115792089237316195423570985008687907853269984665640564039457584007913129639935",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
|
"balance" : "400",
|
||||||
|
"code" : "0x",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"transaction" : {
|
||||||
|
"data" : "",
|
||||||
|
"gasLimit" : "5789604461865809771178549250434395392663499233282028201972879200395656482016",
|
||||||
|
"gasPrice" : "20",
|
||||||
|
"nonce" : "0",
|
||||||
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
|
"to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
"value" : ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,76 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"testRandomTest": {
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "115792089237316195423570985008687907853269984665640564039457584007913129639935",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "300",
|
||||||
|
"currentTimestamp" : "2",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x424443444243434383f0155af055",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"transaction" : {
|
||||||
|
"data" : "",
|
||||||
|
"gasLimit" : "10000",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"nonce" : "0",
|
||||||
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
|
"to" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"value" : "100000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"createWithInvalidOpcode": {
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "115792089237316195423570985008687907853269984665640564039457584007913129639935",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "300",
|
||||||
|
"currentTimestamp" : "2",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "0x444242424245434253f0",
|
||||||
|
"storage": {}
|
||||||
|
},
|
||||||
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"transaction" : {
|
||||||
|
"nonce" : "0",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"gasLimit" : "10000",
|
||||||
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
||||||
|
"value" : "100000",
|
||||||
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
|
"data" : ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
"createNameRegistratorOOG_MemExpansionInsufficientBalance": {
|
"createNameRegistratorOOG_MemExpansionInsufficientBalance": {
|
||||||
"env" : {
|
"env" : {
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
@ -169,7 +169,7 @@
|
|||||||
},
|
},
|
||||||
"pre" :
|
"pre" :
|
||||||
{
|
{
|
||||||
"b94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
"balance" : "1000",
|
"balance" : "1000",
|
||||||
"code" : "",
|
"code" : "",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
@ -189,6 +189,68 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"TransactionFromCoinbaseHittingBlockGasLimit" : {
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
"currentDifficulty" : "45678256",
|
||||||
|
"currentGasLimit" : "1100",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"pre" :
|
||||||
|
{
|
||||||
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
|
"balance" : "1000000",
|
||||||
|
"code" : "",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"transaction" :
|
||||||
|
{
|
||||||
|
"data" : "",
|
||||||
|
"gasLimit" : "1100",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"nonce" : "",
|
||||||
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
|
"to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
"value" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"TransactionFromCoinbaseHittingBlockGasLimit1" : {
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "a94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
"currentDifficulty" : "45678256",
|
||||||
|
"currentGasLimit" : "1100",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"pre" :
|
||||||
|
{
|
||||||
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
|
"balance" : "100000",
|
||||||
|
"code" : "",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"transaction" :
|
||||||
|
{
|
||||||
|
"data" : "",
|
||||||
|
"gasLimit" : "1101",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"nonce" : "",
|
||||||
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
||||||
|
"to" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
"value" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
"ContractStoreClearsSuccess" : {
|
"ContractStoreClearsSuccess" : {
|
||||||
"env" : {
|
"env" : {
|
||||||
"currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
"currentCoinbase" : "b94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
||||||
|
@ -193,5 +193,89 @@
|
|||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"gas" : "10000"
|
"gas" : "10000"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"sha3_bigSize": {
|
||||||
|
"env" : {
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"data" : "",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"gas" : "0x10000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"sha3_bigOffset": {
|
||||||
|
"env" : {
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "{ [[ 0 ]] (SHA3 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 2)}",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"data" : "",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"gas" : "0x10000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"sha3_bigOffset2": {
|
||||||
|
"env" : {
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "{ [[ 0 ]] (SHA3 0x1000000 2)}",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||||
|
"data" : "",
|
||||||
|
"gasPrice" : "1",
|
||||||
|
"gas" : "0x100000000"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user