UNPKG

@hyperlane-xyz/core

Version:

Core solidity contracts for Hyperlane

439 lines (438 loc) 12.1 kB
[ { "elements": [ { "type": "function", "name": "peel", "source_mapping": { "start": 1695, "length": 824, "filename_relative": "contracts/periphery/TransferOnion.sol", "filename_short": "contracts/periphery/TransferOnion.sol", "is_dependency": false, "lines": [ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TransferOnion", "source_mapping": { "start": 636, "length": 1885, "filename_relative": "contracts/periphery/TransferOnion.sol", "filename_short": "contracts/periphery/TransferOnion.sol", "is_dependency": false, "lines": [ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 ], "starting_column": 1, "ending_column": 2 } }, "signature": "peel(TransferOnion.Layer[])" } }, { "type": "node", "name": "TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount)", "source_mapping": { "start": 2300, "length": 61, "filename_relative": "contracts/periphery/TransferOnion.sol", "filename_short": "contracts/periphery/TransferOnion.sol", "is_dependency": false, "lines": [ 78 ], "starting_column": 13, "ending_column": 74 }, "type_specific_fields": { "parent": { "type": "function", "name": "peel", "source_mapping": { "start": 1695, "length": 824, "filename_relative": "contracts/periphery/TransferOnion.sol", "filename_short": "contracts/periphery/TransferOnion.sol", "is_dependency": false, "lines": [ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TransferOnion", "source_mapping": { "start": 636, "length": 1885, "filename_relative": "contracts/periphery/TransferOnion.sol", "filename_short": "contracts/periphery/TransferOnion.sol", "is_dependency": false, "lines": [ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 ], "starting_column": 1, "ending_column": 2 } }, "signature": "peel(TransferOnion.Layer[])" } } } } ], "description": "TransferOnion.peel(TransferOnion.Layer[]) (contracts/periphery/TransferOnion.sol#62-87) uses arbitrary from in transferFrom: TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount) (contracts/periphery/TransferOnion.sol#78)\n", "markdown": "[TransferOnion.peel(TransferOnion.Layer[])](contracts/periphery/TransferOnion.sol#L62-L87) uses arbitrary from in transferFrom: [TOKEN.safeTransferFrom(SENDER,layer.recipient,layer.amount)](contracts/periphery/TransferOnion.sol#L78)\n", "first_markdown_element": "contracts/periphery/TransferOnion.sol#L62-L87", "id": "e4e68870e9d2f8a7caf9d32b8d2b1f57af2bdef51f45724b1b49397f117c3ffe", "check": "arbitrary-send-erc20", "impact": "High", "confidence": "High" }, { "elements": [ { "type": "function", "name": "donate", "source_mapping": { "start": 710, "length": 92, "filename_relative": "contracts/deployment/PortalSender.sol", "filename_short": "contracts/deployment/PortalSender.sol", "is_dependency": false, "lines": [ 27, 28, 29 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "PortalSender", "source_mapping": { "start": 328, "length": 476, "filename_relative": "contracts/deployment/PortalSender.sol", "filename_short": "contracts/deployment/PortalSender.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "starting_column": 1, "ending_column": 2 } }, "signature": "donate()" } }, { "type": "node", "name": "PORTAL.donateETH{value: address(this).balance}()", "source_mapping": { "start": 745, "length": 50, "filename_relative": "contracts/deployment/PortalSender.sol", "filename_short": "contracts/deployment/PortalSender.sol", "is_dependency": false, "lines": [ 28 ], "starting_column": 9, "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", "name": "donate", "source_mapping": { "start": 710, "length": 92, "filename_relative": "contracts/deployment/PortalSender.sol", "filename_short": "contracts/deployment/PortalSender.sol", "is_dependency": false, "lines": [ 27, 28, 29 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "PortalSender", "source_mapping": { "start": 328, "length": 476, "filename_relative": "contracts/deployment/PortalSender.sol", "filename_short": "contracts/deployment/PortalSender.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ], "starting_column": 1, "ending_column": 2 } }, "signature": "donate()" } } } } ], "description": "PortalSender.donate() (contracts/deployment/PortalSender.sol#27-29) sends eth to arbitrary user\n\tDangerous calls:\n\t- PORTAL.donateETH{value: address(this).balance}() (contracts/deployment/PortalSender.sol#28)\n", "markdown": "[PortalSender.donate()](contracts/deployment/PortalSender.sol#L27-L29) sends eth to arbitrary user\n\tDangerous calls:\n\t- [PORTAL.donateETH{value: address(this).balance}()](contracts/deployment/PortalSender.sol#L28)\n", "first_markdown_element": "contracts/deployment/PortalSender.sol#L27-L29", "id": "57ff538ce533c88f5852cca299915d9dd842bfaa1a5c7d1a6d7c44f1a88d0e3c", "check": "arbitrary-send-eth", "impact": "High", "confidence": "Medium" } ]