AVAX Price: $22.30 (+3.11%)
Gas: 1.2 nAVAX
 

Overview

AVAX Balance

Avalanche C-Chain LogoAvalanche C-Chain LogoAvalanche C-Chain Logo529.485850133351345319 AVAX

AVAX Value

$11,807.07 (@ $22.30/AVAX)

Multichain Info

No addresses found
Age:7D
Amount:Between 1-10
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions and 4 Token Transfers found.

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
155141802022-06-02 18:55:001055 days ago1654196100
0x0d8c4C9A...907554cb2
39,873.04352298 AVAX
153666562022-05-30 8:46:191059 days ago1653900379
0x0d8c4C9A...907554cb2
0.72143146 AVAX
153662012022-05-30 8:31:061059 days ago1653899466
0x0d8c4C9A...907554cb2
0.71916576 AVAX
153659832022-05-30 8:23:471059 days ago1653899027
0x0d8c4C9A...907554cb2
0.72001147 AVAX
153656512022-05-30 8:12:411059 days ago1653898361
0x0d8c4C9A...907554cb2
0.7175544 AVAX
153655192022-05-30 8:08:161059 days ago1653898096
0x0d8c4C9A...907554cb2
0.28604564 AVAX
153650212022-05-30 7:51:491059 days ago1653897109
0x0d8c4C9A...907554cb2
0.07196833 AVAX
153649632022-05-30 7:49:531059 days ago1653896993
0x0d8c4C9A...907554cb2
2.87873335 AVAX
153646792022-05-30 7:40:271059 days ago1653896427
0x0d8c4C9A...907554cb2
2.90530772 AVAX
153646032022-05-30 7:37:561059 days ago1653896276
0x0d8c4C9A...907554cb2
0.72700836 AVAX
153645882022-05-30 7:37:261059 days ago1653896246
0x0d8c4C9A...907554cb2
2.90803344 AVAX
153645812022-05-30 7:37:121059 days ago1653896232
0x0d8c4C9A...907554cb2
0.72700836 AVAX
153645662022-05-30 7:36:391059 days ago1653896199
0x0d8c4C9A...907554cb2
2.90803344 AVAX
153645482022-05-30 7:36:031059 days ago1653896163
0x0d8c4C9A...907554cb2
0.72700836 AVAX
153642822022-05-30 7:27:071059 days ago1653895627
0x0d8c4C9A...907554cb2
0.07267441 AVAX
153642672022-05-30 7:26:381059 days ago1653895598
0x0d8c4C9A...907554cb2
0.29069767 AVAX
153642522022-05-30 7:26:081059 days ago1653895568
0x0d8c4C9A...907554cb2
2.90697674 AVAX
153642472022-05-30 7:25:581059 days ago1653895558
0x0d8c4C9A...907554cb2
0.72674418 AVAX
153642332022-05-30 7:25:301059 days ago1653895530
0x0d8c4C9A...907554cb2
0.29044045 AVAX
153642142022-05-30 7:24:521059 days ago1653895492
0x0d8c4C9A...907554cb2
0.72610113 AVAX
153641972022-05-30 7:24:181059 days ago1653895458
0x0d8c4C9A...907554cb2
0.72610113 AVAX
153641902022-05-30 7:24:041059 days ago1653895444
0x0d8c4C9A...907554cb2
4.35660678 AVAX
153641662022-05-30 7:23:151059 days ago1653895395
0x0d8c4C9A...907554cb2
2.90440452 AVAX
153641352022-05-30 7:22:141059 days ago1653895334
0x0d8c4C9A...907554cb2
2.90120959 AVAX
153632782022-05-30 6:53:391059 days ago1653893619
0x0d8c4C9A...907554cb2
0.71890726 AVAX
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MasterOfCoin

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowscan.xyz on 2022-03-21
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.12;

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
}


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

interface IMasterOfCoinV1 {
    function getDueDate(string memory nodeId) external view returns (uint256);
}

