mirror of https://github.com/ConsenSys/mythril
parent
ce41bfb739
commit
b08090c3a5
File diff suppressed because one or more lines are too long
@ -0,0 +1,10 @@ |
||||
from unittest import TestCase |
||||
|
||||
from mythril.ether import asm, util |
||||
|
||||
class AsmTestCase(TestCase): |
||||
|
||||
def test_disassemble(self): |
||||
code = util.safe_decode("0x6060") |
||||
instruction_list = asm.disassemble(code) |
||||
self.assertEqual(instruction_list, [{'address': 0, 'opcode': 'PUSH1', 'argument': '0x60'}]) |
@ -0,0 +1,36 @@ |
||||
pragma solidity ^0.4.17; |
||||
|
||||
|
||||
contract Caller { |
||||
|
||||
address public fixed_address; |
||||
address public stored_address; |
||||
|
||||
uint256 statevar; |
||||
|
||||
function Caller(address addr) { |
||||
fixed_address = addr; |
||||
} |
||||
|
||||
function thisisfine() public { |
||||
fixed_address.call(); |
||||
} |
||||
|
||||
function reentrancy() public { |
||||
fixed_address.call(); |
||||
statevar = 0; |
||||
} |
||||
|
||||
function calluseraddress(address addr) { |
||||
addr.call(); |
||||
} |
||||
|
||||
function callstoredaddress() { |
||||
stored_address.call(); |
||||
} |
||||
|
||||
function setstoredaddress(address addr) { |
||||
stored_address = addr; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,400 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0083 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x2776b163 |
||||
60 EQ |
||||
61 PUSH2 0x0088 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x379bf63c |
||||
71 EQ |
||||
72 PUSH2 0x00c1 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x5a6814ec |
||||
82 EQ |
||||
83 PUSH2 0x0116 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0xb5d02c8a |
||||
93 EQ |
||||
94 PUSH2 0x012b |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xd24b08cc |
||||
104 EQ |
||||
105 PUSH2 0x0180 |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe11f493e |
||||
115 EQ |
||||
116 PUSH2 0x0195 |
||||
119 JUMPI |
||||
120 DUP1 |
||||
121 PUSH4 0xe1d10f79 |
||||
126 EQ |
||||
127 PUSH2 0x01aa |
||||
130 JUMPI |
||||
131 JUMPDEST |
||||
132 PUSH1 0x00 |
||||
134 DUP1 |
||||
135 REVERT |
||||
136 JUMPDEST |
||||
137 CALLVALUE |
||||
138 ISZERO |
||||
139 PUSH2 0x0093 |
||||
142 JUMPI |
||||
143 PUSH1 0x00 |
||||
145 DUP1 |
||||
146 REVERT |
||||
147 JUMPDEST |
||||
148 PUSH2 0x00bf |
||||
151 PUSH1 0x04 |
||||
153 DUP1 |
||||
154 DUP1 |
||||
155 CALLDATALOAD |
||||
156 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
177 AND |
||||
178 SWAP1 |
||||
179 PUSH1 0x20 |
||||
181 ADD |
||||
182 SWAP1 |
||||
183 SWAP2 |
||||
184 SWAP1 |
||||
185 POP |
||||
186 POP |
||||
187 PUSH2 0x01e3 |
||||
190 JUMP |
||||
191 JUMPDEST |
||||
192 STOP |
||||
193 JUMPDEST |
||||
194 CALLVALUE |
||||
195 ISZERO |
||||
196 PUSH2 0x00cc |
||||
199 JUMPI |
||||
200 PUSH1 0x00 |
||||
202 DUP1 |
||||
203 REVERT |
||||
204 JUMPDEST |
||||
205 PUSH2 0x00d4 |
||||
208 PUSH2 0x0227 |
||||
211 JUMP |
||||
212 JUMPDEST |
||||
213 PUSH1 0x40 |
||||
215 MLOAD |
||||
216 DUP1 |
||||
217 DUP3 |
||||
218 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
239 AND |
||||
240 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
261 AND |
||||
262 DUP2 |
||||
263 MSTORE |
||||
264 PUSH1 0x20 |
||||
266 ADD |
||||
267 SWAP2 |
||||
268 POP |
||||
269 POP |
||||
270 PUSH1 0x40 |
||||
272 MLOAD |
||||
273 DUP1 |
||||
274 SWAP2 |
||||
275 SUB |
||||
276 SWAP1 |
||||
277 RETURN |
||||
278 JUMPDEST |
||||
279 CALLVALUE |
||||
280 ISZERO |
||||
281 PUSH2 0x0121 |
||||
284 JUMPI |
||||
285 PUSH1 0x00 |
||||
287 DUP1 |
||||
288 REVERT |
||||
289 JUMPDEST |
||||
290 PUSH2 0x0129 |
||||
293 PUSH2 0x024c |
||||
296 JUMP |
||||
297 JUMPDEST |
||||
298 STOP |
||||
299 JUMPDEST |
||||
300 CALLVALUE |
||||
301 ISZERO |
||||
302 PUSH2 0x0136 |
||||
305 JUMPI |
||||
306 PUSH1 0x00 |
||||
308 DUP1 |
||||
309 REVERT |
||||
310 JUMPDEST |
||||
311 PUSH2 0x013e |
||||
314 PUSH2 0x029b |
||||
317 JUMP |
||||
318 JUMPDEST |
||||
319 PUSH1 0x40 |
||||
321 MLOAD |
||||
322 DUP1 |
||||
323 DUP3 |
||||
324 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
345 AND |
||||
346 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
367 AND |
||||
368 DUP2 |
||||
369 MSTORE |
||||
370 PUSH1 0x20 |
||||
372 ADD |
||||
373 SWAP2 |
||||
374 POP |
||||
375 POP |
||||
376 PUSH1 0x40 |
||||
378 MLOAD |
||||
379 DUP1 |
||||
380 SWAP2 |
||||
381 SUB |
||||
382 SWAP1 |
||||
383 RETURN |
||||
384 JUMPDEST |
||||
385 CALLVALUE |
||||
386 ISZERO |
||||
387 PUSH2 0x018b |
||||
390 JUMPI |
||||
391 PUSH1 0x00 |
||||
393 DUP1 |
||||
394 REVERT |
||||
395 JUMPDEST |
||||
396 PUSH2 0x0193 |
||||
399 PUSH2 0x02c1 |
||||
402 JUMP |
||||
403 JUMPDEST |
||||
404 STOP |
||||
405 JUMPDEST |
||||
406 CALLVALUE |
||||
407 ISZERO |
||||
408 PUSH2 0x01a0 |
||||
411 JUMPI |
||||
412 PUSH1 0x00 |
||||
414 DUP1 |
||||
415 REVERT |
||||
416 JUMPDEST |
||||
417 PUSH2 0x01a8 |
||||
420 PUSH2 0x0311 |
||||
423 JUMP |
||||
424 JUMPDEST |
||||
425 STOP |
||||
426 JUMPDEST |
||||
427 CALLVALUE |
||||
428 ISZERO |
||||
429 PUSH2 0x01b5 |
||||
432 JUMPI |
||||
433 PUSH1 0x00 |
||||
435 DUP1 |
||||
436 REVERT |
||||
437 JUMPDEST |
||||
438 PUSH2 0x01e1 |
||||
441 PUSH1 0x04 |
||||
443 DUP1 |
||||
444 DUP1 |
||||
445 CALLDATALOAD |
||||
446 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
467 AND |
||||
468 SWAP1 |
||||
469 PUSH1 0x20 |
||||
471 ADD |
||||
472 SWAP1 |
||||
473 SWAP2 |
||||
474 SWAP1 |
||||
475 POP |
||||
476 POP |
||||
477 PUSH2 0x0368 |
||||
480 JUMP |
||||
481 JUMPDEST |
||||
482 STOP |
||||
483 JUMPDEST |
||||
484 DUP1 |
||||
485 PUSH1 0x01 |
||||
487 PUSH1 0x00 |
||||
489 PUSH2 0x0100 |
||||
492 EXP |
||||
493 DUP2 |
||||
494 SLOAD |
||||
495 DUP2 |
||||
496 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
517 MUL |
||||
518 NOT |
||||
519 AND |
||||
520 SWAP1 |
||||
521 DUP4 |
||||
522 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
543 AND |
||||
544 MUL |
||||
545 OR |
||||
546 SWAP1 |
||||
547 SSTORE |
||||
548 POP |
||||
549 POP |
||||
550 JUMP |
||||
551 JUMPDEST |
||||
552 PUSH1 0x00 |
||||
554 DUP1 |
||||
555 SWAP1 |
||||
556 SLOAD |
||||
557 SWAP1 |
||||
558 PUSH2 0x0100 |
||||
561 EXP |
||||
562 SWAP1 |
||||
563 DIV |
||||
564 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
585 AND |
||||
586 DUP2 |
||||
587 JUMP |
||||
588 JUMPDEST |
||||
589 PUSH1 0x00 |
||||
591 DUP1 |
||||
592 SWAP1 |
||||
593 SLOAD |
||||
594 SWAP1 |
||||
595 PUSH2 0x0100 |
||||
598 EXP |
||||
599 SWAP1 |
||||
600 DIV |
||||
601 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
622 AND |
||||
623 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
644 AND |
||||
645 PUSH1 0x40 |
||||
647 MLOAD |
||||
648 PUSH1 0x00 |
||||
650 PUSH1 0x40 |
||||
652 MLOAD |
||||
653 DUP1 |
||||
654 DUP4 |
||||
655 SUB |
||||
656 DUP2 |
||||
657 PUSH1 0x00 |
||||
659 DUP7 |
||||
660 GAS |
||||
661 CALL |
||||
662 SWAP2 |
||||
663 POP |
||||
664 POP |
||||
665 POP |
||||
666 JUMP |
||||
667 JUMPDEST |
||||
668 PUSH1 0x01 |
||||
670 PUSH1 0x00 |
||||
672 SWAP1 |
||||
673 SLOAD |
||||
674 SWAP1 |
||||
675 PUSH2 0x0100 |
||||
678 EXP |
||||
679 SWAP1 |
||||
680 DIV |
||||
681 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
702 AND |
||||
703 DUP2 |
||||
704 JUMP |
||||
705 JUMPDEST |
||||
706 PUSH1 0x01 |
||||
708 PUSH1 0x00 |
||||
710 SWAP1 |
||||
711 SLOAD |
||||
712 SWAP1 |
||||
713 PUSH2 0x0100 |
||||
716 EXP |
||||
717 SWAP1 |
||||
718 DIV |
||||
719 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
740 AND |
||||
741 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
762 AND |
||||
763 PUSH1 0x40 |
||||
765 MLOAD |
||||
766 PUSH1 0x00 |
||||
768 PUSH1 0x40 |
||||
770 MLOAD |
||||
771 DUP1 |
||||
772 DUP4 |
||||
773 SUB |
||||
774 DUP2 |
||||
775 PUSH1 0x00 |
||||
777 DUP7 |
||||
778 GAS |
||||
779 CALL |
||||
780 SWAP2 |
||||
781 POP |
||||
782 POP |
||||
783 POP |
||||
784 JUMP |
||||
785 JUMPDEST |
||||
786 PUSH1 0x00 |
||||
788 DUP1 |
||||
789 SWAP1 |
||||
790 SLOAD |
||||
791 SWAP1 |
||||
792 PUSH2 0x0100 |
||||
795 EXP |
||||
796 SWAP1 |
||||
797 DIV |
||||
798 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
819 AND |
||||
820 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
841 AND |
||||
842 PUSH1 0x40 |
||||
844 MLOAD |
||||
845 PUSH1 0x00 |
||||
847 PUSH1 0x40 |
||||
849 MLOAD |
||||
850 DUP1 |
||||
851 DUP4 |
||||
852 SUB |
||||
853 DUP2 |
||||
854 PUSH1 0x00 |
||||
856 DUP7 |
||||
857 GAS |
||||
858 CALL |
||||
859 SWAP2 |
||||
860 POP |
||||
861 POP |
||||
862 POP |
||||
863 PUSH1 0x00 |
||||
865 PUSH1 0x02 |
||||
867 DUP2 |
||||
868 SWAP1 |
||||
869 SSTORE |
||||
870 POP |
||||
871 JUMP |
||||
872 JUMPDEST |
||||
873 DUP1 |
||||
874 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
895 AND |
||||
896 PUSH1 0x40 |
||||
898 MLOAD |
||||
899 PUSH1 0x00 |
||||
901 PUSH1 0x40 |
||||
903 MLOAD |
||||
904 DUP1 |
||||
905 DUP4 |
||||
906 SUB |
||||
907 DUP2 |
||||
908 PUSH1 0x00 |
||||
910 DUP7 |
||||
911 GAS |
||||
912 CALL |
||||
913 SWAP2 |
||||
914 POP |
||||
915 POP |
||||
916 POP |
||||
917 POP |
||||
918 JUMP |
||||
919 STOP |
@ -0,0 +1,34 @@ |
||||
contract Crowdfunding { |
||||
|
||||
mapping(address => uint) public balances; |
||||
address public owner; |
||||
uint256 INVEST_MIN = 1 ether; |
||||
uint256 INVEST_MAX = 10 ether; |
||||
|
||||
modifier onlyOwner() { |
||||
require(msg.sender == owner); |
||||
_; |
||||
} |
||||
|
||||
function crowdfunding() { |
||||
owner = msg.sender; |
||||
} |
||||
|
||||
function withdrawfunds() onlyOwner { |
||||
msg.sender.transfer(this.balance); |
||||
} |
||||
|
||||
function invest() public payable { |
||||
require(msg.value > INVEST_MIN && msg.value < INVEST_MAX); |
||||
|
||||
balances[msg.sender] += msg.value; |
||||
} |
||||
|
||||
function getBalance() public constant returns (uint) { |
||||
return balances[msg.sender]; |
||||
} |
||||
|
||||
function() public payable { |
||||
invest(); |
||||
} |
||||
} |
@ -0,0 +1,398 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0078 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x12065fe0 |
||||
60 EQ |
||||
61 PUSH2 0x0082 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x27e235e3 |
||||
71 EQ |
||||
72 PUSH2 0x00ab |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x56885cd8 |
||||
82 EQ |
||||
83 PUSH2 0x00f8 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0x6c343ffe |
||||
93 EQ |
||||
94 PUSH2 0x010d |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0x8da5cb5b |
||||
104 EQ |
||||
105 PUSH2 0x0122 |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe8b5e51f |
||||
115 EQ |
||||
116 PUSH2 0x0177 |
||||
119 JUMPI |
||||
120 JUMPDEST |
||||
121 PUSH2 0x0080 |
||||
124 PUSH2 0x0181 |
||||
127 JUMP |
||||
128 JUMPDEST |
||||
129 STOP |
||||
130 JUMPDEST |
||||
131 CALLVALUE |
||||
132 ISZERO |
||||
133 PUSH2 0x008d |
||||
136 JUMPI |
||||
137 PUSH1 0x00 |
||||
139 DUP1 |
||||
140 REVERT |
||||
141 JUMPDEST |
||||
142 PUSH2 0x0095 |
||||
145 PUSH2 0x01ec |
||||
148 JUMP |
||||
149 JUMPDEST |
||||
150 PUSH1 0x40 |
||||
152 MLOAD |
||||
153 DUP1 |
||||
154 DUP3 |
||||
155 DUP2 |
||||
156 MSTORE |
||||
157 PUSH1 0x20 |
||||
159 ADD |
||||
160 SWAP2 |
||||
161 POP |
||||
162 POP |
||||
163 PUSH1 0x40 |
||||
165 MLOAD |
||||
166 DUP1 |
||||
167 SWAP2 |
||||
168 SUB |
||||
169 SWAP1 |
||||
170 RETURN |
||||
171 JUMPDEST |
||||
172 CALLVALUE |
||||
173 ISZERO |
||||
174 PUSH2 0x00b6 |
||||
177 JUMPI |
||||
178 PUSH1 0x00 |
||||
180 DUP1 |
||||
181 REVERT |
||||
182 JUMPDEST |
||||
183 PUSH2 0x00e2 |
||||
186 PUSH1 0x04 |
||||
188 DUP1 |
||||
189 DUP1 |
||||
190 CALLDATALOAD |
||||
191 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
212 AND |
||||
213 SWAP1 |
||||
214 PUSH1 0x20 |
||||
216 ADD |
||||
217 SWAP1 |
||||
218 SWAP2 |
||||
219 SWAP1 |
||||
220 POP |
||||
221 POP |
||||
222 PUSH2 0x0232 |
||||
225 JUMP |
||||
226 JUMPDEST |
||||
227 PUSH1 0x40 |
||||
229 MLOAD |
||||
230 DUP1 |
||||
231 DUP3 |
||||
232 DUP2 |
||||
233 MSTORE |
||||
234 PUSH1 0x20 |
||||
236 ADD |
||||
237 SWAP2 |
||||
238 POP |
||||
239 POP |
||||
240 PUSH1 0x40 |
||||
242 MLOAD |
||||
243 DUP1 |
||||
244 SWAP2 |
||||
245 SUB |
||||
246 SWAP1 |
||||
247 RETURN |
||||
248 JUMPDEST |
||||
249 CALLVALUE |
||||
250 ISZERO |
||||
251 PUSH2 0x0103 |
||||
254 JUMPI |
||||
255 PUSH1 0x00 |
||||
257 DUP1 |
||||
258 REVERT |
||||
259 JUMPDEST |
||||
260 PUSH2 0x010b |
||||
263 PUSH2 0x024a |
||||
266 JUMP |
||||
267 JUMPDEST |
||||
268 STOP |
||||
269 JUMPDEST |
||||
270 CALLVALUE |
||||
271 ISZERO |
||||
272 PUSH2 0x0118 |
||||
275 JUMPI |
||||
276 PUSH1 0x00 |
||||
278 DUP1 |
||||
279 REVERT |
||||
280 JUMPDEST |
||||
281 PUSH2 0x0120 |
||||
284 PUSH2 0x028d |
||||
287 JUMP |
||||
288 JUMPDEST |
||||
289 STOP |
||||
290 JUMPDEST |
||||
291 CALLVALUE |
||||
292 ISZERO |
||||
293 PUSH2 0x012d |
||||
296 JUMPI |
||||
297 PUSH1 0x00 |
||||
299 DUP1 |
||||
300 REVERT |
||||
301 JUMPDEST |
||||
302 PUSH2 0x0135 |
||||
305 PUSH2 0x0342 |
||||
308 JUMP |
||||
309 JUMPDEST |
||||
310 PUSH1 0x40 |
||||
312 MLOAD |
||||
313 DUP1 |
||||
314 DUP3 |
||||
315 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
336 AND |
||||
337 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
358 AND |
||||
359 DUP2 |
||||
360 MSTORE |
||||
361 PUSH1 0x20 |
||||
363 ADD |
||||
364 SWAP2 |
||||
365 POP |
||||
366 POP |
||||
367 PUSH1 0x40 |
||||
369 MLOAD |
||||
370 DUP1 |
||||
371 SWAP2 |
||||
372 SUB |
||||
373 SWAP1 |
||||
374 RETURN |
||||
375 JUMPDEST |
||||
376 PUSH2 0x017f |
||||
379 PUSH2 0x0181 |
||||
382 JUMP |
||||
383 JUMPDEST |
||||
384 STOP |
||||
385 JUMPDEST |
||||
386 PUSH1 0x02 |
||||
388 SLOAD |
||||
389 CALLVALUE |
||||
390 GT |
||||
391 DUP1 |
||||
392 ISZERO |
||||
393 PUSH2 0x0193 |
||||
396 JUMPI |
||||
397 POP |
||||
398 PUSH1 0x03 |
||||
400 SLOAD |
||||
401 CALLVALUE |
||||
402 LT |
||||
403 JUMPDEST |
||||
404 ISZERO |
||||
405 ISZERO |
||||
406 PUSH2 0x019e |
||||
409 JUMPI |
||||
410 PUSH1 0x00 |
||||
412 DUP1 |
||||
413 REVERT |
||||
414 JUMPDEST |
||||
415 CALLVALUE |
||||
416 PUSH1 0x00 |
||||
418 DUP1 |
||||
419 CALLER |
||||
420 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
441 AND |
||||
442 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
463 AND |
||||
464 DUP2 |
||||
465 MSTORE |
||||
466 PUSH1 0x20 |
||||
468 ADD |
||||
469 SWAP1 |
||||
470 DUP2 |
||||
471 MSTORE |
||||
472 PUSH1 0x20 |
||||
474 ADD |
||||
475 PUSH1 0x00 |
||||
477 SHA3 |
||||
478 PUSH1 0x00 |
||||
480 DUP3 |
||||
481 DUP3 |
||||
482 SLOAD |
||||
483 ADD |
||||
484 SWAP3 |
||||
485 POP |
||||
486 POP |
||||
487 DUP2 |
||||
488 SWAP1 |
||||
489 SSTORE |
||||
490 POP |
||||
491 JUMP |
||||
492 JUMPDEST |
||||
493 PUSH1 0x00 |
||||
495 DUP1 |
||||
496 PUSH1 0x00 |
||||
498 CALLER |
||||
499 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
520 AND |
||||
521 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
542 AND |
||||
543 DUP2 |
||||
544 MSTORE |
||||
545 PUSH1 0x20 |
||||
547 ADD |
||||
548 SWAP1 |
||||
549 DUP2 |
||||
550 MSTORE |
||||
551 PUSH1 0x20 |
||||
553 ADD |
||||
554 PUSH1 0x00 |
||||
556 SHA3 |
||||
557 SLOAD |
||||
558 SWAP1 |
||||
559 POP |
||||
560 SWAP1 |
||||
561 JUMP |
||||
562 JUMPDEST |
||||
563 PUSH1 0x00 |
||||
565 PUSH1 0x20 |
||||
567 MSTORE |
||||
568 DUP1 |
||||
569 PUSH1 0x00 |
||||
571 MSTORE |
||||
572 PUSH1 0x40 |
||||
574 PUSH1 0x00 |
||||
576 SHA3 |
||||
577 PUSH1 0x00 |
||||
579 SWAP2 |
||||
580 POP |
||||
581 SWAP1 |
||||
582 POP |
||||
583 SLOAD |
||||
584 DUP2 |
||||
585 JUMP |
||||
586 JUMPDEST |
||||
587 CALLER |
||||
588 PUSH1 0x01 |
||||
590 PUSH1 0x00 |
||||
592 PUSH2 0x0100 |
||||
595 EXP |
||||
596 DUP2 |
||||
597 SLOAD |
||||
598 DUP2 |
||||
599 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
620 MUL |
||||
621 NOT |
||||
622 AND |
||||
623 SWAP1 |
||||
624 DUP4 |
||||
625 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
646 AND |
||||
647 MUL |
||||
648 OR |
||||
649 SWAP1 |
||||
650 SSTORE |
||||
651 POP |
||||
652 JUMP |
||||
653 JUMPDEST |
||||
654 PUSH1 0x01 |
||||
656 PUSH1 0x00 |
||||
658 SWAP1 |
||||
659 SLOAD |
||||
660 SWAP1 |
||||
661 PUSH2 0x0100 |
||||
664 EXP |
||||
665 SWAP1 |
||||
666 DIV |
||||
667 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
688 AND |
||||
689 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
710 AND |
||||
711 CALLER |
||||
712 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
733 AND |
||||
734 EQ |
||||
735 ISZERO |
||||
736 ISZERO |
||||
737 PUSH2 0x02e9 |
||||
740 JUMPI |
||||
741 PUSH1 0x00 |
||||
743 DUP1 |
||||
744 REVERT |
||||
745 JUMPDEST |
||||
746 CALLER |
||||
747 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
768 AND |
||||
769 PUSH2 0x08fc |
||||
772 ADDRESS |
||||
773 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
794 AND |
||||
795 BALANCE |
||||
796 SWAP1 |
||||
797 DUP2 |
||||
798 ISZERO |
||||
799 MUL |
||||
800 SWAP1 |
||||
801 PUSH1 0x40 |
||||
803 MLOAD |
||||
804 PUSH1 0x00 |
||||
806 PUSH1 0x40 |
||||
808 MLOAD |
||||
809 DUP1 |
||||
810 DUP4 |
||||
811 SUB |
||||
812 DUP2 |
||||
813 DUP6 |
||||
814 DUP9 |
||||
815 DUP9 |
||||
816 CALL |
||||
817 SWAP4 |
||||
818 POP |
||||
819 POP |
||||
820 POP |
||||
821 POP |
||||
822 ISZERO |
||||
823 ISZERO |
||||
824 PUSH2 0x0340 |
||||
827 JUMPI |
||||
828 PUSH1 0x00 |
||||
830 DUP1 |
||||
831 REVERT |
||||
832 JUMPDEST |
||||
833 JUMP |
||||
834 JUMPDEST |
||||
835 PUSH1 0x01 |
||||
837 PUSH1 0x00 |
||||
839 SWAP1 |
||||
840 SLOAD |
||||
841 SWAP1 |
||||
842 PUSH2 0x0100 |
||||
845 EXP |
||||
846 SWAP1 |
||||
847 DIV |
||||
848 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
869 AND |
||||
870 DUP2 |
||||
871 JUMP |
||||
872 STOP |
@ -0,0 +1,43 @@ |
||||
contract Exceptions { |
||||
|
||||
uint256[8] myarray; |
||||
|
||||
function assert1() { |
||||
uint256 i = 1; |
||||
assert(i == 0); |
||||
} |
||||
|
||||
function assert2() { |
||||
uint256 i = 1; |
||||
assert(i > 0); |
||||
} |
||||
|
||||
function assert3(uint256 input) { |
||||
assert(input != 23); |
||||
} |
||||
|
||||
function requireisfine(uint256 input) { |
||||
require(input != 23); |
||||
} |
||||
|
||||
function divisionby0(uint256 input) { |
||||
uint256 i = 1/input; |
||||
} |
||||
|
||||
function thisisfine(uint256 input) { |
||||
if (input > 0) { |
||||
uint256 i = 1/input; |
||||
} |
||||
} |
||||
|
||||
function arrayaccess(uint256 index) { |
||||
uint256 i = myarray[index]; |
||||
} |
||||
|
||||
function thisisalsofind(uint256 index) { |
||||
if (index < 8) { |
||||
uint256 i = myarray[index]; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,392 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x008e |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x01d4277c |
||||
60 EQ |
||||
61 PUSH2 0x0093 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x546455b5 |
||||
71 EQ |
||||
72 PUSH2 0x00b6 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x78375f14 |
||||
82 EQ |
||||
83 PUSH2 0x00d9 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0x92dd38ea |
||||
93 EQ |
||||
94 PUSH2 0x00fc |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xa08299f1 |
||||
104 EQ |
||||
105 PUSH2 0x011f |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xb34c3610 |
||||
115 EQ |
||||
116 PUSH2 0x0142 |
||||
119 JUMPI |
||||
120 DUP1 |
||||
121 PUSH4 0xb630d706 |
||||
126 EQ |
||||
127 PUSH2 0x0157 |
||||
130 JUMPI |
||||
131 DUP1 |
||||
132 PUSH4 0xf44f13d8 |
||||
137 EQ |
||||
138 PUSH2 0x017a |
||||
141 JUMPI |
||||
142 JUMPDEST |
||||
143 PUSH1 0x00 |
||||
145 DUP1 |
||||
146 REVERT |
||||
147 JUMPDEST |
||||
148 CALLVALUE |
||||
149 ISZERO |
||||
150 PUSH2 0x009e |
||||
153 JUMPI |
||||
154 PUSH1 0x00 |
||||
156 DUP1 |
||||
157 REVERT |
||||
158 JUMPDEST |
||||
159 PUSH2 0x00b4 |
||||
162 PUSH1 0x04 |
||||
164 DUP1 |
||||
165 DUP1 |
||||
166 CALLDATALOAD |
||||
167 SWAP1 |
||||
168 PUSH1 0x20 |
||||
170 ADD |
||||
171 SWAP1 |
||||
172 SWAP2 |
||||
173 SWAP1 |
||||
174 POP |
||||
175 POP |
||||
176 PUSH2 0x018f |
||||
179 JUMP |
||||
180 JUMPDEST |
||||
181 STOP |
||||
182 JUMPDEST |
||||
183 CALLVALUE |
||||
184 ISZERO |
||||
185 PUSH2 0x00c1 |
||||
188 JUMPI |
||||
189 PUSH1 0x00 |
||||
191 DUP1 |
||||
192 REVERT |
||||
193 JUMPDEST |
||||
194 PUSH2 0x00d7 |
||||
197 PUSH1 0x04 |
||||
199 DUP1 |
||||
200 DUP1 |
||||
201 CALLDATALOAD |
||||
202 SWAP1 |
||||
203 PUSH1 0x20 |
||||
205 ADD |
||||
206 SWAP1 |
||||
207 SWAP2 |
||||
208 SWAP1 |
||||
209 POP |
||||
210 POP |
||||
211 PUSH2 0x01b2 |
||||
214 JUMP |
||||
215 JUMPDEST |
||||
216 STOP |
||||
217 JUMPDEST |
||||
218 CALLVALUE |
||||
219 ISZERO |
||||
220 PUSH2 0x00e4 |
||||
223 JUMPI |
||||
224 PUSH1 0x00 |
||||
226 DUP1 |
||||
227 REVERT |
||||
228 JUMPDEST |
||||
229 PUSH2 0x00fa |
||||
232 PUSH1 0x04 |
||||
234 DUP1 |
||||
235 DUP1 |
||||
236 CALLDATALOAD |
||||
237 SWAP1 |
||||
238 PUSH1 0x20 |
||||
240 ADD |
||||
241 SWAP1 |
||||
242 SWAP2 |
||||
243 SWAP1 |
||||
244 POP |
||||
245 POP |
||||
246 PUSH2 0x01c2 |
||||
249 JUMP |
||||
250 JUMPDEST |
||||
251 STOP |
||||
252 JUMPDEST |
||||
253 CALLVALUE |
||||
254 ISZERO |
||||
255 PUSH2 0x0107 |
||||
258 JUMPI |
||||
259 PUSH1 0x00 |
||||
261 DUP1 |
||||
262 REVERT |
||||
263 JUMPDEST |
||||
264 PUSH2 0x011d |
||||
267 PUSH1 0x04 |
||||
269 DUP1 |
||||
270 DUP1 |
||||
271 CALLDATALOAD |
||||
272 SWAP1 |
||||
273 PUSH1 0x20 |
||||
275 ADD |
||||
276 SWAP1 |
||||
277 SWAP2 |
||||
278 SWAP1 |
||||
279 POP |
||||
280 POP |
||||
281 PUSH2 0x01d5 |
||||
284 JUMP |
||||
285 JUMPDEST |
||||
286 STOP |
||||
287 JUMPDEST |
||||
288 CALLVALUE |
||||
289 ISZERO |
||||
290 PUSH2 0x012a |
||||
293 JUMPI |
||||
294 PUSH1 0x00 |
||||
296 DUP1 |
||||
297 REVERT |
||||
298 JUMPDEST |
||||
299 PUSH2 0x0140 |
||||
302 PUSH1 0x04 |
||||
304 DUP1 |
||||
305 DUP1 |
||||
306 CALLDATALOAD |
||||
307 SWAP1 |
||||
308 PUSH1 0x20 |
||||
310 ADD |
||||
311 SWAP1 |
||||
312 SWAP2 |
||||
313 SWAP1 |
||||
314 POP |
||||
315 POP |
||||
316 PUSH2 0x01ed |
||||
319 JUMP |
||||
320 JUMPDEST |
||||
321 STOP |
||||
322 JUMPDEST |
||||
323 CALLVALUE |
||||
324 ISZERO |
||||
325 PUSH2 0x014d |
||||
328 JUMPI |
||||
329 PUSH1 0x00 |
||||
331 DUP1 |
||||
332 REVERT |
||||
333 JUMPDEST |
||||
334 PUSH2 0x0155 |
||||
337 PUSH2 0x0202 |
||||
340 JUMP |
||||
341 JUMPDEST |
||||
342 STOP |
||||
343 JUMPDEST |
||||
344 CALLVALUE |
||||
345 ISZERO |
||||
346 PUSH2 0x0162 |
||||
349 JUMPI |
||||
350 PUSH1 0x00 |
||||
352 DUP1 |
||||
353 REVERT |
||||
354 JUMPDEST |
||||
355 PUSH2 0x0178 |
||||
358 PUSH1 0x04 |
||||
360 DUP1 |
||||
361 DUP1 |
||||
362 CALLDATALOAD |
||||
363 SWAP1 |
||||
364 PUSH1 0x20 |
||||
366 ADD |
||||
367 SWAP1 |
||||
368 SWAP2 |
||||
369 SWAP1 |
||||
370 POP |
||||
371 POP |
||||
372 PUSH2 0x0217 |
||||
375 JUMP |
||||
376 JUMPDEST |
||||
377 STOP |
||||
378 JUMPDEST |
||||
379 CALLVALUE |
||||
380 ISZERO |
||||
381 PUSH2 0x0185 |
||||
384 JUMPI |
||||
385 PUSH1 0x00 |
||||
387 DUP1 |
||||
388 REVERT |
||||
389 JUMPDEST |
||||
390 PUSH2 0x018d |
||||
393 PUSH2 0x0235 |
||||
396 JUMP |
||||
397 JUMPDEST |
||||
398 STOP |
||||
399 JUMPDEST |
||||
400 PUSH1 0x00 |
||||
402 PUSH1 0x08 |
||||
404 DUP3 |
||||
405 LT |
||||
406 ISZERO |
||||
407 PUSH2 0x01ae |
||||
410 JUMPI |
||||
411 PUSH1 0x00 |
||||
413 DUP3 |
||||
414 PUSH1 0x08 |
||||
416 DUP2 |
||||
417 LT |
||||
418 ISZERO |
||||
419 ISZERO |
||||
420 PUSH2 0x01a9 |
||||
423 JUMPI |
||||
424 ASSERT_FAIL |
||||
425 JUMPDEST |
||||
426 ADD |
||||
427 SLOAD |
||||
428 SWAP1 |
||||
429 POP |
||||
430 JUMPDEST |
||||
431 POP |
||||
432 POP |
||||
433 JUMP |
||||
434 JUMPDEST |
||||
435 PUSH1 0x17 |
||||
437 DUP2 |
||||
438 EQ |
||||
439 ISZERO |
||||
440 ISZERO |
||||
441 ISZERO |
||||
442 PUSH2 0x01bf |
||||
445 JUMPI |
||||
446 ASSERT_FAIL |
||||
447 JUMPDEST |
||||
448 POP |
||||
449 JUMP |
||||
450 JUMPDEST |
||||
451 PUSH1 0x17 |
||||
453 DUP2 |
||||
454 EQ |
||||
455 ISZERO |
||||
456 ISZERO |
||||
457 ISZERO |
||||
458 PUSH2 0x01d2 |
||||
461 JUMPI |
||||
462 PUSH1 0x00 |
||||
464 DUP1 |
||||
465 REVERT |
||||
466 JUMPDEST |
||||
467 POP |
||||
468 JUMP |
||||
469 JUMPDEST |
||||
470 PUSH1 0x00 |
||||
472 DUP1 |
||||
473 DUP3 |
||||
474 PUSH1 0x08 |
||||
476 DUP2 |
||||
477 LT |
||||
478 ISZERO |
||||
479 ISZERO |
||||
480 PUSH2 0x01e5 |
||||
483 JUMPI |
||||
484 ASSERT_FAIL |
||||
485 JUMPDEST |
||||
486 ADD |
||||
487 SLOAD |
||||
488 SWAP1 |
||||
489 POP |
||||
490 POP |
||||
491 POP |
||||
492 JUMP |
||||
493 JUMPDEST |
||||
494 PUSH1 0x00 |
||||
496 DUP2 |
||||
497 PUSH1 0x01 |
||||
499 DUP2 |
||||
500 ISZERO |
||||
501 ISZERO |
||||
502 PUSH2 0x01fb |
||||
505 JUMPI |
||||
506 ASSERT_FAIL |
||||
507 JUMPDEST |
||||
508 DIV |
||||
509 SWAP1 |
||||
510 POP |
||||
511 POP |
||||
512 POP |
||||
513 JUMP |
||||
514 JUMPDEST |
||||
515 PUSH1 0x00 |
||||
517 PUSH1 0x01 |
||||
519 SWAP1 |
||||
520 POP |
||||
521 PUSH1 0x00 |
||||
523 DUP2 |
||||
524 EQ |
||||
525 ISZERO |
||||
526 ISZERO |
||||
527 PUSH2 0x0214 |
||||
530 JUMPI |
||||
531 ASSERT_FAIL |
||||
532 JUMPDEST |
||||
533 POP |
||||
534 JUMP |
||||
535 JUMPDEST |
||||
536 PUSH1 0x00 |
||||
538 DUP1 |
||||
539 DUP3 |
||||
540 GT |
||||
541 ISZERO |
||||
542 PUSH2 0x0231 |
||||
545 JUMPI |
||||
546 DUP2 |
||||
547 PUSH1 0x01 |
||||
549 DUP2 |
||||
550 ISZERO |
||||
551 ISZERO |
||||
552 PUSH2 0x022d |
||||
555 JUMPI |
||||
556 ASSERT_FAIL |
||||
557 JUMPDEST |
||||
558 DIV |
||||
559 SWAP1 |
||||
560 POP |
||||
561 JUMPDEST |
||||
562 POP |
||||
563 POP |
||||
564 JUMP |
||||
565 JUMPDEST |
||||
566 PUSH1 0x00 |
||||
568 PUSH1 0x01 |
||||
570 SWAP1 |
||||
571 POP |
||||
572 PUSH1 0x00 |
||||
574 DUP2 |
||||
575 GT |
||||
576 ISZERO |
||||
577 ISZERO |
||||
578 PUSH2 0x0247 |
||||
581 JUMPI |
||||
582 ASSERT_FAIL |
||||
583 JUMPDEST |
||||
584 POP |
||||
585 JUMP |
||||
586 STOP |
@ -0,0 +1,253 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x004c |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x27e235e3 |
||||
60 EQ |
||||
61 PUSH2 0x0051 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x412664ae |
||||
71 EQ |
||||
72 PUSH2 0x009e |
||||
75 JUMPI |
||||
76 JUMPDEST |
||||
77 PUSH1 0x00 |
||||
79 DUP1 |
||||
80 REVERT |
||||
81 JUMPDEST |
||||
82 CALLVALUE |
||||
83 ISZERO |
||||
84 PUSH2 0x005c |
||||
87 JUMPI |
||||
88 PUSH1 0x00 |
||||
90 DUP1 |
||||
91 REVERT |
||||
92 JUMPDEST |
||||
93 PUSH2 0x0088 |
||||
96 PUSH1 0x04 |
||||
98 DUP1 |
||||
99 DUP1 |
||||
100 CALLDATALOAD |
||||
101 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
122 AND |
||||
123 SWAP1 |
||||
124 PUSH1 0x20 |
||||
126 ADD |
||||
127 SWAP1 |
||||
128 SWAP2 |
||||
129 SWAP1 |
||||
130 POP |
||||
131 POP |
||||
132 PUSH2 0x00f8 |
||||
135 JUMP |
||||
136 JUMPDEST |
||||
137 PUSH1 0x40 |
||||
139 MLOAD |
||||
140 DUP1 |
||||
141 DUP3 |
||||
142 DUP2 |
||||
143 MSTORE |
||||
144 PUSH1 0x20 |
||||
146 ADD |
||||
147 SWAP2 |
||||
148 POP |
||||
149 POP |
||||
150 PUSH1 0x40 |
||||
152 MLOAD |
||||
153 DUP1 |
||||
154 SWAP2 |
||||
155 SUB |
||||
156 SWAP1 |
||||
157 RETURN |
||||
158 JUMPDEST |
||||
159 CALLVALUE |
||||
160 ISZERO |
||||
161 PUSH2 0x00a9 |
||||
164 JUMPI |
||||
165 PUSH1 0x00 |
||||
167 DUP1 |
||||
168 REVERT |
||||
169 JUMPDEST |
||||
170 PUSH2 0x00de |
||||
173 PUSH1 0x04 |
||||
175 DUP1 |
||||
176 DUP1 |
||||
177 CALLDATALOAD |
||||
178 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
199 AND |
||||
200 SWAP1 |
||||
201 PUSH1 0x20 |
||||
203 ADD |
||||
204 SWAP1 |
||||
205 SWAP2 |
||||
206 SWAP1 |
||||
207 DUP1 |
||||
208 CALLDATALOAD |
||||
209 SWAP1 |
||||
210 PUSH1 0x20 |
||||
212 ADD |
||||
213 SWAP1 |
||||
214 SWAP2 |
||||
215 SWAP1 |
||||
216 POP |
||||
217 POP |
||||
218 PUSH2 0x0110 |
||||
221 JUMP |
||||
222 JUMPDEST |
||||
223 PUSH1 0x40 |
||||
225 MLOAD |
||||
226 DUP1 |
||||
227 DUP3 |
||||
228 ISZERO |
||||
229 ISZERO |
||||
230 ISZERO |
||||
231 ISZERO |
||||
232 DUP2 |
||||
233 MSTORE |
||||
234 PUSH1 0x20 |
||||
236 ADD |
||||
237 SWAP2 |
||||
238 POP |
||||
239 POP |
||||
240 PUSH1 0x40 |
||||
242 MLOAD |
||||
243 DUP1 |
||||
244 SWAP2 |
||||
245 SUB |
||||
246 SWAP1 |
||||
247 RETURN |
||||
248 JUMPDEST |
||||
249 PUSH1 0x00 |
||||
251 PUSH1 0x20 |
||||
253 MSTORE |
||||
254 DUP1 |
||||
255 PUSH1 0x00 |
||||
257 MSTORE |
||||
258 PUSH1 0x40 |
||||
260 PUSH1 0x00 |
||||
262 SHA3 |
||||
263 PUSH1 0x00 |
||||
265 SWAP2 |
||||
266 POP |
||||
267 SWAP1 |
||||
268 POP |
||||
269 SLOAD |
||||
270 DUP2 |
||||
271 JUMP |
||||
272 JUMPDEST |
||||
273 PUSH1 0x00 |
||||
275 DUP2 |
||||
276 PUSH1 0x00 |
||||
278 DUP1 |
||||
279 CALLER |
||||
280 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
301 AND |
||||
302 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
323 AND |
||||
324 DUP2 |
||||
325 MSTORE |
||||
326 PUSH1 0x20 |
||||
328 ADD |
||||
329 SWAP1 |
||||
330 DUP2 |
||||
331 MSTORE |
||||
332 PUSH1 0x20 |
||||
334 ADD |
||||
335 PUSH1 0x00 |
||||
337 SHA3 |
||||
338 SLOAD |
||||
339 LT |
||||
340 ISZERO |
||||
341 PUSH2 0x0161 |
||||
344 JUMPI |
||||
345 PUSH1 0x00 |
||||
347 SWAP1 |
||||
348 POP |
||||
349 PUSH2 0x01fe |
||||
352 JUMP |
||||
353 JUMPDEST |
||||
354 DUP2 |
||||
355 PUSH1 0x00 |
||||
357 DUP1 |
||||
358 CALLER |
||||
359 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
380 AND |
||||
381 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
402 AND |
||||
403 DUP2 |
||||
404 MSTORE |
||||
405 PUSH1 0x20 |
||||
407 ADD |
||||
408 SWAP1 |
||||
409 DUP2 |
||||
410 MSTORE |
||||
411 PUSH1 0x20 |
||||
413 ADD |
||||
414 PUSH1 0x00 |
||||
416 SHA3 |
||||
417 PUSH1 0x00 |
||||
419 DUP3 |
||||
420 DUP3 |
||||
421 SLOAD |
||||
422 SUB |
||||
423 SWAP3 |
||||
424 POP |
||||
425 POP |
||||
426 DUP2 |
||||
427 SWAP1 |
||||
428 SSTORE |
||||
429 POP |
||||
430 DUP2 |
||||
431 PUSH1 0x00 |
||||
433 DUP1 |
||||
434 DUP6 |
||||
435 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
456 AND |
||||
457 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
478 AND |
||||
479 DUP2 |
||||
480 MSTORE |
||||
481 PUSH1 0x20 |
||||
483 ADD |
||||
484 SWAP1 |
||||
485 DUP2 |
||||
486 MSTORE |
||||
487 PUSH1 0x20 |
||||
489 ADD |
||||
490 PUSH1 0x00 |
||||
492 SHA3 |
||||
493 PUSH1 0x00 |
||||
495 DUP3 |
||||
496 DUP3 |
||||
497 SLOAD |
||||
498 ADD |
||||
499 SWAP3 |
||||
500 POP |
||||
501 POP |
||||
502 DUP2 |
||||
503 SWAP1 |
||||
504 SSTORE |
||||
505 POP |
||||
506 PUSH1 0x00 |
||||
508 SWAP1 |
||||
509 POP |
||||
510 JUMPDEST |
||||
511 SWAP3 |
||||
512 SWAP2 |
||||
513 POP |
||||
514 POP |
||||
515 JUMP |
||||
516 STOP |
@ -0,0 +1,17 @@ |
||||
pragma solidity ^0.4.17; |
||||
|
||||
contract Transfer1 { |
||||
|
||||
function transfer() { |
||||
msg.sender.transfer(1 ether); |
||||
} |
||||
|
||||
} |
||||
|
||||
contract Transfer2 { |
||||
|
||||
function transfer() { |
||||
msg.sender.transfer(2 ether); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,77 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH1 0x3f |
||||
11 JUMPI |
||||
12 PUSH1 0x00 |
||||
14 CALLDATALOAD |
||||
15 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
45 SWAP1 |
||||
46 DIV |
||||
47 PUSH4 0xffffffff |
||||
52 AND |
||||
53 DUP1 |
||||
54 PUSH4 0x8a4068dd |
||||
59 EQ |
||||
60 PUSH1 0x44 |
||||
62 JUMPI |
||||
63 JUMPDEST |
||||
64 PUSH1 0x00 |
||||
66 DUP1 |
||||
67 REVERT |
||||
68 JUMPDEST |
||||
69 CALLVALUE |
||||
70 ISZERO |
||||
71 PUSH1 0x4e |
||||
73 JUMPI |
||||
74 PUSH1 0x00 |
||||
76 DUP1 |
||||
77 REVERT |
||||
78 JUMPDEST |
||||
79 PUSH1 0x54 |
||||
81 PUSH1 0x56 |
||||
83 JUMP |
||||
84 JUMPDEST |
||||
85 STOP |
||||
86 JUMPDEST |
||||
87 CALLER |
||||
88 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
109 AND |
||||
110 PUSH2 0x08fc |
||||
113 PUSH8 0x0de0b6b3a7640000 |
||||
122 SWAP1 |
||||
123 DUP2 |
||||
124 ISZERO |
||||
125 MUL |
||||
126 SWAP1 |
||||
127 PUSH1 0x40 |
||||
129 MLOAD |
||||
130 PUSH1 0x00 |
||||
132 PUSH1 0x40 |
||||
134 MLOAD |
||||
135 DUP1 |
||||
136 DUP4 |
||||
137 SUB |
||||
138 DUP2 |
||||
139 DUP6 |
||||
140 DUP9 |
||||
141 DUP9 |
||||
142 CALL |
||||
143 SWAP4 |
||||
144 POP |
||||
145 POP |
||||
146 POP |
||||
147 POP |
||||
148 ISZERO |
||||
149 ISZERO |
||||
150 PUSH1 0x9d |
||||
152 JUMPI |
||||
153 PUSH1 0x00 |
||||
155 DUP1 |
||||
156 REVERT |
||||
157 JUMPDEST |
||||
158 JUMP |
||||
159 STOP |
@ -0,0 +1,35 @@ |
||||
contract Origin { |
||||
address public owner; |
||||
|
||||
|
||||
/** |
||||
* @dev The Ownable constructor sets the original `owner` of the contract to the sender |
||||
* account. |
||||
*/ |
||||
function Origin() { |
||||
owner = msg.sender; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* @dev Throws if called by any account other than the owner. |
||||
*/ |
||||
modifier onlyOwner() { |
||||
if (tx.origin != owner) { |
||||
throw; |
||||
} |
||||
_; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* @dev Allows the current owner to transfer control of the contract to a newOwner. |
||||
* @param newOwner The address to transfer ownership to. |
||||
*/ |
||||
function transferOwnership(address newOwner) onlyOwner { |
||||
if (newOwner != address(0)) { |
||||
owner = newOwner; |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,168 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x004c |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x8da5cb5b |
||||
60 EQ |
||||
61 PUSH2 0x0051 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0xf2fde38b |
||||
71 EQ |
||||
72 PUSH2 0x00a6 |
||||
75 JUMPI |
||||
76 JUMPDEST |
||||
77 PUSH1 0x00 |
||||
79 DUP1 |
||||
80 REVERT |
||||
81 JUMPDEST |
||||
82 CALLVALUE |
||||
83 ISZERO |
||||
84 PUSH2 0x005c |
||||
87 JUMPI |
||||
88 PUSH1 0x00 |
||||
90 DUP1 |
||||
91 REVERT |
||||
92 JUMPDEST |
||||
93 PUSH2 0x0064 |
||||
96 PUSH2 0x00df |
||||
99 JUMP |
||||
100 JUMPDEST |
||||
101 PUSH1 0x40 |
||||
103 MLOAD |
||||
104 DUP1 |
||||
105 DUP3 |
||||
106 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
127 AND |
||||
128 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
149 AND |
||||
150 DUP2 |
||||
151 MSTORE |
||||
152 PUSH1 0x20 |
||||
154 ADD |
||||
155 SWAP2 |
||||
156 POP |
||||
157 POP |
||||
158 PUSH1 0x40 |
||||
160 MLOAD |
||||
161 DUP1 |
||||
162 SWAP2 |
||||
163 SUB |
||||
164 SWAP1 |
||||
165 RETURN |
||||
166 JUMPDEST |
||||
167 CALLVALUE |
||||
168 ISZERO |
||||
169 PUSH2 0x00b1 |
||||
172 JUMPI |
||||
173 PUSH1 0x00 |
||||
175 DUP1 |
||||
176 REVERT |
||||
177 JUMPDEST |
||||
178 PUSH2 0x00dd |
||||
181 PUSH1 0x04 |
||||
183 DUP1 |
||||
184 DUP1 |
||||
185 CALLDATALOAD |
||||
186 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
207 AND |
||||
208 SWAP1 |
||||
209 PUSH1 0x20 |
||||
211 ADD |
||||
212 SWAP1 |
||||
213 SWAP2 |
||||
214 SWAP1 |
||||
215 POP |
||||
216 POP |
||||
217 PUSH2 0x0104 |
||||
220 JUMP |
||||
221 JUMPDEST |
||||
222 STOP |
||||
223 JUMPDEST |
||||
224 PUSH1 0x00 |
||||
226 DUP1 |
||||
227 SWAP1 |
||||
228 SLOAD |
||||
229 SWAP1 |
||||
230 PUSH2 0x0100 |
||||
233 EXP |
||||
234 SWAP1 |
||||
235 DIV |
||||
236 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
257 AND |
||||
258 DUP2 |
||||
259 JUMP |
||||
260 JUMPDEST |
||||
261 PUSH1 0x00 |
||||
263 DUP1 |
||||
264 SWAP1 |
||||
265 SLOAD |
||||
266 SWAP1 |
||||
267 PUSH2 0x0100 |
||||
270 EXP |
||||
271 SWAP1 |
||||
272 DIV |
||||
273 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
294 AND |
||||
295 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
316 AND |
||||
317 ORIGIN |
||||
318 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
339 AND |
||||
340 EQ |
||||
341 ISZERO |
||||
342 ISZERO |
||||
343 PUSH2 0x015f |
||||
346 JUMPI |
||||
347 PUSH1 0x00 |
||||
349 DUP1 |
||||
350 REVERT |
||||
351 JUMPDEST |
||||
352 PUSH1 0x00 |
||||
354 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
375 AND |
||||
376 DUP2 |
||||
377 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
398 AND |
||||
399 EQ |
||||
400 ISZERO |
||||
401 ISZERO |
||||
402 PUSH2 0x01d6 |
||||
405 JUMPI |
||||
406 DUP1 |
||||
407 PUSH1 0x00 |
||||
409 DUP1 |
||||
410 PUSH2 0x0100 |
||||
413 EXP |
||||
414 DUP2 |
||||
415 SLOAD |
||||
416 DUP2 |
||||
417 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
438 MUL |
||||
439 NOT |
||||
440 AND |
||||
441 SWAP1 |
||||
442 DUP4 |
||||
443 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
464 AND |
||||
465 MUL |
||||
466 OR |
||||
467 SWAP1 |
||||
468 SSTORE |
||||
469 POP |
||||
470 JUMPDEST |
||||
471 POP |
||||
472 JUMP |
||||
473 STOP |
@ -0,0 +1,13 @@ |
||||
contract ReturnValue { |
||||
|
||||
address callee = 0xE0F7e56e62b4267062172495D7506087205A4229; |
||||
|
||||
function callnotchecked() { |
||||
callee.call(); |
||||
} |
||||
|
||||
function callchecked() { |
||||
require(callee.call()); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,129 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x004c |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x633ab5e0 |
||||
60 EQ |
||||
61 PUSH2 0x0051 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0xe3bea282 |
||||
71 EQ |
||||
72 PUSH2 0x0066 |
||||
75 JUMPI |
||||
76 JUMPDEST |
||||
77 PUSH1 0x00 |
||||
79 DUP1 |
||||
80 REVERT |
||||
81 JUMPDEST |
||||
82 CALLVALUE |
||||
83 ISZERO |
||||
84 PUSH2 0x005c |
||||
87 JUMPI |
||||
88 PUSH1 0x00 |
||||
90 DUP1 |
||||
91 REVERT |
||||
92 JUMPDEST |
||||
93 PUSH2 0x0064 |
||||
96 PUSH2 0x007b |
||||
99 JUMP |
||||
100 JUMPDEST |
||||
101 STOP |
||||
102 JUMPDEST |
||||
103 CALLVALUE |
||||
104 ISZERO |
||||
105 PUSH2 0x0071 |
||||
108 JUMPI |
||||
109 PUSH1 0x00 |
||||
111 DUP1 |
||||
112 REVERT |
||||
113 JUMPDEST |
||||
114 PUSH2 0x0079 |
||||
117 PUSH2 0x00d4 |
||||
120 JUMP |
||||
121 JUMPDEST |
||||
122 STOP |
||||
123 JUMPDEST |
||||
124 PUSH1 0x00 |
||||
126 DUP1 |
||||
127 SWAP1 |
||||
128 SLOAD |
||||
129 SWAP1 |
||||
130 PUSH2 0x0100 |
||||
133 EXP |
||||
134 SWAP1 |
||||
135 DIV |
||||
136 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
157 AND |
||||
158 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
179 AND |
||||
180 PUSH1 0x40 |
||||
182 MLOAD |
||||
183 PUSH1 0x00 |
||||
185 PUSH1 0x40 |
||||
187 MLOAD |
||||
188 DUP1 |
||||
189 DUP4 |
||||
190 SUB |
||||
191 DUP2 |
||||
192 PUSH1 0x00 |
||||
194 DUP7 |
||||
195 GAS |
||||
196 CALL |
||||
197 SWAP2 |
||||
198 POP |
||||
199 POP |
||||
200 ISZERO |
||||
201 ISZERO |
||||
202 PUSH2 0x00d2 |
||||
205 JUMPI |
||||
206 PUSH1 0x00 |
||||
208 DUP1 |
||||
209 REVERT |
||||
210 JUMPDEST |
||||
211 JUMP |
||||
212 JUMPDEST |
||||
213 PUSH1 0x00 |
||||
215 DUP1 |
||||
216 SWAP1 |
||||
217 SLOAD |
||||
218 SWAP1 |
||||
219 PUSH2 0x0100 |
||||
222 EXP |
||||
223 SWAP1 |
||||
224 DIV |
||||
225 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
246 AND |
||||
247 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
268 AND |
||||
269 PUSH1 0x40 |
||||
271 MLOAD |
||||
272 PUSH1 0x00 |
||||
274 PUSH1 0x40 |
||||
276 MLOAD |
||||
277 DUP1 |
||||
278 DUP4 |
||||
279 SUB |
||||
280 DUP2 |
||||
281 PUSH1 0x00 |
||||
283 DUP7 |
||||
284 GAS |
||||
285 CALL |
||||
286 SWAP2 |
||||
287 POP |
||||
288 POP |
||||
289 POP |
||||
290 JUMP |
||||
291 STOP |
@ -0,0 +1,152 @@ |
||||
contract Rubixi { |
||||
|
||||
//Declare variables for storage critical to contract |
||||
uint private balance = 0; |
||||
uint private collectedFees = 0; |
||||
uint private feePercent = 10; |
||||
uint private pyramidMultiplier = 300; |
||||
uint private payoutOrder = 0; |
||||
|
||||
address private creator; |
||||
|
||||
//Sets creator |
||||
function DynamicPyramid() { |
||||
creator = msg.sender; |
||||
} |
||||
|
||||
modifier onlyowner { |
||||
if (msg.sender == creator) _; |
||||
} |
||||
|
||||
struct Participant { |
||||
address etherAddress; |
||||
uint payout; |
||||
} |
||||
|
||||
Participant[] private participants; |
||||
|
||||
//Fallback function |
||||
function() { |
||||
init(); |
||||
} |
||||
|
||||
//init function run on fallback |
||||
function init() private { |
||||
//Ensures only tx with value of 1 ether or greater are processed and added to pyramid |
||||
if (msg.value < 1 ether) { |
||||
collectedFees += msg.value; |
||||
return; |
||||
} |
||||
|
||||
uint _fee = feePercent; |
||||
//50% fee rebate on any ether value of 50 or greater |
||||
if (msg.value >= 50 ether) _fee /= 2; |
||||
|
||||
addPayout(_fee); |
||||
} |
||||
|
||||
//Function called for valid tx to the contract |
||||
function addPayout(uint _fee) private { |
||||
//Adds new address to participant array |
||||
participants.push(Participant(msg.sender, (msg.value * pyramidMultiplier) / 100)); |
||||
|
||||
//These statements ensure a quicker payout system to later pyramid entrants, so the pyramid has a longer lifespan |
||||
if (participants.length == 10) pyramidMultiplier = 200; |
||||
else if (participants.length == 25) pyramidMultiplier = 150; |
||||
|
||||
// collect fees and update contract balance |
||||
balance += (msg.value * (100 - _fee)) / 100; |
||||
collectedFees += (msg.value * _fee) / 100; |
||||
|
||||
//Pays earlier participiants if balance sufficient |
||||
while (balance > participants[payoutOrder].payout) { |
||||
uint payoutToSend = participants[payoutOrder].payout; |
||||
participants[payoutOrder].etherAddress.send(payoutToSend); |
||||
|
||||
balance -= participants[payoutOrder].payout; |
||||
payoutOrder += 1; |
||||
} |
||||
} |
||||
|
||||
//Fee functions for creator |
||||
function collectAllFees() onlyowner { |
||||
if (collectedFees == 0) throw; |
||||
|
||||
creator.send(collectedFees); |
||||
collectedFees = 0; |
||||
} |
||||
|
||||
function collectFeesInEther(uint _amt) onlyowner { |
||||
_amt *= 1 ether; |
||||
if (_amt > collectedFees) collectAllFees(); |
||||
|
||||
if (collectedFees == 0) throw; |
||||
|
||||
creator.send(_amt); |
||||
collectedFees -= _amt; |
||||
} |
||||
|
||||
function collectPercentOfFees(uint _pcent) onlyowner { |
||||
if (collectedFees == 0 || _pcent > 100) throw; |
||||
|
||||
uint feesToCollect = collectedFees / 100 * _pcent; |
||||
creator.send(feesToCollect); |
||||
collectedFees -= feesToCollect; |
||||
} |
||||
|
||||
//Functions for changing variables related to the contract |
||||
function changeOwner(address _owner) onlyowner { |
||||
creator = _owner; |
||||
} |
||||
|
||||
function changeMultiplier(uint _mult) onlyowner { |
||||
if (_mult > 300 || _mult < 120) throw; |
||||
|
||||
pyramidMultiplier = _mult; |
||||
} |
||||
|
||||
function changeFeePercentage(uint _fee) onlyowner { |
||||
if (_fee > 10) throw; |
||||
|
||||
feePercent = _fee; |
||||
} |
||||
|
||||
//Functions to provide information to end-user using JSON interface or other interfaces |
||||
function currentMultiplier() constant returns(uint multiplier, string info) { |
||||
multiplier = pyramidMultiplier; |
||||
info = 'This multiplier applies to you as soon as transaction is received, may be lowered to hasten payouts or increased if payouts are fast enough. Due to no float or decimals, multiplier is x100 for a fractional multiplier e.g. 250 is actually a 2.5x multiplier. Capped at 3x max and 1.2x min.'; |
||||
} |
||||
|
||||
function currentFeePercentage() constant returns(uint fee, string info) { |
||||
fee = feePercent; |
||||
info = 'Shown in % form. Fee is halved(50%) for amounts equal or greater than 50 ethers. (Fee may change, but is capped to a maximum of 10%)'; |
||||
} |
||||
|
||||
function currentPyramidBalanceApproximately() constant returns(uint pyramidBalance, string info) { |
||||
pyramidBalance = balance / 1 ether; |
||||
info = 'All balance values are measured in Ethers, note that due to no decimal placing, these values show up as integers only, within the contract itself you will get the exact decimal value you are supposed to'; |
||||
} |
||||
|
||||
function nextPayoutWhenPyramidBalanceTotalsApproximately() constant returns(uint balancePayout) { |
||||
balancePayout = participants[payoutOrder].payout / 1 ether; |
||||
} |
||||
|
||||
function feesSeperateFromBalanceApproximately() constant returns(uint fees) { |
||||
fees = collectedFees / 1 ether; |
||||
} |
||||
|
||||
function totalParticipants() constant returns(uint count) { |
||||
count = participants.length; |
||||
} |
||||
|
||||
function numberOfParticipantsWaitingForPayout() constant returns(uint count) { |
||||
count = participants.length - payoutOrder; |
||||
} |
||||
|
||||
function participantDetails(uint orderInPyramid) constant returns(address Address, uint Payout) { |
||||
if (orderInPyramid <= participants.length) { |
||||
Address = participants[orderInPyramid].etherAddress; |
||||
Payout = participants[orderInPyramid].payout / 1 ether; |
||||
} |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@ |
||||
contract Suicide { |
||||
|
||||
function kill(address addr) { |
||||
selfdestruct(addr); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,58 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH1 0x3f |
||||
11 JUMPI |
||||
12 PUSH1 0x00 |
||||
14 CALLDATALOAD |
||||
15 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
45 SWAP1 |
||||
46 DIV |
||||
47 PUSH4 0xffffffff |
||||
52 AND |
||||
53 DUP1 |
||||
54 PUSH4 0xcbf0b0c0 |
||||
59 EQ |
||||
60 PUSH1 0x44 |
||||
62 JUMPI |
||||
63 JUMPDEST |
||||
64 PUSH1 0x00 |
||||
66 DUP1 |
||||
67 REVERT |
||||
68 JUMPDEST |
||||
69 CALLVALUE |
||||
70 ISZERO |
||||
71 PUSH1 0x4e |
||||
73 JUMPI |
||||
74 PUSH1 0x00 |
||||
76 DUP1 |
||||
77 REVERT |
||||
78 JUMPDEST |
||||
79 PUSH1 0x78 |
||||
81 PUSH1 0x04 |
||||
83 DUP1 |
||||
84 DUP1 |
||||
85 CALLDATALOAD |
||||
86 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
107 AND |
||||
108 SWAP1 |
||||
109 PUSH1 0x20 |
||||
111 ADD |
||||
112 SWAP1 |
||||
113 SWAP2 |
||||
114 SWAP1 |
||||
115 POP |
||||
116 POP |
||||
117 PUSH1 0x7a |
||||
119 JUMP |
||||
120 JUMPDEST |
||||
121 STOP |
||||
122 JUMPDEST |
||||
123 DUP1 |
||||
124 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
145 AND |
||||
146 SUICIDE |
||||
147 STOP |
@ -0,0 +1,20 @@ |
||||
contract Under { |
||||
|
||||
mapping(address => uint) balances; |
||||
uint public totalSupply; |
||||
|
||||
function Token(uint _initialSupply) { |
||||
balances[msg.sender] = totalSupply = _initialSupply; |
||||
} |
||||
|
||||
function sendeth(address _to, uint _value) public returns (bool) { |
||||
require(balances[msg.sender] - _value >= 0); |
||||
balances[msg.sender] -= _value; |
||||
balances[_to] += _value; |
||||
return true; |
||||
} |
||||
|
||||
function balanceOf(address _owner) public constant returns (uint balance) { |
||||
return balances[_owner]; |
||||
} |
||||
} |
@ -0,0 +1,365 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0062 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0x18160ddd |
||||
60 EQ |
||||
61 PUSH2 0x0067 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0x6241bfd1 |
||||
71 EQ |
||||
72 PUSH2 0x0090 |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0x70a08231 |
||||
82 EQ |
||||
83 PUSH2 0x00b3 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0xa3210e87 |
||||
93 EQ |
||||
94 PUSH2 0x0100 |
||||
97 JUMPI |
||||
98 JUMPDEST |
||||
99 PUSH1 0x00 |
||||
101 DUP1 |
||||
102 REVERT |
||||
103 JUMPDEST |
||||
104 CALLVALUE |
||||
105 ISZERO |
||||
106 PUSH2 0x0072 |
||||
109 JUMPI |
||||
110 PUSH1 0x00 |
||||
112 DUP1 |
||||
113 REVERT |
||||
114 JUMPDEST |
||||
115 PUSH2 0x007a |
||||
118 PUSH2 0x015a |
||||
121 JUMP |
||||
122 JUMPDEST |
||||
123 PUSH1 0x40 |
||||
125 MLOAD |
||||
126 DUP1 |
||||
127 DUP3 |
||||
128 DUP2 |
||||
129 MSTORE |
||||
130 PUSH1 0x20 |
||||
132 ADD |
||||
133 SWAP2 |
||||
134 POP |
||||
135 POP |
||||
136 PUSH1 0x40 |
||||
138 MLOAD |
||||
139 DUP1 |
||||
140 SWAP2 |
||||
141 SUB |
||||
142 SWAP1 |
||||
143 RETURN |
||||
144 JUMPDEST |
||||
145 CALLVALUE |
||||
146 ISZERO |
||||
147 PUSH2 0x009b |
||||
150 JUMPI |
||||
151 PUSH1 0x00 |
||||
153 DUP1 |
||||
154 REVERT |
||||
155 JUMPDEST |
||||
156 PUSH2 0x00b1 |
||||
159 PUSH1 0x04 |
||||
161 DUP1 |
||||
162 DUP1 |
||||
163 CALLDATALOAD |
||||
164 SWAP1 |
||||
165 PUSH1 0x20 |
||||
167 ADD |
||||
168 SWAP1 |
||||
169 SWAP2 |
||||
170 SWAP1 |
||||
171 POP |
||||
172 POP |
||||
173 PUSH2 0x0160 |
||||
176 JUMP |
||||
177 JUMPDEST |
||||
178 STOP |
||||
179 JUMPDEST |
||||
180 CALLVALUE |
||||
181 ISZERO |
||||
182 PUSH2 0x00be |
||||
185 JUMPI |
||||
186 PUSH1 0x00 |
||||
188 DUP1 |
||||
189 REVERT |
||||
190 JUMPDEST |
||||
191 PUSH2 0x00ea |
||||
194 PUSH1 0x04 |
||||
196 DUP1 |
||||
197 DUP1 |
||||
198 CALLDATALOAD |
||||
199 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
220 AND |
||||
221 SWAP1 |
||||
222 PUSH1 0x20 |
||||
224 ADD |
||||
225 SWAP1 |
||||
226 SWAP2 |
||||
227 SWAP1 |
||||
228 POP |
||||
229 POP |
||||
230 PUSH2 0x01ab |
||||
233 JUMP |
||||
234 JUMPDEST |
||||
235 PUSH1 0x40 |
||||
237 MLOAD |
||||
238 DUP1 |
||||
239 DUP3 |
||||
240 DUP2 |
||||
241 MSTORE |
||||
242 PUSH1 0x20 |
||||
244 ADD |
||||
245 SWAP2 |
||||
246 POP |
||||
247 POP |
||||
248 PUSH1 0x40 |
||||
250 MLOAD |
||||
251 DUP1 |
||||
252 SWAP2 |
||||
253 SUB |
||||
254 SWAP1 |
||||
255 RETURN |
||||
256 JUMPDEST |
||||
257 CALLVALUE |
||||
258 ISZERO |
||||
259 PUSH2 0x010b |
||||
262 JUMPI |
||||
263 PUSH1 0x00 |
||||
265 DUP1 |
||||
266 REVERT |
||||
267 JUMPDEST |
||||
268 PUSH2 0x0140 |
||||
271 PUSH1 0x04 |
||||
273 DUP1 |
||||
274 DUP1 |
||||
275 CALLDATALOAD |
||||
276 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
297 AND |
||||
298 SWAP1 |
||||
299 PUSH1 0x20 |
||||
301 ADD |
||||
302 SWAP1 |
||||
303 SWAP2 |
||||
304 SWAP1 |
||||
305 DUP1 |
||||
306 CALLDATALOAD |
||||
307 SWAP1 |
||||
308 PUSH1 0x20 |
||||
310 ADD |
||||
311 SWAP1 |
||||
312 SWAP2 |
||||
313 SWAP1 |
||||
314 POP |
||||
315 POP |
||||
316 PUSH2 0x01f3 |
||||
319 JUMP |
||||
320 JUMPDEST |
||||
321 PUSH1 0x40 |
||||
323 MLOAD |
||||
324 DUP1 |
||||
325 DUP3 |
||||
326 ISZERO |
||||
327 ISZERO |
||||
328 ISZERO |
||||
329 ISZERO |
||||
330 DUP2 |
||||
331 MSTORE |
||||
332 PUSH1 0x20 |
||||
334 ADD |
||||
335 SWAP2 |
||||
336 POP |
||||
337 POP |
||||
338 PUSH1 0x40 |
||||
340 MLOAD |
||||
341 DUP1 |
||||
342 SWAP2 |
||||
343 SUB |
||||
344 SWAP1 |
||||
345 RETURN |
||||
346 JUMPDEST |
||||
347 PUSH1 0x01 |
||||
349 SLOAD |
||||
350 DUP2 |
||||
351 JUMP |
||||
352 JUMPDEST |
||||
353 DUP1 |
||||
354 PUSH1 0x01 |
||||
356 DUP2 |
||||
357 SWAP1 |
||||
358 SSTORE |
||||
359 PUSH1 0x00 |
||||
361 DUP1 |
||||
362 CALLER |
||||
363 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
384 AND |
||||
385 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
406 AND |
||||
407 DUP2 |
||||
408 MSTORE |
||||
409 PUSH1 0x20 |
||||
411 ADD |
||||
412 SWAP1 |
||||
413 DUP2 |
||||
414 MSTORE |
||||
415 PUSH1 0x20 |
||||
417 ADD |
||||
418 PUSH1 0x00 |
||||
420 SHA3 |
||||
421 DUP2 |
||||
422 SWAP1 |
||||
423 SSTORE |
||||
424 POP |
||||
425 POP |
||||
426 JUMP |
||||
427 JUMPDEST |
||||
428 PUSH1 0x00 |
||||
430 DUP1 |
||||
431 PUSH1 0x00 |
||||
433 DUP4 |
||||
434 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
455 AND |
||||
456 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
477 AND |
||||
478 DUP2 |
||||
479 MSTORE |
||||
480 PUSH1 0x20 |
||||
482 ADD |
||||
483 SWAP1 |
||||
484 DUP2 |
||||
485 MSTORE |
||||
486 PUSH1 0x20 |
||||
488 ADD |
||||
489 PUSH1 0x00 |
||||
491 SHA3 |
||||
492 SLOAD |
||||
493 SWAP1 |
||||
494 POP |
||||
495 SWAP2 |
||||
496 SWAP1 |
||||
497 POP |
||||
498 JUMP |
||||
499 JUMPDEST |
||||
500 PUSH1 0x00 |
||||
502 DUP1 |
||||
503 DUP3 |
||||
504 PUSH1 0x00 |
||||
506 DUP1 |
||||
507 CALLER |
||||
508 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
529 AND |
||||
530 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
551 AND |
||||
552 DUP2 |
||||
553 MSTORE |
||||
554 PUSH1 0x20 |
||||
556 ADD |
||||
557 SWAP1 |
||||
558 DUP2 |
||||
559 MSTORE |
||||
560 PUSH1 0x20 |
||||
562 ADD |
||||
563 PUSH1 0x00 |
||||
565 SHA3 |
||||
566 SLOAD |
||||
567 SUB |
||||
568 LT |
||||
569 ISZERO |
||||
570 ISZERO |
||||
571 ISZERO |
||||
572 PUSH2 0x0244 |
||||
575 JUMPI |
||||
576 PUSH1 0x00 |
||||
578 DUP1 |
||||
579 REVERT |
||||
580 JUMPDEST |
||||
581 DUP2 |
||||
582 PUSH1 0x00 |
||||
584 DUP1 |
||||
585 CALLER |
||||
586 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
607 AND |
||||
608 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
629 AND |
||||
630 DUP2 |
||||
631 MSTORE |
||||
632 PUSH1 0x20 |
||||
634 ADD |
||||
635 SWAP1 |
||||
636 DUP2 |
||||
637 MSTORE |
||||
638 PUSH1 0x20 |
||||
640 ADD |
||||
641 PUSH1 0x00 |
||||
643 SHA3 |
||||
644 PUSH1 0x00 |
||||
646 DUP3 |
||||
647 DUP3 |
||||
648 SLOAD |
||||
649 SUB |
||||
650 SWAP3 |
||||
651 POP |
||||
652 POP |
||||
653 DUP2 |
||||
654 SWAP1 |
||||
655 SSTORE |
||||
656 POP |
||||
657 DUP2 |
||||
658 PUSH1 0x00 |
||||
660 DUP1 |
||||
661 DUP6 |
||||
662 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
683 AND |
||||
684 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
705 AND |
||||
706 DUP2 |
||||
707 MSTORE |
||||
708 PUSH1 0x20 |
||||
710 ADD |
||||
711 SWAP1 |
||||
712 DUP2 |
||||
713 MSTORE |
||||
714 PUSH1 0x20 |
||||
716 ADD |
||||
717 PUSH1 0x00 |
||||
719 SHA3 |
||||
720 PUSH1 0x00 |
||||
722 DUP3 |
||||
723 DUP3 |
||||
724 SLOAD |
||||
725 ADD |
||||
726 SWAP3 |
||||
727 POP |
||||
728 POP |
||||
729 DUP2 |
||||
730 SWAP1 |
||||
731 SSTORE |
||||
732 POP |
||||
733 PUSH1 0x01 |
||||
735 SWAP1 |
||||
736 POP |
||||
737 SWAP3 |
||||
738 SWAP2 |
||||
739 POP |
||||
740 POP |
||||
741 JUMP |
||||
742 STOP |
@ -0,0 +1,49 @@ |
||||
pragma solidity ^0.4.16; |
||||
|
||||
contract WeakRandom { |
||||
struct Contestant { |
||||
address addr; |
||||
uint gameId; |
||||
} |
||||
|
||||
uint public constant prize = 2.5 ether; |
||||
uint public constant totalTickets = 50; |
||||
uint public constant pricePerTicket = prize / totalTickets; |
||||
|
||||
uint public gameId = 1; |
||||
uint public nextTicket = 0; |
||||
mapping (uint => Contestant) public contestants; |
||||
|
||||
function () payable public { |
||||
uint moneySent = msg.value; |
||||
|
||||
while (moneySent >= pricePerTicket && nextTicket < totalTickets) { |
||||
uint currTicket = nextTicket++; |
||||
contestants[currTicket] = Contestant(msg.sender, gameId); |
||||
moneySent -= pricePerTicket; |
||||
} |
||||
|
||||
if (nextTicket == totalTickets) { |
||||
chooseWinner(); |
||||
} |
||||
|
||||
// Send back leftover money |
||||
if (moneySent > 0) { |
||||
msg.sender.transfer(moneySent); |
||||
} |
||||
} |
||||
|
||||
function chooseWinner() private { |
||||
address seed1 = contestants[uint(block.coinbase) % totalTickets].addr; |
||||
address seed2 = contestants[uint(msg.sender) % totalTickets].addr; |
||||
uint seed3 = block.difficulty; |
||||
bytes32 randHash = keccak256(seed1, seed2, seed3); |
||||
|
||||
uint winningNumber = uint(randHash) % totalTickets; |
||||
address winningAddress = contestants[winningNumber].addr; |
||||
|
||||
gameId++; |
||||
nextTicket = 0; |
||||
winningAddress.transfer(prize); |
||||
} |
||||
} |
@ -0,0 +1,760 @@ |
||||
0 PUSH1 0x60 |
||||
2 PUSH1 0x40 |
||||
4 MSTORE |
||||
5 PUSH1 0x04 |
||||
7 CALLDATASIZE |
||||
8 LT |
||||
9 PUSH2 0x0078 |
||||
12 JUMPI |
||||
13 PUSH1 0x00 |
||||
15 CALLDATALOAD |
||||
16 PUSH29 0x0100000000000000000000000000000000000000000000000000000000 |
||||
46 SWAP1 |
||||
47 DIV |
||||
48 PUSH4 0xffffffff |
||||
53 AND |
||||
54 DUP1 |
||||
55 PUSH4 0xc7dbbc47 |
||||
60 EQ |
||||
61 PUSH2 0x01d1 |
||||
64 JUMPI |
||||
65 DUP1 |
||||
66 PUSH4 0xd7c81b55 |
||||
71 EQ |
||||
72 PUSH2 0x01fa |
||||
75 JUMPI |
||||
76 DUP1 |
||||
77 PUSH4 0xdd11247e |
||||
82 EQ |
||||
83 PUSH2 0x0223 |
||||
86 JUMPI |
||||
87 DUP1 |
||||
88 PUSH4 0xdfd50f52 |
||||
93 EQ |
||||
94 PUSH2 0x024c |
||||
97 JUMPI |
||||
98 DUP1 |
||||
99 PUSH4 0xe3ac5d26 |
||||
104 EQ |
||||
105 PUSH2 0x02b6 |
||||
108 JUMPI |
||||
109 DUP1 |
||||
110 PUSH4 0xe9874106 |
||||
115 EQ |
||||
116 PUSH2 0x02df |
||||
119 JUMPI |
||||
120 JUMPDEST |
||||
121 PUSH1 0x00 |
||||
123 DUP1 |
||||
124 CALLVALUE |
||||
125 SWAP2 |
||||
126 POP |
||||
127 JUMPDEST |
||||
128 PUSH1 0x32 |
||||
130 PUSH8 0x22b1c8c1227a0000 |
||||
139 DUP2 |
||||
140 ISZERO |
||||
141 ISZERO |
||||
142 PUSH2 0x0093 |
||||
145 JUMPI |
||||
146 ASSERT_FAIL |
||||
147 JUMPDEST |
||||
148 DIV |
||||
149 DUP3 |
||||
150 LT |
||||
151 ISZERO |
||||
152 DUP1 |
||||
153 ISZERO |
||||
154 PUSH2 0x00a5 |
||||
157 JUMPI |
||||
158 POP |
||||
159 PUSH1 0x32 |
||||
161 PUSH1 0x01 |
||||
163 SLOAD |
||||
164 LT |
||||
165 JUMPDEST |
||||
166 ISZERO |
||||
167 PUSH2 0x016f |
||||
170 JUMPI |
||||
171 PUSH1 0x01 |
||||
173 PUSH1 0x00 |
||||
175 DUP2 |
||||
176 SLOAD |
||||
177 DUP1 |
||||
178 SWAP3 |
||||
179 SWAP2 |
||||
180 SWAP1 |
||||
181 PUSH1 0x01 |
||||
183 ADD |
||||
184 SWAP2 |
||||
185 SWAP1 |
||||
186 POP |
||||
187 SSTORE |
||||
188 SWAP1 |
||||
189 POP |
||||
190 PUSH1 0x40 |
||||
192 DUP1 |
||||
193 MLOAD |
||||
194 SWAP1 |
||||
195 DUP2 |
||||
196 ADD |
||||
197 PUSH1 0x40 |
||||
199 MSTORE |
||||
200 DUP1 |
||||
201 CALLER |
||||
202 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
223 AND |
||||
224 DUP2 |
||||
225 MSTORE |
||||
226 PUSH1 0x20 |
||||
228 ADD |
||||
229 PUSH1 0x00 |
||||
231 SLOAD |
||||
232 DUP2 |
||||
233 MSTORE |
||||
234 POP |
||||
235 PUSH1 0x02 |
||||
237 PUSH1 0x00 |
||||
239 DUP4 |
||||
240 DUP2 |
||||
241 MSTORE |
||||
242 PUSH1 0x20 |
||||
244 ADD |
||||
245 SWAP1 |
||||
246 DUP2 |
||||
247 MSTORE |
||||
248 PUSH1 0x20 |
||||
250 ADD |
||||
251 PUSH1 0x00 |
||||
253 SHA3 |
||||
254 PUSH1 0x00 |
||||
256 DUP3 |
||||
257 ADD |
||||
258 MLOAD |
||||
259 DUP2 |
||||
260 PUSH1 0x00 |
||||
262 ADD |
||||
263 PUSH1 0x00 |
||||
265 PUSH2 0x0100 |
||||
268 EXP |
||||
269 DUP2 |
||||
270 SLOAD |
||||
271 DUP2 |
||||
272 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
293 MUL |
||||
294 NOT |
||||
295 AND |
||||
296 SWAP1 |
||||
297 DUP4 |
||||
298 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
319 AND |
||||
320 MUL |
||||
321 OR |
||||
322 SWAP1 |
||||
323 SSTORE |
||||
324 POP |
||||
325 PUSH1 0x20 |
||||
327 DUP3 |
||||
328 ADD |
||||
329 MLOAD |
||||
330 DUP2 |
||||
331 PUSH1 0x01 |
||||
333 ADD |
||||
334 SSTORE |
||||
335 SWAP1 |
||||
336 POP |
||||
337 POP |
||||
338 PUSH1 0x32 |
||||
340 PUSH8 0x22b1c8c1227a0000 |
||||
349 DUP2 |
||||
350 ISZERO |
||||
351 ISZERO |
||||
352 PUSH2 0x0165 |
||||
355 JUMPI |
||||
356 ASSERT_FAIL |
||||
357 JUMPDEST |
||||
358 DIV |
||||
359 DUP3 |
||||
360 SUB |
||||
361 SWAP2 |
||||
362 POP |
||||
363 PUSH2 0x007f |
||||
366 JUMP |
||||
367 JUMPDEST |
||||
368 PUSH1 0x32 |
||||
370 PUSH1 0x01 |
||||
372 SLOAD |
||||
373 EQ |
||||
374 ISZERO |
||||
375 PUSH2 0x0183 |
||||
378 JUMPI |
||||
379 PUSH2 0x0182 |
||||
382 PUSH2 0x0308 |
||||
385 JUMP |
||||
386 JUMPDEST |
||||
387 JUMPDEST |
||||
388 PUSH1 0x00 |
||||
390 DUP3 |
||||
391 GT |
||||
392 ISZERO |
||||
393 PUSH2 0x01cd |
||||
396 JUMPI |
||||
397 CALLER |
||||
398 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
419 AND |
||||
420 PUSH2 0x08fc |
||||
423 DUP4 |
||||
424 SWAP1 |
||||
425 DUP2 |
||||
426 ISZERO |
||||
427 MUL |
||||
428 SWAP1 |
||||
429 PUSH1 0x40 |
||||
431 MLOAD |
||||
432 PUSH1 0x00 |
||||
434 PUSH1 0x40 |
||||
436 MLOAD |
||||
437 DUP1 |
||||
438 DUP4 |
||||
439 SUB |
||||
440 DUP2 |
||||
441 DUP6 |
||||
442 DUP9 |
||||
443 DUP9 |
||||
444 CALL |
||||
445 SWAP4 |
||||
446 POP |
||||
447 POP |
||||
448 POP |
||||
449 POP |
||||
450 ISZERO |
||||
451 ISZERO |
||||
452 PUSH2 0x01cc |
||||
455 JUMPI |
||||
456 PUSH1 0x00 |
||||
458 DUP1 |
||||
459 REVERT |
||||
460 JUMPDEST |
||||
461 JUMPDEST |
||||
462 POP |
||||
463 POP |
||||
464 STOP |
||||
465 JUMPDEST |
||||
466 CALLVALUE |
||||
467 ISZERO |
||||
468 PUSH2 0x01dc |
||||
471 JUMPI |
||||
472 PUSH1 0x00 |
||||
474 DUP1 |
||||
475 REVERT |
||||
476 JUMPDEST |
||||
477 PUSH2 0x01e4 |
||||
480 PUSH2 0x051d |
||||
483 JUMP |
||||
484 JUMPDEST |
||||
485 PUSH1 0x40 |
||||
487 MLOAD |
||||
488 DUP1 |
||||
489 DUP3 |
||||
490 DUP2 |
||||
491 MSTORE |
||||
492 PUSH1 0x20 |
||||
494 ADD |
||||
495 SWAP2 |
||||
496 POP |
||||
497 POP |
||||
498 PUSH1 0x40 |
||||
500 MLOAD |
||||
501 DUP1 |
||||
502 SWAP2 |
||||
503 SUB |
||||
504 SWAP1 |
||||
505 RETURN |
||||
506 JUMPDEST |
||||
507 CALLVALUE |
||||
508 ISZERO |
||||
509 PUSH2 0x0205 |
||||
512 JUMPI |
||||
513 PUSH1 0x00 |
||||
515 DUP1 |
||||
516 REVERT |
||||
517 JUMPDEST |
||||
518 PUSH2 0x020d |
||||
521 PUSH2 0x0523 |
||||
524 JUMP |
||||
525 JUMPDEST |
||||
526 PUSH1 0x40 |
||||
528 MLOAD |
||||
529 DUP1 |
||||
530 DUP3 |
||||
531 DUP2 |
||||
532 MSTORE |
||||
533 PUSH1 0x20 |
||||
535 ADD |
||||
536 SWAP2 |
||||
537 POP |
||||
538 POP |
||||
539 PUSH1 0x40 |
||||
541 MLOAD |
||||
542 DUP1 |
||||
543 SWAP2 |
||||
544 SUB |
||||
545 SWAP1 |
||||
546 RETURN |
||||
547 JUMPDEST |
||||
548 CALLVALUE |
||||
549 ISZERO |
||||
550 PUSH2 0x022e |
||||
553 JUMPI |
||||
554 PUSH1 0x00 |
||||
556 DUP1 |
||||
557 REVERT |
||||
558 JUMPDEST |
||||
559 PUSH2 0x0236 |
||||
562 PUSH2 0x0529 |
||||
565 JUMP |
||||
566 JUMPDEST |
||||
567 PUSH1 0x40 |
||||
569 MLOAD |
||||
570 DUP1 |
||||
571 DUP3 |
||||
572 DUP2 |
||||
573 MSTORE |
||||
574 PUSH1 0x20 |
||||
576 ADD |
||||
577 SWAP2 |
||||
578 POP |
||||
579 POP |
||||
580 PUSH1 0x40 |
||||
582 MLOAD |
||||
583 DUP1 |
||||
584 SWAP2 |
||||
585 SUB |
||||
586 SWAP1 |
||||
587 RETURN |
||||
588 JUMPDEST |
||||
589 CALLVALUE |
||||
590 ISZERO |
||||
591 PUSH2 0x0257 |
||||
594 JUMPI |
||||
595 PUSH1 0x00 |
||||
597 DUP1 |
||||
598 REVERT |
||||
599 JUMPDEST |
||||
600 PUSH2 0x026d |
||||
603 PUSH1 0x04 |
||||
605 DUP1 |
||||
606 DUP1 |
||||
607 CALLDATALOAD |
||||
608 SWAP1 |
||||
609 PUSH1 0x20 |
||||
611 ADD |
||||
612 SWAP1 |
||||
613 SWAP2 |
||||
614 SWAP1 |
||||
615 POP |
||||
616 POP |
||||
617 PUSH2 0x052e |
||||
620 JUMP |
||||
621 JUMPDEST |
||||
622 PUSH1 0x40 |
||||
624 MLOAD |
||||
625 DUP1 |
||||
626 DUP4 |
||||
627 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
648 AND |
||||
649 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
670 AND |
||||
671 DUP2 |
||||
672 MSTORE |
||||
673 PUSH1 0x20 |
||||
675 ADD |
||||
676 DUP3 |
||||
677 DUP2 |
||||
678 MSTORE |
||||
679 PUSH1 0x20 |
||||
681 ADD |
||||
682 SWAP3 |
||||
683 POP |
||||
684 POP |
||||
685 POP |
||||
686 PUSH1 0x40 |
||||
688 MLOAD |
||||
689 DUP1 |
||||
690 SWAP2 |
||||
691 SUB |
||||
692 SWAP1 |
||||
693 RETURN |
||||
694 JUMPDEST |
||||
695 CALLVALUE |
||||
696 ISZERO |
||||
697 PUSH2 0x02c1 |
||||
700 JUMPI |
||||
701 PUSH1 0x00 |
||||
703 DUP1 |
||||
704 REVERT |
||||
705 JUMPDEST |
||||
706 PUSH2 0x02c9 |
||||
709 PUSH2 0x0572 |
||||
712 JUMP |
||||
713 JUMPDEST |
||||
714 PUSH1 0x40 |
||||
716 MLOAD |
||||
717 DUP1 |
||||
718 DUP3 |
||||
719 DUP2 |
||||
720 MSTORE |
||||
721 PUSH1 0x20 |
||||
723 ADD |
||||
724 SWAP2 |
||||
725 POP |
||||
726 POP |
||||
727 PUSH1 0x40 |
||||
729 MLOAD |
||||
730 DUP1 |
||||
731 SWAP2 |
||||
732 SUB |
||||
733 SWAP1 |
||||
734 RETURN |
||||
735 JUMPDEST |
||||
736 CALLVALUE |
||||
737 ISZERO |
||||
738 PUSH2 0x02ea |
||||
741 JUMPI |
||||
742 PUSH1 0x00 |
||||
744 DUP1 |
||||
745 REVERT |
||||
746 JUMPDEST |
||||
747 PUSH2 0x02f2 |
||||
750 PUSH2 0x057e |
||||
753 JUMP |
||||
754 JUMPDEST |
||||
755 PUSH1 0x40 |
||||
757 MLOAD |
||||
758 DUP1 |
||||
759 DUP3 |
||||
760 DUP2 |
||||
761 MSTORE |
||||
762 PUSH1 0x20 |
||||
764 ADD |
||||
765 SWAP2 |
||||
766 POP |
||||
767 POP |
||||
768 PUSH1 0x40 |
||||
770 MLOAD |
||||
771 DUP1 |
||||
772 SWAP2 |
||||
773 SUB |
||||
774 SWAP1 |
||||
775 RETURN |
||||
776 JUMPDEST |
||||
777 PUSH1 0x00 |
||||
779 DUP1 |
||||
780 PUSH1 0x00 |
||||
782 DUP1 |
||||
783 PUSH1 0x00 |
||||
785 DUP1 |
||||
786 PUSH1 0x02 |
||||
788 PUSH1 0x00 |
||||
790 PUSH1 0x32 |
||||
792 COINBASE |
||||
793 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
814 AND |
||||
815 DUP2 |
||||
816 ISZERO |
||||
817 ISZERO |
||||
818 PUSH2 0x0337 |
||||
821 JUMPI |
||||
822 ASSERT_FAIL |
||||
823 JUMPDEST |
||||
824 MOD |
||||
825 DUP2 |
||||
826 MSTORE |
||||
827 PUSH1 0x20 |
||||
829 ADD |
||||
830 SWAP1 |
||||
831 DUP2 |
||||
832 MSTORE |
||||
833 PUSH1 0x20 |
||||
835 ADD |
||||
836 PUSH1 0x00 |
||||
838 SHA3 |
||||
839 PUSH1 0x00 |
||||
841 ADD |
||||
842 PUSH1 0x00 |
||||
844 SWAP1 |
||||
845 SLOAD |
||||
846 SWAP1 |
||||
847 PUSH2 0x0100 |
||||
850 EXP |
||||
851 SWAP1 |
||||
852 DIV |
||||
853 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
874 AND |
||||
875 SWAP6 |
||||
876 POP |
||||
877 PUSH1 0x02 |
||||
879 PUSH1 0x00 |
||||
881 PUSH1 0x32 |
||||
883 CALLER |
||||
884 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
905 AND |
||||
906 DUP2 |
||||
907 ISZERO |
||||
908 ISZERO |
||||
909 PUSH2 0x0392 |
||||
912 JUMPI |
||||
913 ASSERT_FAIL |
||||
914 JUMPDEST |
||||
915 MOD |
||||
916 DUP2 |
||||
917 MSTORE |
||||
918 PUSH1 0x20 |
||||
920 ADD |
||||
921 SWAP1 |
||||
922 DUP2 |
||||
923 MSTORE |
||||
924 PUSH1 0x20 |
||||
926 ADD |
||||
927 PUSH1 0x00 |
||||
929 SHA3 |
||||
930 PUSH1 0x00 |
||||
932 ADD |
||||
933 PUSH1 0x00 |
||||
935 SWAP1 |
||||
936 SLOAD |
||||
937 SWAP1 |
||||
938 PUSH2 0x0100 |
||||
941 EXP |
||||
942 SWAP1 |
||||
943 DIV |
||||
944 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
965 AND |
||||
966 SWAP5 |
||||
967 POP |
||||
968 DIFFICULTY |
||||
969 SWAP4 |
||||
970 POP |
||||
971 DUP6 |
||||
972 DUP6 |
||||
973 DUP6 |
||||
974 PUSH1 0x40 |
||||
976 MLOAD |
||||
977 DUP1 |
||||
978 DUP5 |
||||
979 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1000 AND |
||||
1001 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1022 AND |
||||
1023 PUSH13 0x01000000000000000000000000 |
||||
1037 MUL |
||||
1038 DUP2 |
||||
1039 MSTORE |
||||
1040 PUSH1 0x14 |
||||
1042 ADD |
||||
1043 DUP4 |
||||
1044 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1065 AND |
||||
1066 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1087 AND |
||||
1088 PUSH13 0x01000000000000000000000000 |
||||
1102 MUL |
||||
1103 DUP2 |
||||
1104 MSTORE |
||||
1105 PUSH1 0x14 |
||||
1107 ADD |
||||
1108 DUP3 |
||||
1109 DUP2 |
||||
1110 MSTORE |
||||
1111 PUSH1 0x20 |
||||
1113 ADD |
||||
1114 SWAP4 |
||||
1115 POP |
||||
1116 POP |
||||
1117 POP |
||||
1118 POP |
||||
1119 PUSH1 0x40 |
||||
1121 MLOAD |
||||
1122 DUP1 |
||||
1123 SWAP2 |
||||
1124 SUB |
||||
1125 SWAP1 |
||||
1126 SHA3 |
||||
1127 SWAP3 |
||||
1128 POP |
||||
1129 PUSH1 0x32 |
||||
1131 DUP4 |
||||
1132 PUSH1 0x01 |
||||
1134 SWAP1 |
||||
1135 DIV |
||||
1136 DUP2 |
||||
1137 ISZERO |
||||
1138 ISZERO |
||||
1139 PUSH2 0x0478 |
||||
1142 JUMPI |
||||
1143 ASSERT_FAIL |
||||
1144 JUMPDEST |
||||
1145 MOD |
||||
1146 SWAP2 |
||||
1147 POP |
||||
1148 PUSH1 0x02 |
||||
1150 PUSH1 0x00 |
||||
1152 DUP4 |
||||
1153 DUP2 |
||||
1154 MSTORE |
||||
1155 PUSH1 0x20 |
||||
1157 ADD |
||||
1158 SWAP1 |
||||
1159 DUP2 |
||||
1160 MSTORE |
||||
1161 PUSH1 0x20 |
||||
1163 ADD |
||||
1164 PUSH1 0x00 |
||||
1166 SHA3 |
||||
1167 PUSH1 0x00 |
||||
1169 ADD |
||||
1170 PUSH1 0x00 |
||||
1172 SWAP1 |
||||
1173 SLOAD |
||||
1174 SWAP1 |
||||
1175 PUSH2 0x0100 |
||||
1178 EXP |
||||
1179 SWAP1 |
||||
1180 DIV |
||||
1181 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1202 AND |
||||
1203 SWAP1 |
||||
1204 POP |
||||
1205 PUSH1 0x00 |
||||
1207 DUP1 |
||||
1208 DUP2 |
||||
1209 SLOAD |
||||
1210 DUP1 |
||||
1211 SWAP3 |
||||
1212 SWAP2 |
||||
1213 SWAP1 |
||||
1214 PUSH1 0x01 |
||||
1216 ADD |
||||
1217 SWAP2 |
||||
1218 SWAP1 |
||||
1219 POP |
||||
1220 SSTORE |
||||
1221 POP |
||||
1222 PUSH1 0x00 |
||||
1224 PUSH1 0x01 |
||||
1226 DUP2 |
||||
1227 SWAP1 |
||||
1228 SSTORE |
||||
1229 POP |
||||
1230 DUP1 |
||||
1231 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1252 AND |
||||
1253 PUSH2 0x08fc |
||||
1256 PUSH8 0x22b1c8c1227a0000 |
||||
1265 SWAP1 |
||||
1266 DUP2 |
||||
1267 ISZERO |
||||
1268 MUL |
||||
1269 SWAP1 |
||||
1270 PUSH1 0x40 |
||||
1272 MLOAD |
||||
1273 PUSH1 0x00 |
||||
1275 PUSH1 0x40 |
||||
1277 MLOAD |
||||
1278 DUP1 |
||||
1279 DUP4 |
||||
1280 SUB |
||||
1281 DUP2 |
||||
1282 DUP6 |
||||
1283 DUP9 |
||||
1284 DUP9 |
||||
1285 CALL |
||||
1286 SWAP4 |
||||
1287 POP |
||||
1288 POP |
||||
1289 POP |
||||
1290 POP |
||||
1291 ISZERO |
||||
1292 ISZERO |
||||
1293 PUSH2 0x0515 |
||||
1296 JUMPI |
||||
1297 PUSH1 0x00 |
||||
1299 DUP1 |
||||
1300 REVERT |
||||
1301 JUMPDEST |
||||
1302 POP |
||||
1303 POP |
||||
1304 POP |
||||
1305 POP |
||||
1306 POP |
||||
1307 POP |
||||
1308 JUMP |
||||
1309 JUMPDEST |
||||
1310 PUSH1 0x01 |
||||
1312 SLOAD |
||||
1313 DUP2 |
||||
1314 JUMP |
||||
1315 JUMPDEST |
||||
1316 PUSH1 0x00 |
||||
1318 SLOAD |
||||
1319 DUP2 |
||||
1320 JUMP |
||||
1321 JUMPDEST |
||||
1322 PUSH1 0x32 |
||||
1324 DUP2 |
||||
1325 JUMP |
||||
1326 JUMPDEST |
||||
1327 PUSH1 0x02 |
||||
1329 PUSH1 0x20 |
||||
1331 MSTORE |
||||
1332 DUP1 |
||||
1333 PUSH1 0x00 |
||||
1335 MSTORE |
||||
1336 PUSH1 0x40 |
||||
1338 PUSH1 0x00 |
||||
1340 SHA3 |
||||
1341 PUSH1 0x00 |
||||
1343 SWAP2 |
||||
1344 POP |
||||
1345 SWAP1 |
||||
1346 POP |
||||
1347 DUP1 |
||||
1348 PUSH1 0x00 |
||||
1350 ADD |
||||
1351 PUSH1 0x00 |
||||
1353 SWAP1 |
||||
1354 SLOAD |
||||
1355 SWAP1 |
||||
1356 PUSH2 0x0100 |
||||
1359 EXP |
||||
1360 SWAP1 |
||||
1361 DIV |
||||
1362 PUSH20 0xffffffffffffffffffffffffffffffffffffffff |
||||
1383 AND |
||||
1384 SWAP1 |
||||
1385 DUP1 |
||||
1386 PUSH1 0x01 |
||||
1388 ADD |
||||
1389 SLOAD |
||||
1390 SWAP1 |
||||
1391 POP |
||||
1392 DUP3 |
||||
1393 JUMP |
||||
1394 JUMPDEST |
||||
1395 PUSH8 0x22b1c8c1227a0000 |
||||
1404 DUP2 |
||||
1405 JUMP |
||||
1406 JUMPDEST |
||||
1407 PUSH1 0x32 |
||||
1409 PUSH8 0x22b1c8c1227a0000 |
||||
1418 DUP2 |
||||
1419 ISZERO |
||||
1420 ISZERO |
||||
1421 PUSH2 0x0592 |
||||
1424 JUMPI |
||||
1425 ASSERT_FAIL |
||||
1426 JUMPDEST |
||||
1427 DIV |
||||
1428 DUP2 |
||||
1429 JUMP |
||||
1430 STOP |
Loading…
Reference in new issue