ETH Price: $3,331.95 (-3.91%)

Token

Vampire Slayers (SLAY)
 

Overview

Max Total Supply

500,000,000 SLAY

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0 SLAY

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
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:
VampireSlayersToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-11
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

/**
 * @title Owner
 * @dev Set & change owner
 */
contract Ownable {

    address private owner;
    
    // event for EVM logging
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    // modifier to check if caller is owner
    modifier onlyOwner() {
        // If the first argument of 'require' evaluates to 'false', execution terminates and all
        // changes to the state and to Ether balances are reverted.
        // This used to consume all gas in old EVM versions, but not anymore.
        // It is often a good idea to use 'require' to check if functions are called correctly.
        // As a second argument, you can also provide an explanation about what went wrong.
        require(msg.sender == owner, "Caller is not owner");
        _;
    }
    
    /**
     * @dev Set contract deployer as owner
     */
    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }

    /**
     * @dev Change owner
     * @param newOwner address of new owner
     */
    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    /**
     * @dev Return owner address 
     * @return address of owner
     */
    function getOwner() external view returns (address) {
        return owner;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);
    
    function symbol() external view returns(string memory);
    
    function name() external view returns(string memory);

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

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

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

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

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

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

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

/**
    Modular Upgradeable-Tokenomics Immutable Token System
 */
