pull/99/head
freewind 7 years ago
parent 0f148153a3
commit 29c5ca6977
  1. 2
      coverage_report.sh
  2. 2
      myth
  3. 2
      tests/cmd_line_test.py
  4. 7
      tests/disassembler_test.py
  5. 7
      tests/graph_test.py
  6. 1
      tests/ipc_test.py
  7. 17
      tests/report_test.py
  8. 2
      tests/solidity_contract_test.py
  9. 1
      tests/testdata/calls.sol.json
  10. 1
      tests/testdata/ether_send.sol.json
  11. 1
      tests/testdata/exceptions.sol.json
  12. 0
      tests/testdata/inputs/calls.sol
  13. 0
      tests/testdata/inputs/ether_send.sol
  14. 0
      tests/testdata/inputs/exceptions.sol
  15. 0
      tests/testdata/inputs/kinds_of_calls.sol
  16. 0
      tests/testdata/inputs/metacoin.sol
  17. 0
      tests/testdata/inputs/multi_contracts.sol
  18. 0
      tests/testdata/inputs/origin.sol
  19. 0
      tests/testdata/inputs/returnvalue.sol
  20. 0
      tests/testdata/inputs/rubixi.sol
  21. 0
      tests/testdata/inputs/suicide.sol
  22. 0
      tests/testdata/inputs/underflow.sol
  23. 0
      tests/testdata/inputs/weak_random.sol
  24. 1
      tests/testdata/kinds_of_calls.sol.json
  25. 1
      tests/testdata/metacoin.sol.json
  26. 1
      tests/testdata/multi_contracts.sol.json
  27. 1
      tests/testdata/origin.sol.json
  28. 0
      tests/testdata/outputs/calls.sol.easm
  29. 0
      tests/testdata/outputs/calls.sol.graph.html
  30. 105
      tests/testdata/outputs/calls.sol.json
  31. 18
      tests/testdata/outputs/calls.sol.markdown
  32. 18
      tests/testdata/outputs/calls.sol.text
  33. 0
      tests/testdata/outputs/ether_send.sol.easm
  34. 2
      tests/testdata/outputs/ether_send.sol.graph.html
  35. 17
      tests/testdata/outputs/ether_send.sol.json
  36. 2
      tests/testdata/outputs/ether_send.sol.markdown
  37. 2
      tests/testdata/outputs/ether_send.sol.text
  38. 0
      tests/testdata/outputs/exceptions.sol.easm
  39. 0
      tests/testdata/outputs/exceptions.sol.graph.html
  40. 50
      tests/testdata/outputs/exceptions.sol.json
  41. 8
      tests/testdata/outputs/exceptions.sol.markdown
  42. 8
      tests/testdata/outputs/exceptions.sol.text
  43. 0
      tests/testdata/outputs/kinds_of_calls.sol.easm
  44. 0
      tests/testdata/outputs/kinds_of_calls.sol.graph.html
  45. 28
      tests/testdata/outputs/kinds_of_calls.sol.json
  46. 4
      tests/testdata/outputs/kinds_of_calls.sol.markdown
  47. 4
      tests/testdata/outputs/kinds_of_calls.sol.text
  48. 0
      tests/testdata/outputs/metacoin.sol.easm
  49. 0
      tests/testdata/outputs/metacoin.sol.graph.html
  50. 5
      tests/testdata/outputs/metacoin.sol.json
  51. 0
      tests/testdata/outputs/metacoin.sol.markdown
  52. 0
      tests/testdata/outputs/metacoin.sol.text
  53. 0
      tests/testdata/outputs/multi_contracts.sol.easm
  54. 2
      tests/testdata/outputs/multi_contracts.sol.graph.html
  55. 17
      tests/testdata/outputs/multi_contracts.sol.json
  56. 6
      tests/testdata/outputs/multi_contracts.sol.markdown
  57. 6
      tests/testdata/outputs/multi_contracts.sol.text
  58. 0
      tests/testdata/outputs/origin.sol.easm
  59. 0
      tests/testdata/outputs/origin.sol.graph.html
  60. 17
      tests/testdata/outputs/origin.sol.json
  61. 2
      tests/testdata/outputs/origin.sol.markdown
  62. 2
      tests/testdata/outputs/origin.sol.text
  63. 0
      tests/testdata/outputs/returnvalue.sol.easm
  64. 0
      tests/testdata/outputs/returnvalue.sol.graph.html
  65. 39
      tests/testdata/outputs/returnvalue.sol.json
  66. 6
      tests/testdata/outputs/returnvalue.sol.markdown
  67. 6
      tests/testdata/outputs/returnvalue.sol.text
  68. 2
      tests/testdata/outputs/rubixi.sol.easm
  69. 30
      tests/testdata/outputs/rubixi.sol.graph.html
  70. 94
      tests/testdata/outputs/rubixi.sol.json
  71. 46
      tests/testdata/outputs/rubixi.sol.markdown
  72. 46
      tests/testdata/outputs/rubixi.sol.text
  73. 0
      tests/testdata/outputs/suicide.sol.easm
  74. 0
      tests/testdata/outputs/suicide.sol.graph.html
  75. 17
      tests/testdata/outputs/suicide.sol.json
  76. 2
      tests/testdata/outputs/suicide.sol.markdown
  77. 2
      tests/testdata/outputs/suicide.sol.text
  78. 0
      tests/testdata/outputs/underflow.sol.easm
  79. 0
      tests/testdata/outputs/underflow.sol.graph.html
  80. 28
      tests/testdata/outputs/underflow.sol.json
  81. 4
      tests/testdata/outputs/underflow.sol.markdown
  82. 4
      tests/testdata/outputs/underflow.sol.text
  83. 0
      tests/testdata/outputs/weak_random.sol.easm
  84. 0
      tests/testdata/outputs/weak_random.sol.graph.html
  85. 50
      tests/testdata/outputs/weak_random.sol.json
  86. 8
      tests/testdata/outputs/weak_random.sol.markdown
  87. 8
      tests/testdata/outputs/weak_random.sol.text
  88. 1
      tests/testdata/returnvalue.sol.json
  89. 1
      tests/testdata/rubixi.sol.json
  90. 1
      tests/testdata/suicide.sol.json
  91. 1
      tests/testdata/underflow.sol.json
  92. 1
      tests/testdata/weak_random.sol.json

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
rm -rf htmlcov rm -rf coverage_html_report
coverage run -m unittest discover -p "*_test.py" coverage run -m unittest discover -p "*_test.py"
coverage html coverage html
open coverage_html_report/index.html open coverage_html_report/index.html

@ -229,7 +229,7 @@ if args.address or args.init_db:
# Database search ops # Database search ops
if args.search or args.init_db: if args.search or args.init_db:
contract_storage = get_persistent_storage(mythril_dir) contract_storage, _ = get_persistent_storage(mythril_dir)
if args.search: if args.search:
try: try:
contract_storage.search(args.search, searchCallback) contract_storage.search(args.search, searchCallback)

@ -17,7 +17,7 @@ class CommandLineToolTestCase(BaseTestCase):
self.assertEqual('0 POP\n1 POP\n', output_of(command)) self.assertEqual('0 POP\n1 POP\n', output_of(command))
def test_disassemble_solidity_file_correctly(self): def test_disassemble_solidity_file_correctly(self):
solidity_file = str(self.tests_dir / 'testdata/metacoin.sol') solidity_file = str(self.tests_dir / 'testdata/inputs/metacoin.sol')
command = "python3 {} -d {}".format(self.myth, solidity_file) command = "python3 {} -d {}".format(self.myth, solidity_file)
self.assertIn('0 PUSH1 0x60\n2 PUSH1 0x40', output_of(command)) self.assertIn('0 PUSH1 0x60\n2 PUSH1 0x40', output_of(command))

@ -19,13 +19,12 @@ class DisassemblerTestCase(unittest.TestCase):
self.assertEqual(len(disassembly.instruction_list), 3523) self.assertEqual(len(disassembly.instruction_list), 3523)
def test_easm_from_solidity_files(self): def test_easm_from_solidity_files(self):
for input_file in TEST_FILES.iterdir(): for input_file in (TEST_FILES / "inputs").iterdir():
if input_file.is_file and input_file.suffix == '.sol':
code = _compile_to_code(input_file) code = _compile_to_code(input_file)
disassembly = Disassembly(code) disassembly = Disassembly(code)
# (TEST_FILES / (input_file.name + ".easm")).write_text(disassembly.get_easm()) # (TEST_FILES / "outputs" / (input_file.name + ".easm")).write_text(disassembly.get_easm())
expected_easm = (TEST_FILES / (input_file.name + ".easm")).read_text() expected_easm = (TEST_FILES / "outputs" / (input_file.name + ".easm")).read_text()
self.assertEqual(disassembly.get_easm(), expected_easm, "{} returns invalid easm".format(str(input_file))) self.assertEqual(disassembly.get_easm(), expected_easm, "{} returns invalid easm".format(str(input_file)))

@ -13,8 +13,7 @@ TEST_FILES = Path(__file__).parent / "testdata"
class GraphTest(TestCase): class GraphTest(TestCase):
def test_generate_graph(self): def test_generate_graph(self):
for input_file in TEST_FILES.iterdir(): for input_file in (TEST_FILES / "inputs").iterdir():
if input_file.is_file and input_file.suffix == '.sol':
contract = SolidityContract(str(input_file), name=None, solc_args=None) contract = SolidityContract(str(input_file), name=None, solc_args=None)
sym = SymExecWrapper(contract, address=(util.get_indexed_address(0))) sym = SymExecWrapper(contract, address=(util.get_indexed_address(0)))
issues = fire_lasers(sym) issues = fire_lasers(sym)
@ -28,7 +27,7 @@ class GraphTest(TestCase):
html = generate_graph(sym) html = generate_graph(sym)
# (TEST_FILES / (input_file.name + ".graph.html")).write_text(html) # (TEST_FILES / "outputs" / (input_file.name + ".graph.html")).write_text(html)
expected = (TEST_FILES / (input_file.name + ".graph.html")).read_text() expected = (TEST_FILES / "outputs" / (input_file.name + ".graph.html")).read_text()
self.assertEqual(html, expected, "{}: graph html is changed".format(str(input_file))) self.assertEqual(html, expected, "{}: graph html is changed".format(str(input_file)))

@ -174,7 +174,6 @@ class IpcTest(TestCase):
def test_eth_getWork(self): def test_eth_getWork(self):
work = self.client.eth_getWork() work = self.client.eth_getWork()
print(work)
self.assertEqual(len(work), 3) self.assertEqual(len(work), 3)
self.assertTrue(work[0].startswith("0x"), "should be a hex") self.assertTrue(work[0].startswith("0x"), "should be a hex")
self.assertTrue(work[1].startswith("0x"), "should be a hex") self.assertTrue(work[1].startswith("0x"), "should be a hex")

@ -17,13 +17,12 @@ def _fix_debug_data(json_str):
read_json = json.loads(json_str) read_json = json.loads(json_str)
for issue in read_json["issues"]: for issue in read_json["issues"]:
issue["debug"] = "<DEBUG-DATA>" issue["debug"] = "<DEBUG-DATA>"
return json.dumps(read_json) return json.dumps(read_json, indent=4)
class AnalysisReportTest(TestCase): class AnalysisReportTest(TestCase):
def test_reports(self): def test_reports(self):
for input_file in TEST_FILES.iterdir(): for input_file in (TEST_FILES / "inputs").iterdir():
if input_file.is_file and input_file.suffix == '.sol':
contract = SolidityContract(str(input_file), name=None, solc_args=None) contract = SolidityContract(str(input_file), name=None, solc_args=None)
sym = SymExecWrapper(contract, address=(util.get_indexed_address(0))) sym = SymExecWrapper(contract, address=(util.get_indexed_address(0)))
issues = fire_lasers(sym) issues = fire_lasers(sym)
@ -35,13 +34,13 @@ class AnalysisReportTest(TestCase):
for issue in issues: for issue in issues:
report.append_issue(issue) report.append_issue(issue)
# (TEST_FILES / (input_file.name + ".text")).write_text(_fix_path(report.as_text())) # (TEST_FILES / "outputs" / (input_file.name + ".text")).write_text(_fix_path(report.as_text()))
# (TEST_FILES / (input_file.name + ".json")).write_text(_fix_path(_fix_debug_data(report.as_json()))) # (TEST_FILES / "outputs" / (input_file.name + ".json")).write_text(_fix_path(_fix_debug_data(report.as_json())))
# (TEST_FILES / (input_file.name + ".markdown")).write_text(_fix_path(report.as_markdown())) # (TEST_FILES / "outputs" / (input_file.name + ".markdown")).write_text(_fix_path(report.as_markdown()))
text = (TEST_FILES / (input_file.name + ".text")).read_text() text = (TEST_FILES / "outputs" / (input_file.name + ".text")).read_text()
json_report = (TEST_FILES / (input_file.name + ".json")).read_text() json_report = (TEST_FILES / "outputs" / (input_file.name + ".json")).read_text()
markdown = (TEST_FILES / (input_file.name + ".markdown")).read_text() markdown = (TEST_FILES / "outputs" / (input_file.name + ".markdown")).read_text()
self.assertEqual(_fix_path(report.as_text()), text, "{}: text report is changed".format(str(input_file))) self.assertEqual(_fix_path(report.as_text()), text, "{}: text report is changed".format(str(input_file)))
self.assertEqual(_fix_path(report.as_markdown()), markdown, "{}: markdown report is changed".format(str(input_file))) self.assertEqual(_fix_path(report.as_markdown()), markdown, "{}: markdown report is changed".format(str(input_file)))

