ETH Price: $2,607.51 (-4.49%)

Contract

0x221b6da1c3886094FEc690e021766338EE369554
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw All Fun...129519702021-08-03 11:11:381284 days ago1627989098IN
0x221b6da1...8EE369554
0 ETH0.0014461226
Swap129299072021-07-30 23:31:171288 days ago1627687877IN
0x221b6da1...8EE369554
0.55 ETH0.0035002232
Swap129298832021-07-30 23:26:101288 days ago1627687570IN
0x221b6da1...8EE369554
0.55 ETH0.0037901328
Swap129279602021-07-30 16:06:541288 days ago1627661214IN
0x221b6da1...8EE369554
1 ETH0.0054886336.00000145
Swap129279062021-07-30 15:56:311288 days ago1627660591IN
0x221b6da1...8EE369554
0.5 ETH0.0039026433
Swap129276482021-07-30 15:00:261288 days ago1627657226IN
0x221b6da1...8EE369554
0.5 ETH0.0048730336
Swap129276402021-07-30 14:58:521288 days ago1627657132IN
0x221b6da1...8EE369554
1 ETH0.0045533536
Swap129276232021-07-30 14:54:191288 days ago1627656859IN
0x221b6da1...8EE369554
0.5 ETH0.0045533536
Swap129275922021-07-30 14:46:331288 days ago1627656393IN
0x221b6da1...8EE369554
0.5 ETH0.0039377536
Swap129274882021-07-30 14:26:081288 days ago1627655168IN
0x221b6da1...8EE369554
0.5 ETH0.0050083937
Swap129274352021-07-30 14:14:181288 days ago1627654458IN
0x221b6da1...8EE369554
0.5 ETH0.00496742
Swap129272632021-07-30 13:35:421288 days ago1627652142IN
0x221b6da1...8EE369554
0.57 ETH0.0057935538
Swap129270882021-07-30 12:55:481288 days ago1627649748IN
0x221b6da1...8EE369554
0.78 ETH0.0037189834
Swap129270562021-07-30 12:47:501288 days ago1627649270IN
0x221b6da1...8EE369554
0.6 ETH0.0027673625.3
Swap129268692021-07-30 12:07:131288 days ago1627646833IN
0x221b6da1...8EE369554
0.5 ETH0.0026251624
Swap129268482021-07-30 12:01:171288 days ago1627646477IN
0x221b6da1...8EE369554
0.6 ETH0.0025157823
Swap129268402021-07-30 11:59:221288 days ago1627646362IN
0x221b6da1...8EE369554
0.64 ETH0.0036590824
Swap129267942021-07-30 11:49:241288 days ago1627645764IN
0x221b6da1...8EE369554
1.5 ETH0.0034111225.2
Swap129266262021-07-30 11:11:491288 days ago1627643509IN
0x221b6da1...8EE369554
0.5 ETH0.0032885326
Swap129266242021-07-30 11:11:391288 days ago1627643499IN
0x221b6da1...8EE369554
0.7 ETH0.0032885326
Swap129266122021-07-30 11:09:341288 days ago1627643374IN
0x221b6da1...8EE369554
1 ETH0.0039640126
Swap129264462021-07-30 10:29:141288 days ago1627640954IN
0x221b6da1...8EE369554
0.5 ETH0.0037901328
Swap129259392021-07-30 8:36:271289 days ago1627634187IN
0x221b6da1...8EE369554
0.5 ETH0.0036679729
Swap129257462021-07-30 7:46:551289 days ago1627631215IN
0x221b6da1...8EE369554
1.5 ETH0.0026561221
Swap129255392021-07-30 7:02:191289 days ago1627628539IN
0x221b6da1...8EE369554
0.5 ETH0.0035066223
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
129299072021-07-30 23:31:171288 days ago1627687877
0x221b6da1...8EE369554
0.55 ETH
129298832021-07-30 23:26:101288 days ago1627687570
0x221b6da1...8EE369554
0.55 ETH
129279602021-07-30 16:06:541288 days ago1627661214
0x221b6da1...8EE369554
1 ETH
129279062021-07-30 15:56:311288 days ago1627660591
0x221b6da1...8EE369554
0.5 ETH
129276482021-07-30 15:00:261288 days ago1627657226
0x221b6da1...8EE369554
0.5 ETH
129276402021-07-30 14:58:521288 days ago1627657132
0x221b6da1...8EE369554
1 ETH
129276232021-07-30 14:54:191288 days ago1627656859
0x221b6da1...8EE369554
0.5 ETH
129275922021-07-30 14:46:331288 days ago1627656393
0x221b6da1...8EE369554
0.5 ETH
129274882021-07-30 14:26:081288 days ago1627655168
0x221b6da1...8EE369554
0.5 ETH
129274352021-07-30 14:14:181288 days ago1627654458
0x221b6da1...8EE369554
0.5 ETH
129272632021-07-30 13:35:421288 days ago1627652142
0x221b6da1...8EE369554
0.57 ETH
129270882021-07-30 12:55:481288 days ago1627649748
0x221b6da1...8EE369554
0.78 ETH
129270562021-07-30 12:47:501288 days ago1627649270
0x221b6da1...8EE369554
0.6 ETH
129268692021-07-30 12:07:131288 days ago1627646833
0x221b6da1...8EE369554
0.5 ETH
129268482021-07-30 12:01:171288 days ago1627646477
0x221b6da1...8EE369554
0.6 ETH
129268402021-07-30 11:59:221288 days ago1627646362
0x221b6da1...8EE369554
0.64 ETH
129267942021-07-30 11:49:241288 days ago1627645764
0x221b6da1...8EE369554
1.5 ETH
129266262021-07-30 11:11:491288 days ago1627643509
0x221b6da1...8EE369554
0.5 ETH
129266242021-07-30 11:11:391288 days ago1627643499
0x221b6da1...8EE369554
0.7 ETH
129266122021-07-30 11:09:341288 days ago1627643374
0x221b6da1...8EE369554
1 ETH
129264462021-07-30 10:29:141288 days ago1627640954
0x221b6da1...8EE369554
0.5 ETH
129259392021-07-30 8:36:271289 days ago1627634187
0x221b6da1...8EE369554
0.5 ETH
129257462021-07-30 7:46:551289 days ago1627631215
0x221b6da1...8EE369554
1.5 ETH
129255392021-07-30 7:02:191289 days ago1627628539
0x221b6da1...8EE369554
0.5 ETH
129254842021-07-30 6:51:351289 days ago1627627895
0x221b6da1...8EE369554
0.65 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenSwapV2

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-11
*/

// File: node_modules\@openzeppelin\contracts\utils\Context.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin\contracts\access\Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: @openzeppelin\contracts\token\ERC20\IERC20.sol



pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

// File: @chainlink\contracts\src\v0.8\interfaces\AggregatorV3Interface.sol


pragma solidity ^0.8.0;

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
    );

}

// File: contracts\TokenSwapV2.sol


pragma solidity ^0.8.0;




