@ -218,7 +218,7 @@ if args.address or args.init_db:
try:
try:
eth = EthIpc()
eth = EthIpc()
except Exception as e:
except Exception as e:
exitWithError(args.outform, "IPC initialization failed. Please verify that your local Ethereum node is running, or use the -i flag to connect to INFURA. \n" + str(e))
exitWithError(args.outform, "IPC initialization failed. Please verify that your local Ethereum node is running, or use the -i flag to connect to INFURA. \n" + str(e))
else: # Default configuration if neither RPC or IPC are set
else: # Default configuration if neither RPC or IPC are set
@ -229,7 +229,7 @@ if args.address or args.init_db:
{"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.
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()
fixed_address.call()
@ -22,7 +22,7 @@ fixed_address.call()
### Description
### 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.
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()
stored_address.call()
@ -36,7 +36,7 @@ stored_address.call()
### Description
### 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.
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()
fixed_address.call()
@ -50,7 +50,7 @@ fixed_address.call()
### Description
### 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.
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
statevar = 0
@ -64,7 +64,7 @@ statevar = 0
### Description
### 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.
In *<TEST_FILES>/calls.sol:25*
In *<TEST_FILES>/inputs/calls.sol:25*
```
```
addr.call()
addr.call()
@ -78,7 +78,7 @@ addr.call()
### Description
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
fixed_address.call()
@ -92,7 +92,7 @@ fixed_address.call()
### Description
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
stored_address.call()
@ -106,7 +106,7 @@ stored_address.call()
### Description
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
fixed_address.call()
@ -120,7 +120,7 @@ fixed_address.call()
### Description
### Description
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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
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.
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()
fixed_address.call()
@ -18,7 +18,7 @@ Function name: _function_0xd24b08cc
PC address: 779
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.
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()
stored_address.call()
@ -31,7 +31,7 @@ Function name: _function_0xe11f493e
PC address: 858
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.
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()
fixed_address.call()
@ -44,7 +44,7 @@ Function name: _function_0xe11f493e
PC address: 869
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.
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
statevar = 0
@ -57,7 +57,7 @@ Function name: _function_0xe1d10f79
PC address: 912
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.
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()
addr.call()
@ -70,7 +70,7 @@ Function name: _function_0x5a6814ec
PC address: 661
PC address: 661
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
fixed_address.call()
@ -83,7 +83,7 @@ Function name: _function_0xd24b08cc
PC address: 779
PC address: 779
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
stored_address.call()
@ -96,7 +96,7 @@ Function name: _function_0xe11f493e
PC address: 858
PC address: 858
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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()
fixed_address.call()
@ -109,7 +109,7 @@ Function name: _function_0xe1d10f79
PC address: 912
PC address: 912
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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.
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)
assert(input != 23)
@ -22,7 +22,7 @@ assert(input != 23)
### Description
### 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:34*
In *<TEST_FILES>/inputs/exceptions.sol:34*
```
```
myarray[index]
myarray[index]
@ -36,7 +36,7 @@ myarray[index]
### Description
### 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:24*
In *<TEST_FILES>/inputs/exceptions.sol:24*
```
```
1/input
1/input
@ -50,7 +50,7 @@ In *<TEST_FILES>/exceptions.sol:24*
### Description
### 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.
@ -5,7 +5,7 @@ Function name: _function_0x546455b5
PC address: 446
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.
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)
assert(input != 23)
@ -18,7 +18,7 @@ Function name: _function_0x92dd38ea
PC address: 484
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.
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]
myarray[index]
@ -31,7 +31,7 @@ Function name: _function_0xa08299f1
PC address: 506
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.
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
1/input
@ -44,7 +44,7 @@ Function name: _function_0xb34c3610
PC address: 531
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.
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.
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
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.
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)
_e.call(bytes4(sha3("setN(uint256)")), _n)
@ -18,7 +18,7 @@ Function name: _function_0xeea4c864
PC address: 1038
PC address: 1038
The return value of an external call is not checked. Note that execution continue even if the called contract throws.
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.
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 '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 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'.
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)
creator.send(feesToCollect)
@ -20,17 +20,17 @@ creator.send(feesToCollect)
## Ether send
## Ether send
- Type: Warning
- Type: Warning
- Contract: Rubixi
- Contract: Rubixi
- Function name: `collectAllFees()`
- Function name: `_function_0x686f2c90`
- PC address: 1940
- PC address: 1940
### Description
### Description
In the function 'collectAllFees()' a non-zero amount of Ether is sent to an address taken from storage slot 5.
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 '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 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'.
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)
creator.send(collectedFees)
@ -38,13 +38,13 @@ creator.send(collectedFees)
## Exception state
## Exception state
- Type: Informational
- Type: Informational
- Contract: Rubixi
- Contract: Rubixi
- Function name: `nextPayoutWhenPyramidBalanceTotalsApproximately()`
- Function name: `_function_0x57d4021b`
- PC address: 1653
- PC address: 1653
### Description
### 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>/rubixi.sol:131*
In *<TEST_FILES>/inputs/rubixi.sol:131*
```
```
participants[payoutOrder]
participants[payoutOrder]
@ -52,13 +52,13 @@ participants[payoutOrder]
## Exception state
## Exception state
- Type: Informational
- Type: Informational
- Contract: Rubixi
- Contract: Rubixi
- Function name: `participantDetails(uint256)`
- Function name: `_function_0x9dbc4f9b`
- PC address: 2085
- PC address: 2085
### Description
### 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>/rubixi.sol:148*
In *<TEST_FILES>/inputs/rubixi.sol:148*
```
```
participants[orderInPyramid]
participants[orderInPyramid]
@ -66,14 +66,14 @@ participants[orderInPyramid]
## Integer Underflow
## Integer Underflow
- Type: Warning
- Type: Warning
- Contract: Rubixi
- Contract: Rubixi
- Function name: `numberOfParticipantsWaitingForPayout()`
- Function name: `_function_0xd11f13df`
- PC address: 2743
- PC address: 2743
### Description
### 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.
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 '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 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'.
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)
creator.send(feesToCollect)
@ -18,15 +18,15 @@ creator.send(feesToCollect)
==== Ether send ====
==== Ether send ====
Type: Warning
Type: Warning
Contract: Rubixi
Contract: Rubixi
Function name: collectAllFees()
Function name: _function_0x686f2c90
PC address: 1940
PC address: 1940
In the function 'collectAllFees()' a non-zero amount of Ether is sent to an address taken from storage slot 5.
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 '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 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'.
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)
creator.send(collectedFees)
@ -35,11 +35,11 @@ creator.send(collectedFees)
==== Exception state ====
==== Exception state ====
Type: Informational
Type: Informational
Contract: Rubixi
Contract: Rubixi
Function name: nextPayoutWhenPyramidBalanceTotalsApproximately()
Function name: _function_0x57d4021b
PC address: 1653
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.
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]
participants[payoutOrder]
@ -48,11 +48,11 @@ participants[payoutOrder]
==== Exception state ====
==== Exception state ====
Type: Informational
Type: Informational
Contract: Rubixi
Contract: Rubixi
Function name: participantDetails(uint256)
Function name: _function_0x9dbc4f9b
PC address: 2085
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.
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]
participants[orderInPyramid]
@ -61,12 +61,12 @@ participants[orderInPyramid]
==== Integer Underflow ====
==== Integer Underflow ====
Type: Warning
Type: Warning
Contract: Rubixi
Contract: Rubixi
Function name: numberOfParticipantsWaitingForPayout()
Function name: _function_0xd11f13df
PC address: 2743
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
- block.coinbase
In *<TEST_FILES>/weak_random.sol:47*
In *<TEST_FILES>/inputs/weak_random.sol:47*
```
```
winningAddress.transfer(prize)
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'.
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)
winningAddress.transfer(prize)
@ -42,7 +42,7 @@ winningAddress.transfer(prize)
### Description
### 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>/weak_random.sol:11*
In *<TEST_FILES>/inputs/weak_random.sol:11*
```
```
prize / totalTickets
prize / totalTickets
@ -56,7 +56,7 @@ prize / totalTickets
### Description
### 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.
@ -7,7 +7,7 @@ In the function '_function_0xe9874106' the following predictable state variables
- block.coinbase
- block.coinbase
--------------------
--------------------
In file: <TEST_FILES>/weak_random.sol:47
In file: <TEST_FILES>/inputs/weak_random.sol:47
winningAddress.transfer(prize)
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'.
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)
winningAddress.transfer(prize)
@ -37,7 +37,7 @@ Function name: fallback
PC address: 356
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.
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
prize / totalTickets
@ -50,7 +50,7 @@ Function name: _function_0xe9874106
PC address: 146
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.
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"}]}