Fix function names in CFG

pull/205/head
Bernhard Mueller 7 years ago
parent 1e2de07f46
commit 141fec3d11
  1. 5
      mythril/analysis/callgraph.py
  2. 3
      solidity_examples/ether_send.sol
  3. 3
      tests/testdata/input_contracts/ether_send.sol
  4. 2
      tests/testdata/inputs/ether_send.sol.o
  5. 716
      tests/testdata/outputs_expected/ether_send.sol.o.easm
  6. 4
      tests/testdata/outputs_expected/ether_send.sol.o.graph.html
  7. 4
      tests/testdata/outputs_expected/ether_send.sol.o.json
  8. 4
      tests/testdata/outputs_expected/ether_send.sol.o.markdown
  9. 4
      tests/testdata/outputs_expected/ether_send.sol.o.text

@ -1,6 +1,7 @@
import re
from jinja2 import Environment, PackageLoader, select_autoescape
from laser.ethereum.svm import NodeFlags
import z3
default_opts = {
@ -96,8 +97,8 @@ def extract_nodes(statespace, color_map):
for instruction in instructions:
if instruction['opcode'].startswith("PUSH"):
code_line = "%d %s %s" % (instruction['address'], instruction['opcode'], instruction['argument'])
elif instruction['opcode'].startswith("JUMPDEST"):
code_line = "%d %s" % (instruction['address'], node.function_name)
elif instruction['opcode'].startswith("JUMPDEST") and NodeFlags.FUNC_ENTRY in node.flags and instruction['address'] == node.start_addr:
code_line = node.function_name
else:
code_line = "%d %s" % (instruction['address'], instruction['opcode'])

@ -28,7 +28,4 @@ contract Crowdfunding {
return balances[msg.sender];
}
function() public payable {
invest();
}
}

@ -28,7 +28,4 @@ contract Crowdfunding {
return balances[msg.sender];
}
function() public payable {
invest();
}
}

@ -1 +1 @@
606060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312065fe01461008257806327e235e3146100ab57806356885cd8146100f85780636c343ffe1461010d5780638da5cb5b14610122578063e8b5e51f14610177575b610080610181565b005b341561008d57600080fd5b6100956101ec565b6040518082815260200191505060405180910390f35b34156100b657600080fd5b6100e2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610232565b6040518082815260200191505060405180910390f35b341561010357600080fd5b61010b61024a565b005b341561011857600080fd5b61012061028d565b005b341561012d57600080fd5b610135610342565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017f610181565b005b60025434118015610193575060035434105b151561019e57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006020528060005260406000206000915090505481565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156102e957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561034057600080fd5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820bbf8d45345e3ef7004b6445155bc5f20c8a6dc61dec2637ed9f5eb80f5b2ab0a0029
608060405260043610610078576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806312065fe01461007d57806327e235e3146100a857806356885cd8146100ff5780636c343ffe146101165780638da5cb5b1461012d578063e8b5e51f14610184575b600080fd5b34801561008957600080fd5b5061009261018e565b6040518082815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101d4565b6040518082815260200191505060405180910390f35b34801561010b57600080fd5b506101146101ec565b005b34801561012257600080fd5b5061012b61022f565b005b34801561013957600080fd5b506101426102eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61018c610311565b005b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006020528060005260406000206000915090505481565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561028b57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156102e8573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025434118015610323575060035434105b151561032e57600080fd5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505600a165627a7a72305820402df619c16e4325eb7830ed063880a283ac25dff982b6a5be67138df0c209550029