contract TokenSwapV2 is Ownable {

    event PriceFeedUpdated(address addr);
    event AdminWalletUpdated(address addr);
    event TokenWithdrawed(uint256 amount);

    event PhaseCreated(uint256 phaseId, uint256 lockPercentage, uint256 lockReleaseTime, uint256 minDeposit, uint256 totalSupply, uint256 pricePerToken, uint256 startTime, uint256 endTime);
    event PhaseTimeUpdated(uint256 phaseId, uint256 startTime, uint256 endTime);
    event LockInfoUpdated(uint256 phaseId, uint256 lockPercentage, uint256 lockReleaseTime);
    event SaleInfoUpdated(uint256 phaseId, uint256 minDeposit, uint256 totalSupply, uint256 pricePerToken);

    event Swapped(uint256 phaseId, address account, uint256 ethDeposited, uint256 ethRefunded, uint256 tokenSold, uint256 tokenLocked, int ethPrice);

    event TokenClaimed(uint256 phaseId, address account, uint256 amount);

    uint256 private constant ONE_HUNDRED_PERCENT = 10000; // 100%

    IERC20 private _token;

    AggregatorV3Interface private _priceFeed;

    address private _adminWallet;

    struct ReferralCodeInfo {
        uint128 amount; // ETH
        uint128 numSwap;
    }

    // Mapping referral code to statistics information
    mapping(string => ReferralCodeInfo) private _referralCodes;

    struct PhaseInfo {
        uint128 lockPercentage;
        uint128 lockReleaseTime;
        uint128 minDeposit;
        uint128 pricePerToken; // 100000000 <=> 1 USD
        uint128 startTime;
        uint128 endTime;
        uint128 totalLocked;
        uint128 totalSold;
        uint128 totalSupply;
    }

    uint256 private _totalPhases;

    // Mapping phase id to phase information
    mapping(uint256 => PhaseInfo) private _phases;

    uint256 private _totalLockBalance;

    // Mapping phase id to user address and locked balance information
    mapping(uint256 => mapping(address => uint256)) private _lockBalances;

    /**
     * @dev Throws if phase doesn't exist
     */
    modifier phaseExist(uint256 phaseId) {
        require(_phases[phaseId].totalSupply > 0, "TokenSwapV2: phase doesn't exist");
        _;
    }

    /**
     * @dev Sets initial values
     */
    constructor(address token, address priceFeed, address adminWallet)
    {
        _token = IERC20(token);

        _priceFeed = AggregatorV3Interface(priceFeed);

        _adminWallet = adminWallet;
    }

    /**
     * @dev Returns smart contract information
     */
    function getContractInfo()
        external
        view
        returns (address, address, uint256, uint256, uint256)
    {
        return (
            _adminWallet, address(_token),
            _token.balanceOf(address(this)), _totalPhases, _totalLockBalance
        );
    }

    /**
     * @dev Updates price feed
     */
    function updatePriceFeed(address priceFeed)
        external
        onlyOwner
    {
        require(priceFeed != address(0), "TokenSwapV2: address is invalid");

        _priceFeed = AggregatorV3Interface(priceFeed);

        emit PriceFeedUpdated(priceFeed);
    }

    /**
     * @dev Updates admin wallet address where contains ETH user deposited
     * to smart contract for swapping
     */
    function updateAdminWallet(address adminWallet)
        external
        onlyOwner
    {
        require(adminWallet != address(0), "TokenSwapV2: address is invalid");

        _adminWallet = adminWallet;

        emit AdminWalletUpdated(adminWallet);
    }

    /**
     * @dev Withdraws token out of this smart contract and transfer to 
     * admin wallet
     *
     * Admin can withdraw all tokens that includes locked token of user in case emergency
     */
    function withdrawAllFund(uint256 amount)
        external
        onlyOwner
    {
        require(amount > 0, "TokenSwapV2: amount is invalid");

        _token.transfer(_adminWallet, amount);

        emit TokenWithdrawed(amount);
    }

    /**
     * @dev Creates new phase
     */
    function createPhase(uint128 lockPercentage, uint128 lockReleaseTime, uint128 minDeposit, uint128 totalSupply, uint128 pricePerToken, uint128 startTime, uint128 endTime)
        external
        onlyOwner
    {
        require(lockPercentage <= ONE_HUNDRED_PERCENT, "TokenSwapV2: percentage is invalid");

        require(minDeposit > 0 && totalSupply > 0 && pricePerToken > 0, "TokenSwapV2: value must be greater than zero");

        require(startTime > block.timestamp && startTime < endTime, "TokenSwapV2: time is invalid");

        uint256 id = ++_totalPhases;

        PhaseInfo storage phase = _phases[id];
        phase.lockPercentage = lockPercentage;
        phase.lockReleaseTime = lockReleaseTime;
        phase.minDeposit = minDeposit;
        phase.pricePerToken = pricePerToken;
        phase.startTime = startTime;
        phase.endTime = endTime;
        phase.totalSupply = totalSupply;

        emit PhaseCreated(id, lockPercentage, lockReleaseTime, minDeposit, totalSupply, pricePerToken, startTime, endTime);
    }

    /**
     * @dev Updates lock information
     */
    function updateLockInfo(uint256 phaseId, uint128 lockPercentage, uint128 lockReleaseTime)
        external
        onlyOwner
        phaseExist(phaseId)
    {
        require(lockPercentage <= ONE_HUNDRED_PERCENT, "TokenSwapV2: percentage is invalid");

        PhaseInfo storage phase = _phases[phaseId];

        require(phase.totalSold == 0, "TokenSwapV2: can't update");

        phase.lockPercentage = lockPercentage;
        phase.lockReleaseTime = lockReleaseTime;

        emit LockInfoUpdated(phaseId, lockPercentage, lockReleaseTime);
    }

    /**
     * @dev Updates sale information
     */
    function updateSaleInfo(uint256 phaseId, uint128 minDeposit, uint128 totalSupply, uint128 pricePerToken)
        external
        onlyOwner
        phaseExist(phaseId)
    {
        PhaseInfo storage phase = _phases[phaseId];

        if (minDeposit != 0) {
            phase.minDeposit = minDeposit;
        }

        if (totalSupply != 0) {
            phase.totalSupply = totalSupply;
        }

        if (pricePerToken != 0) {
            phase.pricePerToken = pricePerToken;
        }

        if (totalSupply != 0 || pricePerToken != 0) {
            require(phase.totalSold == 0, "TokenSwapV2: can't update");
        }

        emit SaleInfoUpdated(phaseId, minDeposit, totalSupply, pricePerToken);
    }

    /**
     * @dev Updates phase time
     */
    function updatePhaseTime(uint256 phaseId, uint128 startTime, uint128 endTime)
        external
        onlyOwner
        phaseExist(phaseId)
    {
        PhaseInfo storage phase = _phases[phaseId];

        if (startTime != 0) {
            phase.startTime = startTime;
        }

        if (endTime != 0) {
            phase.endTime = endTime;
        }

        require((startTime == 0 || startTime > block.timestamp) && phase.startTime < phase.endTime, "TokenSwapV2: time is invalid");

        emit PhaseTimeUpdated(phaseId, startTime, endTime);
    }

    /**
     * @dev Returns phase information
     */
    function getPhase(uint256 phaseId)
        external
        view
        returns (PhaseInfo memory)
    {
        return _phases[phaseId];
    }

    /**
     * @dev Returns phases information
     * @param filter 1: active, 2: ended, 3: all
     */
    function getPhases(uint256 phaseFrom, uint256 phaseTo, uint256 filter)
        external
        view
        returns (uint256[] memory, PhaseInfo[] memory)
    {
        uint256 cnt = 0;
        uint256 size = phaseTo - phaseFrom + 1;
        uint256 currentTime = block.timestamp;

        uint256[] memory tmpIds = new uint256[](size);

        PhaseInfo[] memory tmpPhases = new PhaseInfo[](size);

        for (uint256 i = phaseFrom; i <= phaseTo; i++) {
            PhaseInfo memory phase = _phases[i];

            if (phase.totalSupply == 0 || (filter == 1 && currentTime >= phase.endTime) || (filter == 2 && currentTime < phase.endTime)) {
                continue;
            }

            tmpIds[cnt] = i;
            tmpPhases[cnt] = phase;
            cnt++;
        }

        uint256[] memory ids = new uint256[](cnt);

        PhaseInfo[] memory phases = new PhaseInfo[](cnt);

        for (uint256 i = 0; i < cnt; i++) {
            ids[i] = tmpIds[i];
            phases[i] = tmpPhases[i];
        }

        return (ids, phases);
    }

    /**
     * @dev Swaps ETH to token
     */
    function swap(uint256 phaseId, string memory referralCode)
        external
        payable
    {
        PhaseInfo storage phase = _phases[phaseId];

        require(block.timestamp >= phase.startTime && block.timestamp < phase.endTime, "TokenSwapV2: not in swapping time");

        require(msg.value >= phase.minDeposit, "TokenSwapV2: deposit amount isn't enough");

        uint256 remain = phase.totalSupply - phase.totalSold;

        require(remain > 0, "TokenSwapV2: total supply isn't enough");

        (, int ethPrice,,,) = _priceFeed.latestRoundData();

        uint256 amount = msg.value * uint256(ethPrice) / phase.pricePerToken;

        uint refund;

        // Calculates redundant money
        if (amount > remain) {
            refund = (amount - remain) * phase.pricePerToken / uint256(ethPrice);
            amount = remain;
        }

        require(amount <= (_token.balanceOf(address(this)) - _totalLockBalance), "TokenSwapV2: balance isn't enough");

        // Refunds redundant money for user
        if (refund > 0) {
            payable(_msgSender()).transfer(refund);
        }

        // Transfers money to admin wallet
        payable(_adminWallet).transfer(msg.value - refund);

        // Calculates number of tokens that will be locked
        uint256 locked = amount * phase.lockPercentage / ONE_HUNDRED_PERCENT;

        // Transfers token for user
        _token.transfer(_msgSender(), amount - locked);

        if (locked > 0) {
            _totalLockBalance += locked;

            _lockBalances[phaseId][_msgSender()] += locked;

            phase.totalLocked += uint128(locked);
        }

        phase.totalSold += uint128(amount);

        // Manages referral codes
        ReferralCodeInfo storage referral = _referralCodes[referralCode];
        referral.amount += uint128(msg.value - refund);
        referral.numSwap++;

        emit Swapped(phaseId, _msgSender(), msg.value, refund, amount, locked, ethPrice);
    }

    /**
     * @dev Returns token balance of user in smart contract that includes
     * claimable and unclaimable
     */
    function getUserBalance(address account, uint256 phaseFrom, uint256 phaseTo)
        external
        view
        returns (uint256, uint256)
    {
        uint256 currentTime = block.timestamp;
        uint256 balance;
        uint256 lockBalance;

        for (uint256 i = phaseFrom; i <= phaseTo; i++) {
            uint256 amount = _lockBalances[i][account];

            if (amount == 0) {
                continue;
            }

            if (_phases[i].lockReleaseTime <= currentTime) {
                balance += amount;

            } else {
                lockBalance += amount;
            }
        }

        return (balance, lockBalance);
    }

    /**
     * @dev Claims the remainning token after lock time end
     */
    function claimToken(uint256 phaseFrom, uint256 phaseTo)
        external
    {
        address msgSender = _msgSender();
        uint256 currentTime = block.timestamp;
        uint256 balance;

        for (uint256 i = phaseFrom; i <= phaseTo; i++) {
            uint256 amount = _lockBalances[i][msgSender];

            if (amount == 0) {
                continue;
            }

            if (_phases[i].lockReleaseTime <= currentTime) {
                balance += amount;

                _phases[i].totalLocked -= uint128(amount);

                emit TokenClaimed(i, msgSender, amount);

                delete _lockBalances[i][msgSender];
            }
        }

        require(balance > 0, "TokenSwapV2: amount must be greater than zero");

        _totalLockBalance -= balance;

        _token.transfer(msgSender, balance);
    }

    /**
     * @dev Returns referral code information
     */
    function getReferralCodeInfo(string memory referralCode)
        external
        view
        returns (ReferralCodeInfo memory)
    {
        return _referralCodes[referralCode];
    }

    /**
     * @dev Returns ETH/USD price
     */
    function getEtherPrice()
        external
        view
        returns (int)
    {
        (, int price,,,) = _priceFeed.latestRoundData();

        return price;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"priceFeed","type":"address"},{"internalType":"address","name":"adminWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"AdminWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockReleaseTime","type":"uint256"}],"name":"LockInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockPercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockReleaseTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDeposit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"PhaseCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"PhaseTimeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"PriceFeedUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDeposit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pricePerToken","type":"uint256"}],"name":"SaleInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethDeposited","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethRefunded","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenSold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenLocked","type":"uint256"},{"indexed":false,"internalType":"int256","name":"ethPrice","type":"int256"}],"name":"Swapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"phaseId","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenWithdrawed","type":"event"},{"inputs":[{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"}],"name":"claimToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"}],"name":"createPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEtherPrice","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"getPhase","outputs":[{"components":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"},{"internalType":"uint128","name":"totalLocked","type":"uint128"},{"internalType":"uint128","name":"totalSold","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"}],"internalType":"struct TokenSwapV2.PhaseInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"},{"internalType":"uint256","name":"filter","type":"uint256"}],"name":"getPhases","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"components":[{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"},{"internalType":"uint128","name":"totalLocked","type":"uint128"},{"internalType":"uint128","name":"totalSold","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"}],"internalType":"struct TokenSwapV2.PhaseInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"referralCode","type":"string"}],"name":"getReferralCodeInfo","outputs":[{"components":[{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"uint128","name":"numSwap","type":"uint128"}],"internalType":"struct TokenSwapV2.ReferralCodeInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"phaseFrom","type":"uint256"},{"internalType":"uint256","name":"phaseTo","type":"uint256"}],"name":"getUserBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"string","name":"referralCode","type":"string"}],"name":"swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adminWallet","type":"address"}],"name":"updateAdminWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"lockPercentage","type":"uint128"},{"internalType":"uint128","name":"lockReleaseTime","type":"uint128"}],"name":"updateLockInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"startTime","type":"uint128"},{"internalType":"uint128","name":"endTime","type":"uint128"}],"name":"updatePhaseTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseId","type":"uint256"},{"internalType":"uint128","name":"minDeposit","type":"uint128"},{"internalType":"uint128","name":"totalSupply","type":"uint128"},{"internalType":"uint128","name":"pricePerToken","type":"uint128"}],"name":"updateSaleInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawAllFund","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162002786380380620027868339810160408190526200003491620000d5565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039485166001600160a01b0319918216179091556002805493851693821693909317909255600380549190931691161790556200011e565b80516001600160a01b0381168114620000d057600080fd5b919050565b600080600060608486031215620000ea578283fd5b620000f584620000b8565b92506200010560208501620000b8565b91506200011560408501620000b8565b90509250925092565b612658806200012e6000396000f3fe6080604052600436106101095760003560e01c80637cc1f8671161009557806395877f781161006457806395877f7814610331578063ca7c4dba14610351578063deb4a6d214610374578063e24a1aa014610387578063f2fde38b146103a757610109565b80637cc1f867146102815780637f63ab94146102c957806384204ea4146102e95780638da5cb5b1461030957610109565b8063351179b5116100dc578063351179b5146101c9578063593f4242146101fe5780635eec08701461022c5780636af8711b1461024c578063715018a61461026c57610109565b80630faa45611461010e5780631202022514610130578063140361c61461017c57806316ef376b1461019c575b600080fd5b34801561011a57600080fd5b5061012e61012936600461218f565b6103c7565b005b34801561013c57600080fd5b5061015061014b36600461205a565b61057a565b6040805182516001600160801b0390811682526020938401511692810192909252015b60405180910390f35b34801561018857600080fd5b5061012e610197366004612095565b6105da565b3480156101a857600080fd5b506101bc6101b736600461211a565b610847565b60405161017391906124de565b3480156101d557600080fd5b506101e96101e4366004612008565b6108e3565b60408051928352602083019190915201610173565b34801561020a57600080fd5b5061021e610219366004612237565b610985565b6040516101739291906123ad565b34801561023857600080fd5b5061012e610247366004611fe7565b610d56565b34801561025857600080fd5b5061012e61026736600461218f565b610e2b565b34801561027857600080fd5b5061012e610f7b565b34801561028d57600080fd5b50610296610fef565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610173565b3480156102d557600080fd5b5061012e6102e4366004612216565b611094565b3480156102f557600080fd5b5061012e61030436600461211a565b6112ea565b34801561031557600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561033d57600080fd5b5061012e61034c366004611fe7565b61141d565b34801561035d57600080fd5b506103666114eb565b604051908152602001610173565b61012e61038236600461214a565b61157f565b34801561039357600080fd5b5061012e6103a23660046121ca565b611c10565b3480156103b357600080fd5b5061012e6103c2366004611fe7565b611de2565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f190612432565b60405180910390fd5b60008381526006602052604090206004015483906001600160801b03166104335760405162461bcd60e51b81526004016103f190612467565b60008481526006602052604090206001600160801b0384161561046e576002810180546001600160801b0319166001600160801b0386161790555b6001600160801b0383161561049a576002810180546001600160801b03808616600160801b0291161790555b6001600160801b03841615806104b8575042846001600160801b0316115b80156104d9575060028101546001600160801b03600160801b820481169116105b6105255760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b604080518681526001600160801b0380871660208301528516918101919091527f494c3ab2d43cf7ce6bb919f2625cdb4168ddaa686dd2daaad1c48705eee1de81906060015b60405180910390a15050505050565b604080518082019091526000808252602082015260048260405161059e9190612374565b90815260408051918290036020908101832083830190925290546001600160801b038082168452600160801b909104169082015290505b919050565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016103f190612432565b612710876001600160801b0316111561062f5760405162461bcd60e51b81526004016103f19061249c565b6000856001600160801b031611801561065157506000846001600160801b0316115b801561066657506000836001600160801b0316115b6106c75760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e5377617056323a2076616c7565206d75737420626520677265617460448201526b6572207468616e207a65726f60a01b60648201526084016103f1565b42826001600160801b03161180156106f05750806001600160801b0316826001600160801b0316105b61073c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b600060056000815461074d906125db565b9182905550600081815260066020526040908190206001600160801b038a8116600160801b908102828e1617835588821681028b831617600184015586821602878216176002830155600482018054918a166001600160801b0319929092169190911790559051919250907fef75f7982151d6665ab6b11df67c019ab8bd873d52ebba636f127b80ac5a2ee8906108349084908c908c908c908c908c908c908c909788526001600160801b039687166020890152948616604088015292851660608701529084166080860152831660a0850152821660c08401521660e08201526101000190565b60405180910390a1505050505050505050565b61084f611ecc565b5060009081526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082015290565b600080428180865b8681116109775760008181526008602090815260408083206001600160a01b038d168452909152902054806109205750610965565b600082815260066020526040902054600160801b90046001600160801b031685106109565761094f818561251e565b9350610963565b610960818461251e565b92505b505b8061096f816125db565b9150506108eb565b509097909650945050505050565b606080600080610995878761259d565b6109a090600161251e565b90504260008267ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b50905060008367ffffffffffffffff811115610a2157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a5a57816020015b610a47611ecc565b815260200190600190039081610a3f5790505b509050895b898111610bc45760008181526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082018190521580610b1c5750896001148015610b1c57508060a001516001600160801b03168510155b80610b3e5750896002148015610b3e57508060a001516001600160801b031685105b15610b495750610bb2565b81848881518110610b6a57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505080838881518110610b9757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508680610bad906125db565b975050505b80610bbc816125db565b915050610a5f565b5060008567ffffffffffffffff811115610bee57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c17578160200160208202803683370190505b50905060008667ffffffffffffffff811115610c4357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7c57816020015b610c69611ecc565b815260200190600190039081610c615790505b50905060005b87811015610d4457848181518110610caa57634e487b7160e01b600052603260045260246000fd5b6020026020010151838281518110610cd257634e487b7160e01b600052603260045260246000fd5b602002602001018181525050838181518110610cfe57634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610d2657634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610d3c906125db565b915050610c82565b50909b909a5098505050505050505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116610dd65760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b906020015b60405180910390a150565b6000546001600160a01b03163314610e555760405162461bcd60e51b81526004016103f190612432565b60008381526006602052604090206004015483906001600160801b0316610e8e5760405162461bcd60e51b81526004016103f190612467565b612710836001600160801b03161115610eb95760405162461bcd60e51b81526004016103f19061249c565b60008481526006602052604090206003810154600160801b90046001600160801b031615610f255760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b6001600160801b03838116600160801b810291861691821783556040805188815260208101939093528201527fae3718e3f6f7f05f677d2728a0fd2f88be9c1d284631ee2ae3bf1b553f2090e09060600161056b565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016103f190612432565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001546040516370a0823160e01b815230600482015260009283928392839283926001600160a01b039182169291169081906370a082319060240160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612132565b600554600754945094509450945094509091929394565b33426000845b8481116111de5760008181526008602090815260408083206001600160a01b0388168452909152902054806110cf57506111cc565b600082815260066020526040902054600160801b90046001600160801b031684106111ca576110fe818461251e565b60008381526006602052604081206003018054929550839290919061112d9084906001600160801b0316612575565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a82868360405161119e939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a160008281526008602090815260408083206001600160a01b03891684529091528120555b505b806111d6816125db565b91505061109a565b50600081116112455760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e5377617056323a20616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b60648201526084016103f1565b8060076000828254611257919061259d565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156112aa57600080fd5b505af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e2919061203a565b505050505050565b6000546001600160a01b031633146113145760405162461bcd60e51b81526004016103f190612432565b600081116113645760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e5377617056323a20616d6f756e7420697320696e76616c6964000060448201526064016103f1565b60015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec919061203a565b506040518181527fc033002f8a408f3cf1d6d61fc9ce9b4940481aecb1a2c853ec4ff9d6bb55656890602001610e20565b6000546001600160a01b031633146114475760405162461bcd60e51b81526004016103f190612432565b6001600160a01b03811661149d5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5b20b8497e4f3e2435ef9c20e2e26b47497ee13745ce1c681ad6640653119e690602001610e20565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561153c57600080fd5b505afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190612262565b509194505050505090565b600082815260066020526040902060028101546001600160801b031642108015906115bd57506002810154600160801b90046001600160801b031642105b6116135760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a206e6f7420696e207377617070696e672074696d6044820152606560f81b60648201526084016103f1565b60018101546001600160801b03163410156116815760405162461bcd60e51b815260206004820152602860248201527f546f6b656e5377617056323a206465706f73697420616d6f756e742069736e276044820152670e840cadcdeeaced60c31b60648201526084016103f1565b600381015460048201546000916116ab916001600160801b03600160801b90920482169116612575565b6001600160801b03169050600081116117155760405162461bcd60e51b815260206004820152602660248201527f546f6b656e5377617056323a20746f74616c20737570706c792069736e2774206044820152650cadcdeeaced60d31b60648201526084016103f1565b60025460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a0929190829003018186803b15801561175a57600080fd5b505afa15801561176e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117929190612262565b505050600185015490925060009150600160801b90046001600160801b03166117bb8334612556565b6117c59190612536565b905060008382111561180c5760018501548390600160801b90046001600160801b03166117f2868561259d565b6117fc9190612556565b6118069190612536565b90508391505b6007546001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a9190612132565b611894919061259d565b8211156118ed5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a2062616c616e63652069736e277420656e6f75676044820152600d60fb1b60648201526084016103f1565b801561192257604051339082156108fc029083906000818181858888f19350505050158015611920573d6000803e3d6000fd5b505b6003546001600160a01b03166108fc61193b833461259d565b6040518115909202916000818181858888f19350505050158015611963573d6000803e3d6000fd5b50845460009061271090611980906001600160801b031685612556565b61198a9190612536565b6001549091506001600160a01b031663a9059cbb336119a9848761259d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119ef57600080fd5b505af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a27919061203a565b508015611ab8578060076000828254611a40919061251e565b9091555050600088815260086020908152604080832033845290915281208054839290611a6e90849061251e565b9091555050600386018054829190600090611a939084906001600160801b03166124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b828660030160108282829054906101000a90046001600160801b0316611ade91906124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000600488604051611b149190612374565b9081526040519081900360200190209050611b2f833461259d565b81548290600090611b4a9084906001600160801b03166124f3565b82546101009290920a6001600160801b038181021990931691831602179091558254600160801b9004169050816010611b82836125b4565b91906101000a8154816001600160801b0302191690836001600160801b03160217905550507f9ec75bd71d378011edf2a1c3c8649ed5b8ac31a866e81f960d79882f2b6fa88b89611bd03390565b604080519283526001600160a01b0390911660208301523490820152606081018590526080810186905260a0810184905260c0810187905260e001610834565b6000546001600160a01b03163314611c3a5760405162461bcd60e51b81526004016103f190612432565b60008481526006602052604090206004015484906001600160801b0316611c735760405162461bcd60e51b81526004016103f190612467565b60008581526006602052604090206001600160801b03851615611cae576001810180546001600160801b0319166001600160801b0387161790555b6001600160801b03841615611cdb576004810180546001600160801b0319166001600160801b0386161790555b6001600160801b03831615611d07576001810180546001600160801b03808616600160801b0291161790555b6001600160801b038416151580611d2657506001600160801b03831615155b15611d89576003810154600160801b90046001600160801b031615611d895760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b604080518781526001600160801b038781166020830152868116828401528516606082015290517f6a2093120cdb90f6077cd2f94f47c8d723862b09502f5b39593bc56b073809929181900360800190a1505050505050565b6000546001600160a01b03163314611e0c5760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116611e715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b80356001600160a01b03811681146105d557600080fd5b600082601f830112611f3f578081fd5b813567ffffffffffffffff80821115611f5a57611f5a61260c565b604051601f8301601f19908116603f01168101908282118183101715611f8257611f8261260c565b81604052838152866020858801011115611f9a578485fd5b8360208701602083013792830160200193909352509392505050565b80356001600160801b03811681146105d557600080fd5b805169ffffffffffffffffffff811681146105d557600080fd5b600060208284031215611ff8578081fd5b61200182611f18565b9392505050565b60008060006060848603121561201c578182fd5b61202584611f18565b95602085013595506040909401359392505050565b60006020828403121561204b578081fd5b81518015158114612001578182fd5b60006020828403121561206b578081fd5b813567ffffffffffffffff811115612081578182fd5b61208d84828501611f2f565b949350505050565b600080600080600080600060e0888a0312156120af578283fd5b6120b888611fb6565b96506120c660208901611fb6565b95506120d460408901611fb6565b94506120e260608901611fb6565b93506120f060808901611fb6565b92506120fe60a08901611fb6565b915061210c60c08901611fb6565b905092959891949750929550565b60006020828403121561212b578081fd5b5035919050565b600060208284031215612143578081fd5b5051919050565b6000806040838503121561215c578182fd5b82359150602083013567ffffffffffffffff811115612179578182fd5b61218585828601611f2f565b9150509250929050565b6000806000606084860312156121a3578283fd5b833592506121b360208501611fb6565b91506121c160408501611fb6565b90509250925092565b600080600080608085870312156121df578384fd5b843593506121ef60208601611fb6565b92506121fd60408601611fb6565b915061220b60608601611fb6565b905092959194509250565b60008060408385031215612228578182fd5b50508035926020909101359150565b60008060006060848603121561224b578283fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215612279578283fd5b61228286611fcd565b94506020860151935060408601519250606086015191506122a560808701611fcd565b90509295509295909350565b6001600160801b038082511683528060208301511660208401528060408301511660408401525060608101516122f260608401826001600160801b03169052565b50608081015161230d60808401826001600160801b03169052565b5060a081015161232860a08401826001600160801b03169052565b5060c081015161234360c08401826001600160801b03169052565b5060e081015161235e60e08401826001600160801b03169052565b50610100908101516001600160801b0316910152565b60008251815b81811015612394576020818601810151858301520161237a565b818111156123a25782828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b828110156123e6578151845292840192908401906001016123ca565b50505083810382850152845180825285830191830190845b81811015612425576124118385516122b1565b9284019261012092909201916001016123fe565b5090979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f546f6b656e5377617056323a20706861736520646f65736e2774206578697374604082015260600190565b60208082526022908201527f546f6b656e5377617056323a2070657263656e7461676520697320696e76616c6040820152611a5960f21b606082015260800190565b61012081016124ed82846122b1565b92915050565b60006001600160801b03808316818516808303821115612515576125156125f6565b01949350505050565b60008219821115612531576125316125f6565b500190565b60008261255157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612570576125706125f6565b500290565b60006001600160801b0383811690831681811015612595576125956125f6565b039392505050565b6000828210156125af576125af6125f6565b500390565b60006001600160801b03808316818114156125d1576125d16125f6565b6001019392505050565b60006000198214156125ef576125ef6125f6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f64736f6c63430008030033000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf

