Overview
CELO Balance
CELO Value
$593.92 (@ $0.33/CELO)More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 14,921 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 25824497 | 331 days ago | IN | 0 CELO | 0.00028697 | ||||
Transfer Ownersh... | 21848476 | 561 days ago | IN | 0 CELO | 0.00028697 | ||||
Send Message | 21038931 | 608 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21023047 | 609 days ago | IN | 0.8 CELO | 0.00134637 | ||||
Send Message | 21022691 | 609 days ago | IN | 0.8 CELO | 0.00134637 | ||||
Send Message | 21022664 | 609 days ago | IN | 0.8 CELO | 0.00134637 | ||||
Send Message | 21022651 | 609 days ago | IN | 0.8 CELO | 0.00134607 | ||||
Zk Send Message | 21022321 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Zk Send Message | 21022008 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Send Message | 21021960 | 609 days ago | IN | 0.8 CELO | 0.00134637 | ||||
Zk Send Message | 21021959 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Send Message | 21021925 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21021707 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Zk Send Message | 21021701 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Zk Send Message | 21021693 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Send Message | 21021675 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21021665 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Zk Send Message | 21021650 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Send Message | 21021638 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21021628 | 609 days ago | IN | 0.8 CELO | 0.00134637 | ||||
Zk Send Message | 21021624 | 609 days ago | IN | 0.8 CELO | 0.00130545 | ||||
Send Message | 21021615 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21021603 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Send Message | 21021582 | 609 days ago | IN | 0.8 CELO | 0.00134667 | ||||
Zk Send Message | 21021580 | 609 days ago | IN | 0.8 CELO | 0.00130515 |
View more zero value Internal Transactions in Advanced View mode
Loading...
Loading
Contract Name:
LzMailer
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./interfaces/IZKBridgeEntrypoint.sol"; import "./interfaces/ILayerZeroEndpoint.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; /// @title Mailer /// @notice An example contract for sending messages to other chains, using the ZKBridgeEntrypoint. contract LzMailer is Ownable { /// @notice The ZKBridgeEntrypoint contract, which sends messages to other chains. IZKBridgeEntrypoint public zkBridgeEntrypoint; ILayerZeroEndpoint public immutable lzEndpoint; bool public zkBridgePaused = false; bool public layerZeroPaused = false; uint256 public maxLength = 200; /// @notice Fee for each chain. mapping(uint16 => uint256) public fees; event MessageSend( uint64 indexed sequence, uint32 indexed dstChainId, address indexed dstAddress, address sender, address recipient, string message ); event LzMessageSend( uint64 indexed sequence, uint32 indexed dstChainId, address indexed dstAddress, address sender, address recipient, string message ); event NewFee(uint16 chainId, uint256 fee); /// @notice Event emitted when an action is paused/unpaused event PauseSendAction( address account, bool zkBridgePaused, bool layerZeroPaused ); constructor(address _zkBridgeEntrypoint, address _lzEndpoint) { zkBridgeEntrypoint = IZKBridgeEntrypoint(_zkBridgeEntrypoint); lzEndpoint = ILayerZeroEndpoint(_lzEndpoint); } /// @notice Sends a message to a destination MessageBridge. /// @param dstChainId The chain ID where the destination MessageBridge. /// @param dstAddress The address of the destination MessageBridge. /// @param recipient Recipient of the target chain message. /// @param message The message to send. function sendMessage( uint16 dstChainId, address dstAddress, uint16 lzChainId, address lzDstAddress, uint256 nativeFee, address recipient, string memory message ) external payable { if (layerZeroPaused && zkBridgePaused) { revert("Nothing to do"); } uint256 zkFee = fees[dstChainId]; if (zkBridgePaused) { zkFee = 0; } if (layerZeroPaused) { require(nativeFee == 0, "Invalid native fee"); } require(msg.value >= nativeFee + zkFee, "Insufficient Fee"); require( bytes(message).length <= maxLength, "Maximum message length exceeded." ); if (!zkBridgePaused) { _sendMessage(dstChainId, dstAddress, recipient, message); } if (!layerZeroPaused) { _sendToLayerZero( lzChainId, lzDstAddress, recipient, nativeFee, message ); } } function zkSendMessage( uint16 dstChainId, address dstAddress, address recipient, string memory message ) external payable { if (zkBridgePaused) { revert("Paused"); } require(msg.value >= fees[dstChainId], "Insufficient Fee"); require( bytes(message).length <= maxLength, "Maximum message length exceeded." ); _sendMessage(dstChainId, dstAddress, recipient, message); } function lzSendMessage( uint16 lzChainId, address lzDstAddress, address recipient, string memory message ) external payable { if (layerZeroPaused) { revert("Paused"); } require( bytes(message).length <= maxLength, "Maximum message length exceeded." ); _sendToLayerZero( lzChainId, lzDstAddress, recipient, msg.value, message ); } function _sendMessage( uint16 dstChainId, address dstAddress, address recipient, string memory message ) private { bytes memory payload = abi.encode(msg.sender, recipient, message); uint64 _sequence = zkBridgeEntrypoint.send( dstChainId, dstAddress, payload ); emit MessageSend( _sequence, dstChainId, dstAddress, msg.sender, recipient, message ); } function _sendToLayerZero( uint16 _dstChainId, address _dstAddress, address _recipient, uint256 _nativeFee, string memory _message ) private { bytes memory payload = abi.encode(msg.sender, _recipient, _message); bytes memory path = abi.encodePacked(_dstAddress, address(this)); lzEndpoint.send{value: _nativeFee}( _dstChainId, path, payload, payable(msg.sender), msg.sender, bytes("") ); uint64 _sequence = lzEndpoint.outboundNonce(_dstChainId, address(this)); emit LzMessageSend( _sequence, _dstChainId, _dstAddress, msg.sender, _recipient, _message ); } /// @notice Allows owner to set a new msg length. /// @param _maxLength new msg length. function setMsgLength(uint256 _maxLength) external onlyOwner { maxLength = _maxLength; } /// @notice Allows owner to claim all fees sent to this contract. /// @notice Allows owner to set a new fee. /// @param _dstChainId The chain ID where the destination MessageBridge. /// @param _fee The new fee to use. function setFee(uint16 _dstChainId, uint256 _fee) external onlyOwner { require(fees[_dstChainId] != _fee, "Fee has already been set."); fees[_dstChainId] = _fee; emit NewFee(_dstChainId, _fee); } /** * @notice Pauses different actions * @dev Changes the owner address. * @param zkBridgePaused_ Boolean for zkBridge send * @param layerZeroPaused_ Boolean for layer zero send */ function pause( bool zkBridgePaused_, bool layerZeroPaused_ ) external onlyOwner { zkBridgePaused = zkBridgePaused_; layerZeroPaused = layerZeroPaused_; emit PauseSendAction(msg.sender, zkBridgePaused, layerZeroPaused); } /// @notice Allows owner to claim all fees sent to this contract. function claimFees() external onlyOwner { payable(owner()).transfer(address(this).balance); } function estimateLzFee( uint16 _dstChainId, address _recipient, string memory _message ) public view returns (uint256 nativeFee) { if (layerZeroPaused) { return 0; } bytes memory payload = abi.encode(msg.sender, _recipient, _message); (nativeFee, ) = lzEndpoint.estimateFees( _dstChainId, address(this), payload, false, bytes("") ); } /** * @notice set the configuration of the LayerZero messaging library of the specified version * @param _version - messaging library version * @param _dstChainId - the chainId for the pending config change * @param _configType - type of configuration. every messaging library has its own convention. * @param _config - configuration in the bytes. can encode arbitrary content. */ function setConfig( uint16 _version, uint16 _dstChainId, uint _configType, bytes calldata _config ) external onlyOwner { lzEndpoint.setConfig(_version, _dstChainId, _configType, _config); } function setSendVersion(uint16 _version) external onlyOwner { lzEndpoint.setSendVersion(_version); } function setReceiveVersion(uint16 _version) external onlyOwner { lzEndpoint.setReceiveVersion(_version); } function forceResumeReceive( uint16 _srcChainId, bytes calldata _srcAddress ) external onlyOwner { lzEndpoint.forceResumeReceive(_srcChainId, _srcAddress); } /// @notice get the send() LayerZero messaging library version function getSendVersion() external view returns (uint16) { return lzEndpoint.getSendVersion(address(this)); } /** * @notice get the configuration of the LayerZero messaging library of the specified version * @param _version - messaging library version * @param _dstChainId - the chainId for the pending config change * @param _configType - type of configuration. every messaging library has its own convention. */ function getConfig( uint16 _version, uint16 _dstChainId, uint _configType ) external view returns (bytes memory) { return lzEndpoint.getConfig( _version, _dstChainId, address(this), _configType ); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "./ILayerZeroUserApplicationConfig.sol"; interface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig { // @notice send a LayerZero message to the specified address at a LayerZero endpoint. // @param _dstChainId - the destination chain identifier // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains // @param _payload - a custom bytes payload to send to the destination contract // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination function send( uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams ) external payable; // @notice used by the messaging library to publish verified payload // @param _srcChainId - the source chain identifier // @param _srcAddress - the source contract (as bytes) at the source chain // @param _dstAddress - the address on destination chain // @param _nonce - the unbound message ordering nonce // @param _gasLimit - the gas limit for external contract execution // @param _payload - verified payload to send to the destination contract function receivePayload( uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload ) external; // @notice get the inboundNonce of a lzApp from a source chain which could be EVM or non-EVM chain // @param _srcChainId - the source chain identifier // @param _srcAddress - the source chain contract address function getInboundNonce( uint16 _srcChainId, bytes calldata _srcAddress ) external view returns (uint64); // @notice get the outboundNonce from this source chain which, consequently, is always an EVM // @param _srcAddress - the source chain contract address function getOutboundNonce( uint16 _dstChainId, address _srcAddress ) external view returns (uint64); // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery // @param _dstChainId - the destination chain identifier // @param _userApplication - the user app address on this EVM chain // @param _payload - the custom message to send over LayerZero // @param _payInZRO - if false, user app pays the protocol fee in native token // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain function estimateFees( uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam ) external view returns (uint nativeFee, uint zroFee); // @notice get this Endpoint's immutable source identifier function getChainId() external view returns (uint16); // @notice the interface to retry failed message on this Endpoint destination // @param _srcChainId - the source chain identifier // @param _srcAddress - the source chain contract address // @param _payload - the payload to be retried function retryPayload( uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload ) external; // @notice query if any STORED payload (message blocking) at the endpoint. // @param _srcChainId - the source chain identifier // @param _srcAddress - the source chain contract address function hasStoredPayload( uint16 _srcChainId, bytes calldata _srcAddress ) external view returns (bool); // @notice query if the _libraryAddress is valid for sending msgs. // @param _userApplication - the user app address on this EVM chain function getSendLibraryAddress( address _userApplication ) external view returns (address); // @notice query if the _libraryAddress is valid for receiving msgs. // @param _userApplication - the user app address on this EVM chain function getReceiveLibraryAddress( address _userApplication ) external view returns (address); // @notice query if the non-reentrancy guard for send() is on // @return true if the guard is on. false otherwise function isSendingPayload() external view returns (bool); // @notice query if the non-reentrancy guard for receive() is on // @return true if the guard is on. false otherwise function isReceivingPayload() external view returns (bool); // @notice get the configuration of the LayerZero messaging library of the specified version // @param _version - messaging library version // @param _chainId - the chainId for the pending config change // @param _userApplication - the contract address of the user application // @param _configType - type of configuration. every messaging library has its own convention. function getConfig( uint16 _version, uint16 _chainId, address _userApplication, uint _configType ) external view returns (bytes memory); // @notice get the send() LayerZero messaging library version // @param _userApplication - the contract address of the user application function getSendVersion( address _userApplication ) external view returns (uint16); // @notice get the lzReceive() LayerZero messaging library version // @param _userApplication - the contract address of the user application function getReceiveVersion( address _userApplication ) external view returns (uint16); function defaultSendLibrary() external view returns (address); function outboundNonce( uint16 _chainId, address _userApplication ) external view returns (uint64); }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; interface ILayerZeroUserApplicationConfig { // @notice set the configuration of the LayerZero messaging library of the specified version // @param _version - messaging library version // @param _chainId - the chainId for the pending config change // @param _configType - type of configuration. every messaging library has its own convention. // @param _config - configuration in the bytes. can encode arbitrary content. function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external; // @notice set the send() LayerZero messaging library version to _version // @param _version - new messaging library version function setSendVersion(uint16 _version) external; // @notice set the lzReceive() LayerZero messaging library version to _version // @param _version - new messaging library version function setReceiveVersion(uint16 _version) external; // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload // @param _srcChainId - the chainId of the source chain // @param _srcAddress - the contract address of the source contract at the source chain function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IZKBridgeEntrypoint { /// @notice send a ZKBridge message to the specified address at a ZKBridge endpoint. /// @param dstChainId - the destination chain identifier /// @param dstAddress - the address on destination chain /// @param payload - a custom bytes payload to send to the destination contract function send( uint16 dstChainId, address dstAddress, bytes memory payload ) external payable returns (uint64 sequence); /// @return Current chain id. function chainId() external view returns (uint16); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_zkBridgeEntrypoint","type":"address"},{"internalType":"address","name":"_lzEndpoint","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"sequence","type":"uint64"},{"indexed":true,"internalType":"uint32","name":"dstChainId","type":"uint32"},{"indexed":true,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"LzMessageSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"sequence","type":"uint64"},{"indexed":true,"internalType":"uint32","name":"dstChainId","type":"uint32"},{"indexed":true,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"MessageSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"NewFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"zkBridgePaused","type":"bool"},{"indexed":false,"internalType":"bool","name":"layerZeroPaused","type":"bool"}],"name":"PauseSendAction","type":"event"},{"inputs":[],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"name":"estimateLzFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"layerZeroPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"lzChainId","type":"uint16"},{"internalType":"address","name":"lzDstAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"message","type":"string"}],"name":"lzSendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"maxLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"zkBridgePaused_","type":"bool"},{"internalType":"bool","name":"layerZeroPaused_","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"dstChainId","type":"uint16"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"uint16","name":"lzChainId","type":"uint16"},{"internalType":"address","name":"lzDstAddress","type":"address"},{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"message","type":"string"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLength","type":"uint256"}],"name":"setMsgLength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zkBridgeEntrypoint","outputs":[{"internalType":"contract IZKBridgeEntrypoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zkBridgePaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"dstChainId","type":"uint16"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"message","type":"string"}],"name":"zkSendMessage","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60a06040526001805461ffff60a01b1916905560c86002553480156200002457600080fd5b5060405162001a6e38038062001a6e8339810160408190526200004791620000e5565b620000523362000078565b600180546001600160a01b0319166001600160a01b03938416179055166080526200011d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000e057600080fd5b919050565b60008060408385031215620000f957600080fd5b6200010483620000c8565b91506200011460208401620000c8565b90509250929050565b6080516118f662000178600039600081816103400152818161047b015281816105040152818161055a015281816105e20152818161068b0152818161085801528181610bc101528181610fa9015261103b01526118f66000f3fe6080604052600436106101405760003560e01c80638da5cb5b116100b6578063c7f0da131161006f578063c7f0da13146103a2578063cbed8b9c146103c2578063d06a89a4146103e2578063d294f093146103f8578063ddeb50941461040d578063f2fde38b1461042d57600080fd5b80638da5cb5b146102c9578063904c8116146102fb57806390c9a42f1461031b578063b353aaa71461032e578063bc22e4bc14610362578063bd74df721461038f57600080fd5b80635e3615b3116101085780635e3615b3146101f45780635f6716f7146102255780636d0e90f014610252578063715018a6146102655780637e68cb7d1461027a5780638602ad161461029b57600080fd5b8063011ea0d01461014557806307e0db171461016757806310ddb1371461018757806342d65a8d146101a757806354a5beda146101c7575b600080fd5b34801561015157600080fd5b50610165610160366004611111565b61044d565b005b34801561017357600080fd5b5061016561018236600461113a565b61045a565b34801561019357600080fd5b506101656101a236600461113a565b6104e3565b3480156101b357600080fd5b506101656101c23660046111a0565b61053b565b3480156101d357600080fd5b506101dc6105ca565b60405161ffff90911681526020015b60405180910390f35b34801561020057600080fd5b5060015461021590600160a01b900460ff1681565b60405190151581526020016101eb565b34801561023157600080fd5b506102456102403660046111f5565b61065a565b6040516101eb919061128e565b610165610260366004611382565b61070c565b34801561027157600080fd5b506101656107df565b34801561028657600080fd5b5060015461021590600160a81b900460ff1681565b3480156102a757600080fd5b506102bb6102b63660046113f3565b6107f3565b6040519081526020016101eb565b3480156102d557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101eb565b34801561030757600080fd5b506001546102e3906001600160a01b031681565b610165610329366004611453565b6108de565b34801561033a57600080fd5b506102e37f000000000000000000000000000000000000000000000000000000000000000081565b34801561036e57600080fd5b506102bb61037d36600461113a565b60036020526000908152604090205481565b61016561039d366004611382565b610a70565b3480156103ae57600080fd5b506101656103bd3660046114f1565b610ae3565b3480156103ce57600080fd5b506101656103dd36600461151d565b610ba2565b3480156103ee57600080fd5b506102bb60025481565b34801561040457600080fd5b50610165610c37565b34801561041957600080fd5b506101656104283660046115a0565b610c7c565b34801561043957600080fd5b506101656104483660046115d3565b610d06565b610455610d7c565b600255565b610462610d7c565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b5050505050565b6104eb610d7c565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016104ae565b610543610d7c565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061059390869086908690600401611617565b600060405180830381600087803b1580156105ad57600080fd5b505af11580156105c1573d6000803e3d6000fd5b50505050505050565b6040516304b2b47b60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063096568f690602401602060405180830381865afa158015610631573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610655919061163e565b905090565b604051633d7b2f6f60e21b815261ffff808516600483015283166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156106da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610702919081019061165b565b90505b9392505050565b600154600160a01b900460ff16156107545760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064015b60405180910390fd5b61ffff84166000908152600360205260409020543410156107aa5760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742046656560801b604482015260640161074b565b600254815111156107cd5760405162461bcd60e51b815260040161074b906116c9565b6107d984848484610dd6565b50505050565b6107e7610d7c565b6107f16000610ed7565b565b600154600090600160a81b900460ff161561081057506000610705565b6000338484604051602001610827939291906116fe565b60408051601f198184030181526020830182526000808452915163040a7bb160e41b81529093506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926340a7bb1092610894928a923092889290919060040161172a565b6040805180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d4919061177e565b5095945050505050565b600154600160a81b900460ff1680156109005750600154600160a01b900460ff165b1561093d5760405162461bcd60e51b815260206004820152600d60248201526c4e6f7468696e6720746f20646f60981b604482015260640161074b565b61ffff8716600090815260036020526040902054600154600160a01b900460ff1615610967575060005b600154600160a81b900460ff16156109bc5783156109bc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206e61746976652066656560701b604482015260640161074b565b6109c681856117a2565b341015610a085760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742046656560801b604482015260640161074b565b60025482511115610a2b5760405162461bcd60e51b815260040161074b906116c9565b600154600160a01b900460ff16610a4857610a4888888585610dd6565b600154600160a81b900460ff16610a6657610a668686858786610f27565b5050505050505050565b600154600160a81b900460ff1615610ab35760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015260640161074b565b60025481511115610ad65760405162461bcd60e51b815260040161074b906116c9565b6107d98484843485610f27565b610aeb610d7c565b61ffff8216600090815260036020526040902054819003610b4e5760405162461bcd60e51b815260206004820152601960248201527f4665652068617320616c7265616479206265656e207365742e00000000000000604482015260640161074b565b61ffff8216600081815260036020908152604091829020849055815192835282018390527f3d9a6222528a5f37fccacff9e85c30a4b687e85338f74940f018b70c4f7461d791015b60405180910390a15050565b610baa610d7c565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610bfe90889088908890889088906004016117c8565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b505050505050505050565b610c3f610d7c565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610c79573d6000803e3d6000fd5b50565b610c84610d7c565b6001805461ffff60a01b1916600160a01b841515810260ff60a81b191691909117600160a81b841515810291909117928390556040805133815260ff938504841615156020820152919093049091161515918101919091527f1e604a5995069a4b688afcb151bf8edeee16900586d860975c1d6c0de712320190606001610b96565b610d0e610d7c565b6001600160a01b038116610d735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074b565b610c7981610ed7565b6000546001600160a01b031633146107f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161074b565b6000338383604051602001610ded939291906116fe565b60408051601f198184030181529082905260015463b1d995dd60e01b83529092506000916001600160a01b039091169063b1d995dd90610e3590899089908790600401611801565b6020604051808303816000875af1158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e78919061182f565b9050846001600160a01b03168661ffff168267ffffffffffffffff167fbdb4daeca4a1c274318631b2e6569f5609c49b073f20d5925b06f069b71c84d4338888604051610ec7939291906116fe565b60405180910390a4505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000338483604051602001610f3e939291906116fe565b60408051601f19818403018152908290526bffffffffffffffffffffffff19606088811b8216602085015230901b166034830152915060009060480160408051601f1981840301815260208301825260008352905162c5803160e81b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163c5803100918791610fe9918c91879189913391829190600401611859565b6000604051808303818588803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b505060405163b208649960e01b815261ffff8b166004820152306024820152600093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316925063b20864999150604401602060405180830381865afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061182f565b9050866001600160a01b03168861ffff168267ffffffffffffffff167ff2ba73dbc39474c758d416a884a139e36ab0cd5ed2001986f79cabc6c85f548a338a896040516110ff939291906116fe565b60405180910390a45050505050505050565b60006020828403121561112357600080fd5b5035919050565b61ffff81168114610c7957600080fd5b60006020828403121561114c57600080fd5b81356107058161112a565b60008083601f84011261116957600080fd5b50813567ffffffffffffffff81111561118157600080fd5b60208301915083602082850101111561119957600080fd5b9250929050565b6000806000604084860312156111b557600080fd5b83356111c08161112a565b9250602084013567ffffffffffffffff8111156111dc57600080fd5b6111e886828701611157565b9497909650939450505050565b60008060006060848603121561120a57600080fd5b83356112158161112a565b925060208401356112258161112a565b929592945050506040919091013590565b60005b83811015611251578181015183820152602001611239565b838111156107d95750506000910152565b6000815180845261127a816020860160208601611236565b601f01601f19169290920160200192915050565b6020815260006107056020830184611262565b80356001600160a01b03811681146112b857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112fc576112fc6112bd565b604052919050565b600067ffffffffffffffff82111561131e5761131e6112bd565b50601f01601f191660200190565b600082601f83011261133d57600080fd5b813561135061134b82611304565b6112d3565b81815284602083860101111561136557600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561139857600080fd5b84356113a38161112a565b93506113b1602086016112a1565b92506113bf604086016112a1565b9150606085013567ffffffffffffffff8111156113db57600080fd5b6113e78782880161132c565b91505092959194509250565b60008060006060848603121561140857600080fd5b83356114138161112a565b9250611421602085016112a1565b9150604084013567ffffffffffffffff81111561143d57600080fd5b6114498682870161132c565b9150509250925092565b600080600080600080600060e0888a03121561146e57600080fd5b87356114798161112a565b9650611487602089016112a1565b955060408801356114978161112a565b94506114a5606089016112a1565b9350608088013592506114ba60a089016112a1565b915060c088013567ffffffffffffffff8111156114d657600080fd5b6114e28a828b0161132c565b91505092959891949750929550565b6000806040838503121561150457600080fd5b823561150f8161112a565b946020939093013593505050565b60008060008060006080868803121561153557600080fd5b85356115408161112a565b945060208601356115508161112a565b935060408601359250606086013567ffffffffffffffff81111561157357600080fd5b61157f88828901611157565b969995985093965092949392505050565b803580151581146112b857600080fd5b600080604083850312156115b357600080fd5b6115bc83611590565b91506115ca60208401611590565b90509250929050565b6000602082840312156115e557600080fd5b610705826112a1565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006116356040830184866115ee565b95945050505050565b60006020828403121561165057600080fd5b81516107058161112a565b60006020828403121561166d57600080fd5b815167ffffffffffffffff81111561168457600080fd5b8201601f8101841361169557600080fd5b80516116a361134b82611304565b8181528560208385010111156116b857600080fd5b611635826020830160208601611236565b6020808252818101527f4d6178696d756d206d657373616765206c656e6774682065786365656465642e604082015260600190565b6001600160a01b0384811682528316602082015260606040820181905260009061163590830184611262565b61ffff861681526001600160a01b038516602082015260a06040820181905260009061175890830186611262565b841515606084015282810360808401526117728185611262565b98975050505050505050565b6000806040838503121561179157600080fd5b505080516020909101519092909150565b600082198211156117c357634e487b7160e01b600052601160045260246000fd5b500190565b600061ffff8088168352808716602084015250846040830152608060608301526117f66080830184866115ee565b979650505050505050565b61ffff841681526001600160a01b038316602082015260606040820181905260009061163590830184611262565b60006020828403121561184157600080fd5b815167ffffffffffffffff8116811461070557600080fd5b61ffff8716815260c06020820152600061187660c0830188611262565b82810360408401526118888188611262565b6001600160a01b0387811660608601528616608085015283810360a085015290506118b38185611262565b999850505050505050505056fea2646970667358221220646e5aea8c0ebb39333185985697235dd0ad5d36d93859dd3f7c8b0b389fc48364736f6c634300080e0033000000000000000000000000bd2506f49558b5ce8241d89b1d3577732ded1e1d0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa9
Deployed Bytecode
0x6080604052600436106101405760003560e01c80638da5cb5b116100b6578063c7f0da131161006f578063c7f0da13146103a2578063cbed8b9c146103c2578063d06a89a4146103e2578063d294f093146103f8578063ddeb50941461040d578063f2fde38b1461042d57600080fd5b80638da5cb5b146102c9578063904c8116146102fb57806390c9a42f1461031b578063b353aaa71461032e578063bc22e4bc14610362578063bd74df721461038f57600080fd5b80635e3615b3116101085780635e3615b3146101f45780635f6716f7146102255780636d0e90f014610252578063715018a6146102655780637e68cb7d1461027a5780638602ad161461029b57600080fd5b8063011ea0d01461014557806307e0db171461016757806310ddb1371461018757806342d65a8d146101a757806354a5beda146101c7575b600080fd5b34801561015157600080fd5b50610165610160366004611111565b61044d565b005b34801561017357600080fd5b5061016561018236600461113a565b61045a565b34801561019357600080fd5b506101656101a236600461113a565b6104e3565b3480156101b357600080fd5b506101656101c23660046111a0565b61053b565b3480156101d357600080fd5b506101dc6105ca565b60405161ffff90911681526020015b60405180910390f35b34801561020057600080fd5b5060015461021590600160a01b900460ff1681565b60405190151581526020016101eb565b34801561023157600080fd5b506102456102403660046111f5565b61065a565b6040516101eb919061128e565b610165610260366004611382565b61070c565b34801561027157600080fd5b506101656107df565b34801561028657600080fd5b5060015461021590600160a81b900460ff1681565b3480156102a757600080fd5b506102bb6102b63660046113f3565b6107f3565b6040519081526020016101eb565b3480156102d557600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101eb565b34801561030757600080fd5b506001546102e3906001600160a01b031681565b610165610329366004611453565b6108de565b34801561033a57600080fd5b506102e37f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa981565b34801561036e57600080fd5b506102bb61037d36600461113a565b60036020526000908152604090205481565b61016561039d366004611382565b610a70565b3480156103ae57600080fd5b506101656103bd3660046114f1565b610ae3565b3480156103ce57600080fd5b506101656103dd36600461151d565b610ba2565b3480156103ee57600080fd5b506102bb60025481565b34801561040457600080fd5b50610165610c37565b34801561041957600080fd5b506101656104283660046115a0565b610c7c565b34801561043957600080fd5b506101656104483660046115d3565b610d06565b610455610d7c565b600255565b610462610d7c565b6040516307e0db1760e01b815261ffff821660048201527f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa96001600160a01b0316906307e0db17906024015b600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b5050505050565b6104eb610d7c565b6040516310ddb13760e01b815261ffff821660048201527f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa96001600160a01b0316906310ddb137906024016104ae565b610543610d7c565b6040516342d65a8d60e01b81526001600160a01b037f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa916906342d65a8d9061059390869086908690600401611617565b600060405180830381600087803b1580156105ad57600080fd5b505af11580156105c1573d6000803e3d6000fd5b50505050505050565b6040516304b2b47b60e11b81523060048201526000907f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa96001600160a01b03169063096568f690602401602060405180830381865afa158015610631573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610655919061163e565b905090565b604051633d7b2f6f60e21b815261ffff808516600483015283166024820152306044820152606481018290526060907f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa96001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156106da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610702919081019061165b565b90505b9392505050565b600154600160a01b900460ff16156107545760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064015b60405180910390fd5b61ffff84166000908152600360205260409020543410156107aa5760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742046656560801b604482015260640161074b565b600254815111156107cd5760405162461bcd60e51b815260040161074b906116c9565b6107d984848484610dd6565b50505050565b6107e7610d7c565b6107f16000610ed7565b565b600154600090600160a81b900460ff161561081057506000610705565b6000338484604051602001610827939291906116fe565b60408051601f198184030181526020830182526000808452915163040a7bb160e41b81529093506001600160a01b037f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa916926340a7bb1092610894928a923092889290919060040161172a565b6040805180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d4919061177e565b5095945050505050565b600154600160a81b900460ff1680156109005750600154600160a01b900460ff165b1561093d5760405162461bcd60e51b815260206004820152600d60248201526c4e6f7468696e6720746f20646f60981b604482015260640161074b565b61ffff8716600090815260036020526040902054600154600160a01b900460ff1615610967575060005b600154600160a81b900460ff16156109bc5783156109bc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206e61746976652066656560701b604482015260640161074b565b6109c681856117a2565b341015610a085760405162461bcd60e51b815260206004820152601060248201526f496e73756666696369656e742046656560801b604482015260640161074b565b60025482511115610a2b5760405162461bcd60e51b815260040161074b906116c9565b600154600160a01b900460ff16610a4857610a4888888585610dd6565b600154600160a81b900460ff16610a6657610a668686858786610f27565b5050505050505050565b600154600160a81b900460ff1615610ab35760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015260640161074b565b60025481511115610ad65760405162461bcd60e51b815260040161074b906116c9565b6107d98484843485610f27565b610aeb610d7c565b61ffff8216600090815260036020526040902054819003610b4e5760405162461bcd60e51b815260206004820152601960248201527f4665652068617320616c7265616479206265656e207365742e00000000000000604482015260640161074b565b61ffff8216600081815260036020908152604091829020849055815192835282018390527f3d9a6222528a5f37fccacff9e85c30a4b687e85338f74940f018b70c4f7461d791015b60405180910390a15050565b610baa610d7c565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa9169063cbed8b9c90610bfe90889088908890889088906004016117c8565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b505050505050505050565b610c3f610d7c565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610c79573d6000803e3d6000fd5b50565b610c84610d7c565b6001805461ffff60a01b1916600160a01b841515810260ff60a81b191691909117600160a81b841515810291909117928390556040805133815260ff938504841615156020820152919093049091161515918101919091527f1e604a5995069a4b688afcb151bf8edeee16900586d860975c1d6c0de712320190606001610b96565b610d0e610d7c565b6001600160a01b038116610d735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074b565b610c7981610ed7565b6000546001600160a01b031633146107f15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161074b565b6000338383604051602001610ded939291906116fe565b60408051601f198184030181529082905260015463b1d995dd60e01b83529092506000916001600160a01b039091169063b1d995dd90610e3590899089908790600401611801565b6020604051808303816000875af1158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e78919061182f565b9050846001600160a01b03168661ffff168267ffffffffffffffff167fbdb4daeca4a1c274318631b2e6569f5609c49b073f20d5925b06f069b71c84d4338888604051610ec7939291906116fe565b60405180910390a4505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000338483604051602001610f3e939291906116fe565b60408051601f19818403018152908290526bffffffffffffffffffffffff19606088811b8216602085015230901b166034830152915060009060480160408051601f1981840301815260208301825260008352905162c5803160e81b81529092506001600160a01b037f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa9169163c5803100918791610fe9918c91879189913391829190600401611859565b6000604051808303818588803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b505060405163b208649960e01b815261ffff8b166004820152306024820152600093507f0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa96001600160a01b0316925063b20864999150604401602060405180830381865afa15801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b0919061182f565b9050866001600160a01b03168861ffff168267ffffffffffffffff167ff2ba73dbc39474c758d416a884a139e36ab0cd5ed2001986f79cabc6c85f548a338a896040516110ff939291906116fe565b60405180910390a45050505050505050565b60006020828403121561112357600080fd5b5035919050565b61ffff81168114610c7957600080fd5b60006020828403121561114c57600080fd5b81356107058161112a565b60008083601f84011261116957600080fd5b50813567ffffffffffffffff81111561118157600080fd5b60208301915083602082850101111561119957600080fd5b9250929050565b6000806000604084860312156111b557600080fd5b83356111c08161112a565b9250602084013567ffffffffffffffff8111156111dc57600080fd5b6111e886828701611157565b9497909650939450505050565b60008060006060848603121561120a57600080fd5b83356112158161112a565b925060208401356112258161112a565b929592945050506040919091013590565b60005b83811015611251578181015183820152602001611239565b838111156107d95750506000910152565b6000815180845261127a816020860160208601611236565b601f01601f19169290920160200192915050565b6020815260006107056020830184611262565b80356001600160a01b03811681146112b857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112fc576112fc6112bd565b604052919050565b600067ffffffffffffffff82111561131e5761131e6112bd565b50601f01601f191660200190565b600082601f83011261133d57600080fd5b813561135061134b82611304565b6112d3565b81815284602083860101111561136557600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561139857600080fd5b84356113a38161112a565b93506113b1602086016112a1565b92506113bf604086016112a1565b9150606085013567ffffffffffffffff8111156113db57600080fd5b6113e78782880161132c565b91505092959194509250565b60008060006060848603121561140857600080fd5b83356114138161112a565b9250611421602085016112a1565b9150604084013567ffffffffffffffff81111561143d57600080fd5b6114498682870161132c565b9150509250925092565b600080600080600080600060e0888a03121561146e57600080fd5b87356114798161112a565b9650611487602089016112a1565b955060408801356114978161112a565b94506114a5606089016112a1565b9350608088013592506114ba60a089016112a1565b915060c088013567ffffffffffffffff8111156114d657600080fd5b6114e28a828b0161132c565b91505092959891949750929550565b6000806040838503121561150457600080fd5b823561150f8161112a565b946020939093013593505050565b60008060008060006080868803121561153557600080fd5b85356115408161112a565b945060208601356115508161112a565b935060408601359250606086013567ffffffffffffffff81111561157357600080fd5b61157f88828901611157565b969995985093965092949392505050565b803580151581146112b857600080fd5b600080604083850312156115b357600080fd5b6115bc83611590565b91506115ca60208401611590565b90509250929050565b6000602082840312156115e557600080fd5b610705826112a1565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006116356040830184866115ee565b95945050505050565b60006020828403121561165057600080fd5b81516107058161112a565b60006020828403121561166d57600080fd5b815167ffffffffffffffff81111561168457600080fd5b8201601f8101841361169557600080fd5b80516116a361134b82611304565b8181528560208385010111156116b857600080fd5b611635826020830160208601611236565b6020808252818101527f4d6178696d756d206d657373616765206c656e6774682065786365656465642e604082015260600190565b6001600160a01b0384811682528316602082015260606040820181905260009061163590830184611262565b61ffff861681526001600160a01b038516602082015260a06040820181905260009061175890830186611262565b841515606084015282810360808401526117728185611262565b98975050505050505050565b6000806040838503121561179157600080fd5b505080516020909101519092909150565b600082198211156117c357634e487b7160e01b600052601160045260246000fd5b500190565b600061ffff8088168352808716602084015250846040830152608060608301526117f66080830184866115ee565b979650505050505050565b61ffff841681526001600160a01b038316602082015260606040820181905260009061163590830184611262565b60006020828403121561184157600080fd5b815167ffffffffffffffff8116811461070557600080fd5b61ffff8716815260c06020820152600061187660c0830188611262565b82810360408401526118888188611262565b6001600160a01b0387811660608601528616608085015283810360a085015290506118b38185611262565b999850505050505050505056fea2646970667358221220646e5aea8c0ebb39333185985697235dd0ad5d36d93859dd3f7c8b0b389fc48364736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bd2506f49558b5ce8241d89b1d3577732ded1e1d0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa9
-----Decoded View---------------
Arg [0] : _zkBridgeEntrypoint (address): 0xbD2506F49558B5cE8241D89B1d3577732ded1E1D
Arg [1] : _lzEndpoint (address): 0x3A73033C0b1407574C76BdBAc67f126f6b4a9AA9
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bd2506f49558b5ce8241d89b1d3577732ded1e1d
Arg [1] : 0000000000000000000000003a73033c0b1407574c76bdbac67f126f6b4a9aa9
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.