@ -3,7 +3,7 @@ from pathlib import Path
from mythril.ether.soliditycontract import SolidityContract from mythril.ether.soliditycontract import SolidityContract
TEST_FILES = Path(__file__).parent / "testdata" TEST_FILES = Path(__file__).parent / "testdata/inputs"
class SolidityContractTest(TestCase): class SolidityContractTest(TestCase):

@ -1 +0,0 @@
{"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()"}]}

@ -1 +0,0 @@
{"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)"}]}

@ -1 +0,0 @@
{"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)"}]}

@ -1 +0,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)"}]}

@ -1 +0,0 @@
{"success": true, "error": null, "issues": []}

@ -1 +0,0 @@
{"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)"}]}

@ -1 +0,0 @@
{"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"}]}

@ -0,0 +1,105 @@
{
"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>/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.",
"function": "_function_0xe1d10f79",
"type": "Informational",
"address": 912,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/calls.sol",
"lineno": 25,
"code": "addr.call()"
}
]
}

@ -8,7 +8,7 @@
### 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: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.
In *<TEST_FILES>/calls.sol:25* In *<TEST_FILES>/inputs/calls.sol:25*
``` ```
addr.call() addr.call()

@ -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.
-------------------- --------------------
In file: <TEST_FILES>/calls.sol:25 In file: <TEST_FILES>/inputs/calls.sol:25
addr.call() addr.call()

@ -87,7 +87,7 @@
{id: '59', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n520 AND\n521 PUSH20 0xffffffff(...)\n542 AND\n543 DUP2\n544 MSTORE\n545 PUSH1 0x20\n547 ADD\n548 SWAP1\n549 DUP2\n550 MSTORE\n551 PUSH1 0x20\n553 ADD\n554 PUSH1 0x00\n556 SHA3\n557 SLOAD\n558 SWAP1\n559 POP\n560 SWAP1\n561 JUMP\n', 'truncLabel': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false}, {id: '59', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n520 AND\n521 PUSH20 0xffffffff(...)\n542 AND\n543 DUP2\n544 MSTORE\n545 PUSH1 0x20\n547 ADD\n548 SWAP1\n549 DUP2\n550 MSTORE\n551 PUSH1 0x20\n553 ADD\n554 PUSH1 0x00\n556 SHA3\n557 SLOAD\n558 SWAP1\n559 POP\n560 SWAP1\n561 JUMP\n', 'truncLabel': '492 JUMPDEST\n493 PUSH1 0x00\n495 DUP1\n496 PUSH1 0x00\n498 CALLER\n499 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false},
{id: '58', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'fullLabel': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'truncLabel': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'isExpanded': false}, {id: '58', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'fullLabel': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'truncLabel': '141 JUMPDEST\n142 PUSH2 0x0095\n145 PUSH2 0x01ec\n148 JUMP\n', 'isExpanded': false},
{id: '61', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'fullLabel': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'truncLabel': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'isExpanded': false}, {id: '61', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'fullLabel': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'truncLabel': '137 PUSH1 0x00\n139 DUP1\n140 REVERT\n', 'isExpanded': false},
{id: '57', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '130 getBalance()\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'fullLabel': '130 getBalance()\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'truncLabel': '130 getBalance()\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'isExpanded': false}, {id: '57', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '130 _function_0x12065fe0\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'fullLabel': '130 _function_0x12065fe0\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'truncLabel': '130 _function_0x12065fe0\n131 CALLVALUE\n132 ISZERO\n133 PUSH2 0x008d\n136 JUMPI\n', 'isExpanded': false},
{id: '66', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n(click to expand +)', 'fullLabel': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n233 MSTORE\n234 PUSH1 0x20\n236 ADD\n237 SWAP2\n238 POP\n239 POP\n240 PUSH1 0x40\n242 MLOAD\n243 DUP1\n244 SWAP2\n245 SUB\n246 SWAP1\n247 RETURN\n', 'truncLabel': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '66', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n(click to expand +)', 'fullLabel': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n233 MSTORE\n234 PUSH1 0x20\n236 ADD\n237 SWAP2\n238 POP\n239 POP\n240 PUSH1 0x40\n242 MLOAD\n243 DUP1\n244 SWAP2\n245 SUB\n246 SWAP1\n247 RETURN\n', 'truncLabel': '226 JUMPDEST\n227 PUSH1 0x40\n229 MLOAD\n230 DUP1\n231 DUP3\n232 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '65', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n(click to expand +)', 'fullLabel': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n571 MSTORE\n572 PUSH1 0x40\n574 PUSH1 0x00\n576 SHA3\n577 PUSH1 0x00\n579 SWAP2\n580 POP\n581 SWAP1\n582 POP\n583 SLOAD\n584 DUP2\n585 JUMP\n', 'truncLabel': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n(click to expand +)', 'isExpanded': false}, {id: '65', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n(click to expand +)', 'fullLabel': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n571 MSTORE\n572 PUSH1 0x40\n574 PUSH1 0x00\n576 SHA3\n577 PUSH1 0x00\n579 SWAP2\n580 POP\n581 SWAP1\n582 POP\n583 SLOAD\n584 DUP2\n585 JUMP\n', 'truncLabel': '562 JUMPDEST\n563 PUSH1 0x00\n565 PUSH1 0x20\n567 MSTORE\n568 DUP1\n569 PUSH1 0x00\n(click to expand +)', 'isExpanded': false},
{id: '64', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n(click to expand +)', 'fullLabel': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n191 PUSH20 0xffffffff(...)\n212 AND\n213 SWAP1\n214 PUSH1 0x20\n216 ADD\n217 SWAP1\n218 SWAP2\n219 SWAP1\n220 POP\n221 POP\n222 PUSH2 0x0232\n225 JUMP\n', 'truncLabel': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '64', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n(click to expand +)', 'fullLabel': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n191 PUSH20 0xffffffff(...)\n212 AND\n213 SWAP1\n214 PUSH1 0x20\n216 ADD\n217 SWAP1\n218 SWAP2\n219 SWAP1\n220 POP\n221 POP\n222 PUSH2 0x0232\n225 JUMP\n', 'truncLabel': '182 JUMPDEST\n183 PUSH2 0x00e2\n186 PUSH1 0x04\n188 DUP1\n189 DUP1\n190 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},

@ -0,0 +1,17 @@
{
"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>/inputs/ether_send.sol",
"lineno": 18,
"code": "msg.sender.transfer(this.balance)"
}
]
}

@ -10,7 +10,7 @@ In the function 'withdrawfunds()' a non-zero amount of Ether is sent to msg.send
There is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'. There is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'.
In *<TEST_FILES>/ether_send.sol:18* In *<TEST_FILES>/inputs/ether_send.sol:18*
``` ```
msg.sender.transfer(this.balance) msg.sender.transfer(this.balance)

@ -7,7 +7,7 @@ In the function 'withdrawfunds()' a non-zero amount of Ether is sent to msg.send
There is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'. There is a check on storage index 1. This storage slot can be written to by calling the function 'crowdfunding()'.
-------------------- --------------------
In file: <TEST_FILES>/ether_send.sol:18 In file: <TEST_FILES>/inputs/ether_send.sol:18
msg.sender.transfer(this.balance) msg.sender.transfer(this.balance)

@ -0,0 +1,50 @@
{
"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>/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. ",
"function": "_function_0xb34c3610",
"type": "Informational",
"address": 531,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/exceptions.sol",
"lineno": 7,
"code": "assert(i == 0)"
}
]
}

@ -8,7 +8,7 @@
### 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: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.
In *<TEST_FILES>/exceptions.sol:7* In *<TEST_FILES>/inputs/exceptions.sol:7*
``` ```
assert(i == 0) assert(i == 0)

@ -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.
-------------------- --------------------
In file: <TEST_FILES>/exceptions.sol:7 In file: <TEST_FILES>/inputs/exceptions.sol:7
assert(i == 0) assert(i == 0)

@ -0,0 +1,28 @@
{
"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>/inputs/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>/inputs/kinds_of_calls.sol",
"lineno": 6,
"code": "_e.call(bytes4(sha3(\"setN(uint256)\")), _n)"
}
]
}

@ -8,7 +8,7 @@
### 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>/kinds_of_calls.sol:6* In *<TEST_FILES>/inputs/kinds_of_calls.sol:6*
``` ```
_e.call(bytes4(sha3("setN(uint256)")), _n) _e.call(bytes4(sha3("setN(uint256)")), _n)
@ -22,7 +22,7 @@ _e.call(bytes4(sha3("setN(uint256)")), _n)
### 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>/kinds_of_calls.sol:6* In *<TEST_FILES>/inputs/kinds_of_calls.sol:6*
``` ```
_e.call(bytes4(sha3("setN(uint256)")), _n) _e.call(bytes4(sha3("setN(uint256)")), _n)

@ -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.
-------------------- --------------------
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)

@ -0,0 +1,5 @@
{
"success": true,
"error": null,
"issues": []
}

