Mumbai Testnet

Contract

0x000054d3A0Bc83Ec7808F52fCdC28A96c89F6C5c
Transaction Hash
Method
Block
From
To
Value
On Receive407703842023-10-02 22:27:04262 days ago1696285624IN
0x000054d3...6c89F6C5c
0 MATIC0.000175651.68186845
On Receive407703822023-10-02 22:26:58262 days ago1696285618IN
0x000054d3...6c89F6C5c
0 MATIC0.000146891.68186845
On Receive407703792023-10-02 22:26:52262 days ago1696285612IN
0x000054d3...6c89F6C5c
0 MATIC0.000145731.66854554
On Receive407642562023-10-02 18:25:27262 days ago1696271127IN
0x000054d3...6c89F6C5c
0 MATIC0.0022831126.14000001
On Receive407642562023-10-02 18:25:27262 days ago1696271127IN
0x000054d3...6c89F6C5c
0 MATIC0.000262023.00000001
On Receive407581692023-10-02 14:23:01262 days ago1696256581IN
0x000054d3...6c89F6C5c
0 MATIC0.000130991.50000001
On Receive407520332023-10-02 10:21:05262 days ago1696242065IN
0x000054d3...6c89F6C5c
0 MATIC0.000386953.705
On Receive407519622023-10-02 10:18:23262 days ago1696241903IN
0x000054d3...6c89F6C5c
0 MATIC0.000338843.87999999
On Receive407519612023-10-02 10:18:19262 days ago1696241899IN
0x000054d3...6c89F6C5c
0 MATIC0.000338883.87999999
On Receive407518902023-10-02 10:15:29262 days ago1696241729IN
0x000054d3...6c89F6C5c
0 MATIC0.000169441.94
On Receive407464742023-10-02 6:13:35262 days ago1696227215IN
0x000054d3...6c89F6C5c
0 MATIC0.000693897.94787461
On Receive407464722023-10-02 6:13:27262 days ago1696227207IN
0x000054d3...6c89F6C5c
0 MATIC0.000694187.94787459
On Receive407413272023-10-02 2:08:49262 days ago1696212529IN
0x000054d3...6c89F6C5c
0 MATIC0.0059991468.68570001
On Receive407413242023-10-02 2:08:43262 days ago1696212523IN
0x000054d3...6c89F6C5c
0 MATIC0.0059983268.68570001
On Receive407352642023-10-01 22:06:55263 days ago1696198015IN
0x000054d3...6c89F6C5c
0 MATIC0.0019478418.65000001
On Receive407300732023-10-01 17:59:35263 days ago1696183175IN
0x000054d3...6c89F6C5c
0 MATIC0.000232342.66019252
On Receive407300722023-10-01 17:59:31263 days ago1696183171IN
0x000054d3...6c89F6C5c
0 MATIC0.000232342.66019252
On Receive407300162023-10-01 17:56:43263 days ago1696183003IN
0x000054d3...6c89F6C5c
0 MATIC0.000181421.7372834
On Receive407232772023-10-01 13:54:48263 days ago1696168488IN
0x000054d3...6c89F6C5c
0 MATIC0.000161031.84375466
On Receive407232162023-10-01 13:52:10263 days ago1696168330IN
0x000054d3...6c89F6C5c
0 MATIC0.000700048.01496685
On Receive407178422023-10-01 9:52:50263 days ago1696153970IN
0x000054d3...6c89F6C5c
0 MATIC0.0014551116.66000001
On Receive407177172023-10-01 9:47:26263 days ago1696153646IN
0x000054d3...6c89F6C5c
0 MATIC0.0019665318.82900002
On Receive407115372023-10-01 5:45:26263 days ago1696139126IN
0x000054d3...6c89F6C5c
0 MATIC0.000199762.28716606
On Receive407115362023-10-01 5:45:24263 days ago1696139124IN
0x000054d3...6c89F6C5c
0 MATIC0.000238872.28716606
On Receive407046152023-10-01 1:38:08263 days ago1696124288IN
0x000054d3...6c89F6C5c
0 MATIC0.000171791.96724774
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To Value
274735082022-08-04 17:33:11686 days ago1659634391  Contract Creation0 MATIC
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZetaConnectorNonEth

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 8 : ZetaConnector.non-eth.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

import "./ZetaConnector.base.sol";
import "./interfaces/ZetaInterfaces.sol";
import "./interfaces/ZetaNonEthInterface.sol";

