ETH Price: $3,342.00 (-0.74%)
Gas: 3 Gwei

Token

Onna Musha (MUSHA)
 

Overview

Max Total Supply

1,000,000,000,000 MUSHA

Holders

128

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: MUSHA 2
Balance
424,554,915,146.245729682 MUSHA

Value
$0.00
0x6d6532f314e4800cdc85ae483a09bab2c98aaa9c
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:
OnnaMusha

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : OnnaMusha.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract OnnaMusha is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Onna Musha";
    string constant _symbol = "MUSHA";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply.mul(1).div(100);
    uint256 public _maxTx = _totalSupply.mul(1).div(100);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isWhitelist;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 marketingFee = 2;
    uint256 liquidityFee = 1; 
    uint256 developmentFee = 1;
    uint256 stakingFee = 1;
    uint256 burnFee = 1;
    uint256 totalFee = liquidityFee + marketingFee + developmentFee + stakingFee + burnFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0xE9F4Eb1862572bC66B4E4cb545aeB312BC40013A;
    address public liquidityFeeReceiver = 0xe8730C785256fd32Bc87fc7B0795a7686c5AD3e7;
    address public developmentFeeReceiver = 0xca8C8169A3B86b2D355129FB801738fe6D9C28a7;
    address public stakingFeeReceiver = 0x3ab71c09FEA5451179603a107A4563582032Bcb1;
    address public burnFeeReceiver = 0xEBB612Cd86f8Ae8d19B30Fc31CD67618ff7b9611;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = false;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[liquidityFeeReceiver] = true;
        isFeeExempt[developmentFeeReceiver] = true;
        isFeeExempt[stakingFeeReceiver] = true;
        isFeeExempt[burnFeeReceiver] = true;

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[DEAD] = true;

        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[liquidityFeeReceiver] = true;
        isTxLimitExempt[developmentFeeReceiver] = true;
        isTxLimitExempt[stakingFeeReceiver] = true;
        isTxLimitExempt[burnFeeReceiver] = true;

        isWhitelist[_owner] = true;
        isWhitelist[marketingFeeReceiver] = true;
        isWhitelist[liquidityFeeReceiver] = true;
        isWhitelist[developmentFeeReceiver] = true;
        isWhitelist[stakingFeeReceiver] = true;
        isWhitelist[burnFeeReceiver] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (!swapEnabled && sender == pair && !isWhitelist[recipient]) {
            return false;
        }

        if (!isTxLimitExempt[sender] && (recipient == pair || sender == pair)) {
            require(amount <= _maxTx, "Buy/Sell exceeds the max tx");
        }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (shouldTakeFee(sender) && shouldTakeFee(recipient)) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function setFeeExempt(address adr, bool _isFeeExempt) external onlyOwner{
        isFeeExempt[adr] = _isFeeExempt; 
    }
    
    function setWhitelist(address[] memory adr, bool _isWhitelist) external onlyOwner{
        for (uint256 i = 0; i < adr.length; i++) {
            isWhitelist[adr[i]] = _isWhitelist; 
        }
    }

    function setMaxTx(uint256 amountPercent) external onlyOwner {
        require(amountPercent >= 1, "Max tx amount must not be less than 0.1% percent");
        _maxTx = _totalSupply.mul(amountPercent).div(1000);
    }

    function setTxLimitExempt(address adr, bool _isTxLimitExempt) external onlyOwner{
        isTxLimitExempt[adr] = _isTxLimitExempt;
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function enableSwap() external onlyOwner{
        swapEnabled = true;
    }

    function sendTaxToWallets() external onlyOwner {
        require(_balances[address(this)] > 0,"Insufficient Balance");

        uint256 contractTokenBalance = _balances[address(this)];
        uint256 amountToMarketing = contractTokenBalance.mul(marketingFee).div(totalFee);
        uint256 amountToLiquidity = contractTokenBalance.mul(liquidityFee).div(totalFee);
        uint256 amountToDevelopment = contractTokenBalance.mul(developmentFee).div(totalFee);
        uint256 amountToStaking = contractTokenBalance.mul(stakingFee).div(totalFee);
        uint256 amountToBurn = contractTokenBalance.sub(amountToMarketing.add(amountToLiquidity).add(amountToDevelopment).add(amountToStaking));

        _balances[marketingFeeReceiver] = _balances[marketingFeeReceiver].add(amountToMarketing);
        _balances[liquidityFeeReceiver] = _balances[liquidityFeeReceiver].add(amountToLiquidity);
        _balances[developmentFeeReceiver] = _balances[developmentFeeReceiver].add(amountToDevelopment);
        _balances[stakingFeeReceiver] = _balances[stakingFeeReceiver].add(amountToStaking);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(amountToBurn);
        _balances[address(this)] = 0;
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent >= 1,"wallet limit mush be not less than 0.1 percent");
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee, uint256 _developmentFee, uint256 _stakingFee, uint256 _burnFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         developmentFee = _developmentFee;
         stakingFee = _stakingFee;
         burnFee = _burnFee;
         totalFee = liquidityFee + marketingFee + developmentFee + stakingFee + burnFee;
    }    

    function updateMarketingFeeReceiver(address _address) external onlyOwner {
        marketingFeeReceiver = _address;
    }

    function updateLiquidityFeeReceiver(address _address) external onlyOwner {
        liquidityFeeReceiver = _address;
    }

    function updateDevelopmentFeeReceiver(address _address) external onlyOwner {
        developmentFeeReceiver = _address;
    }

    function updateStakingFeeReceiver(address _address) external onlyOwner {
        stakingFeeReceiver = _address;
    }

    function updateBurnFeeReceiver(address _address) external onlyOwner {
        burnFeeReceiver = _address;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "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":false,"internalType":"address","name":"owner","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":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendTaxToWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"},{"internalType":"uint256","name":"_stakingFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"_isFeeExempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"bool","name":"_isTxLimitExempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adr","type":"address[]"},{"internalType":"bool","name":"_isWhitelist","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"_address","type":"address"}],"name":"updateBurnFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateDevelopmentFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateLiquidityFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateMarketingFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateStakingFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200079f565b620000599064e8d4a510006200085e565b6003556200009360646200007f60016003546200057b60201b6200105c1790919060201c565b6200060f60201b620010db1790919060201c565b600455620000b960646200007f60016003546200057b60201b6200105c1790919060201c565b6005556002600b556001600c556001600d556001600e556001600f55600f54600e54600d54600b54600c54620000f0919062000718565b620000fc919062000718565b62000108919062000718565b62000114919062000718565b6010556064601155601280546001600160a01b031990811673e9f4eb1862572bc66b4e4cb545aeb312bc40013a1790915560138054821673e8730c785256fd32bc87fc7b0795a7686c5ad3e717905560148054821673ca8c8169a3b86b2d355129fb801738fe6d9c28a7179055601580548216733ab71c09fea5451179603a107a4563582032bcb11790556016805490911673ebb612cd86f8ae8d19b30fc31cd67618ff7b96111790556018805460ff60a01b19169055348015620001d857600080fd5b5060008054336001600160a01b031991821617909155600154601780546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b919062000695565b6001600160a01b031663c9c65396601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002d857600080fd5b505afa158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000695565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200035b57600080fd5b505af115801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000695565b601880546001600160a01b0319166001600160a01b0392831617905530600090815260076020908152604080832060175485168452825280832060001990558254841680845260098352818420805460ff1990811660019081179092556012805488168752848720805483168417905560138054891688528588208054841685179055601480548a1689528689208054851686179055601580548b168a52878a208054861687179055601680548c168b52888b208054871688179055878b52600a8a52888b2080548716881790556002548c168b52888b20805487168817905584548c168b52888b20805487168817905583548c168b52888b20805487168817905582548c168b52888b20805487168817905581548c168b52888b20805487168817905580548c168b52888b208054871688179055878b5260088a52888b20805487168817905593548b168a52878a20805486168717905591548a168952868920805485168617905554891688528588208054841685179055548816875284872080548316841790555490961685528285208054909616179094556003548484526006835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000896565b6000826200058c5750600062000609565b60006200059a83856200085e565b905082620005a9858362000733565b14620006065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200060683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200065960201b60201c565b600081836200067d5760405162461bcd60e51b8152600401620005fd9190620006c0565b5060006200068c848662000733565b95945050505050565b600060208284031215620006a857600080fd5b81516001600160a01b03811681146200060657600080fd5b600060208083528351808285015260005b81811015620006ef57858101830151858201604001528201620006d1565b8181111562000702576000604083870101525b50601f01601f1916929092016040019392505050565b600082198211156200072e576200072e62000880565b500190565b6000826200075157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620007975781600019048211156200077b576200077b62000880565b808516156200078957918102915b93841c93908002906200075b565b509250929050565b60006200060660ff841683600082620007bb5750600162000609565b81620007ca5750600062000609565b8160018114620007e35760028114620007ee576200080e565b600191505062000609565b60ff84111562000802576200080262000880565b50506001821b62000609565b5060208310610133831016604e8410600b841016171562000833575081810a62000609565b6200083f838362000756565b806000190482111562000856576200085662000880565b029392505050565b60008160001904831182151516156200087b576200087b62000880565b500290565b634e487b7160e01b600052601160045260246000fd5b611aa480620008a66000396000f3fe60806040526004361061021e5760003560e01c8063715018a611610123578063a9059cbb116100ab578063e3763ded1161006f578063e3763ded1461068c578063e96fada2146106ac578063f0eb44b0146106cc578063f1d5f517146106ec578063f887ea401461070c57600080fd5b8063a9059cbb146105c6578063bc337182146105e6578063bfa21d6a14610606578063c5cb3be514610626578063dd62ed3e1461064657600080fd5b80638d7a8ba7116100f25780638d7a8ba7146105185780638ebfc7961461053857806395d89b4114610558578063a2e00d6314610586578063a8aa1b31146105a657600080fd5b8063715018a6146104af5780637830b072146104c45780637f2a0811146104da578063893d20e8146104fa57600080fd5b8063364333f4116101a65780636a3133cf116101755780636a3133cf146103f55780636c0a24eb1461040a5780636ddd1713146104205780636ec518b81461044157806370a082311461047957600080fd5b8063364333f4146103805780633c271a0514610395578063571ac8b0146103b557806359f76e28146103d557600080fd5b8063190b762c116101ed578063190b762c146102e057806323b872dd1461030057806329691448146103205780632f54bf6e14610335578063313ce5671461036457600080fd5b8063019f2f991461022a57806306fdde031461024c578063095ea7b31461029157806318160ddd146102c157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a61024536600461171c565b61072c565b005b34801561025857600080fd5b5060408051808201909152600a8152694f6e6e61204d7573686160b01b60208201525b604051610288919061192c565b60405180910390f35b34801561029d57600080fd5b506102b16102ac3660046117d0565b610781565b6040519015158152602001610288565b3480156102cd57600080fd5b506003545b604051908152602001610288565b3480156102ec57600080fd5b5061024a6102fb36600461171c565b6107ee565b34801561030c57600080fd5b506102b161031b36600461176a565b61083a565b34801561032c57600080fd5b5061024a6108fc565b34801561034157600080fd5b506102b161035036600461171c565b6000546001600160a01b0391821691161490565b34801561037057600080fd5b5060405160098152602001610288565b34801561038c57600080fd5b5061024a61093b565b3480156103a157600080fd5b5061024a6103b03660046117fa565b610977565b3480156103c157600080fd5b506102b16103d036600461171c565b610a0d565b3480156103e157600080fd5b5061024a6103f036600461171c565b610a1b565b34801561040157600080fd5b5061024a610a67565b34801561041657600080fd5b506102d260045481565b34801561042c57600080fd5b506018546102b190600160a01b900460ff1681565b34801561044d57600080fd5b50601454610461906001600160a01b031681565b6040516001600160a01b039091168152602001610288565b34801561048557600080fd5b506102d261049436600461171c565b6001600160a01b031660009081526006602052604090205490565b3480156104bb57600080fd5b5061024a610cbe565b3480156104d057600080fd5b506102d260055481565b3480156104e657600080fd5b5061024a6104f536600461171c565b610d2d565b34801561050657600080fd5b506000546001600160a01b0316610461565b34801561052457600080fd5b5061024a6105333660046117a6565b610d79565b34801561054457600080fd5b5061024a6105533660046117a6565b610dce565b34801561056457600080fd5b506040805180820190915260058152644d5553484160d81b602082015261027b565b34801561059257600080fd5b5061024a6105a13660046118f1565b610e23565b3480156105b257600080fd5b50601854610461906001600160a01b031681565b3480156105d257600080fd5b506102b16105e13660046117d0565b610e9b565b3480156105f257600080fd5b5061024a6106013660046118d8565b610ea8565b34801561061257600080fd5b50601354610461906001600160a01b031681565b34801561063257600080fd5b50601554610461906001600160a01b031681565b34801561065257600080fd5b506102d2610661366004611737565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069857600080fd5b50601654610461906001600160a01b031681565b3480156106b857600080fd5b50601254610461906001600160a01b031681565b3480156106d857600080fd5b5061024a6106e736600461171c565b610f5d565b3480156106f857600080fd5b5061024a6107073660046118d8565b610fa9565b34801561071857600080fd5b50601754610461906001600160a01b031681565b6000546001600160a01b0316331461075f5760405162461bcd60e51b815260040161075690611981565b60405180910390fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107dc9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260040161075690611981565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108e7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108c291849061111d565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108f2848484611157565b90505b9392505050565b6000546001600160a01b031633146109265760405162461bcd60e51b815260040161075690611981565b6018805460ff60a01b1916600160a01b179055565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610974573d6000803e3d6000fd5b50565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161075690611981565b60005b8251811015610a085781600860008584815181106109c4576109c4611a42565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a0081611a11565b9150506109a4565b505050565b60006107e882600019610781565b6000546001600160a01b03163314610a455760405162461bcd60e51b815260040161075690611981565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161075690611981565b30600090815260066020526040902054610ae45760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610756565b30600090815260066020526040812054601054600b54919291610b139190610b0d90859061105c565b906110db565b90506000610b32601054610b0d600c548661105c90919063ffffffff16565b90506000610b51601054610b0d600d548761105c90919063ffffffff16565b90506000610b70601054610b0d600e548861105c90919063ffffffff16565b90506000610b94610b8d83610b8786818a8a611495565b90611495565b87906114f4565b6012546001600160a01b0316600090815260066020526040902054909150610bbc9086611495565b6012546001600160a01b039081166000908152600660205260408082209390935560135490911681522054610bf19085611495565b6013546001600160a01b039081166000908152600660205260408082209390935560145490911681522054610c269084611495565b6014546001600160a01b039081166000908152600660205260408082209390935560155490911681522054610c5b9083611495565b6015546001600160a01b039081166000908152600660205260408082209390935560165490911681522054610c909082611495565b6016546001600160a01b03166000908152600660205260408082209290925530815290812055505050505050565b6000546001600160a01b03163314610ce85760405162461bcd60e51b815260040161075690611981565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610d575760405162461bcd60e51b815260040161075690611981565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610da35760405162461bcd60e51b815260040161075690611981565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610df85760405162461bcd60e51b815260040161075690611981565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e4d5760405162461bcd60e51b815260040161075690611981565b600c859055600b849055600d839055600e829055600f819055808284610e7387896119a1565b610e7d91906119a1565b610e8791906119a1565b610e9191906119a1565b6010555050505050565b60006108f5338484611157565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161075690611981565b6001811015610f3c5760405162461bcd60e51b815260206004820152603060248201527f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460448201526f1a185b880c0b8c49481c195c98d95b9d60821b6064820152608401610756565b610f576103e8610b0d8360035461105c90919063ffffffff16565b60055550565b6000546001600160a01b03163314610f875760405162461bcd60e51b815260040161075690611981565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fd35760405162461bcd60e51b815260040161075690611981565b600181101561103b5760405162461bcd60e51b815260206004820152602e60248201527f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860448201526d185b880c0b8c481c195c98d95b9d60921b6064820152608401610756565b6103e88160035461104c91906119db565b61105691906119b9565b60045550565b60008261106b575060006107e8565b600061107783856119db565b90508261108485836119b9565b146108f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610756565b60006108f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611536565b600081848411156111415760405162461bcd60e51b8152600401610756919061192c565b50600061114e84866119fa565b95945050505050565b601854600090600160a81b900460ff161561117e57611177848484611564565b90506108f5565b601854600160a01b900460ff161580156111a557506018546001600160a01b038581169116145b80156111ca57506001600160a01b03831660009081526008602052604090205460ff16155b156111d7575060006108f5565b6001600160a01b0384166000908152600a602052604090205460ff1615801561122457506018546001600160a01b038481169116148061122457506018546001600160a01b038581169116145b1561127b5760055482111561127b5760405162461bcd60e51b815260206004820152601b60248201527f4275792f53656c6c206578636565647320746865206d617820747800000000006044820152606401610756565b6018546001600160a01b038481169116148015906112a757506002546001600160a01b03848116911614155b15611352576001600160a01b0383166000908152600a602052604090205460ff16806112f857506004546001600160a01b0384166000908152600660205260409020546112f59084906119a1565b11155b6113525760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610756565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546113a491849061111d565b6001600160a01b038516600090815260066020908152604080832093909355600990529081205460ff161580156113f457506001600160a01b03841660009081526009602052604090205460ff16155b6113fe5782611408565b611408858461164a565b6001600160a01b03851660009081526006602052604090205490915061142e9082611495565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114829085815260200190565b60405180910390a3506001949350505050565b6000806114a283856119a1565b9050838110156108f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610756565b60006108f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111d565b600081836115575760405162461bcd60e51b8152600401610756919061192c565b50600061114e84866119b9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546115b591849061111d565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546115e49083611495565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116389086815260200190565b60405180910390a35060019392505050565b600080611668601154610b0d6010548661105c90919063ffffffff16565b306000908152600660205260409020549091506116859082611495565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d69085815260200190565b60405180910390a36116e883826114f4565b949350505050565b80356001600160a01b038116811461170757600080fd5b919050565b8035801515811461170757600080fd5b60006020828403121561172e57600080fd5b6108f5826116f0565b6000806040838503121561174a57600080fd5b611753836116f0565b9150611761602084016116f0565b90509250929050565b60008060006060848603121561177f57600080fd5b611788846116f0565b9250611796602085016116f0565b9150604084013590509250925092565b600080604083850312156117b957600080fd5b6117c2836116f0565b91506117616020840161170c565b600080604083850312156117e357600080fd5b6117ec836116f0565b946020939093013593505050565b6000806040838503121561180d57600080fd5b823567ffffffffffffffff8082111561182557600080fd5b818501915085601f83011261183957600080fd5b813560208282111561184d5761184d611a58565b8160051b604051601f19603f8301168101818110868211171561187257611872611a58565b604052838152828101945085830182870184018b101561189157600080fd5b600096505b848710156118bb576118a7816116f0565b865260019690960195948301948301611896565b5096506118cb905087820161170c565b9450505050509250929050565b6000602082840312156118ea57600080fd5b5035919050565b600080600080600060a0868803121561190957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156119595785810183015185820160400152820161193d565b8181111561196b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600082198211156119b4576119b4611a2c565b500190565b6000826119d657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119f5576119f5611a2c565b500290565b600082821015611a0c57611a0c611a2c565b500390565b6000600019821415611a2557611a25611a2c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212201e1b91d992c9175313a803f3955d60fe77918490024c953a6cd361ddb300555964736f6c63430008050033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063715018a611610123578063a9059cbb116100ab578063e3763ded1161006f578063e3763ded1461068c578063e96fada2146106ac578063f0eb44b0146106cc578063f1d5f517146106ec578063f887ea401461070c57600080fd5b8063a9059cbb146105c6578063bc337182146105e6578063bfa21d6a14610606578063c5cb3be514610626578063dd62ed3e1461064657600080fd5b80638d7a8ba7116100f25780638d7a8ba7146105185780638ebfc7961461053857806395d89b4114610558578063a2e00d6314610586578063a8aa1b31146105a657600080fd5b8063715018a6146104af5780637830b072146104c45780637f2a0811146104da578063893d20e8146104fa57600080fd5b8063364333f4116101a65780636a3133cf116101755780636a3133cf146103f55780636c0a24eb1461040a5780636ddd1713146104205780636ec518b81461044157806370a082311461047957600080fd5b8063364333f4146103805780633c271a0514610395578063571ac8b0146103b557806359f76e28146103d557600080fd5b8063190b762c116101ed578063190b762c146102e057806323b872dd1461030057806329691448146103205780632f54bf6e14610335578063313ce5671461036457600080fd5b8063019f2f991461022a57806306fdde031461024c578063095ea7b31461029157806318160ddd146102c157600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a61024536600461171c565b61072c565b005b34801561025857600080fd5b5060408051808201909152600a8152694f6e6e61204d7573686160b01b60208201525b604051610288919061192c565b60405180910390f35b34801561029d57600080fd5b506102b16102ac3660046117d0565b610781565b6040519015158152602001610288565b3480156102cd57600080fd5b506003545b604051908152602001610288565b3480156102ec57600080fd5b5061024a6102fb36600461171c565b6107ee565b34801561030c57600080fd5b506102b161031b36600461176a565b61083a565b34801561032c57600080fd5b5061024a6108fc565b34801561034157600080fd5b506102b161035036600461171c565b6000546001600160a01b0391821691161490565b34801561037057600080fd5b5060405160098152602001610288565b34801561038c57600080fd5b5061024a61093b565b3480156103a157600080fd5b5061024a6103b03660046117fa565b610977565b3480156103c157600080fd5b506102b16103d036600461171c565b610a0d565b3480156103e157600080fd5b5061024a6103f036600461171c565b610a1b565b34801561040157600080fd5b5061024a610a67565b34801561041657600080fd5b506102d260045481565b34801561042c57600080fd5b506018546102b190600160a01b900460ff1681565b34801561044d57600080fd5b50601454610461906001600160a01b031681565b6040516001600160a01b039091168152602001610288565b34801561048557600080fd5b506102d261049436600461171c565b6001600160a01b031660009081526006602052604090205490565b3480156104bb57600080fd5b5061024a610cbe565b3480156104d057600080fd5b506102d260055481565b3480156104e657600080fd5b5061024a6104f536600461171c565b610d2d565b34801561050657600080fd5b506000546001600160a01b0316610461565b34801561052457600080fd5b5061024a6105333660046117a6565b610d79565b34801561054457600080fd5b5061024a6105533660046117a6565b610dce565b34801561056457600080fd5b506040805180820190915260058152644d5553484160d81b602082015261027b565b34801561059257600080fd5b5061024a6105a13660046118f1565b610e23565b3480156105b257600080fd5b50601854610461906001600160a01b031681565b3480156105d257600080fd5b506102b16105e13660046117d0565b610e9b565b3480156105f257600080fd5b5061024a6106013660046118d8565b610ea8565b34801561061257600080fd5b50601354610461906001600160a01b031681565b34801561063257600080fd5b50601554610461906001600160a01b031681565b34801561065257600080fd5b506102d2610661366004611737565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069857600080fd5b50601654610461906001600160a01b031681565b3480156106b857600080fd5b50601254610461906001600160a01b031681565b3480156106d857600080fd5b5061024a6106e736600461171c565b610f5d565b3480156106f857600080fd5b5061024a6107073660046118d8565b610fa9565b34801561071857600080fd5b50601754610461906001600160a01b031681565b6000546001600160a01b0316331461075f5760405162461bcd60e51b815260040161075690611981565b60405180910390fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107dc9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260040161075690611981565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108e7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108c291849061111d565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108f2848484611157565b90505b9392505050565b6000546001600160a01b031633146109265760405162461bcd60e51b815260040161075690611981565b6018805460ff60a01b1916600160a01b179055565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610974573d6000803e3d6000fd5b50565b6000546001600160a01b031633146109a15760405162461bcd60e51b815260040161075690611981565b60005b8251811015610a085781600860008584815181106109c4576109c4611a42565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a0081611a11565b9150506109a4565b505050565b60006107e882600019610781565b6000546001600160a01b03163314610a455760405162461bcd60e51b815260040161075690611981565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161075690611981565b30600090815260066020526040902054610ae45760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610756565b30600090815260066020526040812054601054600b54919291610b139190610b0d90859061105c565b906110db565b90506000610b32601054610b0d600c548661105c90919063ffffffff16565b90506000610b51601054610b0d600d548761105c90919063ffffffff16565b90506000610b70601054610b0d600e548861105c90919063ffffffff16565b90506000610b94610b8d83610b8786818a8a611495565b90611495565b87906114f4565b6012546001600160a01b0316600090815260066020526040902054909150610bbc9086611495565b6012546001600160a01b039081166000908152600660205260408082209390935560135490911681522054610bf19085611495565b6013546001600160a01b039081166000908152600660205260408082209390935560145490911681522054610c269084611495565b6014546001600160a01b039081166000908152600660205260408082209390935560155490911681522054610c5b9083611495565b6015546001600160a01b039081166000908152600660205260408082209390935560165490911681522054610c909082611495565b6016546001600160a01b03166000908152600660205260408082209290925530815290812055505050505050565b6000546001600160a01b03163314610ce85760405162461bcd60e51b815260040161075690611981565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610d575760405162461bcd60e51b815260040161075690611981565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610da35760405162461bcd60e51b815260040161075690611981565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610df85760405162461bcd60e51b815260040161075690611981565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e4d5760405162461bcd60e51b815260040161075690611981565b600c859055600b849055600d839055600e829055600f819055808284610e7387896119a1565b610e7d91906119a1565b610e8791906119a1565b610e9191906119a1565b6010555050505050565b60006108f5338484611157565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161075690611981565b6001811015610f3c5760405162461bcd60e51b815260206004820152603060248201527f4d617820747820616d6f756e74206d757374206e6f74206265206c657373207460448201526f1a185b880c0b8c49481c195c98d95b9d60821b6064820152608401610756565b610f576103e8610b0d8360035461105c90919063ffffffff16565b60055550565b6000546001600160a01b03163314610f875760405162461bcd60e51b815260040161075690611981565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610fd35760405162461bcd60e51b815260040161075690611981565b600181101561103b5760405162461bcd60e51b815260206004820152602e60248201527f77616c6c6574206c696d6974206d757368206265206e6f74206c65737320746860448201526d185b880c0b8c481c195c98d95b9d60921b6064820152608401610756565b6103e88160035461104c91906119db565b61105691906119b9565b60045550565b60008261106b575060006107e8565b600061107783856119db565b90508261108485836119b9565b146108f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610756565b60006108f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611536565b600081848411156111415760405162461bcd60e51b8152600401610756919061192c565b50600061114e84866119fa565b95945050505050565b601854600090600160a81b900460ff161561117e57611177848484611564565b90506108f5565b601854600160a01b900460ff161580156111a557506018546001600160a01b038581169116145b80156111ca57506001600160a01b03831660009081526008602052604090205460ff16155b156111d7575060006108f5565b6001600160a01b0384166000908152600a602052604090205460ff1615801561122457506018546001600160a01b038481169116148061122457506018546001600160a01b038581169116145b1561127b5760055482111561127b5760405162461bcd60e51b815260206004820152601b60248201527f4275792f53656c6c206578636565647320746865206d617820747800000000006044820152606401610756565b6018546001600160a01b038481169116148015906112a757506002546001600160a01b03848116911614155b15611352576001600160a01b0383166000908152600a602052604090205460ff16806112f857506004546001600160a01b0384166000908152600660205260409020546112f59084906119a1565b11155b6113525760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610756565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600690915291909120546113a491849061111d565b6001600160a01b038516600090815260066020908152604080832093909355600990529081205460ff161580156113f457506001600160a01b03841660009081526009602052604090205460ff16155b6113fe5782611408565b611408858461164a565b6001600160a01b03851660009081526006602052604090205490915061142e9082611495565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114829085815260200190565b60405180910390a3506001949350505050565b6000806114a283856119a1565b9050838110156108f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610756565b60006108f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061111d565b600081836115575760405162461bcd60e51b8152600401610756919061192c565b50600061114e84866119b9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546115b591849061111d565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546115e49083611495565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116389086815260200190565b60405180910390a35060019392505050565b600080611668601154610b0d6010548661105c90919063ffffffff16565b306000908152600660205260409020549091506116859082611495565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116d69085815260200190565b60405180910390a36116e883826114f4565b949350505050565b80356001600160a01b038116811461170757600080fd5b919050565b8035801515811461170757600080fd5b60006020828403121561172e57600080fd5b6108f5826116f0565b6000806040838503121561174a57600080fd5b611753836116f0565b9150611761602084016116f0565b90509250929050565b60008060006060848603121561177f57600080fd5b611788846116f0565b9250611796602085016116f0565b9150604084013590509250925092565b600080604083850312156117b957600080fd5b6117c2836116f0565b91506117616020840161170c565b600080604083850312156117e357600080fd5b6117ec836116f0565b946020939093013593505050565b6000806040838503121561180d57600080fd5b823567ffffffffffffffff8082111561182557600080fd5b818501915085601f83011261183957600080fd5b813560208282111561184d5761184d611a58565b8160051b604051601f19603f8301168101818110868211171561187257611872611a58565b604052838152828101945085830182870184018b101561189157600080fd5b600096505b848710156118bb576118a7816116f0565b865260019690960195948301948301611896565b5096506118cb905087820161170c565b9450505050509250929050565b6000602082840312156118ea57600080fd5b5035919050565b600080600080600060a0868803121561190957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156119595785810183015185820160400152820161193d565b8181111561196b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600082198211156119b4576119b4611a2c565b500190565b6000826119d657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119f5576119f5611a2c565b500290565b600082821015611a0c57611a0c611a2c565b500390565b6000600019821415611a2557611a25611a2c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212201e1b91d992c9175313a803f3955d60fe77918490024c953a6cd361ddb300555964736f6c63430008050033

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.