@ -1,4 +1,4 @@
0 PUSH1 0x60
0 PUSH1 0x80
2 PUSH1 0x40
4 MSTORE
5 PUSH1 0x04
@ -16,383 +16,405 @@
54 DUP1
55 PUSH4 0x12065fe0
60 EQ
61 PUSH2 0x0082
61 PUSH2 0x007d
64 JUMPI
65 DUP1
66 PUSH4 0x27e235e3
71 EQ
72 PUSH2 0x00ab
72 PUSH2 0x00a8
75 JUMPI
76 DUP1
77 PUSH4 0x56885cd8
82 EQ
83 PUSH2 0x00f8
83 PUSH2 0x00ff
86 JUMPI
87 DUP1
88 PUSH4 0x6c343ffe
93 EQ
94 PUSH2 0x010d
94 PUSH2 0x0116
97 JUMPI
98 DUP1
99 PUSH4 0x8da5cb5b
104 EQ
105 PUSH2 0x0122
105 PUSH2 0x012d
108 JUMPI
109 DUP1
110 PUSH4 0xe8b5e51f
115 EQ
116 PUSH2 0x0177
116 PUSH2 0x0184
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
121 PUSH1 0x00
123 DUP1
124 REVERT
125 JUMPDEST
126 CALLVALUE
127 DUP1
128 ISZERO
129 PUSH2 0x0089
132 JUMPI
133 PUSH1 0x00
135 DUP1
136 REVERT
137 JUMPDEST
138 POP
139 PUSH2 0x0092
142 PUSH2 0x018e
145 JUMP
146 JUMPDEST
147 PUSH1 0x40
149 MLOAD
150 DUP1
151 DUP3
152 DUP2
153 MSTORE
154 PUSH1 0x20
156 ADD
157 SWAP2
158 POP
159 POP
160 PUSH1 0x40
162 MLOAD
163 DUP1
164 SWAP2
165 SUB
166 SWAP1
167 RETURN
168 JUMPDEST
169 CALLVALUE
170 DUP1
171 ISZERO
172 PUSH2 0x00b4
175 JUMPI
176 PUSH1 0x00
178 DUP1
179 REVERT
180 JUMPDEST
181 POP
182 PUSH2 0x00e9
185 PUSH1 0x04
187 DUP1
188 CALLDATASIZE
189 SUB
190 DUP2
191 ADD
192 SWAP1
193 DUP1
194 DUP1
195 CALLDATALOAD
196 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
217 AND
218 SWAP1
219 PUSH1 0x20
221 ADD
222 SWAP1
223 SWAP3
224 SWAP2
225 SWAP1
226 POP
227 POP
228 POP
229 PUSH2 0x01d4
232 JUMP
233 JUMPDEST
234 PUSH1 0x40
236 MLOAD
237 DUP1
238 DUP3
239 DUP2
240 MSTORE
241 PUSH1 0x20
243 ADD
244 SWAP2
245 SUB
246 SWAP1
247 RETURN
248 JUMPDEST
249 CALLVALUE
250 ISZERO
251 PUSH2 0x0103
254 JUMPI
255 PUSH1 0x00
245 POP
246 POP
247 PUSH1 0x40
249 MLOAD
250 DUP1
251 SWAP2
252 SUB
253 SWAP1
254 RETURN
255 JUMPDEST
256 CALLVALUE
257 DUP1
258 REVERT
259 JUMPDEST
260 PUSH2 0x010b
263 PUSH2 0x024a
266 JUMP
258 ISZERO
259 PUSH2 0x010b
262 JUMPI
263 PUSH1 0x00
265 DUP1
266 REVERT
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
268 POP
269 PUSH2 0x0114
272 PUSH2 0x01ec
275 JUMP
276 JUMPDEST
277 STOP
278 JUMPDEST
279 CALLVALUE
280 DUP1
281 ISZERO
282 PUSH2 0x0122
285 JUMPI
286 PUSH1 0x00
288 DUP1
289 REVERT
290 JUMPDEST
291 CALLVALUE
292 ISZERO
293 PUSH2 0x012d
296 JUMPI
297 PUSH1 0x00
299 DUP1
300 REVERT
291 POP
292 PUSH2 0x012b
295 PUSH2 0x022f
298 JUMP
299 JUMPDEST
300 STOP
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
302 CALLVALUE
303 DUP1
304 ISZERO
305 PUSH2 0x0139
308 JUMPI
309 PUSH1 0x00
311 DUP1
312 REVERT
313 JUMPDEST
314 POP
315 PUSH2 0x0142
318 PUSH2 0x02eb
321 JUMP
322 JUMPDEST
323 PUSH1 0x40
325 MLOAD
326 DUP1
327 DUP3
328 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
349 AND
350 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
371 AND
372 DUP2
373 MSTORE
374 PUSH1 0x20
376 ADD
377 SWAP2
378 POP
379 POP
380 PUSH1 0x40
382 MLOAD
383 DUP1
384 SWAP2
385 SUB
386 SWAP1
387 RETURN
388 JUMPDEST
389 PUSH2 0x018c
392 PUSH2 0x0311
395 JUMP
396 JUMPDEST
397 STOP
398 JUMPDEST
399 PUSH1 0x00
401 DUP1
402 PUSH1 0x00
404 CALLER
405 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
426 AND
427 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
448 AND
449 DUP2
450 MSTORE
451 PUSH1 0x20
453 ADD
454 SWAP1
455 DUP2
456 MSTORE
457 PUSH1 0x20
459 ADD
460 PUSH1 0x00
462 SHA3
463 SLOAD
464 SWAP1
465 POP
466 SWAP1
467 JUMP
468 JUMPDEST
469 PUSH1 0x00
471 PUSH1 0x20
473 MSTORE
474 DUP1
475 PUSH1 0x00
477 SHA3
478 PUSH1 0x00
480 DUP3
481 DUP3
482 SLOAD
483 ADD
484 SWAP3
485 POP
477 MSTORE
478 PUSH1 0x40
480 PUSH1 0x00
482 SHA3
483 PUSH1 0x00
485 SWAP2
486 POP
487 DUP2
488 SWAP1
489 SSTORE
490 POP
487 SWAP1
488 POP
489 SLOAD
490 DUP2
491 JUMP
492 JUMPDEST
493 PUSH1 0x00
495 DUP1
493 CALLER
494 PUSH1 0x01
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
498 PUSH2 0x0100
501 EXP
502 DUP2
503 SLOAD
504 DUP2
505 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
526 MUL
527 NOT
528 AND
529 SWAP1
530 DUP4
531 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
552 AND
553 MUL
554 OR
555 SWAP1
556 SSTORE
557 POP
558 JUMP
559 JUMPDEST
560 PUSH1 0x01
562 PUSH1 0x00
564 SWAP1
565 SLOAD
566 SWAP1
567 PUSH2 0x0100
570 EXP
571 SWAP1
572 DIV
573 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
594 AND
595 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
616 AND
617 CALLER
618 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
639 AND
640 EQ
641 ISZERO
642 ISZERO
643 PUSH2 0x028b
646 JUMPI
647 PUSH1 0x00
649 DUP1
650 REVERT
651 JUMPDEST
652 CALLER
653 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
674 AND
675 PUSH2 0x08fc
678 ADDRESS
679 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
700 AND
701 BALANCE
702 SWAP1
703 DUP2
704 ISZERO
705 MUL
706 SWAP1
707 PUSH1 0x40
709 MLOAD
710 PUSH1 0x00
712 PUSH1 0x40
714 MLOAD
715 DUP1
716 DUP4
717 SUB
718 DUP2
719 DUP6
720 DUP9
721 DUP9
722 CALL
723 SWAP4
724 POP
725 POP
726 POP
727 POP
728 ISZERO
729 DUP1
730 ISZERO
731 PUSH2 0x02e8
734 JUMPI
735 RETURNDATASIZE
736 PUSH1 0x00
738 DUP1
739 RETURNDATACOPY
740 RETURNDATASIZE
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
743 REVERT
744 JUMPDEST
745 POP
746 JUMP
747 JUMPDEST
748 PUSH1 0x01
750 PUSH1 0x00
752 SWAP1
753 SLOAD
754 SWAP1
755 PUSH2 0x0100
758 EXP
759 SWAP1
760 DIV
761 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
782 AND
783 DUP2
784 JUMP
785 JUMPDEST
786 PUSH1 0x02
788 SLOAD
789 CALLVALUE
790 GT
791 DUP1
792 ISZERO
793 PUSH2 0x0323
796 JUMPI
797 POP
798 PUSH1 0x03
800 SLOAD
801 CALLVALUE
802 LT
803 JUMPDEST
804 ISZERO
805 ISZERO
806 PUSH2 0x032e
809 JUMPI
810 PUSH1 0x00
812 DUP1
813 REVERT
814 JUMPDEST
815 CALLVALUE
816 PUSH1 0x00
818 DUP1
819 CALLER
820 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
841 AND
842 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
863 AND
864 DUP2
865 MSTORE
866 PUSH1 0x20
868 ADD
869 SWAP1
870 DUP2
871 JUMP
872 STOP
871 MSTORE
872 PUSH1 0x20
874 ADD
875 PUSH1 0x00
877 SHA3
878 PUSH1 0x00
880 DUP3
881 DUP3
882 SLOAD
883 ADD
884 SWAP3
885 POP
886 POP
887 DUP2
888 SWAP1
889 SSTORE
890 POP
891 JUMP
892 STOP

