ETH Price: $3,464.03 (+2.16%)
Gas: 7 Gwei

Token

Multichain BTC (multiBTC)
 

Overview

Max Total Supply

44.25927353 multiBTC

Holders

208 (0.00%)

Market

Price

$62,763.00 @ 18.118479 ETH (+2.20%)

Onchain Market Cap

$2,777,844.78

Circulating Supply Market Cap

$9,621,183,476.00

Other Info

Token Contract (WITH 8 Decimals)

Balance
5.00000056 multiBTC

Value
$313,815.04 ( ~90.5924 Eth) [11.2971%]
0x38abab9766e0b27d2912718a884292b8E7eb2803
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

multiBTC is a pegged ERC20 token backed 1:1 with Bitcoin via Multichain decentralized Bridge.

Market

Volume (24H):$259,811,861.00
Market Capitalization:$9,621,183,476.00
Circulating Supply:153,021.00 multiBTC
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AnyswapV6ERC20

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-16
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity ^0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV6ERC20 is IERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;
    bool public constant underlyingIsMinted = false;

    /// @dev Records amount of AnyswapV6ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    // init flag for setting immediate vault, needed for CREATE2 support
    bool private _init;

    // flag to enable/disable swapout vs vault.burn so multiple events are triggered
    bool private _vaultOnly;

    // delay for timelock functions
    uint public constant DELAY = 2 days;

    // set of minters, can be this bridge or other bridges
    mapping(address => bool) public isMinter;
    address[] public minters;

    // primary controller of the token contract
    address public vault;

    address public pendingMinter;
    uint public delayMinter;

    address public pendingVault;
    uint public delayVault;

    modifier onlyAuth() {
        require(isMinter[msg.sender], "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    modifier onlyVault() {
        require(msg.sender == vault, "AnyswapV6ERC20: FORBIDDEN");
        _;
    }

    function owner() external view returns (address) {
        return vault;
    }

    function mpc() external view returns (address) {
        return vault;
    }

    function setVaultOnly(bool enabled) external onlyVault {
        _vaultOnly = enabled;
    }

    function initVault(address _vault) external onlyVault {
        require(_init);
        _init = false;
        vault = _vault;
        isMinter[_vault] = true;
        minters.push(_vault);
    }

    function setVault(address _vault) external onlyVault {
        require(_vault != address(0), "AnyswapV6ERC20: address(0)");
        pendingVault = _vault;
        delayVault = block.timestamp + DELAY;
    }

    function applyVault() external onlyVault {
        require(pendingVault != address(0) && block.timestamp >= delayVault);
        vault = pendingVault;

        pendingVault = address(0);
        delayVault = 0;
    }

    function setMinter(address _auth) external onlyVault {
        require(_auth != address(0), "AnyswapV6ERC20: address(0)");
        pendingMinter = _auth;
        delayMinter = block.timestamp + DELAY;
    }

    function applyMinter() external onlyVault {
        require(pendingMinter != address(0) && block.timestamp >= delayMinter);
        isMinter[pendingMinter] = true;
        minters.push(pendingMinter);

        pendingMinter = address(0);
        delayMinter = 0;
    }

    // No time delay revoke minter emergency function
    function revokeMinter(address _auth) external onlyVault {
        isMinter[_auth] = false;
    }

    function getAllMinters() external view returns (address[] memory) {
        return minters;
    }

    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV6ERC20: address(0)");
        emit LogChangeVault(vault, newVault, block.timestamp);
        vault = newVault;
        pendingVault = address(0);
        delayVault = 0;
        return true;
    }

    function mint(address to, uint256 amount) external onlyAuth returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyAuth returns (bool) {
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) external onlyAuth returns (bool) {
        if (underlying != address(0) && IERC20(underlying).balanceOf(address(this)) >= amount) {
            IERC20(underlying).safeTransfer(account, amount);
        } else {
            _mint(account, amount);
        }
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, string memory bindaddr) external returns (bool) {
        require(!_vaultOnly, "AnyswapV6ERC20: vaultOnly");
        verifyBindAddr(bindaddr);
        if (underlying != address(0) && balanceOf[msg.sender] < amount) {
            IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        } else {
            _burn(msg.sender, amount);
        }
        emit LogSwapout(msg.sender, amount, bindaddr);
        return true;
    }

    function verifyBindAddr(string memory bindaddr) pure internal {
        require(bytes(bindaddr).length > 0);
    }

    /// @dev Records number of AnyswapV6ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, uint amount, string bindaddr);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        // Use init to allow for CREATE2 accross all chains
        _init = true;

        // Disable/Enable swapout for v1 tokens vs mint/burn for v3 tokens
        _vaultOnly = false;

        vault = _vault;
    }

    /// @dev Returns the total supply of AnyswapV6ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        require(!underlyingIsMinted);
        require(underlying != address(0) && underlying != address(this));
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return amount;
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 balance = balanceOf[account];
        require(balance >= amount, "ERC20: burn amount exceeds balance");

        balanceOf[account] = balance - amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV6ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from caller's account to account (`to`).
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV6ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV6ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV6ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV6ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) && to != address(this));
        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV6ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV6ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","type":"address"},{"internalType":"address","name":"_vault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"bindaddr","type":"string"}],"name":"LogSwapout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"bindaddr","type":"string"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applyVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayMinter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllMinters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"initVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"minters","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"revokeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_auth","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setVaultOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"underlyingIsMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b506040516200232b3803806200232b833981016040819052620000349162000213565b600062000042868262000344565b50600162000051858262000344565b5060ff83166080526001600160a01b03821660a081905215620000e557816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d3919062000410565b60ff168360ff1614620000e557600080fd5b6004805461ffff19166001179055600780546001600160a01b039092166001600160a01b0319909216919091179055506200043592505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200014757600080fd5b81516001600160401b03808211156200016457620001646200011f565b604051601f8301601f19908116603f011681019082821181831017156200018f576200018f6200011f565b81604052838152602092508683858801011115620001ac57600080fd5b600091505b83821015620001d05785820183015181830184015290820190620001b1565b600093810190920192909252949350505050565b805160ff81168114620001f657600080fd5b919050565b80516001600160a01b0381168114620001f657600080fd5b600080600080600060a086880312156200022c57600080fd5b85516001600160401b03808211156200024457600080fd5b6200025289838a0162000135565b965060208801519150808211156200026957600080fd5b50620002788882890162000135565b9450506200028960408701620001e4565b92506200029960608701620001fb565b9150620002a960808701620001fb565b90509295509295909350565b600181811c90821680620002ca57607f821691505b602082108103620002eb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200033f57600081815260208120601f850160051c810160208610156200031a5750805b601f850160051c820191505b818110156200033b5782815560010162000326565b5050505b505050565b81516001600160401b038111156200036057620003606200011f565b6200037881620003718454620002b5565b84620002f1565b602080601f831160018114620003b05760008415620003975750858301515b600019600386901b1c1916600185901b1785556200033b565b600085815260208120601f198616915b82811015620003e157888601518255948401946001909101908401620003c0565b5085821015620004005787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200042357600080fd5b6200042e82620001e4565b9392505050565b60805160a051611e6e620004bd600039600081816103e401528181610c5201528181610e9301528181610ee901528181610f7b0152818161108b01528181611105015281816111e901528181611231015281816112b9015281816113ad015281816113e00152818161142c0152818161159d01526115d0015260006103220152611e6e6000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c80638da5cb5b11610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610442578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a9059cbb1161010a578063a9059cbb14610496578063aa271e1a146104a9578063ad54056d146104cc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b80638da5cb5b1461044257806391c5df491461045357806395d89b41146104665780639dc29fac1461046e578063a045442c1461048157600080fd5b80633ccfd60b116101df57806369b41170116101a357806369b41170146103c25780636e553f65146103cc5780636f307dc3146103df57806370a08231146104065780638623ec7b1461042657806387689e281461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c5780636817031b146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611976565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119b2565b6105f9565b6102a261060f565b60405161027e9190611a2e565b6102c26102bd366004611a41565b61069d565b604051901515815260200161027e565b6102da610709565b005b600354610274565b6102c26102f2366004611a6b565b6107d8565b610274610305366004611aa7565b6109d6565b6102da610318366004611ac0565b6109e3565b6103447f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161027e565b610274610a9d565b6102c261036c366004611a41565b610abe565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611ac0565b610b00565b6102da6103bd366004611ac0565b610bc5565b6102746202a30081565b6102746103da3660046119b2565b610c43565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610414366004611ac0565b60026020526000908152604090205481565b610384610434366004611aa7565b610c84565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610cae565b6102c261047c366004611a41565b610cbb565b610489610cf4565b60405161027e9190611adb565b6102c26104a4366004611a41565b610d56565b6102c26104b7366004611ac0565b60056020526000908152604090205460ff1681565b6102c26104da366004611b3e565b610e2d565b6102746104ed366004611aa7565b610f6c565b6102746105003660046119b2565b610fad565b61027460095481565b6102da61051c366004611c07565b610fda565b6102da61052f366004611ac0565b61101e565b610274611069565b6102c2600081565b6102da61113d565b61027461055a366004611c2b565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611c55565b6111b8565b600754610384906001600160a01b031681565b6102da6105ab366004611ac0565b61132b565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611c7a565b60405180910390fd5b6105f18484846113a9565b949350505050565b60006106063384846113a9565b90505b92915050565b6000805461061c90611cb1565b80601f016020809104026020016040519081016040528092919081815260200182805461064890611cb1565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f89086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107335760405162461bcd60e51b81526004016105dd90611c7a565b6008546001600160a01b03161580159061074f57506009544210155b61075857600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107fb57506001600160a01b0383163014155b61080457600080fd5b6001600160a01b0384163314610910576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090e57828110156108a35760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108af8483611d01565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109495760405162461bcd60e51b81526004016105dd90611d14565b6109538382611d01565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610989908490611d63565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611e19833981519152856040516109c391815260200190565b60405180910390a3506001949350505050565b60006106093383336113a9565b6007546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105dd90611c7a565b60045460ff16610a1c57600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610ab991816113a9565b905090565b3360009081526005602052604081205460ff16610aed5760405162461bcd60e51b81526004016105dd90611c7a565b610af7838361145b565b50600192915050565b6007546000906001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b038216610b535760405162461bcd60e51b81526004016105dd90611d76565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b6007546001600160a01b03163314610bef5760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b038116610c155760405162461bcd60e51b81526004016105dd90611d76565b600a80546001600160a01b0319166001600160a01b038316179055610c3d6202a30042611d63565b600b5550565b6000610c7a6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611528565b6106068383611599565b60068181548110610c9457600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061c90611cb1565b3360009081526005602052604081205460ff16610cea5760405162461bcd60e51b81526004016105dd90611c7a565b610af78383611616565b60606006805480602002602001604051908101604052809291908181526020018280548015610d4c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d2e575b5050505050905090565b60006001600160a01b03831615801590610d7957506001600160a01b0383163014155b610d8257600080fd5b3360009081526002602052604090205482811015610db25760405162461bcd60e51b81526004016105dd90611d14565b610dbc8382611d01565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610def908490611d63565b90915550506040518381526001600160a01b038516903390600080516020611e19833981519152906020015b60405180910390a35060019392505050565b600454600090610100900460ff1615610e885760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b610e918261175b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610ed757503360009081526002602052604090205483115b15610f1657610f116001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611528565b610f20565b610f203384611616565b336001600160a01b03167f9c92ad817e5474d30a4378deface765150479363a897b0590fbb12ae9d89396b8484604051610f5b929190611dad565b60405180910390a250600192915050565b6000610fa36001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611528565b6106098233611599565b6007546000906001600160a01b03163314610c7a5760405162461bcd60e51b81526004016105dd90611c7a565b6007546001600160a01b031633146110045760405162461bcd60e51b81526004016105dd90611c7a565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b031633146110485760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f69190611dc6565b905061112d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611528565b6111378133611599565b91505090565b6007546001600160a01b031633146111675760405162461bcd60e51b81526004016105dd90611c7a565b600a546001600160a01b0316158015906111835750600b544210155b61118c57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111e75760405162461bcd60e51b81526004016105dd90611c7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112a757506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190611dc6565b10155b156112e5576112e06001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848461176c565b6112ef565b6112ef838361145b565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610e1b91815260200190565b6007546001600160a01b031633146113555760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b03811661137b5760405162461bcd60e51b81526004016105dd90611d76565b600880546001600160a01b0319166001600160a01b0383161790556113a36202a30042611d63565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061140c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61141557600080fd5b61141f8484611616565b6114536001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561176c565b509092915050565b6001600160a01b0382166114b15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114c39190611d63565b90915550506001600160a01b038216600090815260026020526040812080548392906114f0908490611d63565b90915550506040518181526001600160a01b03831690600090600080516020611e198339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117a1565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906115fc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61160557600080fd5b61160f828461145b565b5090919050565b6001600160a01b0382166116765760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b038216600090815260026020526040902054818110156116ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116f48282611d01565b6001600160a01b03841660009081526002602052604081209190915560038054849290611722908490611d01565b90915550506040518281526000906001600160a01b03851690600080516020611e198339815191529060200160405180910390a3505050565b600081511161176957600080fd5b50565b6040516001600160a01b03831660248201526044810182905261179c90849063a9059cbb60e01b9060640161155c565b505050565b6117b3826001600160a01b0316611928565b6117ff5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b03168360405161181a9190611ddf565b6000604051808303816000865af19150503d8060008114611857576040519150601f19603f3d011682016040523d82523d6000602084013e61185c565b606091505b5091509150816118ae5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b80511561159357808060200190518101906118c99190611dfb565b6115935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc057600080fd5b60008060006060848603121561198b57600080fd5b6119948461195f565b9250602084013591506119a96040850161195f565b90509250925092565b600080604083850312156119c557600080fd5b823591506119d56020840161195f565b90509250929050565b60005b838110156119f95781810151838201526020016119e1565b50506000910152565b60008151808452611a1a8160208601602086016119de565b601f01601f19169290920160200192915050565b6020815260006106066020830184611a02565b60008060408385031215611a5457600080fd5b611a5d8361195f565b946020939093013593505050565b600080600060608486031215611a8057600080fd5b611a898461195f565b9250611a976020850161195f565b9150604084013590509250925092565b600060208284031215611ab957600080fd5b5035919050565b600060208284031215611ad257600080fd5b6106068261195f565b6020808252825182820181905260009190848201906040850190845b81811015611b1c5783516001600160a01b031683529284019291840191600101611af7565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b5157600080fd5b82359150602083013567ffffffffffffffff80821115611b7057600080fd5b818501915085601f830112611b8457600080fd5b813581811115611b9657611b96611b28565b604051601f8201601f19908116603f01168101908382118183101715611bbe57611bbe611b28565b81604052828152886020848701011115611bd757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b801515811461176957600080fd5b600060208284031215611c1957600080fd5b8135611c2481611bf9565b9392505050565b60008060408385031215611c3e57600080fd5b611c478361195f565b91506119d56020840161195f565b600080600060608486031215611c6a57600080fd5b83359250611a976020850161195f565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611cc557607f821691505b602082108103611ce557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060957610609611ceb565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b8082018082111561060957610609611ceb565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b8281526040602082015260006105f16040830184611a02565b600060208284031215611dd857600080fd5b5051919050565b60008251611df18184602087016119de565b9190910192915050565b600060208284031215611e0d57600080fd5b8151611c2481611bf956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201eab5ff34a3c24767fdae836c9bbe7e8acc946d2cb0bd4e0780a146bf271de6064736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000e4d756c7469636861696e2042544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086d756c7469425443000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061025c5760003560e01c80638da5cb5b11610146578063c3081240116100c3578063d93f244511610087578063d93f244514610544578063dd62ed3e1461054c578063ec126c7714610577578063f75c266414610442578063fbfa77cf1461058a578063fca3b5aa1461059d57600080fd5b8063c308124014610505578063c4b740f51461050e578063cfbd488514610521578063d0e30db014610534578063d6c797511461053c57600080fd5b8063a9059cbb1161010a578063a9059cbb14610496578063aa271e1a146104a9578063ad54056d146104cc578063b6b55f25146104df578063bebbf4d0146104f257600080fd5b80638da5cb5b1461044257806391c5df491461045357806395d89b41146104665780639dc29fac1461046e578063a045442c1461048157600080fd5b80633ccfd60b116101df57806369b41170116101a357806369b41170146103c25780636e553f65146103cc5780636f307dc3146103df57806370a08231146104065780638623ec7b1461042657806387689e281461043957600080fd5b80633ccfd60b1461035657806340c10f191461035e57806352113ba71461037157806360e232a91461039c5780636817031b146103af57600080fd5b806318160ddd1161022657806318160ddd146102dc57806323b872dd146102e45780632e1a7d4d146102f75780632ebe3fbb1461030a578063313ce5671461031d57600080fd5b806239d6ec14610261578062f714ce1461028757806306fdde031461029a578063095ea7b3146102af5780630d707df8146102d2575b600080fd5b61027461026f366004611976565b6105b0565b6040519081526020015b60405180910390f35b6102746102953660046119b2565b6105f9565b6102a261060f565b60405161027e9190611a2e565b6102c26102bd366004611a41565b61069d565b604051901515815260200161027e565b6102da610709565b005b600354610274565b6102c26102f2366004611a6b565b6107d8565b610274610305366004611aa7565b6109d6565b6102da610318366004611ac0565b6109e3565b6103447f000000000000000000000000000000000000000000000000000000000000000881565b60405160ff909116815260200161027e565b610274610a9d565b6102c261036c366004611a41565b610abe565b600a54610384906001600160a01b031681565b6040516001600160a01b03909116815260200161027e565b6102c26103aa366004611ac0565b610b00565b6102da6103bd366004611ac0565b610bc5565b6102746202a30081565b6102746103da3660046119b2565b610c43565b6103847f000000000000000000000000000000000000000000000000000000000000000081565b610274610414366004611ac0565b60026020526000908152604090205481565b610384610434366004611aa7565b610c84565b610274600b5481565b6007546001600160a01b0316610384565b600854610384906001600160a01b031681565b6102a2610cae565b6102c261047c366004611a41565b610cbb565b610489610cf4565b60405161027e9190611adb565b6102c26104a4366004611a41565b610d56565b6102c26104b7366004611ac0565b60056020526000908152604090205460ff1681565b6102c26104da366004611b3e565b610e2d565b6102746104ed366004611aa7565b610f6c565b6102746105003660046119b2565b610fad565b61027460095481565b6102da61051c366004611c07565b610fda565b6102da61052f366004611ac0565b61101e565b610274611069565b6102c2600081565b6102da61113d565b61027461055a366004611c2b565b600c60209081526000928352604080842090915290825290205481565b6102c2610585366004611c55565b6111b8565b600754610384906001600160a01b031681565b6102da6105ab366004611ac0565b61132b565b6007546000906001600160a01b031633146105e65760405162461bcd60e51b81526004016105dd90611c7a565b60405180910390fd5b6105f18484846113a9565b949350505050565b60006106063384846113a9565b90505b92915050565b6000805461061c90611cb1565b80601f016020809104026020016040519081016040528092919081815260200182805461064890611cb1565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b505050505081565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106f89086815260200190565b60405180910390a350600192915050565b6007546001600160a01b031633146107335760405162461bcd60e51b81526004016105dd90611c7a565b6008546001600160a01b03161580159061074f57506009544210155b61075857600080fd5b600880546001600160a01b0390811660009081526005602052604081208054600160ff199091168117909155835460068054928301815583527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054919093166001600160a01b0319918216179092558254909116909155600955565b60006001600160a01b038316158015906107fb57506001600160a01b0383163014155b61080457600080fd5b6001600160a01b0384163314610910576001600160a01b0384166000908152600c60209081526040808320338452909152902054600019811461090e57828110156108a35760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563645524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105dd565b60006108af8483611d01565b6001600160a01b0387166000818152600c6020908152604080832033808552908352928190208590555184815293945090927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156109495760405162461bcd60e51b81526004016105dd90611d14565b6109538382611d01565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610989908490611d63565b92505081905550836001600160a01b0316856001600160a01b0316600080516020611e19833981519152856040516109c391815260200190565b60405180910390a3506001949350505050565b60006106093383336113a9565b6007546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105dd90611c7a565b60045460ff16610a1c57600080fd5b6004805460ff19908116909155600780546001600160a01b039093166001600160a01b0319938416811790915560008181526005602052604081208054909316600190811790935560068054938401815590527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909216179055565b336000818152600260205260408120549091610ab991816113a9565b905090565b3360009081526005602052604081205460ff16610aed5760405162461bcd60e51b81526004016105dd90611c7a565b610af7838361145b565b50600192915050565b6007546000906001600160a01b03163314610b2d5760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b038216610b535760405162461bcd60e51b81526004016105dd90611d76565b60075460405142916001600160a01b03808616929116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a450600780546001600160a01b0383166001600160a01b031991821617909155600a805490911690556000600b5560015b919050565b6007546001600160a01b03163314610bef5760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b038116610c155760405162461bcd60e51b81526004016105dd90611d76565b600a80546001600160a01b0319166001600160a01b038316179055610c3d6202a30042611d63565b600b5550565b6000610c7a6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611528565b6106068383611599565b60068181548110610c9457600080fd5b6000918252602090912001546001600160a01b0316905081565b6001805461061c90611cb1565b3360009081526005602052604081205460ff16610cea5760405162461bcd60e51b81526004016105dd90611c7a565b610af78383611616565b60606006805480602002602001604051908101604052809291908181526020018280548015610d4c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d2e575b5050505050905090565b60006001600160a01b03831615801590610d7957506001600160a01b0383163014155b610d8257600080fd5b3360009081526002602052604090205482811015610db25760405162461bcd60e51b81526004016105dd90611d14565b610dbc8382611d01565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290610def908490611d63565b90915550506040518381526001600160a01b038516903390600080516020611e19833981519152906020015b60405180910390a35060019392505050565b600454600090610100900460ff1615610e885760405162461bcd60e51b815260206004820152601960248201527f416e7973776170563645524332303a207661756c744f6e6c790000000000000060448201526064016105dd565b610e918261175b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610ed757503360009081526002602052604090205483115b15610f1657610f116001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086611528565b610f20565b610f203384611616565b336001600160a01b03167f9c92ad817e5474d30a4378deface765150479363a897b0590fbb12ae9d89396b8484604051610f5b929190611dad565b60405180910390a250600192915050565b6000610fa36001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611528565b6106098233611599565b6007546000906001600160a01b03163314610c7a5760405162461bcd60e51b81526004016105dd90611c7a565b6007546001600160a01b031633146110045760405162461bcd60e51b81526004016105dd90611c7a565b600480549115156101000261ff0019909216919091179055565b6007546001600160a01b031633146110485760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156110d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f69190611dc6565b905061112d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084611528565b6111378133611599565b91505090565b6007546001600160a01b031633146111675760405162461bcd60e51b81526004016105dd90611c7a565b600a546001600160a01b0316158015906111835750600b544210155b61118c57600080fd5b600a8054600780546001600160a01b03199081166001600160a01b038416179091551690556000600b55565b3360009081526005602052604081205460ff166111e75760405162461bcd60e51b81526004016105dd90611c7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906112a757506040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a49190611dc6565b10155b156112e5576112e06001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016848461176c565b6112ef565b6112ef838361145b565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d6184604051610e1b91815260200190565b6007546001600160a01b031633146113555760405162461bcd60e51b81526004016105dd90611c7a565b6001600160a01b03811661137b5760405162461bcd60e51b81526004016105dd90611d76565b600880546001600160a01b0319166001600160a01b0383161790556113a36202a30042611d63565b60095550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061140c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61141557600080fd5b61141f8484611616565b6114536001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838561176c565b509092915050565b6001600160a01b0382166114b15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105dd565b80600360008282546114c39190611d63565b90915550506001600160a01b038216600090815260026020526040812080548392906114f0908490611d63565b90915550506040518181526001600160a01b03831690600090600080516020611e198339815191529060200160405180910390a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526115939085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117a1565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906115fc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163014155b61160557600080fd5b61160f828461145b565b5090919050565b6001600160a01b0382166116765760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105dd565b6001600160a01b038216600090815260026020526040902054818110156116ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105dd565b6116f48282611d01565b6001600160a01b03841660009081526002602052604081209190915560038054849290611722908490611d01565b90915550506040518281526000906001600160a01b03851690600080516020611e198339815191529060200160405180910390a3505050565b600081511161176957600080fd5b50565b6040516001600160a01b03831660248201526044810182905261179c90849063a9059cbb60e01b9060640161155c565b505050565b6117b3826001600160a01b0316611928565b6117ff5760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105dd565b600080836001600160a01b03168360405161181a9190611ddf565b6000604051808303816000865af19150503d8060008114611857576040519150601f19603f3d011682016040523d82523d6000602084013e61185c565b606091505b5091509150816118ae5760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105dd565b80511561159357808060200190518101906118c99190611dfb565b6115935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105dd565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105f15750141592915050565b80356001600160a01b0381168114610bc057600080fd5b60008060006060848603121561198b57600080fd5b6119948461195f565b9250602084013591506119a96040850161195f565b90509250925092565b600080604083850312156119c557600080fd5b823591506119d56020840161195f565b90509250929050565b60005b838110156119f95781810151838201526020016119e1565b50506000910152565b60008151808452611a1a8160208601602086016119de565b601f01601f19169290920160200192915050565b6020815260006106066020830184611a02565b60008060408385031215611a5457600080fd5b611a5d8361195f565b946020939093013593505050565b600080600060608486031215611a8057600080fd5b611a898461195f565b9250611a976020850161195f565b9150604084013590509250925092565b600060208284031215611ab957600080fd5b5035919050565b600060208284031215611ad257600080fd5b6106068261195f565b6020808252825182820181905260009190848201906040850190845b81811015611b1c5783516001600160a01b031683529284019291840191600101611af7565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611b5157600080fd5b82359150602083013567ffffffffffffffff80821115611b7057600080fd5b818501915085601f830112611b8457600080fd5b813581811115611b9657611b96611b28565b604051601f8201601f19908116603f01168101908382118183101715611bbe57611bbe611b28565b81604052828152886020848701011115611bd757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b801515811461176957600080fd5b600060208284031215611c1957600080fd5b8135611c2481611bf9565b9392505050565b60008060408385031215611c3e57600080fd5b611c478361195f565b91506119d56020840161195f565b600080600060608486031215611c6a57600080fd5b83359250611a976020850161195f565b60208082526019908201527f416e7973776170563645524332303a20464f5242494444454e00000000000000604082015260600190565b600181811c90821680611cc557607f821691505b602082108103611ce557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561060957610609611ceb565b6020808252602f908201527f416e7973776170563645524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b8082018082111561060957610609611ceb565b6020808252601a908201527f416e7973776170563645524332303a2061646472657373283029000000000000604082015260600190565b8281526040602082015260006105f16040830184611a02565b600060208284031215611dd857600080fd5b5051919050565b60008251611df18184602087016119de565b9190910192915050565b600060208284031215611e0d57600080fd5b8151611c2481611bf956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201eab5ff34a3c24767fdae836c9bbe7e8acc946d2cb0bd4e0780a146bf271de6064736f6c63430008110033

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251000000000000000000000000000000000000000000000000000000000000000e4d756c7469636861696e2042544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086d756c7469425443000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Multichain BTC
Arg [1] : _symbol (string): multiBTC
Arg [2] : _decimals (uint8): 8
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xfA9dA51631268A30Ec3DDd1CcBf46c65FAD99251

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000fa9da51631268a30ec3ddd1ccbf46c65fad99251
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [6] : 4d756c7469636861696e20425443000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [8] : 6d756c7469425443000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

