ETH Price: $3,482.26 (+2.68%)

Token

Derace (DERACE)
 

Overview

Max Total Supply

1,000,000,000 DERACE

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Piece of pi: Deployer
Balance
13,488,028.296282337 DERACE

Value
$0.00
0x0c8fb96bf3bc4e6007cfa52d4d9697acb8d346df
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:
Derace

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-16
*/

// SPDX-License-Identifier: Unlicensed

/**
Horse racing metaverse based on blockchain.

Website:   https://www.derace.space
Telegram: https://t.me/derace_erc
Twitter: https://twitter.com/derace_erc
 */

pragma solidity 0.8.19;

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

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

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function set(address) external;
    function setSetter(address) external;
}

contract Derace is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = "Derace";
    string private _symbol = "DERACE";
        
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10 ** 9;
    uint256 public maxTxAmount = 20 * 10 ** 6 * 10 ** 9;
    uint256 public maxWalletAmount = 20 * 10 ** 6 * 10 ** 9;
    uint256 public swapThreshold = 10 ** 4 * 10 ** 9; 

    IUniswapRouter _uniswapRouter;
    address _pairAddress;

    uint256 _buyFeeLp = 0;
    uint256 _buyFeeMkt = 22;
    uint256 _devbuyFees = 0;
    uint256 _buyFee = 22;

    uint256 _taxSellLp = 0;
    uint256 _taxSellMkt = 22;
    uint256 _taxSellDev = 0;
    uint256 _sellFee = 22;

    address payable _marketingWallet;
    address payable _devWallet;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _isExFromAll;
    mapping (address => bool) _isExFromWalletLimit;
    mapping (address => bool) _isExFromTxLimit;
    mapping (address => bool) _isPairAddress;
    
    bool swapping;
    bool _swapFeeEnabled = true;
    bool _maxTxDisabled = false;
    bool _maxWalletDisabled = true;

    uint256 _taxSeperateLp = 0;
    uint256 _taxSeperateMkt = 10;
    uint256 _taxSeperateDev = 0;
    uint256 _taxSeperateTotal = 10;

    modifier lockSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[_msgSender()] = _totalSupply;
        IUniswapRouter _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        _pairAddress = IUniswapFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _uniswapRouter = _uniswapV2Router;
        _allowances[address(this)][address(_uniswapRouter)] = _totalSupply;
        _marketingWallet = payable(0xe518fFBc7E52d4120ea82d21240E44b6223E3C2a);
        _devWallet = payable(0xe518fFBc7E52d4120ea82d21240E44b6223E3C2a);
        _buyFee = _buyFeeLp.add(_buyFeeMkt).add(_devbuyFees);
        _sellFee = _taxSellLp.add(_taxSellMkt).add(_taxSellDev);
        _taxSeperateTotal = _taxSeperateLp.add(_taxSeperateMkt).add(_taxSeperateDev);
        
        _isExFromAll[owner()] = true;
        _isExFromAll[_marketingWallet] = true;
        _isExFromWalletLimit[owner()] = true;
        _isExFromWalletLimit[address(_pairAddress)] = true;
        _isExFromWalletLimit[address(this)] = true;
        _isExFromTxLimit[owner()] = true;
        _isExFromTxLimit[_marketingWallet] = true;
        _isExFromTxLimit[address(this)] = true;
        _isPairAddress[address(_pairAddress)] = true;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }
            
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

    function getTransferringTokens(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 fee = 0;
        if(_isPairAddress[sender]) {fee = amount.mul(_buyFee).div(100);}
        else if(_isPairAddress[recipient]) {fee = amount.mul(_sellFee).div(100);}
        if(fee > 0) {
            _balances[address(this)] = _balances[address(this)].add(fee);
            emit Transfer(sender, address(this), fee);
        }
        return amount.sub(fee);
    }
    
    receive() external payable {}
    
    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
        _maxWalletDisabled = false;
        _buyFeeMkt = 1;
        _taxSellMkt = 1;
        _buyFee = 1;
        _sellFee = 1;
    }

    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 swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();

        _approve(address(this), address(_uniswapRouter), tokenAmount);

        // make the performSwap
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }
        
    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(swapping)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!_isExFromTxLimit[sender] && !_isExFromTxLimit[recipient]) {
                require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 swapAmount = balanceOf(address(this));
            bool minimumSwap = swapAmount >= swapThreshold;
            
            if (minimumSwap && !swapping && _isPairAddress[recipient] && _swapFeeEnabled && !_isExFromAll[sender] && amount > swapThreshold) 
            {
                if(_maxTxDisabled)
                    swapAmount = swapThreshold;
                performSwap(swapAmount);    
            }

            uint256 finalAmount;                                         
            if (_isExFromAll[sender] || _isExFromAll[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = getTransferringTokens(sender, recipient, amount);
            }
            if(_maxWalletDisabled && !_isExFromWalletLimit[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWalletAmount);

            uint256 amountToReduce = (!_maxWalletDisabled && _isExFromAll[sender]) ? amount.sub(finalAmount) : amount;
            _balances[sender] = _balances[sender].sub(amountToReduce, "Insufficient Balance");
            _balances[recipient] = _balances[recipient].add(finalAmount);
            emit Transfer(sender, recipient, finalAmount);
            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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    function performSwap(uint256 tAmount) private lockSwap {
        uint256 lpFeetokens = tAmount.mul(_taxSeperateLp).div(_taxSeperateTotal).div(2);
        uint256 tokensToSwap = tAmount.sub(lpFeetokens);

        swapTokensForETH(tokensToSwap);
        uint256 ethCA = address(this).balance;

        uint256 totalETHFee = _taxSeperateTotal.sub(_taxSeperateLp.div(2));
        
        uint256 amountETHLiquidity = ethCA.mul(_taxSeperateLp).div(totalETHFee).div(2);
        uint256 amountETHDevelopment = ethCA.mul(_taxSeperateDev).div(totalETHFee);
        uint256 amountETHMarketing = ethCA.sub(amountETHLiquidity).sub(amountETHDevelopment);

        if(amountETHMarketing > 0)
            sendEth(_marketingWallet, amountETHMarketing);

        if(amountETHDevelopment > 0)
            sendEth(_devWallet, amountETHDevelopment);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function sendEth(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
}

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":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600660809081526544657261636560d01b60a05260029062000027908262000645565b5060408051808201909152600681526544455241434560d01b602082015260039062000054908262000645565b506004805460ff19166009179055670de0b6b3a764000060055566470de4df82000060068190556007556509184e72a0006008556000600b8190556016600c819055600d829055600e819055600f82905560108190556011829055601255601b8054630100010063ffffff0019909116179055601c819055600a601d819055601e91909155601f55348015620000e957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005543360009081526015602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b8919062000711565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c919062000711565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000711565b600a80546001600160a01b039283166001600160a01b0319918216179091556009805492841692821683179055600554306000908152601660209081526040808320958352949052929092209190915560138054821673e518ffbc7e52d4120ea82d21240e44b6223e3c2a90811790915560148054909216179055600d54600c54600b546200033d929162000336919062000531565b9062000531565b600e55601154601054600f546200035b929162000336919062000531565b601255601e54601d54601c5462000379929162000336919062000531565b601f55600160176000620003956000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560135490911681526017909252812080549092166001908117909255601890620003f56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600a549091168152601890925280822080548416600190811790915530835290822080549093168117909255601990620004656000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560135482168152601984528281208054861660019081179091553082528382208054871682179055600a549092168152601a90935291208054909216179055620004da3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200052291815260200190565b60405180910390a3506200075e565b6000806200054083856200073c565b905083811015620005975760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005cb57607f821691505b602082108103620005ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200064057600081815260208120601f850160051c810160208610156200061b5750805b601f850160051c820191505b818110156200063c5782815560010162000627565b5050505b505050565b81516001600160401b03811115620006615762000661620005a0565b6200067981620006728454620005b6565b84620005f2565b602080601f831160018114620006b15760008415620006985750858301515b600019600386901b1c1916600185901b1785556200063c565b600085815260208120601f198616915b82811015620006e257888601518255948401946001909101908401620006c1565b5085821015620007015787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200072457600080fd5b81516001600160a01b03811681146200059757600080fd5b808201808211156200059a57634e487b7160e01b600052601160045260246000fd5b6114f3806200076e6000396000f3fe6080604052600436106100f75760003560e01c8063751039fc1161008a578063a9059cbb11610059578063a9059cbb1461028a578063aa4bde28146102aa578063dd62ed3e146102c0578063f2fde38b1461030657600080fd5b8063751039fc146102225780638c0b5e22146102375780638da5cb5b1461024d57806395d89b411461027557600080fd5b806323b872dd116100c657806323b872dd14610193578063313ce567146101b357806370a08231146101d5578063715018a61461020b57600080fd5b80630445b6671461010357806306fdde031461012c578063095ea7b31461014e57806318160ddd1461017e57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061011960085481565b6040519081526020015b60405180910390f35b34801561013857600080fd5b50610141610326565b60405161012391906111e4565b34801561015a57600080fd5b5061016e61016936600461124a565b6103b8565b6040519015158152602001610123565b34801561018a57600080fd5b50600554610119565b34801561019f57600080fd5b5061016e6101ae366004611276565b6103cf565b3480156101bf57600080fd5b5060045460405160ff9091168152602001610123565b3480156101e157600080fd5b506101196101f03660046112b7565b6001600160a01b031660009081526015602052604090205490565b34801561021757600080fd5b5061022061043a565b005b34801561022e57600080fd5b506102206104b7565b34801561024357600080fd5b5061011960065481565b34801561025957600080fd5b506000546040516001600160a01b039091168152602001610123565b34801561028157600080fd5b5061014161050a565b34801561029657600080fd5b5061016e6102a536600461124a565b610519565b3480156102b657600080fd5b5061011960075481565b3480156102cc57600080fd5b506101196102db3660046112d4565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b34801561031257600080fd5b506102206103213660046112b7565b610526565b6060600280546103359061130d565b80601f01602080910402602001604051908101604052809291908181526020018280546103619061130d565b80156103ae5780601f10610383576101008083540402835291602001916103ae565b820191906000526020600020905b81548152906001019060200180831161039157829003601f168201915b5050505050905090565b60006103c5338484610610565b5060015b92915050565b60006103dc848484610734565b5061042f843361042a85604051806060016040528060288152602001611496602891396001600160a01b038a1660009081526016602090815260408083203384529091529020549190610b88565b610610565b5060015b9392505050565b6000546001600160a01b0316331461046d5760405162461bcd60e51b815260040161046490611347565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104e15760405162461bcd60e51b815260040161046490611347565b600554600655601b805463ff000000191690556001600c8190556010819055600e819055601255565b6060600380546103359061130d565b600061042f338484610734565b6000546001600160a01b031633146105505760405162461bcd60e51b815260040161046490611347565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610464565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610464565b6001600160a01b0382166106d35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610464565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661079a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610464565b6001600160a01b0383166107fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610464565b601b5460ff161561081957610812848484610bc2565b9050610433565b6001600160a01b03841660009081526019602052604090205460ff1615801561085b57506001600160a01b03831660009081526019602052604090205460ff16155b156108c3576006548211156108c35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610464565b30600090815260156020526040902054600854811080159081906108ea5750601b5460ff16155b801561090e57506001600160a01b0385166000908152601a602052604090205460ff165b80156109215750601b54610100900460ff165b801561094657506001600160a01b03861660009081526017602052604090205460ff16155b8015610953575060085484115b1561097857601b5462010000900460ff161561096f5760085491505b61097882610ca8565b6001600160a01b03861660009081526017602052604081205460ff16806109b757506001600160a01b03861660009081526017602052604090205460ff165b156109c35750836109d1565b6109ce878787610db6565b90505b601b546301000000900460ff168015610a0357506001600160a01b03861660009081526018602052604090205460ff16155b15610a3f57600754610a3482610a2e896001600160a01b031660009081526015602052604090205490565b90610ebc565b1115610a3f57600080fd5b601b546000906301000000900460ff16158015610a7457506001600160a01b03881660009081526017602052604090205460ff165b610a7e5785610a88565b610a888683610f1b565b9050610af08160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250601560008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610b889092919063ffffffff16565b6001600160a01b03808a166000908152601560205260408082209390935590891681522054610b1f9083610ebc565b6001600160a01b0380891660008181526015602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b739086815260200190565b60405180910390a36001945050505050610433565b60008184841115610bac5760405162461bcd60e51b815260040161046491906111e4565b506000610bb98486611392565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601590915291822054610c13918490610b88565b6001600160a01b038086166000908152601560205260408082209390935590851681522054610c429083610ebc565b6001600160a01b0380851660008181526015602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c969086815260200190565b60405180910390a35060019392505050565b601b805460ff19166001179055601f54601c54600091610cd891600291610cd29182908790610f5d565b90610fdf565b90506000610ce68383610f1b565b9050610cf181611021565b601c544790600090610d1190610d08906002610fdf565b601f5490610f1b565b90506000610d336002610cd284610cd2601c5488610f5d90919063ffffffff16565b90506000610d5083610cd2601e5487610f5d90919063ffffffff16565b90506000610d6882610d628786610f1b565b90610f1b565b90508015610d8657601354610d86906001600160a01b03168261117b565b8115610da257601454610da2906001600160a01b03168361117b565b5050601b805460ff19169055505050505050565b6001600160a01b0383166000908152601a6020526040812054819060ff1615610dfa57610df36064610cd2600e5486610f5d90919063ffffffff16565b9050610e38565b6001600160a01b0384166000908152601a602052604090205460ff1615610e3857610e356064610cd260125486610f5d90919063ffffffff16565b90505b8015610eb25730600090815260156020526040902054610e589082610ebc565b30600081815260156020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea99085815260200190565b60405180910390a35b610bb98382610f1b565b600080610ec983856113a5565b9050838110156104335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610464565b600061043383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b88565b600082600003610f6f575060006103c9565b6000610f7b83856113b8565b905082610f8885836113cf565b146104335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610464565b600061043383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111b6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611056576110566113f1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190611407565b816001815181106110e6576110e66113f1565b6001600160a01b03928316602091820292909201015260095461110c9130911684610610565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611145908590600090869030904290600401611424565b600060405180830381600087803b15801561115f57600080fd5b505af1158015611173573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111b1573d6000803e3d6000fd5b505050565b600081836111d75760405162461bcd60e51b815260040161046491906111e4565b506000610bb984866113cf565b600060208083528351808285015260005b81811015611211578581018301518582016040015282016111f5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461124757600080fd5b50565b6000806040838503121561125d57600080fd5b823561126881611232565b946020939093013593505050565b60008060006060848603121561128b57600080fd5b833561129681611232565b925060208401356112a681611232565b929592945050506040919091013590565b6000602082840312156112c957600080fd5b813561043381611232565b600080604083850312156112e757600080fd5b82356112f281611232565b9150602083013561130281611232565b809150509250929050565b600181811c9082168061132157607f821691505b60208210810361134157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103c9576103c961137c565b808201808211156103c9576103c961137c565b80820281158282048414176103c9576103c961137c565b6000826113ec57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561141957600080fd5b815161043381611232565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114745784516001600160a01b03168352938301939183019160010161144f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ab84102e483b35723ce42cd37b4e013057074df4834f874be53e8a9b1a35d3cb64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063751039fc1161008a578063a9059cbb11610059578063a9059cbb1461028a578063aa4bde28146102aa578063dd62ed3e146102c0578063f2fde38b1461030657600080fd5b8063751039fc146102225780638c0b5e22146102375780638da5cb5b1461024d57806395d89b411461027557600080fd5b806323b872dd116100c657806323b872dd14610193578063313ce567146101b357806370a08231146101d5578063715018a61461020b57600080fd5b80630445b6671461010357806306fdde031461012c578063095ea7b31461014e57806318160ddd1461017e57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061011960085481565b6040519081526020015b60405180910390f35b34801561013857600080fd5b50610141610326565b60405161012391906111e4565b34801561015a57600080fd5b5061016e61016936600461124a565b6103b8565b6040519015158152602001610123565b34801561018a57600080fd5b50600554610119565b34801561019f57600080fd5b5061016e6101ae366004611276565b6103cf565b3480156101bf57600080fd5b5060045460405160ff9091168152602001610123565b3480156101e157600080fd5b506101196101f03660046112b7565b6001600160a01b031660009081526015602052604090205490565b34801561021757600080fd5b5061022061043a565b005b34801561022e57600080fd5b506102206104b7565b34801561024357600080fd5b5061011960065481565b34801561025957600080fd5b506000546040516001600160a01b039091168152602001610123565b34801561028157600080fd5b5061014161050a565b34801561029657600080fd5b5061016e6102a536600461124a565b610519565b3480156102b657600080fd5b5061011960075481565b3480156102cc57600080fd5b506101196102db3660046112d4565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b34801561031257600080fd5b506102206103213660046112b7565b610526565b6060600280546103359061130d565b80601f01602080910402602001604051908101604052809291908181526020018280546103619061130d565b80156103ae5780601f10610383576101008083540402835291602001916103ae565b820191906000526020600020905b81548152906001019060200180831161039157829003601f168201915b5050505050905090565b60006103c5338484610610565b5060015b92915050565b60006103dc848484610734565b5061042f843361042a85604051806060016040528060288152602001611496602891396001600160a01b038a1660009081526016602090815260408083203384529091529020549190610b88565b610610565b5060015b9392505050565b6000546001600160a01b0316331461046d5760405162461bcd60e51b815260040161046490611347565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104e15760405162461bcd60e51b815260040161046490611347565b600554600655601b805463ff000000191690556001600c8190556010819055600e819055601255565b6060600380546103359061130d565b600061042f338484610734565b6000546001600160a01b031633146105505760405162461bcd60e51b815260040161046490611347565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610464565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610464565b6001600160a01b0382166106d35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610464565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661079a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610464565b6001600160a01b0383166107fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610464565b601b5460ff161561081957610812848484610bc2565b9050610433565b6001600160a01b03841660009081526019602052604090205460ff1615801561085b57506001600160a01b03831660009081526019602052604090205460ff16155b156108c3576006548211156108c35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610464565b30600090815260156020526040902054600854811080159081906108ea5750601b5460ff16155b801561090e57506001600160a01b0385166000908152601a602052604090205460ff165b80156109215750601b54610100900460ff165b801561094657506001600160a01b03861660009081526017602052604090205460ff16155b8015610953575060085484115b1561097857601b5462010000900460ff161561096f5760085491505b61097882610ca8565b6001600160a01b03861660009081526017602052604081205460ff16806109b757506001600160a01b03861660009081526017602052604090205460ff165b156109c35750836109d1565b6109ce878787610db6565b90505b601b546301000000900460ff168015610a0357506001600160a01b03861660009081526018602052604090205460ff16155b15610a3f57600754610a3482610a2e896001600160a01b031660009081526015602052604090205490565b90610ebc565b1115610a3f57600080fd5b601b546000906301000000900460ff16158015610a7457506001600160a01b03881660009081526017602052604090205460ff165b610a7e5785610a88565b610a888683610f1b565b9050610af08160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b815250601560008c6001600160a01b03166001600160a01b0316815260200190815260200160002054610b889092919063ffffffff16565b6001600160a01b03808a166000908152601560205260408082209390935590891681522054610b1f9083610ebc565b6001600160a01b0380891660008181526015602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b739086815260200190565b60405180910390a36001945050505050610433565b60008184841115610bac5760405162461bcd60e51b815260040161046491906111e4565b506000610bb98486611392565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152601590915291822054610c13918490610b88565b6001600160a01b038086166000908152601560205260408082209390935590851681522054610c429083610ebc565b6001600160a01b0380851660008181526015602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c969086815260200190565b60405180910390a35060019392505050565b601b805460ff19166001179055601f54601c54600091610cd891600291610cd29182908790610f5d565b90610fdf565b90506000610ce68383610f1b565b9050610cf181611021565b601c544790600090610d1190610d08906002610fdf565b601f5490610f1b565b90506000610d336002610cd284610cd2601c5488610f5d90919063ffffffff16565b90506000610d5083610cd2601e5487610f5d90919063ffffffff16565b90506000610d6882610d628786610f1b565b90610f1b565b90508015610d8657601354610d86906001600160a01b03168261117b565b8115610da257601454610da2906001600160a01b03168361117b565b5050601b805460ff19169055505050505050565b6001600160a01b0383166000908152601a6020526040812054819060ff1615610dfa57610df36064610cd2600e5486610f5d90919063ffffffff16565b9050610e38565b6001600160a01b0384166000908152601a602052604090205460ff1615610e3857610e356064610cd260125486610f5d90919063ffffffff16565b90505b8015610eb25730600090815260156020526040902054610e589082610ebc565b30600081815260156020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ea99085815260200190565b60405180910390a35b610bb98382610f1b565b600080610ec983856113a5565b9050838110156104335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610464565b600061043383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b88565b600082600003610f6f575060006103c9565b6000610f7b83856113b8565b905082610f8885836113cf565b146104335760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610464565b600061043383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111b6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611056576110566113f1565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190611407565b816001815181106110e6576110e66113f1565b6001600160a01b03928316602091820292909201015260095461110c9130911684610610565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611145908590600090869030904290600401611424565b600060405180830381600087803b15801561115f57600080fd5b505af1158015611173573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111b1573d6000803e3d6000fd5b505050565b600081836111d75760405162461bcd60e51b815260040161046491906111e4565b506000610bb984866113cf565b600060208083528351808285015260005b81811015611211578581018301518582016040015282016111f5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461124757600080fd5b50565b6000806040838503121561125d57600080fd5b823561126881611232565b946020939093013593505050565b60008060006060848603121561128b57600080fd5b833561129681611232565b925060208401356112a681611232565b929592945050506040919091013590565b6000602082840312156112c957600080fd5b813561043381611232565b600080604083850312156112e757600080fd5b82356112f281611232565b9150602083013561130281611232565b809150509250929050565b600181811c9082168061132157607f821691505b60208210810361134157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103c9576103c961137c565b808201808211156103c9576103c961137c565b80820281158282048414176103c9576103c961137c565b6000826113ec57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561141957600080fd5b815161043381611232565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114745784516001600160a01b03168352938301939183019160010161144f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ab84102e483b35723ce42cd37b4e013057074df4834f874be53e8a9b1a35d3cb64736f6c63430008130033

Deployed Bytecode Sourcemap

5046:9111:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5433:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5433:48:0;;;;;;;;7883:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8280:161::-;;;;;;;;;;-1:-1:-1;8280:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8280:161:0;1205:187:1;8160:100:0;;;;;;;;;;-1:-1:-1;8240:12:0;;8160:100;;12679:313;;;;;;;;;;-1:-1:-1;12679:313:0;;;;;:::i;:::-;;:::i;8069:83::-;;;;;;;;;;-1:-1:-1;8135:9:0;;8069:83;;8135:9;;;;2000:36:1;;1988:2;1973:18;8069:83:0;1858:184:1;8449:119:0;;;;;;;;;;-1:-1:-1;8449:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8542:18:0;8515:7;8542:18;;;:9;:18;;;;;;;8449:119;3359:148;;;;;;;;;;;;;:::i;:::-;;9127:221;;;;;;;;;;;;;:::i;5313:51::-;;;;;;;;;;;;;;;;3134:79;;;;;;;;;;-1:-1:-1;3172:7:0;3199:6;3134:79;;-1:-1:-1;;;;;3199:6:0;;;2445:51:1;;2433:2;2418:18;3134:79:0;2299:203:1;7974:87:0;;;;;;;;;;;;;:::i;13866:167::-;;;;;;;;;;-1:-1:-1;13866:167:0;;;;;:::i;:::-;;:::i;5371:55::-;;;;;;;;;;;;;;;;12524:143;;;;;;;;;;-1:-1:-1;12524:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12632:18:0;;;12605:7;12632:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12524:143;3515:244;;;;;;;;;;-1:-1:-1;3515:244:0;;;;;:::i;:::-;;:::i;7883:83::-;7920:13;7953:5;7946:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7883:83;:::o;8280:161::-;8355:4;8372:39;1047:10;8395:7;8404:6;8372:8;:39::i;:::-;-1:-1:-1;8429:4:0;8280:161;;;;;:::o;12679:313::-;12777:4;12794:36;12804:6;12812:9;12823:6;12794:9;:36::i;:::-;-1:-1:-1;12841:121:0;12850:6;1047:10;12872:89;12910:6;12872:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12872:19:0;;;;;;:11;:19;;;;;;;;1047:10;12872:33;;;;;;;;;;:37;:89::i;:::-;12841:8;:121::i;:::-;-1:-1:-1;12980:4:0;12679:313;;;;;;:::o;3359:148::-;3268:6;;-1:-1:-1;;;;;3268:6:0;1047:10;3268:22;3260:67;;;;-1:-1:-1;;;3260:67:0;;;;;;;:::i;:::-;;;;;;;;;3466:1:::1;3450:6:::0;;3429:40:::1;::::0;-1:-1:-1;;;;;3450:6:0;;::::1;::::0;3429:40:::1;::::0;3466:1;;3429:40:::1;3497:1;3480:19:::0;;-1:-1:-1;;;;;;3480:19:0::1;::::0;;3359:148::o;9127:221::-;3268:6;;-1:-1:-1;;;;;3268:6:0;1047:10;3268:22;3260:67;;;;-1:-1:-1;;;3260:67:0;;;;;;;:::i;:::-;9195:12:::1;::::0;9181:11:::1;:26:::0;9218:18:::1;:26:::0;;-1:-1:-1;;9218:26:0::1;::::0;;;9255:10:::1;:14:::0;;;9280:11:::1;:15:::0;;;9306:7:::1;:11:::0;;;9328:8:::1;:12:::0;9127:221::o;7974:87::-;8013:13;8046:7;8039:14;;;;;:::i;13866:167::-;13944:4;13961:42;1047:10;13985:9;13996:6;13961:9;:42::i;3515:244::-;3268:6;;-1:-1:-1;;;;;3268:6:0;1047:10;3268:22;3260:67;;;;-1:-1:-1;;;3260:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3604:22:0;::::1;3596:73;;;::::0;-1:-1:-1;;;3596:73:0;;3848:2:1;3596:73:0::1;::::0;::::1;3830:21:1::0;3887:2;3867:18;;;3860:30;3926:34;3906:18;;;3899:62;-1:-1:-1;;;3977:18:1;;;3970:36;4023:19;;3596:73:0::1;3646:402:1::0;3596:73:0::1;3706:6;::::0;;3685:38:::1;::::0;-1:-1:-1;;;;;3685:38:0;;::::1;::::0;3706:6;::::1;::::0;3685:38:::1;::::0;::::1;3734:6;:17:::0;;-1:-1:-1;;;;;;3734:17:0::1;-1:-1:-1::0;;;;;3734:17:0;;;::::1;::::0;;;::::1;::::0;;3515:244::o;9356:337::-;-1:-1:-1;;;;;9449:19:0;;9441:68;;;;-1:-1:-1;;;9441:68:0;;4255:2:1;9441:68:0;;;4237:21:1;4294:2;4274:18;;;4267:30;4333:34;4313:18;;;4306:62;-1:-1:-1;;;4384:18:1;;;4377:34;4428:19;;9441:68:0;4053:400:1;9441:68:0;-1:-1:-1;;;;;9528:21:0;;9520:68;;;;-1:-1:-1;;;9520:68:0;;4660:2:1;9520:68:0;;;4642:21:1;4699:2;4679:18;;;4672:30;4738:34;4718:18;;;4711:62;-1:-1:-1;;;4789:18:1;;;4782:32;4831:19;;9520:68:0;4458:398:1;9520:68:0;-1:-1:-1;;;;;9601:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9653:32;;160:25:1;;;9653:32:0;;133:18:1;9653:32:0;;;;;;;9356:337;;;:::o;10270:1884::-;10357:4;-1:-1:-1;;;;;10382:20:0;;10374:70;;;;-1:-1:-1;;;10374:70:0;;5063:2:1;10374:70:0;;;5045:21:1;5102:2;5082:18;;;5075:30;5141:34;5121:18;;;5114:62;-1:-1:-1;;;5192:18:1;;;5185:35;5237:19;;10374:70:0;4861:401:1;10374:70:0;-1:-1:-1;;;;;10463:23:0;;10455:71;;;;-1:-1:-1;;;10455:71:0;;5469:2:1;10455:71:0;;;5451:21:1;5508:2;5488:18;;;5481:30;5547:34;5527:18;;;5520:62;-1:-1:-1;;;5598:18:1;;;5591:33;5641:19;;10455:71:0;5267:399:1;10455:71:0;10540:8;;;;10537:1610;;;10582:41;10597:6;10605:9;10616:6;10582:14;:41::i;:::-;10575:48;;;;10537:1610;-1:-1:-1;;;;;10679:24:0;;;;;;:16;:24;;;;;;;;10678:25;:57;;;;-1:-1:-1;;;;;;10708:27:0;;;;;;:16;:27;;;;;;;;10707:28;10678:57;10675:171;;;10774:11;;10764:6;:21;;10756:74;;;;-1:-1:-1;;;10756:74:0;;5873:2:1;10756:74:0;;;5855:21:1;5912:2;5892:18;;;5885:30;5951:34;5931:18;;;5924:62;-1:-1:-1;;;6002:18:1;;;5995:38;6050:19;;10756:74:0;5671:404:1;10756:74:0;10913:4;10874:18;8542;;;:9;:18;;;;;;10967:13;;10953:27;;;;;;;11013:24;;-1:-1:-1;11029:8:0;;;;11028:9;11013:24;:53;;;;-1:-1:-1;;;;;;11041:25:0;;;;;;:14;:25;;;;;;;;11013:53;:72;;;;-1:-1:-1;11070:15:0;;;;;;;11013:72;:97;;;;-1:-1:-1;;;;;;11090:20:0;;;;;;:12;:20;;;;;;;;11089:21;11013:97;:123;;;;;11123:13;;11114:6;:22;11013:123;11009:290;;;11174:14;;;;;;;11171:66;;;11224:13;;11211:26;;11171:66;11256:23;11268:10;11256:11;:23::i;:::-;-1:-1:-1;;;;;11394:20:0;;11315:19;11394:20;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;11418:23:0;;;;;;:12;:23;;;;;;;;11394:47;11390:211;;;-1:-1:-1;11476:6:0;11390:211;;;11537:48;11559:6;11567:9;11578:6;11537:21;:48::i;:::-;11523:62;;11390:211;11618:18;;;;;;;:54;;;;-1:-1:-1;;;;;;11641:31:0;;;;;;:20;:31;;;;;;;;11640:32;11618:54;11615:141;;;11740:15;;11699:37;11724:11;11699:20;11709:9;-1:-1:-1;;;;;8542:18:0;8515:7;8542:18;;;:9;:18;;;;;;;8449:119;11699:20;:24;;:37::i;:::-;:56;;11691:65;;;;;;11800:18;;11773:22;;11800:18;;;;;11799:19;:43;;;;-1:-1:-1;;;;;;11822:20:0;;;;;;:12;:20;;;;;;;;11799:43;11798:80;;11872:6;11798:80;;;11846:23;:6;11857:11;11846:10;:23::i;:::-;11773:105;;11913:61;11935:14;11913:61;;;;;;;;;;;;;-1:-1:-1;;;11913:61:0;;;:9;:17;11923:6;-1:-1:-1;;;;;11913:17:0;-1:-1:-1;;;;;11913:17:0;;;;;;;;;;;;;:21;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;11893:17:0;;;;;;;:9;:17;;;;;;:81;;;;12012:20;;;;;;;:37;;12037:11;12012:24;:37::i;:::-;-1:-1:-1;;;;;11989:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12069:40;;;;;;;;;;12097:11;160:25:1;;148:2;133:18;;14:177;12069:40:0;;;;;;;;12131:4;12124:11;;;;;;;;1671:192;1757:7;1793:12;1785:6;;;;1777:29;;;;-1:-1:-1;;;1777:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1817:9:0;1829:5;1833:1;1829;:5;:::i;:::-;1817:17;1671:192;-1:-1:-1;;;;;1671:192:0:o;12178:330::-;12308:53;;;;;;;;;;;-1:-1:-1;;;12308:53:0;;;;;;;;-1:-1:-1;;;;;12308:17:0;;12271:4;12308:17;;;:9;:17;;;;;;;:53;;12330:6;;12308:21;:53::i;:::-;-1:-1:-1;;;;;12288:17:0;;;;;;;:9;:17;;;;;;:73;;;;12395:20;;;;;;;:32;;12420:6;12395:24;:32::i;:::-;-1:-1:-1;;;;;12372:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12443:35;;;;;;;;;;12471:6;160:25:1;;148:2;133:18;;14:177;12443:35:0;;;;;;;;-1:-1:-1;12496:4:0;12178:330;;;;;:::o;13004:854::-;6477:8;:15;;-1:-1:-1;;6477:15:0;6488:4;6477:15;;;13124:17:::1;::::0;13104:14:::1;::::0;6477:8;;13092:57:::1;::::0;13147:1:::1;::::0;13092:50:::1;::::0;;;:7;;:11:::1;:27::i;:::-;:31:::0;::::1;:50::i;:57::-;13070:79:::0;-1:-1:-1;13160:20:0::1;13183:24;:7:::0;13070:79;13183:11:::1;:24::i;:::-;13160:47;;13220:30;13237:12;13220:16;:30::i;:::-;13355:14;::::0;13277:21:::1;::::0;13261:13:::1;::::0;13333:44:::1;::::0;13355:21:::1;::::0;13374:1:::1;13355:18;:21::i;:::-;13333:17;::::0;;:21:::1;:44::i;:::-;13311:66;;13398:26;13427:49;13474:1;13427:42;13457:11;13427:25;13437:14;;13427:5;:9;;:25;;;;:::i;:49::-;13398:78;;13487:28;13518:43;13549:11;13518:26;13528:15;;13518:5;:9;;:26;;;;:::i;:43::-;13487:74:::0;-1:-1:-1;13572:26:0::1;13601:55;13487:74:::0;13601:29:::1;:5:::0;13611:18;13601:9:::1;:29::i;:::-;:33:::0;::::1;:55::i;:::-;13572:84:::0;-1:-1:-1;13672:22:0;;13669:85:::1;;13717:16;::::0;13709:45:::1;::::0;-1:-1:-1;;;;;13717:16:0::1;13735:18:::0;13709:7:::1;:45::i;:::-;13770:24:::0;;13767:83:::1;;13817:10;::::0;13809:41:::1;::::0;-1:-1:-1;;;;;13817:10:0::1;13829:20:::0;13809:7:::1;:41::i;:::-;-1:-1:-1::0;;6515:8:0;:16;;-1:-1:-1;;6515:16:0;;;-1:-1:-1;;;;;;13004:854:0:o;8576:498::-;-1:-1:-1;;;;;8725:22:0;;8676:7;8725:22;;;:14;:22;;;;;;8676:7;;8725:22;;8722:147;;;8756:28;8780:3;8756:19;8767:7;;8756:6;:10;;:19;;;;:::i;:28::-;8750:34;;8722:147;;;-1:-1:-1;;;;;8804:25:0;;;;;;:14;:25;;;;;;;;8801:68;;;8838:29;8863:3;8838:20;8849:8;;8838:6;:10;;:20;;;;:::i;:29::-;8832:35;;8801:68;8882:7;;8879:155;;8951:4;8933:24;;;;:9;:24;;;;;;:33;;8962:3;8933:28;:33::i;:::-;8924:4;8906:24;;;;:9;:24;;;;;;;:60;;;;8986:36;;-1:-1:-1;;;;;8986:36:0;;;;;;;9018:3;160:25:1;;148:2;133:18;;14:177;8986:36:0;;;;;;;;8879:155;9051:15;:6;9062:3;9051:10;:15::i;1338:181::-;1396:7;;1428:5;1432:1;1428;:5;:::i;:::-;1416:17;;1457:1;1452;:6;;1444:46;;;;-1:-1:-1;;;1444:46:0;;6677:2:1;1444:46:0;;;6659:21:1;6716:2;6696:18;;;6689:30;6755:29;6735:18;;;6728:57;6802:18;;1444:46:0;6475:351:1;1527:136:0;1585:7;1612:43;1616:1;1619;1612:43;;;;;;;;;;;;;;;;;:3;:43::i;1871:250::-;1929:7;1953:1;1958;1953:6;1949:47;;-1:-1:-1;1983:1:0;1976:8;;1949:47;2008:9;2020:5;2024:1;2020;:5;:::i;:::-;2008:17;-1:-1:-1;2053:1:0;2044:5;2048:1;2008:17;2044:5;:::i;:::-;:10;2036:56;;;;-1:-1:-1;;;2036:56:0;;7428:2:1;2036:56:0;;;7410:21:1;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;-1:-1:-1;;;7557:18:1;;;7550:31;7598:19;;2036:56:0;7226:397:1;2129:132:0;2187:7;2214:39;2218:1;2221;2214:39;;;;;;;;;;;;;;;;;:3;:39::i;9705:549::-;9795:16;;;9809:1;9795:16;;;;;;;;9771:21;;9795:16;;;;;;;;;;-1:-1:-1;9795:16:0;9771:40;;9840:4;9822;9827:1;9822:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9822:23:0;;;:7;;;;;;;;;;:23;;;;9866:14;;:21;;;-1:-1:-1;;;9866:21:0;;;;:14;;;;;:19;;:21;;;;;9822:7;;9866:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9856:4;9861:1;9856:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9856:31:0;;;:7;;;;;;;;;:31;9932:14;;9900:61;;9917:4;;9932:14;9949:11;9900:8;:61::i;:::-;10007:14;;:239;;-1:-1:-1;;;10007:239:0;;-1:-1:-1;;;;;10007:14:0;;;;:65;;:239;;10087:11;;10007:14;;10157:4;;10184;;10220:15;;10007:239;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9760:494;9705:549;:::o;14041:113::-;14120:26;;-1:-1:-1;;;;;14120:18:0;;;:26;;;;;14139:6;;14120:26;;;;14139:6;14120:18;:26;;;;;;;;;;;;;;;;;;;;;14041:113;;:::o;2269:189::-;2355:7;2390:12;2383:5;2375:28;;;;-1:-1:-1;;;2375:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2414:9:0;2426:5;2430:1;2426;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:380::-;2979:1;2975:12;;;;3022;;;3043:61;;3097:4;3089:6;3085:17;3075:27;;3043:61;3150:2;3142:6;3139:14;3119:18;3116:38;3113:161;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3113:161;;2900:380;;;:::o;3285:356::-;3487:2;3469:21;;;3506:18;;;3499:30;3565:34;3560:2;3545:18;;3538:62;3632:2;3617:18;;3285:356::o;6080:127::-;6141:10;6136:3;6132:20;6129:1;6122:31;6172:4;6169:1;6162:15;6196:4;6193:1;6186:15;6212:128;6279:9;;;6300:11;;;6297:37;;;6314:18;;:::i;6345:125::-;6410:9;;;6431:10;;;6428:36;;;6444:18;;:::i;6831:168::-;6904:9;;;6935;;6952:15;;;6946:22;;6932:37;6922:71;;6973:18;;:::i;7004:217::-;7044:1;7070;7060:132;;7114:10;7109:3;7105:20;7102:1;7095:31;7149:4;7146:1;7139:15;7177:4;7174:1;7167:15;7060:132;-1:-1:-1;7206:9:1;;7004:217::o;7760:127::-;7821:10;7816:3;7812:20;7809:1;7802:31;7852:4;7849:1;7842:15;7876:4;7873:1;7866:15;7892:251;7962:6;8015:2;8003:9;7994:7;7990:23;7986:32;7983:52;;;8031:1;8028;8021:12;7983:52;8063:9;8057:16;8082:31;8107:5;8082:31;:::i;8148:980::-;8410:4;8458:3;8447:9;8443:19;8489:6;8478:9;8471:25;8515:2;8553:6;8548:2;8537:9;8533:18;8526:34;8596:3;8591:2;8580:9;8576:18;8569:31;8620:6;8655;8649:13;8686:6;8678;8671:22;8724:3;8713:9;8709:19;8702:26;;8763:2;8755:6;8751:15;8737:29;;8784:1;8794:195;8808:6;8805:1;8802:13;8794:195;;;8873:13;;-1:-1:-1;;;;;8869:39:1;8857:52;;8964:15;;;;8929:12;;;;8905:1;8823:9;8794:195;;;-1:-1:-1;;;;;;;9045:32:1;;;;9040:2;9025:18;;9018:60;-1:-1:-1;;;9109:3:1;9094:19;9087:35;9006:3;8148:980;-1:-1:-1;;;8148:980:1:o

Swarm Source

ipfs://ab84102e483b35723ce42cd37b4e013057074df4834f874be53e8a9b1a35d3cb
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.