File diff suppressed because one or more lines are too long

@ -7,7 +7,7 @@
"description": "In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.",
"function": "withdrawfunds()",
"type": "Warning",
"address": 816,
"address": 722,
"debug": "<DEBUG-DATA>"
},
{
@ -15,7 +15,7 @@
"description": "A possible integer overflow exists in the function `invest()`.\nThe addition or multiplication may result in a value higher than the maximum representable integer.",
"function": "invest()",
"type": "Warning",
"address": 483,
"address": 883,
"debug": "<DEBUG-DATA>"
}
]

@ -5,7 +5,7 @@
- Type: Warning
- Contract: Unknown
- Function name: `withdrawfunds()`
- PC address: 816
- PC address: 722
### Description
@ -18,7 +18,7 @@ There is a check on storage index 1. This storage slot can be written to by call
- Type: Warning
- Contract: Unknown
- Function name: `invest()`
- PC address: 483
- PC address: 883
### Description

@ -2,7 +2,7 @@
Type: Warning
Contract: Unknown
Function name: withdrawfunds()
PC address: 816
PC address: 722
In the function `withdrawfunds()` a non-zero amount of Ether is sent to msg.sender.
There is a check on storage index 1. This storage slot can be written to by calling the function `crowdfunding()`.
@ -12,7 +12,7 @@ There is a check on storage index 1. This storage slot can be written to by call
Type: Warning
Contract: Unknown
Function name: invest()
PC address: 483
PC address: 883
A possible integer overflow exists in the function `invest()`.
The addition or multiplication may result in a value higher than the maximum representable integer.
--------------------

Loading…
Cancel
Save