contract MasterOfCoin {
    using SafeMath for uint256;
    AggregatorV3Interface internal priceFeed;
    IMasterOfCoinV1 internal masterOfCoinV1;

    mapping(string => uint256) public dueDates;
    uint256 public baseDueDate = 1646263396;
    uint256 v1BaseDueDate = 1646263396;
    uint256 public feeCycle = 30 days;

    mapping(string => bool) taxed;

    struct NodeTier {
        string name;
        uint256 fee;
        uint256 restoreFee;
    }

    mapping(string => NodeTier) public tiers;

    address public owner;
    address public bifrost;
    address public collector = 0x8e2ff009Df7D3611efAF1AAE63A05020669fdCF8;

    // Events
    event AddedTier(string name, uint256 fee, uint256 restoreFee);

    event RemovedTier(string name);

    event SetAggregator(address _aggregator);

    event PaidFee(string nodeId, uint256 dueDate);

    // M O D I F I E R S
    modifier onlyOwner() {
        require(msg.sender == owner, "Fuck off");
        _;
    }

    modifier onlyBifrost() {
        require(msg.sender == bifrost, "Fuck off");
        _;
    }

    constructor(address _bifrost) {
        owner = msg.sender;
        bifrost = _bifrost;
        priceFeed = AggregatorV3Interface(
            0x0A77230d17318075983913bC2145DB16C7366156
        );
        masterOfCoinV1 = IMasterOfCoinV1(
            0x8748fEb50B6713ae0AA08314567F5bad962e96Ac
        );
        addTier("HEIMDALL", 5, 28);
        addTier("FREYA", 10, 140);
        addTier("THOR", 20, 281);
        addTier("ODIN", 80, 1758);
    }

    function _getCurrentPrice() internal view returns (uint256) {
        (
            ,
            /*uint80 roundID*/
            int256 price,
            ,
            ,

        ) = priceFeed.latestRoundData();
        return uint256(price);
    }

    function setAggregator(address _aggregator) external onlyOwner {
        priceFeed = AggregatorV3Interface(_aggregator);
        emit SetAggregator(_aggregator);
    }

    function blockTime() external view returns (uint256) {
        return block.timestamp;
    }

    function _getDueDate(string memory nodeId) internal view returns (uint256) {
        if (dueDates[nodeId] > 0) {
            return dueDates[nodeId];
        } else {
            uint256 v1DueDate = masterOfCoinV1.getDueDate(nodeId);
            return v1DueDate != v1BaseDueDate ? v1DueDate : baseDueDate;
        }
    }

    function getDueDate(string memory nodeId) external view returns (uint256) {
        return _getDueDate(nodeId);
    }

    function _payFee(string memory nodeId) internal {
        require(!_isDelinquent(nodeId), "Node has expired, pay restore fee");
        uint256 currentDueDate = _getDueDate(nodeId);
        dueDates[nodeId] = currentDueDate.add(feeCycle);
        emit PaidFee(nodeId, dueDates[nodeId]);
    }

    function payFee(string memory nodeId) external onlyBifrost {
        dueDates[nodeId] = block.timestamp + feeCycle;
        emit PaidFee(nodeId, dueDates[nodeId]);
    }

    function payFee(string memory nodeId, string memory tierName)
        external
        payable
    {
        NodeTier memory tier = tiers[tierName];
        require(
            msg.value >= ((tier.fee * 10**8) / _getCurrentPrice()),
            "Amount less than fee"
        );
        _payFee(nodeId);
        emit PaidFee(nodeId, dueDates[nodeId]);
    }

    function payFees(string[] memory nodeIds, string memory tierName)
        external
        payable
    {
        NodeTier memory tier = tiers[tierName];
        require(
            msg.value >=
                nodeIds.length.mul(
                    (tier.fee * 10**8 * 10**18) / _getCurrentPrice()
                ),
            "Amount less than fee"
        );
        for (uint256 i = 0; i < nodeIds.length; i++) {
            _payFee(nodeIds[i]);
        }
    }

    function _calcRestoreFee(string memory nodeId, string memory tierName)
        internal
        view
        returns (uint256)
    {
        NodeTier memory tier = tiers[tierName];

        uint256 dueDate = _getDueDate(nodeId);
        uint256 missedFees = uint256(block.timestamp - dueDate)
            .div(feeCycle)
            .mul((tier.fee * 10**8 * 10**18) / _getCurrentPrice());

        return
            ((tier.restoreFee * 10**8 * 10**18) / _getCurrentPrice()) +
            missedFees;
    }

    function restoreNode(string memory nodeId, string memory tierName)
        external
        payable
        onlyBifrost
    {
        uint256 totalFee = _calcRestoreFee(nodeId, tierName);

        require(msg.value >= totalFee, "Amount less than fee");
        dueDates[nodeId] = block.timestamp + feeCycle;
    }

    function addTier(
        string memory name,
        uint256 fee,
        uint256 restoreFee
    ) public onlyOwner {
        tiers[name] = NodeTier({name: name, fee: fee, restoreFee: restoreFee});
        emit AddedTier(name, fee, restoreFee);
    }

    function removeTier(string memory name) external onlyOwner {
        delete tiers[name];
        emit RemovedTier(name);
    }

    function _isDelinquent(string memory nodeId) internal view returns (bool) {
        uint256 dueDate = _getDueDate(nodeId);

        return block.timestamp > dueDate;
    }

    function isDelinquent(string memory nodeId) external view returns (bool) {
        return _isDelinquent(nodeId);
    }

    function getFee(string memory nodeId, string memory tierName)
        public
        view
        returns (uint256)
    {
        if (_isDelinquent(nodeId)) {
            return _calcRestoreFee(nodeId, tierName);
        }

        return tiers[tierName].fee * 10**8 * 10**18 / _getCurrentPrice();
    }

    function withdrawFees() external onlyOwner {
        payable(collector).transfer(address(this).balance);
    }

    function updateFeeCycle(uint256 time) external onlyOwner {
        feeCycle = time;
    }

    function updateOwner(address newOwner) external onlyOwner {
        owner = newOwner;
    }

    function updateBifrost(address newBifrost) external onlyOwner {
        bifrost = newBifrost;
    }

    function updateCollector(address newCollector) external onlyOwner {
        collector = newCollector;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_bifrost","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"restoreFee","type":"uint256"}],"name":"AddedTier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"nodeId","type":"string"},{"indexed":false,"internalType":"uint256","name":"dueDate","type":"uint256"}],"name":"PaidFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"}],"name":"RemovedTier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_aggregator","type":"address"}],"name":"SetAggregator","type":"event"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"restoreFee","type":"uint256"}],"name":"addTier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"baseDueDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bifrost","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"dueDates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"}],"name":"getDueDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"},{"internalType":"string","name":"tierName","type":"string"}],"name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"}],"name":"isDelinquent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"},{"internalType":"string","name":"tierName","type":"string"}],"name":"payFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"}],"name":"payFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string[]","name":"nodeIds","type":"string[]"},{"internalType":"string","name":"tierName","type":"string"}],"name":"payFees","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"removeTier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"nodeId","type":"string"},{"internalType":"string","name":"tierName","type":"string"}],"name":"restoreNode","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"}],"name":"setAggregator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"tiers","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"restoreFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newBifrost","type":"address"}],"name":"updateBifrost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCollector","type":"address"}],"name":"updateCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateFeeCycle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405263621ffc64600381905560045562278d00600555600a80546001600160a01b031916738e2ff009df7d3611efaf1aae63a05020669fdcf81790553480156200004b57600080fd5b5060405162001cb938038062001cb98339810160408190526200006e9162000329565b600880546001600160a01b031990811633178255600980546001600160a01b038516908316179055600080548216730a77230d17318075983913bc2145db16c736615617905560018054909116738748feb50b6713ae0aa08314567f5bad962e96ac1790556040805180820190915290815267121152535110531360c21b602082015262000100906005601c62000188565b604080518082019091526005815264465245594160d81b60208201526200012b90600a608c62000188565b6040805180820190915260048152632a2427a960e11b60208201526200015690601461011962000188565b60408051808201909152600481526327a224a760e11b6020820152620001819060506106de62000188565b506200042d565b6008546001600160a01b03163314620001d25760405162461bcd60e51b8152602060048201526008602482015267233ab1b59037b33360c11b604482015260640160405180910390fd5b604051806060016040528084815260200183815260200182815250600784604051620001ff91906200038e565b908152602001604051809103902060008201518160000190805190602001906200022b92919062000283565b5060208201516001820155604091820151600290910155517f49c5bcdda88fe9b0e1282c0ee116ba91a21603f856eb0a8d38595b10f04ba11f906200027690859085908590620003ac565b60405180910390a1505050565b8280546200029190620003f0565b90600052602060002090601f016020900481019282620002b5576000855562000300565b82601f10620002d057805160ff191683800117855562000300565b8280016001018555821562000300579182015b8281111562000300578251825591602001919060010190620002e3565b506200030e92915062000312565b5090565b5b808211156200030e576000815560010162000313565b6000602082840312156200033c57600080fd5b81516001600160a01b03811681146200035457600080fd5b9392505050565b60005b83811015620003785781810151838201526020016200035e565b8381111562000388576000848401525b50505050565b60008251620003a28184602087016200035b565b9190910192915050565b6060815260008451806060840152620003cd8160808501602089016200035b565b60208301949094525060408101919091526080601f909201601f19160101919050565b600181811c908216806200040557607f821691505b602082108114156200042757634e487b7160e01b600052602260045260246000fd5b50919050565b61187c806200043d6000396000f3fe6080604052600436106101405760003560e01c80639dd45f56116100b6578063c316c98b1161006f578063c316c98b1461035c578063ce17505a1461037c578063e1ab2ba41461038f578063f2d049b6146103c7578063f9120af6146103e7578063fe551b051461040757600080fd5b80639dd45f56146102a9578063b23bf443146102bc578063b4932ca6146102dc578063b6cc3a66146102fc578063bc07ef9e1461031c578063beb324ca1461033c57600080fd5b8063476343ee11610108578063476343ee1461020157806348b15166146102165780635676959a14610229578063880cdc31146102495780638da5cb5b14610269578063913e77ad1461028957600080fd5b806303460b50146101455780630f6933831461016e5780631815a8d51461019e5780633ecc52b9146101b357806341f59620146101eb575b600080fd5b34801561015157600080fd5b5061015b60035481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5061018e6101893660046113b3565b610436565b6040519015158152602001610165565b6101b16101ac3660046113f0565b610447565b005b3480156101bf57600080fd5b506009546101d3906001600160a01b031681565b6040516001600160a01b039091168152602001610165565b3480156101f757600080fd5b5061015b60055481565b34801561020d57600080fd5b506101b16104da565b34801561022257600080fd5b504261015b565b34801561023557600080fd5b506101b1610244366004611454565b610540565b34801561025557600080fd5b506101b16102643660046114a2565b610615565b34801561027557600080fd5b506008546101d3906001600160a01b031681565b34801561029557600080fd5b50600a546101d3906001600160a01b031681565b6101b16102b73660046113f0565b610661565b3480156102c857600080fd5b506101b16102d73660046113b3565b6107cd565b3480156102e857600080fd5b506101b16102f73660046114a2565b61087d565b34801561030857600080fd5b5061015b6103173660046113b3565b6108c9565b34801561032857600080fd5b506101b16103373660046114cb565b6108d4565b34801561034857600080fd5b5061015b6103573660046113f0565b610903565b34801561036857600080fd5b506101b16103773660046114a2565b610980565b6101b161038a3660046114e4565b6109cc565b34801561039b57600080fd5b5061015b6103aa3660046113b3565b805160208183018101805160028252928201919093012091525481565b3480156103d357600080fd5b506101b16103e23660046113b3565b610b46565b3480156103f357600080fd5b506101b16104023660046114a2565b610bdc565b34801561041357600080fd5b506104276104223660046113b3565b610c54565b6040516101659392919061160b565b600061044182610d09565b92915050565b6009546001600160a01b0316331461047a5760405162461bcd60e51b815260040161047190611630565b60405180910390fd5b60006104868383610d1e565b9050803410156104a85760405162461bcd60e51b815260040161047190611652565b6005546104b59042611696565b6002846040516104c591906116ae565b90815260405190819003602001902055505050565b6008546001600160a01b031633146105045760405162461bcd60e51b815260040161047190611630565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561053d573d6000803e3d6000fd5b50565b6008546001600160a01b0316331461056a5760405162461bcd60e51b815260040161047190611630565b60405180606001604052808481526020018381526020018281525060078460405161059591906116ae565b908152602001604051809103902060008201518160000190805190602001906105bf92919061122d565b5060208201516001820155604091820151600290910155517f49c5bcdda88fe9b0e1282c0ee116ba91a21603f856eb0a8d38595b10f04ba11f906106089085908590859061160b565b60405180910390a1505050565b6008546001600160a01b0316331461063f5760405162461bcd60e51b815260040161047190611630565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600060078260405161067391906116ae565b908152602001604051809103902060405180606001604052908160008201805461069c906116ca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c8906116ca565b80156107155780601f106106ea57610100808354040283529160200191610715565b820191906000526020600020905b8154815290600101906020018083116106f857829003601f168201915b5050505050815260200160018201548152602001600282015481525050905061073c610ea6565b602082015161074f906305f5e100611705565b6107599190611724565b3410156107785760405162461bcd60e51b815260040161047190611652565b61078183610f1f565b7ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f836002856040516107b391906116ae565b908152604051908190036020018120546106089291611746565b6009546001600160a01b031633146107f75760405162461bcd60e51b815260040161047190611630565b6005546108049042611696565b60028260405161081491906116ae565b9081526020016040518091039020819055507ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f8160028360405161085891906116ae565b908152604051908190036020018120546108729291611746565b60405180910390a150565b6008546001600160a01b031633146108a75760405162461bcd60e51b815260040161047190611630565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006104418261101b565b6008546001600160a01b031633146108fe5760405162461bcd60e51b815260040161047190611630565b600555565b600061090e83610d09565b156109245761091d8383610d1e565b9050610441565b61092c610ea6565b60078360405161093c91906116ae565b9081526020016040518091039020600101546305f5e10061095d9190611705565b61096f90670de0b6b3a7640000611705565b6109799190611724565b9392505050565b6008546001600160a01b031633146109aa5760405162461bcd60e51b815260040161047190611630565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006007826040516109de91906116ae565b9081526020016040518091039020604051806060016040529081600082018054610a07906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610a33906116ca565b8015610a805780601f10610a5557610100808354040283529160200191610a80565b820191906000526020600020905b815481529060010190602001808311610a6357829003601f168201915b50505050508152602001600182015481526020016002820154815250509050610ae1610aaa610ea6565b6020830151610abd906305f5e100611705565b610acf90670de0b6b3a7640000611705565b610ad99190611724565b8451906110f4565b341015610b005760405162461bcd60e51b815260040161047190611652565b60005b8351811015610b4057610b2e848281518110610b2157610b21611768565b6020026020010151610f1f565b80610b388161177e565b915050610b03565b50505050565b6008546001600160a01b03163314610b705760405162461bcd60e51b815260040161047190611630565b600781604051610b8091906116ae565b9081526040519081900360200190206000610b9b82826112b1565b6001820160009055600282016000905550507f7be730317579d37b8ccb33fb581149350ae66d74eacd52d22e697e4e5d24fb57816040516108729190611799565b6008546001600160a01b03163314610c065760405162461bcd60e51b815260040161047190611630565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fe3019176e17c666cf4037ff4eaf90f47c7eaa9d7445cac6c1577d7a6fb903b8f90602001610872565b8051602081830181018051600782529282019190930120915280548190610c7a906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca6906116ca565b8015610cf35780601f10610cc857610100808354040283529160200191610cf3565b820191906000526020600020905b815481529060010190602001808311610cd657829003601f168201915b5050505050908060010154908060020154905083565b600080610d158361101b565b42119392505050565b600080600783604051610d3191906116ae565b9081526020016040518091039020604051806060016040529081600082018054610d5a906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610d86906116ca565b8015610dd35780601f10610da857610100808354040283529160200191610dd3565b820191906000526020600020905b815481529060010190602001808311610db657829003601f168201915b505050505081526020016001820154815260200160028201548152505090506000610dfd8561101b565b90506000610e58610e0c610ea6565b6020850151610e1f906305f5e100611705565b610e3190670de0b6b3a7640000611705565b610e3b9190611724565b600554610e5290610e4c86426117ac565b90611173565b906110f4565b905080610e63610ea6565b6040850151610e76906305f5e100611705565b610e8890670de0b6b3a7640000611705565b610e929190611724565b610e9c9190611696565b9695505050505050565b6000805460408051633fabe5a360e21b8152905183926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1491906117dd565b509195945050505050565b610f2881610d09565b15610f7f5760405162461bcd60e51b815260206004820152602160248201527f4e6f64652068617320657870697265642c2070617920726573746f72652066656044820152606560f81b6064820152608401610471565b6000610f8a8261101b565b9050610fa1600554826111ce90919063ffffffff16565b600283604051610fb191906116ae565b9081526020016040518091039020819055507ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f82600284604051610ff591906116ae565b9081526040519081900360200181205461100f9291611746565b60405180910390a15050565b60008060028360405161102e91906116ae565b90815260200160405180910390205411156110695760028260405161105391906116ae565b9081526020016040518091039020549050919050565b600154604051635b661d3360e11b81526000916001600160a01b03169063b6cc3a669061109a908690600401611799565b602060405180830381865afa1580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db919061182d565b905060045481141561044157600354610979565b919050565b60008261110357506000610441565b600061110f8385611705565b90508261111c8583611724565b146109795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610471565b60008082116111c45760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610471565b6109798284611724565b6000806111db8385611696565b9050838110156109795760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610471565b828054611239906116ca565b90600052602060002090601f01602090048101928261125b57600085556112a1565b82601f1061127457805160ff19168380011785556112a1565b828001600101855582156112a1579182015b828111156112a1578251825591602001919060010190611286565b506112ad9291506112e7565b5090565b5080546112bd906116ca565b6000825580601f106112cd575050565b601f01602090049060005260206000209081019061053d91905b5b808211156112ad57600081556001016112e8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561133b5761133b6112fc565b604052919050565b600082601f83011261135457600080fd5b813567ffffffffffffffff81111561136e5761136e6112fc565b611381601f8201601f1916602001611312565b81815284602083860101111561139657600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156113c557600080fd5b813567ffffffffffffffff8111156113dc57600080fd5b6113e884828501611343565b949350505050565b6000806040838503121561140357600080fd5b823567ffffffffffffffff8082111561141b57600080fd5b61142786838701611343565b9350602085013591508082111561143d57600080fd5b5061144a85828601611343565b9150509250929050565b60008060006060848603121561146957600080fd5b833567ffffffffffffffff81111561148057600080fd5b61148c86828701611343565b9660208601359650604090950135949350505050565b6000602082840312156114b457600080fd5b81356001600160a01b038116811461097957600080fd5b6000602082840312156114dd57600080fd5b5035919050565b600080604083850312156114f757600080fd5b823567ffffffffffffffff8082111561150f57600080fd5b818501915085601f83011261152357600080fd5b8135602082821115611537576115376112fc565b8160051b611546828201611312565b928352848101820192828101908a85111561156057600080fd5b83870192505b8483101561159c5782358681111561157e5760008081fd5b61158c8c86838b0101611343565b8352509183019190830190611566565b975050508601359250508082111561143d57600080fd5b60005b838110156115ce5781810151838201526020016115b6565b83811115610b405750506000910152565b600081518084526115f78160208601602086016115b3565b601f01601f19169290920160200192915050565b60608152600061161e60608301866115df565b60208301949094525060400152919050565b602080825260089082015267233ab1b59037b33360c11b604082015260600190565b602080825260149082015273416d6f756e74206c657373207468616e2066656560601b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156116a9576116a9611680565b500190565b600082516116c08184602087016115b3565b9190910192915050565b600181811c908216806116de57607f821691505b602082108114156116ff57634e487b7160e01b600052602260045260246000fd5b50919050565b600081600019048311821515161561171f5761171f611680565b500290565b60008261174157634e487b7160e01b600052601260045260246000fd5b500490565b60408152600061175960408301856115df565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561179257611792611680565b5060010190565b60208152600061097960208301846115df565b6000828210156117be576117be611680565b500390565b805169ffffffffffffffffffff811681146110ef57600080fd5b600080600080600060a086880312156117f557600080fd5b6117fe866117c3565b9450602086015193506040860151925060608601519150611821608087016117c3565b90509295509295909350565b60006020828403121561183f57600080fd5b505191905056fea2646970667358221220e14532be695282d9f568b0dfccbd9cd3e16c82d8e82681383620ec5ce133ad7964736f6c634300080c00330000000000000000000000002be139283d73cd3a335a94c50ba2b28fde1e06e1

