ETH Price: $3,380.67 (+0.16%)

Token

BlockRock (FED)
 

Overview

Max Total Supply

10,000,000 FED

Holders

91

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
22,266.835388705685346054 FED

Value
$0.00
0x01e79670794692df4fbd17d6a34d885477a504da
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:
Blockrock

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion
File 1 of 1 : Fed.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract Ownable {
    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract Blockrock is IERC20, Ownable {       
    string private constant _name = "BlockRock";
    string private constant _symbol = "FED";
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10_000_000 * 10**_decimals;
    address private _owner;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _blocked;
    mapping (address => bool) private isTaxExempt; 

    mapping (address => uint256) private _lastTradeBlock;
    mapping (address => bool) private isContractExempt;
    uint256 private tradeCooldown = 1;
    
    uint256 public constant maxWalletAmount = 100_000 * 10**_decimals;
    uint256 private constant contractSwapLimit = 50_000 * 10**_decimals;
    uint256 private constant contractSwapMax = 2_000_000 * 10**_decimals;

    struct TradingFees{
        uint256 buyTax;
        uint256 sellTax;
    }  

    TradingFees public tradingFees = TradingFees(4,6);
    uint256 public constant sniperTax = 50;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address payable private constant devWallet = payable(0xd40ABA76d0983dEA3F289cBaD60577Dd12b438e1);
    address payable private constant fundWallet = payable(0xDDe5275aB429B6741Dd6e28CadD49d9df31227Fa);

    bool private tradingOpen = false;
    bool private swapping = false;
    bool private antiMEV = false;
    uint256 private startingBlock;
    uint private preLaunch;

    modifier swapLock {
        swapping = true;
        _;
        swapping = false;
    }

    modifier tradingLock() {
        require(tradingOpen, "Trading is not open yet.");
        _;
    }

    constructor () {
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        isContractExempt[address(this)] = true;

        uint256 deployerTokens = _totalSupply * 75 / 100;
        uint256 devWalletTokens = _totalSupply - deployerTokens; 

        _balances[msg.sender] = deployerTokens;
        emit Transfer(address(0), msg.sender, deployerTokens);

        _balances[devWallet] = devWalletTokens;
        emit Transfer(address(0), devWallet, devWalletTokens);

        _owner = msg.sender;
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transfer(address from, address to, uint256 amount) tradingLock() private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != devWallet && to != devWallet && to != deployerAddress) {
            
            if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){
                address human = ensureOneHuman(from, to);
                ensureMaxTxFrequency(human);
                _lastTradeBlock[human] = block.number;
            }

            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: transfer implies violation of max wallet");
            }

           uint256 contractTokenBalance = balanceOf(address(this));
           if (shouldSwapback(from, contractTokenBalance)) 
               swapback(contractTokenBalance);                            

           uint256 taxedTokens = takeFee(from, amount);
           if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function swapback(uint256 tokenAmount) private swapLock {
        tokenAmount = getSwapAmount(tokenAmount);
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            uint256 devShare = contractETHBalance * 25 / 100;
            uint256 fundShare = contractETHBalance - devShare;

            devWallet.transfer(devShare);
            fundWallet.transfer(fundShare);
        }
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool shouldSwap) {
        shouldSwap = !swapping && from != uniswapPair && tokenAmount > contractSwapLimit && 1 + startingBlock <= block.number;
    }

    function getSwapAmount(uint256 tokenAmount) private pure returns (uint256 swapAmount) {
        swapAmount = tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit;
    }

    function takeFee(address from, uint256 amount) private view returns (uint256 feeAmount) {
        if (isTaxExempt[from]) {
            return 0; // No fee charged for tax-exempt addresses
        }

        // Continue with the existing fee calculation
        if (_blocked[from] || block.number <= startingBlock) {
            feeAmount = amount * sniperTax / 100;
        } else {
            feeAmount = amount * (from == uniswapPair ? tradingFees.buyTax : tradingFees.sellTax) / 100;
        }
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function ensureOneHuman(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function setTaxExempt(address account, bool value) external onlyOwner {
        isTaxExempt[account] = value;
    }

    function ensureMaxTxFrequency(address addr) view private {
        bool isAllowed = _lastTradeBlock[addr] == 0 ||
            ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    function toggleAntiMEV(bool toggle) external onlyOwner {
        require(msg.sender == deployerAddress);
        antiMEV = toggle;
    }

    function setTradeCooldown(uint256 newTradeCooldown) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible");
        tradeCooldown = newTradeCooldown;
    }

    function manualSwapback(uint256 percent) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(0 < percent && percent <= 100, "Token: only percent values in range (0,100] permissible");
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function setFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        require(msg.sender == deployerAddress);
        require(newBuyTax <= tradingFees.buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= tradingFees.sellTax, "Token: only fee reduction permitted");
        tradingFees.buyTax = newBuyTax;
        tradingFees.sellTax = newSellTax;
    }

    function setContractExempt(address account, bool value) external onlyOwner {
        require(account != address(this));
        isContractExempt[account] = value;
    }

    function setBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            _blocked[bots[i]] = shouldBlock;
        }
    }

    function initialize() external onlyOwner {
        require(preLaunch++<2);
    }

    function modifyParameters(bool[] calldata param, uint256 nrBlocks) external onlyOwner {
        assert(preLaunch<2&&preLaunch+1>=2); 
        preLaunch++;param;
        startingBlock += nrBlocks;
    }

    function toggleTrading(bool _status) external onlyOwner {
        tradingOpen = _status;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"param","type":"bool[]"},{"internalType":"uint256","name":"nrBlocks","type":"uint256"}],"name":"modifyParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setContractExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setTaxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeCooldown","type":"uint256"}],"name":"setTradeCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"toggleAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"toggleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingFees","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60016008556101206040819052600460e081905260066101008190526009829055600a556315ab88c960e31b8252737a250d5630b4cf539739df2c5dacb4c659f2488d9163ad5c4648916101249160209181865afa15801562000066573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008c919062000333565b6001600160a01b03166080523360c052600b805462ffffff19169055348015620000b557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000170919062000333565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000333565b6001600160a01b031660a052306000908152600760205260408120805460ff1916600117905560646200021e6012600a6200047a565b6200022d90629896806200048b565b6200023a90604b6200048b565b620002469190620004a5565b9050600081620002596012600a6200047a565b6200026890629896806200048b565b620002749190620004c8565b33600081815260026020526040808220869055519293509091600080516020620026a683398151915290620002ac9086815260200190565b60405180910390a373d40aba76d0983dea3f289cbad60577dd12b438e16000818152600260209081527f66bae5d11d62ec8effd10638671b14210368a15f0a5f2bed005409366d2c740d849055604051848152600080516020620026a6833981519152910160405180910390a35050600180546001600160a01b03191633179055620004de565b6000602082840312156200034657600080fd5b81516001600160a01b03811681146200035e57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003bc578160001904821115620003a057620003a062000365565b80851615620003ae57918102915b93841c939080029062000380565b509250929050565b600082620003d55750600162000474565b81620003e45750600062000474565b8160018114620003fd5760028114620004085762000428565b600191505062000474565b60ff8411156200041c576200041c62000365565b50506001821b62000474565b5060208310610133831016604e8410600b84101617156200044d575081810a62000474565b6200045983836200037b565b806000190482111562000470576200047062000365565b0290505b92915050565b60006200035e60ff841683620003c4565b808202811582820484141762000474576200047462000365565b600082620004c357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000474576200047462000365565b60805160a05160c0516121676200053f600039600081816105cc015281816106650152818161098001528181610f6201526113f3015260008181610c17015281816114bc01528181611aba0152611bab0152600061183401526121676000f3fe60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061019a5760003560e01c806374378132116100e1578063a9059cbb1161008a578063f1f5cd9111610064578063f1f5cd91146104e8578063f2fde38b146104fd578063f318bbfe1461051d578063f8d982b21461053d57600080fd5b8063a9059cbb1461046d578063aa4bde281461048d578063dd62ed3e146104a257600080fd5b806395d89b41116100bb57806395d89b41146103e75780639686d3221461042d5780639c0db5f31461044d57600080fd5b8063743781321461037a5780638129fc1c146103aa5780638da5cb5b146103bf57600080fd5b806323b872dd11610143578063313ce5671161011d578063313ce5671461031357806370a082311461032f578063715018a61461036557600080fd5b806323b872dd146102b357806326560be7146102d35780633049b580146102f357600080fd5b80630b78f9c0116101745780630b78f9c01461025057806318160ddd146102705780631dc610401461029357600080fd5b806306fdde03146101a6578063095ea7b3146101fe57806309fb56391461022e57600080fd5b366101a157005b600080fd5b3480156101b257600080fd5b5060408051808201909152600981527f426c6f636b526f636b000000000000000000000000000000000000000000000060208201525b6040516101f59190611c59565b60405180910390f35b34801561020a57600080fd5b5061021e610219366004611cc3565b61055d565b60405190151581526020016101f5565b34801561023a57600080fd5b5061024e610249366004611cfd565b610574565b005b34801561025c57600080fd5b5061024e61026b366004611d18565b610612565b34801561027c57600080fd5b50610285610756565b6040519081526020016101f5565b34801561029f57600080fd5b5061024e6102ae366004611d3a565b610776565b3480156102bf57600080fd5b5061021e6102ce366004611d6d565b6107e9565b3480156102df57600080fd5b5061024e6102ee366004611cfd565b6108d2565b3480156102ff57600080fd5b5061024e61030e366004611da9565b61092d565b34801561031f57600080fd5b50604051601281526020016101f5565b34801561033b57600080fd5b5061028561034a366004611dc2565b6001600160a01b031660009081526002602052604090205490565b34801561037157600080fd5b5061024e610a31565b34801561038657600080fd5b50600954600a54610395919082565b604080519283526020830191909152016101f5565b3480156103b657600080fd5b5061024e610ad0565b3480156103cb57600080fd5b506000546040516001600160a01b0390911681526020016101f5565b3480156103f357600080fd5b5060408051808201909152600381527f464544000000000000000000000000000000000000000000000000000000000060208201526101e8565b34801561043957600080fd5b5061024e610448366004611d3a565b610b3a565b34801561045957600080fd5b5061024e610468366004611e29565b610bc2565b34801561047957600080fd5b5061021e610488366004611cc3565b610d70565b34801561049957600080fd5b50610285610d7d565b3480156104ae57600080fd5b506102856104bd366004611e7d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104f457600080fd5b50610285603281565b34801561050957600080fd5b5061024e610518366004611dc2565b610d99565b34801561052957600080fd5b5061024e610538366004611ea7565b610e69565b34801561054957600080fd5b5061024e610558366004611da9565b610f0f565b600061056a338484611045565b5060015b92915050565b6000546001600160a01b031633146105c15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146105f657600080fd5b600b8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461065a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e7161461068f57600080fd5b6009548211156106ed5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600a5481111561074b5760405162461bcd60e51b815260206004820152602360248201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746044820152621d195960ea1b60648201526084016105b8565b600991909155600a55565b60006107646012600a611fed565b6107719062989680611ffc565b905090565b6000546001600160a01b031633146107be5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156108825760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546108bd9186916108b8908690612013565b611045565b6108c884848461119e565b5060019392505050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600b805460ff1916911515919091179055565b6000546001600160a01b031633146109755760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e716146109aa57600080fd5b6000811180156109ba5750600481105b610a2c5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c650000000060648201526084016105b8565b600855565b6000546001600160a01b03163314610a795760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03163314610b185760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b600d80546002916000610b2a83612026565b9190505510610b3857600080fd5b565b6000546001600160a01b03163314610b825760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b306001600160a01b03831603610b9757600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c0a5760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b60005b82811015610d6a577f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316848483818110610c5157610c5161203f565b9050602002016020810190610c669190611dc2565b6001600160a01b031614158015610cc05750737a250d5630b4cf539739df2c5dacb4c659f2488d848483818110610c9f57610c9f61203f565b9050602002016020810190610cb49190611dc2565b6001600160a01b031614155b8015610cfb575030848483818110610cda57610cda61203f565b9050602002016020810190610cef9190611dc2565b6001600160a01b031614155b610d0457600080fd5b8160046000868685818110610d1b57610d1b61203f565b9050602002016020810190610d309190611dc2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610d6281612026565b915050610c0d565b50505050565b600061056a33848461119e565b610d896012600a611fed565b610d9690620186a0611ffc565b81565b6000546001600160a01b03163314610de15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6001600160a01b038116610e5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b8565b610e66816116fb565b50565b6000546001600160a01b03163314610eb15760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b6002600d54108015610ed257506002600d546001610ecf9190612055565b10155b610ede57610ede612068565b600d8054906000610eee83612026565b919050555080600c6000828254610f059190612055565b9091555050505050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152602060048201819052602482015260008051602061211283398151915260448201526064016105b8565b336001600160a01b037f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e71614610f8c57600080fd5b806000108015610f9d575060648111155b61100f5760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c6500000000000000000060648201526084016105b8565b3060009081526002602052604081205460649061102c9084611ffc565b611036919061207e565b90506110418161175a565b5050565b6001600160a01b0383166110c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600b5460ff166111f05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e000000000000000060448201526064016105b8565b6001600160a01b03831661126c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b8565b6001600160a01b0382166112e85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b8565b6000811161135e5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016105b8565b6001600160a01b03831660009081526002602052604081208054839290611386908490612013565b90915550506001600160a01b03831630148015906113c157506001600160a01b03831673d40aba76d0983dea3f289cbad60577dd12b438e114155b80156113ea57506001600160a01b03821673d40aba76d0983dea3f289cbad60577dd12b438e114155b801561142857507f0000000000000000000000000436b8186961d08452d19bef10eabac5923d95e76001600160a01b0316826001600160a01b031614155b1561168757600b5462010000900460ff16801561145e57506001600160a01b03831660009081526007602052604090205460ff16155b801561148357506001600160a01b03821660009081526007602052604090205460ff16155b156114ba57600061149484846119d3565b905061149f81611a00565b6001600160a01b031660009081526006602052604090204390555b7f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614801561151857506001600160a01b038216737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115d4576115296012600a611fed565b61153690620186a0611ffc565b81611556846001600160a01b031660009081526002602052604090205490565b6115609190612055565b11156115d45760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201527f6e206f66206d61782077616c6c6574000000000000000000000000000000000060648201526084016105b8565b306000908152600260205260409020546115ee8482611aa2565b156115fc576115fc8161175a565b60006116088584611b32565b905080156116845761161a8184612013565b3060009081526002602052604081208054929550839290919061163e908490612055565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b038216600090815260026020526040812080548392906116af908490612055565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161119191815260200190565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b805461ff00191661010017905561177281611c02565b306000908152600360209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156117dd576117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d6117d06012600a611fed565b6108b89062989680611ffc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118125761181261203f565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106118665761186661203f565b6001600160a01b03909216602092830291909101909101526040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906118d79085906000908690309042906004016120a0565b600060405180830381600087803b1580156118f157600080fd5b505af1158015611905573d6000803e3d6000fd5b5047925050811590506119c35760006064611921836019611ffc565b61192b919061207e565b905060006119398284612013565b60405190915073d40aba76d0983dea3f289cbad60577dd12b438e19083156108fc029084906000818181858888f1935050505015801561197d573d6000803e3d6000fd5b5060405173dde5275ab429b6741dd6e28cadd49d9df31227fa9082156108fc029083906000818181858888f193505050501580156119bf573d6000803e3d6000fd5b5050505b5050600b805461ff001916905550565b6000823b15806119e25750813b155b6119eb57600080fd5b823b156119f957508061056e565b508161056e565b6001600160a01b0381166000908152600660205260408120541580611a535750611a2b436001612055565b6008546001600160a01b038416600090815260066020526040902054611a519190612055565b105b9050806110415760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016105b8565b600b54600090610100900460ff16158015611aef57507f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316836001600160a01b031614155b8015611b115750611b026012600a611fed565b611b0e9061c350611ffc565b82115b8015611b2b575043600c546001611b289190612055565b11155b9392505050565b6001600160a01b03821660009081526005602052604081205460ff1615611b5b5750600061056e565b6001600160a01b03831660009081526004602052604090205460ff1680611b845750600c544311155b15611ba7576064611b96603284611ffc565b611ba0919061207e565b905061056e565b60647f000000000000000000000000974d37d3abd95941259765e907a50acd054fcbb16001600160a01b0316846001600160a01b031614611bea57600a54611bee565b6009545b611bf89084611ffc565b611b2b919061207e565b6000611c106012600a611fed565b611c1d90621e8480611ffc565b8211611c4057611c2f6012600a611fed565b611c3b9061c350611ffc565b61056e565b611c4c6012600a611fed565b61056e90621e8480611ffc565b600060208083528351808285015260005b81811015611c8657858101830151858201604001528201611c6a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611cbe57600080fd5b919050565b60008060408385031215611cd657600080fd5b611cdf83611ca7565b946020939093013593505050565b80358015158114611cbe57600080fd5b600060208284031215611d0f57600080fd5b611b2b82611ced565b60008060408385031215611d2b57600080fd5b50508035926020909101359150565b60008060408385031215611d4d57600080fd5b611d5683611ca7565b9150611d6460208401611ced565b90509250929050565b600080600060608486031215611d8257600080fd5b611d8b84611ca7565b9250611d9960208501611ca7565b9150604084013590509250925092565b600060208284031215611dbb57600080fd5b5035919050565b600060208284031215611dd457600080fd5b611b2b82611ca7565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b6020830191508360208260051b8501011115611e2257600080fd5b9250929050565b600080600060408486031215611e3e57600080fd5b833567ffffffffffffffff811115611e5557600080fd5b611e6186828701611ddd565b9094509250611e74905060208501611ced565b90509250925092565b60008060408385031215611e9057600080fd5b611e9983611ca7565b9150611d6460208401611ca7565b600080600060408486031215611ebc57600080fd5b833567ffffffffffffffff811115611ed357600080fd5b611edf86828701611ddd565b909790965060209590950135949350505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611f44578160001904821115611f2a57611f2a611ef3565b80851615611f3757918102915b93841c9390800290611f0e565b509250929050565b600082611f5b5750600161056e565b81611f685750600061056e565b8160018114611f7e5760028114611f8857611fa4565b600191505061056e565b60ff841115611f9957611f99611ef3565b50506001821b61056e565b5060208310610133831016604e8410600b8410161715611fc7575081810a61056e565b611fd18383611f09565b8060001904821115611fe557611fe5611ef3565b029392505050565b6000611b2b60ff841683611f4c565b808202811582820484141761056e5761056e611ef3565b8181038181111561056e5761056e611ef3565b60006001820161203857612038611ef3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561056e5761056e611ef3565b634e487b7160e01b600052600160045260246000fd5b60008261209b57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120f05784516001600160a01b0316835293830193918301916001016120cb565b50506001600160a01b0396909616606085015250505060800152939250505056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d3f9c07002324660e91861ba8f98fbd0f92f9997aff3a808365302f830e9415864736f6c63430008110033

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.