@ -80,7 +80,7 @@
{id: '238', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n(click to expand +)', 'fullLabel': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n122 SWAP1\n123 DUP2\n124 ISZERO\n125 MUL\n126 SWAP1\n127 PUSH1 0x40\n129 MLOAD\n130 PUSH1 0x00\n132 PUSH1 0x40\n134 MLOAD\n135 DUP1\n136 DUP4\n137 SUB\n138 DUP2\n139 DUP6\n140 DUP9\n141 DUP9\n142 CALL\n143 SWAP4\n144 POP\n145 POP\n146 POP\n147 POP\n148 ISZERO\n149 ISZERO\n150 PUSH1 0x9d\n152 JUMPI\n', 'truncLabel': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n(click to expand +)', 'isExpanded': false}, {id: '238', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n(click to expand +)', 'fullLabel': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n122 SWAP1\n123 DUP2\n124 ISZERO\n125 MUL\n126 SWAP1\n127 PUSH1 0x40\n129 MLOAD\n130 PUSH1 0x00\n132 PUSH1 0x40\n134 MLOAD\n135 DUP1\n136 DUP4\n137 SUB\n138 DUP2\n139 DUP6\n140 DUP9\n141 DUP9\n142 CALL\n143 SWAP4\n144 POP\n145 POP\n146 POP\n147 POP\n148 ISZERO\n149 ISZERO\n150 PUSH1 0x9d\n152 JUMPI\n', 'truncLabel': '86 JUMPDEST\n87 CALLER\n88 PUSH20 0xffffffff(...)\n109 AND\n110 PUSH2 0x08fc\n113 PUSH8 0x1bc16d67(...)\n(click to expand +)', 'isExpanded': false},
{id: '237', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'fullLabel': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'truncLabel': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'isExpanded': false}, {id: '237', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'fullLabel': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'truncLabel': '78 JUMPDEST\n79 PUSH1 0x54\n81 PUSH1 0x56\n83 JUMP\n', 'isExpanded': false},
{id: '242', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'fullLabel': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'truncLabel': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'isExpanded': false}, {id: '242', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'fullLabel': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'truncLabel': '74 PUSH1 0x00\n76 DUP1\n77 REVERT\n', 'isExpanded': false},
{id: '236', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '68 transfer()\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'fullLabel': '68 transfer()\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'truncLabel': '68 transfer()\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'isExpanded': false}, {id: '236', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '68 _function_0x8a4068dd\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'fullLabel': '68 _function_0x8a4068dd\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'truncLabel': '68 _function_0x8a4068dd\n69 CALLVALUE\n70 ISZERO\n71 PUSH1 0x4e\n73 JUMPI\n', 'isExpanded': false},
{id: '243', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'fullLabel': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'truncLabel': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'isExpanded': false}, {id: '243', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'fullLabel': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'truncLabel': '63 JUMPDEST\n64 PUSH1 0x00\n66 DUP1\n67 REVERT\n', 'isExpanded': false},
{id: '235', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n(click to expand +)', 'fullLabel': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n52 AND\n53 DUP1\n54 PUSH4 0x8a4068dd\n59 EQ\n60 PUSH1 0x44\n62 JUMPI\n', 'truncLabel': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n(click to expand +)', 'isExpanded': false}, {id: '235', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n(click to expand +)', 'fullLabel': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n52 AND\n53 DUP1\n54 PUSH4 0x8a4068dd\n59 EQ\n60 PUSH1 0x44\n62 JUMPI\n', 'truncLabel': '12 PUSH1 0x00\n14 CALLDATALOAD\n15 PUSH29 0x01000000(...)\n45 SWAP1\n46 DIV\n47 PUSH4 0xffffffff\n(click to expand +)', 'isExpanded': false},
{id: '233', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)', 'fullLabel': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n9 PUSH1 0x3f\n11 JUMPI\n', 'truncLabel': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)', 'isExpanded': false} {id: '233', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)', 'fullLabel': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n9 PUSH1 0x3f\n11 JUMPI\n', 'truncLabel': '0 PUSH1 0x60\n2 PUSH1 0x40\n4 MSTORE\n5 PUSH1 0x04\n7 CALLDATASIZE\n8 LT\n(click to expand +)', 'isExpanded': false}

@ -0,0 +1,17 @@
{
"success": true,
"error": null,
"issues": [
{
"title": "Ether send",
"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.",
"function": "_function_0x8a4068dd",
"type": "Warning",
"address": 142,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/multi_contracts.sol",
"lineno": 14,
"code": "msg.sender.transfer(2 ether)"
}
]
}

@ -2,14 +2,14 @@
## Ether send ## Ether send
- Type: Warning - Type: Warning
- Contract: Transfer2 - Contract: Transfer2
- Function name: `transfer()` - Function name: `_function_0x8a4068dd`
- PC address: 142 - PC address: 142
### Description ### Description
In the function 'transfer()' a non-zero amount of Ether is sent to msg.sender. In the function '_function_0x8a4068dd' a non-zero amount of Ether is sent to msg.sender.
It seems that this function can be called without restrictions. It seems that this function can be called without restrictions.
In *<TEST_FILES>/multi_contracts.sol:14* In *<TEST_FILES>/inputs/multi_contracts.sol:14*
``` ```
msg.sender.transfer(2 ether) msg.sender.transfer(2 ether)

@ -1,12 +1,12 @@
==== Ether send ==== ==== Ether send ====
Type: Warning Type: Warning
Contract: Transfer2 Contract: Transfer2
Function name: transfer() Function name: _function_0x8a4068dd
PC address: 142 PC address: 142
In the function 'transfer()' a non-zero amount of Ether is sent to msg.sender. In the function '_function_0x8a4068dd' a non-zero amount of Ether is sent to msg.sender.
It seems that this function can be called without restrictions. It seems that this function can be called without restrictions.
-------------------- --------------------
In file: <TEST_FILES>/multi_contracts.sol:14 In file: <TEST_FILES>/inputs/multi_contracts.sol:14
msg.sender.transfer(2 ether) msg.sender.transfer(2 ether)

@ -0,0 +1,17 @@
{
"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>/inputs/origin.sol",
"lineno": 18,
"code": "tx.origin"
}
]
}

@ -9,7 +9,7 @@
Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead. Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead.
See also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin See also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin
In *<TEST_FILES>/origin.sol:18* In *<TEST_FILES>/inputs/origin.sol:18*
``` ```
tx.origin tx.origin

@ -6,7 +6,7 @@ PC address: 317
Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead. Function transferOwnership(address) retrieves the transaction origin (tx.origin) using the ORIGIN opcode. Use tx.sender instead.
See also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin See also: https://solidity.readthedocs.io/en/develop/security-considerations.html#tx-origin
-------------------- --------------------
In file: <TEST_FILES>/origin.sol:18 In file: <TEST_FILES>/inputs/origin.sol:18
tx.origin tx.origin

@ -0,0 +1,39 @@
{
"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>/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.",
"function": "_function_0xe3bea282",
"type": "Informational",
"address": 285,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/returnvalue.sol",
"lineno": 6,
"code": "callee.call()"
}
]
}

@ -8,7 +8,7 @@
### 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>/returnvalue.sol:10* In *<TEST_FILES>/inputs/returnvalue.sol:10*
``` ```
callee.call() callee.call()
@ -22,7 +22,7 @@ callee.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>/returnvalue.sol:6* In *<TEST_FILES>/inputs/returnvalue.sol:6*
``` ```
callee.call() callee.call()
@ -36,7 +36,7 @@ callee.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>/returnvalue.sol:6* In *<TEST_FILES>/inputs/returnvalue.sol:6*
``` ```
callee.call() callee.call()

@ -5,7 +5,7 @@ Function name: _function_0x633ab5e0
PC address: 196 PC address: 196
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>/returnvalue.sol:10 In file: <TEST_FILES>/inputs/returnvalue.sol:10
callee.call() callee.call()
@ -18,7 +18,7 @@ Function name: _function_0xe3bea282
PC address: 285 PC address: 285
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>/returnvalue.sol:6 In file: <TEST_FILES>/inputs/returnvalue.sol:6
callee.call() callee.call()
@ -31,7 +31,7 @@ Function name: _function_0xe3bea282
PC address: 285 PC address: 285
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>/returnvalue.sol:6 In file: <TEST_FILES>/inputs/returnvalue.sol:6
callee.call() callee.call()

@ -2138,4 +2138,4 @@
4161 PUSH25 0x206d756c7469706c6965722e20436170706564206174203378 4161 PUSH25 0x206d756c7469706c6965722e20436170706564206174203378
4187 SHA3 4187 SHA3
4188 PUSH14 0x617820616e6420312e3278206d69 4188 PUSH14 0x617820616e6420312e3278206d69
4203 PUSH15 0x2ea165627a7a7230582020ce0f90c5 4203 PUSH15 0x2ea165627a7a7230582057e44753db