2690:11988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10115:149;;;;;;:::i;:::-;;:::i;:::-;;;671:25:1;;;659:2;644:18;10115:149:0;;;;;;;;9981:126;;;;;;:::i;:::-;;:::i;2764:18::-;;;:::i;:::-;;;;;;;:::i;12085:215::-;;;;;;:::i;:::-;;:::i;:::-;;;2146:14:1;;2139:22;2121:41;;2109:2;2094:18;12085:215:0;1981:187:1;5168:275:0;;;:::i;:::-;;8571:102;8653:12;;8571:102;;13809:866;;;;;;:::i;:::-;;:::i;9851:122::-;;;;;;:::i;:::-;;:::i;4293:201::-;;;;;;:::i;:::-;;:::i;2816:41::-;;;;;;;;3054:4:1;3042:17;;;3024:36;;3012:2;2997:18;2816:41:0;2882:184:1;9717:126:0;;;:::i;6054:133::-;;;;;;:::i;:::-;;:::i;3718:27::-;;;;;-1:-1:-1;;;;;3718:27:0;;;;;;-1:-1:-1;;;;;3235:32:1;;;3217:51;;3205:2;3190:18;3718:27:0;3071:203:1;5719:327:0;;;;;;:::i;:::-;;:::i;4502:210::-;;;;;;:::i;:::-;;:::i;3389:35::-;;3418:6;3389:35;;9132:193;;;;;;:::i;:::-;;:::i;2866:35::-;;;;;3035:54;;;;;;:::i;:::-;;;;;;;;;;;;;;3540:24;;;;;;:::i;:::-;;:::i;3752:22::-;;;;;;4017:80;4084:5;;-1:-1:-1;;;;;4084:5:0;4017:80;;3651:28;;;;;-1:-1:-1;;;;;3651:28:0;;;2789:20;;;:::i;6195:137::-;;;;;;:::i;:::-;;:::i;5612:99::-;;;:::i;:::-;;;;;;;:::i;12602:438::-;;;;;;:::i;:::-;;:::i;3493:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6753:491;;;;;;:::i;:::-;;:::i;8935:189::-;;;;;;:::i;:::-;;:::i;9333:127::-;;;;;;:::i;:::-;;:::i;3686:23::-;;;;;;4191:94;;;;;;:::i;:::-;;:::i;5506:98::-;;;;;;:::i;:::-;;:::i;8681:246::-;;;:::i;2908:47::-;;2950:5;2908:47;;4720:222;;;:::i;7537:75::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6340:405;;;;;;:::i;:::-;;:::i;3622:20::-;;;;;-1:-1:-1;;;;;3622:20:0;;;4950:210;;;;;;:::i;:::-;;:::i;10115:149::-;3954:5;;10205:4;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;;;;;;;;;10229:27:::1;10239:4;10245:6;10253:2;10229:9;:27::i;:::-;10222:34:::0;10115:149;-1:-1:-1;;;;10115:149:0:o;9981:126::-;10042:4;10066:33;10076:10;10088:6;10096:2;10066:9;:33::i;:::-;10059:40;;9981:126;;;;;:::o;2764:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12085:215::-;12188:10;12161:4;12178:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12178:30:0;;;;;;;;;;:38;;;12232:36;12161:4;;12178:30;;12232:36;;;;12211:5;671:25:1;;659:2;644:18;;525:177;12232:36:0;;;;;;;;-1:-1:-1;12288:4:0;12085:215;;;;:::o;5168:275::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;5229:13:::1;::::0;-1:-1:-1;;;;;5229:13:0::1;:27:::0;;::::1;::::0;:61:::1;;;5279:11;;5260:15;:30;;5229:61;5221:70;;;::::0;::::1;;5311:13;::::0;;-1:-1:-1;;;;;5311:13:0;;::::1;5302:23;::::0;;;:8:::1;:23;::::0;;;;:30;;5328:4:::1;-1:-1:-1::0;;5302:30:0;;::::1;::::0;::::1;::::0;;;5356:13;;5343:7:::1;:27:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;5356:13;;;::::1;-1:-1:-1::0;;;;;;5343:27:0;;::::1;;::::0;;;5383:26;;;;::::1;::::0;;;5420:11:::1;:15:::0;5168:275::o;13809:866::-;13899:4;-1:-1:-1;;;;;13924:16:0;;;;;;:39;;-1:-1:-1;;;;;;13944:19:0;;13958:4;13944:19;;13924:39;13916:48;;;;;;-1:-1:-1;;;;;13979:18:0;;13987:10;13979:18;13975:416;;-1:-1:-1;;;;;14032:15:0;;14014;14032;;;:9;:15;;;;;;;;14048:10;14032:27;;;;;;;;-1:-1:-1;;14078:28:0;;14074:306;;14146:5;14135:7;:16;;14127:70;;;;-1:-1:-1;;;14127:70:0;;6971:2:1;14127:70:0;;;6953:21:1;7010:2;6990:18;;;6983:30;7049:34;7029:18;;;7022:62;-1:-1:-1;;;7100:18:1;;;7093:39;7149:19;;14127:70:0;6769:405:1;14127:70:0;14216:15;14234;14244:5;14234:7;:15;:::i;:::-;-1:-1:-1;;;;;14268:15:0;;;;;;:9;:15;;;;;;;;14284:10;14268:27;;;;;;;;;;:37;;;14329:35;671:25:1;;;14268:37:0;;-1:-1:-1;14284:10:0;;14329:35;;644:18:1;14329:35:0;;;;;;;14108:272;14074:306;13999:392;13975:416;-1:-1:-1;;;;;14421:15:0;;14403;14421;;;:9;:15;;;;;;14455:16;;;;14447:76;;;;-1:-1:-1;;;14447:76:0;;;;;;;:::i;:::-;14554:15;14564:5;14554:7;:15;:::i;:::-;-1:-1:-1;;;;;14536:15:0;;;;;;;:9;:15;;;;;;:33;;;;14580:13;;;;;;;;:22;;14597:5;;14536:15;14580:22;;14597:5;;14580:22;:::i;:::-;;;;;;;;14633:2;-1:-1:-1;;;;;14618:25:0;14627:4;-1:-1:-1;;;;;14618:25:0;-1:-1:-1;;;;;;;;;;;14637:5:0;14618:25;;;;671::1;;659:2;644:18;;525:177;14618:25:0;;;;;;;;-1:-1:-1;14663:4:0;;13809:866;-1:-1:-1;;;;13809:866:0:o;9851:122::-;9900:4;9924:41;9934:10;9946:6;9954:10;9924:9;:41::i;4293:201::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;4366:5:::1;::::0;::::1;;4358:14;;;::::0;::::1;;4383:5;:13:::0;;-1:-1:-1;;4383:13:0;;::::1;::::0;;;4407:5:::1;:14:::0;;-1:-1:-1;;;;;4407:14:0;;::::1;-1:-1:-1::0;;;;;;4407:14:0;;::::1;::::0;::::1;::::0;;;4391:5:::1;4432:16:::0;;;:8:::1;:16;::::0;;;;:23;;;;::::1;4383:13:::0;4432:23;;::::1;::::0;;;4466:7:::1;:20:::0;;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;;::::0;;4293:201::o;9717:126::-;9789:10;9755:4;9801:21;;;:9;:21;;;;;;9755:4;;9779:56;;9789:10;9779:9;:56::i;:::-;9772:63;;9717:126;:::o;6054:133::-;3831:10;6123:4;3822:20;;;:8;:20;;;;;;;;3814:58;;;;-1:-1:-1;;;3814:58:0;;;;;;;:::i;:::-;6140:17:::1;6146:2;6150:6;6140:5;:17::i;:::-;-1:-1:-1::0;6175:4:0::1;6054:133:::0;;;;:::o;5719:327::-;3954:5;;5786:4;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5811:22:0;::::1;5803:61;;;;-1:-1:-1::0;;;5803:61:0::1;;;;;;;:::i;:::-;5895:5;::::0;5880:48:::1;::::0;5912:15:::1;::::0;-1:-1:-1;;;;;5880:48:0;;::::1;::::0;5895:5;::::1;::::0;5880:48:::1;::::0;5895:5:::1;::::0;5880:48:::1;-1:-1:-1::0;5939:5:0::1;:16:::0;;-1:-1:-1;;;;;5939:16:0;::::1;-1:-1:-1::0;;;;;;5939:16:0;;::::1;;::::0;;;5966:12:::1;:25:::0;;;;::::1;::::0;;5939:5:::1;6002:10;:14:::0;5939:16;4000:1:::1;5719:327:::0;;;:::o;4502:210::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4574:20:0;::::1;4566:59;;;;-1:-1:-1::0;;;4566:59:0::1;;;;;;;:::i;:::-;4636:12;:21:::0;;-1:-1:-1;;;;;;4636:21:0::1;-1:-1:-1::0;;;;;4636:21:0;::::1;;::::0;;4681:23:::1;3418:6;4681:15;:23;:::i;:::-;4668:10;:36:::0;-1:-1:-1;4502:210:0:o;9132:193::-;9192:4;9209:70;-1:-1:-1;;;;;9216:10:0;9209:35;9245:10;9265:4;9272:6;9209:35;:70::i;:::-;9297:20;9306:6;9314:2;9297:8;:20::i;3540:24::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3540:24:0;;-1:-1:-1;3540:24:0;:::o;2789:20::-;;;;;;;:::i;6195:137::-;3831:10;6266:4;3822:20;;;:8;:20;;;;;;;;3814:58;;;;-1:-1:-1;;;3814:58:0;;;;;;;:::i;:::-;6283:19:::1;6289:4;6295:6;6283:5;:19::i;5612:99::-:0;5660:16;5696:7;5689:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5689:14:0;;;;;;;;;;;;;;;;;;;;;;;5612:99;:::o;12602:438::-;12674:4;-1:-1:-1;;;;;12699:16:0;;;;;;:39;;-1:-1:-1;;;;;;12719:19:0;;12733:4;12719:19;;12699:39;12691:48;;;;;;12778:10;12750:15;12768:21;;;:9;:21;;;;;;12808:16;;;;12800:76;;;;-1:-1:-1;;;12800:76:0;;;;;;;:::i;:::-;12913:15;12923:5;12913:7;:15;:::i;:::-;12899:10;12889:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;12939:13:0;;;;;;;:22;;12956:5;;12889:21;12939:22;;12956:5;;12939:22;:::i;:::-;;;;-1:-1:-1;;12977:31:0;;671:25:1;;;-1:-1:-1;;;;;12977:31:0;;;12986:10;;-1:-1:-1;;;;;;;;;;;12977:31:0;659:2:1;644:18;12977:31:0;;;;;;;;-1:-1:-1;13028:4:0;;12602:438;-1:-1:-1;;;12602:438:0:o;6753:491::-;6854:10;;6828:4;;6854:10;;;;;6853:11;6845:49;;;;-1:-1:-1;;;6845:49:0;;8547:2:1;6845:49:0;;;8529:21:1;8586:2;8566:18;;;8559:30;8625:27;8605:18;;;8598:55;8670:18;;6845:49:0;8345:349:1;6845:49:0;6905:24;6920:8;6905:14;:24::i;:::-;6944:10;-1:-1:-1;;;;;6944:24:0;;;;;:58;;-1:-1:-1;6982:10:0;6972:21;;;;:9;:21;;;;;;:30;-1:-1:-1;6944:58:0;6940:219;;;7019:70;-1:-1:-1;;;;;7026:10:0;7019:35;7055:10;7075:4;7082:6;7019:35;:70::i;:::-;6940:219;;;7122:25;7128:10;7140:6;7122:5;:25::i;:::-;7185:10;-1:-1:-1;;;;;7174:40:0;;7197:6;7205:8;7174:40;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;7232:4:0;6753:491;;;;:::o;8935:189::-;8983:4;9000:70;-1:-1:-1;;;;;9007:10:0;9000:35;9036:10;9056:4;9063:6;9000:35;:70::i;:::-;9088:28;9097:6;9105:10;9088:8;:28::i;9333:127::-;3954:5;;9408:4;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;4191:94::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;4257:10:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;4257:20:0;;::::1;::::0;;;::::1;::::0;;4191:94::o;5506:98::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5573:15:0::1;5591:5;5573:15:::0;;;:8:::1;:15;::::0;;;;:23;;-1:-1:-1;;5573:23:0::1;::::0;;5506:98::o;8681:246::-;8750:40;;-1:-1:-1;;;8750:40:0;;8779:10;8750:40;;;3217:51:1;8718:4:0;;;;-1:-1:-1;;;;;8757:10:0;8750:28;;;;3190:18:1;;8750:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8735:55;-1:-1:-1;8801:71:0;-1:-1:-1;;;;;8808:10:0;8801:35;8837:10;8857:4;8735:55;8801:35;:71::i;:::-;8890:29;8899:7;8908:10;8890:8;:29::i;:::-;8883:36;;;8681:246;:::o;4720:222::-;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;4780:12:::1;::::0;-1:-1:-1;;;;;4780:12:0::1;:26:::0;;::::1;::::0;:59:::1;;;4829:10;;4810:15;:29;;4780:59;4772:68;;;::::0;::::1;;4859:12;::::0;;4851:5:::1;:20:::0;;-1:-1:-1;;;;;;4851:20:0;;::::1;-1:-1:-1::0;;;;;4859:12:0;::::1;4851:20;::::0;;;4884:25:::1;::::0;;4859:12:::1;4920:10;:14:::0;4720:222::o;6340:405::-;3831:10;6432:4;3822:20;;;:8;:20;;;;;;;;3814:58;;;;-1:-1:-1;;;3814:58:0;;;;;;;:::i;:::-;6453:10:::1;-1:-1:-1::0;;;;;6453:24:0::1;::::0;;::::1;::::0;:81:::1;;-1:-1:-1::0;6481:43:0::1;::::0;-1:-1:-1;;;6481:43:0;;6518:4:::1;6481:43;::::0;::::1;3217:51:1::0;6528:6:0;;6488:10:::1;-1:-1:-1::0;;;;;6481:28:0::1;::::0;::::1;::::0;3190:18:1;;6481:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;6453:81;6449:217;;;6551:48;-1:-1:-1::0;;;;;6558:10:0::1;6551:31;6583:7:::0;6592:6;6551:31:::1;:48::i;:::-;6449:217;;;6632:22;6638:7;6647:6;6632:5;:22::i;:::-;6699:7;-1:-1:-1::0;;;;;6681:34:0::1;6691:6;6681:34;6708:6;6681:34;;;;671:25:1::0;;659:2;644:18;;525:177;4950:210:0;3954:5;;-1:-1:-1;;;;;3954:5:0;3940:10;:19;3932:57;;;;-1:-1:-1;;;3932:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5022:19:0;::::1;5014:58;;;;-1:-1:-1::0;;;5014:58:0::1;;;;;;;:::i;:::-;5083:13;:21:::0;;-1:-1:-1;;;;;;5083:21:0::1;-1:-1:-1::0;;;;;5083:21:0;::::1;;::::0;;5129:23:::1;3418:6;5129:15;:23;:::i;:::-;5115:11;:37:::0;-1:-1:-1;4950:210:0:o;10272:312::-;10348:4;10412:10;-1:-1:-1;;;;;10412:24:0;;;;;:55;;-1:-1:-1;10440:10:0;-1:-1:-1;;;;;10440:27:0;10462:4;10440:27;;10412:55;10404:64;;;;;;10479:19;10485:4;10491:6;10479:5;:19::i;:::-;10509:43;-1:-1:-1;;;;;10516:10:0;10509:31;10541:2;10545:6;10509:31;:43::i;:::-;-1:-1:-1;10570:6:0;;10272:312;-1:-1:-1;;10272:312:0:o;10865:268::-;-1:-1:-1;;;;;10941:21:0;;10933:65;;;;-1:-1:-1;;;10933:65:0;;9386:2:1;10933:65:0;;;9368:21:1;9425:2;9405:18;;;9398:30;9464:33;9444:18;;;9437:61;9515:18;;10933:65:0;9184:355:1;10933:65:0;11027:6;11011:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11044:18:0;;;;;;:9;:18;;;;;:28;;11066:6;;11044:18;:28;;11066:6;;11044:28;:::i;:::-;;;;-1:-1:-1;;11088:37:0;;671:25:1;;;-1:-1:-1;;;;;11088:37:0;;;11105:1;;-1:-1:-1;;;;;;;;;;;11088:37:0;659:2:1;644:18;11088:37:0;;;;;;;10865:268;;:::o;1526:201::-;1650:68;;-1:-1:-1;;;;;9802:15:1;;;1650:68:0;;;9784:34:1;9854:15;;9834:18;;;9827:43;9886:18;;;9879:34;;;1624:95:0;;1643:5;;-1:-1:-1;;;1673:27:0;9719:18:1;;1650:68:0;;;;-1:-1:-1;;1650:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;1650:68:0;-1:-1:-1;;;;;;1650:68:0;;;;;;;;;;1624:18;:95::i;:::-;1526:201;;;;:::o;9468:241::-;9529:4;9593:10;-1:-1:-1;;;;;9593:24:0;;;;;:55;;-1:-1:-1;9621:10:0;-1:-1:-1;;;;;9621:27:0;9643:4;9621:27;;9593:55;9585:64;;;;;;9660:17;9666:2;9670:6;9660:5;:17::i;:::-;-1:-1:-1;9695:6:0;;9468:241;-1:-1:-1;9468:241:0:o;11465:403::-;-1:-1:-1;;;;;11541:21:0;;11533:67;;;;-1:-1:-1;;;11533:67:0;;10126:2:1;11533:67:0;;;10108:21:1;10165:2;10145:18;;;10138:30;10204:34;10184:18;;;10177:62;-1:-1:-1;;;10255:18:1;;;10248:31;10296:19;;11533:67:0;9924:397:1;11533:67:0;-1:-1:-1;;;;;11631:18:0;;11613:15;11631:18;;;:9;:18;;;;;;11668:17;;;;11660:64;;;;-1:-1:-1;;;11660:64:0;;10528:2:1;11660:64:0;;;10510:21:1;10567:2;10547:18;;;10540:30;10606:34;10586:18;;;10579:62;-1:-1:-1;;;10657:18:1;;;10650:32;10699:19;;11660:64:0;10326:398:1;11660:64:0;11758:16;11768:6;11758:7;:16;:::i;:::-;-1:-1:-1;;;;;11737:18:0;;;;;;:9;:18;;;;;:37;;;;11785:12;:22;;11801:6;;11737:18;11785:22;;11801:6;;11785:22;:::i;:::-;;;;-1:-1:-1;;11823:37:0;;671:25:1;;;11849:1:0;;-1:-1:-1;;;;;11823:37:0;;;-1:-1:-1;;;;;;;;;;;11823:37:0;659:2:1;644:18;11823:37:0;;;;;;;11522:346;11465:403;;:::o;7252:116::-;7358:1;7339:8;7333:22;:26;7325:35;;;;;;7252:116;:::o;1345:173::-;1451:58;;-1:-1:-1;;;;;10921:32:1;;1451:58:0;;;10903:51:1;10970:18;;;10963:34;;;1425:85:0;;1444:5;;-1:-1:-1;;;1474:23:0;10876:18:1;;1451:58:0;10729:274:1;1425:85:0;1345:173;;;:::o;2085:598::-;2173:27;2181:5;-1:-1:-1;;;;;2173:25:0;;:27::i;:::-;2165:71;;;;-1:-1:-1;;;2165:71:0;;11210:2:1;2165:71:0;;;11192:21:1;11249:2;11229:18;;;11222:30;11288:33;11268:18;;;11261:61;11339:18;;2165:71:0;11008:355:1;2165:71:0;2310:12;2324:23;2359:5;-1:-1:-1;;;;;2351:19:0;2371:4;2351:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2309:67;;;;2395:7;2387:52;;;;-1:-1:-1;;;2387:52:0;;11862:2:1;2387:52:0;;;11844:21:1;;;11881:18;;;11874:30;11940:34;11920:18;;;11913:62;11992:18;;2387:52:0;11660:356:1;2387:52:0;2456:17;;:21;2452:224;;2598:10;2587:30;;;;;;;;;;;;:::i;:::-;2579:85;;;;-1:-1:-1;;;2579:85:0;;12473:2:1;2579:85:0;;;12455:21:1;12512:2;12492:18;;;12485:30;12551:34;12531:18;;;12524:62;-1:-1:-1;;;12602:18:1;;;12595:40;12652:19;;2579:85:0;12271:406:1;905:374:0;965:4;1188:20;;1031:66;1228:15;;;;;:42;;-1:-1:-1;1247:23:0;;;1220:51;-1:-1:-1;;905:374:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:328;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;453:2;442:9;438:18;425:32;415:42;;476:38;510:2;499:9;495:18;476:38;:::i;:::-;466:48;;192:328;;;;;:::o;707:254::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:52;;;852:1;849;842:12;804:52;888:9;875:23;865:33;;917:38;951:2;940:9;936:18;917:38;:::i;:::-;907:48;;707:254;;;;;:::o;966:250::-;1051:1;1061:113;1075:6;1072:1;1069:13;1061:113;;;1151:11;;;1145:18;1132:11;;;1125:39;1097:2;1090:10;1061:113;;;-1:-1:-1;;1208:1:1;1190:16;;1183:27;966:250::o;1221:271::-;1263:3;1301:5;1295:12;1328:6;1323:3;1316:19;1344:76;1413:6;1406:4;1401:3;1397:14;1390:4;1383:5;1379:16;1344:76;:::i;:::-;1474:2;1453:15;-1:-1:-1;;1449:29:1;1440:39;;;;1481:4;1436:50;;1221:271;-1:-1:-1;;1221:271:1:o;1497:220::-;1646:2;1635:9;1628:21;1609:4;1666:45;1707:2;1696:9;1692:18;1684:6;1666:45;:::i;1722:254::-;1790:6;1798;1851:2;1839:9;1830:7;1826:23;1822:32;1819:52;;;1867:1;1864;1857:12;1819:52;1890:29;1909:9;1890:29;:::i;:::-;1880:39;1966:2;1951:18;;;;1938:32;;-1:-1:-1;;;1722:254:1:o;2173:328::-;2250:6;2258;2266;2319:2;2307:9;2298:7;2294:23;2290:32;2287:52;;;2335:1;2332;2325:12;2287:52;2358:29;2377:9;2358:29;:::i;:::-;2348:39;;2406:38;2440:2;2429:9;2425:18;2406:38;:::i;:::-;2396:48;;2491:2;2480:9;2476:18;2463:32;2453:42;;2173:328;;;;;:::o;2506:180::-;2565:6;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;-1:-1:-1;2657:23:1;;2506:180;-1:-1:-1;2506:180:1:o;2691:186::-;2750:6;2803:2;2791:9;2782:7;2778:23;2774:32;2771:52;;;2819:1;2816;2809:12;2771:52;2842:29;2861:9;2842:29;:::i;3279:658::-;3450:2;3502:21;;;3572:13;;3475:18;;;3594:22;;;3421:4;;3450:2;3673:15;;;;3647:2;3632:18;;;3421:4;3716:195;3730:6;3727:1;3724:13;3716:195;;;3795:13;;-1:-1:-1;;;;;3791:39:1;3779:52;;3886:15;;;;3851:12;;;;3827:1;3745:9;3716:195;;;-1:-1:-1;3928:3:1;;3279:658;-1:-1:-1;;;;;;3279:658:1:o;3942:127::-;4003:10;3998:3;3994:20;3991:1;3984:31;4034:4;4031:1;4024:15;4058:4;4055:1;4048:15;4074:990;4152:6;4160;4213:2;4201:9;4192:7;4188:23;4184:32;4181:52;;;4229:1;4226;4219:12;4181:52;4265:9;4252:23;4242:33;;4326:2;4315:9;4311:18;4298:32;4349:18;4390:2;4382:6;4379:14;4376:34;;;4406:1;4403;4396:12;4376:34;4444:6;4433:9;4429:22;4419:32;;4489:7;4482:4;4478:2;4474:13;4470:27;4460:55;;4511:1;4508;4501:12;4460:55;4547:2;4534:16;4569:2;4565;4562:10;4559:36;;;4575:18;;:::i;:::-;4650:2;4644:9;4618:2;4704:13;;-1:-1:-1;;4700:22:1;;;4724:2;4696:31;4692:40;4680:53;;;4748:18;;;4768:22;;;4745:46;4742:72;;;4794:18;;:::i;:::-;4834:10;4830:2;4823:22;4869:2;4861:6;4854:18;4909:7;4904:2;4899;4895;4891:11;4887:20;4884:33;4881:53;;;4930:1;4927;4920:12;4881:53;4986:2;4981;4977;4973:11;4968:2;4960:6;4956:15;4943:46;5031:1;5026:2;5021;5013:6;5009:15;5005:24;4998:35;5052:6;5042:16;;;;;;;4074:990;;;;;:::o;5069:118::-;5155:5;5148:13;5141:21;5134:5;5131:32;5121:60;;5177:1;5174;5167:12;5192:241;5248:6;5301:2;5289:9;5280:7;5276:23;5272:32;5269:52;;;5317:1;5314;5307:12;5269:52;5356:9;5343:23;5375:28;5397:5;5375:28;:::i;:::-;5422:5;5192:241;-1:-1:-1;;;5192:241:1:o;5438:260::-;5506:6;5514;5567:2;5555:9;5546:7;5542:23;5538:32;5535:52;;;5583:1;5580;5573:12;5535:52;5606:29;5625:9;5606:29;:::i;:::-;5596:39;;5654:38;5688:2;5677:9;5673:18;5654:38;:::i;5703:322::-;5780:6;5788;5796;5849:2;5837:9;5828:7;5824:23;5820:32;5817:52;;;5865:1;5862;5855:12;5817:52;5901:9;5888:23;5878:33;;5930:38;5964:2;5953:9;5949:18;5930:38;:::i;6030:349::-;6232:2;6214:21;;;6271:2;6251:18;;;6244:30;6310:27;6305:2;6290:18;;6283:55;6370:2;6355:18;;6030:349::o;6384:380::-;6463:1;6459:12;;;;6506;;;6527:61;;6581:4;6573:6;6569:17;6559:27;;6527:61;6634:2;6626:6;6623:14;6603:18;6600:38;6597:161;;6680:10;6675:3;6671:20;6668:1;6661:31;6715:4;6712:1;6705:15;6743:4;6740:1;6733:15;6597:161;;6384:380;;;:::o;7179:127::-;7240:10;7235:3;7231:20;7228:1;7221:31;7271:4;7268:1;7261:15;7295:4;7292:1;7285:15;7311:128;7378:9;;;7399:11;;;7396:37;;;7413:18;;:::i;7444:411::-;7646:2;7628:21;;;7685:2;7665:18;;;7658:30;7724:34;7719:2;7704:18;;7697:62;-1:-1:-1;;;7790:2:1;7775:18;;7768:45;7845:3;7830:19;;7444:411::o;7860:125::-;7925:9;;;7946:10;;;7943:36;;;7959:18;;:::i;7990:350::-;8192:2;8174:21;;;8231:2;8211:18;;;8204:30;8270:28;8265:2;8250:18;;8243:56;8331:2;8316:18;;7990:350::o;8699:291::-;8876:6;8865:9;8858:25;8919:2;8914;8903:9;8899:18;8892:30;8839:4;8939:45;8980:2;8969:9;8965:18;8957:6;8939:45;:::i;8995:184::-;9065:6;9118:2;9106:9;9097:7;9093:23;9089:32;9086:52;;;9134:1;9131;9124:12;9086:52;-1:-1:-1;9157:16:1;;8995:184;-1:-1:-1;8995:184:1:o;11368:287::-;11497:3;11535:6;11529:13;11551:66;11610:6;11605:3;11598:4;11590:6;11586:17;11551:66;:::i;:::-;11633:16;;;;;11368:287;-1:-1:-1;;11368:287:1:o;12021:245::-;12088:6;12141:2;12129:9;12120:7;12116:23;12112:32;12109:52;;;12157:1;12154;12147:12;12109:52;12189:9;12183:16;12208:28;12230:5;12208:28;:::i

Swarm Source

ipfs://1eab5ff34a3c24767fdae836c9bbe7e8acc946d2cb0bd4e0780a146bf271de60
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.