Deployed Bytecode

0x6080604052600436106101095760003560e01c80637cc1f8671161009557806395877f781161006457806395877f7814610331578063ca7c4dba14610351578063deb4a6d214610374578063e24a1aa014610387578063f2fde38b146103a757610109565b80637cc1f867146102815780637f63ab94146102c957806384204ea4146102e95780638da5cb5b1461030957610109565b8063351179b5116100dc578063351179b5146101c9578063593f4242146101fe5780635eec08701461022c5780636af8711b1461024c578063715018a61461026c57610109565b80630faa45611461010e5780631202022514610130578063140361c61461017c57806316ef376b1461019c575b600080fd5b34801561011a57600080fd5b5061012e61012936600461218f565b6103c7565b005b34801561013c57600080fd5b5061015061014b36600461205a565b61057a565b6040805182516001600160801b0390811682526020938401511692810192909252015b60405180910390f35b34801561018857600080fd5b5061012e610197366004612095565b6105da565b3480156101a857600080fd5b506101bc6101b736600461211a565b610847565b60405161017391906124de565b3480156101d557600080fd5b506101e96101e4366004612008565b6108e3565b60408051928352602083019190915201610173565b34801561020a57600080fd5b5061021e610219366004612237565b610985565b6040516101739291906123ad565b34801561023857600080fd5b5061012e610247366004611fe7565b610d56565b34801561025857600080fd5b5061012e61026736600461218f565b610e2b565b34801561027857600080fd5b5061012e610f7b565b34801561028d57600080fd5b50610296610fef565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a001610173565b3480156102d557600080fd5b5061012e6102e4366004612216565b611094565b3480156102f557600080fd5b5061012e61030436600461211a565b6112ea565b34801561031557600080fd5b506000546040516001600160a01b039091168152602001610173565b34801561033d57600080fd5b5061012e61034c366004611fe7565b61141d565b34801561035d57600080fd5b506103666114eb565b604051908152602001610173565b61012e61038236600461214a565b61157f565b34801561039357600080fd5b5061012e6103a23660046121ca565b611c10565b3480156103b357600080fd5b5061012e6103c2366004611fe7565b611de2565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f190612432565b60405180910390fd5b60008381526006602052604090206004015483906001600160801b03166104335760405162461bcd60e51b81526004016103f190612467565b60008481526006602052604090206001600160801b0384161561046e576002810180546001600160801b0319166001600160801b0386161790555b6001600160801b0383161561049a576002810180546001600160801b03808616600160801b0291161790555b6001600160801b03841615806104b8575042846001600160801b0316115b80156104d9575060028101546001600160801b03600160801b820481169116105b6105255760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b604080518681526001600160801b0380871660208301528516918101919091527f494c3ab2d43cf7ce6bb919f2625cdb4168ddaa686dd2daaad1c48705eee1de81906060015b60405180910390a15050505050565b604080518082019091526000808252602082015260048260405161059e9190612374565b90815260408051918290036020908101832083830190925290546001600160801b038082168452600160801b909104169082015290505b919050565b6000546001600160a01b031633146106045760405162461bcd60e51b81526004016103f190612432565b612710876001600160801b0316111561062f5760405162461bcd60e51b81526004016103f19061249c565b6000856001600160801b031611801561065157506000846001600160801b0316115b801561066657506000836001600160801b0316115b6106c75760405162461bcd60e51b815260206004820152602c60248201527f546f6b656e5377617056323a2076616c7565206d75737420626520677265617460448201526b6572207468616e207a65726f60a01b60648201526084016103f1565b42826001600160801b03161180156106f05750806001600160801b0316826001600160801b0316105b61073c5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e5377617056323a2074696d6520697320696e76616c69640000000060448201526064016103f1565b600060056000815461074d906125db565b9182905550600081815260066020526040908190206001600160801b038a8116600160801b908102828e1617835588821681028b831617600184015586821602878216176002830155600482018054918a166001600160801b0319929092169190911790559051919250907fef75f7982151d6665ab6b11df67c019ab8bd873d52ebba636f127b80ac5a2ee8906108349084908c908c908c908c908c908c908c909788526001600160801b039687166020890152948616604088015292851660608701529084166080860152831660a0850152821660c08401521660e08201526101000190565b60405180910390a1505050505050505050565b61084f611ecc565b5060009081526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082015290565b600080428180865b8681116109775760008181526008602090815260408083206001600160a01b038d168452909152902054806109205750610965565b600082815260066020526040902054600160801b90046001600160801b031685106109565761094f818561251e565b9350610963565b610960818461251e565b92505b505b8061096f816125db565b9150506108eb565b509097909650945050505050565b606080600080610995878761259d565b6109a090600161251e565b90504260008267ffffffffffffffff8111156109cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109f5578160200160208202803683370190505b50905060008367ffffffffffffffff811115610a2157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a5a57816020015b610a47611ecc565b815260200190600190039081610a3f5790505b509050895b898111610bc45760008181526006602090815260409182902082516101208101845281546001600160801b038082168352600160801b91829004811694830194909452600183015480851695830195909552938490048316606082015260028201548084166080830152849004831660a0820152600382015480841660c083015293909304821660e0840152600401541661010082018190521580610b1c5750896001148015610b1c57508060a001516001600160801b03168510155b80610b3e5750896002148015610b3e57508060a001516001600160801b031685105b15610b495750610bb2565b81848881518110610b6a57634e487b7160e01b600052603260045260246000fd5b60200260200101818152505080838881518110610b9757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508680610bad906125db565b975050505b80610bbc816125db565b915050610a5f565b5060008567ffffffffffffffff811115610bee57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c17578160200160208202803683370190505b50905060008667ffffffffffffffff811115610c4357634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c7c57816020015b610c69611ecc565b815260200190600190039081610c615790505b50905060005b87811015610d4457848181518110610caa57634e487b7160e01b600052603260045260246000fd5b6020026020010151838281518110610cd257634e487b7160e01b600052603260045260246000fd5b602002602001018181525050838181518110610cfe57634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610d2657634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610d3c906125db565b915050610c82565b50909b909a5098505050505050505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116610dd65760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b906020015b60405180910390a150565b6000546001600160a01b03163314610e555760405162461bcd60e51b81526004016103f190612432565b60008381526006602052604090206004015483906001600160801b0316610e8e5760405162461bcd60e51b81526004016103f190612467565b612710836001600160801b03161115610eb95760405162461bcd60e51b81526004016103f19061249c565b60008481526006602052604090206003810154600160801b90046001600160801b031615610f255760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b6001600160801b03838116600160801b810291861691821783556040805188815260208101939093528201527fae3718e3f6f7f05f677d2728a0fd2f88be9c1d284631ee2ae3bf1b553f2090e09060600161056b565b6000546001600160a01b03163314610fa55760405162461bcd60e51b81526004016103f190612432565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001546040516370a0823160e01b815230600482015260009283928392839283926001600160a01b039182169291169081906370a082319060240160206040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612132565b600554600754945094509450945094509091929394565b33426000845b8481116111de5760008181526008602090815260408083206001600160a01b0388168452909152902054806110cf57506111cc565b600082815260066020526040902054600160801b90046001600160801b031684106111ca576110fe818461251e565b60008381526006602052604081206003018054929550839290919061112d9084906001600160801b0316612575565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f7ebec69a24f70f6adc732c5d495ea40faf1248f959f11feafe0f9bbdc4e07b5a82868360405161119e939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a160008281526008602090815260408083206001600160a01b03891684529091528120555b505b806111d6816125db565b91505061109a565b50600081116112455760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e5377617056323a20616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b60648201526084016103f1565b8060076000828254611257919061259d565b909155505060015460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b1580156112aa57600080fd5b505af11580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e2919061203a565b505050505050565b6000546001600160a01b031633146113145760405162461bcd60e51b81526004016103f190612432565b600081116113645760405162461bcd60e51b815260206004820152601e60248201527f546f6b656e5377617056323a20616d6f756e7420697320696e76616c6964000060448201526064016103f1565b60015460035460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b1580156113b457600080fd5b505af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec919061203a565b506040518181527fc033002f8a408f3cf1d6d61fc9ce9b4940481aecb1a2c853ec4ff9d6bb55656890602001610e20565b6000546001600160a01b031633146114475760405162461bcd60e51b81526004016103f190612432565b6001600160a01b03811661149d5760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e5377617056323a206164647265737320697320696e76616c69640060448201526064016103f1565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5b20b8497e4f3e2435ef9c20e2e26b47497ee13745ce1c681ad6640653119e690602001610e20565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561153c57600080fd5b505afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190612262565b509194505050505090565b600082815260066020526040902060028101546001600160801b031642108015906115bd57506002810154600160801b90046001600160801b031642105b6116135760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a206e6f7420696e207377617070696e672074696d6044820152606560f81b60648201526084016103f1565b60018101546001600160801b03163410156116815760405162461bcd60e51b815260206004820152602860248201527f546f6b656e5377617056323a206465706f73697420616d6f756e742069736e276044820152670e840cadcdeeaced60c31b60648201526084016103f1565b600381015460048201546000916116ab916001600160801b03600160801b90920482169116612575565b6001600160801b03169050600081116117155760405162461bcd60e51b815260206004820152602660248201527f546f6b656e5377617056323a20746f74616c20737570706c792069736e2774206044820152650cadcdeeaced60d31b60648201526084016103f1565b60025460408051633fabe5a360e21b815290516000926001600160a01b03169163feaf968c9160048083019260a0929190829003018186803b15801561175a57600080fd5b505afa15801561176e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117929190612262565b505050600185015490925060009150600160801b90046001600160801b03166117bb8334612556565b6117c59190612536565b905060008382111561180c5760018501548390600160801b90046001600160801b03166117f2868561259d565b6117fc9190612556565b6118069190612536565b90508391505b6007546001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a9190612132565b611894919061259d565b8211156118ed5760405162461bcd60e51b815260206004820152602160248201527f546f6b656e5377617056323a2062616c616e63652069736e277420656e6f75676044820152600d60fb1b60648201526084016103f1565b801561192257604051339082156108fc029083906000818181858888f19350505050158015611920573d6000803e3d6000fd5b505b6003546001600160a01b03166108fc61193b833461259d565b6040518115909202916000818181858888f19350505050158015611963573d6000803e3d6000fd5b50845460009061271090611980906001600160801b031685612556565b61198a9190612536565b6001549091506001600160a01b031663a9059cbb336119a9848761259d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156119ef57600080fd5b505af1158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a27919061203a565b508015611ab8578060076000828254611a40919061251e565b9091555050600088815260086020908152604080832033845290915281208054839290611a6e90849061251e565b9091555050600386018054829190600090611a939084906001600160801b03166124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b828660030160108282829054906101000a90046001600160801b0316611ade91906124f3565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000600488604051611b149190612374565b9081526040519081900360200190209050611b2f833461259d565b81548290600090611b4a9084906001600160801b03166124f3565b82546101009290920a6001600160801b038181021990931691831602179091558254600160801b9004169050816010611b82836125b4565b91906101000a8154816001600160801b0302191690836001600160801b03160217905550507f9ec75bd71d378011edf2a1c3c8649ed5b8ac31a866e81f960d79882f2b6fa88b89611bd03390565b604080519283526001600160a01b0390911660208301523490820152606081018590526080810186905260a0810184905260c0810187905260e001610834565b6000546001600160a01b03163314611c3a5760405162461bcd60e51b81526004016103f190612432565b60008481526006602052604090206004015484906001600160801b0316611c735760405162461bcd60e51b81526004016103f190612467565b60008581526006602052604090206001600160801b03851615611cae576001810180546001600160801b0319166001600160801b0387161790555b6001600160801b03841615611cdb576004810180546001600160801b0319166001600160801b0386161790555b6001600160801b03831615611d07576001810180546001600160801b03808616600160801b0291161790555b6001600160801b038416151580611d2657506001600160801b03831615155b15611d89576003810154600160801b90046001600160801b031615611d895760405162461bcd60e51b8152602060048201526019602482015278546f6b656e5377617056323a2063616e27742075706461746560381b60448201526064016103f1565b604080518781526001600160801b038781166020830152868116828401528516606082015290517f6a2093120cdb90f6077cd2f94f47c8d723862b09502f5b39593bc56b073809929181900360800190a1505050505050565b6000546001600160a01b03163314611e0c5760405162461bcd60e51b81526004016103f190612432565b6001600160a01b038116611e715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915290565b80356001600160a01b03811681146105d557600080fd5b600082601f830112611f3f578081fd5b813567ffffffffffffffff80821115611f5a57611f5a61260c565b604051601f8301601f19908116603f01168101908282118183101715611f8257611f8261260c565b81604052838152866020858801011115611f9a578485fd5b8360208701602083013792830160200193909352509392505050565b80356001600160801b03811681146105d557600080fd5b805169ffffffffffffffffffff811681146105d557600080fd5b600060208284031215611ff8578081fd5b61200182611f18565b9392505050565b60008060006060848603121561201c578182fd5b61202584611f18565b95602085013595506040909401359392505050565b60006020828403121561204b578081fd5b81518015158114612001578182fd5b60006020828403121561206b578081fd5b813567ffffffffffffffff811115612081578182fd5b61208d84828501611f2f565b949350505050565b600080600080600080600060e0888a0312156120af578283fd5b6120b888611fb6565b96506120c660208901611fb6565b95506120d460408901611fb6565b94506120e260608901611fb6565b93506120f060808901611fb6565b92506120fe60a08901611fb6565b915061210c60c08901611fb6565b905092959891949750929550565b60006020828403121561212b578081fd5b5035919050565b600060208284031215612143578081fd5b5051919050565b6000806040838503121561215c578182fd5b82359150602083013567ffffffffffffffff811115612179578182fd5b61218585828601611f2f565b9150509250929050565b6000806000606084860312156121a3578283fd5b833592506121b360208501611fb6565b91506121c160408501611fb6565b90509250925092565b600080600080608085870312156121df578384fd5b843593506121ef60208601611fb6565b92506121fd60408601611fb6565b915061220b60608601611fb6565b905092959194509250565b60008060408385031215612228578182fd5b50508035926020909101359150565b60008060006060848603121561224b578283fd5b505081359360208301359350604090920135919050565b600080600080600060a08688031215612279578283fd5b61228286611fcd565b94506020860151935060408601519250606086015191506122a560808701611fcd565b90509295509295909350565b6001600160801b038082511683528060208301511660208401528060408301511660408401525060608101516122f260608401826001600160801b03169052565b50608081015161230d60808401826001600160801b03169052565b5060a081015161232860a08401826001600160801b03169052565b5060c081015161234360c08401826001600160801b03169052565b5060e081015161235e60e08401826001600160801b03169052565b50610100908101516001600160801b0316910152565b60008251815b81811015612394576020818601810151858301520161237a565b818111156123a25782828501525b509190910192915050565b604080825283519082018190526000906020906060840190828701845b828110156123e6578151845292840192908401906001016123ca565b50505083810382850152845180825285830191830190845b81811015612425576124118385516122b1565b9284019261012092909201916001016123fe565b5090979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f546f6b656e5377617056323a20706861736520646f65736e2774206578697374604082015260600190565b60208082526022908201527f546f6b656e5377617056323a2070657263656e7461676520697320696e76616c6040820152611a5960f21b606082015260800190565b61012081016124ed82846122b1565b92915050565b60006001600160801b03808316818516808303821115612515576125156125f6565b01949350505050565b60008219821115612531576125316125f6565b500190565b60008261255157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612570576125706125f6565b500290565b60006001600160801b0383811690831681811015612595576125956125f6565b039392505050565b6000828210156125af576125af6125f6565b500390565b60006001600160801b03808316818114156125d1576125d16125f6565b6001019392505050565b60006000198214156125ef576125ef6125f6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f64736f6c63430008030033

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

