mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
dfcbfd24fa
State Tests
530 lines
27 KiB
JSON
530 lines
27 KiB
JSON
{
|
|
"SolidityTest" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "1000000000000000000000",
|
|
"currentNumber" : "120",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "10000000000000000",
|
|
"code" : "",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
|
|
"d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "100000",
|
|
"//" : " ",
|
|
"//" : "contract TestContract ",
|
|
"//" : "{ ",
|
|
"//" : " function testMethod() returns (int res) ",
|
|
"//" : " { ",
|
|
"//" : " return 225; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function destroy(address sendFoundsTo) ",
|
|
"//" : " { ",
|
|
"//" : " suicide(sendFoundsTo); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract TestSolidityContracts ",
|
|
"//" : "{ ",
|
|
"//" : "struct StructTest ",
|
|
"//" : " { ",
|
|
"//" : " address addr; ",
|
|
"//" : " int amount; ",
|
|
"//" : " string32 str; ",
|
|
"//" : " mapping (uint => address) funders; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " int globalValue; ",
|
|
"//" : " StructTest globalData; ",
|
|
"//" : " function runSolidityTests() returns (hash res) ",
|
|
"//" : " { ",
|
|
"//" : " //res is a mask of failing tests given the first byte is first test ",
|
|
"//" : " res = 0x0000000000000000000000000000000000000000000000000000000000000000; ",
|
|
"//" : " ",
|
|
"//" : " createContractFromMethod(); ",
|
|
"//" : " ",
|
|
"//" : " if (!testKeywords()) ",
|
|
"//" : " res = hash(int(res) + int(0xf000000000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " if (!testContractInteraction()) ",
|
|
"//" : " res = hash(int(res) + int(0x0f00000000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " if (!testContractSuicide()) ",
|
|
"//" : " res = hash(int(res) + int(0x00f0000000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " if (!testBlockAndTransactionProperties()) ",
|
|
"//" : " res = hash(int(res) + int(0x000f000000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " globalValue = 255; ",
|
|
"//" : " globalData.addr = 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b; ",
|
|
"//" : " globalData.amount = 255; ",
|
|
"//" : " globalData.str = 'global data 32 length string'; ",
|
|
"//" : " globalData.funders[0] = 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b; ",
|
|
"//" : " if (!testStructuresAndVariabless()) ",
|
|
"//" : " res = hash(int(res) + int(0x0000f00000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " if (!testCryptographicFunctions()) ",
|
|
"//" : " res = hash(int(res) + int(0x00000f0000000000000000000000000000000000000000000000000000000000)); ",
|
|
"//" : " ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testCryptographicFunctions() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " res = true; ",
|
|
"//" : " if (sha3('teststring') != 0x43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (sha256('teststring') != 0x3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d111) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (ripemd160('teststring') != 0xcd566972b5e50104011a92b59fa8e0b1234851ae) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " //ecrecover ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testStructuresAndVariabless() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " res = true; ",
|
|
"//" : " if (globalValue != 255) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (globalValue != globalData.amount) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (globalData.addr != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (globalData.str != 'global data 32 length string') ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (globalData.funders[0] != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) ",
|
|
"//" : " return false; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testBlockAndTransactionProperties() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " res = true; ",
|
|
"//" : " if (block.coinbase != 0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (block.difficulty != 45678256) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " //for some reason does not work 27.01.2015 ",
|
|
"//" : " if (block.gaslimit != 1000000000000000000000) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (block.number != 120) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " //try to call this ",
|
|
"//" : " block.blockhash(120); ",
|
|
"//" : " block.timestamp; ",
|
|
"//" : " msg.gas; ",
|
|
"//" : " ",
|
|
"//" : " if (msg.sender != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (msg.value != 100) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (tx.gasprice != 1) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " if (tx.origin != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) ",
|
|
"//" : " return false; ",
|
|
"//" : " ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testContractSuicide() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " TestContract a = new TestContract(); ",
|
|
"//" : " a.destroy(block.coinbase); ",
|
|
"//" : " if (a.testMethod() == 225) //we should be able to call a contract ",
|
|
"//" : " return true; ",
|
|
"//" : " return false; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testContractInteraction() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " TestContract a = new TestContract(); ",
|
|
"//" : " if (a.testMethod() == 225) ",
|
|
"//" : " return true; ",
|
|
"//" : " return false; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testKeywords() returns (bool res) ",
|
|
"//" : " { ",
|
|
"//" : " //some simple checks for the if statemnt ",
|
|
"//" : " //if, else, while, for, break, continue, return ",
|
|
"//" : " int i = 0; ",
|
|
"//" : " res = false; ",
|
|
"//" : " ",
|
|
"//" : " if (i == 0) ",
|
|
"//" : " { ",
|
|
"//" : " if( i <= -25) ",
|
|
"//" : " { ",
|
|
"//" : " return false; ",
|
|
"//" : " } ",
|
|
"//" : " else ",
|
|
"//" : " { ",
|
|
"//" : " while(i < 10) ",
|
|
"//" : " i++; ",
|
|
"//" : " ",
|
|
"//" : " if (i == 10) ",
|
|
"//" : " { ",
|
|
"//" : " for(var j=10; j>0; j--) ",
|
|
"//" : " { ",
|
|
"//" : " i--; ",
|
|
"//" : " } ",
|
|
"//" : " } ",
|
|
"//" : " } ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " if (i == 0) ",
|
|
"//" : " return true; ",
|
|
"//" : " ",
|
|
"//" : " return false; ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function createContractFromMethod() returns (TestContract a) ",
|
|
"//" : " { ",
|
|
"//" : " a = new TestContract(); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"code" : "0x60003560e060020a900480630c4c9a8014610084578063296df0df146100965780632a9afb83146100a8578063380e4396146100ba5780634893d88a146100cc5780637ee17e12146100da578063981a3165146100e8578063a60eedda146100fa578063e0a9fd281461010c578063e97384dc1461011e578063ed973fe91461013057005b61008c6102c0565b8060005260206000f35b61009e61067b565b8060005260206000f35b6100b06101ba565b8060005260206000f35b6100c261049b565b8060005260206000f35b6100d461087d565b60006000f35b6100e26101a4565b60006000f35b6100f06102ab565b8060005260206000f35b610102610695565b8060005260206000f35b610114610732565b8060005260206000f35b61012661055a565b8060005260206000f35b610138610142565b8060005260206000f35b600060006060610889600039606060006000f0905080600160a060020a031663b9c3d0a5602060008260e060020a026000526004600060008660155a03f150505060005160e1146101925761019b565b600191506101a0565b600091505b5090565b60006060610889600039606060006000f0905090565b60006001905060005460ff14156101d0576101d9565b600090506102a8565b60025460005414156101ea576101f3565b600090506102a8565b600154600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b141561021f57610228565b600090506102a8565b6003547f676c6f62616c2064617461203332206c656e67746820737472696e6700000000141561025757610260565b600090506102a8565b600460006000815260200190815260200160002054600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b141561029e576102a7565b600090506102a8565b5b90565b6000600090506102b961087d565b6001905090565b6000600090506102ce6101a4565b506102d761049b565b156102e157610307565b7ff000000000000000000000000000000000000000000000000000000000000000810190505b61030f610142565b156103195761033f565b7f0f00000000000000000000000000000000000000000000000000000000000000810190505b610347610695565b1561035157610376565b7ef0000000000000000000000000000000000000000000000000000000000000810190505b61037e61055a565b15610388576103ad565b7e0f000000000000000000000000000000000000000000000000000000000000810190505b60ff60008190555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b60018190555060ff6002819055507f676c6f62616c2064617461203332206c656e67746820737472696e670000000060038190555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b6004600060008152602001908152602001600020819055506104346101ba565b1561043e57610462565b7df00000000000000000000000000000000000000000000000000000000000810190505b61046a610732565b1561047457610498565b7d0f0000000000000000000000000000000000000000000000000000000000810190505b90565b6000600060006000915060009250816000146104b65761053a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7821315610530575b600a8212156104f55781806001019250506104df565b81600a146105025761052b565b600a90505b60008160ff16111561052a57818060019003925050808060019003915050610507565b5b610539565b60009250610555565b5b8160001461054757610550565b60019250610555565b600092505b505090565b60006001905041600160a060020a0316732adc25665018aa1fe0e6bc666dac8fc2697ff9ba141561058a57610593565b60009050610678565b446302b8feb014156105a4576105ad565b60009050610678565b45683635c9adc5dea0000014156105c3576105cc565b60009050610678565b43607814156105da576105e3565b60009050610678565b33600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b141561060d57610616565b60009050610678565b34606414156106245761062d565b60009050610678565b3a6001141561063b57610644565b60009050610678565b32600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b141561066e57610677565b60009050610678565b5b90565b6000600090505b60011561068e57610682565b6001905090565b60006000600191506060610889600039606060006000f0905080600160a060020a031662f55d9d600060008260e060020a02600052600441600160a060020a03168152602001600060008660155a03f150505080600160a060020a031663b9c3d0a5602060008260e060020a026000526004600060008660155a03f150505060005160e114156107245761072d565b6000915061072e565b5b5090565b60006001905060007f74657374737472696e67000000000000000000000000000000000000000000008152600a016000207f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d141561078f57610798565b6000905061087a565b60026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a01600060008560155a03f150506000517f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d11114156108015761080a565b6000905061087a565b60036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a01600060008560155a03f15050600051600160a060020a031673cd566972b5e50104011a92b59fa8e0b1234851ae141561087057610879565b6000905061087a565b5b90565b6108856102ab565b505600605480600c6000396000f30060003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
}
|
|
},
|
|
|
|
"transaction" :
|
|
{
|
|
"//" : "createContractFromMethod()",
|
|
"data" : "0x7ee17e12",
|
|
"//" : "runSolidityTests()",
|
|
"data" : "0x0c4c9a80",
|
|
"gasLimit" : "465224",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "d94f5374fce5edbc8e2a8697c15331677e6ebf0b",
|
|
"value" : "100"
|
|
}
|
|
},
|
|
|
|
"CallLowLevelCreatesSolidity" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "100000",
|
|
"//": "contract subcaller ",
|
|
"//": "{ ",
|
|
"//": " function init(address a) ",
|
|
"//": " { ",
|
|
"//": " main(a).setdata(225); ",
|
|
"//": " } ",
|
|
"//": "} ",
|
|
"//": " ",
|
|
"//": "contract main ",
|
|
"//": "{ ",
|
|
"//": " uint data; ",
|
|
"//": " function run() returns (uint) ",
|
|
"//": " { ",
|
|
"//": " data = 1; ",
|
|
"//": " subcaller a = new subcaller(); ",
|
|
"//": " a.init(msg.sender); ",
|
|
"//": " return data; ",
|
|
"//": " } ",
|
|
"//": " ",
|
|
"//": " function setdata(uint _data) ",
|
|
"//": " { ",
|
|
"//": " data = _data; ",
|
|
"//": " } ",
|
|
"//": "}",
|
|
"code" : "0x60e060020a60003504806330debb4214610020578063c04062261461003157005b61002b6004356100a4565b60006000f35b610039610043565b8060005260206000f35b60006000600160008190555060656100af600039606560006000f0905080600160a060020a03166319ab453c600060008260e060020a02600052600433600160a060020a03168152602001600060008660155a03f150505060005491505090565b80600081905550505600605980600c6000396000f30060e060020a60003504806319ab453c14601457005b601d6004356023565b60006000f35b80600160a060020a03166330debb42600060008260e060020a02600052600460e18152602001600060008660155a03f15050505056",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "100000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run()",
|
|
"data" : "0xc0406226",
|
|
"gasLimit" : "35000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
},
|
|
|
|
"CallRecursiveMethods" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "100000",
|
|
"//" : "contract recursiveMethods ",
|
|
"//" : "{ ",
|
|
"//" : " function testInfiniteLoop() ",
|
|
"//" : " { ",
|
|
"//" : " while(true){} ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testRecursiveMethods() ",
|
|
"//" : " { ",
|
|
"//" : " testRecursiveMethods2(); ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testRecursiveMethods2() ",
|
|
"//" : " { ",
|
|
"//" : " testRecursiveMethods(); ",
|
|
"//" : " } ",
|
|
"//" : "}",
|
|
"code" : "0x60e060020a600035048063296df0df1460285780634893d88a146034578063981a316514604057005b602e604c565b60006000f35b603a6061565b60006000f35b60466059565b60006000f35b5b600115605757604d565b565b605f6061565b565b60676059565b56",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "100000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "testRecursiveMethods()",
|
|
"data" : "0x981a3165",
|
|
"gasLimit" : "25000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
},
|
|
|
|
"CallInfiniteLoop" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "100000",
|
|
"//" : "contract recursiveMethods ",
|
|
"//" : "{ ",
|
|
"//" : " function testInfiniteLoop() ",
|
|
"//" : " { ",
|
|
"//" : " while(true){} ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testRecursiveMethods() ",
|
|
"//" : " { ",
|
|
"//" : " testRecursiveMethods2(); ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function testRecursiveMethods2() ",
|
|
"//" : " { ",
|
|
"//" : " testRecursiveMethods(); ",
|
|
"//" : " } ",
|
|
"//" : "}",
|
|
"code" : "0x60e060020a600035048063296df0df1460285780634893d88a146034578063981a316514604057005b602e604c565b60006000f35b603a6061565b60006000f35b60466059565b60006000f35b5b600115605757604d565b565b605f6061565b565b60676059565b56",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "50000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "testInfiniteLoop()",
|
|
"data" : "0x296df0df",
|
|
"gasLimit" : "30000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
},
|
|
|
|
"RecursiveCreateContracts" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "1000000",
|
|
"//" : "contract recursiveCreate1 ",
|
|
"//" : "{ ",
|
|
"//" : " function recursiveCreate1(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " main(a).create2(depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract recursiveCreate2 ",
|
|
"//" : "{ ",
|
|
"//" : " function recursiveCreate2(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(a, depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract main ",
|
|
"//" : "{ ",
|
|
"//" : " address maincontract; ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function run(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " maincontract = msg.sender; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(maincontract, depth); ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function create2(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " recursiveCreate2 rec2 = new recursiveCreate2(maincontract, depth); ",
|
|
"//" : " address(rec2).send(2); ",
|
|
"//" : " } ",
|
|
"//" : "}",
|
|
"code" : "0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610043565b60006000f35b61003d60043561008f565b60006000f35b600060c66100cc60003960c6600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f1505050505050565b6000336000819055508160018190555060686101926000396068600054600160a060020a0316815260200182815260200160006000f09050505056006012604060c6600439600451602451601e565b60018060c56000396000f35b6000600182039150600082116031576057565b6068605d600039606883600160a060020a0316815260200182815260200160006000f090505b5050505600601260406068600439600451602451601e565b60018060676000396000f35b60018103905060008111602f576062565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660155a03f15050505b505056000000601260406068600439600451602451601e565b60018060676000396000f35b60018103905060008111602f576062565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660155a03f15050505b5050560000",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "500000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run(uint256)",
|
|
"data" : "0xa444f5e900000000000000000000000000000000000000000000000000000000000204",
|
|
"gasLimit" : "30000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
},
|
|
|
|
"AmbiguousMethod" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "100000",
|
|
"//" : "contract contract1 ",
|
|
"//" : "{ ",
|
|
"//" : " uint value; ",
|
|
"//" : " function run() ",
|
|
"//" : " { ",
|
|
"//" : " value = 225; ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract contract2 ",
|
|
"//" : "{ ",
|
|
"//" : " uint value2; ",
|
|
"//" : " function run() ",
|
|
"//" : " { ",
|
|
"//" : " value2 = 335; ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"code" : "0x60003560e060020a90048063c040622614601557005b601b6021565b60006000f35b61014f60008190555056",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "50000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run()",
|
|
"data" : "0xc0406226",
|
|
"gasLimit" : "30000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
}
|
|
}
|