contract ZetaConnectorNonEth is ZetaConnectorBase {
    uint256 public maxSupply = 2**256 - 1;

    constructor(
        address zetaTokenAddress_,
        address tssAddress_,
        address tssAddressUpdater_,
        address pauserAddress_
    ) ZetaConnectorBase(zetaTokenAddress_, tssAddress_, tssAddressUpdater_, pauserAddress_) {}

    function getLockedAmount() external view returns (uint256) {
        return ZetaNonEthInterface(zetaToken).balanceOf(address(this));
    }

    function setMaxSupply(uint256 maxSupply_) external onlyTssAddress {
        maxSupply = maxSupply_;
    }

    function send(ZetaInterfaces.SendInput calldata input) external override whenNotPaused {
        ZetaNonEthInterface(zetaToken).burnFrom(msg.sender, input.zetaValueAndGas);

        emit ZetaSent(
            tx.origin,
            msg.sender,
            input.destinationChainId,
            input.destinationAddress,
            input.zetaValueAndGas,
            input.destinationGasLimit,
            input.message,
            input.zetaParams
        );
    }

    function onReceive(
        bytes calldata zetaTxSenderAddress,
        uint256 sourceChainId,
        address destinationAddress,
        uint256 zetaValue,
        bytes calldata message,
        bytes32 internalSendHash
    ) external override whenNotPaused onlyTssAddress {
        if (zetaValue + ZetaNonEthInterface(zetaToken).totalSupply() > maxSupply) revert ExceedsMaxSupply(maxSupply);
        ZetaNonEthInterface(zetaToken).mint(destinationAddress, zetaValue, internalSendHash);

        if (message.length > 0) {
            ZetaReceiver(destinationAddress).onZetaMessage(
                ZetaInterfaces.ZetaMessage(zetaTxSenderAddress, sourceChainId, destinationAddress, zetaValue, message)
            );
        }

        emit ZetaReceived(zetaTxSenderAddress, sourceChainId, destinationAddress, zetaValue, message, internalSendHash);
    }

    function onRevert(
        address zetaTxSenderAddress,
        uint256 sourceChainId,
        bytes calldata destinationAddress,
        uint256 destinationChainId,
        uint256 remainingZetaValue,
        bytes calldata message,
        bytes32 internalSendHash
    ) external override whenNotPaused onlyTssAddress {
        if (remainingZetaValue + ZetaNonEthInterface(zetaToken).totalSupply() > maxSupply)
            revert ExceedsMaxSupply(maxSupply);
        ZetaNonEthInterface(zetaToken).mint(zetaTxSenderAddress, remainingZetaValue, internalSendHash);

        if (message.length > 0) {
            ZetaReceiver(zetaTxSenderAddress).onZetaRevert(
                ZetaInterfaces.ZetaRevert(
                    zetaTxSenderAddress,
                    sourceChainId,
                    destinationAddress,
                    destinationChainId,
                    remainingZetaValue,
                    message
                )
            );
        }

        emit ZetaReverted(
            zetaTxSenderAddress,
            sourceChainId,
            destinationChainId,
            destinationAddress,
            remainingZetaValue,
            message,
            internalSendHash
        );
    }
}

File 2 of 8 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 2 of 8 : ZetaConnector.base.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/security/Pausable.sol";

import "./interfaces/ConnectorErrors.sol";
import "./interfaces/ZetaInterfaces.sol";