Deployed Bytecode

0x6080604052600436106101405760003560e01c80639dd45f56116100b6578063c316c98b1161006f578063c316c98b1461035c578063ce17505a1461037c578063e1ab2ba41461038f578063f2d049b6146103c7578063f9120af6146103e7578063fe551b051461040757600080fd5b80639dd45f56146102a9578063b23bf443146102bc578063b4932ca6146102dc578063b6cc3a66146102fc578063bc07ef9e1461031c578063beb324ca1461033c57600080fd5b8063476343ee11610108578063476343ee1461020157806348b15166146102165780635676959a14610229578063880cdc31146102495780638da5cb5b14610269578063913e77ad1461028957600080fd5b806303460b50146101455780630f6933831461016e5780631815a8d51461019e5780633ecc52b9146101b357806341f59620146101eb575b600080fd5b34801561015157600080fd5b5061015b60035481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5061018e6101893660046113b3565b610436565b6040519015158152602001610165565b6101b16101ac3660046113f0565b610447565b005b3480156101bf57600080fd5b506009546101d3906001600160a01b031681565b6040516001600160a01b039091168152602001610165565b3480156101f757600080fd5b5061015b60055481565b34801561020d57600080fd5b506101b16104da565b34801561022257600080fd5b504261015b565b34801561023557600080fd5b506101b1610244366004611454565b610540565b34801561025557600080fd5b506101b16102643660046114a2565b610615565b34801561027557600080fd5b506008546101d3906001600160a01b031681565b34801561029557600080fd5b50600a546101d3906001600160a01b031681565b6101b16102b73660046113f0565b610661565b3480156102c857600080fd5b506101b16102d73660046113b3565b6107cd565b3480156102e857600080fd5b506101b16102f73660046114a2565b61087d565b34801561030857600080fd5b5061015b6103173660046113b3565b6108c9565b34801561032857600080fd5b506101b16103373660046114cb565b6108d4565b34801561034857600080fd5b5061015b6103573660046113f0565b610903565b34801561036857600080fd5b506101b16103773660046114a2565b610980565b6101b161038a3660046114e4565b6109cc565b34801561039b57600080fd5b5061015b6103aa3660046113b3565b805160208183018101805160028252928201919093012091525481565b3480156103d357600080fd5b506101b16103e23660046113b3565b610b46565b3480156103f357600080fd5b506101b16104023660046114a2565b610bdc565b34801561041357600080fd5b506104276104223660046113b3565b610c54565b6040516101659392919061160b565b600061044182610d09565b92915050565b6009546001600160a01b0316331461047a5760405162461bcd60e51b815260040161047190611630565b60405180910390fd5b60006104868383610d1e565b9050803410156104a85760405162461bcd60e51b815260040161047190611652565b6005546104b59042611696565b6002846040516104c591906116ae565b90815260405190819003602001902055505050565b6008546001600160a01b031633146105045760405162461bcd60e51b815260040161047190611630565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561053d573d6000803e3d6000fd5b50565b6008546001600160a01b0316331461056a5760405162461bcd60e51b815260040161047190611630565b60405180606001604052808481526020018381526020018281525060078460405161059591906116ae565b908152602001604051809103902060008201518160000190805190602001906105bf92919061122d565b5060208201516001820155604091820151600290910155517f49c5bcdda88fe9b0e1282c0ee116ba91a21603f856eb0a8d38595b10f04ba11f906106089085908590859061160b565b60405180910390a1505050565b6008546001600160a01b0316331461063f5760405162461bcd60e51b815260040161047190611630565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600060078260405161067391906116ae565b908152602001604051809103902060405180606001604052908160008201805461069c906116ca565b80601f01602080910402602001604051908101604052809291908181526020018280546106c8906116ca565b80156107155780601f106106ea57610100808354040283529160200191610715565b820191906000526020600020905b8154815290600101906020018083116106f857829003601f168201915b5050505050815260200160018201548152602001600282015481525050905061073c610ea6565b602082015161074f906305f5e100611705565b6107599190611724565b3410156107785760405162461bcd60e51b815260040161047190611652565b61078183610f1f565b7ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f836002856040516107b391906116ae565b908152604051908190036020018120546106089291611746565b6009546001600160a01b031633146107f75760405162461bcd60e51b815260040161047190611630565b6005546108049042611696565b60028260405161081491906116ae565b9081526020016040518091039020819055507ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f8160028360405161085891906116ae565b908152604051908190036020018120546108729291611746565b60405180910390a150565b6008546001600160a01b031633146108a75760405162461bcd60e51b815260040161047190611630565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60006104418261101b565b6008546001600160a01b031633146108fe5760405162461bcd60e51b815260040161047190611630565b600555565b600061090e83610d09565b156109245761091d8383610d1e565b9050610441565b61092c610ea6565b60078360405161093c91906116ae565b9081526020016040518091039020600101546305f5e10061095d9190611705565b61096f90670de0b6b3a7640000611705565b6109799190611724565b9392505050565b6008546001600160a01b031633146109aa5760405162461bcd60e51b815260040161047190611630565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006007826040516109de91906116ae565b9081526020016040518091039020604051806060016040529081600082018054610a07906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610a33906116ca565b8015610a805780601f10610a5557610100808354040283529160200191610a80565b820191906000526020600020905b815481529060010190602001808311610a6357829003601f168201915b50505050508152602001600182015481526020016002820154815250509050610ae1610aaa610ea6565b6020830151610abd906305f5e100611705565b610acf90670de0b6b3a7640000611705565b610ad99190611724565b8451906110f4565b341015610b005760405162461bcd60e51b815260040161047190611652565b60005b8351811015610b4057610b2e848281518110610b2157610b21611768565b6020026020010151610f1f565b80610b388161177e565b915050610b03565b50505050565b6008546001600160a01b03163314610b705760405162461bcd60e51b815260040161047190611630565b600781604051610b8091906116ae565b9081526040519081900360200190206000610b9b82826112b1565b6001820160009055600282016000905550507f7be730317579d37b8ccb33fb581149350ae66d74eacd52d22e697e4e5d24fb57816040516108729190611799565b6008546001600160a01b03163314610c065760405162461bcd60e51b815260040161047190611630565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fe3019176e17c666cf4037ff4eaf90f47c7eaa9d7445cac6c1577d7a6fb903b8f90602001610872565b8051602081830181018051600782529282019190930120915280548190610c7a906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca6906116ca565b8015610cf35780601f10610cc857610100808354040283529160200191610cf3565b820191906000526020600020905b815481529060010190602001808311610cd657829003601f168201915b5050505050908060010154908060020154905083565b600080610d158361101b565b42119392505050565b600080600783604051610d3191906116ae565b9081526020016040518091039020604051806060016040529081600082018054610d5a906116ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610d86906116ca565b8015610dd35780601f10610da857610100808354040283529160200191610dd3565b820191906000526020600020905b815481529060010190602001808311610db657829003601f168201915b505050505081526020016001820154815260200160028201548152505090506000610dfd8561101b565b90506000610e58610e0c610ea6565b6020850151610e1f906305f5e100611705565b610e3190670de0b6b3a7640000611705565b610e3b9190611724565b600554610e5290610e4c86426117ac565b90611173565b906110f4565b905080610e63610ea6565b6040850151610e76906305f5e100611705565b610e8890670de0b6b3a7640000611705565b610e929190611724565b610e9c9190611696565b9695505050505050565b6000805460408051633fabe5a360e21b8152905183926001600160a01b03169163feaf968c9160048083019260a09291908290030181865afa158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1491906117dd565b509195945050505050565b610f2881610d09565b15610f7f5760405162461bcd60e51b815260206004820152602160248201527f4e6f64652068617320657870697265642c2070617920726573746f72652066656044820152606560f81b6064820152608401610471565b6000610f8a8261101b565b9050610fa1600554826111ce90919063ffffffff16565b600283604051610fb191906116ae565b9081526020016040518091039020819055507ff44ee4842ec3dc0c81ef42dbf3a878cfb53a1da4a242d36919d4d6613507e80f82600284604051610ff591906116ae565b9081526040519081900360200181205461100f9291611746565b60405180910390a15050565b60008060028360405161102e91906116ae565b90815260200160405180910390205411156110695760028260405161105391906116ae565b9081526020016040518091039020549050919050565b600154604051635b661d3360e11b81526000916001600160a01b03169063b6cc3a669061109a908690600401611799565b602060405180830381865afa1580156110b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110db919061182d565b905060045481141561044157600354610979565b919050565b60008261110357506000610441565b600061110f8385611705565b90508261111c8583611724565b146109795760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610471565b60008082116111c45760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610471565b6109798284611724565b6000806111db8385611696565b9050838110156109795760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610471565b828054611239906116ca565b90600052602060002090601f01602090048101928261125b57600085556112a1565b82601f1061127457805160ff19168380011785556112a1565b828001600101855582156112a1579182015b828111156112a1578251825591602001919060010190611286565b506112ad9291506112e7565b5090565b5080546112bd906116ca565b6000825580601f106112cd575050565b601f01602090049060005260206000209081019061053d91905b5b808211156112ad57600081556001016112e8565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561133b5761133b6112fc565b604052919050565b600082601f83011261135457600080fd5b813567ffffffffffffffff81111561136e5761136e6112fc565b611381601f8201601f1916602001611312565b81815284602083860101111561139657600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156113c557600080fd5b813567ffffffffffffffff8111156113dc57600080fd5b6113e884828501611343565b949350505050565b6000806040838503121561140357600080fd5b823567ffffffffffffffff8082111561141b57600080fd5b61142786838701611343565b9350602085013591508082111561143d57600080fd5b5061144a85828601611343565b9150509250929050565b60008060006060848603121561146957600080fd5b833567ffffffffffffffff81111561148057600080fd5b61148c86828701611343565b9660208601359650604090950135949350505050565b6000602082840312156114b457600080fd5b81356001600160a01b038116811461097957600080fd5b6000602082840312156114dd57600080fd5b5035919050565b600080604083850312156114f757600080fd5b823567ffffffffffffffff8082111561150f57600080fd5b818501915085601f83011261152357600080fd5b8135602082821115611537576115376112fc565b8160051b611546828201611312565b928352848101820192828101908a85111561156057600080fd5b83870192505b8483101561159c5782358681111561157e5760008081fd5b61158c8c86838b0101611343565b8352509183019190830190611566565b975050508601359250508082111561143d57600080fd5b60005b838110156115ce5781810151838201526020016115b6565b83811115610b405750506000910152565b600081518084526115f78160208601602086016115b3565b601f01601f19169290920160200192915050565b60608152600061161e60608301866115df565b60208301949094525060400152919050565b602080825260089082015267233ab1b59037b33360c11b604082015260600190565b602080825260149082015273416d6f756e74206c657373207468616e2066656560601b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156116a9576116a9611680565b500190565b600082516116c08184602087016115b3565b9190910192915050565b600181811c908216806116de57607f821691505b602082108114156116ff57634e487b7160e01b600052602260045260246000fd5b50919050565b600081600019048311821515161561171f5761171f611680565b500290565b60008261174157634e487b7160e01b600052601260045260246000fd5b500490565b60408152600061175960408301856115df565b90508260208301529392505050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561179257611792611680565b5060010190565b60208152600061097960208301846115df565b6000828210156117be576117be611680565b500390565b805169ffffffffffffffffffff811681146110ef57600080fd5b600080600080600060a086880312156117f557600080fd5b6117fe866117c3565b9450602086015193506040860151925060608601519150611821608087016117c3565b90509295509295909350565b60006020828403121561183f57600080fd5b505191905056fea2646970667358221220e14532be695282d9f568b0dfccbd9cd3e16c82d8e82681383620ec5ce133ad7964736f6c634300080c0033

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