000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf

-----Decoded View---------------
Arg [0] : token (address): 0x692aCCdD8b86692427E0aa4752AE917Df01CC56F
Arg [1] : priceFeed (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : adminWallet (address): 0x930c2ef8a91e7c2d9703A14cFe612c8aF0f970BF

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000692accdd8b86692427e0aa4752ae917df01cc56f
Arg [1] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [2] : 000000000000000000000000930c2ef8a91e7c2d9703a14cfe612c8af0f970bf


Deployed Bytecode Sourcemap

7256:12959:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13846:575;;;;;;;;;;-1:-1:-1;13846:575:0;;;;;:::i;:::-;;:::i;:::-;;19782:191;;;;;;;;;;-1:-1:-1;19782:191:0;;;;;:::i;:::-;;:::i;:::-;;;;15731:13:1;;-1:-1:-1;;;;;15727:22:1;;;15709:41;;15810:4;15798:17;;;15792:24;15788:33;15766:20;;;15759:63;;;;15629:18;19782:191:0;;;;;;;;11298:1058;;;;;;;;;;-1:-1:-1;11298:1058:0;;;;;:::i;:::-;;:::i;14486:150::-;;;;;;;;;;-1:-1:-1;14486:150:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18062:687::-;;;;;;;;;;-1:-1:-1;18062:687:0;;;;;:::i;:::-;;:::i;:::-;;;;18846:25:1;;;18902:2;18887:18;;18880:34;;;;18819:18;18062:687:0;18801:119:1;14752:1090:0;;;;;;;;;;-1:-1:-1;14752:1090:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;10510:266::-;;;;;;;;;;-1:-1:-1;10510:266:0;;;;;:::i;:::-;;:::i;12420:565::-;;;;;;;;;;-1:-1:-1;12420:565:0;;;;;:::i;:::-;;:::i;2761:148::-;;;;;;;;;;;;;:::i;9749:287::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7871:15:1;;;7853:34;;7923:15;;;;7918:2;7903:18;;7896:43;7955:18;;;7948:34;;;;8013:2;7998:18;;7991:34;8056:3;8041:19;;8034:35;7802:3;7787:19;9749:287:0;7769:306:1;18836:873:0;;;;;;;;;;-1:-1:-1;18836:873:0;;;;;:::i;:::-;;:::i;10995:246::-;;;;;;;;;;-1:-1:-1;10995:246:0;;;;;:::i;:::-;;:::i;2110:87::-;;;;;;;;;;-1:-1:-1;2156:7:0;2183:6;2110:87;;-1:-1:-1;;;;;2183:6:0;;;7494:51:1;;7482:2;7467:18;2110:87:0;7449:102:1;10094:275:0;;;;;;;;;;-1:-1:-1;10094:275:0;;;;;:::i;:::-;;:::i;20034:176::-;;;;;;;;;;;;;:::i;:::-;;;9743:25:1;;;9731:2;9716:18;20034:176:0;9698:76:1;15900:2027:0;;;;;;:::i;:::-;;:::i;13049:739::-;;;;;;;;;;-1:-1:-1;13049:739:0;;;;;:::i;:::-;;:::i;3064:244::-;;;;;;;;;;-1:-1:-1;3064:244:0;;;;;:::i;:::-;;:::i;13846:575::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;;;;;;;;;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;13981:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;14006:23:::2;14032:16:::0;;;:7:::2;:16;::::0;;;;-1:-1:-1;;;;;14065:14:0;::::2;::::0;14061:74:::2;;14096:15;::::0;::::2;:27:::0;;-1:-1:-1;;;;;;14096:27:0::2;-1:-1:-1::0;;;;;14096:27:0;::::2;;::::0;;14061:74:::2;-1:-1:-1::0;;;;;14151:12:0;::::2;::::0;14147:68:::2;;14180:13;::::0;::::2;:23:::0;;-1:-1:-1;;;;;14180:23:0;;::::2;-1:-1:-1::0;;;14180:23:0::2;::::0;::::2;;::::0;;14147:68:::2;-1:-1:-1::0;;;;;14236:14:0;::::2;::::0;;:45:::2;;;14266:15;14254:9;-1:-1:-1::0;;;;;14254:27:0::2;;14236:45;14235:82;;;;-1:-1:-1::0;14304:13:0::2;::::0;::::2;::::0;-1:-1:-1;;;;;;;;14304:13:0;::::2;::::0;::::2;14286:15:::0;::::2;:31;14235:82;14227:123;;;::::0;-1:-1:-1;;;14227:123:0;;14265:2:1;14227:123:0::2;::::0;::::2;14247:21:1::0;14304:2;14284:18;;;14277:30;14343;14323:18;;;14316:58;14391:18;;14227:123:0::2;14237:178:1::0;14227:123:0::2;14368:45;::::0;;17203:25:1;;;-1:-1:-1;;;;;17317:15:1;;;17312:2;17297:18;;17290:43;17369:15;;17349:18;;;17342:43;;;;14368:45:0::2;::::0;17191:2:1;17176:18;14368:45:0::2;;;;;;;;9397:1;2401::::1;13846:575:::0;;;:::o;19782:191::-;-1:-1:-1;;;;;;;;;;;;;;;;;19937:14:0;19952:12;19937:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;19930:35;;;;;;;;-1:-1:-1;;;;;19930:35:0;;;;;-1:-1:-1;;;19930:35:0;;;;;;;;19937:28;-1:-1:-1;19782:191:0;;;;:::o;11298:1058::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;8186:5:::1;11529:14;-1:-1:-1::0;;;;;11529:37:0::1;;;11521:84;;;;-1:-1:-1::0;;;11521:84:0::1;;;;;;;:::i;:::-;11639:1;11626:10;-1:-1:-1::0;;;;;11626:14:0::1;;:33;;;;;11658:1;11644:11;-1:-1:-1::0;;;;;11644:15:0::1;;11626:33;:54;;;;;11679:1;11663:13;-1:-1:-1::0;;;;;11663:17:0::1;;11626:54;11618:111;;;::::0;-1:-1:-1;;;11618:111:0;;10341:2:1;11618:111:0::1;::::0;::::1;10323:21:1::0;10380:2;10360:18;;;10353:30;10419:34;10399:18;;;10392:62;-1:-1:-1;;;10470:18:1;;;10463:42;10522:19;;11618:111:0::1;10313:234:1::0;11618:111:0::1;11762:15;11750:9;-1:-1:-1::0;;;;;11750:27:0::1;;:50;;;;;11793:7;-1:-1:-1::0;;;;;11781:19:0::1;:9;-1:-1:-1::0;;;;;11781:19:0::1;;11750:50;11742:91;;;::::0;-1:-1:-1;;;11742:91:0;;14265:2:1;11742:91:0::1;::::0;::::1;14247:21:1::0;14304:2;14284:18;;;14277:30;14343;14323:18;;;14316:58;14391:18;;11742:91:0::1;14237:178:1::0;11742:91:0::1;11846:10;11861:12;;11859:14;;;;;:::i;:::-;::::0;;;;-1:-1:-1;11886:23:0::1;11912:11:::0;;;:7:::1;:11;::::0;;;;;;-1:-1:-1;;;;;11982:39:0;;::::1;-1:-1:-1::0;;;11982:39:0;;::::1;11934:37:::0;;::::1;11982:39;::::0;;12072:35;;::::1;::::0;::::1;12032:29:::0;;::::1;12072:35;11934:37:::0;12032:16;::::1;12072:35:::0;12156:23;;::::1;;12118:27:::0;;::::1;12156:23;12118:15;::::0;::::1;12156:23:::0;12190:17:::1;::::0;::::1;:31:::0;;;;::::1;-1:-1:-1::0;;;;;;12190:31:0;;;::::1;::::0;;;::::1;::::0;;12239:109;;11859:14;;-1:-1:-1;11912:11:0;12239:109:::1;::::0;::::1;::::0;11859:14;;11957;;12006:15;;12051:10;;12210:11;;12094:13;;12136:9;;12172:7;;18215:25:1;;;-1:-1:-1;;;;;18329:15:1;;;18324:2;18309:18;;18302:43;18381:15;;;18376:2;18361:18;;18354:43;18433:15;;;18428:2;18413:18;;18406:43;18486:15;;;18480:3;18465:19;;18458:44;18539:15;;18533:3;18518:19;;18511:44;18592:15;;18586:3;18571:19;;18564:44;18645:15;18639:3;18624:19;;18617:44;18202:3;18187:19;;18169:498;12239:109:0::1;;;;;;;;2401:1;;11298:1058:::0;;;;;;;:::o;14486:150::-;14571:16;;:::i;:::-;-1:-1:-1;14612:16:0;;;;:7;:16;;;;;;;;;14605:23;;;;;;;;;-1:-1:-1;;;;;14605:23:0;;;;;-1:-1:-1;;;14605:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14486:150::o;18062:687::-;18189:7;;18245:15;18189:7;;18346:9;18329:371;18362:7;18357:1;:12;18329:371;;18391:14;18408:16;;;:13;:16;;;;;;;;-1:-1:-1;;;;;18408:25:0;;;;;;;;;;18454:11;18450:60;;18486:8;;;18450:60;18530:10;;;;:7;:10;;;;;:26;-1:-1:-1;;;18530:26:0;;-1:-1:-1;;;;;18530:26:0;-1:-1:-1;;18526:163:0;;18592:17;18603:6;18592:17;;:::i;:::-;;;18526:163;;;18652:21;18667:6;18652:21;;:::i;:::-;;;18526:163;18329:371;;18371:3;;;;:::i;:::-;;;;18329:371;;;-1:-1:-1;18720:7:0;;;;-1:-1:-1;18062:687:0;-1:-1:-1;;;;;18062:687:0:o;14752:1090::-;14873:16;;14927:11;;14968:19;14978:9;14968:7;:19;:::i;:::-;:23;;14990:1;14968:23;:::i;:::-;14953:38;-1:-1:-1;15024:15:0;15002:19;14953:38;15078:19;;;;;;-1:-1:-1;;;15078:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15078:19:0;;15052:45;;15110:28;15157:4;15141:21;;;;;;-1:-1:-1;;;15141:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;15110:52:0;-1:-1:-1;15192:9:0;15175:382;15208:7;15203:1;:12;15175:382;;15237:22;15262:10;;;:7;:10;;;;;;;;;15237:35;;;;;;;;;-1:-1:-1;;;;;15237:35:0;;;;;-1:-1:-1;;;15237:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15293:22;;:71;;;15320:6;15330:1;15320:11;:43;;;;;15350:5;:13;;;-1:-1:-1;;;;;15335:28:0;:11;:28;;15320:43;15293:119;;;;15369:6;15379:1;15369:11;:42;;;;;15398:5;:13;;;-1:-1:-1;;;;;15384:27:0;:11;:27;15369:42;15289:168;;;15433:8;;;15289:168;15487:1;15473:6;15480:3;15473:11;;;;;;-1:-1:-1;;;15473:11:0;;;;;;;;;;;;;;:15;;;;;15520:5;15503:9;15513:3;15503:14;;;;;;-1:-1:-1;;;15503:14:0;;;;;;;;;;;;;;:22;;;;15540:5;;;;;:::i;:::-;;;;15175:382;;15217:3;;;;:::i;:::-;;;;15175:382;;;;15569:20;15606:3;15592:18;;;;;;-1:-1:-1;;;15592:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15592:18:0;;15569:41;;15623:25;15667:3;15651:20;;;;;;-1:-1:-1;;;15651:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;15623:48;;15689:9;15684:118;15708:3;15704:1;:7;15684:118;;;15742:6;15749:1;15742:9;;;;;;-1:-1:-1;;;15742:9:0;;;;;;;;;;;;;;;15733:3;15737:1;15733:6;;;;;;-1:-1:-1;;;15733:6:0;;;;;;;;;;;;;;:18;;;;;15778:9;15788:1;15778:12;;;;;;-1:-1:-1;;;15778:12:0;;;;;;;;;;;;;;;15766:6;15773:1;15766:9;;;;;;-1:-1:-1;;;15766:9:0;;;;;;;;;;;;;;:24;;;;15713:3;;;;;:::i;:::-;;;;15684:118;;;-1:-1:-1;15822:3:0;;;;-1:-1:-1;14752:1090:0;-1:-1:-1;;;;;;;;;14752:1090:0:o;10510:266::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10619:25:0;::::1;10611:69;;;::::0;-1:-1:-1;;;10611:69:0;;9981:2:1;10611:69:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:33;10039:18;;;10032:61;10110:18;;10611:69:0::1;9953:181:1::0;10611:69:0::1;10693:12;:26:::0;;-1:-1:-1;;;;;;10693:26:0::1;-1:-1:-1::0;;;;;10693:26:0;::::1;::::0;;::::1;::::0;;;10737:31:::1;::::0;7494:51:1;;;10737:31:0::1;::::0;7482:2:1;7467:18;10737:31:0::1;;;;;;;;10510:266:::0;:::o;12420:565::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;12567:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;8186:5:::2;12600:14;-1:-1:-1::0;;;;;12600:37:0::2;;;12592:84;;;;-1:-1:-1::0;;;12592:84:0::2;;;;;;;:::i;:::-;12689:23;12715:16:::0;;;:7:::2;:16;::::0;;;;12752:15:::2;::::0;::::2;::::0;-1:-1:-1;;;12752:15:0;::::2;-1:-1:-1::0;;;;;12752:15:0::2;:20:::0;12744:58:::2;;;::::0;-1:-1:-1;;;12744:58:0;;14622:2:1;12744:58:0::2;::::0;::::2;14604:21:1::0;14661:2;14641:18;;;14634:30;-1:-1:-1;;;14680:18:1;;;14673:55;14745:18;;12744:58:0::2;14594:175:1::0;12744:58:0::2;-1:-1:-1::0;;;;;12863:39:0;;::::2;-1:-1:-1::0;;;12863:39:0;::::2;12815:37:::0;;::::2;12863:39:::0;;::::2;::::0;;12920:57:::2;::::0;;17203:25:1;;;17312:2;17297:18;;17290:43;;;;17349:18;;17342:43;12920:57:0::2;::::0;17191:2:1;17176:18;12920:57:0::2;17158:233:1::0;2761:148:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;2868:1:::1;2852:6:::0;;2831:40:::1;::::0;-1:-1:-1;;;;;2852:6:0;;::::1;::::0;2831:40:::1;::::0;2868:1;;2831:40:::1;2899:1;2882:19:::0;;-1:-1:-1;;;;;;2882:19:0::1;::::0;;2761:148::o;9749:287::-;9909:12;;;9931:6;9953:31;;-1:-1:-1;;;9953:31:0;;9978:4;9953:31;;;7494:51:1;9826:7:0;;;;;;;;;;-1:-1:-1;;;;;9909:12:0;;;;9931:6;;;;;9953:16;;7467:18:1;;9953:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9986:12;;10000:17;;9887:141;;;;;;;;;;9749:287;;;;;:::o;18836:873::-;748:10;18991:15;18926:17;19062:9;19045:486;19078:7;19073:1;:12;19045:486;;19107:14;19124:16;;;:13;:16;;;;;;;;-1:-1:-1;;;;;19124:27:0;;;;;;;;;;19172:11;19168:60;;19204:8;;;19168:60;19248:10;;;;:7;:10;;;;;:26;-1:-1:-1;;;19248:26:0;;-1:-1:-1;;;;;19248:26:0;-1:-1:-1;;19244:276:0;;19310:17;19321:6;19310:17;;:::i;:::-;19348:10;;;;:7;:10;;;;;:22;;:41;;19310:17;;-1:-1:-1;19382:6:0;;19348:22;;:10;:41;;19382:6;;-1:-1:-1;;;;;19348:41:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;19348:41:0;;;;;-1:-1:-1;;;;;19348:41:0;;;;;;19415:34;19428:1;19431:9;19442:6;19415:34;;;;;;;16217:25:1;;;-1:-1:-1;;;;;16278:32:1;;;;16273:2;16258:18;;16251:60;16342:2;16327:18;;16320:34;16205:2;16190:18;;16172:188;19415:34:0;;;;;;;;19477:16;;;;:13;:16;;;;;;;;-1:-1:-1;;;;;19477:27:0;;;;;;;;;19470:34;19244:276;19045:486;;19087:3;;;;:::i;:::-;;;;19045:486;;;;19561:1;19551:7;:11;19543:69;;;;-1:-1:-1;;;19543:69:0;;14976:2:1;19543:69:0;;;14958:21:1;15015:2;14995:18;;;14988:30;15054:34;15034:18;;;15027:62;-1:-1:-1;;;15105:18:1;;;15098:43;15158:19;;19543:69:0;14948:235:1;19543:69:0;19646:7;19625:17;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;19666:6:0;;:35;;-1:-1:-1;;;19666:35:0;;-1:-1:-1;;;;;8272:32:1;;;19666:35:0;;;8254:51:1;8321:18;;;8314:34;;;19666:6:0;;;;:15;;8227:18:1;;19666:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18836:873;;;;;:::o;10995:246::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;11106:1:::1;11097:6;:10;11089:53;;;::::0;-1:-1:-1;;;11089:53:0;;13906:2:1;11089:53:0::1;::::0;::::1;13888:21:1::0;13945:2;13925:18;;;13918:30;13984:32;13964:18;;;13957:60;14034:18;;11089:53:0::1;13878:180:1::0;11089:53:0::1;11155:6;::::0;11171:12:::1;::::0;11155:37:::1;::::0;-1:-1:-1;;;11155:37:0;;-1:-1:-1;;;;;11171:12:0;;::::1;11155:37;::::0;::::1;8254:51:1::0;8321:18;;;8314:34;;;11155:6:0;::::1;::::0;:15:::1;::::0;8227:18:1;;11155:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11210:23:0::1;::::0;9743:25:1;;;11210:23:0::1;::::0;9731:2:1;9716:18;11210:23:0::1;9698:76:1::0;10094:275:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10199:23:0;::::1;10191:67;;;::::0;-1:-1:-1;;;10191:67:0;;9981:2:1;10191:67:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:33;10039:18;;;10032:61;10110:18;;10191:67:0::1;9953:181:1::0;10191:67:0::1;10271:10;:45:::0;;-1:-1:-1;;;;;;10271:45:0::1;-1:-1:-1::0;;;;;10271:45:0;::::1;::::0;;::::1;::::0;;;10334:27:::1;::::0;7494:51:1;;;10334:27:0::1;::::0;7482:2:1;7467:18;10334:27:0::1;7449:102:1::0;20034:176:0;20109:3;20133:9;20149:10;;;;;;;;;-1:-1:-1;;;;;20149:10:0;-1:-1:-1;;;;;20149:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20130:47:0;;-1:-1:-1;;;;;20034:176:0;:::o;15900:2027::-;16010:23;16036:16;;;:7;:16;;;;;16092:15;;;;-1:-1:-1;;;;;16092:15:0;16073;:34;;;;:69;;-1:-1:-1;16129:13:0;;;;-1:-1:-1;;;16129:13:0;;-1:-1:-1;;;;;16129:13:0;16111:15;:31;16073:69;16065:115;;;;-1:-1:-1;;;16065:115:0;;11570:2:1;16065:115:0;;;11552:21:1;11609:2;11589:18;;;11582:30;11648:34;11628:18;;;11621:62;-1:-1:-1;;;11699:18:1;;;11692:31;11740:19;;16065:115:0;11542:223:1;16065:115:0;16214:16;;;;-1:-1:-1;;;;;16214:16:0;16201:9;:29;;16193:82;;;;-1:-1:-1;;;16193:82:0;;10754:2:1;16193:82:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:34;10812:18;;;10805:62;-1:-1:-1;;;10883:18:1;;;10876:38;10931:19;;16193:82:0;10726:230:1;16193:82:0;16325:15;;;;16305:17;;;;16288:14;;16305:35;;-1:-1:-1;;;;;;;;16325:15:0;;;;;;16305:17;:35;:::i;:::-;-1:-1:-1;;;;;16288:52:0;;;16370:1;16361:6;:10;16353:61;;;;-1:-1:-1;;;16353:61:0;;11972:2:1;16353:61:0;;;11954:21:1;12011:2;11991:18;;;11984:30;12050:34;12030:18;;;12023:62;-1:-1:-1;;;12101:18:1;;;12094:36;12147:19;;16353:61:0;11944:228:1;16353:61:0;16449:10;;:28;;;-1:-1:-1;;;16449:28:0;;;;16430:12;;-1:-1:-1;;;;;16449:10:0;;:26;;:28;;;;;;;;;;;;;;:10;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;16539:19:0;;;;16427:50;;-1:-1:-1;16490:14:0;;-1:-1:-1;;;;16539:19:0;;-1:-1:-1;;;;;16539:19:0;16507:29;16427:50;16507:9;:29;:::i;:::-;:51;;;;:::i;:::-;16490:68;;16571:11;16647:6;16638;:15;16634:146;;;16699:19;;;;16729:8;;-1:-1:-1;;;16699:19:0;;-1:-1:-1;;;;;16699:19:0;16680:15;16689:6;16680;:15;:::i;:::-;16679:39;;;;:::i;:::-;:59;;;;:::i;:::-;16670:68;;16762:6;16753:15;;16634:146;16845:17;;16811:6;;:31;;-1:-1:-1;;;16811:31:0;;16836:4;16811:31;;;7494:51:1;-1:-1:-1;;;;;16811:6:0;;;;:16;;7467:18:1;;16811:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;;;:::i;:::-;16800:6;:63;;16792:109;;;;-1:-1:-1;;;16792:109:0;;12740:2:1;16792:109:0;;;12722:21:1;12779:2;12759:18;;;12752:30;12818:34;12798:18;;;12791:62;-1:-1:-1;;;12869:18:1;;;12862:31;12910:19;;16792:109:0;12712:223:1;16792:109:0;16963:10;;16959:81;;16990:38;;748:10;;16990:38;;;;;17021:6;;16990:38;;;;17021:6;748:10;16990:38;;;;;;;;;;;;;;;;;;;;;16959:81;17104:12;;-1:-1:-1;;;;;17104:12:0;17096:50;17127:18;17139:6;17127:9;:18;:::i;:::-;17096:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17245:20:0;;17219:14;;8186:5;;17236:29;;-1:-1:-1;;;;;17245:20:0;17236:6;:29;:::i;:::-;:51;;;;:::i;:::-;17337:6;;17219:68;;-1:-1:-1;;;;;;17337:6:0;:15;748:10;17367:15;17376:6;17367;:15;:::i;:::-;17337:46;;-1:-1:-1;;;;;;17337:46:0;;;;;;;-1:-1:-1;;;;;8272:32:1;;;17337:46:0;;;8254:51:1;8321:18;;;8314:34;8227:18;;17337:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17400:10:0;;17396:186;;17448:6;17427:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;17471:22:0;;;;:13;:22;;;;;;;;748:10;17471:36;;;;;;;:46;;17511:6;;17471:22;:46;;17511:6;;17471:46;:::i;:::-;;;;-1:-1:-1;;17534:17:0;;;:36;;17563:6;;17534:17;;;:36;;17563:6;;-1:-1:-1;;;;;17534:36:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17534:36:0;;;;;-1:-1:-1;;;;;17534:36:0;;;;;;17396:186;17621:6;17594:5;:15;;;:34;;;;;;;;;;-1:-1:-1;;;;;17594:34:0;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17594:34:0;;;;;-1:-1:-1;;;;;17594:34:0;;;;;;17676:33;17712:14;17727:12;17712:28;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;17778:18:0;17790:6;17778:9;:18;:::i;:::-;17751:46;;:8;;:15;;:46;;;;-1:-1:-1;;;;;17751:46:0;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17751:46:0;;;;;;;;;;;;;;;17808:18;;-1:-1:-1;;;17808:18:0;;;;-1:-1:-1;17808:18:0;:16;:18;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17808:18:0;;;;;-1:-1:-1;;;;;17808:18:0;;;;;;;17844:75;17852:7;17861:12;748:10;668:98;;17861:12;17844:75;;;16678:25:1;;;-1:-1:-1;;;;;16739:32:1;;;16734:2;16719:18;;16712:60;17875:9:0;16788:18:1;;;16781:34;16846:2;16831:18;;16824:34;;;16889:3;16874:19;;16867:35;;;16759:3;16918:19;;16911:35;;;16977:3;16962:19;;16955:35;;;16665:3;16650:19;17844:75:0;16632:364:1;13049:739:0;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;9348:1:::1;9317:16:::0;;;:7:::1;:16;::::0;;;;:28:::1;;::::0;13211:7;;-1:-1:-1;;;;;9317:28:0::1;9309:77;;;;-1:-1:-1::0;;;9309:77:0::1;;;;;;;:::i;:::-;13236:23:::2;13262:16:::0;;;:7:::2;:16;::::0;;;;-1:-1:-1;;;;;13295:15:0;::::2;::::0;13291:77:::2;;13327:16;::::0;::::2;:29:::0;;-1:-1:-1;;;;;;13327:29:0::2;-1:-1:-1::0;;;;;13327:29:0;::::2;;::::0;;13291:77:::2;-1:-1:-1::0;;;;;13384:16:0;::::2;::::0;13380:80:::2;;13417:17;::::0;::::2;:31:::0;;-1:-1:-1;;;;;;13417:31:0::2;-1:-1:-1::0;;;;;13417:31:0;::::2;;::::0;;13380:80:::2;-1:-1:-1::0;;;;;13476:18:0;::::2;::::0;13472:86:::2;;13511:19;::::0;::::2;:35:::0;;-1:-1:-1;;;;;13511:35:0;;::::2;-1:-1:-1::0;;;13511:35:0::2;::::0;::::2;;::::0;;13472:86:::2;-1:-1:-1::0;;;;;13574:16:0;::::2;::::0;::::2;::::0;:38:::2;;-1:-1:-1::0;;;;;;13594:18:0;::::2;::::0;::::2;13574:38;13570:129;;;13637:15;::::0;::::2;::::0;-1:-1:-1;;;13637:15:0;::::2;-1:-1:-1::0;;;;;13637:15:0::2;:20:::0;13629:58:::2;;;::::0;-1:-1:-1;;;13629:58:0;;14622:2:1;13629:58:0::2;::::0;::::2;14604:21:1::0;14661:2;14641:18;;;14634:30;-1:-1:-1;;;14680:18:1;;;14673:55;14745:18;;13629:58:0::2;14594:175:1::0;13629:58:0::2;13716:64;::::0;;17627:25:1;;;-1:-1:-1;;;;;17741:15:1;;;17736:2;17721:18;;17714:43;17793:15;;;17773:18;;;17766:43;17845:15;;17840:2;17825:18;;17818:43;13716:64:0;;::::2;::::0;;;;17614:3:1;13716:64:0;;::::2;9397:1;2401::::1;13049:739:::0;;;;:::o;3064:244::-;2156:7;2183:6;-1:-1:-1;;;;;2183:6:0;748:10;2330:23;2322:68;;;;-1:-1:-1;;;2322:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3153:22:0;::::1;3145:73;;;::::0;-1:-1:-1;;;3145:73:0;;11163:2:1;3145:73:0::1;::::0;::::1;11145:21:1::0;11202:2;11182:18;;;11175:30;11241:34;11221:18;;;11214:62;-1:-1:-1;;;11292:18:1;;;11285:36;11338:19;;3145:73:0::1;11135:228:1::0;3145:73:0::1;3255:6;::::0;;3234:38:::1;::::0;-1:-1:-1;;;;;3234:38:0;;::::1;::::0;3255:6;::::1;::::0;3234:38:::1;::::0;::::1;3283:6;:17:::0;;-1:-1:-1;;;;;;3283:17:0::1;-1:-1:-1::0;;;;;3283:17:0;;;::::1;::::0;;;::::1;::::0;;3064:244::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:739;;288:3;281:4;273:6;269:17;265:27;255:2;;310:5;303;296:20;255:2;350:6;337:20;376:18;413:2;409;406:10;403:2;;;419:18;;:::i;:::-;494:2;488:9;462:2;548:13;;-1:-1:-1;;544:22:1;;;568:2;540:31;536:40;524:53;;;592:18;;;612:22;;;589:46;586:2;;;638:18;;:::i;:::-;678:10;674:2;667:22;713:2;705:6;698:18;759:3;752:4;747:2;739:6;735:15;731:26;728:35;725:2;;;780:5;773;766:20;725:2;848;841:4;833:6;829:17;822:4;814:6;810:17;797:54;871:15;;;888:4;867:26;860:41;;;;-1:-1:-1;875:6:1;245:686;-1:-1:-1;;;245:686:1:o;936:188::-;1004:20;;-1:-1:-1;;;;;1053:46:1;;1043:57;;1033:2;;1114:1;1111;1104:12;1129:179;1207:13;;1260:22;1249:34;;1239:45;;1229:2;;1298:1;1295;1288:12;1313:196;;1425:2;1413:9;1404:7;1400:23;1396:32;1393:2;;;1446:6;1438;1431:22;1393:2;1474:29;1493:9;1474:29;:::i;:::-;1464:39;1383:126;-1:-1:-1;;;1383:126:1:o;1514:332::-;;;;1660:2;1648:9;1639:7;1635:23;1631:32;1628:2;;;1681:6;1673;1666:22;1628:2;1709:29;1728:9;1709:29;:::i;:::-;1699:39;1785:2;1770:18;;1757:32;;-1:-1:-1;1836:2:1;1821:18;;;1808:32;;1618:228;-1:-1:-1;;;1618:228:1:o;1851:297::-;;1971:2;1959:9;1950:7;1946:23;1942:32;1939:2;;;1992:6;1984;1977:22;1939:2;2029:9;2023:16;2082:5;2075:13;2068:21;2061:5;2058:32;2048:2;;2109:6;2101;2094:22;2153:342;;2275:2;2263:9;2254:7;2250:23;2246:32;2243:2;;;2296:6;2288;2281:22;2243:2;2341:9;2328:23;2374:18;2366:6;2363:30;2360:2;;;2411:6;2403;2396:22;2360:2;2439:50;2481:7;2472:6;2461:9;2457:22;2439:50;:::i;:::-;2429:60;2233:262;-1:-1:-1;;;;2233:262:1:o;2500:644::-;;;;;;;;2714:3;2702:9;2693:7;2689:23;2685:33;2682:2;;;2736:6;2728;2721:22;2682:2;2764:29;2783:9;2764:29;:::i;:::-;2754:39;;2812:38;2846:2;2835:9;2831:18;2812:38;:::i;:::-;2802:48;;2869:38;2903:2;2892:9;2888:18;2869:38;:::i;:::-;2859:48;;2926:38;2960:2;2949:9;2945:18;2926:38;:::i;:::-;2916:48;;2983:39;3017:3;3006:9;3002:19;2983:39;:::i;:::-;2973:49;;3041:39;3075:3;3064:9;3060:19;3041:39;:::i;:::-;3031:49;;3099:39;3133:3;3122:9;3118:19;3099:39;:::i;:::-;3089:49;;2672:472;;;;;;;;;;:::o;3149:190::-;;3261:2;3249:9;3240:7;3236:23;3232:32;3229:2;;;3282:6;3274;3267:22;3229:2;-1:-1:-1;3310:23:1;;3219:120;-1:-1:-1;3219:120:1:o;3344:194::-;;3467:2;3455:9;3446:7;3442:23;3438:32;3435:2;;;3488:6;3480;3473:22;3435:2;-1:-1:-1;3516:16:1;;3425:113;-1:-1:-1;3425:113:1:o;3543:410::-;;;3682:2;3670:9;3661:7;3657:23;3653:32;3650:2;;;3703:6;3695;3688:22;3650:2;3744:9;3731:23;3721:33;;3805:2;3794:9;3790:18;3777:32;3832:18;3824:6;3821:30;3818:2;;;3869:6;3861;3854:22;3818:2;3897:50;3939:7;3930:6;3919:9;3915:22;3897:50;:::i;:::-;3887:60;;;3640:313;;;;;:::o;3958:338::-;;;;4104:2;4092:9;4083:7;4079:23;4075:32;4072:2;;;4125:6;4117;4110:22;4072:2;4166:9;4153:23;4143:33;;4195:38;4229:2;4218:9;4214:18;4195:38;:::i;:::-;4185:48;;4252:38;4286:2;4275:9;4271:18;4252:38;:::i;:::-;4242:48;;4062:234;;;;;:::o;4301:413::-;;;;;4464:3;4452:9;4443:7;4439:23;4435:33;4432:2;;;4486:6;4478;4471:22;4432:2;4527:9;4514:23;4504:33;;4556:38;4590:2;4579:9;4575:18;4556:38;:::i;:::-;4546:48;;4613:38;4647:2;4636:9;4632:18;4613:38;:::i;:::-;4603:48;;4670:38;4704:2;4693:9;4689:18;4670:38;:::i;:::-;4660:48;;4422:292;;;;;;;:::o;4719:258::-;;;4848:2;4836:9;4827:7;4823:23;4819:32;4816:2;;;4869:6;4861;4854:22;4816:2;-1:-1:-1;;4897:23:1;;;4967:2;4952:18;;;4939:32;;-1:-1:-1;4806:171:1:o;4982:326::-;;;;5128:2;5116:9;5107:7;5103:23;5099:32;5096:2;;;5149:6;5141;5134:22;5096:2;-1:-1:-1;;5177:23:1;;;5247:2;5232:18;;5219:32;;-1:-1:-1;5298:2:1;5283:18;;;5270:32;;5086:222;-1:-1:-1;5086:222:1:o;5313:483::-;;;;;;5501:3;5489:9;5480:7;5476:23;5472:33;5469:2;;;5523:6;5515;5508:22;5469:2;5551:39;5580:9;5551:39;:::i;:::-;5541:49;;5630:2;5619:9;5615:18;5609:25;5599:35;;5674:2;5663:9;5659:18;5653:25;5643:35;;5718:2;5707:9;5703:18;5697:25;5687:35;;5741:49;5785:3;5774:9;5770:19;5741:49;:::i;:::-;5731:59;;5459:337;;;;;;;;:::o;5801:981::-;-1:-1:-1;;;;;5947:2:1;5939:5;5933:12;5929:21;5924:3;5917:34;6012:2;6004:4;5997:5;5993:16;5987:23;5983:32;5976:4;5971:3;5967:14;5960:56;6077:2;6069:4;6062:5;6058:16;6052:23;6048:32;6041:4;6036:3;6032:14;6025:56;;6127:4;6120:5;6116:16;6110:23;6142:48;6184:4;6179:3;6175:14;6161:12;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6142:48;;6238:4;6231:5;6227:16;6221:23;6253:50;6297:4;6292:3;6288:14;6272;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6253:50;;6351:4;6344:5;6340:16;6334:23;6366:50;6410:4;6405:3;6401:14;6385;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6366:50;;6464:4;6457:5;6453:16;6447:23;6479:50;6523:4;6518:3;6514:14;6498;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6479:50;;6577:4;6570:5;6566:16;6560:23;6592:50;6636:4;6631:3;6627:14;6611;-1:-1:-1;;;;;6853:46:1;6841:59;;6831:75;6592:50;-1:-1:-1;6661:6:1;6704:14;;;6698:21;-1:-1:-1;;;;;6853:46:1;6763:12;;6841:59;5854:928::o;6911:432::-;;7080:6;7074:13;7105:3;7117:129;7131:6;7128:1;7125:13;7117:129;;;7229:4;7213:14;;;7209:25;;7203:32;7190:11;;;7183:53;7146:12;7117:129;;;7264:6;7261:1;7258:13;7255:2;;;7299:3;7290:6;7285:3;7281:16;7274:29;7255:2;-1:-1:-1;7321:16:1;;;;;7050:293;-1:-1:-1;;7050:293:1:o;8359:1235::-;8679:2;8691:21;;;8761:13;;8664:18;;;8783:22;;;8359:1235;;8858:4;;8836:2;8821:18;;;8885:15;;;8359:1235;8931:169;8945:6;8942:1;8939:13;8931:169;;;9006:13;;8994:26;;9040:12;;;;9075:15;;;;8967:1;8960:9;8931:169;;;-1:-1:-1;;;9136:19:1;;;9116:18;;;9109:47;9206:13;;9228:21;;;9304:15;;;;9267:12;;;9339:4;9352:214;9368:8;9363:3;9360:17;9352:214;;;9423:51;9468:5;9457:8;9451:15;9423:51;:::i;:::-;9539:17;;;;9507:6;9496:18;;;;;9396:1;9387:11;9352:214;;;-1:-1:-1;9583:5:1;;8640:954;-1:-1:-1;;;;;;;8640:954:1:o;12177:356::-;12379:2;12361:21;;;12398:18;;;12391:30;12457:34;12452:2;12437:18;;12430:62;12524:2;12509:18;;12351:182::o;12940:356::-;13142:2;13124:21;;;13161:18;;;13154:30;13220:34;13215:2;13200:18;;13193:62;13287:2;13272:18;;13114:182::o;13301:398::-;13503:2;13485:21;;;13542:2;13522:18;;;13515:30;13581:34;13576:2;13561:18;;13554:62;-1:-1:-1;;;13647:2:1;13632:18;;13625:32;13689:3;13674:19;;13475:224::o;15188:251::-;15374:3;15359:19;;15387:46;15363:9;15415:6;15387:46;:::i;:::-;15341:98;;;;:::o;18925:253::-;;-1:-1:-1;;;;;19054:2:1;19051:1;19047:10;19084:2;19081:1;19077:10;19115:3;19111:2;19107:12;19102:3;19099:21;19096:2;;;19123:18;;:::i;:::-;19159:13;;18973:205;-1:-1:-1;;;;18973:205:1:o;19183:128::-;;19254:1;19250:6;19247:1;19244:13;19241:2;;;19260:18;;:::i;:::-;-1:-1:-1;19296:9:1;;19231:80::o;19316:217::-;;19382:1;19372:2;;-1:-1:-1;;;19407:31:1;;19461:4;19458:1;19451:15;19489:4;19414:1;19479:15;19372:2;-1:-1:-1;19518:9:1;;19362:171::o;19538:168::-;;19644:1;19640;19636:6;19632:14;19629:1;19626:21;19621:1;19614:9;19607:17;19603:45;19600:2;;;19651:18;;:::i;:::-;-1:-1:-1;19691:9:1;;19590:116::o;19711:246::-;;-1:-1:-1;;;;;19864:10:1;;;;19834;;19886:12;;;19883:2;;;19901:18;;:::i;:::-;19938:13;;19760:197;-1:-1:-1;;;19760:197:1:o;19962:125::-;;20030:1;20027;20024:8;20021:2;;;20035:18;;:::i;:::-;-1:-1:-1;20072:9:1;;20011:76::o;20092:226::-;;-1:-1:-1;;;;;20228:2:1;20221:5;20217:14;20255:2;20246:7;20243:15;20240:2;;;20261:18;;:::i;:::-;20310:1;20297:15;;20139:179;-1:-1:-1;;;20139:179:1:o;20323:135::-;;-1:-1:-1;;20383:17:1;;20380:2;;;20403:18;;:::i;:::-;-1:-1:-1;20450:1:1;20439:13;;20370:88::o;20463:127::-;20524:10;20519:3;20515:20;20512:1;20505:31;20555:4;20552:1;20545:15;20579:4;20576:1;20569:15;20595:127;20656:10;20651:3;20647:20;20644:1;20637:31;20687:4;20684:1;20677:15;20711:4;20708:1;20701:15

Swarm Source

ipfs://b65c2928a9fead629287e9c9ac5fa84053cfd6534599bef43c5bd50dad79a85f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.