use several example solidity files to test disassembler

pull/99/head
freewind 7 years ago
parent ce41bfb739
commit b08090c3a5
  1. 1
      .gitignore
  2. 24
      tests/disassembler_test.py
  3. 10
      tests/ether/asm_test.py
  4. 36
      tests/testdata/calls.sol
  5. 400
      tests/testdata/calls.sol.easm
  6. 34
      tests/testdata/ether_send.sol
  7. 398
      tests/testdata/ether_send.sol.easm
  8. 43
      tests/testdata/exceptions.sol
  9. 392
      tests/testdata/exceptions.sol.easm
  10. 253
      tests/testdata/metacoin.sol.easm
  11. 17
      tests/testdata/multi_contracts.sol
  12. 77
      tests/testdata/multi_contracts.sol.easm
  13. 35
      tests/testdata/origin.sol
  14. 168
      tests/testdata/origin.sol.easm
  15. 13
      tests/testdata/returnvalue.sol
  16. 129
      tests/testdata/returnvalue.sol.easm
  17. 152
      tests/testdata/rubixi.sol
  18. 2141
      tests/testdata/rubixi.sol.easm
  19. 7
      tests/testdata/suicide.sol
  20. 58
      tests/testdata/suicide.sol.easm
  21. 20
      tests/testdata/underflow.sol
  22. 365
      tests/testdata/underflow.sol.easm
  23. 49
      tests/testdata/weak_random.sol
  24. 760
      tests/testdata/weak_random.sol.easm

1
.gitignore vendored

@ -2,7 +2,6 @@
.python-version
__pycache__
*.pyc
*.easm
*.asm
mythril.egg-info
build

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…
Cancel
Save