mirror of https://github.com/ConsenSys/mythril
constantinope-reentrancy-check
commit
a175d268cb
@ -0,0 +1,47 @@ |
||||
from mythril.solidity.soliditycontract import SolidityContract |
||||
from mythril.ethereum.evmcontract import EVMContract |
||||
|
||||
|
||||
class Source: |
||||
"""Class to handle to source data""" |
||||
|
||||
def __init__( |
||||
self, source_type=None, source_format=None, source_list=None, meta=None |
||||
): |
||||
""" |
||||
:param source_type: whether it is a solidity-file or evm-bytecode |
||||
:param source_format: whether it is bytecode, ethereum-address or text |
||||
:param source_list: List of files |
||||
:param meta: meta data |
||||
""" |
||||
self.source_type = source_type |
||||
self.source_format = source_format |
||||
self.source_list = source_list or [] |
||||
self.meta = meta |
||||
|
||||
def get_source_from_contracts_list(self, contracts): |
||||
""" |
||||
get the source data from the contracts list |
||||
:param contracts: the list of contracts |
||||
:return: |
||||
""" |
||||
if contracts is None or len(contracts) == 0: |
||||
return |
||||
if isinstance(contracts[0], SolidityContract): |
||||
self.source_type = "solidity-file" |
||||
self.source_format = "text" |
||||
for contract in contracts: |
||||
self.source_list += [file.filename for file in contract.solidity_files] |
||||
elif isinstance(contracts[0], EVMContract): |
||||
self.source_format = "evm-byzantium-bytecode" |
||||
self.source_type = ( |
||||
"raw-bytecode" if contracts[0].name == "MAIN" else "ethereum-address" |
||||
) |
||||
for contract in contracts: |
||||
if contract.creation_code: |
||||
self.source_list.append(contract.creation_bytecode_hash) |
||||
if contract.code: |
||||
self.source_list.append(contract.bytecode_hash) |
||||
|
||||
else: |
||||
assert False # Fail hard |
@ -1,102 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 661, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable.", |
||||
"function": "thisisfine()", |
||||
"max_gas_used": 1254, |
||||
"min_gas_used": 643, |
||||
"swc-id": "107", |
||||
"title": "External call", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 661, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "thisisfine()", |
||||
"max_gas_used": 35972, |
||||
"min_gas_used": 1361, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 779, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable.", |
||||
"function": "callstoredaddress()", |
||||
"max_gas_used": 1298, |
||||
"min_gas_used": 687, |
||||
"swc-id": "107", |
||||
"title": "External call", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 779, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "callstoredaddress()", |
||||
"max_gas_used": 36016, |
||||
"min_gas_used": 1405, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 858, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable.", |
||||
"function": "reentrancy()", |
||||
"max_gas_used": 1320, |
||||
"min_gas_used": 709, |
||||
"swc-id": "107", |
||||
"title": "External call", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 858, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "reentrancy()", |
||||
"max_gas_used": 61052, |
||||
"min_gas_used": 6441, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 912, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call with high gas to a user-supplied address. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent unanticipated effects on the contract state.", |
||||
"function": "calluseraddress(address)", |
||||
"max_gas_used": 616, |
||||
"min_gas_used": 335, |
||||
"swc-id": "107", |
||||
"title": "External call to user-supplied address", |
||||
"type": "Warning" |
||||
}, |
||||
{ |
||||
"address": 912, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "calluseraddress(address)", |
||||
"max_gas_used": 35336, |
||||
"min_gas_used": 1055, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 661, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract executes an external message call.\nAn external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully.", "function": "thisisfine()", "max_gas_used": 1254, "min_gas_used": 643, "severity": "Low", "sourceMap": null, "swc-id": "107", "title": "External Call To Fixed Address"}, {"address": 661, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "thisisfine()", "max_gas_used": 35972, "min_gas_used": 1361, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract executes an external message call.\nAn external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully.", "function": "callstoredaddress()", "max_gas_used": 1298, "min_gas_used": 687, "severity": "Low", "sourceMap": null, "swc-id": "107", "title": "External Call To Fixed Address"}, {"address": 779, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "callstoredaddress()", "max_gas_used": 36016, "min_gas_used": 1405, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}, {"address": 858, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract executes an external message call.\nAn external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully.", "function": "reentrancy()", "max_gas_used": 1320, "min_gas_used": 709, "severity": "Low", "sourceMap": null, "swc-id": "107", "title": "External Call To Fixed Address"}, {"address": 858, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "reentrancy()", "max_gas_used": 61052, "min_gas_used": 6441, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}, {"address": 912, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state.", "function": "calluseraddress(address)", "max_gas_used": 616, "min_gas_used": 335, "severity": "Medium", "sourceMap": null, "swc-id": "107", "title": "External Call To User-Supplied Address"}, {"address": 912, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "calluseraddress(address)", "max_gas_used": 35336, "min_gas_used": 1055, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "The contract executes an external message call.", "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."}, "extra": {}, "locations": [{"sourceMap": "661:1:0"}], "severity": "Low", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The contract executes an external message call.", "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."}, "extra": {}, "locations": [{"sourceMap": "779:1:0"}], "severity": "Low", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The contract executes an external message call.", "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."}, "extra": {}, "locations": [{"sourceMap": "858:1:0"}], "severity": "Low", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "A call to a user-supplied address is executed.", "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state."}, "extra": {}, "locations": [{"sourceMap": "912:1:0"}], "severity": "Medium", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "661:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "779:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "858:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "912:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x7cbb77986c6b1bf6e945cd3fba06d3ea3d28cfc49cdfdc9571ec30703ac5862f"], "sourceType": "raw-bytecode"} |
@ -1,80 +1,88 @@ |
||||
==== External call ==== |
||||
==== External Call To Fixed Address ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: thisisfine() |
||||
PC address: 661 |
||||
Estimated Gas Usage: 643 - 1254 |
||||
The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable. |
||||
The contract executes an external message call. |
||||
An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: thisisfine() |
||||
PC address: 661 |
||||
Estimated Gas Usage: 1361 - 35972 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
==== External call ==== |
||||
==== External Call To Fixed Address ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: callstoredaddress() |
||||
PC address: 779 |
||||
Estimated Gas Usage: 687 - 1298 |
||||
The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable. |
||||
The contract executes an external message call. |
||||
An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: callstoredaddress() |
||||
PC address: 779 |
||||
Estimated Gas Usage: 1405 - 36016 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
==== External call ==== |
||||
==== External Call To Fixed Address ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: reentrancy() |
||||
PC address: 858 |
||||
Estimated Gas Usage: 709 - 1320 |
||||
The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable. |
||||
The contract executes an external message call. |
||||
An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: reentrancy() |
||||
PC address: 858 |
||||
Estimated Gas Usage: 6441 - 61052 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
==== External call to user-supplied address ==== |
||||
==== External Call To User-Supplied Address ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Severity: Medium |
||||
Contract: Unknown |
||||
Function name: calluseraddress(address) |
||||
PC address: 912 |
||||
Estimated Gas Usage: 335 - 616 |
||||
The contract executes a function call with high gas to a user-supplied address. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent unanticipated effects on the contract state. |
||||
A call to a user-supplied address is executed. |
||||
The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: calluseraddress(address) |
||||
PC address: 912 |
||||
Estimated Gas Usage: 1055 - 35336 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
|
@ -1,5 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": [], "sourceType": "raw-bytecode"} |
@ -1,54 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 446, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", |
||||
"function": "assert3(uint256)", |
||||
"max_gas_used": 301, |
||||
"min_gas_used": 206, |
||||
"swc-id": "110", |
||||
"title": "Exception state", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 484, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", |
||||
"function": "arrayaccess(uint256)", |
||||
"max_gas_used": 351, |
||||
"min_gas_used": 256, |
||||
"swc-id": "110", |
||||
"title": "Exception state", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 506, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", |
||||
"function": "divisionby0(uint256)", |
||||
"max_gas_used": 367, |
||||
"min_gas_used": 272, |
||||
"swc-id": "110", |
||||
"title": "Exception state", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 531, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", |
||||
"function": "assert1()", |
||||
"max_gas_used": 363, |
||||
"min_gas_used": 268, |
||||
"swc-id": "110", |
||||
"title": "Exception state", |
||||
"type": "Informational" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 446, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A reachable exception has been detected.\nIt is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", "function": "assert3(uint256)", "max_gas_used": 301, "min_gas_used": 206, "severity": "Low", "sourceMap": null, "swc-id": "110", "title": "Exception State"}, {"address": 484, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A reachable exception has been detected.\nIt is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", "function": "arrayaccess(uint256)", "max_gas_used": 351, "min_gas_used": 256, "severity": "Low", "sourceMap": null, "swc-id": "110", "title": "Exception State"}, {"address": 506, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A reachable exception has been detected.\nIt is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", "function": "divisionby0(uint256)", "max_gas_used": 367, "min_gas_used": 272, "severity": "Low", "sourceMap": null, "swc-id": "110", "title": "Exception State"}, {"address": 531, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A reachable exception has been detected.\nIt is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking.", "function": "assert1()", "max_gas_used": 363, "min_gas_used": 268, "severity": "Low", "sourceMap": null, "swc-id": "110", "title": "Exception State"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "A reachable exception has been detected.", "tail": "It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking."}, "extra": {}, "locations": [{"sourceMap": "446:1:0"}], "severity": "Low", "swcID": "SWC-110", "swcTitle": "Assert Violation"}, {"description": {"head": "A reachable exception has been detected.", "tail": "It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking."}, "extra": {}, "locations": [{"sourceMap": "484:1:0"}], "severity": "Low", "swcID": "SWC-110", "swcTitle": "Assert Violation"}, {"description": {"head": "A reachable exception has been detected.", "tail": "It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking."}, "extra": {}, "locations": [{"sourceMap": "506:1:0"}], "severity": "Low", "swcID": "SWC-110", "swcTitle": "Assert Violation"}, {"description": {"head": "A reachable exception has been detected.", "tail": "It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking."}, "extra": {}, "locations": [{"sourceMap": "531:1:0"}], "severity": "Low", "swcID": "SWC-110", "swcTitle": "Assert Violation"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x4a773a86bc6fb269f88bf09bb3094de29b6073cf13b1760e9d01d957f50a9dfd"], "sourceType": "raw-bytecode"} |
@ -1,40 +1,44 @@ |
||||
==== Exception state ==== |
||||
==== Exception State ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: assert3(uint256) |
||||
PC address: 446 |
||||
Estimated Gas Usage: 206 - 301 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
A reachable exception has been detected. |
||||
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
==== Exception State ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: arrayaccess(uint256) |
||||
PC address: 484 |
||||
Estimated Gas Usage: 256 - 351 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
A reachable exception has been detected. |
||||
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
==== Exception State ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: divisionby0(uint256) |
||||
PC address: 506 |
||||
Estimated Gas Usage: 272 - 367 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
A reachable exception has been detected. |
||||
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
==== Exception state ==== |
||||
==== Exception State ==== |
||||
SWC ID: 110 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: assert1() |
||||
PC address: 531 |
||||
Estimated Gas Usage: 268 - 363 |
||||
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. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
A reachable exception has been detected. |
||||
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit `assert()` should only be used to check invariants. Use `require()` for regular input checking. |
||||
-------------------- |
||||
|
||||
|
@ -1,66 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 618, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "_function_0x141f32ff", |
||||
"max_gas_used": 35865, |
||||
"min_gas_used": 1113, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 618, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The function `_function_0x141f32ff` uses callcode. Callcode does not persist sender or value over the call. Use delegatecall instead.", |
||||
"function": "_function_0x141f32ff", |
||||
"max_gas_used": 1141, |
||||
"min_gas_used": 389, |
||||
"swc-id": "111", |
||||
"title": "Use of callcode", |
||||
"type": "Warning" |
||||
}, |
||||
{ |
||||
"address": 849, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "_function_0x9b58bc26", |
||||
"max_gas_used": 35922, |
||||
"min_gas_used": 1170, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 1038, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call with high gas to a user-supplied address. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent unanticipated effects on the contract state.", |
||||
"function": "_function_0xeea4c864", |
||||
"max_gas_used": 1223, |
||||
"min_gas_used": 471, |
||||
"swc-id": "107", |
||||
"title": "External call to user-supplied address", |
||||
"type": "Warning" |
||||
}, |
||||
{ |
||||
"address": 1038, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "_function_0xeea4c864", |
||||
"max_gas_used": 35947, |
||||
"min_gas_used": 1195, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 618, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "_function_0x141f32ff", "max_gas_used": 35865, "min_gas_used": 1113, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}, {"address": 618, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "Use of callcode is deprecated.\nThe callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead.", "function": "_function_0x141f32ff", "max_gas_used": 1141, "min_gas_used": 389, "severity": "Medium", "sourceMap": null, "swc-id": "111", "title": "Use of callcode"}, {"address": 849, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "_function_0x9b58bc26", "max_gas_used": 35922, "min_gas_used": 1170, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}, {"address": 1038, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "A call to a user-supplied address is executed.\nThe callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state.", "function": "_function_0xeea4c864", "max_gas_used": 1223, "min_gas_used": 471, "severity": "Medium", "sourceMap": null, "swc-id": "107", "title": "External Call To User-Supplied Address"}, {"address": 1038, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "_function_0xeea4c864", "max_gas_used": 35947, "min_gas_used": 1195, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "Use of callcode is deprecated.", "tail": "The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead."}, "extra": {}, "locations": [{"sourceMap": "618:1:0"}], "severity": "Medium", "swcID": "SWC-111", "swcTitle": "Use of Deprecated Solidity Functions"}, {"description": {"head": "A call to a user-supplied address is executed.", "tail": "The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state."}, "extra": {}, "locations": [{"sourceMap": "1038:1:0"}], "severity": "Medium", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "618:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "849:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "1038:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x6daec61d05d8f1210661e7e7d1ed6d72bd6ade639398fac1e867aff50abfc1c1"], "sourceType": "raw-bytecode"} |
@ -1,50 +1,55 @@ |
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: _function_0x141f32ff |
||||
PC address: 618 |
||||
Estimated Gas Usage: 1113 - 35865 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
==== Use of callcode ==== |
||||
SWC ID: 111 |
||||
Type: Warning |
||||
Severity: Medium |
||||
Contract: Unknown |
||||
Function name: _function_0x141f32ff |
||||
PC address: 618 |
||||
Estimated Gas Usage: 389 - 1141 |
||||
The function `_function_0x141f32ff` uses callcode. Callcode does not persist sender or value over the call. Use delegatecall instead. |
||||
Use of callcode is deprecated. |
||||
The callcode method executes code of another contract in the context of the caller account. Due to a bug in the implementation it does not persist sender and value over the call. It was therefore deprecated and may be removed in the future. Use the delegatecall method instead. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: _function_0x9b58bc26 |
||||
PC address: 849 |
||||
Estimated Gas Usage: 1170 - 35922 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
==== External call to user-supplied address ==== |
||||
==== External Call To User-Supplied Address ==== |
||||
SWC ID: 107 |
||||
Type: Warning |
||||
Severity: Medium |
||||
Contract: Unknown |
||||
Function name: _function_0xeea4c864 |
||||
PC address: 1038 |
||||
Estimated Gas Usage: 471 - 1223 |
||||
The contract executes a function call with high gas to a user-supplied address. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent unanticipated effects on the contract state. |
||||
A call to a user-supplied address is executed. |
||||
The callee address of an external message call can be set by the caller. Note that the callee can contain arbitrary code and may re-enter any function in this contract. Review the business logic carefully to prevent averse effects on thecontract state. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: _function_0xeea4c864 |
||||
PC address: 1038 |
||||
Estimated Gas Usage: 1195 - 35947 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
|
@ -1,5 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": [], "sourceType": "raw-bytecode"} |
@ -1,18 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 142, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "Arbitrary senders other than the contract creator can withdraw ETH from the contract account without previously having sent an equivalent amount of ETH to it. This is likely to be a vulnerability.", |
||||
"function": "transfer()", |
||||
"max_gas_used": 467, |
||||
"min_gas_used": 186, |
||||
"swc-id": "105", |
||||
"title": "Ether thief", |
||||
"type": "Warning" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 142, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "Anyone can withdraw ETH from the contract account.\nArbitrary senders other than the contract creator can withdraw ETH from the contract account without previously having sent an equivalent amount of ETH to it. This is likely to be a vulnerability.", "function": "transfer()", "max_gas_used": 467, "min_gas_used": 186, "severity": "High", "sourceMap": null, "swc-id": "105", "title": "Unprotected Ether Withdrawal"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "Anyone can withdraw ETH from the contract account.", "tail": "Arbitrary senders other than the contract creator can withdraw ETH from the contract account without previously having sent an equivalent amount of ETH to it. This is likely to be a vulnerability."}, "extra": {}, "locations": [{"sourceMap": "142:1:0"}], "severity": "High", "swcID": "SWC-105", "swcTitle": "Unprotected Ether Withdrawal"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0xbc9c3d9db56d20cf4ca3b6fd88ff9215cf728a092cca1ed8edb83272b933ff5b"], "sourceType": "raw-bytecode"} |
@ -1,10 +1,11 @@ |
||||
==== Ether thief ==== |
||||
==== Unprotected Ether Withdrawal ==== |
||||
SWC ID: 105 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: transfer() |
||||
PC address: 142 |
||||
Estimated Gas Usage: 186 - 467 |
||||
Anyone can withdraw ETH from the contract account. |
||||
Arbitrary senders other than the contract creator can withdraw ETH from the contract account without previously having sent an equivalent amount of ETH to it. This is likely to be a vulnerability. |
||||
-------------------- |
||||
|
||||
|
@ -1,5 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": [], "sourceType": "raw-bytecode"} |
@ -1,18 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 317, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The function `transferOwnership(address)` retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use msg.sender instead.\nSee also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin", |
||||
"function": "transferOwnership(address)", |
||||
"max_gas_used": 1051, |
||||
"min_gas_used": 626, |
||||
"swc-id": "111", |
||||
"title": "Use of tx.origin", |
||||
"type": "Warning" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 317, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "Use of tx.origin is deprecated.\nThe smart contract retrieves the transaction origin (tx.origin) using msg.origin. Use of msg.origin is deprecated and the instruction may be removed in the future. Use msg.sender instead.\nSee also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin", "function": "transferOwnership(address)", "max_gas_used": 1051, "min_gas_used": 626, "severity": "Medium", "sourceMap": null, "swc-id": "111", "title": "Use of tx.origin"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "Use of tx.origin is deprecated.", "tail": "The smart contract retrieves the transaction origin (tx.origin) using msg.origin. Use of msg.origin is deprecated and the instruction may be removed in the future. Use msg.sender instead.\nSee also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin"}, "extra": {}, "locations": [{"sourceMap": "317:1:0"}], "severity": "Medium", "swcID": "SWC-111", "swcTitle": "Use of Deprecated Solidity Functions"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x25b20ef097dfc0aa56a932c4e09f06ee02a69c005767df86877f48c6c2412f03"], "sourceType": "raw-bytecode"} |
@ -1,11 +1,12 @@ |
||||
==== Use of tx.origin ==== |
||||
SWC ID: 111 |
||||
Type: Warning |
||||
Severity: Medium |
||||
Contract: Unknown |
||||
Function name: transferOwnership(address) |
||||
PC address: 317 |
||||
Estimated Gas Usage: 626 - 1051 |
||||
The function `transferOwnership(address)` retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use msg.sender instead. |
||||
Use of tx.origin is deprecated. |
||||
The smart contract retrieves the transaction origin (tx.origin) using msg.origin. Use of msg.origin is deprecated and the instruction may be removed in the future. Use msg.sender instead. |
||||
See also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin |
||||
-------------------- |
||||
|
||||
|
@ -0,0 +1,40 @@ |
||||
{ |
||||
"issues": [ |
||||
{ |
||||
"description": { |
||||
"head": "The binary subtraction can underflow.", |
||||
"tail": "The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion." |
||||
}, |
||||
"extra": {}, |
||||
"locations": [ |
||||
{ |
||||
"sourceMap": "567:1:0" |
||||
} |
||||
], |
||||
"severity": "High", |
||||
"swcID": "SWC-101", |
||||
"swcTitle": "Integer Overflow and Underflow" |
||||
}, |
||||
{ |
||||
"description": { |
||||
"head": "The binary subtraction can underflow.", |
||||
"tail": "The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion." |
||||
}, |
||||
"extra": {}, |
||||
"locations": [ |
||||
{ |
||||
"sourceMap": "649:1:0" |
||||
} |
||||
], |
||||
"severity": "High", |
||||
"swcID": "SWC-101", |
||||
"swcTitle": "Integer Overflow and Underflow" |
||||
} |
||||
], |
||||
"meta": {}, |
||||
"sourceFormat": "evm-byzantium-bytecode", |
||||
"sourceList": [ |
||||
"0xf230bec502569e8b7e7737616d0ad0f200c436624e3c223e5398c0615cd2d6b9" |
||||
], |
||||
"sourceType": "raw-bytecode" |
||||
} |
@ -1,22 +1,22 @@ |
||||
==== Integer Underflow ==== |
||||
SWC ID: 101 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: sendeth(address,uint256) |
||||
PC address: 567 |
||||
Estimated Gas Usage: 1299 - 1774 |
||||
This binary subtraction operation can result in integer underflow. |
||||
|
||||
Estimated Gas Usage: 768 - 1053 |
||||
The binary subtraction can underflow. |
||||
The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion. |
||||
-------------------- |
||||
|
||||
==== Integer Underflow ==== |
||||
SWC ID: 101 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: sendeth(address,uint256) |
||||
PC address: 649 |
||||
Estimated Gas Usage: 1299 - 1774 |
||||
This binary subtraction operation can result in integer underflow. |
||||
|
||||
The binary subtraction can underflow. |
||||
The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion. |
||||
-------------------- |
||||
|
||||
|
@ -1,42 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 196, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable.", |
||||
"function": "callchecked()", |
||||
"max_gas_used": 1210, |
||||
"min_gas_used": 599, |
||||
"swc-id": "107", |
||||
"title": "External call", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 285, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable.", |
||||
"function": "callnotchecked()", |
||||
"max_gas_used": 1232, |
||||
"min_gas_used": 621, |
||||
"swc-id": "107", |
||||
"title": "External call", |
||||
"type": "Informational" |
||||
}, |
||||
{ |
||||
"address": 285, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "The return value of an external call is not checked. Note that execution continue even if the called contract throws.", |
||||
"function": "callnotchecked()", |
||||
"max_gas_used": 35950, |
||||
"min_gas_used": 1339, |
||||
"swc-id": "104", |
||||
"title": "Unchecked CALL return value", |
||||
"type": "Informational" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 196, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract executes an external message call.\nAn external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully.", "function": "callchecked()", "max_gas_used": 1210, "min_gas_used": 599, "severity": "Low", "sourceMap": null, "swc-id": "107", "title": "External Call To Fixed Address"}, {"address": 285, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract executes an external message call.\nAn external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully.", "function": "callnotchecked()", "max_gas_used": 1232, "min_gas_used": 621, "severity": "Low", "sourceMap": null, "swc-id": "107", "title": "External Call To Fixed Address"}, {"address": 285, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The return value of a message call is not checked.\nExternal calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states.", "function": "callnotchecked()", "max_gas_used": 35950, "min_gas_used": 1339, "severity": "Low", "sourceMap": null, "swc-id": "104", "title": "Unchecked Call Return Value"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "The contract executes an external message call.", "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."}, "extra": {}, "locations": [{"sourceMap": "196:1:0"}], "severity": "Low", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The contract executes an external message call.", "tail": "An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully."}, "extra": {}, "locations": [{"sourceMap": "285:1:0"}], "severity": "Low", "swcID": "SWC-107", "swcTitle": "Reentrancy"}, {"description": {"head": "The return value of a message call is not checked.", "tail": "External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states."}, "extra": {}, "locations": [{"sourceMap": "285:1:0"}], "severity": "Low", "swcID": "SWC-104", "swcTitle": "Unchecked Call Return Value"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0xb191cf6cc0d8cc37a91c9d88019cc011b932169fb5776df616e2bb9cd93b4039"], "sourceType": "raw-bytecode"} |
@ -1,30 +1,33 @@ |
||||
==== External call ==== |
||||
==== External Call To Fixed Address ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: callchecked() |
||||
PC address: 196 |
||||
Estimated Gas Usage: 599 - 1210 |
||||
The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable. |
||||
The contract executes an external message call. |
||||
An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully. |
||||
-------------------- |
||||
|
||||
==== External call ==== |
||||
==== External Call To Fixed Address ==== |
||||
SWC ID: 107 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: callnotchecked() |
||||
PC address: 285 |
||||
Estimated Gas Usage: 621 - 1232 |
||||
The contract executes a function call to an external address. Verify that the code at this address is trusted and immutable. |
||||
The contract executes an external message call. |
||||
An external function call to a fixed contract address is executed. Make sure that the callee contract has been reviewed carefully. |
||||
-------------------- |
||||
|
||||
==== Unchecked CALL return value ==== |
||||
==== Unchecked Call Return Value ==== |
||||
SWC ID: 104 |
||||
Type: Informational |
||||
Severity: Low |
||||
Contract: Unknown |
||||
Function name: callnotchecked() |
||||
PC address: 285 |
||||
Estimated Gas Usage: 1339 - 35950 |
||||
The return value of an external call is not checked. Note that execution continue even if the called contract throws. |
||||
The return value of a message call is not checked. |
||||
External calls return a boolean value. If the callee contract halts with an exception, 'false' is returned and execution continues in the caller. It is usually recommended to wrap external calls into a require statement to prevent unexpected states. |
||||
-------------------- |
||||
|
||||
|
@ -1,18 +1 @@ |
||||
{ |
||||
"error": null, |
||||
"issues": [ |
||||
{ |
||||
"address": 146, |
||||
"contract": "Unknown", |
||||
"debug": "<DEBUG-DATA>", |
||||
"description": "Anyone can kill this contract and withdraw its balance to their own account.", |
||||
"function": "kill(address)", |
||||
"max_gas_used": 263, |
||||
"min_gas_used": 168, |
||||
"swc-id": "106", |
||||
"title": "Unchecked SUICIDE", |
||||
"type": "Warning" |
||||
} |
||||
], |
||||
"success": true |
||||
} |
||||
{"error": null, "issues": [{"address": 146, "contract": "Unknown", "debug": "<DEBUG-DATA>", "description": "The contract can be killed by anyone.\nArbitrary senders can kill this contract and withdraw its balance to their own account.", "function": "kill(address)", "max_gas_used": 263, "min_gas_used": 168, "severity": "High", "sourceMap": null, "swc-id": "106", "title": "Unprotected Selfdestruct"}], "success": true} |
@ -0,0 +1 @@ |
||||
{"issues": [{"description": {"head": "The contract can be killed by anyone.", "tail": "Arbitrary senders can kill this contract and withdraw its balance to their own account."}, "extra": {}, "locations": [{"sourceMap": "146:1:0"}], "severity": "High", "swcID": "SWC-106", "swcTitle": "Unprotected SELFDESTRUCT Instruction"}], "meta": {}, "sourceFormat": "evm-byzantium-bytecode", "sourceList": ["0x2fb801366b61a05b30550481a1c8f7d5f20de0b93d9f2f2ce2b28c4e322033c9"], "sourceType": "raw-bytecode"} |
@ -1,10 +1,11 @@ |
||||
==== Unchecked SUICIDE ==== |
||||
==== Unprotected Selfdestruct ==== |
||||
SWC ID: 106 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: kill(address) |
||||
PC address: 146 |
||||
Estimated Gas Usage: 168 - 263 |
||||
Anyone can kill this contract and withdraw its balance to their own account. |
||||
The contract can be killed by anyone. |
||||
Arbitrary senders can kill this contract and withdraw its balance to their own account. |
||||
-------------------- |
||||
|
||||
|
@ -0,0 +1,40 @@ |
||||
{ |
||||
"issues": [ |
||||
{ |
||||
"description": { |
||||
"head": "The binary subtraction can underflow.", |
||||
"tail": "The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion." |
||||
}, |
||||
"extra": {}, |
||||
"locations": [ |
||||
{ |
||||
"sourceMap": "567:1:0" |
||||
} |
||||
], |
||||
"severity": "High", |
||||
"swcID": "SWC-101", |
||||
"swcTitle": "Integer Overflow and Underflow" |
||||
}, |
||||
{ |
||||
"description": { |
||||
"head": "The binary subtraction can underflow.", |
||||
"tail": "The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion." |
||||
}, |
||||
"extra": {}, |
||||
"locations": [ |
||||
{ |
||||
"sourceMap": "649:1:0" |
||||
} |
||||
], |
||||
"severity": "High", |
||||
"swcID": "SWC-101", |
||||
"swcTitle": "Integer Overflow and Underflow" |
||||
} |
||||
], |
||||
"meta": {}, |
||||
"sourceFormat": "evm-byzantium-bytecode", |
||||
"sourceList": [ |
||||
"0xabef56740bf7795a9f8732e4781ebd27f2977f8a4997e3ff11cee79a4ba6c0ce" |
||||
], |
||||
"sourceType": "raw-bytecode" |
||||
} |
@ -1,22 +1,22 @@ |
||||
==== Integer Underflow ==== |
||||
SWC ID: 101 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: sendeth(address,uint256) |
||||
PC address: 567 |
||||
Estimated Gas Usage: 1299 - 1774 |
||||
This binary subtraction operation can result in integer underflow. |
||||
|
||||
Estimated Gas Usage: 768 - 1053 |
||||
The binary subtraction can underflow. |
||||
The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion. |
||||
-------------------- |
||||
|
||||
==== Integer Underflow ==== |
||||
SWC ID: 101 |
||||
Type: Warning |
||||
Severity: High |
||||
Contract: Unknown |
||||
Function name: sendeth(address,uint256) |
||||
PC address: 649 |
||||
Estimated Gas Usage: 1299 - 1774 |
||||
This binary subtraction operation can result in integer underflow. |
||||
|
||||
The binary subtraction can underflow. |
||||
The operands of the subtraction operation are not sufficiently constrained. The subtraction could therefore result in an integer underflow. Prevent the underflow by checking inputs or ensure sure that the underflow is caught by an assertion. |
||||
-------------------- |
||||
|
||||
|
Loading…
Reference in new issue