contract ZetaConnectorBase is ConnectorErrors, Pausable {
    address public immutable zetaToken;

    address public pauserAddress;

    /**
     * @dev Collectively held by Zeta blockchain validators.
     */
    address public tssAddress;

    address public tssAddressUpdater;

    event ZetaSent(
        address sourceTxOriginAddress,
        address indexed zetaTxSenderAddress,
        uint256 indexed destinationChainId,
        bytes destinationAddress,
        uint256 zetaValueAndGas,
        uint256 destinationGasLimit,
        bytes message,
        bytes zetaParams
    );

    event ZetaReceived(
        bytes zetaTxSenderAddress,
        uint256 indexed sourceChainId,
        address indexed destinationAddress,
        uint256 zetaValue,
        bytes message,
        bytes32 indexed internalSendHash
    );

    event ZetaReverted(
        address zetaTxSenderAddress,
        uint256 sourceChainId,
        uint256 indexed destinationChainId,
        bytes destinationAddress,
        uint256 remainingZetaValue,
        bytes message,
        bytes32 indexed internalSendHash
    );

    event TSSAddressUpdated(address zetaTxSenderAddress, address newTssAddress);

    event PauserAddressUpdated(address updaterAddress, address newTssAddress);

    constructor(
        address zetaToken_,
        address tssAddress_,
        address tssAddressUpdater_,
        address pauserAddress_
    ) {
        if (
            zetaToken_ == address(0) ||
            tssAddress_ == address(0) ||
            tssAddressUpdater_ == address(0) ||
            pauserAddress_ == address(0)
        ) {
            revert InvalidAddress();
        }

        zetaToken = zetaToken_;
        tssAddress = tssAddress_;
        tssAddressUpdater = tssAddressUpdater_;
        pauserAddress = pauserAddress_;
    }

    modifier onlyPauser() {
        if (msg.sender != pauserAddress) revert CallerIsNotPauser(msg.sender);
        _;
    }

    modifier onlyTssAddress() {
        if (msg.sender != tssAddress) revert CallerIsNotTss(msg.sender);
        _;
    }

    modifier onlyTssUpdater() {
        if (msg.sender != tssAddressUpdater) revert CallerIsNotTssUpdater(msg.sender);
        _;
    }

    function updatePauserAddress(address pauserAddress_) external onlyPauser {
        if (pauserAddress_ == address(0)) revert InvalidAddress();

        pauserAddress = pauserAddress_;

        emit PauserAddressUpdated(msg.sender, pauserAddress_);
    }

    function updateTssAddress(address tssAddress_) external {
        if (msg.sender != tssAddress && msg.sender != tssAddressUpdater) revert CallerIsNotTssOrUpdater(msg.sender);
        if (tssAddress_ == address(0)) revert InvalidAddress();

        tssAddress = tssAddress_;

        emit TSSAddressUpdated(msg.sender, tssAddress_);
    }

    /**
     * @dev Changes the ownership of tssAddressUpdater to be the one held by the Zeta blockchain TSS nodes.
     */
    function renounceTssAddressUpdater() external onlyTssUpdater {
        if (tssAddress == address(0)) revert InvalidAddress();

        tssAddressUpdater = tssAddress;
    }

    function pause() external onlyPauser {
        _pause();
    }

    function unpause() external onlyPauser {
        _unpause();
    }

    function send(ZetaInterfaces.SendInput calldata input) external virtual {}

    function onReceive(
        bytes calldata zetaTxSenderAddress,
        uint256 sourceChainId,
        address destinationAddress,
        uint256 zetaValue,
        bytes calldata message,
        bytes32 internalSendHash
    ) external virtual {}

    function onRevert(
        address zetaTxSenderAddress,
        uint256 sourceChainId,
        bytes calldata destinationAddress,
        uint256 destinationChainId,
        uint256 remainingZetaValue,
        bytes calldata message,
        bytes32 internalSendHash
    ) external virtual {}
}

File 2 of 8 : ZetaInterfaces.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

interface ZetaInterfaces {
    /**
     * @dev Use SendInput to interact with the Connector: connector.send(SendInput)
     */
    struct SendInput {
        /// @dev Chain id of the destination chain. More about chain ids https://docs.zetachain.com/learn/glossary#chain-id
        uint256 destinationChainId;
        /// @dev Address receiving the message on the destination chain (expressed in bytes since it can be non-EVM)
        bytes destinationAddress;
        /// @dev Gas limit for the destination chain's transaction
        uint256 destinationGasLimit;
        /// @dev An encoded, arbitrary message to be parsed by the destination contract
        bytes message;
        /// @dev ZETA to be sent cross-chain + ZetaChain gas fees + destination chain gas fees (expressed in ZETA)
        uint256 zetaValueAndGas;
        /// @dev Optional parameters for the ZetaChain protocol
        bytes zetaParams;
    }

    /**
     * @dev Our Connector calls onZetaMessage with this struct as argument
     */
    struct ZetaMessage {
        bytes zetaTxSenderAddress;
        uint256 sourceChainId;
        address destinationAddress;
        /// @dev Remaining ZETA from zetaValueAndGas after subtracting ZetaChain gas fees and destination gas fees
        uint256 zetaValue;
        bytes message;
    }

    /**
     * @dev Our Connector calls onZetaRevert with this struct as argument
     */
    struct ZetaRevert {
        address zetaTxSenderAddress;
        uint256 sourceChainId;
        bytes destinationAddress;
        uint256 destinationChainId;
        /// @dev Equals to: zetaValueAndGas - ZetaChain gas fees - destination chain gas fees - source chain revert tx gas fees
        uint256 remainingZetaValue;
        bytes message;
    }
}

interface ZetaConnector {
    /**
     * @dev Sending value and data cross-chain is as easy as calling connector.send(SendInput)
     */
    function send(ZetaInterfaces.SendInput calldata input) external;
}