0000000000000000000000002be139283d73cd3a335a94c50ba2b28fde1e06e1

-----Decoded View---------------
Arg [0] : _bifrost (address): 0x2be139283d73Cd3a335A94c50BA2B28fdE1E06E1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002be139283d73cd3a335a94c50ba2b28fde1e06e1


Deployed Bytecode Sourcemap

8098:6387:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8304:39;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8304:39:0;;;;;;;;13495:120;;;;;;;;;;-1:-1:-1;13495:120:0;;;;;:::i;:::-;;:::i;:::-;;;1636:14:1;;1629:22;1611:41;;1599:2;1584:18;13495:120:0;1471:187:1;12579:322:0;;;;;;:::i;:::-;;:::i;:::-;;8652:22;;;;;;;;;;-1:-1:-1;8652:22:0;;;;-1:-1:-1;;;;;8652:22:0;;;;;;-1:-1:-1;;;;;2375:32:1;;;2357:51;;2345:2;2330:18;8652:22:0;2211:203:1;8391:33:0;;;;;;;;;;;;;;;;13944:112;;;;;;;;;;;;;:::i;10132:94::-;;;;;;;;;;-1:-1:-1;10203:15:0;10132:94;;12909:258;;;;;;;;;;-1:-1:-1;12909:258:0;;;;;:::i;:::-;;:::i;14163:93::-;;;;;;;;;;-1:-1:-1;14163:93:0;;;;;:::i;:::-;;:::i;8625:20::-;;;;;;;;;;-1:-1:-1;8625:20:0;;;;-1:-1:-1;;;;;8625:20:0;;;8681:69;;;;;;;;;;-1:-1:-1;8681:69:0;;;;-1:-1:-1;;;;;8681:69:0;;;11183:369;;;;;;:::i;:::-;;:::i;11003:172::-;;;;;;;;;;-1:-1:-1;11003:172:0;;;;;:::i;:::-;;:::i;14264:101::-;;;;;;;;;;-1:-1:-1;14264:101:0;;;;;:::i;:::-;;:::i;10571:119::-;;;;;;;;;;-1:-1:-1;10571:119:0;;;;;:::i;:::-;;:::i;14064:91::-;;;;;;;;;;-1:-1:-1;14064:91:0;;;;;:::i;:::-;;:::i;13623:313::-;;;;;;;;;;-1:-1:-1;13623:313:0;;;;;:::i;:::-;;:::i;14373:109::-;;;;;;;;;;-1:-1:-1;14373:109:0;;;;;:::i;:::-;;:::i;11560:483::-;;;;;;:::i;:::-;;:::i;8255:42::-;;;;;;;;;;-1:-1:-1;8255:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13175:129;;;;;;;;;;-1:-1:-1;13175:129:0;;;;;:::i;:::-;;:::i;9954:170::-;;;;;;;;;;-1:-1:-1;9954:170:0;;;;;:::i;:::-;;:::i;8576:40::-;;;;;;;;;;-1:-1:-1;8576:40:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;13495:120::-;13562:4;13586:21;13600:6;13586:13;:21::i;:::-;13579:28;13495:120;-1:-1:-1;;13495:120:0:o;12579:322::-;9168:7;;-1:-1:-1;;;;;9168:7:0;9154:10;:21;9146:42;;;;-1:-1:-1;;;9146:42:0;;;;;;;:::i;:::-;;;;;;;;;12718:16:::1;12737:33;12753:6;12761:8;12737:15;:33::i;:::-;12718:52;;12804:8;12791:9;:21;;12783:54;;;;-1:-1:-1::0;;;12783:54:0::1;;;;;;;:::i;:::-;12885:8;::::0;12867:26:::1;::::0;:15:::1;:26;:::i;:::-;12848:8;12857:6;12848:16;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:45;-1:-1:-1;;;12579:322:0:o;13944:112::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;14006:9:::1;::::0;13998:50:::1;::::0;-1:-1:-1;;;;;14006:9:0;;::::1;::::0;14026:21:::1;13998:50:::0;::::1;;;::::0;14006:9:::1;13998:50:::0;14006:9;13998:50;14026:21;14006:9;13998:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13944:112::o:0;12909:258::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;13055:56:::1;;;;;;;;13071:4;13055:56;;;;13082:3;13055:56;;;;13099:10;13055:56;;::::0;13041:5:::1;13047:4;13041:11;;;;;;:::i;:::-;;;;;;;;;;;;;:70;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13041:70:0::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;13127:32;::::1;::::0;::::1;::::0;13137:4;;13143:3;;13148:10;;13127:32:::1;:::i;:::-;;;;;;;;12909:258:::0;;;:::o;14163:93::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;14232:5:::1;:16:::0;;-1:-1:-1;;;;;;14232:16:0::1;-1:-1:-1::0;;;;;14232:16:0;;;::::1;::::0;;;::::1;::::0;;14163:93::o;11183:369::-;11296:20;11319:5;11325:8;11319:15;;;;;;:::i;:::-;;;;;;;;;;;;;11296:38;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11402:18;:16;:18::i;:::-;11382:8;;;;:16;;11393:5;11382:16;:::i;:::-;11381:39;;;;:::i;:::-;11367:9;:54;;11345:124;;;;-1:-1:-1;;;11345:124:0;;;;;;;:::i;:::-;11480:15;11488:6;11480:7;:15::i;:::-;11511:33;11519:6;11527:8;11536:6;11527:16;;;;;;:::i;:::-;;;;;;;;;;;;;;;11511:33;;;;:::i;11003:172::-;9168:7;;-1:-1:-1;;;;;9168:7:0;9154:10;:21;9146:42;;;;-1:-1:-1;;;9146:42:0;;;;;;;:::i;:::-;11110:8:::1;::::0;11092:26:::1;::::0;:15:::1;:26;:::i;:::-;11073:8;11082:6;11073:16;;;;;;:::i;:::-;;;;;;;;;;;;;:45;;;;11134:33;11142:6;11150:8;11159:6;11150:16;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;11134:33:::1;::::0;;::::1;:::i;:::-;;;;;;;;11003:172:::0;:::o;14264:101::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;14337:7:::1;:20:::0;;-1:-1:-1;;;;;;14337:20:0::1;-1:-1:-1::0;;;;;14337:20:0;;;::::1;::::0;;;::::1;::::0;;14264:101::o;10571:119::-;10636:7;10663:19;10675:6;10663:11;:19::i;14064:91::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;14132:8:::1;:15:::0;14064:91::o;13623:313::-;13733:7;13762:21;13776:6;13762:13;:21::i;:::-;13758:94;;;13807:33;13823:6;13831:8;13807:15;:33::i;:::-;13800:40;;;;13758:94;13910:18;:16;:18::i;:::-;13871:5;13877:8;13871:15;;;;;;:::i;:::-;;;;;;;;;;;;;:19;;;13893:5;13871:27;;;;:::i;:::-;:36;;13901:6;13871:36;:::i;:::-;:57;;;;:::i;:::-;13864:64;13623:313;-1:-1:-1;;;13623:313:0:o;14373:109::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;14450:9:::1;:24:::0;;-1:-1:-1;;;;;;14450:24:0::1;-1:-1:-1::0;;;;;14450:24:0;;;::::1;::::0;;;::::1;::::0;;14373:109::o;11560:483::-;11677:20;11700:5;11706:8;11700:15;;;;;;:::i;:::-;;;;;;;;;;;;;11677:38;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:108;11849:18;:16;:18::i;:::-;11820:8;;;;:16;;11831:5;11820:16;:::i;:::-;:25;;11839:6;11820:25;:::i;:::-;11819:48;;;;:::i;:::-;11778:14;;;:18;:108::i;:::-;11748:9;:138;;11726:208;;;;-1:-1:-1;;;11726:208:0;;;;;;;:::i;:::-;11950:9;11945:91;11969:7;:14;11965:1;:18;11945:91;;;12005:19;12013:7;12021:1;12013:10;;;;;;;;:::i;:::-;;;;;;;12005:7;:19::i;:::-;11985:3;;;;:::i;:::-;;;;11945:91;;;;11666:377;11560:483;;:::o;13175:129::-;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;13252:5:::1;13258:4;13252:11;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;::::1;13245:18;13252:11:::0;;13245:18:::1;:::i;:::-;;;;;;;;;;;;;;;13279:17;13291:4;13279:17;;;;;;:::i;9954:170::-:0;9066:5;;-1:-1:-1;;;;;9066:5:0;9052:10;:19;9044:40;;;;-1:-1:-1;;;9044:40:0;;;;;;;:::i;:::-;10028:9:::1;:46:::0;;-1:-1:-1;;;;;;10028:46:0::1;-1:-1:-1::0;;;;;10028:46:0;::::1;::::0;;::::1;::::0;;;10090:26:::1;::::0;2357:51:1;;;10090:26:0::1;::::0;2345:2:1;2330:18;10090:26:0::1;2211:203:1::0;8576:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13312:175::-;13380:4;13397:15;13415:19;13427:6;13415:11;:19::i;:::-;13454:15;:25;;13312:175;-1:-1:-1;;;13312:175:0:o;12051:520::-;12172:7;12197:20;12220:5;12226:8;12220:15;;;;;;:::i;:::-;;;;;;;;;;;;;12197:38;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:15;12266:19;12278:6;12266:11;:19::i;:::-;12248:37;;12296:18;12317:130;12428:18;:16;:18::i;:::-;12399:8;;;;:16;;12410:5;12399:16;:::i;:::-;:25;;12418:6;12399:25;:::i;:::-;12398:48;;;;:::i;:::-;12370:8;;12317:62;;12325:25;12343:7;12325:15;:25;:::i;:::-;12317:52;;:62::i;:::-;:80;;:130::i;:::-;12296:151;;12553:10;12518:18;:16;:18::i;:::-;12482:15;;;;:23;;12500:5;12482:23;:::i;:::-;:32;;12508:6;12482:32;:::i;:::-;12481:55;;;;:::i;:::-;12480:83;;;;:::i;:::-;12460:103;12051:520;-1:-1:-1;;;;;;12051:520:0:o;9687:259::-;9738:7;9879:9;;:27;;;-1:-1:-1;;;9879:27:0;;;;9738:7;;-1:-1:-1;;;;;9879:9:0;;:25;;:27;;;;;;;;;;;;;;:9;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9758:148:0;;9687:259;-1:-1:-1;;;;;9687:259:0:o;10698:297::-;10766:21;10780:6;10766:13;:21::i;:::-;10765:22;10757:68;;;;-1:-1:-1;;;10757:68:0;;9423:2:1;10757:68:0;;;9405:21:1;9462:2;9442:18;;;9435:30;9501:34;9481:18;;;9474:62;-1:-1:-1;;;9552:18:1;;;9545:31;9593:19;;10757:68:0;9221:397:1;10757:68:0;10836:22;10861:19;10873:6;10861:11;:19::i;:::-;10836:44;;10910:28;10929:8;;10910:14;:18;;:28;;;;:::i;:::-;10891:8;10900:6;10891:16;;;;;;:::i;:::-;;;;;;;;;;;;;:47;;;;10954:33;10962:6;10970:8;10979:6;10970:16;;;;;;:::i;:::-;;;;;;;;;;;;;;;10954:33;;;;:::i;:::-;;;;;;;;10746:249;10698:297;:::o;10234:329::-;10300:7;10343:1;10324:8;10333:6;10324:16;;;;;;:::i;:::-;;;;;;;;;;;;;;:20;10320:236;;;10368:8;10377:6;10368:16;;;;;;:::i;:::-;;;;;;;;;;;;;;10361:23;;10234:329;;;:::o;10320:236::-;10437:14;;:33;;-1:-1:-1;;;10437:33:0;;10417:17;;-1:-1:-1;;;;;10437:14:0;;:25;;:33;;10463:6;;10437:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10417:53;;10505:13;;10492:9;:26;;:52;;10533:11;;10492:52;;10320:236;10234:329;;;:::o;4094:220::-;4152:7;4176:6;4172:20;;-1:-1:-1;4191:1:0;4184:8;;4172:20;4203:9;4215:5;4219:1;4215;:5;:::i;:::-;4203:17;-1:-1:-1;4248:1:0;4239:5;4243:1;4203:17;4239:5;:::i;:::-;:10;4231:56;;;;-1:-1:-1;;;4231:56:0;;10014:2:1;4231:56:0;;;9996:21:1;10053:2;10033:18;;;10026:30;10092:34;10072:18;;;10065:62;-1:-1:-1;;;10143:18:1;;;10136:31;10184:19;;4231:56:0;9812:397:1;4792:153:0;4850:7;4882:1;4878;:5;4870:44;;;;-1:-1:-1;;;4870:44:0;;10416:2:1;4870:44:0;;;10398:21:1;10455:2;10435:18;;;10428:30;10494:28;10474:18;;;10467:56;10540:18;;4870:44:0;10214:350:1;4870:44:0;4932:5;4936:1;4932;:5;:::i;3215:179::-;3273:7;;3305:5;3309:1;3305;:5;:::i;:::-;3293:17;;3334:1;3329;:6;;3321:46;;;;-1:-1:-1;;;3321:46:0;;10771:2:1;3321:46:0;;;10753:21:1;10810:2;10790:18;;;10783:30;10849:29;10829:18;;;10822:57;10896:18;;3321:46:0;10569:351:1;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:127:1;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:275;399:2;393:9;464:2;445:13;;-1:-1:-1;;441:27:1;429:40;;499:18;484:34;;520:22;;;481:62;478:88;;;546:18;;:::i;:::-;582:2;575:22;328:275;;-1:-1:-1;328:275:1:o;608:531::-;651:5;704:3;697:4;689:6;685:17;681:27;671:55;;722:1;719;712:12;671:55;758:6;745:20;784:18;780:2;777:26;774:52;;;806:18;;:::i;:::-;850:55;893:2;874:13;;-1:-1:-1;;870:27:1;899:4;866:38;850:55;:::i;:::-;930:2;921:7;914:19;976:3;969:4;964:2;956:6;952:15;948:26;945:35;942:55;;;993:1;990;983:12;942:55;1058:2;1051:4;1043:6;1039:17;1032:4;1023:7;1019:18;1006:55;1106:1;1081:16;;;1099:4;1077:27;1070:38;;;;1085:7;608:531;-1:-1:-1;;;608:531:1:o;1144:322::-;1213:6;1266:2;1254:9;1245:7;1241:23;1237:32;1234:52;;;1282:1;1279;1272:12;1234:52;1322:9;1309:23;1355:18;1347:6;1344:30;1341:50;;;1387:1;1384;1377:12;1341:50;1410;1452:7;1443:6;1432:9;1428:22;1410:50;:::i;:::-;1400:60;1144:322;-1:-1:-1;;;;1144:322:1:o;1663:543::-;1751:6;1759;1812:2;1800:9;1791:7;1787:23;1783:32;1780:52;;;1828:1;1825;1818:12;1780:52;1868:9;1855:23;1897:18;1938:2;1930:6;1927:14;1924:34;;;1954:1;1951;1944:12;1924:34;1977:50;2019:7;2010:6;1999:9;1995:22;1977:50;:::i;:::-;1967:60;;2080:2;2069:9;2065:18;2052:32;2036:48;;2109:2;2099:8;2096:16;2093:36;;;2125:1;2122;2115:12;2093:36;;2148:52;2192:7;2181:8;2170:9;2166:24;2148:52;:::i;:::-;2138:62;;;1663:543;;;;;:::o;2419:458::-;2506:6;2514;2522;2575:2;2563:9;2554:7;2550:23;2546:32;2543:52;;;2591:1;2588;2581:12;2543:52;2631:9;2618:23;2664:18;2656:6;2653:30;2650:50;;;2696:1;2693;2686:12;2650:50;2719;2761:7;2752:6;2741:9;2737:22;2719:50;:::i;:::-;2709:60;2816:2;2801:18;;2788:32;;-1:-1:-1;2867:2:1;2852:18;;;2839:32;;2419:458;-1:-1:-1;;;;2419:458:1:o;2882:286::-;2941:6;2994:2;2982:9;2973:7;2969:23;2965:32;2962:52;;;3010:1;3007;3000:12;2962:52;3036:23;;-1:-1:-1;;;;;3088:31:1;;3078:42;;3068:70;;3134:1;3131;3124:12;3173:180;3232:6;3285:2;3273:9;3264:7;3260:23;3256:32;3253:52;;;3301:1;3298;3291:12;3253:52;-1:-1:-1;3324:23:1;;3173:180;-1:-1:-1;3173:180:1:o;3358:1369::-;3471:6;3479;3532:2;3520:9;3511:7;3507:23;3503:32;3500:52;;;3548:1;3545;3538:12;3500:52;3588:9;3575:23;3617:18;3658:2;3650:6;3647:14;3644:34;;;3674:1;3671;3664:12;3644:34;3712:6;3701:9;3697:22;3687:32;;3757:7;3750:4;3746:2;3742:13;3738:27;3728:55;;3779:1;3776;3769:12;3728:55;3815:2;3802:16;3837:4;3860:2;3856;3853:10;3850:36;;;3866:18;;:::i;:::-;3912:2;3909:1;3905:10;3935:28;3959:2;3955;3951:11;3935:28;:::i;:::-;3997:15;;;4067:11;;;4063:20;;;4028:12;;;;4095:19;;;4092:39;;;4127:1;4124;4117:12;4092:39;4159:2;4155;4151:11;4140:22;;4171:353;4187:6;4182:3;4179:15;4171:353;;;4273:3;4260:17;4309:2;4296:11;4293:19;4290:109;;;4353:1;4382:2;4378;4371:14;4290:109;4424:57;4473:7;4468:2;4454:11;4450:2;4446:20;4442:29;4424:57;:::i;:::-;4412:70;;-1:-1:-1;4204:12:1;;;;4502;;;;4171:353;;;4543:5;-1:-1:-1;;;4586:18:1;;4573:32;;-1:-1:-1;;4617:16:1;;;4614:36;;;4646:1;4643;4636:12;4732:258;4804:1;4814:113;4828:6;4825:1;4822:13;4814:113;;;4904:11;;;4898:18;4885:11;;;4878:39;4850:2;4843:10;4814:113;;;4945:6;4942:1;4939:13;4936:48;;;-1:-1:-1;;4980:1:1;4962:16;;4955:27;4732:258::o;4995:::-;5037:3;5075:5;5069:12;5102:6;5097:3;5090:19;5118:63;5174:6;5167:4;5162:3;5158:14;5151:4;5144:5;5140:16;5118:63;:::i;:::-;5235:2;5214:15;-1:-1:-1;;5210:29:1;5201:39;;;;5242:4;5197:50;;4995:258;-1:-1:-1;;4995:258:1:o;5258:362::-;5463:2;5452:9;5445:21;5426:4;5483:45;5524:2;5513:9;5509:18;5501:6;5483:45;:::i;:::-;5559:2;5544:18;;5537:34;;;;-1:-1:-1;5602:2:1;5587:18;5580:34;5475:53;5258:362;-1:-1:-1;5258:362:1:o;5625:331::-;5827:2;5809:21;;;5866:1;5846:18;;;5839:29;-1:-1:-1;;;5899:2:1;5884:18;;5877:38;5947:2;5932:18;;5625:331::o;5961:344::-;6163:2;6145:21;;;6202:2;6182:18;;;6175:30;-1:-1:-1;;;6236:2:1;6221:18;;6214:50;6296:2;6281:18;;5961:344::o;6310:127::-;6371:10;6366:3;6362:20;6359:1;6352:31;6402:4;6399:1;6392:15;6426:4;6423:1;6416:15;6442:128;6482:3;6513:1;6509:6;6506:1;6503:13;6500:39;;;6519:18;;:::i;:::-;-1:-1:-1;6555:9:1;;6442:128::o;6575:276::-;6706:3;6744:6;6738:13;6760:53;6806:6;6801:3;6794:4;6786:6;6782:17;6760:53;:::i;:::-;6829:16;;;;;6575:276;-1:-1:-1;;6575:276:1:o;6856:380::-;6935:1;6931:12;;;;6978;;;6999:61;;7053:4;7045:6;7041:17;7031:27;;6999:61;7106:2;7098:6;7095:14;7075:18;7072:38;7069:161;;;7152:10;7147:3;7143:20;7140:1;7133:31;7187:4;7184:1;7177:15;7215:4;7212:1;7205:15;7069:161;;6856:380;;;:::o;7241:168::-;7281:7;7347:1;7343;7339:6;7335:14;7332:1;7329:21;7324:1;7317:9;7310:17;7306:45;7303:71;;;7354:18;;:::i;:::-;-1:-1:-1;7394:9:1;;7241:168::o;7414:217::-;7454:1;7480;7470:132;;7524:10;7519:3;7515:20;7512:1;7505:31;7559:4;7556:1;7549:15;7587:4;7584:1;7577:15;7470:132;-1:-1:-1;7616:9:1;;7414:217::o;7636:291::-;7813:2;7802:9;7795:21;7776:4;7833:45;7874:2;7863:9;7859:18;7851:6;7833:45;:::i;:::-;7825:53;;7914:6;7909:2;7898:9;7894:18;7887:34;7636:291;;;;;:::o;7932:127::-;7993:10;7988:3;7984:20;7981:1;7974:31;8024:4;8021:1;8014:15;8048:4;8045:1;8038:15;8064:135;8103:3;-1:-1:-1;;8124:17:1;;8121:43;;;8144:18;;:::i;:::-;-1:-1:-1;8191:1:1;8180:13;;8064:135::o;8204:220::-;8353:2;8342:9;8335:21;8316:4;8373:45;8414:2;8403:9;8399:18;8391:6;8373:45;:::i;8429:125::-;8469:4;8497:1;8494;8491:8;8488:34;;;8502:18;;:::i;:::-;-1:-1:-1;8539:9:1;;8429:125::o;8559:179::-;8637:13;;8690:22;8679:34;;8669:45;;8659:73;;8728:1;8725;8718:12;8743:473;8846:6;8854;8862;8870;8878;8931:3;8919:9;8910:7;8906:23;8902:33;8899:53;;;8948:1;8945;8938:12;8899:53;8971:39;9000:9;8971:39;:::i;:::-;8961:49;;9050:2;9039:9;9035:18;9029:25;9019:35;;9094:2;9083:9;9079:18;9073:25;9063:35;;9138:2;9127:9;9123:18;9117:25;9107:35;;9161:49;9205:3;9194:9;9190:19;9161:49;:::i;:::-;9151:59;;8743:473;;;;;;;;:::o;9623:184::-;9693:6;9746:2;9734:9;9725:7;9721:23;9717:32;9714:52;;;9762:1;9759;9752:12;9714:52;-1:-1:-1;9785:16:1;;9623:184;-1:-1:-1;9623:184:1:o

Swarm Source

ipfs://e14532be695282d9f568b0dfccbd9cd3e16c82d8e82681383620ec5ce133ad79

Block Transaction 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

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.