contract VampireSlayersToken is IERC20, Ownable {

    // total supply
    uint256 private _totalSupply = 500_000_000 * 10**18;

    // token data
    string private constant _name = 'Vampire Slayers';
    string private constant _symbol = 'SLAY';
    uint8  private constant _decimals = 18;

    // balances
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    // Taxation on transfers
    uint256 public buyFee             = 100;
    uint256 public sellFee            = 200;
    uint256 public transferFee        = 0;
    uint256 public constant TAX_DENOM = 10000;

    // permissions
    struct Permissions {
        bool isFeeExempt;
        bool isLiquidityPool;
    }
    mapping ( address => Permissions ) public permissions;

    // Fee Recipients
    address public sellFeeRecipient;
    address public buyFeeRecipient;
    address public transferFeeRecipient;
    
    constructor() {

        // exempt sender for tax-free initial distribution
        permissions[msg.sender].isFeeExempt = true;
        permissions[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D].isFeeExempt = true;

        // initial supply allocation
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    /////////////////////////////////
    /////    ERC20 FUNCTIONS    /////
    /////////////////////////////////

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    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 name() public pure override returns (string memory) {
        return _name;
    }

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

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

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

    /** Transfer Function */
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    /** Transfer Function */
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(
            _allowances[sender][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[sender][msg.sender] -= amount;
        return _transfer(sender, recipient, amount);
    }


    /////////////////////////////////
    /////   PUBLIC FUNCTIONS    /////
    /////////////////////////////////


    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) external {
        require(
            _allowances[account][msg.sender] >= amount,
            'Insufficient Allowance'
        );
        _allowances[account][msg.sender] -= amount;
        _burn(account, amount);
    }

    receive() external payable {}

    /////////////////////////////////
    /////    OWNER FUNCTIONS    /////
    /////////////////////////////////

    function withdrawTokens(address token) external onlyOwner {
        require(token != address(0), 'Zero');
        bool s = IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
        require(s);
    }

    function withdrawNative() external onlyOwner {
        (bool s,) = payable(msg.sender).call{value: address(this).balance}("");
        require(s);
    }

    function setTransferFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero');
        transferFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
    }

    function setBuyFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero');
        buyFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
    }

    function setSellFeeRecipient(address recipient) external onlyOwner {
        require(recipient != address(0), 'Zero');
        sellFeeRecipient = recipient;
        permissions[recipient].isFeeExempt = true;
    }

    function registerAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(!permissions[account].isLiquidityPool, 'AMM');
        permissions[account].isLiquidityPool = true;
    }

    function unRegisterAutomatedMarketMaker(address account) external onlyOwner {
        require(account != address(0), 'Zero Address');
        require(permissions[account].isLiquidityPool, 'Not AMM');
        permissions[account].isLiquidityPool = false;
    }

    function setFees(uint _buyFee, uint _sellFee, uint _transferFee) external onlyOwner {
        require(
            _buyFee <= 2500,
            'Buy Fee Too High'
        );
        require(
            _sellFee <= 2500,
            'Sell Fee Too High'
        );
        require(
            _transferFee <= 2500,
            'Transfer Fee Too High'
        );

        buyFee = _buyFee;
        sellFee = _sellFee;
        transferFee = _transferFee;
    }

    function setFeeExempt(address account, bool isExempt) external onlyOwner {
        require(account != address(0), 'Zero Address');
        permissions[account].isFeeExempt = isExempt;
    }

    
    /////////////////////////////////
    /////     READ FUNCTIONS    /////
    /////////////////////////////////

    function getTax(address sender, address recipient, uint256 amount) public view returns (uint256, address) {
        if ( permissions[sender].isFeeExempt || permissions[recipient].isFeeExempt ) {
            return (0, address(0));
        }
        return permissions[recipient].isLiquidityPool ? 
               ((amount * sellFee) / TAX_DENOM, sellFeeRecipient) :
               permissions[sender].isLiquidityPool ? 
                ((amount * buyFee) / TAX_DENOM, buyFeeRecipient) : 
               ((amount * transferFee) / TAX_DENOM, transferFeeRecipient);
    }

    //////////////////////////////////
    /////   INTERNAL FUNCTIONS   /////
    //////////////////////////////////

    /** Internal Transfer */
    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(
            recipient != address(0),
            'Zero Recipient'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= balanceOf(sender),
            'Insufficient Balance'
        );
        
        // decrement sender balance
        _balances[sender] -= amount;

        // fee for transaction
        (uint256 fee, address feeDestination) = getTax(sender, recipient, amount);

        // give amount to recipient less fee
        uint256 sendAmount = amount - fee;
        require(sendAmount > 0, 'Zero Amount');

        // allocate balance
        unchecked {
            _balances[recipient] += sendAmount;
        }
        emit Transfer(sender, recipient, sendAmount);

        // allocate fee if any
        if (fee > 0) {

            // allocate amount to recipient
            address feeRecipient = feeDestination != address(0) ? feeDestination : address(this);

            // allocate fee
            unchecked {
                _balances[feeRecipient] += fee;
            }
            emit Transfer(sender, feeRecipient, fee);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal returns (bool) {
        require(
            account != address(0),
            'Zero Address'
        );
        require(
            amount > 0,
            'Zero Amount'
        );
        require(
            amount <= _balances[account],
            'Insufficient Balance'
        );

        // delete from balance and supply
        _balances[account] -= amount;
        _totalSupply -= amount;

        // emit transfer
        emit Transfer(account, address(0), amount);
        return true;
    }
}

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":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","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":"TAX_DENOM","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"permissions","outputs":[{"internalType":"bool","name":"isFeeExempt","type":"bool"},{"internalType":"bool","name":"isLiquidityPool","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"registerAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setBuyFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setSellFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setTransferFeeRecipient","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferFeeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"account","type":"address"}],"name":"unRegisterAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b019d971e4fe8401e74000000600155606460045560c8600555600060065534801561002f57600080fd5b50600080546001600160a01b0319163390811782556040519091907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a33360008181526007602090815260408083208054600160ff1991821681179092557ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805490911682179055546002835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36116f6806101046000396000f3fe6080604052600436106101dc5760003560e01c806367ffa82811610102578063a6f9dae111610095578063cec10c1111610064578063cec10c11146105bb578063d7ad21ac146105db578063dd62ed3e14610618578063f89532a21461065e57600080fd5b8063a6f9dae114610545578063a9059cbb14610565578063ac4dcb7614610585578063acb2ad6f146105a557600080fd5b80638ebfc796116100d15780638ebfc796146104b857806392a39d91146104d857806395d89b41146104f85780639a44b9e31461052557600080fd5b806367ffa8281461042457806370a082311461044457806379cc67901461047a578063893d20e81461049a57600080fd5b8063304561bb1161017a578063470624021161014957806347062402146103b957806349df728c146103cf57806350431ce4146103ef57806365fe050e1461040457600080fd5b8063304561bb14610325578063313ce5671461035d5780633eb193e21461037957806342966c681461039957600080fd5b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102cd5780632ac7b824146102ed5780632b14ca561461030f57600080fd5b806301e88208146101e857806306fdde031461023d578063095ea7b31461027e57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610221610203366004611406565b60076020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b34801561024957600080fd5b5060408051808201909152600f81526e56616d7069726520536c617965727360881b60208201525b6040516102349190611421565b34801561028a57600080fd5b5061029e61029936600461146f565b610674565b6040519015158152602001610234565b3480156102ba57600080fd5b506001545b604051908152602001610234565b3480156102d957600080fd5b5061029e6102e8366004611499565b6106e1565b3480156102f957600080fd5b5061030d610308366004611406565b61079e565b005b34801561031b57600080fd5b506102bf60055481565b34801561033157600080fd5b50600a54610345906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561036957600080fd5b5060405160128152602001610234565b34801561038557600080fd5b5061030d610394366004611406565b610867565b3480156103a557600080fd5b5061030d6103b43660046114d5565b6108f1565b3480156103c557600080fd5b506102bf60045481565b3480156103db57600080fd5b5061030d6103ea366004611406565b6108ff565b3480156103fb57600080fd5b5061030d610a3f565b34801561041057600080fd5b5061030d61041f366004611406565b610ac1565b34801561043057600080fd5b5061030d61043f366004611406565b610b8b565b34801561045057600080fd5b506102bf61045f366004611406565b6001600160a01b031660009081526002602052604090205490565b34801561048657600080fd5b5061030d61049536600461146f565b610c15565b3480156104a657600080fd5b506000546001600160a01b0316610345565b3480156104c457600080fd5b5061030d6104d33660046114fc565b610cc9565b3480156104e457600080fd5b50600854610345906001600160a01b031681565b34801561050457600080fd5b50604080518082019091526004815263534c415960e01b6020820152610271565b34801561053157600080fd5b50600954610345906001600160a01b031681565b34801561055157600080fd5b5061030d610560366004611406565b610d44565b34801561057157600080fd5b5061029e61058036600461146f565b610dc9565b34801561059157600080fd5b5061030d6105a0366004611406565b610ddd565b3480156105b157600080fd5b506102bf60065481565b3480156105c757600080fd5b5061030d6105d6366004611533565b610e67565b3480156105e757600080fd5b506105fb6105f6366004611499565b610f74565b604080519283526001600160a01b03909116602083015201610234565b34801561062457600080fd5b506102bf61063336600461155f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561066a57600080fd5b506102bf61271081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106cf9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156107525760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064015b60405180910390fd5b6001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107859084906115a8565b90915550610796905084848461109c565b949350505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b0381166107ee5760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b038116600090815260076020526040902054610100900460ff166108455760405162461bcd60e51b81526020600482015260076024820152664e6f7420414d4d60c81b6044820152606401610749565b6001600160a01b03166000908152600760205260409020805461ff0019169055565b6000546001600160a01b031633146108915760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b0381166108b75760405162461bcd60e51b81526004016107499061160e565b600980546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6108fb33826112bf565b5050565b6000546001600160a01b031633146109295760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b03811661094f5760405162461bcd60e51b81526004016107499061160e565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c4919061162c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190611645565b9050806108fb57600080fd5b6000546001600160a01b03163314610a695760405162461bcd60e51b8152600401610749906115bb565b604051600090339047908381818185875af1925050503d8060008114610aab576040519150601f19603f3d011682016040523d82523d6000602084013e610ab0565b606091505b5050905080610abe57600080fd5b50565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610b115760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b038116600090815260076020526040902054610100900460ff1615610b655760405162461bcd60e51b8152602060048201526003602482015262414d4d60e81b6044820152606401610749565b6001600160a01b03166000908152600760205260409020805461ff001916610100179055565b6000546001600160a01b03163314610bb55760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610bdb5760405162461bcd60e51b81526004016107499061160e565b600880546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6001600160a01b0382166000908152600360209081526040808320338452909152902054811115610c815760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610749565b6001600160a01b038216600090815260036020908152604080832033845290915281208054839290610cb49084906115a8565b90915550610cc4905082826112bf565b505050565b6000546001600160a01b03163314610cf35760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038216610d195760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d6e5760405162461bcd60e51b8152600401610749906115bb565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dd633848461109c565b9392505050565b6000546001600160a01b03163314610e075760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610e2d5760405162461bcd60e51b81526004016107499061160e565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610749906115bb565b6109c4831115610ed65760405162461bcd60e51b815260206004820152601060248201526f084eaf2408ccaca40a8dede4090d2ced60831b6044820152606401610749565b6109c4821115610f1c5760405162461bcd60e51b81526020600482015260116024820152700a6cad8d8408ccaca40a8dede4090d2ced607b1b6044820152606401610749565b6109c4811115610f665760405162461bcd60e51b81526020600482015260156024820152740a8e4c2dce6cccae4408ccaca40a8dede4090d2ced605b1b6044820152606401610749565b600492909255600555600655565b6001600160a01b038316600090815260076020526040812054819060ff1680610fb557506001600160a01b03841660009081526007602052604090205460ff165b15610fc557506000905080611094565b6001600160a01b038416600090815260076020526040902054610100900460ff16611067576001600160a01b038516600090815260076020526040902054610100900460ff1661103b57612710600654846110209190611662565b61102a9190611679565b600a546001600160a01b031661108f565b6127106004548461104c9190611662565b6110569190611679565b6009546001600160a01b031661108f565b612710600554846110789190611662565b6110829190611679565b6008546001600160a01b03165b915091505b935093915050565b60006001600160a01b0383166110e55760405162461bcd60e51b815260206004820152600e60248201526d16995c9bc8149958da5c1a595b9d60921b6044820152606401610749565b600082116111055760405162461bcd60e51b81526004016107499061169b565b6001600160a01b0384166000908152600260205260409020548211156111645760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610749565b6001600160a01b0384166000908152600260205260408120805484929061118c9084906115a8565b9091555060009050806111a0868686610f74565b909250905060006111b183866115a8565b9050600081116111d35760405162461bcd60e51b81526004016107499061169b565b6001600160a01b03808716600081815260026020526040908190208054850190555190918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112299085815260200190565b60405180910390a382156112b25760006001600160a01b03831661124d573061124f565b825b6001600160a01b03808216600081815260026020526040908190208054890190555192935091908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112a89088815260200190565b60405180910390a3505b5060019695505050505050565b60006001600160a01b0383166112e75760405162461bcd60e51b8152600401610749906115e8565b600082116113075760405162461bcd60e51b81526004016107499061169b565b6001600160a01b0383166000908152600260205260409020548211156113665760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610749565b6001600160a01b0383166000908152600260205260408120805484929061138e9084906115a8565b9250508190555081600160008282546113a791906115a8565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016106cf565b80356001600160a01b038116811461140157600080fd5b919050565b60006020828403121561141857600080fd5b610dd6826113ea565b600060208083528351808285015260005b8181101561144e57858101830151858201604001528201611432565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561148257600080fd5b61148b836113ea565b946020939093013593505050565b6000806000606084860312156114ae57600080fd5b6114b7846113ea565b92506114c5602085016113ea565b9150604084013590509250925092565b6000602082840312156114e757600080fd5b5035919050565b8015158114610abe57600080fd5b6000806040838503121561150f57600080fd5b611518836113ea565b91506020830135611528816114ee565b809150509250929050565b60008060006060848603121561154857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561157257600080fd5b61157b836113ea565b9150611589602084016113ea565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106db576106db611592565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252600c908201526b5a65726f204164647265737360a01b604082015260600190565b6020808252600490820152635a65726f60e01b604082015260600190565b60006020828403121561163e57600080fd5b5051919050565b60006020828403121561165757600080fd5b8151610dd6816114ee565b80820281158282048414176106db576106db611592565b60008261169657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a16995c9bc8105b5bdd5b9d60aa1b60408201526060019056fea2646970667358221220c0bf36ee288afb20bd6a9943fc2c3b8cb635c68b90190c7e33e1b1bccfb613c464736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806367ffa82811610102578063a6f9dae111610095578063cec10c1111610064578063cec10c11146105bb578063d7ad21ac146105db578063dd62ed3e14610618578063f89532a21461065e57600080fd5b8063a6f9dae114610545578063a9059cbb14610565578063ac4dcb7614610585578063acb2ad6f146105a557600080fd5b80638ebfc796116100d15780638ebfc796146104b857806392a39d91146104d857806395d89b41146104f85780639a44b9e31461052557600080fd5b806367ffa8281461042457806370a082311461044457806379cc67901461047a578063893d20e81461049a57600080fd5b8063304561bb1161017a578063470624021161014957806347062402146103b957806349df728c146103cf57806350431ce4146103ef57806365fe050e1461040457600080fd5b8063304561bb14610325578063313ce5671461035d5780633eb193e21461037957806342966c681461039957600080fd5b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102cd5780632ac7b824146102ed5780632b14ca561461030f57600080fd5b806301e88208146101e857806306fdde031461023d578063095ea7b31461027e57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610221610203366004611406565b60076020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152015b60405180910390f35b34801561024957600080fd5b5060408051808201909152600f81526e56616d7069726520536c617965727360881b60208201525b6040516102349190611421565b34801561028a57600080fd5b5061029e61029936600461146f565b610674565b6040519015158152602001610234565b3480156102ba57600080fd5b506001545b604051908152602001610234565b3480156102d957600080fd5b5061029e6102e8366004611499565b6106e1565b3480156102f957600080fd5b5061030d610308366004611406565b61079e565b005b34801561031b57600080fd5b506102bf60055481565b34801561033157600080fd5b50600a54610345906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561036957600080fd5b5060405160128152602001610234565b34801561038557600080fd5b5061030d610394366004611406565b610867565b3480156103a557600080fd5b5061030d6103b43660046114d5565b6108f1565b3480156103c557600080fd5b506102bf60045481565b3480156103db57600080fd5b5061030d6103ea366004611406565b6108ff565b3480156103fb57600080fd5b5061030d610a3f565b34801561041057600080fd5b5061030d61041f366004611406565b610ac1565b34801561043057600080fd5b5061030d61043f366004611406565b610b8b565b34801561045057600080fd5b506102bf61045f366004611406565b6001600160a01b031660009081526002602052604090205490565b34801561048657600080fd5b5061030d61049536600461146f565b610c15565b3480156104a657600080fd5b506000546001600160a01b0316610345565b3480156104c457600080fd5b5061030d6104d33660046114fc565b610cc9565b3480156104e457600080fd5b50600854610345906001600160a01b031681565b34801561050457600080fd5b50604080518082019091526004815263534c415960e01b6020820152610271565b34801561053157600080fd5b50600954610345906001600160a01b031681565b34801561055157600080fd5b5061030d610560366004611406565b610d44565b34801561057157600080fd5b5061029e61058036600461146f565b610dc9565b34801561059157600080fd5b5061030d6105a0366004611406565b610ddd565b3480156105b157600080fd5b506102bf60065481565b3480156105c757600080fd5b5061030d6105d6366004611533565b610e67565b3480156105e757600080fd5b506105fb6105f6366004611499565b610f74565b604080519283526001600160a01b03909116602083015201610234565b34801561062457600080fd5b506102bf61063336600461155f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561066a57600080fd5b506102bf61271081565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106cf9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526003602090815260408083203384529091528120548211156107525760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064015b60405180910390fd5b6001600160a01b0384166000908152600360209081526040808320338452909152812080548492906107859084906115a8565b90915550610796905084848461109c565b949350505050565b6000546001600160a01b031633146107c85760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b0381166107ee5760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b038116600090815260076020526040902054610100900460ff166108455760405162461bcd60e51b81526020600482015260076024820152664e6f7420414d4d60c81b6044820152606401610749565b6001600160a01b03166000908152600760205260409020805461ff0019169055565b6000546001600160a01b031633146108915760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b0381166108b75760405162461bcd60e51b81526004016107499061160e565b600980546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6108fb33826112bf565b5050565b6000546001600160a01b031633146109295760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b03811661094f5760405162461bcd60e51b81526004016107499061160e565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156109a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c4919061162c565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190611645565b9050806108fb57600080fd5b6000546001600160a01b03163314610a695760405162461bcd60e51b8152600401610749906115bb565b604051600090339047908381818185875af1925050503d8060008114610aab576040519150601f19603f3d011682016040523d82523d6000602084013e610ab0565b606091505b5050905080610abe57600080fd5b50565b6000546001600160a01b03163314610aeb5760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610b115760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b038116600090815260076020526040902054610100900460ff1615610b655760405162461bcd60e51b8152602060048201526003602482015262414d4d60e81b6044820152606401610749565b6001600160a01b03166000908152600760205260409020805461ff001916610100179055565b6000546001600160a01b03163314610bb55760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610bdb5760405162461bcd60e51b81526004016107499061160e565b600880546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6001600160a01b0382166000908152600360209081526040808320338452909152902054811115610c815760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610749565b6001600160a01b038216600090815260036020908152604080832033845290915281208054839290610cb49084906115a8565b90915550610cc4905082826112bf565b505050565b6000546001600160a01b03163314610cf35760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038216610d195760405162461bcd60e51b8152600401610749906115e8565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d6e5760405162461bcd60e51b8152600401610749906115bb565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dd633848461109c565b9392505050565b6000546001600160a01b03163314610e075760405162461bcd60e51b8152600401610749906115bb565b6001600160a01b038116610e2d5760405162461bcd60e51b81526004016107499061160e565b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610e915760405162461bcd60e51b8152600401610749906115bb565b6109c4831115610ed65760405162461bcd60e51b815260206004820152601060248201526f084eaf2408ccaca40a8dede4090d2ced60831b6044820152606401610749565b6109c4821115610f1c5760405162461bcd60e51b81526020600482015260116024820152700a6cad8d8408ccaca40a8dede4090d2ced607b1b6044820152606401610749565b6109c4811115610f665760405162461bcd60e51b81526020600482015260156024820152740a8e4c2dce6cccae4408ccaca40a8dede4090d2ced605b1b6044820152606401610749565b600492909255600555600655565b6001600160a01b038316600090815260076020526040812054819060ff1680610fb557506001600160a01b03841660009081526007602052604090205460ff165b15610fc557506000905080611094565b6001600160a01b038416600090815260076020526040902054610100900460ff16611067576001600160a01b038516600090815260076020526040902054610100900460ff1661103b57612710600654846110209190611662565b61102a9190611679565b600a546001600160a01b031661108f565b6127106004548461104c9190611662565b6110569190611679565b6009546001600160a01b031661108f565b612710600554846110789190611662565b6110829190611679565b6008546001600160a01b03165b915091505b935093915050565b60006001600160a01b0383166110e55760405162461bcd60e51b815260206004820152600e60248201526d16995c9bc8149958da5c1a595b9d60921b6044820152606401610749565b600082116111055760405162461bcd60e51b81526004016107499061169b565b6001600160a01b0384166000908152600260205260409020548211156111645760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610749565b6001600160a01b0384166000908152600260205260408120805484929061118c9084906115a8565b9091555060009050806111a0868686610f74565b909250905060006111b183866115a8565b9050600081116111d35760405162461bcd60e51b81526004016107499061169b565b6001600160a01b03808716600081815260026020526040908190208054850190555190918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112299085815260200190565b60405180910390a382156112b25760006001600160a01b03831661124d573061124f565b825b6001600160a01b03808216600081815260026020526040908190208054890190555192935091908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112a89088815260200190565b60405180910390a3505b5060019695505050505050565b60006001600160a01b0383166112e75760405162461bcd60e51b8152600401610749906115e8565b600082116113075760405162461bcd60e51b81526004016107499061169b565b6001600160a01b0383166000908152600260205260409020548211156113665760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401610749565b6001600160a01b0383166000908152600260205260408120805484929061138e9084906115a8565b9250508190555081600160008282546113a791906115a8565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016106cf565b80356001600160a01b038116811461140157600080fd5b919050565b60006020828403121561141857600080fd5b610dd6826113ea565b600060208083528351808285015260005b8181101561144e57858101830151858201604001528201611432565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561148257600080fd5b61148b836113ea565b946020939093013593505050565b6000806000606084860312156114ae57600080fd5b6114b7846113ea565b92506114c5602085016113ea565b9150604084013590509250925092565b6000602082840312156114e757600080fd5b5035919050565b8015158114610abe57600080fd5b6000806040838503121561150f57600080fd5b611518836113ea565b91506020830135611528816114ee565b809150509250929050565b60008060006060848603121561154857600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561157257600080fd5b61157b836113ea565b9150611589602084016113ea565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106db576106db611592565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252600c908201526b5a65726f204164647265737360a01b604082015260600190565b6020808252600490820152635a65726f60e01b604082015260600190565b60006020828403121561163e57600080fd5b5051919050565b60006020828403121561165757600080fd5b8151610dd6816114ee565b80820281158282048414176106db576106db611592565b60008261169657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a16995c9bc8105b5bdd5b9d60aa1b60408201526060019056fea2646970667358221220c0bf36ee288afb20bd6a9943fc2c3b8cb635c68b90190c7e33e1b1bccfb613c464736f6c63430008140033

