creation_sourcecode: {"Bridge.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.1;\n\nimport \"./Ownable.sol\";\n\ninterface Token {\n    function transfer(address to, uint256 value) external;\n}\n\ncontract Bridge is Ownable {\n\n    constructor () Ownable(msg.sender) payable {}\n\n    fallback() external payable {}\n\n    receive() external payable {}\n\n    function transferToken(address coin, address[] calldata dsts, uint256[] calldata values) public onlyOwner{\n        require(dsts.length == values.length);\n        Token token = Token(coin);\n        uint256 total = 0;\n        uint256 count = dsts.length;\n        for (uint256 i = 0; i \u003c count; i++) {\n            token.transfer(dsts[i], values[i]);\n            total += values[i];\n        }\n    }\n\n    function transferEth(address payable[] calldata dsts, uint256[] calldata values) public onlyOwner{\n        require(dsts.length == values.length);\n        uint256 total = 0;\n        for (uint256 i = 0; i \u003c dsts.length; i++) {\n            dsts[i].transfer(values[i]);\n            total += values[i];\n        }\n    }\n}\n"},"Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.1;\ncontract Ownable {\n    bytes32 private constant ownerPosition = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    constructor(address ownerAddress) {\n        setOwner(ownerAddress);\n    }\n\n    function setOwner(address newOwner) internal {\n        bytes32 position = ownerPosition;\n        assembly {\n            sstore(position, newOwner)\n        }\n    }\n\n    function getOwner() public view returns (address owner) {\n        bytes32 position = ownerPosition;\n        assembly {\n            owner := sload(position)\n        }\n    }\n\n    modifier onlyOwner() {\n        require(msg.sender == getOwner());\n        _;\n    }\n\n    function transferOwnership(address newOwner) public onlyOwner {\n        require(newOwner != address(0));\n        setOwner(newOwner);\n    }\n}"}}