mirror of https://github.com/ConsenSys/mythril
Balance modelling and symbolic sender variables (#1025)
* add actor address to symbolic This will allow us to simulate semi-symbolic transaction senders * add value transfer to transaction global state creation * add proper balance tracking to world state and account * use address value vs string * disable actor address variable * use address directly * allow balance functions with int types * use value as getters since bitvecs aren't hashable * implement correct value transfer for suicide * use actor from actor pool * allow use of Or with *arg pattern * use bitvec instead of strings * add dynamic balance implementation to state datamodels * cleanup svm interface * use balance lambda in suicide op implementation * use bitvec instead of string address * update world state and account creation in symbolic * update tests to include overflow results * apply style rules * ignore previous open states for now * update native test to conform to new laser interface * fix incorrect types in the symbolic virtual machine * allow multiple types as input for address in account * fix type hint in symbolic.py * get int out of string in call * fix type in call op implementation * adapt test_transaction to conform to new laser interface * use static address to keep contracts from trying to enter themselves and make address type more dynamic * update evm test to conform to new laser interface * implement suicide to uncreated account * apply style rules * dynamically create colormap This removes the need for a globally maintained accountlist * get value out of address * add accounts getter * change symbolic test call to be valid with respect to the world state and account apis * remove dependency on globally recorded accounts * fix typing issues * fix type annotations in symbolic.py * fix remaining mypy warnings * simplify assertion check * execute lambda to get balance * make variable name plural * add documentation to svm constructor * use list comprehension to make code cleaner * remove comment * change variable name to plural * remove commented code * change variable name to conform to changed interfacepull/1039/head
parent
1a9d0cdd0e
commit
a9671de8a3
@ -1,36 +0,0 @@ |
|||||||
{ |
|
||||||
"error": null, |
|
||||||
"issues": [ |
|
||||||
{ |
|
||||||
"address": 158, |
|
||||||
"contract": "Unknown", |
|
||||||
"debug": "<DEBUG-DATA>", |
|
||||||
"description": "The arithmetic operation can result in integer overflow.\n", |
|
||||||
"function": "_function_0x83f12fec", |
|
||||||
"swc-id": "101", |
|
||||||
"title": "Integer Overflow", |
|
||||||
"type": "Warning" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"address": 278, |
|
||||||
"contract": "Unknown", |
|
||||||
"debug": "<DEBUG-DATA>", |
|
||||||
"description": "The arithmetic operation can result in integer overflow.\n", |
|
||||||
"function": "_function_0x83f12fec", |
|
||||||
"swc-id": "101", |
|
||||||
"title": "Integer Overflow", |
|
||||||
"type": "Warning" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"address": 378, |
|
||||||
"contract": "Unknown", |
|
||||||
"debug": "<DEBUG-DATA>", |
|
||||||
"description": "The substraction can result in an integer underflow.\n", |
|
||||||
"function": "_function_0x83f12fec", |
|
||||||
"swc-id": "101", |
|
||||||
"title": "Integer Underflow", |
|
||||||
"type": "Warning" |
|
||||||
} |
|
||||||
], |
|
||||||
"success": true |
|
||||||
} |
|
@ -1,34 +0,0 @@ |
|||||||
# Analysis results for test-filename.sol |
|
||||||
|
|
||||||
## Integer Overflow |
|
||||||
- SWC ID: 101 |
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x83f12fec` |
|
||||||
- PC address: 158 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The arithmetic operation can result in integer overflow. |
|
||||||
|
|
||||||
## Integer Overflow |
|
||||||
- SWC ID: 101 |
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x83f12fec` |
|
||||||
- PC address: 278 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The arithmetic operation can result in integer overflow. |
|
||||||
|
|
||||||
## Integer Underflow |
|
||||||
- SWC ID: 101 |
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x83f12fec` |
|
||||||
- PC address: 378 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The substraction can result in an integer underflow. |
|
@ -1,30 +0,0 @@ |
|||||||
==== Integer Overflow ==== |
|
||||||
SWC ID: 101 |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x83f12fec |
|
||||||
PC address: 158 |
|
||||||
The arithmetic operation can result in integer overflow. |
|
||||||
|
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Integer Overflow ==== |
|
||||||
SWC ID: 101 |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x83f12fec |
|
||||||
PC address: 278 |
|
||||||
The arithmetic operation can result in integer overflow. |
|
||||||
|
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Integer Underflow ==== |
|
||||||
SWC ID: 101 |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x83f12fec |
|
||||||
PC address: 378 |
|
||||||
The substraction can result in an integer underflow. |
|
||||||
|
|
||||||
-------------------- |
|
||||||
|
|
@ -1 +1,11 @@ |
|||||||
[{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x3746c7c2ae7b0d4c3f8b1905df9a7ea169b9f93bec68a10a00b4c9d27a18c6fb"], "sourceType": "raw-bytecode"}] |
[ |
||||||
|
{ |
||||||
|
"issues": [], |
||||||
|
"meta": {}, |
||||||
|
"sourceFormat": "evm-byzantium-bytecode", |
||||||
|
"sourceList": [ |
||||||
|
"0x3746c7c2ae7b0d4c3f8b1905df9a7ea169b9f93bec68a10a00b4c9d27a18c6fb" |
||||||
|
], |
||||||
|
"sourceType": "raw-bytecode" |
||||||
|
} |
||||||
|
] |
@ -1 +1,11 @@ |
|||||||
[{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x0e6f727bb3301e02d3be831bf34357522fd2f1d40e90dff8e2214553b06b5f6c"], "sourceType": "raw-bytecode"}] |
[ |
||||||
|
{ |
||||||
|
"issues": [], |
||||||
|
"meta": {}, |
||||||
|
"sourceFormat": "evm-byzantium-bytecode", |
||||||
|
"sourceList": [ |
||||||
|
"0x0e6f727bb3301e02d3be831bf34357522fd2f1d40e90dff8e2214553b06b5f6c" |
||||||
|
], |
||||||
|
"sourceType": "raw-bytecode" |
||||||
|
} |
||||||
|
] |
@ -1 +1,11 @@ |
|||||||
[{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x11a78eb09819f505ba4f10747e6d1f7a44480e602c67573b7abac2f733a85d93"], "sourceType": "raw-bytecode"}] |
[ |
||||||
|
{ |
||||||
|
"issues": [], |
||||||
|
"meta": {}, |
||||||
|
"sourceFormat": "evm-byzantium-bytecode", |
||||||
|
"sourceList": [ |
||||||
|
"0x11a78eb09819f505ba4f10747e6d1f7a44480e602c67573b7abac2f733a85d93" |
||||||
|
], |
||||||
|
"sourceType": "raw-bytecode" |
||||||
|
} |
||||||
|
] |
@ -1,166 +0,0 @@ |
|||||||
{ |
|
||||||
"success": true, |
|
||||||
"error": null, |
|
||||||
"issues": [ |
|
||||||
{ |
|
||||||
"title": "Ether send", |
|
||||||
"description": "In the function `_function_0x4229616d` a non-zero amount of Ether is sent to an address taken from storage slot 5.\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
|
||||||
"function": "_function_0x4229616d", |
|
||||||
"type": "Warning", |
|
||||||
"address": 1599, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Ether send", |
|
||||||
"description": "In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5.\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
|
||||||
"function": "_function_0xb4022950", |
|
||||||
"type": "Warning", |
|
||||||
"address": 1940, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Ether send", |
|
||||||
"description": "In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5.\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
|
||||||
"function": "_function_0xb4022950", |
|
||||||
"type": "Warning", |
|
||||||
"address": 2582, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Exception state", |
|
||||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
|
||||||
"function": "_function_0x57d4021b", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1653, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Exception state", |
|
||||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
|
||||||
"function": "_function_0x9dbc4f9b", |
|
||||||
"type": "Informational", |
|
||||||
"address": 2085, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "fallback", |
|
||||||
"type": "Informational", |
|
||||||
"address": 3111, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "fallback", |
|
||||||
"type": "Informational", |
|
||||||
"address": 3140, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "fallback", |
|
||||||
"type": "Informational", |
|
||||||
"address": 2950, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "fallback", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1268, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x09dfdc71", |
|
||||||
"type": "Informational", |
|
||||||
"address": 310, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x09dfdc71", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1316, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x253459e3", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1375, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x4229616d", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1511, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x57d4021b", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1679, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x6fbaaa1e", |
|
||||||
"type": "Informational", |
|
||||||
"address": 618, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x8a5fb3ca", |
|
||||||
"type": "Informational", |
|
||||||
"address": 805, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Invariant branch condition", |
|
||||||
"description": "Found a conditional jump which always follows the same branch", |
|
||||||
"function": "_function_0x9dbc4f9b", |
|
||||||
"type": "Informational", |
|
||||||
"address": 2187, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Unchecked CALL return value", |
|
||||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
|
||||||
"function": "_function_0x4229616d", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1599, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Unchecked CALL return value", |
|
||||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
|
||||||
"function": "_function_0xb4022950", |
|
||||||
"type": "Informational", |
|
||||||
"address": 1940, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Unchecked CALL return value", |
|
||||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
|
||||||
"function": "_function_0xb4022950", |
|
||||||
"type": "Informational", |
|
||||||
"address": 2582, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
} |
|
||||||
] |
|
||||||
} |
|
@ -1,238 +0,0 @@ |
|||||||
# Analysis results for test-filename.sol |
|
||||||
|
|
||||||
## Ether send |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x4229616d` |
|
||||||
- PC address: 1599 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
In the function `_function_0x4229616d` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
## Ether send |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xb4022950` |
|
||||||
- PC address: 1940 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
## Ether send |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xb4022950` |
|
||||||
- PC address: 2582 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
## Exception state |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x57d4021b` |
|
||||||
- PC address: 1653 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
|
|
||||||
## Exception state |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x9dbc4f9b` |
|
||||||
- PC address: 2085 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `fallback` |
|
||||||
- PC address: 3111 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `fallback` |
|
||||||
- PC address: 3140 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `fallback` |
|
||||||
- PC address: 2950 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `fallback` |
|
||||||
- PC address: 1268 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x09dfdc71` |
|
||||||
- PC address: 310 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x09dfdc71` |
|
||||||
- PC address: 1316 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x253459e3` |
|
||||||
- PC address: 1375 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x4229616d` |
|
||||||
- PC address: 1511 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x57d4021b` |
|
||||||
- PC address: 1679 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x6fbaaa1e` |
|
||||||
- PC address: 618 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x8a5fb3ca` |
|
||||||
- PC address: 805 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
|
|
||||||
## Tautology |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x9dbc4f9b` |
|
||||||
- PC address: 2187 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
|
|
||||||
## Unchecked CALL return value |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0x4229616d` |
|
||||||
- PC address: 1599 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
||||||
|
|
||||||
## Unchecked CALL return value |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xb4022950` |
|
||||||
- PC address: 1940 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
||||||
|
|
||||||
## Unchecked CALL return value |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xb4022950` |
|
||||||
- PC address: 2582 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
@ -1,177 +0,0 @@ |
|||||||
==== Ether send ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x4229616d |
|
||||||
PC address: 1599 |
|
||||||
In the function `_function_0x4229616d` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Ether send ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xb4022950 |
|
||||||
PC address: 1940 |
|
||||||
In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Ether send ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xb4022950 |
|
||||||
PC address: 2582 |
|
||||||
In the function `_function_0xb4022950` a non-zero amount of Ether is sent to an address taken from storage slot 5. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
|
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 5. This storage slot can be written to by calling the function `_function_0x67f809e9`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Exception state ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x57d4021b |
|
||||||
PC address: 1653 |
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Exception state ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x9dbc4f9b |
|
||||||
PC address: 2085 |
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: fallback |
|
||||||
PC address: 3111 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: fallback |
|
||||||
PC address: 3140 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: fallback |
|
||||||
PC address: 2950 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: fallback |
|
||||||
PC address: 1268 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x09dfdc71 |
|
||||||
PC address: 310 |
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x09dfdc71 |
|
||||||
PC address: 1316 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x253459e3 |
|
||||||
PC address: 1375 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x4229616d |
|
||||||
PC address: 1511 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x57d4021b |
|
||||||
PC address: 1679 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x6fbaaa1e |
|
||||||
PC address: 618 |
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x8a5fb3ca |
|
||||||
PC address: 805 |
|
||||||
Found a conditional jump which always follows the same branch, value: False |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Tautology ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x9dbc4f9b |
|
||||||
PC address: 2187 |
|
||||||
Found a conditional jump which always follows the same branch, value: True |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Unchecked CALL return value ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0x4229616d |
|
||||||
PC address: 1599 |
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Unchecked CALL return value ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xb4022950 |
|
||||||
PC address: 1940 |
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Unchecked CALL return value ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xb4022950 |
|
||||||
PC address: 2582 |
|
||||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
|
||||||
-------------------- |
|
||||||
|
|
@ -1,46 +0,0 @@ |
|||||||
{ |
|
||||||
"success": true, |
|
||||||
"error": null, |
|
||||||
"issues": [ |
|
||||||
{ |
|
||||||
"title": "Dependence on predictable environment variable", |
|
||||||
"description": "In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient:\n- block.coinbase\n", |
|
||||||
"function": "_function_0xe9874106", |
|
||||||
"type": "Warning", |
|
||||||
"address": 1285, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Ether send", |
|
||||||
"description": "In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0.\nThere is a check on storage index 0. This storage slot can be written to by calling the function `fallback`.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.\nThere is a check on storage index 1. This storage slot can be written to by calling the function `fallback`.", |
|
||||||
"function": "_function_0xe9874106", |
|
||||||
"type": "Warning", |
|
||||||
"address": 1285, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Exception state", |
|
||||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
|
||||||
"function": "fallback", |
|
||||||
"type": "Informational", |
|
||||||
"address": 356, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Exception state", |
|
||||||
"description": "A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. ", |
|
||||||
"function": "_function_0xe9874106", |
|
||||||
"type": "Informational", |
|
||||||
"address": 146, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"title": "Transaction order dependence", |
|
||||||
"description": "A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location", |
|
||||||
"function": "_function_0xe9874106", |
|
||||||
"type": "Warning", |
|
||||||
"address": 1285, |
|
||||||
"debug": "<DEBUG-DATA>" |
|
||||||
} |
|
||||||
] |
|
||||||
} |
|
@ -1,62 +0,0 @@ |
|||||||
# Analysis results for test-filename.sol |
|
||||||
|
|
||||||
## Dependence on predictable environment variable |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xe9874106` |
|
||||||
- PC address: 1285 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient: |
|
||||||
- block.coinbase |
|
||||||
|
|
||||||
|
|
||||||
## Ether send |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xe9874106` |
|
||||||
- PC address: 1285 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0. |
|
||||||
There is a check on storage index 0. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
## Exception state |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `fallback` |
|
||||||
- PC address: 356 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
|
|
||||||
## Exception state |
|
||||||
|
|
||||||
- Type: Informational |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xe9874106` |
|
||||||
- PC address: 146 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
|
|
||||||
## Transaction order dependence |
|
||||||
|
|
||||||
- Type: Warning |
|
||||||
- Contract: Unknown |
|
||||||
- Function name: `_function_0xe9874106` |
|
||||||
- PC address: 1285 |
|
||||||
|
|
||||||
### Description |
|
||||||
|
|
||||||
A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location |
|
@ -1,46 +0,0 @@ |
|||||||
==== Dependence on predictable environment variable ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xe9874106 |
|
||||||
PC address: 1285 |
|
||||||
In the function `_function_0xe9874106` the following predictable state variables are used to determine Ether recipient: |
|
||||||
- block.coinbase |
|
||||||
|
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Ether send ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xe9874106 |
|
||||||
PC address: 1285 |
|
||||||
In the function `_function_0xe9874106` a non-zero amount of Ether is sent to an address taken from storage slot 0. |
|
||||||
There is a check on storage index 0. This storage slot can be written to by calling the function `fallback`. |
|
||||||
|
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
There is a check on storage index 1. This storage slot can be written to by calling the function `fallback`. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Exception state ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: fallback |
|
||||||
PC address: 356 |
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Exception state ==== |
|
||||||
Type: Informational |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xe9874106 |
|
||||||
PC address: 146 |
|
||||||
A reachable exception (opcode 0xfe) has been detected. This can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. This is acceptable in most situations. Note however that `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
|
||||||
-------------------- |
|
||||||
|
|
||||||
==== Transaction order dependence ==== |
|
||||||
Type: Warning |
|
||||||
Contract: Unknown |
|
||||||
Function name: _function_0xe9874106 |
|
||||||
PC address: 1285 |
|
||||||
A possible transaction order independence vulnerability exists in function _function_0xe9874106. The value or direction of the call statement is determined from a tainted storage location |
|
||||||
-------------------- |
|
||||||
|
|
Loading…
Reference in new issue