{"success":true,"error":null,"issues":[{"title":"Message call to external contract","description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.","function":"_function_0x5a6814ec","type":"Informational","address":661,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":16,"code":"fixed_address.call()"},{"title":"Message call to external contract","description":"This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function '_function_0x2776b163'. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.","function":"_function_0xd24b08cc","type":"Warning","address":779,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":29,"code":"stored_address.call()"},{"title":"Message call to external contract","description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.","function":"_function_0xe11f493e","type":"Informational","address":858,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":20,"code":"fixed_address.call()"},{"title":"State change after external call","description":"The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.","function":"_function_0xe11f493e","type":"Warning","address":869,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":21,"code":"statevar = 0"},{"title":"Message call to external contract","description":"This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.","function":"_function_0xe1d10f79","type":"Warning","address":912,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":25,"code":"addr.call()"},{"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_0x5a6814ec","type":"Informational","address":661,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":16,"code":"fixed_address.call()"},{"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_0xd24b08cc","type":"Informational","address":779,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":29,"code":"stored_address.call()"},{"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_0xe11f493e","type":"Informational","address":858,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":20,"code":"fixed_address.call()"},{"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_0xe1d10f79","type":"Informational","address":912,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/calls.sol","lineno":25,"code":"addr.call()"}]}
{"success":true,"error":null,"issues":[{"title":"Ether send","description":"In the function 'withdrawfunds()' a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'.","function":"withdrawfunds()","type":"Warning","address":816,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/ether_send.sol","lineno":18,"code":"msg.sender.transfer(this.balance)"}]}
{"success":true,"error":null,"issues":[{"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_0x546455b5","type":"Informational","address":446,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/exceptions.sol","lineno":16,"code":"assert(input != 23)"},{"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_0x92dd38ea","type":"Informational","address":484,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/exceptions.sol","lineno":34,"code":"myarray[index]"},{"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_0xa08299f1","type":"Informational","address":506,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/exceptions.sol","lineno":24,"code":"1/input"},{"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_0xb34c3610","type":"Informational","address":531,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/exceptions.sol","lineno":7,"code":"assert(i == 0)"}]}
{"success":true,"error":null,"issues":[{"title":"Message call to external contract","description":"This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.","function":"_function_0xeea4c864","type":"Warning","address":1038,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/kinds_of_calls.sol","lineno":6,"code":"_e.call(bytes4(sha3(\"setN(uint256)\")), _n)"},{"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_0xeea4c864","type":"Informational","address":1038,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/kinds_of_calls.sol","lineno":6,"code":"_e.call(bytes4(sha3(\"setN(uint256)\")), _n)"}]}
{"success":true,"error":null,"issues":[{"title":"Ether send","description":"In the function 'transfer()' a non-zero amount of Ether is sent to msg.sender.\nIt seems that this function can be called without restrictions.","function":"transfer()","type":"Warning","address":142,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/multi_contracts.sol","lineno":14,"code":"msg.sender.transfer(2 ether)"}]}
{"success":true,"error":null,"issues":[{"title":"Use of tx.origin","description":"Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead.\nSee also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin","function":"transferOwnership(address)","type":"Warning","address":317,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/origin.sol","lineno":18,"code":"tx.origin"}]}
"description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.",
"function":"_function_0x5a6814ec",
"type":"Informational",
"address":661,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":16,
"code":"fixed_address.call()"
},
{
"title":"Message call to external contract",
"description":"This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function '_function_0x2776b163'. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.",
"function":"_function_0xd24b08cc",
"type":"Warning",
"address":779,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":29,
"code":"stored_address.call()"
},
{
"title":"Message call to external contract",
"description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.",
"function":"_function_0xe11f493e",
"type":"Informational",
"address":858,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":20,
"code":"fixed_address.call()"
},
{
"title":"State change after external call",
"description":"The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.",
"function":"_function_0xe11f493e",
"type":"Warning",
"address":869,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":21,
"code":"statevar = 0"
},
{
"title":"Message call to external contract",
"description":"This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.",
"function":"_function_0xe1d10f79",
"type":"Warning",
"address":912,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":25,
"code":"addr.call()"
},
{
"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_0x5a6814ec",
"type":"Informational",
"address":661,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":16,
"code":"fixed_address.call()"
},
{
"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_0xd24b08cc",
"type":"Informational",
"address":779,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":29,
"code":"stored_address.call()"
},
{
"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_0xe11f493e",
"type":"Informational",
"address":858,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/calls.sol",
"lineno":20,
"code":"fixed_address.call()"
},
{
"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.",
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.
In *<TEST_FILES>/calls.sol:16*
In *<TEST_FILES>/inputs/calls.sol:16*
```
fixed_address.call()
@ -22,7 +22,7 @@ fixed_address.call()
### Description
This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function '_function_0x2776b163'. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
In *<TEST_FILES>/calls.sol:29*
In *<TEST_FILES>/inputs/calls.sol:29*
```
stored_address.call()
@ -36,7 +36,7 @@ stored_address.call()
### Description
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.
In *<TEST_FILES>/calls.sol:20*
In *<TEST_FILES>/inputs/calls.sol:20*
```
fixed_address.call()
@ -50,7 +50,7 @@ fixed_address.call()
### Description
The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.
In *<TEST_FILES>/calls.sol:21*
In *<TEST_FILES>/inputs/calls.sol:21*
```
statevar = 0
@ -64,7 +64,7 @@ statevar = 0
### Description
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
In *<TEST_FILES>/calls.sol:25*
In *<TEST_FILES>/inputs/calls.sol:25*
```
addr.call()
@ -78,7 +78,7 @@ addr.call()
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
In *<TEST_FILES>/calls.sol:16*
In *<TEST_FILES>/inputs/calls.sol:16*
```
fixed_address.call()
@ -92,7 +92,7 @@ fixed_address.call()
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
In *<TEST_FILES>/calls.sol:29*
In *<TEST_FILES>/inputs/calls.sol:29*
```
stored_address.call()
@ -106,7 +106,7 @@ stored_address.call()
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
In *<TEST_FILES>/calls.sol:20*
In *<TEST_FILES>/inputs/calls.sol:20*
```
fixed_address.call()
@ -120,7 +120,7 @@ fixed_address.call()
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
@ -5,7 +5,7 @@ Function name: _function_0x5a6814ec
PC address: 661
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.
--------------------
In file: <TEST_FILES>/calls.sol:16
In file: <TEST_FILES>/inputs/calls.sol:16
fixed_address.call()
@ -18,7 +18,7 @@ Function name: _function_0xd24b08cc
PC address: 779
This contract executes a message call to an address found at storage slot 1. This storage slot can be written to by calling the function '_function_0x2776b163'. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
--------------------
In file: <TEST_FILES>/calls.sol:29
In file: <TEST_FILES>/inputs/calls.sol:29
stored_address.call()
@ -31,7 +31,7 @@ Function name: _function_0xe11f493e
PC address: 858
This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.
--------------------
In file: <TEST_FILES>/calls.sol:20
In file: <TEST_FILES>/inputs/calls.sol:20
fixed_address.call()
@ -44,7 +44,7 @@ Function name: _function_0xe11f493e
PC address: 869
The contract account state is changed after an external call. Consider that the called contract could re-enter the function before this state change takes place. This can lead to business logic vulnerabilities.
--------------------
In file: <TEST_FILES>/calls.sol:21
In file: <TEST_FILES>/inputs/calls.sol:21
statevar = 0
@ -57,7 +57,7 @@ Function name: _function_0xe1d10f79
PC address: 912
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
--------------------
In file: <TEST_FILES>/calls.sol:25
In file: <TEST_FILES>/inputs/calls.sol:25
addr.call()
@ -70,7 +70,7 @@ Function name: _function_0x5a6814ec
PC address: 661
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
--------------------
In file: <TEST_FILES>/calls.sol:16
In file: <TEST_FILES>/inputs/calls.sol:16
fixed_address.call()
@ -83,7 +83,7 @@ Function name: _function_0xd24b08cc
PC address: 779
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
--------------------
In file: <TEST_FILES>/calls.sol:29
In file: <TEST_FILES>/inputs/calls.sol:29
stored_address.call()
@ -96,7 +96,7 @@ Function name: _function_0xe11f493e
PC address: 858
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
--------------------
In file: <TEST_FILES>/calls.sol:20
In file: <TEST_FILES>/inputs/calls.sol:20
fixed_address.call()
@ -109,7 +109,7 @@ Function name: _function_0xe1d10f79
PC address: 912
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
"description":"In the function 'withdrawfunds()' a non-zero amount of Ether is sent to msg.sender.\n\nThere is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'.",
"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_0x546455b5",
"type":"Informational",
"address":446,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/exceptions.sol",
"lineno":16,
"code":"assert(input != 23)"
},
{
"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_0x92dd38ea",
"type":"Informational",
"address":484,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/exceptions.sol",
"lineno":34,
"code":"myarray[index]"
},
{
"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_0xa08299f1",
"type":"Informational",
"address":506,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/exceptions.sol",
"lineno":24,
"code":"1/input"
},
{
"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. ",
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.
In *<TEST_FILES>/exceptions.sol:16*
In *<TEST_FILES>/inputs/exceptions.sol:16*
```
assert(input != 23)
@ -22,7 +22,7 @@ assert(input != 23)
### 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.
In *<TEST_FILES>/exceptions.sol:34*
In *<TEST_FILES>/inputs/exceptions.sol:34*
```
myarray[index]
@ -36,7 +36,7 @@ myarray[index]
### 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.
In *<TEST_FILES>/exceptions.sol:24*
In *<TEST_FILES>/inputs/exceptions.sol:24*
```
1/input
@ -50,7 +50,7 @@ In *<TEST_FILES>/exceptions.sol:24*
### 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.
@ -5,7 +5,7 @@ Function name: _function_0x546455b5
PC address: 446
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.
--------------------
In file: <TEST_FILES>/exceptions.sol:16
In file: <TEST_FILES>/inputs/exceptions.sol:16
assert(input != 23)
@ -18,7 +18,7 @@ Function name: _function_0x92dd38ea
PC address: 484
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.
--------------------
In file: <TEST_FILES>/exceptions.sol:34
In file: <TEST_FILES>/inputs/exceptions.sol:34
myarray[index]
@ -31,7 +31,7 @@ Function name: _function_0xa08299f1
PC address: 506
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.
--------------------
In file: <TEST_FILES>/exceptions.sol:24
In file: <TEST_FILES>/inputs/exceptions.sol:24
1/input
@ -44,7 +44,7 @@ Function name: _function_0xb34c3610
PC address: 531
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.
"description":"This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.",
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
@ -5,7 +5,7 @@ Function name: _function_0xeea4c864
PC address: 1038
This contract executes a message call to an address provided as a function argument. Generally, it is not recommended to call user-supplied adresses using Solidity's call() construct. Note that attackers might leverage reentrancy attacks to exploit race conditions or manipulate this contract's state.
--------------------
In file: <TEST_FILES>/kinds_of_calls.sol:6
In file: <TEST_FILES>/inputs/kinds_of_calls.sol:6
_e.call(bytes4(sha3("setN(uint256)")), _n)
@ -18,7 +18,7 @@ Function name: _function_0xeea4c864
PC address: 1038
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
"description":"In the function '_function_0x8a4068dd' a non-zero amount of Ether is sent to msg.sender.\nIt seems that this function can be called without restrictions.",
"description":"Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead.\nSee also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin",
"description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.",
"function":"_function_0x633ab5e0",
"type":"Informational",
"address":196,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/returnvalue.sol",
"lineno":10,
"code":"callee.call()"
},
{
"title":"Message call to external contract",
"description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.",
"function":"_function_0xe3bea282",
"type":"Informational",
"address":285,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/returnvalue.sol",
"lineno":6,
"code":"callee.call()"
},
{
"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.",
"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>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":93,
"code":"creator.send(feesToCollect)"
},
{
"title":"Ether send",
"description":"In the function '_function_0x686f2c90' 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_0x686f2c90",
"type":"Warning",
"address":1940,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":75,
"code":"creator.send(collectedFees)"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":131,
"code":"participants[payoutOrder]"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":148,
"code":"participants[orderInPyramid]"
},
{
"title":"Integer Underflow",
"description":"A possible integer underflow exists in the function _function_0xd11f13df.\nThe substraction may result in a value < 0.",
"function":"_function_0xd11f13df",
"type":"Warning",
"address":2743,
"debug":"<DEBUG-DATA>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":143,
"code":"participants.length - payoutOrder"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":93,
"code":"creator.send(feesToCollect)"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/rubixi.sol",
"lineno":75,
"code":"creator.send(collectedFees)"
},
{
"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.",
In the function 'collectPercentOfFees(uint256)' 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 'DynamicPyramid()'.
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 'DynamicPyramid()'.
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'.
In *<TEST_FILES>/rubixi.sol:93*
In *<TEST_FILES>/inputs/rubixi.sol:93*
```
creator.send(feesToCollect)
@ -20,17 +20,17 @@ creator.send(feesToCollect)
## Ether send
- Type: Warning
- Contract: Rubixi
- Function name: `collectAllFees()`
- Function name: `_function_0x686f2c90`
- PC address: 1940
### Description
In the function 'collectAllFees()' 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 'DynamicPyramid()'.
In the function '_function_0x686f2c90' 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 'DynamicPyramid()'.
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'.
In *<TEST_FILES>/rubixi.sol:75*
In *<TEST_FILES>/inputs/rubixi.sol:75*
```
creator.send(collectedFees)
@ -38,13 +38,13 @@ creator.send(collectedFees)
## Exception state
- Type: Informational
- Contract: Rubixi
- Function name: `nextPayoutWhenPyramidBalanceTotalsApproximately()`
- 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.
In *<TEST_FILES>/rubixi.sol:131*
In *<TEST_FILES>/inputs/rubixi.sol:131*
```
participants[payoutOrder]
@ -52,13 +52,13 @@ participants[payoutOrder]
## Exception state
- Type: Informational
- Contract: Rubixi
- Function name: `participantDetails(uint256)`
- 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.
In *<TEST_FILES>/rubixi.sol:148*
In *<TEST_FILES>/inputs/rubixi.sol:148*
```
participants[orderInPyramid]
@ -66,14 +66,14 @@ participants[orderInPyramid]
## Integer Underflow
- Type: Warning
- Contract: Rubixi
- Function name: `numberOfParticipantsWaitingForPayout()`
- Function name: `_function_0xd11f13df`
- PC address: 2743
### Description
A possible integer underflow exists in the function numberOfParticipantsWaitingForPayout().
A possible integer underflow exists in the function _function_0xd11f13df.
In the function 'collectPercentOfFees(uint256)' 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 'DynamicPyramid()'.
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 'DynamicPyramid()'.
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'.
--------------------
In file: <TEST_FILES>/rubixi.sol:93
In file: <TEST_FILES>/inputs/rubixi.sol:93
creator.send(feesToCollect)
@ -18,15 +18,15 @@ creator.send(feesToCollect)
==== Ether send ====
Type: Warning
Contract: Rubixi
Function name: collectAllFees()
Function name: _function_0x686f2c90
PC address: 1940
In the function 'collectAllFees()' 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 'DynamicPyramid()'.
In the function '_function_0x686f2c90' 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 'DynamicPyramid()'.
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'.
--------------------
In file: <TEST_FILES>/rubixi.sol:75
In file: <TEST_FILES>/inputs/rubixi.sol:75
creator.send(collectedFees)
@ -35,11 +35,11 @@ creator.send(collectedFees)
==== Exception state ====
Type: Informational
Contract: Rubixi
Function name: nextPayoutWhenPyramidBalanceTotalsApproximately()
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.
--------------------
In file: <TEST_FILES>/rubixi.sol:131
In file: <TEST_FILES>/inputs/rubixi.sol:131
participants[payoutOrder]
@ -48,11 +48,11 @@ participants[payoutOrder]
==== Exception state ====
Type: Informational
Contract: Rubixi
Function name: participantDetails(uint256)
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.
--------------------
In file: <TEST_FILES>/rubixi.sol:148
In file: <TEST_FILES>/inputs/rubixi.sol:148
participants[orderInPyramid]
@ -61,12 +61,12 @@ participants[orderInPyramid]
==== Integer Underflow ====
Type: Warning
Contract: Rubixi
Function name: numberOfParticipantsWaitingForPayout()
Function name: _function_0xd11f13df
PC address: 2743
A possible integer underflow exists in the function numberOfParticipantsWaitingForPayout().
A possible integer underflow exists in the function _function_0xd11f13df.
"description":"The function _function_0xcbf0b0c0 executes the SUICIDE instruction. The remaining Ether is sent to an address provided as a function argument.\n\nIt seems that this function can be called without restrictions.",
"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>",
"filename":"<TEST_FILES>/inputs/weak_random.sol",
"lineno":47,
"code":"winningAddress.transfer(prize)"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/weak_random.sol",
"lineno":47,
"code":"winningAddress.transfer(prize)"
},
{
"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>",
"filename":"<TEST_FILES>/inputs/weak_random.sol",
"lineno":11,
"code":"prize / totalTickets"
},
{
"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. ",
@ -10,7 +10,7 @@ In the function '_function_0xe9874106' the following predictable state variables
- block.coinbase
In *<TEST_FILES>/weak_random.sol:47*
In *<TEST_FILES>/inputs/weak_random.sol:47*
```
winningAddress.transfer(prize)
@ -28,7 +28,7 @@ There is a check on storage index 0. This storage slot can be written to by call
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'.
In *<TEST_FILES>/weak_random.sol:47*
In *<TEST_FILES>/inputs/weak_random.sol:47*
```
winningAddress.transfer(prize)
@ -42,7 +42,7 @@ winningAddress.transfer(prize)
### 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.
In *<TEST_FILES>/weak_random.sol:11*
In *<TEST_FILES>/inputs/weak_random.sol:11*
```
prize / totalTickets
@ -56,7 +56,7 @@ prize / totalTickets
### 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.
@ -7,7 +7,7 @@ In the function '_function_0xe9874106' the following predictable state variables
- block.coinbase
--------------------
In file: <TEST_FILES>/weak_random.sol:47
In file: <TEST_FILES>/inputs/weak_random.sol:47
winningAddress.transfer(prize)
@ -24,7 +24,7 @@ There is a check on storage index 0. This storage slot can be written to by call
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'.
--------------------
In file: <TEST_FILES>/weak_random.sol:47
In file: <TEST_FILES>/inputs/weak_random.sol:47
winningAddress.transfer(prize)
@ -37,7 +37,7 @@ 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.
--------------------
In file: <TEST_FILES>/weak_random.sol:11
In file: <TEST_FILES>/inputs/weak_random.sol:11
prize / totalTickets
@ -50,7 +50,7 @@ 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.
{"success":true,"error":null,"issues":[{"title":"Message call to external contract","description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.","function":"_function_0x633ab5e0","type":"Informational","address":196,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/returnvalue.sol","lineno":10,"code":"callee.call()"},{"title":"Message call to external contract","description":"This contract executes a message call to to another contract. Make sure that the called contract is trusted and does not execute user-supplied code.","function":"_function_0xe3bea282","type":"Informational","address":285,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/returnvalue.sol","lineno":6,"code":"callee.call()"},{"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_0xe3bea282","type":"Informational","address":285,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/returnvalue.sol","lineno":6,"code":"callee.call()"}]}
{"success":true,"error":null,"issues":[{"title":"Ether send","description":"In the function 'collectPercentOfFees(uint256)' 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 'DynamicPyramid()'.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function 'DynamicPyramid()'.\nThere is a check on storage index 1. This storage slot can be written to by calling the function 'fallback'.","function":"collectPercentOfFees(uint256)","type":"Warning","address":1599,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":93,"code":"creator.send(feesToCollect)"},{"title":"Ether send","description":"In the function 'collectAllFees()' 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 'DynamicPyramid()'.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function 'DynamicPyramid()'.\nThere is a check on storage index 1. This storage slot can be written to by calling the function 'fallback'.","function":"collectAllFees()","type":"Warning","address":1940,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":75,"code":"creator.send(collectedFees)"},{"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":"nextPayoutWhenPyramidBalanceTotalsApproximately()","type":"Informational","address":1653,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":131,"code":"participants[payoutOrder]"},{"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":"participantDetails(uint256)","type":"Informational","address":2085,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":148,"code":"participants[orderInPyramid]"},{"title":"Integer Underflow","description":"A possible integer underflow exists in the function numberOfParticipantsWaitingForPayout().\nThe substraction may result in a value < 0.","function":"numberOfParticipantsWaitingForPayout()","type":"Warning","address":2743,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":143,"code":"participants.length - payoutOrder"},{"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":"collectPercentOfFees(uint256)","type":"Informational","address":1599,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":93,"code":"creator.send(feesToCollect)"},{"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":"collectFeesInEther(uint256)","type":"Informational","address":1940,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":75,"code":"creator.send(collectedFees)"},{"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":"collectFeesInEther(uint256)","type":"Informational","address":2582,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/rubixi.sol","lineno":85,"code":"creator.send(_amt)"}]}
{"success":true,"error":null,"issues":[{"title":"Unchecked SUICIDE","description":"The function _function_0xcbf0b0c0 executes the SUICIDE instruction. The remaining Ether is sent to an address provided as a function argument.\n\nIt seems that this function can be called without restrictions.","function":"_function_0xcbf0b0c0","type":"Warning","address":146,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/suicide.sol","lineno":4,"code":"selfdestruct(addr)"}]}
{"success":true,"error":null,"issues":[{"title":"Integer Underflow","description":"A possible integer underflow exists in the function sendeth(address,uint256).\nThe substraction may result in a value < 0.","function":"sendeth(address,uint256)","type":"Warning","address":649,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/underflow.sol","lineno":12,"code":"balances[msg.sender] -= _value"},{"title":"Integer Underflow","description":"A possible integer underflow exists in the function sendeth(address,uint256).\nThe substraction may result in a value < 0.","function":"sendeth(address,uint256)","type":"Warning","address":567,"debug":"<DEBUG-DATA>","filename":"<TEST_FILES>/underflow.sol","lineno":11,"code":"balances[msg.sender] - _value"}]}
{"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>","filename":"<TEST_FILES>/weak_random.sol","lineno":47,"code":"winningAddress.transfer(prize)"},{"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>","filename":"<TEST_FILES>/weak_random.sol","lineno":47,"code":"winningAddress.transfer(prize)"},{"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>","filename":"<TEST_FILES>/weak_random.sol","lineno":11,"code":"prize / totalTickets"},{"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>","filename":"<TEST_FILES>/weak_random.sol","lineno":11,"code":"prize / totalTickets"}]}