Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ArbitrumMessengerWrapper
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 50000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // @unsupported: ovm pragma solidity 0.6.12; pragma experimental ABIEncoderV2; import "@openzeppelin/contracts/access/Ownable.sol"; import "../interfaces/arbitrum/messengers/IInbox.sol"; import "../interfaces/arbitrum/messengers/IBridge.sol"; import "../interfaces/arbitrum/messengers/IOutbox.sol"; import "./MessengerWrapper.sol"; /** * @dev A MessengerWrapper for Arbitrum - https://developer.offchainlabs.com/ * @notice Deployed on layer-1 */ contract ArbitrumMessengerWrapper is MessengerWrapper, Ownable { IInbox public immutable l1MessengerAddress; address public l2BridgeAddress; uint256 public maxSubmissionCost; address public l1MessengerWrapperAlias; uint256 public maxGas; uint256 public gasPriceBid; uint160 constant offset = uint160(0x1111000000000000000000000000000000001111); constructor( address _l1BridgeAddress, address _l2BridgeAddress, IInbox _l1MessengerAddress, uint256 _maxSubmissionCost, uint256 _maxGas, uint256 _gasPriceBid ) public MessengerWrapper(_l1BridgeAddress) { l2BridgeAddress = _l2BridgeAddress; l1MessengerAddress = _l1MessengerAddress; maxSubmissionCost = _maxSubmissionCost; l1MessengerWrapperAlias = applyL1ToL2Alias(address(this)); maxGas = _maxGas; gasPriceBid = _gasPriceBid; } /** * @dev Sends a message to the l2BridgeAddress from layer-1 * @param _calldata The data that l2BridgeAddress will be called with */ function sendCrossDomainMessage(bytes memory _calldata) public override onlyL1Bridge { l1MessengerAddress.createRetryableTicket( l2BridgeAddress, 0, maxSubmissionCost, l1MessengerWrapperAlias, l1MessengerWrapperAlias, maxGas, gasPriceBid, _calldata ); } function verifySender(address l1BridgeCaller, bytes memory /*_data*/) public override { // Reference: https://github.com/OffchainLabs/arbitrum/blob/5c06d89daf8fa6088bcdba292ffa6ed0c72afab2/packages/arb-bridge-peripherals/contracts/tokenbridge/ethereum/L1ArbitrumMessenger.sol#L89 IBridge arbBridge = l1MessengerAddress.bridge(); IOutbox outbox = IOutbox(arbBridge.activeOutbox()); address l2ToL1Sender = outbox.l2ToL1Sender(); require(l1BridgeCaller == address(arbBridge), "ARB_MSG_WPR: Caller is not the bridge"); require(l2ToL1Sender == l2BridgeAddress, "ARB_MSG_WPR: Invalid cross-domain sender"); } /** * @dev Claim funds that exist on the l2 messenger wrapper alias address * @notice Do not use state variables here as this is to be used when passing in precise values */ function claimL2Funds( address _recipient, uint256 _l2CallValue, uint256 _maxSubmissionCost, uint256 _maxGas, uint256 _gasPriceBid ) public onlyOwner { l1MessengerAddress.createRetryableTicket( _recipient, _l2CallValue, _maxSubmissionCost, _recipient, _recipient, _maxGas, _gasPriceBid, "" ); } /// @notice Utility function that converts the msg.sender viewed in the L2 to the /// address in the L1 that submitted a tx to the inbox /// @param l1Address L2 address as viewed in msg.sender /// @return The address in the L1 that triggered the tx to L2 function applyL1ToL2Alias(address l1Address) internal pure returns (address) { return address(uint160(l1Address) + offset); } /* ========== External Config Management Functions ========== */ function setMaxSubmissionCost(uint256 _newMaxSubmissionCost) external onlyOwner { maxSubmissionCost = _newMaxSubmissionCost; } function setL1MessengerWrapperAlias(address _newL1MessengerWrapperAlias) external onlyOwner { l1MessengerWrapperAlias = _newL1MessengerWrapperAlias; } function setMaxGas(uint256 _newMaxGas) external onlyOwner { maxGas = _newMaxGas; } function setGasPriceBid(uint256 _newGasPriceBid) external onlyOwner { gasPriceBid = _newGasPriceBid; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: Apache-2.0 /* * Copyright 2021, Offchain Labs, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity ^0.6.11; import "./IBridge.sol"; interface IInbox { function sendL2Message(bytes calldata messageData) external returns (uint256); function bridge() external view returns (IBridge); function createRetryableTicket( address destAddr, uint256 l2CallValue, uint256 maxSubmissionCost, address excessFeeRefundAddress, address callValueRefundAddress, uint256 maxGas, uint256 gasPriceBid, bytes calldata data ) external payable returns (uint256); }
// SPDX-License-Identifier: Apache-2.0 /* * Copyright 2021, Offchain Labs, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity ^0.6.11; interface IBridge { function activeOutbox() external view returns (address); }
// SPDX-License-Identifier: Apache-2.0 /* * Copyright 2021, Offchain Labs, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ pragma solidity ^0.6.11; interface IOutbox { function l2ToL1Sender() external view returns (address); }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.12 <0.8.0; pragma experimental ABIEncoderV2; import "../interfaces/IMessengerWrapper.sol"; abstract contract MessengerWrapper is IMessengerWrapper { address public immutable l1BridgeAddress; constructor(address _l1BridgeAddress) internal { l1BridgeAddress = _l1BridgeAddress; } modifier onlyL1Bridge { require(msg.sender == l1BridgeAddress, "MW: Sender must be the L1 Bridge"); _; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.12 <0.8.0; pragma experimental ABIEncoderV2; interface IMessengerWrapper { function sendCrossDomainMessage(bytes memory _calldata) external; function verifySender(address l1BridgeCaller, bytes memory _data) external; }
{ "optimizer": { "enabled": true, "runs": 50000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_l1BridgeAddress","type":"address"},{"internalType":"address","name":"_l2BridgeAddress","type":"address"},{"internalType":"contract IInbox","name":"_l1MessengerAddress","type":"address"},{"internalType":"uint256","name":"_maxSubmissionCost","type":"uint256"},{"internalType":"uint256","name":"_maxGas","type":"uint256"},{"internalType":"uint256","name":"_gasPriceBid","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_l2CallValue","type":"uint256"},{"internalType":"uint256","name":"_maxSubmissionCost","type":"uint256"},{"internalType":"uint256","name":"_maxGas","type":"uint256"},{"internalType":"uint256","name":"_gasPriceBid","type":"uint256"}],"name":"claimL2Funds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gasPriceBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1BridgeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1MessengerAddress","outputs":[{"internalType":"contract IInbox","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1MessengerWrapperAlias","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2BridgeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSubmissionCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"sendCrossDomainMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newGasPriceBid","type":"uint256"}],"name":"setGasPriceBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newL1MessengerWrapperAlias","type":"address"}],"name":"setL1MessengerWrapperAlias","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxGas","type":"uint256"}],"name":"setMaxGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxSubmissionCost","type":"uint256"}],"name":"setMaxSubmissionCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"l1BridgeCaller","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"verifySender","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b50604051620013313803806200133183398101604081905262000034916200012a565b6001600160601b0319606087901b166080526000620000526200010d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b038716179055606084901b6001600160601b03191660a0526002839055620000d93062000111565b600380546001600160a01b0319166001600160a01b039290921691909117905560049190915560055550620001b292505050565b3390565b7311110000000000000000000000000000000011110190565b60008060008060008060c0878903121562000143578182fd5b8651620001508162000199565b6020880151909650620001638162000199565b6040880151909550620001768162000199565b80945050606087015192506080870151915060a087015190509295509295509295565b6001600160a01b0381168114620001af57600080fd5b50565b60805160601c60a05160601c611141620001f0600039806102fa528061045152806107325280610ac85250806103ad528061056e52506111416000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b257806399178dd811610081578063bd81e89211610066578063bd81e892146101f7578063c5deebb31461020a578063f2fde38b146102125761011b565b806399178dd8146101d1578063bb3422c8146101e45761011b565b8063715018a6146101a65780638da5cb5b146101ae5780638e928076146101b6578063934746a7146101c95761011b565b80635a042545116100ee5780635a0425451461017b5780635ab2a5581461018e5780635d942ac11461019657806370123fee1461019e5761011b565b80630f02ea00146101205780633867dd921461013e578063419cb55014610153578063501d815c14610166575b600080fd5b610128610225565b6040516101359190610e12565b60405180910390f35b61015161014c366004610d64565b610241565b005b610151610161366004610da7565b610395565b61016e6104ee565b60405161013591906110dd565b610151610189366004610de2565b6104f4565b61012861056c565b61016e610590565b61016e610596565b61015161059c565b61012861067e565b6101516101c4366004610de2565b61069a565b610128610712565b6101516101df366004610d16565b61072e565b6101516101f2366004610de2565b610994565b610151610205366004610cd7565b610a0c565b610128610ac6565b610151610220366004610cd7565b610aea565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610249610c37565b73ffffffffffffffffffffffffffffffffffffffff1661026761067e565b73ffffffffffffffffffffffffffffffffffffffff16146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b60405180910390fd5b6040517f679b6ded00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063679b6ded9061033b90889088908890839081908a908a90600401610efb565b602060405180830381600087803b15801561035557600080fd5b505af1158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d9190610dfa565b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b49061104b565b600154600254600354600480546005546040517f679b6ded00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081169763679b6ded9761049897918316966000969195929093169384939192918c9101610e33565b602060405180830381600087803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190610dfa565b5050565b60045481565b6104fc610c37565b73ffffffffffffffffffffffffffffffffffffffff1661051a61067e565b73ffffffffffffffffffffffffffffffffffffffff1614610567576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600255565b7f000000000000000000000000000000000000000000000000000000000000000081565b60055481565b60025481565b6105a4610c37565b73ffffffffffffffffffffffffffffffffffffffff166105c261067e565b73ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6106a2610c37565b73ffffffffffffffffffffffffffffffffffffffff166106c061067e565b73ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600455565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e78cea926040518163ffffffff1660e01b815260040160206040518083038186803b15801561079657600080fd5b505afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce9190610cfa565b905060008173ffffffffffffffffffffffffffffffffffffffff1663ab5d89436040518163ffffffff1660e01b815260040160206040518083038186803b15801561081857600080fd5b505afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190610cfa565b905060008173ffffffffffffffffffffffffffffffffffffffff166380648b026040518163ffffffff1660e01b815260040160206040518083038186803b15801561089a57600080fd5b505afa1580156108ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d29190610cfa565b90508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611080565b60015473ffffffffffffffffffffffffffffffffffffffff82811691161461098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610fb9565b5050505050565b61099c610c37565b73ffffffffffffffffffffffffffffffffffffffff166109ba61067e565b73ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600555565b610a14610c37565b73ffffffffffffffffffffffffffffffffffffffff16610a3261067e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000000081565b610af2610c37565b73ffffffffffffffffffffffffffffffffffffffff16610b1061067e565b73ffffffffffffffffffffffffffffffffffffffff1614610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b73ffffffffffffffffffffffffffffffffffffffff8116610baa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610f5c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b600082601f830112610c4b578081fd5b813567ffffffffffffffff80821115610c62578283fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715610ca0578485fd5b604052828152925082848301602001861015610cbb57600080fd5b8260208601602083013760006020848301015250505092915050565b600060208284031215610ce8578081fd5b8135610cf3816110e6565b9392505050565b600060208284031215610d0b578081fd5b8151610cf3816110e6565b60008060408385031215610d28578081fd5b8235610d33816110e6565b9150602083013567ffffffffffffffff811115610d4e578182fd5b610d5a85828601610c3b565b9150509250929050565b600080600080600060a08688031215610d7b578081fd5b8535610d86816110e6565b97602087013597506040870135966060810135965060800135945092505050565b600060208284031215610db8578081fd5b813567ffffffffffffffff811115610dce578182fd5b610dda84828501610c3b565b949350505050565b600060208284031215610df3578081fd5b5035919050565b600060208284031215610e0b578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600061010073ffffffffffffffffffffffffffffffffffffffff808c16845260208b818601528a6040860152818a16606086015281891660808601528760a08601528660c08601528260e08601528551915081838601528392505b81831015610ead57858301810151858401610120015291820191610e8e565b5080821115610ec0578261012082860101525b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201610120019a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9788168152602081019690965260408601949094529185166060850152909316608083015260a082019290925260c081019190915261010060e082018190526000908201526101200190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f4152425f4d53475f5750523a20496e76616c69642063726f73732d646f6d616960408201527f6e2073656e646572000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4d573a2053656e646572206d75737420626520746865204c3120427269646765604082015260600190565b60208082526025908201527f4152425f4d53475f5750523a2043616c6c6572206973206e6f7420746865206260408201527f7269646765000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461110857600080fd5b5056fea264697066735822122013cb2b4957be9e8f1ed90bdc42b7698020af7bbef19a754747dfed15fe35f88a64736f6c634300060c00330000000000000000000000003e4a3a4796d16c0cd582c382691998f7c06420b600000000000000000000000072209fe68386b37a40d6bca04f78356fd342491f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000174876e800
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b257806399178dd811610081578063bd81e89211610066578063bd81e892146101f7578063c5deebb31461020a578063f2fde38b146102125761011b565b806399178dd8146101d1578063bb3422c8146101e45761011b565b8063715018a6146101a65780638da5cb5b146101ae5780638e928076146101b6578063934746a7146101c95761011b565b80635a042545116100ee5780635a0425451461017b5780635ab2a5581461018e5780635d942ac11461019657806370123fee1461019e5761011b565b80630f02ea00146101205780633867dd921461013e578063419cb55014610153578063501d815c14610166575b600080fd5b610128610225565b6040516101359190610e12565b60405180910390f35b61015161014c366004610d64565b610241565b005b610151610161366004610da7565b610395565b61016e6104ee565b60405161013591906110dd565b610151610189366004610de2565b6104f4565b61012861056c565b61016e610590565b61016e610596565b61015161059c565b61012861067e565b6101516101c4366004610de2565b61069a565b610128610712565b6101516101df366004610d16565b61072e565b6101516101f2366004610de2565b610994565b610151610205366004610cd7565b610a0c565b610128610ac6565b610151610220366004610cd7565b610aea565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b610249610c37565b73ffffffffffffffffffffffffffffffffffffffff1661026761067e565b73ffffffffffffffffffffffffffffffffffffffff16146102bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b60405180910390fd5b6040517f679b6ded00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f169063679b6ded9061033b90889088908890839081908a908a90600401610efb565b602060405180830381600087803b15801561035557600080fd5b505af1158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d9190610dfa565b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000003e4a3a4796d16c0cd582c382691998f7c06420b61614610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b49061104b565b600154600254600354600480546005546040517f679b6ded00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f81169763679b6ded9761049897918316966000969195929093169384939192918c9101610e33565b602060405180830381600087803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190610dfa565b5050565b60045481565b6104fc610c37565b73ffffffffffffffffffffffffffffffffffffffff1661051a61067e565b73ffffffffffffffffffffffffffffffffffffffff1614610567576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600255565b7f0000000000000000000000003e4a3a4796d16c0cd582c382691998f7c06420b681565b60055481565b60025481565b6105a4610c37565b73ffffffffffffffffffffffffffffffffffffffff166105c261067e565b73ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6106a2610c37565b73ffffffffffffffffffffffffffffffffffffffff166106c061067e565b73ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600455565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60007f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f73ffffffffffffffffffffffffffffffffffffffff1663e78cea926040518163ffffffff1660e01b815260040160206040518083038186803b15801561079657600080fd5b505afa1580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce9190610cfa565b905060008173ffffffffffffffffffffffffffffffffffffffff1663ab5d89436040518163ffffffff1660e01b815260040160206040518083038186803b15801561081857600080fd5b505afa15801561082c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108509190610cfa565b905060008173ffffffffffffffffffffffffffffffffffffffff166380648b026040518163ffffffff1660e01b815260040160206040518083038186803b15801561089a57600080fd5b505afa1580156108ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d29190610cfa565b90508273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611080565b60015473ffffffffffffffffffffffffffffffffffffffff82811691161461098d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610fb9565b5050505050565b61099c610c37565b73ffffffffffffffffffffffffffffffffffffffff166109ba61067e565b73ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600555565b610a14610c37565b73ffffffffffffffffffffffffffffffffffffffff16610a3261067e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f81565b610af2610c37565b73ffffffffffffffffffffffffffffffffffffffff16610b1061067e565b73ffffffffffffffffffffffffffffffffffffffff1614610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490611016565b73ffffffffffffffffffffffffffffffffffffffff8116610baa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b490610f5c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b600082601f830112610c4b578081fd5b813567ffffffffffffffff80821115610c62578283fd5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715610ca0578485fd5b604052828152925082848301602001861015610cbb57600080fd5b8260208601602083013760006020848301015250505092915050565b600060208284031215610ce8578081fd5b8135610cf3816110e6565b9392505050565b600060208284031215610d0b578081fd5b8151610cf3816110e6565b60008060408385031215610d28578081fd5b8235610d33816110e6565b9150602083013567ffffffffffffffff811115610d4e578182fd5b610d5a85828601610c3b565b9150509250929050565b600080600080600060a08688031215610d7b578081fd5b8535610d86816110e6565b97602087013597506040870135966060810135965060800135945092505050565b600060208284031215610db8578081fd5b813567ffffffffffffffff811115610dce578182fd5b610dda84828501610c3b565b949350505050565b600060208284031215610df3578081fd5b5035919050565b600060208284031215610e0b578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600061010073ffffffffffffffffffffffffffffffffffffffff808c16845260208b818601528a6040860152818a16606086015281891660808601528760a08601528660c08601528260e08601528551915081838601528392505b81831015610ead57858301810151858401610120015291820191610e8e565b5080821115610ec0578261012082860101525b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201610120019a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff9788168152602081019690965260408601949094529185166060850152909316608083015260a082019290925260c081019190915261010060e082018190526000908201526101200190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f4152425f4d53475f5750523a20496e76616c69642063726f73732d646f6d616960408201527f6e2073656e646572000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4d573a2053656e646572206d75737420626520746865204c3120427269646765604082015260600190565b60208082526025908201527f4152425f4d53475f5750523a2043616c6c6572206973206e6f7420746865206260408201527f7269646765000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461110857600080fd5b5056fea264697066735822122013cb2b4957be9e8f1ed90bdc42b7698020af7bbef19a754747dfed15fe35f88a64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003e4a3a4796d16c0cd582c382691998f7c06420b600000000000000000000000072209fe68386b37a40d6bca04f78356fd342491f0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000174876e800
-----Decoded View---------------
Arg [0] : _l1BridgeAddress (address): 0x3E4a3a4796d16c0Cd582C382691998f7c06420B6
Arg [1] : _l2BridgeAddress (address): 0x72209Fe68386b37A40d6bCA04f78356fd342491f
Arg [2] : _l1MessengerAddress (address): 0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f
Arg [3] : _maxSubmissionCost (uint256): 10000000000000000
Arg [4] : _maxGas (uint256): 5000000
Arg [5] : _gasPriceBid (uint256): 100000000000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000003e4a3a4796d16c0cd582c382691998f7c06420b6
Arg [1] : 00000000000000000000000072209fe68386b37a40d6bca04f78356fd342491f
Arg [2] : 0000000000000000000000004dbd4fc535ac27206064b68ffcf827b0a60bab3f
Arg [3] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [4] : 00000000000000000000000000000000000000000000000000000000004c4b40
Arg [5] : 000000000000000000000000000000000000000000000000000000174876e800
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.