You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
614 lines
31 KiB
614 lines
31 KiB
{
|
|
"SolidityTest" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "1000000000000000000000000",
|
|
"currentNumber" : "120",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "1000000000000000000",
|
|
"code" : "",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
|
|
"d94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "1000000",
|
|
"//" : " ",
|
|
"//" : "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" : "0x60003560e060020a900480630c4c9a80146100635780632a9afb8314610075578063380e4396146100875780637ee17e1214610099578063a60eedda146100a7578063e0a9fd28146100b9578063e97384dc146100cb578063ed973fe9146100dd57005b61006b610473565b8060005260206000f35b61007d61064e565b8060005260206000f35b61008f61073f565b8060005260206000f35b6100a16107fe565b60006000f35b6100af6100ef565b8060005260206000f35b6100c1610196565b8060005260206000f35b6100d3610352565b8060005260206000f35b6100e56102eb565b8060005260206000f35b60006000600191506060610815600039606060006000f0905080600160a060020a031662f55d9d600060008260e060020a02600052600441600160a060020a03168152602001600060008660325a03f161014557005b505080600160a060020a031663b9c3d0a5602060008260e060020a026000526004600060008660325a03f161017657005b505060005160e1141561018857610191565b60009150610192565b5b5090565b60006001905060007f74657374737472696e67000000000000000000000000000000000000000000008152600a016000207f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d14156101f3576101fc565b600090506102e8565b60026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a01600060008560325a03f161023a57005b506000517f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d111141561026a57610273565b600090506102e8565b60036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a01600060008560325a03f16102b157005b50600051600160a060020a031673cd566972b5e50104011a92b59fa8e0b1234851ae14156102de576102e7565b600090506102e8565b5b90565b600060006060610815600039606060006000f0905080600160a060020a031663b9c3d0a5602060008260e060020a026000526004600060008660325a03f161032f57005b505060005160e11461034057610349565b6001915061034e565b600091505b5090565b60006001905041600160a060020a0316732adc25665018aa1fe0e6bc666dac8fc2697ff9ba14156103825761038b565b60009050610470565b446302b8feb0141561039c576103a5565b60009050610470565b45683635c9adc5dea0000014156103bb576103c4565b60009050610470565b43607814156103d2576103db565b60009050610470565b33600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b14156104055761040e565b60009050610470565b346064141561041c57610425565b60009050610470565b3a600114156104335761043c565b60009050610470565b32600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b14156104665761046f565b60009050610470565b5b90565b6000600090506104816107fe565b5061048a61073f565b15610494576104ba565b7ff000000000000000000000000000000000000000000000000000000000000000810190505b6104c26102eb565b156104cc576104f2565b7f0f00000000000000000000000000000000000000000000000000000000000000810190505b6104fa6100ef565b1561050457610529565b7ef0000000000000000000000000000000000000000000000000000000000000810190505b610531610352565b1561053b57610560565b7e0f000000000000000000000000000000000000000000000000000000000000810190505b60ff60008190555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b60018190555060ff6002819055507f676c6f62616c2064617461203332206c656e67746820737472696e670000000060038190555073a94f5374fce5edbc8e2a8697c15331677e6ebf0b6004600060008152602001908152602001600020819055506105e761064e565b156105f157610615565b7df00000000000000000000000000000000000000000000000000000000000810190505b61061d610196565b156106275761064b565b7d0f0000000000000000000000000000000000000000000000000000000000810190505b90565b60006001905060005460ff14156106645761066d565b6000905061073c565b600254600054141561067e57610687565b6000905061073c565b600154600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b14156106b3576106bc565b6000905061073c565b6003547f676c6f62616c2064617461203332206c656e67746820737472696e670000000014156106eb576106f4565b6000905061073c565b600460006000815260200190815260200160002054600160a060020a031673a94f5374fce5edbc8e2a8697c15331677e6ebf0b14156107325761073b565b6000905061073c565b5b90565b60006000600060009150600092508160001461075a576107de565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe78213156107d4575b600a821215610799578180600101925050610783565b81600a146107a6576107cf565b600a90505b60008160ff1611156107ce578180600190039250508080600190039150506107ab565b5b6107dd565b600092506107f9565b5b816000146107eb576107f4565b600192506107f9565b600092505b505090565b60006060610815600039606060006000f09050905600605480600c6000396000f30060003560e060020a90048062f55d9d14601e578063b9c3d0a514602d57005b60276004356046565b60006000f35b6033603d565b8060005260206000f35b600060e1905090565b80600160a060020a0316ff5056",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
}
|
|
},
|
|
|
|
"transaction" :
|
|
{
|
|
"//" : "createContractFromMethod()",
|
|
"data" : "0x7ee17e12",
|
|
"//" : "runSolidityTests()",
|
|
"data" : "0x0c4c9a80",
|
|
"gasLimit" : "15000000",
|
|
"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; ",
|
|
"//": " address msgsender; ",
|
|
"//": " function run() returns (uint) ",
|
|
"//": " { ",
|
|
"//": " data = 1; ",
|
|
"//": " msgsender = 0x095e7baea6a6c7c4c2dfeb977efac326af552d87; ",
|
|
"//": " subcaller a = new subcaller(); ",
|
|
"//": " a.init(msgsender); ",
|
|
"//": " return data; ",
|
|
"//": " } ",
|
|
"//": " ",
|
|
"//": " function setdata(uint _data) ",
|
|
"//": " { ",
|
|
"//": " data = _data; ",
|
|
"//": " } ",
|
|
"//": "}",
|
|
"code" : "0x60003560e060020a9004806330debb4214610021578063c04062261461003257005b61002c6004356100c7565b60006000f35b61003a610044565b8060005260206000f35b60006000600160008190555073095e7baea6a6c7c4c2dfeb977efac326af552d87600181905550606a6100d2600039606a60006000f0905080600160a060020a03166319ab453c600060008260e060020a026000526004600154600160a060020a03168152602001600060008660325a03f16100bc57005b505060005491505090565b80600081905550505600605e80600c6000396000f30060003560e060020a9004806319ab453c14601557005b601e6004356024565b60006000f35b80600160a060020a03166330debb42600060008260e060020a02600052600460e18152602001600060008660325a03f1605957005b50505056",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "1000000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run()",
|
|
"data" : "0xc0406226",
|
|
"gasLimit" : "350000",
|
|
"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" : "0x60003560e060020a90048063296df0df1460295780634893d88a146035578063981a316514604157005b602f604d565b60006000f35b603b6062565b60006000f35b6047605a565b60006000f35b5b600115605857604e565b565b60606062565b565b6068605a565b56",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "500000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "testRecursiveMethods()",
|
|
"data" : "0x981a3165",
|
|
"gasLimit" : "30000",
|
|
"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" : "0x60003560e060020a90048063296df0df1460295780634893d88a146035578063981a316514604157005b602f604d565b60006000f35b603b6062565b60006000f35b6047605a565b60006000f35b5b600115605857604e565b565b60606062565b565b6068605a565b56",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "500000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "testInfiniteLoop()",
|
|
"data" : "0x296df0df",
|
|
"gasLimit" : "300000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
},
|
|
|
|
"RecursiveCreateContractsCreate4Contracts" : {
|
|
"env" : {
|
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
|
"currentDifficulty" : "45678256",
|
|
"currentGasLimit" : "100000000",
|
|
"currentNumber" : "0",
|
|
"currentTimestamp" : 1,
|
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
|
},
|
|
"pre" :
|
|
{
|
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
|
"balance" : "1000000000000000000000000000000000",
|
|
"//" : "contract recursiveCreate1 ",
|
|
"//" : "{ ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function recursiveCreate1(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " main(a).create2(depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract recursiveCreate2 ",
|
|
"//" : "{ ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function recursiveCreate2(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(a, depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract main ",
|
|
"//" : "{ ",
|
|
"//" : " address maincontract; ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function run(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " maincontract = 0x095e7baea6a6c7c4c2dfeb977efac326af552d87; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(maincontract, depth); ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function create2(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " recursiveCreate2 rec2 = new recursiveCreate2(maincontract, depth); ",
|
|
"//" : " address(rec2).send(2); ",
|
|
"//" : " } ",
|
|
"//" : "}",
|
|
"code" : "0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "5000000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run(uint256)",
|
|
"data" : "0xa444f5e90000000000000000000000000000000000000000000000000000000000000004",
|
|
"gasLimit" : "300000",
|
|
"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" : "1000000000000000000000000000000000",
|
|
"//" : "contract recursiveCreate1 ",
|
|
"//" : "{ ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function recursiveCreate1(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " main(a).create2(depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract recursiveCreate2 ",
|
|
"//" : "{ ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function recursiveCreate2(address a, uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " depth = depth - 1; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " if(depth > 0) ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(a, depth); ",
|
|
"//" : " } ",
|
|
"//" : "} ",
|
|
"//" : " ",
|
|
"//" : "contract main ",
|
|
"//" : "{ ",
|
|
"//" : " address maincontract; ",
|
|
"//" : " uint depp; ",
|
|
"//" : " function run(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " maincontract = 0x095e7baea6a6c7c4c2dfeb977efac326af552d87; ",
|
|
"//" : " depp = depth; ",
|
|
"//" : " recursiveCreate1 rec1 = new recursiveCreate1(maincontract, depth); ",
|
|
"//" : " } ",
|
|
"//" : " ",
|
|
"//" : " function create2(uint depth) ",
|
|
"//" : " { ",
|
|
"//" : " recursiveCreate2 rec2 = new recursiveCreate2(maincontract, depth); ",
|
|
"//" : " address(rec2).send(2); ",
|
|
"//" : " } ",
|
|
"//" : "}",
|
|
"code" : "0x60003560e060020a90048063820b13f614610021578063a444f5e91461003257005b61002c600435610093565b60006000f35b61003d600435610043565b60006000f35b600073095e7baea6a6c7c4c2dfeb977efac326af552d8760008190555081600181905550606b6101ad600039606b600054600160a060020a0316815260200182815260200160006000f090505050565b600060c86100e560003960c8600054600160a060020a0316815260200182815260200160006000f0905080600160a060020a0316600060026000600060006000848787f16100dd57005b50505050505600604060c860043960045160245160006001820391508160008190555060008211602657604c565b606b605d600039606b83600160a060020a0316815260200182815260200160006000f090505b505050600180605c6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f300006040606b6004396004516024516001810390508060008190555060008111602457605b565b81600160a060020a031663820b13f6600060008260e060020a026000526004858152602001600060008660325a03f1605857005b50505b5050600180606a6000396000f30000",
|
|
"nonce" : "0",
|
|
"storage" : {
|
|
}
|
|
},
|
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
|
"balance" : "5000000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run(uint256)",
|
|
"data" : "0xa444f5e90000000000000000000000000000000000000000000000000000000000000204",
|
|
"gasLimit" : "300000",
|
|
"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" : "500000",
|
|
"nonce" : "0",
|
|
"code" : "",
|
|
"storage": {}
|
|
}
|
|
},
|
|
"transaction" :
|
|
{
|
|
"//" : "run()",
|
|
"data" : "0xc0406226",
|
|
"gasLimit" : "300000",
|
|
"gasPrice" : "1",
|
|
"nonce" : "0",
|
|
"secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
|
|
"to" : "095e7baea6a6c7c4c2dfeb977efac326af552d87",
|
|
"value" : "1"
|
|
}
|
|
}
|
|
}
|
|
|