interface ZetaReceiver {
    /**
     * @dev onZetaMessage is called when a cross-chain message reaches a contract
     */
    function onZetaMessage(ZetaInterfaces.ZetaMessage calldata zetaMessage) external;

    /**
     * @dev onZetaRevert is called when a cross-chain message reverts.
     * It's useful to rollback to the original state
     */
    function onZetaRevert(ZetaInterfaces.ZetaRevert calldata zetaRevert) external;
}

/**
 * @dev ZetaTokenConsumer makes it easier to handle the following situations:
 *   - Getting Zeta using native coin (to pay for destination gas while using `connector.send`)
 *   - Getting Zeta using a token (to pay for destination gas while using `connector.send`)
 *   - Getting native coin using Zeta (to return unused destination gas when `onZetaRevert` is executed)
 *   - Getting a token using Zeta (to return unused destination gas when `onZetaRevert` is executed)
 * @dev The interface can be implemented using different strategies, like UniswapV2, UniswapV3, etc
 */
interface ZetaTokenConsumer {
    event EthExchangedForZeta(uint256 amountIn, uint256 amountOut);
    event TokenExchangedForZeta(address token, uint256 amountIn, uint256 amountOut);
    event ZetaExchangedForEth(uint256 amountIn, uint256 amountOut);
    event ZetaExchangedForToken(address token, uint256 amountIn, uint256 amountOut);

    function getZetaFromEth(address destinationAddress, uint256 minAmountOut) external payable returns (uint256);

    function getZetaFromToken(
        address destinationAddress,
        uint256 minAmountOut,
        address inputToken,
        uint256 inputTokenAmount
    ) external returns (uint256);

    function getEthFromZeta(
        address destinationAddress,
        uint256 minAmountOut,
        uint256 zetaTokenAmount
    ) external returns (uint256);

    function getTokenFromZeta(
        address destinationAddress,
        uint256 minAmountOut,
        address outputToken,
        uint256 zetaTokenAmount
    ) external returns (uint256);
}

File 2 of 8 : ZetaNonEthInterface.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface ZetaNonEthInterface is IERC20 {
    function burnFrom(address account, uint256 amount) external;

    function mint(
        address mintee,
        uint256 value,
        bytes32 internalSendHash
    ) external;
}

File 2 of 8 : Pausable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/Pausable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

File 2 of 8 : ConnectorErrors.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

interface ConnectorErrors {
    error CallerIsNotPauser(address caller);

    error CallerIsNotTss(address caller);

    error CallerIsNotTssUpdater(address caller);

    error CallerIsNotTssOrUpdater(address caller);

    error InvalidAddress();

    error ZetaTransferError();

    error ExceedsMaxSupply(uint256 maxSupply);
}

