aboutsummaryrefslogtreecommitdiffstats
path: root/stSolidityTestFiller.json
blob: f2a2a0aa007a39a1ddf919608f1160877f299158 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
{
 "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"
        }
    }
}