Deployed Bytecode Sourcemap

4425:8667:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5207:53;;;;;;;;;;-1:-1:-1;5207:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;570:14:1;;563:22;545:41;;629:14;;622:22;617:2;602:18;;595:50;518:18;5207:53:0;;;;;;;;6263:92;;;;;;;;;;-1:-1:-1;6342:5:0;;;;;;;;;;;;-1:-1:-1;;;6342:5:0;;;;6263:92;;;;;;;:::i;6567:216::-;;;;;;;;;;-1:-1:-1;6567:216:0;;;;;:::i;:::-;;:::i;:::-;;;1633:14:1;;1626:22;1608:41;;1596:2;1581:18;6567:216:0;1468:187:1;5913:88:0;;;;;;;;;;-1:-1:-1;5986:12:0;;5913:88;;;1806:25:1;;;1794:2;1779:18;5913:88:0;1660:177:1;7011:344:0;;;;;;;;;;-1:-1:-1;7011:344:0;;;;;:::i;:::-;;:::i;9365:263::-;;;;;;;;;;-1:-1:-1;9365:263:0;;;;;:::i;:::-;;:::i;:::-;;4956:39;;;;;;;;;;;;;;;;5367:35;;;;;;;;;;-1:-1:-1;5367:35:0;;;;-1:-1:-1;;;;;5367:35:0;;;;;;-1:-1:-1;;;;;2339:32:1;;;2321:51;;2309:2;2294:18;5367:35:0;2175:203:1;6467:92:0;;;;;;;;;;-1:-1:-1;6467:92:0;;4721:2;2525:36:1;;2513:2;2498:18;6467:92:0;2383:184:1;8652:215:0;;;;;;;;;;-1:-1:-1;8652:215:0;;;;;:::i;:::-;;:::i;7486:83::-;;;;;;;;;;-1:-1:-1;7486:83:0;;;;;:::i;:::-;;:::i;4910:39::-;;;;;;;;;;;;;;;;8020:228;;;;;;;;;;-1:-1:-1;8020:228:0;;;;;:::i;:::-;;:::i;8256:155::-;;;;;;;;;;;;;:::i;9100:257::-;;;;;;;;;;-1:-1:-1;9100:257:0;;;;;:::i;:::-;;:::i;8875:217::-;;;;;;;;;;-1:-1:-1;8875:217:0;;;;;:::i;:::-;;:::i;6007:105::-;;;;;;;;;;-1:-1:-1;6007:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6091:18:0;6073:7;6091:18;;;:9;:18;;;;;;;6007:105;7577:279;;;;;;;;;;-1:-1:-1;7577:279:0;;;;;:::i;:::-;;:::i;1437:83::-;;;;;;;;;;-1:-1:-1;1480:7:0;1507:5;-1:-1:-1;;;;;1507:5:0;1437:83;;10119:192;;;;;;;;;;-1:-1:-1;10119:192:0;;;;;:::i;:::-;;:::i;5292:31::-;;;;;;;;;;-1:-1:-1;5292:31:0;;;;-1:-1:-1;;;;;5292:31:0;;;6363:96;;;;;;;;;;-1:-1:-1;6444:7:0;;;;;;;;;;;;-1:-1:-1;;;6444:7:0;;;;6363:96;;5330:30;;;;;;;;;;-1:-1:-1;5330:30:0;;;;-1:-1:-1;;;;;5330:30:0;;;1211:132;;;;;;;;;;-1:-1:-1;1211:132:0;;;;;:::i;:::-;;:::i;6821:152::-;;;;;;;;;;-1:-1:-1;6821:152:0;;;;;:::i;:::-;;:::i;8419:225::-;;;;;;;;;;-1:-1:-1;8419:225:0;;;;;:::i;:::-;;:::i;5002:37::-;;;;;;;;;;;;;;;;9636:475;;;;;;;;;;-1:-1:-1;9636:475:0;;;;;:::i;:::-;;:::i;10444:577::-;;;;;;;;;;-1:-1:-1;10444:577:0;;;;;:::i;:::-;;:::i;:::-;;;;3695:25:1;;;-1:-1:-1;;;;;3756:32:1;;;3751:2;3736:18;;3729:60;3668:18;10444:577:0;3521:274:1;6118:133:0;;;;;;;;;;-1:-1:-1;6118:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6220:19:0;;;6202:7;6220:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6118:133;5046:41;;;;;;;;;;;;5082:5;5046:41;;6567:216;6671:10;6642:4;6659:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6659:32:0;;;;;;;;;;:41;;;6716:37;6642:4;;6659:32;;6716:37;;;;6694:6;1806:25:1;;1794:2;1779:18;;1660:177;6716:37:0;;;;;;;;-1:-1:-1;6771:4:0;6567:216;;;;;:::o;7011:344::-;-1:-1:-1;;;;;7150:19:0;;7111:4;7150:19;;;:11;:19;;;;;;;;7170:10;7150:31;;;;;;;;:41;-1:-1:-1;7150:41:0;7128:113;;;;-1:-1:-1;;;7128:113:0;;4267:2:1;7128:113:0;;;4249:21:1;4306:2;4286:18;;;4279:30;-1:-1:-1;;;4325:18:1;;;4318:52;4387:18;;7128:113:0;;;;;;;;;-1:-1:-1;;;;;7252:19:0;;;;;;:11;:19;;;;;;;;7272:10;7252:31;;;;;;;:41;;7287:6;;7252:19;:41;;7287:6;;7252:41;:::i;:::-;;;;-1:-1:-1;7311:36:0;;-1:-1:-1;7321:6:0;7329:9;7340:6;7311:9;:36::i;:::-;7304:43;7011:344;-1:-1:-1;;;;7011:344:0:o;9365:263::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9460:21:0;::::1;9452:46;;;;-1:-1:-1::0;;;9452:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9517:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:36;::::1;::::0;::::1;;;9509:56;;;::::0;-1:-1:-1;;;9509:56:0;;5572:2:1;9509:56:0::1;::::0;::::1;5554:21:1::0;5611:1;5591:18;;;5584:29;-1:-1:-1;;;5629:18:1;;;5622:37;5676:18;;9509:56:0::1;5370:330:1::0;9509:56:0::1;-1:-1:-1::0;;;;;9576:20:0::1;9615:5;9576:20:::0;;;:11:::1;:20;::::0;;;;:44;;-1:-1:-1;;9576:44:0::1;::::0;;9365:263::o;8652:215::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8737:23:0;::::1;8729:40;;;;-1:-1:-1::0;;;8729:40:0::1;;;;;;;:::i;:::-;8780:15;:27:::0;;-1:-1:-1;;;;;8780:27:0;;::::1;-1:-1:-1::0;;;;;;8780:27:0;;::::1;::::0;::::1;::::0;;:15:::1;8818:22:::0;;;:11:::1;:22;::::0;;;;:41;;-1:-1:-1;;8818:41:0::1;8780:27:::0;8818:41:::1;::::0;;8652:215::o;7486:83::-;7536:25;7542:10;7554:6;7536:5;:25::i;:::-;;7486:83;:::o;8020:228::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8097:19:0;::::1;8089:36;;;;-1:-1:-1::0;;;8089:36:0::1;;;;;;;:::i;:::-;8180:38;::::0;-1:-1:-1;;;8180:38:0;;8212:4:::1;8180:38;::::0;::::1;2321:51:1::0;8136:6:0::1;::::0;-1:-1:-1;;;;;8145:22:0;::::1;::::0;::::1;::::0;8168:10:::1;::::0;8145:22;;8180:23:::1;::::0;2294:18:1;;8180:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8145:74;::::0;-1:-1:-1;;;;;;8145:74:0::1;::::0;;;;;;-1:-1:-1;;;;;6418:32:1;;;8145:74:0::1;::::0;::::1;6400:51:1::0;6467:18;;;6460:34;6373:18;;8145:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8136:83;;8238:1;8230:10;;;::::0;::::1;8256:155:::0;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;8324:58:::1;::::0;8313:6:::1;::::0;8332:10:::1;::::0;8356:21:::1;::::0;8313:6;8324:58;8313:6;8324:58;8356:21;8332:10;8324:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8312:70;;;8401:1;8393:10;;;::::0;::::1;;8301:110;8256:155::o:0;9100:257::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9193:21:0;::::1;9185:46;;;;-1:-1:-1::0;;;9185:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9251:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;:36;::::1;::::0;::::1;;;9250:37;9242:53;;;::::0;-1:-1:-1;;;9242:53:0;;7167:2:1;9242:53:0::1;::::0;::::1;7149:21:1::0;7206:1;7186:18;;;7179:29;-1:-1:-1;;;7224:18:1;;;7217:33;7267:18;;9242:53:0::1;6965:326:1::0;9242:53:0::1;-1:-1:-1::0;;;;;9306:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:43;;-1:-1:-1;;9306:43:0::1;;;::::0;;9100:257::o;8875:217::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8961:23:0;::::1;8953:40;;;;-1:-1:-1::0;;;8953:40:0::1;;;;;;;:::i;:::-;9004:16;:28:::0;;-1:-1:-1;;;;;9004:28:0;;::::1;-1:-1:-1::0;;;;;;9004:28:0;;::::1;::::0;::::1;::::0;;:16:::1;9043:22:::0;;;:11:::1;:22;::::0;;;;:41;;-1:-1:-1;;9043:41:0::1;9004:28:::0;9043:41:::1;::::0;;8875:217::o;7577:279::-;-1:-1:-1;;;;;7670:20:0;;;;;;:11;:20;;;;;;;;7691:10;7670:32;;;;;;;;:42;-1:-1:-1;7670:42:0;7648:114;;;;-1:-1:-1;;;7648:114:0;;4267:2:1;7648:114:0;;;4249:21:1;4306:2;4286:18;;;4279:30;-1:-1:-1;;;4325:18:1;;;4318:52;4387:18;;7648:114:0;4065:346:1;7648:114:0;-1:-1:-1;;;;;7773:20:0;;;;;;:11;:20;;;;;;;;7794:10;7773:32;;;;;;;:42;;7809:6;;7773:20;:42;;7809:6;;7773:42;:::i;:::-;;;;-1:-1:-1;7826:22:0;;-1:-1:-1;7832:7:0;7841:6;7826:5;:22::i;:::-;;7577:279;;:::o;10119:192::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10211:21:0;::::1;10203:46;;;;-1:-1:-1::0;;;10203:46:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10260:20:0;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:43;;-1:-1:-1;;10260:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10119:192::o;1211:132::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;1292:5:::1;::::0;;1283:25:::1;::::0;-1:-1:-1;;;;;1283:25:0;;::::1;::::0;1292:5;::::1;::::0;1283:25:::1;::::0;::::1;1319:5;:16:::0;;-1:-1:-1;;;;;;1319:16:0::1;-1:-1:-1::0;;;;;1319:16:0;;;::::1;::::0;;;::::1;::::0;;1211:132::o;6821:152::-;6901:4;6925:40;6935:10;6947:9;6958:6;6925:9;:40::i;:::-;6918:47;6821:152;-1:-1:-1;;;6821:152:0:o;8419:225::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8509:23:0;::::1;8501:40;;;;-1:-1:-1::0;;;8501:40:0::1;;;;;;;:::i;:::-;8552:20;:32:::0;;-1:-1:-1;;;;;8552:32:0;;::::1;-1:-1:-1::0;;;;;;8552:32:0;;::::1;::::0;::::1;::::0;;:20:::1;8595:22:::0;;;:11:::1;:22;::::0;;;;:41;;-1:-1:-1;;8595:41:0::1;8552:32:::0;8595:41:::1;::::0;;8419:225::o;9636:475::-;818:5;;-1:-1:-1;;;;;818:5:0;804:10;:19;796:51;;;;-1:-1:-1;;;796:51:0;;;;;;;:::i;:::-;9764:4:::1;9753:7;:15;;9731:81;;;::::0;-1:-1:-1;;;9731:81:0;;7498:2:1;9731:81:0::1;::::0;::::1;7480:21:1::0;7537:2;7517:18;;;7510:30;-1:-1:-1;;;7556:18:1;;;7549:46;7612:18;;9731:81:0::1;7296:340:1::0;9731:81:0::1;9857:4;9845:8;:16;;9823:83;;;::::0;-1:-1:-1;;;9823:83:0;;7843:2:1;9823:83:0::1;::::0;::::1;7825:21:1::0;7882:2;7862:18;;;7855:30;-1:-1:-1;;;7901:18:1;;;7894:47;7958:18;;9823:83:0::1;7641:341:1::0;9823:83:0::1;9955:4;9939:12;:20;;9917:91;;;::::0;-1:-1:-1;;;9917:91:0;;8189:2:1;9917:91:0::1;::::0;::::1;8171:21:1::0;8228:2;8208:18;;;8201:30;-1:-1:-1;;;8247:18:1;;;8240:51;8308:18;;9917:91:0::1;7987:345:1::0;9917:91:0::1;10021:6;:16:::0;;;;10048:7:::1;:18:::0;10077:11:::1;:26:::0;9636:475::o;10444:577::-;-1:-1:-1;;;;;10566:19:0;;10532:7;10566:19;;;:11;:19;;;;;:31;10532:7;;10566:31;;;:69;;-1:-1:-1;;;;;;10601:22:0;;;;;;:11;:22;;;;;:34;;;10566:69;10561:126;;;-1:-1:-1;10661:1:0;;-1:-1:-1;10661:1:0;10653:22;;10561:126;-1:-1:-1;;;;;10704:22:0;;;;;;:11;:22;;;;;:38;;;;;;:309;;-1:-1:-1;;;;;10831:19:0;;;;;;:11;:19;;;;;:35;;;;;;:182;;5082:5;10966:11;;10957:6;:20;;;;:::i;:::-;10956:34;;;;:::i;:::-;10992:20;;-1:-1:-1;;;;;10992:20:0;10704:309;;10831:182;5082:5;10898:6;;10889;:15;;;;:::i;:::-;10888:29;;;;:::i;:::-;10919:15;;-1:-1:-1;;;;;10919:15:0;10704:309;;;5082:5;10773:7;;10764:6;:16;;;;:::i;:::-;10763:30;;;;:::i;:::-;10795:16;;-1:-1:-1;;;;;10795:16:0;10704:309;10697:316;;;;10444:577;;;;;;;:::o;11181:1315::-;11269:4;-1:-1:-1;;;;;11308:23:0;;11286:87;;;;-1:-1:-1;;;11286:87:0;;8934:2:1;11286:87:0;;;8916:21:1;8973:2;8953:18;;;8946:30;-1:-1:-1;;;8992:18:1;;;8985:44;9046:18;;11286:87:0;8732:338:1;11286:87:0;11415:1;11406:6;:10;11384:71;;;;-1:-1:-1;;;11384:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6091:18:0;;6073:7;6091:18;;;:9;:18;;;;;;11488:6;:27;;11466:97;;;;-1:-1:-1;;;11466:97:0;;9617:2:1;11466:97:0;;;9599:21:1;9656:2;9636:18;;;9629:30;-1:-1:-1;;;9675:18:1;;;9668:50;9735:18;;11466:97:0;9415:344:1;11466:97:0;-1:-1:-1;;;;;11621:17:0;;;;;;:9;:17;;;;;:27;;11642:6;;11621:17;:27;;11642:6;;11621:27;:::i;:::-;;;;-1:-1:-1;11694:11:0;;-1:-1:-1;11694:11:0;11733:33;11740:6;11748:9;11759:6;11733;:33::i;:::-;11693:73;;-1:-1:-1;11693:73:0;-1:-1:-1;11825:18:0;11846:12;11693:73;11846:6;:12;:::i;:::-;11825:33;;11890:1;11877:10;:14;11869:38;;;;-1:-1:-1;;;11869:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11974:20:0;;;;;;;:9;:20;;;;;;;:34;;;;;;12035:39;11974:20;;12035:39;;;;;;;11998:10;1806:25:1;;1794:2;1779:18;;1660:177;12035:39:0;;;;;;;;12123:7;;12119:346;;12194:20;-1:-1:-1;;;;;12217:28:0;;:61;;12273:4;12217:61;;;12248:14;12217:61;-1:-1:-1;;;;;12353:23:0;;;;;;;:9;:23;;;;;;;:30;;;;;;12418:35;12194:84;;-1:-1:-1;12353:23:0;12418:35;;;;;;;;12380:3;1806:25:1;;1794:2;1779:18;;1660:177;12418:35:0;;;;;;;;12132:333;12119:346;-1:-1:-1;12484:4:0;;11181:1315;-1:-1:-1;;;;;;11181:1315:0:o;12504:585::-;12570:4;-1:-1:-1;;;;;12609:21:0;;12587:83;;;;-1:-1:-1;;;12587:83:0;;;;;;;:::i;:::-;12712:1;12703:6;:10;12681:71;;;;-1:-1:-1;;;12681:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12795:18:0;;;;;;:9;:18;;;;;;12785:28;;;12763:98;;;;-1:-1:-1;;;12763:98:0;;9617:2:1;12763:98:0;;;9599:21:1;9656:2;9636:18;;;9629:30;-1:-1:-1;;;9675:18:1;;;9668:50;9735:18;;12763:98:0;9415:344:1;12763:98:0;-1:-1:-1;;;;;12917:18:0;;;;;;:9;:18;;;;;:28;;12939:6;;12917:18;:28;;12939:6;;12917:28;:::i;:::-;;;;;;;;12972:6;12956:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13022:37:0;;1806:25:1;;;13048:1:0;;-1:-1:-1;;;;;13022:37:0;;;;;1794:2:1;1779:18;13022:37:0;1660:177:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;656:548::-;768:4;797:2;826;815:9;808:21;858:6;852:13;901:6;896:2;885:9;881:18;874:34;926:1;936:140;950:6;947:1;944:13;936:140;;;1045:14;;;1041:23;;1035:30;1011:17;;;1030:2;1007:26;1000:66;965:10;;936:140;;;940:3;1125:1;1120:2;1111:6;1100:9;1096:22;1092:31;1085:42;1195:2;1188;1184:7;1179:2;1171:6;1167:15;1163:29;1152:9;1148:45;1144:54;1136:62;;;;656:548;;;;:::o;1209:254::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1377:29;1396:9;1377:29;:::i;:::-;1367:39;1453:2;1438:18;;;;1425:32;;-1:-1:-1;;;1209:254:1:o;1842:328::-;1919:6;1927;1935;1988:2;1976:9;1967:7;1963:23;1959:32;1956:52;;;2004:1;2001;1994:12;1956:52;2027:29;2046:9;2027:29;:::i;:::-;2017:39;;2075:38;2109:2;2098:9;2094:18;2075:38;:::i;:::-;2065:48;;2160:2;2149:9;2145:18;2132:32;2122:42;;1842:328;;;;;:::o;2572:180::-;2631:6;2684:2;2672:9;2663:7;2659:23;2655:32;2652:52;;;2700:1;2697;2690:12;2652:52;-1:-1:-1;2723:23:1;;2572:180;-1:-1:-1;2572:180:1:o;2757:118::-;2843:5;2836:13;2829:21;2822:5;2819:32;2809:60;;2865:1;2862;2855:12;2880:315;2945:6;2953;3006:2;2994:9;2985:7;2981:23;2977:32;2974:52;;;3022:1;3019;3012:12;2974:52;3045:29;3064:9;3045:29;:::i;:::-;3035:39;;3124:2;3113:9;3109:18;3096:32;3137:28;3159:5;3137:28;:::i;:::-;3184:5;3174:15;;;2880:315;;;;;:::o;3200:316::-;3277:6;3285;3293;3346:2;3334:9;3325:7;3321:23;3317:32;3314:52;;;3362:1;3359;3352:12;3314:52;-1:-1:-1;;3385:23:1;;;3455:2;3440:18;;3427:32;;-1:-1:-1;3506:2:1;3491:18;;;3478:32;;3200:316;-1:-1:-1;3200:316:1:o;3800:260::-;3868:6;3876;3929:2;3917:9;3908:7;3904:23;3900:32;3897:52;;;3945:1;3942;3935:12;3897:52;3968:29;3987:9;3968:29;:::i;:::-;3958:39;;4016:38;4050:2;4039:9;4035:18;4016:38;:::i;:::-;4006:48;;3800:260;;;;;:::o;4416:127::-;4477:10;4472:3;4468:20;4465:1;4458:31;4508:4;4505:1;4498:15;4532:4;4529:1;4522:15;4548:128;4615:9;;;4636:11;;;4633:37;;;4650:18;;:::i;4681:343::-;4883:2;4865:21;;;4922:2;4902:18;;;4895:30;-1:-1:-1;;;4956:2:1;4941:18;;4934:49;5015:2;5000:18;;4681:343::o;5029:336::-;5231:2;5213:21;;;5270:2;5250:18;;;5243:30;-1:-1:-1;;;5304:2:1;5289:18;;5282:42;5356:2;5341:18;;5029:336::o;5705:327::-;5907:2;5889:21;;;5946:1;5926:18;;;5919:29;-1:-1:-1;;;5979:2:1;5964:18;;5957:34;6023:2;6008:18;;5705:327::o;6037:184::-;6107:6;6160:2;6148:9;6139:7;6135:23;6131:32;6128:52;;;6176:1;6173;6166:12;6128:52;-1:-1:-1;6199:16:1;;6037:184;-1:-1:-1;6037:184:1:o;6505:245::-;6572:6;6625:2;6613:9;6604:7;6600:23;6596:32;6593:52;;;6641:1;6638;6631:12;6593:52;6673:9;6667:16;6692:28;6714:5;6692:28;:::i;8337:168::-;8410:9;;;8441;;8458:15;;;8452:22;;8438:37;8428:71;;8479:18;;:::i;8510:217::-;8550:1;8576;8566:132;;8620:10;8615:3;8611:20;8608:1;8601:31;8655:4;8652:1;8645:15;8683:4;8680:1;8673:15;8566:132;-1:-1:-1;8712:9:1;;8510:217::o;9075:335::-;9277:2;9259:21;;;9316:2;9296:18;;;9289:30;-1:-1:-1;;;9350:2:1;9335:18;;9328:41;9401:2;9386:18;;9075:335::o

Swarm Source

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