File 2 of 8 : Context.sol
// 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;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"zetaTokenAddress_","type":"address"},{"internalType":"address","name":"tssAddress_","type":"address"},{"internalType":"address","name":"tssAddressUpdater_","type":"address"},{"internalType":"address","name":"pauserAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerIsNotPauser","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerIsNotTss","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerIsNotTssOrUpdater","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"CallerIsNotTssUpdater","type":"error"},{"inputs":[{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"ExceedsMaxSupply","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"ZetaTransferError","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"updaterAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newTssAddress","type":"address"}],"name":"PauserAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"zetaTxSenderAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newTssAddress","type":"address"}],"name":"TSSAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"zetaTxSenderAddress","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"sourceChainId","type":"uint256"},{"indexed":true,"internalType":"address","name":"destinationAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"zetaValue","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":true,"internalType":"bytes32","name":"internalSendHash","type":"bytes32"}],"name":"ZetaReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"zetaTxSenderAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"sourceChainId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"destinationAddress","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"remainingZetaValue","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":true,"internalType":"bytes32","name":"internalSendHash","type":"bytes32"}],"name":"ZetaReverted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sourceTxOriginAddress","type":"address"},{"indexed":true,"internalType":"address","name":"zetaTxSenderAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"destinationAddress","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"zetaValueAndGas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"destinationGasLimit","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"zetaParams","type":"bytes"}],"name":"ZetaSent","type":"event"},{"inputs":[],"name":"getLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"zetaTxSenderAddress","type":"bytes"},{"internalType":"uint256","name":"sourceChainId","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"internalType":"uint256","name":"zetaValue","type":"uint256"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes32","name":"internalSendHash","type":"bytes32"}],"name":"onReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"zetaTxSenderAddress","type":"address"},{"internalType":"uint256","name":"sourceChainId","type":"uint256"},{"internalType":"bytes","name":"destinationAddress","type":"bytes"},{"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"internalType":"uint256","name":"remainingZetaValue","type":"uint256"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes32","name":"internalSendHash","type":"bytes32"}],"name":"onRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauserAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceTssAddressUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"internalType":"bytes","name":"destinationAddress","type":"bytes"},{"internalType":"uint256","name":"destinationGasLimit","type":"uint256"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"uint256","name":"zetaValueAndGas","type":"uint256"},{"internalType":"bytes","name":"zetaParams","type":"bytes"}],"internalType":"struct ZetaInterfaces.SendInput","name":"input","type":"tuple"}],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSupply_","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tssAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tssAddressUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pauserAddress_","type":"address"}],"name":"updatePauserAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tssAddress_","type":"address"}],"name":"updateTssAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zetaToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003553480156200003557600080fd5b506040516200239b3803806200239b83398181016040528101906200005b9190620002a8565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620001195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001515750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000189576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200036d565b600081519050620002a28162000353565b92915050565b60008060008060808587031215620002c557620002c46200034e565b5b6000620002d58782880162000291565b9450506020620002e88782880162000291565b9350506040620002fb8782880162000291565b92505060606200030e8782880162000291565b91505092959194509250565b600062000327826200032e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200035e816200031a565b81146200036a57600080fd5b50565b60805160601c611fe5620003b66000396000818161029f015281816102c5015281816104500152818161053e01528181610f460152818161103401526112a30152611fe56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a98565b60405180910390f35b61012b6102c1565b6040516101389190611d05565b60405180910390f35b61015b60048036038101906101569190611713565b610371565b005b610165610769565b6040516101729190611a98565b60405180910390f35b61018361078f565b005b61018d61082b565b60405161019a9190611a98565b60405180910390f35b6101ab610851565b6040516101b89190611c1d565b60405180910390f35b6101db60048036038101906101d69190611604565b610867565b005b6101f760048036038101906101f2919061182b565b6109dd565b005b610201610a79565b005b61020b610bf9565b005b61022760048036038101906102229190611604565b610c95565b005b610243600480360381019061023e9190611631565b610e67565b005b61024d611253565b60405161025a9190611d05565b60405180910390f35b61027d600480360381019061027891906117e2565b611259565b005b6102876113ca565b6040516102949190611a98565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a98565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611858565b905090565b610379610851565b156103b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b090611ca1565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044b57336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016104429190611a98565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b457600080fd5b505afa1580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611858565b856104f79190611dc1565b111561053c576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016105339190611d05565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161059993929190611b81565b600060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b505050506000838390501115610707578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016106d49190611cc1565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b898989604051610757959493929190611c38565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108189190611a98565b60405180910390fd5b6108296113f0565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108f09190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610960576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516109d2929190611ab3565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6f57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a669190611a98565b60405180910390fd5b8060038190555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610b029190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b94576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610c829190611a98565b60405180910390fd5b610c93611491565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d415750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610d8357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610d7a9190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dea576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610e5c929190611ab3565b60405180910390a150565b610e6f610851565b15610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea690611ca1565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f389190611a98565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe29190611858565b85610fed9190611dc1565b1115611032576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110299190611d05565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161108f93929190611b81565b600060405180830381600087803b1580156110a957600080fd5b505af11580156110bd573d6000803e3d6000fd5b505050506000838390501115611203578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111d09190611ce3565b600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a6040516112409796959493929190611bb8565b60405180910390a3505050505050505050565b60035481565b611261610851565b156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890611ca1565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b8152600401611300929190611b58565b600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328480602001906113809190611d20565b8660800135876040013588806060019061139a9190611d20565b8a8060a001906113aa9190611d20565b6040516113bf99989796959493929190611adc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113f8610851565b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90611c81565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61147a611533565b6040516114879190611a98565b60405180910390a1565b611499610851565b156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090611ca1565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861151c611533565b6040516115299190611a98565b60405180910390a1565b600033905090565b60008135905061154a81611f6a565b92915050565b60008135905061155f81611f81565b92915050565b60008083601f84011261157b5761157a611edf565b5b8235905067ffffffffffffffff81111561159857611597611eda565b5b6020830191508360018202830111156115b4576115b3611ef3565b5b9250929050565b600060c082840312156115d1576115d0611ee9565b5b81905092915050565b6000813590506115e981611f98565b92915050565b6000815190506115fe81611f98565b92915050565b60006020828403121561161a57611619611f02565b5b60006116288482850161153b565b91505092915050565b600080600080600080600080600060e08a8c03121561165357611652611f02565b5b60006116618c828d0161153b565b99505060206116728c828d016115da565b98505060408a013567ffffffffffffffff81111561169357611692611efd565b5b61169f8c828d01611565565b975097505060606116b28c828d016115da565b95505060806116c38c828d016115da565b94505060a08a013567ffffffffffffffff8111156116e4576116e3611efd565b5b6116f08c828d01611565565b935093505060c06117038c828d01611550565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561173357611732611f02565b5b600089013567ffffffffffffffff81111561175157611750611efd565b5b61175d8b828c01611565565b985098505060206117708b828c016115da565b96505060406117818b828c0161153b565b95505060606117928b828c016115da565b945050608089013567ffffffffffffffff8111156117b3576117b2611efd565b5b6117bf8b828c01611565565b935093505060a06117d28b828c01611550565b9150509295985092959890939650565b6000602082840312156117f8576117f7611f02565b5b600082013567ffffffffffffffff81111561181657611815611efd565b5b611822848285016115bb565b91505092915050565b60006020828403121561184157611840611f02565b5b600061184f848285016115da565b91505092915050565b60006020828403121561186e5761186d611f02565b5b600061187c848285016115ef565b91505092915050565b61188e81611e17565b82525050565b61189d81611e17565b82525050565b6118ac81611e29565b82525050565b6118bb81611e35565b82525050565b60006118cd8385611d9f565b93506118da838584611e69565b6118e383611f07565b840190509392505050565b60006118f982611d83565b6119038185611d8e565b9350611913818560208601611e78565b61191c81611f07565b840191505092915050565b6000611934601483611db0565b915061193f82611f18565b602082019050919050565b6000611957601083611db0565b915061196282611f41565b602082019050919050565b600060a083016000830151848203600086015261198a82826118ee565b915050602083015161199f6020860182611a7a565b5060408301516119b26040860182611885565b5060608301516119c56060860182611a7a565b50608083015184820360808601526119dd82826118ee565b9150508091505092915050565b600060c083016000830151611a026000860182611885565b506020830151611a156020860182611a7a565b5060408301518482036040860152611a2d82826118ee565b9150506060830151611a426060860182611a7a565b506080830151611a556080860182611a7a565b5060a083015184820360a0860152611a6d82826118ee565b9150508091505092915050565b611a8381611e5f565b82525050565b611a9281611e5f565b82525050565b6000602082019050611aad6000830184611894565b92915050565b6000604082019050611ac86000830185611894565b611ad56020830184611894565b9392505050565b600060c082019050611af1600083018c611894565b8181036020830152611b04818a8c6118c1565b9050611b136040830189611a89565b611b206060830188611a89565b8181036080830152611b338186886118c1565b905081810360a0830152611b488184866118c1565b90509a9950505050505050505050565b6000604082019050611b6d6000830185611894565b611b7a6020830184611a89565b9392505050565b6000606082019050611b966000830186611894565b611ba36020830185611a89565b611bb060408301846118b2565b949350505050565b600060a082019050611bcd600083018a611894565b611bda6020830189611a89565b8181036040830152611bed8187896118c1565b9050611bfc6060830186611a89565b8181036080830152611c0f8184866118c1565b905098975050505050505050565b6000602082019050611c3260008301846118a3565b92915050565b60006060820190508181036000830152611c538187896118c1565b9050611c626020830186611a89565b8181036040830152611c758184866118c1565b90509695505050505050565b60006020820190508181036000830152611c9a81611927565b9050919050565b60006020820190508181036000830152611cba8161194a565b9050919050565b60006020820190508181036000830152611cdb818461196d565b905092915050565b60006020820190508181036000830152611cfd81846119ea565b905092915050565b6000602082019050611d1a6000830184611a89565b92915050565b60008083356001602003843603038112611d3d57611d3c611eee565b5b80840192508235915067ffffffffffffffff821115611d5f57611d5e611ee4565b5b602083019250600182023603831315611d7b57611d7a611ef8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dcc82611e5f565b9150611dd783611e5f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e0c57611e0b611eab565b5b828201905092915050565b6000611e2282611e3f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e96578082015181840152602081019050611e7b565b83811115611ea5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f7381611e17565b8114611f7e57600080fd5b50565b611f8a81611e35565b8114611f9557600080fd5b50565b611fa181611e5f565b8114611fac57600080fd5b5056fea264697066735822122026e075a0329747f85269f5d9d020ef49f1b1599f4c1ed2ca912d2621aec8339c64736f6c63430008070033000000000000000000000000000080383847bd75f91c168269aa74004877592f00000000000000000000000061141bce5352fc9b5ff648468676e356518d86ab0000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a550000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a55

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a98565b60405180910390f35b61012b6102c1565b6040516101389190611d05565b60405180910390f35b61015b60048036038101906101569190611713565b610371565b005b610165610769565b6040516101729190611a98565b60405180910390f35b61018361078f565b005b61018d61082b565b60405161019a9190611a98565b60405180910390f35b6101ab610851565b6040516101b89190611c1d565b60405180910390f35b6101db60048036038101906101d69190611604565b610867565b005b6101f760048036038101906101f2919061182b565b6109dd565b005b610201610a79565b005b61020b610bf9565b005b61022760048036038101906102229190611604565b610c95565b005b610243600480360381019061023e9190611631565b610e67565b005b61024d611253565b60405161025a9190611d05565b60405180910390f35b61027d600480360381019061027891906117e2565b611259565b005b6102876113ca565b6040516102949190611a98565b60405180910390f35b7f000000000000000000000000000080383847bd75f91c168269aa74004877592f81565b60007f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a98565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611858565b905090565b610379610851565b156103b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b090611ca1565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044b57336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016104429190611a98565b60405180910390fd5b6003547f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b457600080fd5b505afa1580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611858565b856104f79190611dc1565b111561053c576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016105339190611d05565b60405180910390fd5b7f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161059993929190611b81565b600060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b505050506000838390501115610707578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016106d49190611cc1565b600060405180830381600087803b1580156106ee57600080fd5b505af1158015610702573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b898989604051610757959493929190611c38565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108189190611a98565b60405180910390fd5b6108296113f0565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108f09190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610960576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516109d2929190611ab3565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a6f57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a669190611a98565b60405180910390fd5b8060038190555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610b029190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b94576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610c829190611a98565b60405180910390fd5b610c93611491565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d415750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610d8357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610d7a9190611a98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dea576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610e5c929190611ab3565b60405180910390a150565b610e6f610851565b15610eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea690611ca1565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f389190611a98565b60405180910390fd5b6003547f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe29190611858565b85610fed9190611dc1565b1115611032576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110299190611d05565b60405180910390fd5b7f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161108f93929190611b81565b600060405180830381600087803b1580156110a957600080fd5b505af11580156110bd573d6000803e3d6000fd5b505050506000838390501115611203578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111d09190611ce3565b600060405180830381600087803b1580156111ea57600080fd5b505af11580156111fe573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a6040516112409796959493929190611bb8565b60405180910390a3505050505050505050565b60035481565b611261610851565b156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890611ca1565b60405180910390fd5b7f000000000000000000000000000080383847bd75f91c168269aa74004877592f73ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b8152600401611300929190611b58565b600060405180830381600087803b15801561131a57600080fd5b505af115801561132e573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328480602001906113809190611d20565b8660800135876040013588806060019061139a9190611d20565b8a8060a001906113aa9190611d20565b6040516113bf99989796959493929190611adc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113f8610851565b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90611c81565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61147a611533565b6040516114879190611a98565b60405180910390a1565b611499610851565b156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090611ca1565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861151c611533565b6040516115299190611a98565b60405180910390a1565b600033905090565b60008135905061154a81611f6a565b92915050565b60008135905061155f81611f81565b92915050565b60008083601f84011261157b5761157a611edf565b5b8235905067ffffffffffffffff81111561159857611597611eda565b5b6020830191508360018202830111156115b4576115b3611ef3565b5b9250929050565b600060c082840312156115d1576115d0611ee9565b5b81905092915050565b6000813590506115e981611f98565b92915050565b6000815190506115fe81611f98565b92915050565b60006020828403121561161a57611619611f02565b5b60006116288482850161153b565b91505092915050565b600080600080600080600080600060e08a8c03121561165357611652611f02565b5b60006116618c828d0161153b565b99505060206116728c828d016115da565b98505060408a013567ffffffffffffffff81111561169357611692611efd565b5b61169f8c828d01611565565b975097505060606116b28c828d016115da565b95505060806116c38c828d016115da565b94505060a08a013567ffffffffffffffff8111156116e4576116e3611efd565b5b6116f08c828d01611565565b935093505060c06117038c828d01611550565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561173357611732611f02565b5b600089013567ffffffffffffffff81111561175157611750611efd565b5b61175d8b828c01611565565b985098505060206117708b828c016115da565b96505060406117818b828c0161153b565b95505060606117928b828c016115da565b945050608089013567ffffffffffffffff8111156117b3576117b2611efd565b5b6117bf8b828c01611565565b935093505060a06117d28b828c01611550565b9150509295985092959890939650565b6000602082840312156117f8576117f7611f02565b5b600082013567ffffffffffffffff81111561181657611815611efd565b5b611822848285016115bb565b91505092915050565b60006020828403121561184157611840611f02565b5b600061184f848285016115da565b91505092915050565b60006020828403121561186e5761186d611f02565b5b600061187c848285016115ef565b91505092915050565b61188e81611e17565b82525050565b61189d81611e17565b82525050565b6118ac81611e29565b82525050565b6118bb81611e35565b82525050565b60006118cd8385611d9f565b93506118da838584611e69565b6118e383611f07565b840190509392505050565b60006118f982611d83565b6119038185611d8e565b9350611913818560208601611e78565b61191c81611f07565b840191505092915050565b6000611934601483611db0565b915061193f82611f18565b602082019050919050565b6000611957601083611db0565b915061196282611f41565b602082019050919050565b600060a083016000830151848203600086015261198a82826118ee565b915050602083015161199f6020860182611a7a565b5060408301516119b26040860182611885565b5060608301516119c56060860182611a7a565b50608083015184820360808601526119dd82826118ee565b9150508091505092915050565b600060c083016000830151611a026000860182611885565b506020830151611a156020860182611a7a565b5060408301518482036040860152611a2d82826118ee565b9150506060830151611a426060860182611a7a565b506080830151611a556080860182611a7a565b5060a083015184820360a0860152611a6d82826118ee565b9150508091505092915050565b611a8381611e5f565b82525050565b611a9281611e5f565b82525050565b6000602082019050611aad6000830184611894565b92915050565b6000604082019050611ac86000830185611894565b611ad56020830184611894565b9392505050565b600060c082019050611af1600083018c611894565b8181036020830152611b04818a8c6118c1565b9050611b136040830189611a89565b611b206060830188611a89565b8181036080830152611b338186886118c1565b905081810360a0830152611b488184866118c1565b90509a9950505050505050505050565b6000604082019050611b6d6000830185611894565b611b7a6020830184611a89565b9392505050565b6000606082019050611b966000830186611894565b611ba36020830185611a89565b611bb060408301846118b2565b949350505050565b600060a082019050611bcd600083018a611894565b611bda6020830189611a89565b8181036040830152611bed8187896118c1565b9050611bfc6060830186611a89565b8181036080830152611c0f8184866118c1565b905098975050505050505050565b6000602082019050611c3260008301846118a3565b92915050565b60006060820190508181036000830152611c538187896118c1565b9050611c626020830186611a89565b8181036040830152611c758184866118c1565b90509695505050505050565b60006020820190508181036000830152611c9a81611927565b9050919050565b60006020820190508181036000830152611cba8161194a565b9050919050565b60006020820190508181036000830152611cdb818461196d565b905092915050565b60006020820190508181036000830152611cfd81846119ea565b905092915050565b6000602082019050611d1a6000830184611a89565b92915050565b60008083356001602003843603038112611d3d57611d3c611eee565b5b80840192508235915067ffffffffffffffff821115611d5f57611d5e611ee4565b5b602083019250600182023603831315611d7b57611d7a611ef8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dcc82611e5f565b9150611dd783611e5f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e0c57611e0b611eab565b5b828201905092915050565b6000611e2282611e3f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e96578082015181840152602081019050611e7b565b83811115611ea5576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f7381611e17565b8114611f7e57600080fd5b50565b611f8a81611e35565b8114611f9557600080fd5b50565b611fa181611e5f565b8114611fac57600080fd5b5056fea264697066735822122026e075a0329747f85269f5d9d020ef49f1b1599f4c1ed2ca912d2621aec8339c64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000080383847bd75f91c168269aa74004877592f00000000000000000000000061141bce5352fc9b5ff648468676e356518d86ab0000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a550000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a55

-----Decoded View---------------
Arg [0] : zetaTokenAddress_ (address): 0x000080383847bD75F91c168269Aa74004877592f
Arg [1] : tssAddress_ (address): 0x61141Bce5352fC9b5Ff648468676e356518D86AB
Arg [2] : tssAddressUpdater_ (address): 0x7274D1d5dDDEF36Aac53DD45b93487CE01Ef0A55
Arg [3] : pauserAddress_ (address): 0x7274D1d5dDDEF36Aac53DD45b93487CE01Ef0A55

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000000080383847bd75f91c168269aa74004877592f
Arg [1] : 00000000000000000000000061141bce5352fc9b5ff648468676e356518d86ab
Arg [2] : 0000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a55
Arg [3] : 0000000000000000000000007274d1d5dddef36aac53dd45b93487ce01ef0a55


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.