@ -165,13 +165,13 @@
{id: '360', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'fullLabel': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'truncLabel': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'isExpanded': false}, {id: '360', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'fullLabel': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'truncLabel': '1287 JUMPDEST\n1288 PUSH1 0x00\n1290 PUSH2 0x0511\n1293 PUSH2 0x0d6b\n1296 JUMP\n', 'isExpanded': false},
{id: '359', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'fullLabel': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'truncLabel': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'isExpanded': false}, {id: '359', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'fullLabel': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'truncLabel': '251 JUMPDEST\n252 PUSH2 0x0103\n255 PUSH2 0x0507\n258 JUMP\n', 'isExpanded': false},
{id: '375', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'fullLabel': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'truncLabel': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'isExpanded': false}, {id: '375', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'fullLabel': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'truncLabel': '247 PUSH1 0x00\n249 DUP1\n250 REVERT\n', 'isExpanded': false},
{id: '358', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '240 currentPyramidBalanceApproximately()\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'fullLabel': '240 currentPyramidBalanceApproximately()\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'truncLabel': '240 currentPyramidBalanceApproximately()\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'isExpanded': false}, {id: '358', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '240 _function_0x09dfdc71\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'fullLabel': '240 _function_0x09dfdc71\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'truncLabel': '240 _function_0x09dfdc71\n241 CALLVALUE\n242 ISZERO\n243 PUSH2 0x00fb\n246 JUMPI\n', 'isExpanded': false},
{id: '381', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n(click to expand +)', 'fullLabel': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n415 MSTORE\n416 PUSH1 0x20\n418 ADD\n419 SWAP2\n420 POP\n421 POP\n422 PUSH1 0x40\n424 MLOAD\n425 DUP1\n426 SWAP2\n427 SUB\n428 SWAP1\n429 RETURN\n', 'truncLabel': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '381', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n(click to expand +)', 'fullLabel': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n415 MSTORE\n416 PUSH1 0x20\n418 ADD\n419 SWAP2\n420 POP\n421 POP\n422 PUSH1 0x40\n424 MLOAD\n425 DUP1\n426 SWAP2\n427 SUB\n428 SWAP1\n429 RETURN\n', 'truncLabel': '408 JUMPDEST\n409 PUSH1 0x40\n411 MLOAD\n412 DUP1\n413 DUP3\n414 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '380', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n(click to expand +)', 'fullLabel': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n', 'truncLabel': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n(click to expand +)', 'isExpanded': false}, {id: '380', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n(click to expand +)', 'fullLabel': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n', 'truncLabel': '1377 JUMPDEST\n1378 DIV\n1379 SWAP1\n1380 POP\n1381 SWAP1\n1382 JUMP\n(click to expand +)', 'isExpanded': false},
{id: '379', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n(click to expand +)', 'fullLabel': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n1370 ISZERO\n1371 ISZERO\n1372 PUSH2 0x0561\n1375 JUMPI\n', 'truncLabel': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '379', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n(click to expand +)', 'fullLabel': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n1370 ISZERO\n1371 ISZERO\n1372 PUSH2 0x0561\n1375 JUMPI\n', 'truncLabel': '1354 JUMPDEST\n1355 PUSH1 0x00\n1357 PUSH8 0x0de0b6b3(...)\n1366 PUSH1 0x01\n1368 SLOAD\n1369 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '378', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'fullLabel': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'truncLabel': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'isExpanded': false}, {id: '378', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'fullLabel': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'truncLabel': '400 JUMPDEST\n401 PUSH2 0x0198\n404 PUSH2 0x054a\n407 JUMP\n', 'isExpanded': false},
{id: '382', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'fullLabel': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'truncLabel': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'isExpanded': false}, {id: '382', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'fullLabel': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'truncLabel': '396 PUSH1 0x00\n398 DUP1\n399 REVERT\n', 'isExpanded': false},
{id: '377', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '389 feesSeperateFromBalanceApproximately()\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'fullLabel': '389 feesSeperateFromBalanceApproximately()\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'truncLabel': '389 feesSeperateFromBalanceApproximately()\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'isExpanded': false}, {id: '377', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '389 _function_0x253459e3\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'fullLabel': '389 _function_0x253459e3\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'truncLabel': '389 _function_0x253459e3\n390 CALLVALUE\n391 ISZERO\n392 PUSH2 0x0190\n395 JUMPI\n', 'isExpanded': false},
{id: '388', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '463 JUMPDEST\n464 STOP\n', 'fullLabel': '463 JUMPDEST\n464 STOP\n', 'truncLabel': '463 JUMPDEST\n464 STOP\n', 'isExpanded': false}, {id: '388', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '463 JUMPDEST\n464 STOP\n', 'fullLabel': '463 JUMPDEST\n464 STOP\n', 'truncLabel': '463 JUMPDEST\n464 STOP\n', 'isExpanded': false},
{id: '387', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'fullLabel': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'truncLabel': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'isExpanded': false}, {id: '387', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'fullLabel': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'truncLabel': '1622 JUMPDEST\n1623 POP\n1624 POP\n1625 JUMP\n', 'isExpanded': false},
{id: '393', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '463 JUMPDEST\n464 STOP\n', 'fullLabel': '463 JUMPDEST\n464 STOP\n', 'truncLabel': '463 JUMPDEST\n464 STOP\n', 'isExpanded': false}, {id: '393', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '463 JUMPDEST\n464 STOP\n', 'fullLabel': '463 JUMPDEST\n464 STOP\n', 'truncLabel': '463 JUMPDEST\n464 STOP\n', 'isExpanded': false},
@ -188,7 +188,7 @@
{id: '386', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n(click to expand +)', 'fullLabel': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n1392 SWAP1\n1393 PUSH2 0x0100\n1396 EXP\n1397 SWAP1\n1398 DIV\n1399 PUSH20 0xffffffff(...)\n1420 AND\n1421 PUSH20 0xffffffff(...)\n1442 AND\n1443 CALLER\n1444 PUSH20 0xffffffff(...)\n1465 AND\n1466 EQ\n1467 ISZERO\n1468 PUSH2 0x0656\n1471 JUMPI\n', 'truncLabel': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n(click to expand +)', 'isExpanded': false}, {id: '386', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n(click to expand +)', 'fullLabel': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n1392 SWAP1\n1393 PUSH2 0x0100\n1396 EXP\n1397 SWAP1\n1398 DIV\n1399 PUSH20 0xffffffff(...)\n1420 AND\n1421 PUSH20 0xffffffff(...)\n1442 AND\n1443 CALLER\n1444 PUSH20 0xffffffff(...)\n1465 AND\n1466 EQ\n1467 ISZERO\n1468 PUSH2 0x0656\n1471 JUMPI\n', 'truncLabel': '1383 JUMPDEST\n1384 PUSH1 0x00\n1386 PUSH1 0x05\n1388 PUSH1 0x00\n1390 SWAP1\n1391 SLOAD\n(click to expand +)', 'isExpanded': false},
{id: '385', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n(click to expand +)', 'fullLabel': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n450 SWAP1\n451 PUSH1 0x20\n453 ADD\n454 SWAP1\n455 SWAP2\n456 SWAP1\n457 POP\n458 POP\n459 PUSH2 0x0567\n462 JUMP\n', 'truncLabel': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '385', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n(click to expand +)', 'fullLabel': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n450 SWAP1\n451 PUSH1 0x20\n453 ADD\n454 SWAP1\n455 SWAP2\n456 SWAP1\n457 POP\n458 POP\n459 PUSH2 0x0567\n462 JUMP\n', 'truncLabel': '441 JUMPDEST\n442 PUSH2 0x01cf\n445 PUSH1 0x04\n447 DUP1\n448 DUP1\n449 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '400', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'fullLabel': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'truncLabel': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'isExpanded': false}, {id: '400', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'fullLabel': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'truncLabel': '437 PUSH1 0x00\n439 DUP1\n440 REVERT\n', 'isExpanded': false},
{id: '384', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '430 collectPercentOfFees(uint256)\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'fullLabel': '430 collectPercentOfFees(uint256)\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'truncLabel': '430 collectPercentOfFees(uint256)\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'isExpanded': false}, {id: '384', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '430 _function_0x4229616d\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'fullLabel': '430 _function_0x4229616d\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'truncLabel': '430 _function_0x4229616d\n431 CALLVALUE\n432 ISZERO\n433 PUSH2 0x01b9\n436 JUMPI\n', 'isExpanded': false},
{id: '407', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n(click to expand +)', 'fullLabel': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n491 MSTORE\n492 PUSH1 0x20\n494 ADD\n495 SWAP2\n496 POP\n497 POP\n498 PUSH1 0x40\n500 MLOAD\n501 DUP1\n502 SWAP2\n503 SUB\n504 SWAP1\n505 RETURN\n', 'truncLabel': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '407', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n(click to expand +)', 'fullLabel': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n491 MSTORE\n492 PUSH1 0x20\n494 ADD\n495 SWAP2\n496 POP\n497 POP\n498 PUSH1 0x40\n500 MLOAD\n501 DUP1\n502 SWAP2\n503 SUB\n504 SWAP1\n505 RETURN\n', 'truncLabel': '484 JUMPDEST\n485 PUSH1 0x40\n487 MLOAD\n488 DUP1\n489 DUP3\n490 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '406', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n(click to expand +)', 'fullLabel': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n', 'truncLabel': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n(click to expand +)', 'isExpanded': false}, {id: '406', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n(click to expand +)', 'fullLabel': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n', 'truncLabel': '1681 JUMPDEST\n1682 DIV\n1683 SWAP1\n1684 POP\n1685 SWAP1\n1686 JUMP\n(click to expand +)', 'isExpanded': false},
{id: '405', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n(click to expand +)', 'fullLabel': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n1663 SHA3\n1664 SWAP1\n1665 PUSH1 0x02\n1667 MUL\n1668 ADD\n1669 PUSH1 0x01\n1671 ADD\n1672 SLOAD\n1673 DUP2\n1674 ISZERO\n1675 ISZERO\n1676 PUSH2 0x0691\n1679 JUMPI\n', 'truncLabel': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n(click to expand +)', 'isExpanded': false}, {id: '405', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n(click to expand +)', 'fullLabel': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n1663 SHA3\n1664 SWAP1\n1665 PUSH1 0x02\n1667 MUL\n1668 ADD\n1669 PUSH1 0x01\n1671 ADD\n1672 SLOAD\n1673 DUP2\n1674 ISZERO\n1675 ISZERO\n1676 PUSH2 0x0691\n1679 JUMPI\n', 'truncLabel': '1654 JUMPDEST\n1655 SWAP1\n1656 PUSH1 0x00\n1658 MSTORE\n1659 PUSH1 0x20\n1661 PUSH1 0x00\n(click to expand +)', 'isExpanded': false},
@ -196,12 +196,12 @@
{id: '404', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n(click to expand +)', 'fullLabel': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n1643 DUP2\n1644 SLOAD\n1645 DUP2\n1646 LT\n1647 ISZERO\n1648 ISZERO\n1649 PUSH2 0x0676\n1652 JUMPI\n', 'truncLabel': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n(click to expand +)', 'isExpanded': false}, {id: '404', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n(click to expand +)', 'fullLabel': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n1643 DUP2\n1644 SLOAD\n1645 DUP2\n1646 LT\n1647 ISZERO\n1648 ISZERO\n1649 PUSH2 0x0676\n1652 JUMPI\n', 'truncLabel': '1626 JUMPDEST\n1627 PUSH1 0x00\n1629 PUSH8 0x0de0b6b3(...)\n1638 PUSH1 0x06\n1640 PUSH1 0x04\n1642 SLOAD\n(click to expand +)', 'isExpanded': false},
{id: '403', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'fullLabel': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'truncLabel': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'isExpanded': false}, {id: '403', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'fullLabel': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'truncLabel': '476 JUMPDEST\n477 PUSH2 0x01e4\n480 PUSH2 0x065a\n483 JUMP\n', 'isExpanded': false},
{id: '409', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'fullLabel': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'truncLabel': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'isExpanded': false}, {id: '409', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'fullLabel': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'truncLabel': '472 PUSH1 0x00\n474 DUP1\n475 REVERT\n', 'isExpanded': false},
{id: '402', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '465 nextPayoutWhenPyramidBalanceTotalsApproximately()\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'fullLabel': '465 nextPayoutWhenPyramidBalanceTotalsApproximately()\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'truncLabel': '465 nextPayoutWhenPyramidBalanceTotalsApproximately()\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'isExpanded': false}, {id: '402', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '465 _function_0x57d4021b\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'fullLabel': '465 _function_0x57d4021b\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'truncLabel': '465 _function_0x57d4021b\n466 CALLVALUE\n467 ISZERO\n468 PUSH2 0x01dc\n471 JUMPI\n', 'isExpanded': false},
{id: '414', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '525 JUMPDEST\n526 STOP\n', 'fullLabel': '525 JUMPDEST\n526 STOP\n', 'truncLabel': '525 JUMPDEST\n526 STOP\n', 'isExpanded': false}, {id: '414', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '525 JUMPDEST\n526 STOP\n', 'fullLabel': '525 JUMPDEST\n526 STOP\n', 'truncLabel': '525 JUMPDEST\n526 STOP\n', 'isExpanded': false},
{id: '413', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n(click to expand +)', 'fullLabel': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n1697 DUP2\n1698 SLOAD\n1699 DUP2\n1700 PUSH20 0xffffffff(...)\n1721 MUL\n1722 NOT\n1723 AND\n1724 SWAP1\n1725 DUP4\n1726 PUSH20 0xffffffff(...)\n1747 AND\n1748 MUL\n1749 OR\n1750 SWAP1\n1751 SSTORE\n1752 POP\n1753 JUMP\n', 'truncLabel': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n(click to expand +)', 'isExpanded': false}, {id: '413', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n(click to expand +)', 'fullLabel': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n1697 DUP2\n1698 SLOAD\n1699 DUP2\n1700 PUSH20 0xffffffff(...)\n1721 MUL\n1722 NOT\n1723 AND\n1724 SWAP1\n1725 DUP4\n1726 PUSH20 0xffffffff(...)\n1747 AND\n1748 MUL\n1749 OR\n1750 SWAP1\n1751 SSTORE\n1752 POP\n1753 JUMP\n', 'truncLabel': '1687 JUMPDEST\n1688 CALLER\n1689 PUSH1 0x05\n1691 PUSH1 0x00\n1693 PUSH2 0x0100\n1696 EXP\n(click to expand +)', 'isExpanded': false},
{id: '412', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'fullLabel': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'truncLabel': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'isExpanded': false}, {id: '412', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'fullLabel': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'truncLabel': '517 JUMPDEST\n518 PUSH2 0x020d\n521 PUSH2 0x0697\n524 JUMP\n', 'isExpanded': false},
{id: '415', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'fullLabel': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'truncLabel': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'isExpanded': false}, {id: '415', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'fullLabel': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'truncLabel': '513 PUSH1 0x00\n515 DUP1\n516 REVERT\n', 'isExpanded': false},
{id: '411', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '506 DynamicPyramid()\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'fullLabel': '506 DynamicPyramid()\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'truncLabel': '506 DynamicPyramid()\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'isExpanded': false}, {id: '411', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '506 _function_0x67f809e9\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'fullLabel': '506 _function_0x67f809e9\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'truncLabel': '506 _function_0x67f809e9\n507 CALLVALUE\n508 ISZERO\n509 PUSH2 0x0205\n512 JUMPI\n', 'isExpanded': false},
{id: '421', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '546 JUMPDEST\n547 STOP\n', 'fullLabel': '546 JUMPDEST\n547 STOP\n', 'truncLabel': '546 JUMPDEST\n547 STOP\n', 'isExpanded': false}, {id: '421', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '546 JUMPDEST\n547 STOP\n', 'fullLabel': '546 JUMPDEST\n547 STOP\n', 'truncLabel': '546 JUMPDEST\n547 STOP\n', 'isExpanded': false},
{id: '420', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1955 JUMPDEST\n1956 JUMP\n', 'fullLabel': '1955 JUMPDEST\n1956 JUMP\n', 'truncLabel': '1955 JUMPDEST\n1956 JUMP\n', 'isExpanded': false}, {id: '420', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1955 JUMPDEST\n1956 JUMP\n', 'fullLabel': '1955 JUMPDEST\n1956 JUMP\n', 'truncLabel': '1955 JUMPDEST\n1956 JUMP\n', 'isExpanded': false},
{id: '424', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '546 JUMPDEST\n547 STOP\n', 'fullLabel': '546 JUMPDEST\n547 STOP\n', 'truncLabel': '546 JUMPDEST\n547 STOP\n', 'isExpanded': false}, {id: '424', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '546 JUMPDEST\n547 STOP\n', 'fullLabel': '546 JUMPDEST\n547 STOP\n', 'truncLabel': '546 JUMPDEST\n547 STOP\n', 'isExpanded': false},
@ -211,7 +211,7 @@
{id: '419', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n(click to expand +)', 'fullLabel': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n1762 PUSH2 0x0100\n1765 EXP\n1766 SWAP1\n1767 DIV\n1768 PUSH20 0xffffffff(...)\n1789 AND\n1790 PUSH20 0xffffffff(...)\n1811 AND\n1812 CALLER\n1813 PUSH20 0xffffffff(...)\n1834 AND\n1835 EQ\n1836 ISZERO\n1837 PUSH2 0x07a3\n1840 JUMPI\n', 'truncLabel': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '419', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n(click to expand +)', 'fullLabel': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n1762 PUSH2 0x0100\n1765 EXP\n1766 SWAP1\n1767 DIV\n1768 PUSH20 0xffffffff(...)\n1789 AND\n1790 PUSH20 0xffffffff(...)\n1811 AND\n1812 CALLER\n1813 PUSH20 0xffffffff(...)\n1834 AND\n1835 EQ\n1836 ISZERO\n1837 PUSH2 0x07a3\n1840 JUMPI\n', 'truncLabel': '1754 JUMPDEST\n1755 PUSH1 0x05\n1757 PUSH1 0x00\n1759 SWAP1\n1760 SLOAD\n1761 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '418', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'fullLabel': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'truncLabel': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'isExpanded': false}, {id: '418', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'fullLabel': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'truncLabel': '538 JUMPDEST\n539 PUSH2 0x0222\n542 PUSH2 0x06da\n545 JUMP\n', 'isExpanded': false},
{id: '426', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'fullLabel': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'truncLabel': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'isExpanded': false}, {id: '426', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'fullLabel': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'truncLabel': '534 PUSH1 0x00\n536 DUP1\n537 REVERT\n', 'isExpanded': false},
{id: '417', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '527 collectAllFees()\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'fullLabel': '527 collectAllFees()\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'truncLabel': '527 collectAllFees()\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'isExpanded': false}, {id: '417', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '527 _function_0x686f2c90\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'fullLabel': '527 _function_0x686f2c90\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'truncLabel': '527 _function_0x686f2c90\n528 CALLVALUE\n529 ISZERO\n530 PUSH2 0x021a\n533 JUMPI\n', 'isExpanded': false},
{id: '445', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'fullLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n618 JUMPI\n619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n625 ADD\n626 MSTORE\n627 PUSH1 0x20\n629 DUP2\n630 ADD\n631 SWAP1\n632 POP\n633 PUSH2 0x0262\n636 JUMP\n', 'truncLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'isExpanded': false}, {id: '445', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'fullLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n618 JUMPI\n619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n625 ADD\n626 MSTORE\n627 PUSH1 0x20\n629 DUP2\n630 ADD\n631 SWAP1\n632 POP\n633 PUSH2 0x0262\n636 JUMP\n', 'truncLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'isExpanded': false},
{id: '444', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n(click to expand +)', 'fullLabel': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n625 ADD\n626 MSTORE\n627 PUSH1 0x20\n629 DUP2\n630 ADD\n631 SWAP1\n632 POP\n633 PUSH2 0x0262\n636 JUMP\n', 'truncLabel': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n(click to expand +)', 'isExpanded': false}, {id: '444', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n(click to expand +)', 'fullLabel': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n625 ADD\n626 MSTORE\n627 PUSH1 0x20\n629 DUP2\n630 ADD\n631 SWAP1\n632 POP\n633 PUSH2 0x0262\n636 JUMP\n', 'truncLabel': '619 DUP1\n620 DUP3\n621 ADD\n622 MLOAD\n623 DUP2\n624 DUP5\n(click to expand +)', 'isExpanded': false},
{id: '443', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'fullLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n618 JUMPI\n', 'truncLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'isExpanded': false}, {id: '443', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'fullLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n618 JUMPI\n', 'truncLabel': '610 JUMPDEST\n611 DUP4\n612 DUP2\n613 LT\n614 ISZERO\n615 PUSH2 0x027d\n(click to expand +)', 'isExpanded': false},
@ -230,7 +230,7 @@
{id: '430', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'fullLabel': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'truncLabel': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'isExpanded': false}, {id: '430', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'fullLabel': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'truncLabel': '1957 JUMPDEST\n1958 PUSH1 0x00\n1960 PUSH2 0x07af\n1963 PUSH2 0x0d6b\n1966 JUMP\n', 'isExpanded': false},
{id: '429', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'fullLabel': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'truncLabel': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'isExpanded': false}, {id: '429', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'fullLabel': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'truncLabel': '559 JUMPDEST\n560 PUSH2 0x0237\n563 PUSH2 0x07a5\n566 JUMP\n', 'isExpanded': false},
{id: '446', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'fullLabel': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'truncLabel': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'isExpanded': false}, {id: '446', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'fullLabel': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'truncLabel': '555 PUSH1 0x00\n557 DUP1\n558 REVERT\n', 'isExpanded': false},
{id: '428', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '548 currentMultiplier()\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'fullLabel': '548 currentMultiplier()\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'truncLabel': '548 currentMultiplier()\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'isExpanded': false}, {id: '428', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '548 _function_0x6fbaaa1e\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'fullLabel': '548 _function_0x6fbaaa1e\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'truncLabel': '548 _function_0x6fbaaa1e\n549 CALLVALUE\n550 ISZERO\n551 PUSH2 0x022f\n554 JUMPI\n', 'isExpanded': false},
{id: '464', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n(click to expand +)', 'fullLabel': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n792 POP\n793 SWAP1\n794 DUP2\n795 ADD\n796 SWAP1\n797 PUSH1 0x1f\n799 AND\n800 DUP1\n801 ISZERO\n802 PUSH2 0x033f\n805 JUMPI\n806 DUP1\n807 DUP3\n808 SUB\n809 DUP1\n810 MLOAD\n811 PUSH1 0x01\n813 DUP4\n814 PUSH1 0x20\n816 SUB\n817 PUSH2 0x0100\n820 EXP\n821 SUB\n822 NOT\n823 AND\n824 DUP2\n825 MSTORE\n826 PUSH1 0x20\n828 ADD\n829 SWAP2\n830 POP\n831 JUMPDEST\n832 POP\n833 SWAP4\n834 POP\n835 POP\n836 POP\n837 POP\n838 PUSH1 0x40\n840 MLOAD\n841 DUP1\n842 SWAP2\n843 SUB\n844 SWAP1\n845 RETURN\n', 'truncLabel': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '464', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n(click to expand +)', 'fullLabel': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n792 POP\n793 SWAP1\n794 DUP2\n795 ADD\n796 SWAP1\n797 PUSH1 0x1f\n799 AND\n800 DUP1\n801 ISZERO\n802 PUSH2 0x033f\n805 JUMPI\n806 DUP1\n807 DUP3\n808 SUB\n809 DUP1\n810 MLOAD\n811 PUSH1 0x01\n813 DUP4\n814 PUSH1 0x20\n816 SUB\n817 PUSH2 0x0100\n820 EXP\n821 SUB\n822 NOT\n823 AND\n824 DUP2\n825 MSTORE\n826 PUSH1 0x20\n828 ADD\n829 SWAP2\n830 POP\n831 JUMPDEST\n832 POP\n833 SWAP4\n834 POP\n835 POP\n836 POP\n837 POP\n838 PUSH1 0x40\n840 MLOAD\n841 DUP1\n842 SWAP2\n843 SUB\n844 SWAP1\n845 RETURN\n', 'truncLabel': '786 JUMPDEST\n787 POP\n788 POP\n789 POP\n790 POP\n791 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '463', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n(click to expand +)', 'fullLabel': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n767 JUMPI\n', 'truncLabel': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n(click to expand +)', 'isExpanded': false}, {id: '463', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n(click to expand +)', 'fullLabel': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n767 JUMPI\n', 'truncLabel': '759 JUMPDEST\n760 DUP4\n761 DUP2\n762 LT\n763 ISZERO\n764 PUSH2 0x0312\n(click to expand +)', 'isExpanded': false},
{id: '462', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n(click to expand +)', 'fullLabel': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n774 ADD\n775 MSTORE\n776 PUSH1 0x20\n778 DUP2\n779 ADD\n780 SWAP1\n781 POP\n782 PUSH2 0x02f7\n785 JUMP\n', 'truncLabel': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n(click to expand +)', 'isExpanded': false}, {id: '462', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n(click to expand +)', 'fullLabel': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n774 ADD\n775 MSTORE\n776 PUSH1 0x20\n778 DUP2\n779 ADD\n780 SWAP1\n781 POP\n782 PUSH2 0x02f7\n785 JUMP\n', 'truncLabel': '768 DUP1\n769 DUP3\n770 ADD\n771 MLOAD\n772 DUP2\n773 DUP5\n(click to expand +)', 'isExpanded': false},
@ -248,7 +248,7 @@
{id: '450', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'fullLabel': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'truncLabel': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'isExpanded': false}, {id: '450', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'fullLabel': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'truncLabel': '2007 JUMPDEST\n2008 PUSH1 0x00\n2010 PUSH2 0x07e1\n2013 PUSH2 0x0d6b\n2016 JUMP\n', 'isExpanded': false},
{id: '449', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'fullLabel': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'truncLabel': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'isExpanded': false}, {id: '449', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'fullLabel': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'truncLabel': '708 JUMPDEST\n709 PUSH2 0x02cc\n712 PUSH2 0x07d7\n715 JUMP\n', 'isExpanded': false},
{id: '465', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'fullLabel': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'truncLabel': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'isExpanded': false}, {id: '465', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'fullLabel': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'truncLabel': '704 PUSH1 0x00\n706 DUP1\n707 REVERT\n', 'isExpanded': false},
{id: '448', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '697 currentFeePercentage()\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'fullLabel': '697 currentFeePercentage()\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'truncLabel': '697 currentFeePercentage()\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'isExpanded': false}, {id: '448', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '697 _function_0x8a5fb3ca\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'fullLabel': '697 _function_0x8a5fb3ca\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'truncLabel': '697 _function_0x8a5fb3ca\n698 CALLVALUE\n699 ISZERO\n700 PUSH2 0x02c4\n703 JUMPI\n', 'isExpanded': false},
{id: '471', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n906 AND\n907 PUSH20 0xffffffff(...)\n928 AND\n929 DUP2\n930 MSTORE\n931 PUSH1 0x20\n933 ADD\n934 DUP3\n935 DUP2\n936 MSTORE\n937 PUSH1 0x20\n939 ADD\n940 SWAP3\n941 POP\n942 POP\n943 POP\n944 PUSH1 0x40\n946 MLOAD\n947 DUP1\n948 SWAP2\n949 SUB\n950 SWAP1\n951 RETURN\n', 'truncLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false}, {id: '471', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n906 AND\n907 PUSH20 0xffffffff(...)\n928 AND\n929 DUP2\n930 MSTORE\n931 PUSH1 0x20\n933 ADD\n934 DUP3\n935 DUP2\n936 MSTORE\n937 PUSH1 0x20\n939 ADD\n940 SWAP3\n941 POP\n942 POP\n943 POP\n944 PUSH1 0x40\n946 MLOAD\n947 DUP1\n948 SWAP2\n949 SUB\n950 SWAP1\n951 RETURN\n', 'truncLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false},
{id: '470', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'fullLabel': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'truncLabel': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'isExpanded': false}, {id: '470', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'fullLabel': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'truncLabel': '2193 JUMPDEST\n2194 SWAP2\n2195 POP\n2196 SWAP2\n2197 JUMP\n', 'isExpanded': false},
{id: '476', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n906 AND\n907 PUSH20 0xffffffff(...)\n928 AND\n929 DUP2\n930 MSTORE\n931 PUSH1 0x20\n933 ADD\n934 DUP3\n935 DUP2\n936 MSTORE\n937 PUSH1 0x20\n939 ADD\n940 SWAP3\n941 POP\n942 POP\n943 POP\n944 PUSH1 0x40\n946 MLOAD\n947 DUP1\n948 SWAP2\n949 SUB\n950 SWAP1\n951 RETURN\n', 'truncLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false}, {id: '476', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'fullLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n906 AND\n907 PUSH20 0xffffffff(...)\n928 AND\n929 DUP2\n930 MSTORE\n931 PUSH1 0x20\n933 ADD\n934 DUP3\n935 DUP2\n936 MSTORE\n937 PUSH1 0x20\n939 ADD\n940 SWAP3\n941 POP\n942 POP\n943 POP\n944 PUSH1 0x40\n946 MLOAD\n947 DUP1\n948 SWAP2\n949 SUB\n950 SWAP1\n951 RETURN\n', 'truncLabel': '879 JUMPDEST\n880 PUSH1 0x40\n882 MLOAD\n883 DUP1\n884 DUP4\n885 PUSH20 0xffffffff(...)\n(click to expand +)', 'isExpanded': false},
@ -261,12 +261,12 @@
{id: '469', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n(click to expand +)', 'fullLabel': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n2062 SWAP1\n2063 POP\n2064 DUP4\n2065 GT\n2066 ISZERO\n2067 ISZERO\n2068 PUSH2 0x0891\n2071 JUMPI\n', 'truncLabel': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n(click to expand +)', 'isExpanded': false}, {id: '469', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n(click to expand +)', 'fullLabel': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n2062 SWAP1\n2063 POP\n2064 DUP4\n2065 GT\n2066 ISZERO\n2067 ISZERO\n2068 PUSH2 0x0891\n2071 JUMPI\n', 'truncLabel': '2054 JUMPDEST\n2055 PUSH1 0x00\n2057 DUP1\n2058 PUSH1 0x06\n2060 DUP1\n2061 SLOAD\n(click to expand +)', 'isExpanded': false},
{id: '468', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n(click to expand +)', 'fullLabel': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n866 SWAP1\n867 PUSH1 0x20\n869 ADD\n870 SWAP1\n871 SWAP2\n872 SWAP1\n873 POP\n874 POP\n875 PUSH2 0x0806\n878 JUMP\n', 'truncLabel': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '468', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n(click to expand +)', 'fullLabel': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n866 SWAP1\n867 PUSH1 0x20\n869 ADD\n870 SWAP1\n871 SWAP2\n872 SWAP1\n873 POP\n874 POP\n875 PUSH2 0x0806\n878 JUMP\n', 'truncLabel': '857 JUMPDEST\n858 PUSH2 0x036f\n861 PUSH1 0x04\n863 DUP1\n864 DUP1\n865 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '479', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'fullLabel': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'truncLabel': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'isExpanded': false}, {id: '479', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'fullLabel': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'truncLabel': '853 PUSH1 0x00\n855 DUP1\n856 REVERT\n', 'isExpanded': false},
{id: '467', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '846 participantDetails(uint256)\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'fullLabel': '846 participantDetails(uint256)\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'truncLabel': '846 participantDetails(uint256)\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'isExpanded': false}, {id: '467', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '846 _function_0x9dbc4f9b\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'fullLabel': '846 _function_0x9dbc4f9b\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'truncLabel': '846 _function_0x9dbc4f9b\n847 CALLVALUE\n848 ISZERO\n849 PUSH2 0x0359\n852 JUMPI\n', 'isExpanded': false},
{id: '484', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n(click to expand +)', 'fullLabel': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n978 MSTORE\n979 PUSH1 0x20\n981 ADD\n982 SWAP2\n983 POP\n984 POP\n985 PUSH1 0x40\n987 MLOAD\n988 DUP1\n989 SWAP2\n990 SUB\n991 SWAP1\n992 RETURN\n', 'truncLabel': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '484', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n(click to expand +)', 'fullLabel': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n978 MSTORE\n979 PUSH1 0x20\n981 ADD\n982 SWAP2\n983 POP\n984 POP\n985 PUSH1 0x40\n987 MLOAD\n988 DUP1\n989 SWAP2\n990 SUB\n991 SWAP1\n992 RETURN\n', 'truncLabel': '971 JUMPDEST\n972 PUSH1 0x40\n974 MLOAD\n975 DUP1\n976 DUP3\n977 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '483', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n(click to expand +)', 'fullLabel': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n2206 POP\n2207 SWAP1\n2208 POP\n2209 SWAP1\n2210 JUMP\n', 'truncLabel': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '483', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n(click to expand +)', 'fullLabel': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n2206 POP\n2207 SWAP1\n2208 POP\n2209 SWAP1\n2210 JUMP\n', 'truncLabel': '2198 JUMPDEST\n2199 PUSH1 0x00\n2201 PUSH1 0x06\n2203 DUP1\n2204 SLOAD\n2205 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '482', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'fullLabel': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'truncLabel': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'isExpanded': false}, {id: '482', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'fullLabel': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'truncLabel': '963 JUMPDEST\n964 PUSH2 0x03cb\n967 PUSH2 0x0896\n970 JUMP\n', 'isExpanded': false},
{id: '485', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'fullLabel': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'truncLabel': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'isExpanded': false}, {id: '485', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'fullLabel': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'truncLabel': '959 PUSH1 0x00\n961 DUP1\n962 REVERT\n', 'isExpanded': false},
{id: '481', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '952 totalParticipants()\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'fullLabel': '952 totalParticipants()\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'truncLabel': '952 totalParticipants()\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'isExpanded': false}, {id: '481', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '952 _function_0xa26dbf26\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'fullLabel': '952 _function_0xa26dbf26\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'truncLabel': '952 _function_0xa26dbf26\n953 CALLVALUE\n954 ISZERO\n955 PUSH2 0x03c3\n958 JUMPI\n', 'isExpanded': false},
{id: '491', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1048 JUMPDEST\n1049 STOP\n', 'fullLabel': '1048 JUMPDEST\n1049 STOP\n', 'truncLabel': '1048 JUMPDEST\n1049 STOP\n', 'isExpanded': false}, {id: '491', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1048 JUMPDEST\n1049 STOP\n', 'fullLabel': '1048 JUMPDEST\n1049 STOP\n', 'truncLabel': '1048 JUMPDEST\n1049 STOP\n', 'isExpanded': false},
{id: '490', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'fullLabel': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'truncLabel': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'isExpanded': false}, {id: '490', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'fullLabel': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'truncLabel': '2363 JUMPDEST\n2364 POP\n2365 JUMP\n', 'isExpanded': false},
{id: '493', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1048 JUMPDEST\n1049 STOP\n', 'fullLabel': '1048 JUMPDEST\n1049 STOP\n', 'truncLabel': '1048 JUMPDEST\n1049 STOP\n', 'isExpanded': false}, {id: '493', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1048 JUMPDEST\n1049 STOP\n', 'fullLabel': '1048 JUMPDEST\n1049 STOP\n', 'truncLabel': '1048 JUMPDEST\n1049 STOP\n', 'isExpanded': false},
@ -274,7 +274,7 @@
{id: '489', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n(click to expand +)', 'fullLabel': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n2219 PUSH2 0x0100\n2222 EXP\n2223 SWAP1\n2224 DIV\n2225 PUSH20 0xffffffff(...)\n2246 AND\n2247 PUSH20 0xffffffff(...)\n2268 AND\n2269 CALLER\n2270 PUSH20 0xffffffff(...)\n2291 AND\n2292 EQ\n2293 ISZERO\n2294 PUSH2 0x093b\n2297 JUMPI\n', 'truncLabel': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '489', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n(click to expand +)', 'fullLabel': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n2219 PUSH2 0x0100\n2222 EXP\n2223 SWAP1\n2224 DIV\n2225 PUSH20 0xffffffff(...)\n2246 AND\n2247 PUSH20 0xffffffff(...)\n2268 AND\n2269 CALLER\n2270 PUSH20 0xffffffff(...)\n2291 AND\n2292 EQ\n2293 ISZERO\n2294 PUSH2 0x093b\n2297 JUMPI\n', 'truncLabel': '2211 JUMPDEST\n2212 PUSH1 0x05\n2214 PUSH1 0x00\n2216 SWAP1\n2217 SLOAD\n2218 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '488', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n1013 PUSH20 0xffffffff(...)\n1034 AND\n1035 SWAP1\n1036 PUSH1 0x20\n1038 ADD\n1039 SWAP1\n1040 SWAP2\n1041 SWAP1\n1042 POP\n1043 POP\n1044 PUSH2 0x08a3\n1047 JUMP\n', 'truncLabel': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '488', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n1013 PUSH20 0xffffffff(...)\n1034 AND\n1035 SWAP1\n1036 PUSH1 0x20\n1038 ADD\n1039 SWAP1\n1040 SWAP2\n1041 SWAP1\n1042 POP\n1043 POP\n1044 PUSH2 0x08a3\n1047 JUMP\n', 'truncLabel': '1004 JUMPDEST\n1005 PUSH2 0x0418\n1008 PUSH1 0x04\n1010 DUP1\n1011 DUP1\n1012 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '494', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'fullLabel': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'truncLabel': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'isExpanded': false}, {id: '494', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'fullLabel': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'truncLabel': '1000 PUSH1 0x00\n1002 DUP1\n1003 REVERT\n', 'isExpanded': false},
{id: '487', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '993 changeOwner(address)\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'fullLabel': '993 changeOwner(address)\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'truncLabel': '993 changeOwner(address)\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'isExpanded': false}, {id: '487', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '993 _function_0xa6f9dae1\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'fullLabel': '993 _function_0xa6f9dae1\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'truncLabel': '993 _function_0xa6f9dae1\n994 CALLVALUE\n995 ISZERO\n996 PUSH2 0x03ec\n999 JUMPI\n', 'isExpanded': false},
{id: '500', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1083 JUMPDEST\n1084 STOP\n', 'fullLabel': '1083 JUMPDEST\n1084 STOP\n', 'truncLabel': '1083 JUMPDEST\n1084 STOP\n', 'isExpanded': false}, {id: '500', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1083 JUMPDEST\n1084 STOP\n', 'fullLabel': '1083 JUMPDEST\n1084 STOP\n', 'truncLabel': '1083 JUMPDEST\n1084 STOP\n', 'isExpanded': false},
{id: '499', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'fullLabel': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'truncLabel': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'isExpanded': false}, {id: '499', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'fullLabel': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'truncLabel': '2605 JUMPDEST\n2606 POP\n2607 JUMP\n', 'isExpanded': false},
{id: '504', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1083 JUMPDEST\n1084 STOP\n', 'fullLabel': '1083 JUMPDEST\n1084 STOP\n', 'truncLabel': '1083 JUMPDEST\n1084 STOP\n', 'isExpanded': false}, {id: '504', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1083 JUMPDEST\n1084 STOP\n', 'fullLabel': '1083 JUMPDEST\n1084 STOP\n', 'truncLabel': '1083 JUMPDEST\n1084 STOP\n', 'isExpanded': false},
@ -299,7 +299,7 @@
{id: '498', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n(click to expand +)', 'fullLabel': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n2374 PUSH2 0x0100\n2377 EXP\n2378 SWAP1\n2379 DIV\n2380 PUSH20 0xffffffff(...)\n2401 AND\n2402 PUSH20 0xffffffff(...)\n2423 AND\n2424 CALLER\n2425 PUSH20 0xffffffff(...)\n2446 AND\n2447 EQ\n2448 ISZERO\n2449 PUSH2 0x0a2d\n2452 JUMPI\n', 'truncLabel': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '498', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n(click to expand +)', 'fullLabel': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n2374 PUSH2 0x0100\n2377 EXP\n2378 SWAP1\n2379 DIV\n2380 PUSH20 0xffffffff(...)\n2401 AND\n2402 PUSH20 0xffffffff(...)\n2423 AND\n2424 CALLER\n2425 PUSH20 0xffffffff(...)\n2446 AND\n2447 EQ\n2448 ISZERO\n2449 PUSH2 0x0a2d\n2452 JUMPI\n', 'truncLabel': '2366 JUMPDEST\n2367 PUSH1 0x05\n2369 PUSH1 0x00\n2371 SWAP1\n2372 SLOAD\n2373 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '497', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n1070 SWAP1\n1071 PUSH1 0x20\n1073 ADD\n1074 SWAP1\n1075 SWAP2\n1076 SWAP1\n1077 POP\n1078 POP\n1079 PUSH2 0x093e\n1082 JUMP\n', 'truncLabel': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '497', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n1070 SWAP1\n1071 PUSH1 0x20\n1073 ADD\n1074 SWAP1\n1075 SWAP2\n1076 SWAP1\n1077 POP\n1078 POP\n1079 PUSH2 0x093e\n1082 JUMP\n', 'truncLabel': '1061 JUMPDEST\n1062 PUSH2 0x043b\n1065 PUSH1 0x04\n1067 DUP1\n1068 DUP1\n1069 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '520', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'fullLabel': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'truncLabel': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'isExpanded': false}, {id: '520', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'fullLabel': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'truncLabel': '1057 PUSH1 0x00\n1059 DUP1\n1060 REVERT\n', 'isExpanded': false},
{id: '496', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1050 collectFeesInEther(uint256)\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'fullLabel': '1050 collectFeesInEther(uint256)\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'truncLabel': '1050 collectFeesInEther(uint256)\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'isExpanded': false}, {id: '496', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1050 _function_0xb4022950\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'fullLabel': '1050 _function_0xb4022950\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'truncLabel': '1050 _function_0xb4022950\n1051 CALLVALUE\n1052 ISZERO\n1053 PUSH2 0x0425\n1056 JUMPI\n', 'isExpanded': false},
{id: '526', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1118 JUMPDEST\n1119 STOP\n', 'fullLabel': '1118 JUMPDEST\n1119 STOP\n', 'truncLabel': '1118 JUMPDEST\n1119 STOP\n', 'isExpanded': false}, {id: '526', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1118 JUMPDEST\n1119 STOP\n', 'fullLabel': '1118 JUMPDEST\n1119 STOP\n', 'truncLabel': '1118 JUMPDEST\n1119 STOP\n', 'isExpanded': false},
{id: '525', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'fullLabel': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'truncLabel': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'isExpanded': false}, {id: '525', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'fullLabel': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'truncLabel': '2728 JUMPDEST\n2729 POP\n2730 JUMP\n', 'isExpanded': false},
{id: '530', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1118 JUMPDEST\n1119 STOP\n', 'fullLabel': '1118 JUMPDEST\n1119 STOP\n', 'truncLabel': '1118 JUMPDEST\n1119 STOP\n', 'isExpanded': false}, {id: '530', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1118 JUMPDEST\n1119 STOP\n', 'fullLabel': '1118 JUMPDEST\n1119 STOP\n', 'truncLabel': '1118 JUMPDEST\n1119 STOP\n', 'isExpanded': false},
@ -314,12 +314,12 @@
{id: '524', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n(click to expand +)', 'fullLabel': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n2616 PUSH2 0x0100\n2619 EXP\n2620 SWAP1\n2621 DIV\n2622 PUSH20 0xffffffff(...)\n2643 AND\n2644 PUSH20 0xffffffff(...)\n2665 AND\n2666 CALLER\n2667 PUSH20 0xffffffff(...)\n2688 AND\n2689 EQ\n2690 ISZERO\n2691 PUSH2 0x0aa8\n2694 JUMPI\n', 'truncLabel': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '524', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n(click to expand +)', 'fullLabel': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n2616 PUSH2 0x0100\n2619 EXP\n2620 SWAP1\n2621 DIV\n2622 PUSH20 0xffffffff(...)\n2643 AND\n2644 PUSH20 0xffffffff(...)\n2665 AND\n2666 CALLER\n2667 PUSH20 0xffffffff(...)\n2688 AND\n2689 EQ\n2690 ISZERO\n2691 PUSH2 0x0aa8\n2694 JUMPI\n', 'truncLabel': '2608 JUMPDEST\n2609 PUSH1 0x05\n2611 PUSH1 0x00\n2613 SWAP1\n2614 SLOAD\n2615 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '523', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n1105 SWAP1\n1106 PUSH1 0x20\n1108 ADD\n1109 SWAP1\n1110 SWAP2\n1111 SWAP1\n1112 POP\n1113 POP\n1114 PUSH2 0x0a30\n1117 JUMP\n', 'truncLabel': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '523', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n1105 SWAP1\n1106 PUSH1 0x20\n1108 ADD\n1109 SWAP1\n1110 SWAP2\n1111 SWAP1\n1112 POP\n1113 POP\n1114 PUSH2 0x0a30\n1117 JUMP\n', 'truncLabel': '1096 JUMPDEST\n1097 PUSH2 0x045e\n1100 PUSH1 0x04\n1102 DUP1\n1103 DUP1\n1104 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '536', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'fullLabel': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'truncLabel': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'isExpanded': false}, {id: '536', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'fullLabel': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'truncLabel': '1092 PUSH1 0x00\n1094 DUP1\n1095 REVERT\n', 'isExpanded': false},
{id: '522', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1085 changeMultiplier(uint256)\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'fullLabel': '1085 changeMultiplier(uint256)\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'truncLabel': '1085 changeMultiplier(uint256)\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'isExpanded': false}, {id: '522', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1085 _function_0xced92670\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'fullLabel': '1085 _function_0xced92670\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'truncLabel': '1085 _function_0xced92670\n1086 CALLVALUE\n1087 ISZERO\n1088 PUSH2 0x0448\n1091 JUMPI\n', 'isExpanded': false},
{id: '541', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n(click to expand +)', 'fullLabel': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n1146 MSTORE\n1147 PUSH1 0x20\n1149 ADD\n1150 SWAP2\n1151 POP\n1152 POP\n1153 PUSH1 0x40\n1155 MLOAD\n1156 DUP1\n1157 SWAP2\n1158 SUB\n1159 SWAP1\n1160 RETURN\n', 'truncLabel': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n(click to expand +)', 'isExpanded': false}, {id: '541', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n(click to expand +)', 'fullLabel': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n1146 MSTORE\n1147 PUSH1 0x20\n1149 ADD\n1150 SWAP2\n1151 POP\n1152 POP\n1153 PUSH1 0x40\n1155 MLOAD\n1156 DUP1\n1157 SWAP2\n1158 SUB\n1159 SWAP1\n1160 RETURN\n', 'truncLabel': '1139 JUMPDEST\n1140 PUSH1 0x40\n1142 MLOAD\n1143 DUP1\n1144 DUP3\n1145 DUP2\n(click to expand +)', 'isExpanded': false},
{id: '540', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n(click to expand +)', 'fullLabel': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n2740 SLOAD\n2741 SWAP1\n2742 POP\n2743 SUB\n2744 SWAP1\n2745 POP\n2746 SWAP1\n2747 JUMP\n', 'truncLabel': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n(click to expand +)', 'isExpanded': false}, {id: '540', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n(click to expand +)', 'fullLabel': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n2740 SLOAD\n2741 SWAP1\n2742 POP\n2743 SUB\n2744 SWAP1\n2745 POP\n2746 SWAP1\n2747 JUMP\n', 'truncLabel': '2731 JUMPDEST\n2732 PUSH1 0x00\n2734 PUSH1 0x04\n2736 SLOAD\n2737 PUSH1 0x06\n2739 DUP1\n(click to expand +)', 'isExpanded': false},
{id: '539', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'fullLabel': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'truncLabel': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'isExpanded': false}, {id: '539', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'fullLabel': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'truncLabel': '1131 JUMPDEST\n1132 PUSH2 0x0473\n1135 PUSH2 0x0aab\n1138 JUMP\n', 'isExpanded': false},
{id: '542', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'fullLabel': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'truncLabel': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'isExpanded': false}, {id: '542', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'fullLabel': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'truncLabel': '1127 PUSH1 0x00\n1129 DUP1\n1130 REVERT\n', 'isExpanded': false},
{id: '538', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1120 numberOfParticipantsWaitingForPayout()\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'fullLabel': '1120 numberOfParticipantsWaitingForPayout()\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'truncLabel': '1120 numberOfParticipantsWaitingForPayout()\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'isExpanded': false}, {id: '538', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1120 _function_0xd11f13df\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'fullLabel': '1120 _function_0xd11f13df\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'truncLabel': '1120 _function_0xd11f13df\n1121 CALLVALUE\n1122 ISZERO\n1123 PUSH2 0x046b\n1126 JUMPI\n', 'isExpanded': false},
{id: '548', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1194 JUMPDEST\n1195 STOP\n', 'fullLabel': '1194 JUMPDEST\n1195 STOP\n', 'truncLabel': '1194 JUMPDEST\n1195 STOP\n', 'isExpanded': false}, {id: '548', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1194 JUMPDEST\n1195 STOP\n', 'fullLabel': '1194 JUMPDEST\n1195 STOP\n', 'truncLabel': '1194 JUMPDEST\n1195 STOP\n', 'isExpanded': false},
{id: '547', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'fullLabel': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'truncLabel': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'isExpanded': false}, {id: '547', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'fullLabel': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'truncLabel': '2856 JUMPDEST\n2857 POP\n2858 JUMP\n', 'isExpanded': false},
{id: '551', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1194 JUMPDEST\n1195 STOP\n', 'fullLabel': '1194 JUMPDEST\n1195 STOP\n', 'truncLabel': '1194 JUMPDEST\n1195 STOP\n', 'isExpanded': false}, {id: '551', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1194 JUMPDEST\n1195 STOP\n', 'fullLabel': '1194 JUMPDEST\n1195 STOP\n', 'truncLabel': '1194 JUMPDEST\n1195 STOP\n', 'isExpanded': false},
@ -329,7 +329,7 @@
{id: '546', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n(click to expand +)', 'fullLabel': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n2756 PUSH2 0x0100\n2759 EXP\n2760 SWAP1\n2761 DIV\n2762 PUSH20 0xffffffff(...)\n2783 AND\n2784 PUSH20 0xffffffff(...)\n2805 AND\n2806 CALLER\n2807 PUSH20 0xffffffff(...)\n2828 AND\n2829 EQ\n2830 ISZERO\n2831 PUSH2 0x0b28\n2834 JUMPI\n', 'truncLabel': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n(click to expand +)', 'isExpanded': false}, {id: '546', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n(click to expand +)', 'fullLabel': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n2756 PUSH2 0x0100\n2759 EXP\n2760 SWAP1\n2761 DIV\n2762 PUSH20 0xffffffff(...)\n2783 AND\n2784 PUSH20 0xffffffff(...)\n2805 AND\n2806 CALLER\n2807 PUSH20 0xffffffff(...)\n2828 AND\n2829 EQ\n2830 ISZERO\n2831 PUSH2 0x0b28\n2834 JUMPI\n', 'truncLabel': '2748 JUMPDEST\n2749 PUSH1 0x05\n2751 PUSH1 0x00\n2753 SWAP1\n2754 SLOAD\n2755 SWAP1\n(click to expand +)', 'isExpanded': false},
{id: '545', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n1181 SWAP1\n1182 PUSH1 0x20\n1184 ADD\n1185 SWAP1\n1186 SWAP2\n1187 SWAP1\n1188 POP\n1189 POP\n1190 PUSH2 0x0abc\n1193 JUMP\n', 'truncLabel': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n(click to expand +)', 'isExpanded': false}, {id: '545', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n(click to expand +)', 'fullLabel': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n1181 SWAP1\n1182 PUSH1 0x20\n1184 ADD\n1185 SWAP1\n1186 SWAP2\n1187 SWAP1\n1188 POP\n1189 POP\n1190 PUSH2 0x0abc\n1193 JUMP\n', 'truncLabel': '1172 JUMPDEST\n1173 PUSH2 0x04aa\n1176 PUSH1 0x04\n1178 DUP1\n1179 DUP1\n1180 CALLDATALOAD\n(click to expand +)', 'isExpanded': false},
{id: '553', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'fullLabel': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'truncLabel': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'isExpanded': false}, {id: '553', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'fullLabel': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'truncLabel': '1168 PUSH1 0x00\n1170 DUP1\n1171 REVERT\n', 'isExpanded': false},
{id: '544', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1161 changeFeePercentage(uint256)\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'fullLabel': '1161 changeFeePercentage(uint256)\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'truncLabel': '1161 changeFeePercentage(uint256)\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'isExpanded': false}, {id: '544', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '1161 _function_0xfae14192\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'fullLabel': '1161 _function_0xfae14192\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'truncLabel': '1161 _function_0xfae14192\n1162 CALLVALUE\n1163 ISZERO\n1164 PUSH2 0x0494\n1167 JUMPI\n', 'isExpanded': false},
{id: '566', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n(click to expand +)', 'fullLabel': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n3120 SLOAD\n3121 ADD\n3122 SWAP3\n3123 POP\n3124 POP\n3125 DUP2\n3126 SWAP1\n3127 SSTORE\n3128 POP\n3129 PUSH1 0x64\n3131 DUP3\n3132 CALLVALUE\n3133 MUL\n3134 DUP2\n3135 ISZERO\n3136 ISZERO\n3137 PUSH2 0x0c46\n3140 JUMPI\n3141 ASSERT_FAIL\n', 'truncLabel': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n(click to expand +)', 'isExpanded': false}, {id: '566', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n(click to expand +)', 'fullLabel': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n3120 SLOAD\n3121 ADD\n3122 SWAP3\n3123 POP\n3124 POP\n3125 DUP2\n3126 SWAP1\n3127 SSTORE\n3128 POP\n3129 PUSH1 0x64\n3131 DUP3\n3132 CALLVALUE\n3133 MUL\n3134 DUP2\n3135 ISZERO\n3136 ISZERO\n3137 PUSH2 0x0c46\n3140 JUMPI\n3141 ASSERT_FAIL\n', 'truncLabel': '3113 JUMPDEST\n3114 DIV\n3115 PUSH1 0x00\n3117 DUP1\n3118 DUP3\n3119 DUP3\n(click to expand +)', 'isExpanded': false},
{id: '565', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n(click to expand +)', 'fullLabel': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n3103 CALLVALUE\n3104 MUL\n3105 DUP2\n3106 ISZERO\n3107 ISZERO\n3108 PUSH2 0x0c29\n3111 JUMPI\n', 'truncLabel': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n(click to expand +)', 'isExpanded': false}, {id: '565', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n(click to expand +)', 'fullLabel': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n3103 CALLVALUE\n3104 MUL\n3105 DUP2\n3106 ISZERO\n3107 ISZERO\n3108 PUSH2 0x0c29\n3111 JUMPI\n', 'truncLabel': '3095 JUMPDEST\n3096 JUMPDEST\n3097 PUSH1 0x64\n3099 DUP3\n3100 PUSH1 0x64\n3102 SUB\n(click to expand +)', 'isExpanded': false},
{id: '569', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n(click to expand +)', 'fullLabel': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n3150 SLOAD\n3151 ADD\n3152 SWAP3\n3153 POP\n3154 POP\n3155 DUP2\n3156 SWAP1\n3157 SSTORE\n3158 POP\n3159 JUMPDEST\n3160 PUSH1 0x06\n3162 PUSH1 0x04\n3164 SLOAD\n3165 DUP2\n3166 SLOAD\n3167 DUP2\n3168 LT\n3169 ISZERO\n3170 ISZERO\n3171 PUSH2 0x0c68\n3174 JUMPI\n3175 ASSERT_FAIL\n', 'truncLabel': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n(click to expand +)', 'isExpanded': false}, {id: '569', color: {border: '#26996f', background: '#2f7e5b', highlight: {border: '#26996f', background: '#28a16f'}}, size: 150, 'label': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n(click to expand +)', 'fullLabel': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n3150 SLOAD\n3151 ADD\n3152 SWAP3\n3153 POP\n3154 POP\n3155 DUP2\n3156 SWAP1\n3157 SSTORE\n3158 POP\n3159 JUMPDEST\n3160 PUSH1 0x06\n3162 PUSH1 0x04\n3164 SLOAD\n3165 DUP2\n3166 SLOAD\n3167 DUP2\n3168 LT\n3169 ISZERO\n3170 ISZERO\n3171 PUSH2 0x0c68\n3174 JUMPI\n3175 ASSERT_FAIL\n', 'truncLabel': '3142 JUMPDEST\n3143 DIV\n3144 PUSH1 0x01\n3146 PUSH1 0x00\n3148 DUP3\n3149 DUP3\n(click to expand +)', 'isExpanded': false},

@ -0,0 +1,94 @@
{
"success": true,
"error": null,
"issues": [
{
"title": "Ether send",
"description": "In the function '_function_0x4229616d' a non-zero amount of Ether is sent to an address taken from storage slot 5.\nThere is a check on storage index 5. This storage slot can be written to by calling the function '_function_0x67f809e9'.\n\nThere is a check on storage index 5. This storage slot can be written to by calling the function '_function_0x67f809e9'.\nThere is a check on storage index 1. This storage slot can be written to by calling the function 'fallback'.",
"function": "_function_0x4229616d",
"type": "Warning",
"address": 1599,
"debug": "<DEBUG-DATA>",
"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.",
"function": "_function_0xb4022950",
"type": "Informational",
"address": 2582,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/rubixi.sol",
"lineno": 85,
"code": "creator.send(_amt)"
}
]
}

@ -2,17 +2,17 @@
## Ether send ## Ether send
- Type: Warning - Type: Warning
- Contract: Rubixi - Contract: Rubixi
- Function name: `collectPercentOfFees(uint256)` - Function name: `_function_0x4229616d`
- PC address: 1599 - PC address: 1599
### Description ### Description
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.
The substraction may result in a value < 0. The substraction may result in a value < 0.
In *<TEST_FILES>/rubixi.sol:143* In *<TEST_FILES>/inputs/rubixi.sol:143*
``` ```
participants.length - payoutOrder participants.length - payoutOrder
@ -81,13 +81,13 @@ participants.length - payoutOrder
## Unchecked CALL return value ## Unchecked CALL return value
- Type: Informational - Type: Informational
- Contract: Rubixi - Contract: Rubixi
- Function name: `collectPercentOfFees(uint256)` - Function name: `_function_0x4229616d`
- PC address: 1599 - PC address: 1599
### 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>/rubixi.sol:93* In *<TEST_FILES>/inputs/rubixi.sol:93*
``` ```
creator.send(feesToCollect) creator.send(feesToCollect)
@ -95,13 +95,13 @@ creator.send(feesToCollect)
## Unchecked CALL return value ## Unchecked CALL return value
- Type: Informational - Type: Informational
- Contract: Rubixi - Contract: Rubixi
- Function name: `collectFeesInEther(uint256)` - Function name: `_function_0xb4022950`
- PC address: 1940 - PC address: 1940
### 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>/rubixi.sol:75* In *<TEST_FILES>/inputs/rubixi.sol:75*
``` ```
creator.send(collectedFees) creator.send(collectedFees)
@ -109,13 +109,13 @@ creator.send(collectedFees)
## Unchecked CALL return value ## Unchecked CALL return value
- Type: Informational - Type: Informational
- Contract: Rubixi - Contract: Rubixi
- Function name: `collectFeesInEther(uint256)` - Function name: `_function_0xb4022950`
- PC address: 2582 - PC address: 2582
### 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>/rubixi.sol:85* In *<TEST_FILES>/inputs/rubixi.sol:85*
``` ```
creator.send(_amt) creator.send(_amt)

@ -1,15 +1,15 @@
==== Ether send ==== ==== Ether send ====
Type: Warning Type: Warning
Contract: Rubixi Contract: Rubixi
Function name: collectPercentOfFees(uint256) Function name: _function_0x4229616d
PC address: 1599 PC address: 1599
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.
The substraction may result in a value < 0. The substraction may result in a value < 0.
-------------------- --------------------
In file: <TEST_FILES>/rubixi.sol:143 In file: <TEST_FILES>/inputs/rubixi.sol:143
participants.length - payoutOrder participants.length - payoutOrder
@ -75,11 +75,11 @@ participants.length - payoutOrder
==== Unchecked CALL return value ==== ==== Unchecked CALL return value ====
Type: Informational Type: Informational
Contract: Rubixi Contract: Rubixi
Function name: collectPercentOfFees(uint256) Function name: _function_0x4229616d
PC address: 1599 PC address: 1599
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>/rubixi.sol:93 In file: <TEST_FILES>/inputs/rubixi.sol:93
creator.send(feesToCollect) creator.send(feesToCollect)
@ -88,11 +88,11 @@ creator.send(feesToCollect)
==== Unchecked CALL return value ==== ==== Unchecked CALL return value ====
Type: Informational Type: Informational
Contract: Rubixi Contract: Rubixi
Function name: collectFeesInEther(uint256) Function name: _function_0xb4022950
PC address: 1940 PC address: 1940
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>/rubixi.sol:75 In file: <TEST_FILES>/inputs/rubixi.sol:75
creator.send(collectedFees) creator.send(collectedFees)
@ -101,11 +101,11 @@ creator.send(collectedFees)
==== Unchecked CALL return value ==== ==== Unchecked CALL return value ====
Type: Informational Type: Informational
Contract: Rubixi Contract: Rubixi
Function name: collectFeesInEther(uint256) Function name: _function_0xb4022950
PC address: 2582 PC address: 2582
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>/rubixi.sol:85 In file: <TEST_FILES>/inputs/rubixi.sol:85
creator.send(_amt) creator.send(_amt)

@ -0,0 +1,17 @@
{
"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>/inputs/suicide.sol",
"lineno": 4,
"code": "selfdestruct(addr)"
}
]
}

@ -10,7 +10,7 @@ The function _function_0xcbf0b0c0 executes the SUICIDE instruction. The remainin
It seems that this function can be called without restrictions. It seems that this function can be called without restrictions.
In *<TEST_FILES>/suicide.sol:4* In *<TEST_FILES>/inputs/suicide.sol:4*
``` ```
selfdestruct(addr) selfdestruct(addr)

@ -7,7 +7,7 @@ The function _function_0xcbf0b0c0 executes the SUICIDE instruction. The remainin
It seems that this function can be called without restrictions. It seems that this function can be called without restrictions.
-------------------- --------------------
In file: <TEST_FILES>/suicide.sol:4 In file: <TEST_FILES>/inputs/suicide.sol:4
selfdestruct(addr) selfdestruct(addr)

@ -0,0 +1,28 @@
{
"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>/inputs/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>/inputs/underflow.sol",
"lineno": 11,
"code": "balances[msg.sender] - _value"
}
]
}

@ -9,7 +9,7 @@
A possible integer underflow exists in the function sendeth(address,uint256). A possible integer underflow exists in the function sendeth(address,uint256).
The substraction may result in a value < 0. The substraction may result in a value < 0.
In *<TEST_FILES>/underflow.sol:12* In *<TEST_FILES>/inputs/underflow.sol:12*
``` ```
balances[msg.sender] -= _value balances[msg.sender] -= _value
@ -24,7 +24,7 @@ balances[msg.sender] -= _value
A possible integer underflow exists in the function sendeth(address,uint256). A possible integer underflow exists in the function sendeth(address,uint256).
The substraction may result in a value < 0. The substraction may result in a value < 0.
In *<TEST_FILES>/underflow.sol:11* In *<TEST_FILES>/inputs/underflow.sol:11*
``` ```
balances[msg.sender] - _value balances[msg.sender] - _value

@ -6,7 +6,7 @@ PC address: 649
A possible integer underflow exists in the function sendeth(address,uint256). A possible integer underflow exists in the function sendeth(address,uint256).
The substraction may result in a value < 0. The substraction may result in a value < 0.
-------------------- --------------------
In file: <TEST_FILES>/underflow.sol:12 In file: <TEST_FILES>/inputs/underflow.sol:12
balances[msg.sender] -= _value balances[msg.sender] -= _value
@ -20,7 +20,7 @@ PC address: 567
A possible integer underflow exists in the function sendeth(address,uint256). A possible integer underflow exists in the function sendeth(address,uint256).
The substraction may result in a value < 0. The substraction may result in a value < 0.
-------------------- --------------------
In file: <TEST_FILES>/underflow.sol:11 In file: <TEST_FILES>/inputs/underflow.sol:11
balances[msg.sender] - _value balances[msg.sender] - _value

@ -0,0 +1,50 @@
{
"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>/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. ",
"function": "_function_0xe9874106",
"type": "Informational",
"address": 146,
"debug": "<DEBUG-DATA>",
"filename": "<TEST_FILES>/inputs/weak_random.sol",
"lineno": 11,
"code": "prize / totalTickets"
}
]
}

@ -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.
In *<TEST_FILES>/weak_random.sol:11* In *<TEST_FILES>/inputs/weak_random.sol:11*
``` ```
prize / totalTickets prize / totalTickets

@ -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.
-------------------- --------------------
In file: <TEST_FILES>/weak_random.sol:11 In file: <TEST_FILES>/inputs/weak_random.sol:11
prize / totalTickets prize / totalTickets

@ -1 +0,0 @@
{"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()"}]}

@ -1 +0,0 @@
{"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)"}]}

@ -1 +0,0 @@
{"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)"}]}

@ -1 +0,0 @@
{"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"}]}

@ -1 +0,0 @@
{"success": true, "error": null, "issues": [{"title": "Dependence on predictable environment variable", "description": "In the function '_function_0xe9874106' the following predictable state variables are used to determine Ether recipient:\n- block.coinbase\n", "function": "_function_0xe9874106", "type": "Warning", "address": 1285, "debug": "<DEBUG-DATA>", "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"}]}
Loading…
Cancel
Save