ETH Price: $3,482.72 (+2.54%)

Token

PEPE ERC-314 (PEPE)
 

Overview

Max Total Supply

1,000,000 PEPE

Holders

25

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
PEPE

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-03-21
*/

/**
 *Submitted for verification at Etherscan.io on 2024-03-20
*/
 
// SPDX-License-Identifier: MIT
 
// https://t.me/pepeerc314
 
pragma solidity ^0.8.20;
 
 
/**
 * @title ERC314
 * @dev Implementation of the ERC314 interface.
 * ERC314 is a derivative of ERC20 which aims to integrate a liquidity pool on the token in order to enable native swaps, notably to reduce gas consumption. 
 */
 
// Events interface for ERC314
interface IEERC314 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event AddLiquidity(uint32 _blockToUnlockLiquidity, uint256 value);
    event RemoveLiquidity(uint256 value);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out
    );
}
 
 
abstract contract ERC314 is IEERC314{
    mapping(address account => uint256) private _balances;
 
    uint256 private _totalSupply;
    uint256 public _maxWallet;
    uint32 public blockToUnlockLiquidity;
 
    string private _name;
    string private _symbol;
 
    address public owner;
    address public liquidityProvider;
 
    bool public tradingEnable;
    bool public liquidityAdded;
    bool public maxWalletEnable;
 
 
 
    mapping(address account => uint32) private lastTransaction;
 
 
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
 
    modifier onlyLiquidityProvider() {
        require(msg.sender == liquidityProvider, "You are not the liquidity provider");
        _;
    }
 
    /**
     * @dev Sets the values for {name}, {symbol} and {totalSupply}. 
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_, uint256 totalSupply_) {
        _name = name_;
        _symbol = symbol_;
        _totalSupply = totalSupply_;
        _maxWallet = totalSupply_ / 200;
        owner = msg.sender;
        tradingEnable = false;
        maxWalletEnable = true;
        _balances[msg.sender] = totalSupply_/10;
        uint256 liquidityAmount = totalSupply_ - _balances[msg.sender];
        _balances[address(this)] = liquidityAmount;
        liquidityAdded = false;
 
    }
 
 
 
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }
 
    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }
 
 
    /**
     * @dev Returns the number of decimals used to get its user representation.
     */
 
    function decimals() public view virtual returns (uint8) {
        return 18;
    }
 
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }
 
    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }
 
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - the caller must have a balance of at least `value`.
     * - if the receiver is the contract, the caller must send the amount of tokens to sell
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        // sell or transfer
        if (to == address(this)) {
            sell(value);
        }
        else{
            _transfer(msg.sender, to, value);
        }
        return true;
    }
 
    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively burns if `to` is the zero address.
     * All customizations to transfers and burns should be done by overriding this function.
     * This function includes MEV protection, which prevents the same address from making two transactions in the same block.(lastTransaction)
     * Emits a {Transfer} event.
     */
    function _transfer(address from, address to, uint256 value) internal virtual {
 
        require(lastTransaction[msg.sender] != block.number, "You can't make two transactions in the same block");
 
        lastTransaction[msg.sender] = uint32(block.number);
 
        require (_balances[from] >= value, "ERC20: transfer amount exceeds balance");
 
        unchecked {
            _balances[from] = _balances[from] - value;
        }
 
        if (to == address(0)) {
            unchecked {
                _totalSupply -= value;
            }
        } else {
            unchecked {
                _balances[to] += value;
            }
        }
 
        emit Transfer(from, to, value);
    }
 
    /**
    * @dev Returns the amount of ETH and tokens in the contract, used for trading.
    */
    function getReserves() public view returns (uint256, uint256) {
        return (address(this).balance, _balances[address(this)]);
    }
 
    /**
    * @dev Enables or disables trading.
    * @param _tradingEnable: true to enable trading, false to disable trading.
    * onlyOwner modifier
    */
    function enableTrading(bool _tradingEnable) external onlyOwner {
        tradingEnable = _tradingEnable;
    }
 
    /**
    * @dev Enables or disables the max wallet.
    * @param _maxWalletEnable: true to enable max wallet, false to disable max wallet.
    * onlyOwner modifier
    */
    function enableMaxWallet(bool _maxWalletEnable) external onlyOwner {
        maxWalletEnable = _maxWalletEnable;
    }
 
    /**
    * @dev Sets the max wallet.
    * @param _maxWallet_: the new max wallet.
    * onlyOwner modifier
    */
    function setMaxWallet(uint256 _maxWallet_) external onlyOwner {
        _maxWallet = _maxWallet_;
    }
 
    /**
    * @dev Transfers the ownership of the contract to zero address
    * onlyOwner modifier
    */
    function renounceOwnership() external onlyOwner {
        owner = address(0);
    }
 
    /**
    * @dev Adds liquidity to the contract.
    * @param _blockToUnlockLiquidity: the block number to unlock the liquidity.
    * value: the amount of ETH to add to the liquidity.
    * onlyOwner modifier
    */
    function addLiquidity(uint32 _blockToUnlockLiquidity) public onlyOwner payable {
 
        require(liquidityAdded == false, "Liquidity already added");
 
        liquidityAdded = true;
 
        require(msg.value > 0, "No ETH sent");
        require(block.number < _blockToUnlockLiquidity, "Block number too low");
 
        blockToUnlockLiquidity = _blockToUnlockLiquidity;
        tradingEnable = true;
        liquidityProvider = msg.sender;
 
        emit AddLiquidity(_blockToUnlockLiquidity, msg.value);
    }
 
    /**
    * @dev Removes liquidity from the contract.
    * onlyLiquidityProvider modifier
    */
    function removeLiquidity() public onlyLiquidityProvider {
 
        require(block.number > blockToUnlockLiquidity, "Liquidity locked");
 
        tradingEnable = false;
 
        payable(msg.sender).transfer(address(this).balance);
 
        emit RemoveLiquidity(address(this).balance);
 
    }
 
    /**
    * @dev Extends the liquidity lock, only if the new block number is higher than the current one.
    * @param _blockToUnlockLiquidity: the new block number to unlock the liquidity.
    * onlyLiquidityProvider modifier
    */
    function extendLiquidityLock(uint32 _blockToUnlockLiquidity) public onlyLiquidityProvider {
 
        require(blockToUnlockLiquidity < _blockToUnlockLiquidity, "You can't shorten duration");
 
        blockToUnlockLiquidity = _blockToUnlockLiquidity;
    }
 
    /**
    * @dev Estimates the amount of tokens or ETH to receive when buying or selling.
    * @param value: the amount of ETH or tokens to swap.
    * @param _buy: true if buying, false if selling.
    */
    function getAmountOut(uint256 value, bool _buy) public view returns(uint256) {
 
        (uint256 reserveETH, uint256 reserveToken) = getReserves();
 
        if (_buy) {
            return (value * reserveToken) / (reserveETH + value);
        } else {
            return (value * reserveETH) / (reserveToken + value);
        }
    }
 
    /**
    * @dev Buys tokens with ETH.
    * internal function
    */
    function buy() internal {
 
        require(tradingEnable, "Trading not enable");
 
        uint256 token_amount = (msg.value * _balances[address(this)]) / (address(this).balance);
 
        if (maxWalletEnable) {
            require(token_amount + _balances[msg.sender] <= _maxWallet, "Max wallet exceeded");
        }
 
        _transfer(address(this), msg.sender, token_amount);
 
        emit Swap(msg.sender, msg.value,0,0,token_amount);
    }
 
    /**
    * @dev Sells tokens for ETH.
    * internal function
    */
    function sell(uint256 sell_amount) internal {
 
        require(tradingEnable, "Trading not enable");
 
        uint256 ethAmount = (sell_amount * address(this).balance) / (_balances[address(this)] + sell_amount);
 
        require(ethAmount > 0, "Sell amount too low");
        require(address(this).balance >= ethAmount, "Insufficient ETH in reserves");
 
        _transfer(msg.sender, address(this), sell_amount);
        payable(msg.sender).transfer(ethAmount);
 
        emit Swap(msg.sender, 0,sell_amount,ethAmount,0);
    }
 
    /**
    * @dev Fallback function to buy tokens with ETH.
    */
    receive() external payable {
        buy();
    }
}
 
 
contract PEPE is ERC314 {
    uint256 private _totalSupply = 1_000_000 * 10 ** 18;
 
    constructor() ERC314("PEPE ERC-314", "PEPE", _totalSupply) {
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"}],"name":"Swap","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":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockToUnlockLiquidity","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maxWalletEnable","type":"bool"}],"name":"enableMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnable","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"extendLiquidityLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet_","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda100000060095534801561001d575f80fd5b506040518060400160405280600c81526020016b1411541148115490cb4ccc4d60a21b815250604051806040016040528060048152602001635045504560e01b8152506009548260049081610072919061019f565b50600561007f838261019f565b50600181905561009060c88261025e565b600255600680546001600160a01b031916331790556007805462ff00ff60a01b1916600160b01b1790556100c5600a8261025e565b335f908152602081905260408120829055906100e1908361027d565b305f9081526020819052604090205550506007805460ff60a81b19169055506102a29050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061012f57607f821691505b60208210810361014d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561019a57805f5260205f20601f840160051c810160208510156101785750805b601f840160051c820191505b81811015610197575f8155600101610184565b50505b505050565b81516001600160401b038111156101b8576101b8610107565b6101cc816101c6845461011b565b84610153565b602080601f8311600181146101ff575f84156101e85750858301515b5f19600386901b1c1916600185901b178555610256565b5f85815260208120601f198616915b8281101561022d5788860151825594840194600190910190840161020e565b508582101561024a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8261027857634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561029c57634e487b7160e01b5f52601160045260245ffd5b92915050565b61105c806102af5f395ff3fe608060405260043610610134575f3560e01c806367b9a286116100a857806395d89b411161006d57806395d89b41146103865780639a540abf1461039a578063a9059cbb146103ad578063ae19139e146103cc578063d9443923146103eb578063f275f64b1461040b575f80fd5b806367b9a286146102f657806370a082311461030a578063715018a61461033e57806382247ec0146103525780638da5cb5b14610367575f80fd5b80631693e8d4116100f95780631693e8d41461023257806318160ddd1461025257806327de2e8514610266578063313ce567146102855780635b8bec55146102a05780635d0044ca146102d7575f80fd5b806304c0c4761461014757806306fdde031461017d5780630902f1ac1461019e57806311106ee2146101d557806312a54b6214610202575f80fd5b366101435761014161042a565b005b5f80fd5b348015610152575f80fd5b506003546101639063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b348015610188575f80fd5b5061019161056e565b6040516101749190610df6565b3480156101a9575f80fd5b506101c0305f908152602081905260409020544791565b60408051928352602083019190915201610174565b3480156101e0575f80fd5b506101f46101ef366004610e3f565b6105fe565b604051908152602001610174565b34801561020d575f80fd5b5060075461022290600160b01b900460ff1681565b6040519015158152602001610174565b34801561023d575f80fd5b5060075461022290600160a01b900460ff1681565b34801561025d575f80fd5b506001546101f4565b348015610271575f80fd5b50610141610280366004610e69565b610662565b348015610290575f80fd5b5060405160128152602001610174565b3480156102ab575f80fd5b506007546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b3480156102e2575f80fd5b506101416102f1366004610e93565b610702565b348015610301575f80fd5b50610141610731565b348015610315575f80fd5b506101f4610324366004610ec0565b6001600160a01b03165f9081526020819052604090205490565b348015610349575f80fd5b50610141610811565b34801561035d575f80fd5b506101f460025481565b348015610372575f80fd5b506006546102bf906001600160a01b031681565b348015610391575f80fd5b5061019161084d565b6101416103a8366004610e69565b61085c565b3480156103b8575f80fd5b506102226103c7366004610ed9565b6109e6565b3480156103d7575f80fd5b506101416103e6366004610f01565b610a19565b3480156103f6575f80fd5b5060075461022290600160a81b900460ff1681565b348015610416575f80fd5b50610141610425366004610f01565b610a61565b600754600160a01b900460ff1661047d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b305f9081526020819052604081205447906104989034610f2e565b6104a29190610f45565b600754909150600160b01b900460ff161561051757600254335f908152602081905260409020546104d39083610f64565b11156105175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610474565b610522303383610aa9565b604080513481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a250565b60606004805461057d90610f77565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990610f77565b80156105f45780601f106105cb576101008083540402835291602001916105f4565b820191905f5260205f20905b8154815290600101906020018083116105d757829003601f168201915b5050505050905090565b5f805f610617305f908152602081905260409020544791565b9150915083156106485761062b8583610f64565b6106358287610f2e565b61063f9190610f45565b9250505061065c565b6106528582610f64565b6106358387610f2e565b92915050565b6007546001600160a01b0316331461068c5760405162461bcd60e51b815260040161047490610faf565b60035463ffffffff8083169116106106e65760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610474565b6003805463ffffffff191663ffffffff92909216919091179055565b6006546001600160a01b0316331461072c5760405162461bcd60e51b815260040161047490610ff1565b600255565b6007546001600160a01b0316331461075b5760405162461bcd60e51b815260040161047490610faf565b60035463ffffffff1643116107a55760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610474565b6007805460ff60a01b1916905560405133904780156108fc02915f818181858888f193505050501580156107db573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6006546001600160a01b0316331461083b5760405162461bcd60e51b815260040161047490610ff1565b600680546001600160a01b0319169055565b60606005805461057d90610f77565b6006546001600160a01b031633146108865760405162461bcd60e51b815260040161047490610ff1565b600754600160a81b900460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610474565b6007805460ff60a81b1916600160a81b1790553461092e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610474565b8063ffffffff16431061097a5760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610474565b6003805463ffffffff831663ffffffff199091168117909155600780546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b5f306001600160a01b03841603610a0557610a0082610c60565b610a10565b610a10338484610aa9565b50600192915050565b6006546001600160a01b03163314610a435760405162461bcd60e51b815260040161047490610ff1565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6006546001600160a01b03163314610a8b5760405162461bcd60e51b815260040161047490610ff1565b60078054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600860205260409020544363ffffffff90911603610b285760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610474565b335f908152600860209081526040808320805463ffffffff19164363ffffffff161790556001600160a01b038616835290829052902054811115610bbd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610474565b6001600160a01b038084165f908152602081905260409020805483900390558216610bf057600180548290039055610c0e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5391815260200190565b60405180910390a3505050565b600754600160a01b900460ff16610cae5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610474565b305f90815260208190526040812054610cc8908390610f64565b610cd24784610f2e565b610cdc9190610f45565b90505f8111610d235760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610474565b80471015610d735760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610474565b610d7e333084610aa9565b604051339082156108fc029083905f818181858888f19350505050158015610da8573d5f803e3d5ffd5b50604080515f808252602082018590528183018490526060820152905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80358015158114610e3a575f80fd5b919050565b5f8060408385031215610e50575f80fd5b82359150610e6060208401610e2b565b90509250929050565b5f60208284031215610e79575f80fd5b813563ffffffff81168114610e8c575f80fd5b9392505050565b5f60208284031215610ea3575f80fd5b5035919050565b80356001600160a01b0381168114610e3a575f80fd5b5f60208284031215610ed0575f80fd5b610e8c82610eaa565b5f8060408385031215610eea575f80fd5b610ef383610eaa565b946020939093013593505050565b5f60208284031215610f11575f80fd5b610e8c82610e2b565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761065c5761065c610f1a565b5f82610f5f57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561065c5761065c610f1a565b600181811c90821680610f8b57607f821691505b602082108103610fa957634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220d42eba2b76b7868e51a57e20fd2ce57321a74ac9d515592349f1d9a7d414a26064736f6c63430008190033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806367b9a286116100a857806395d89b411161006d57806395d89b41146103865780639a540abf1461039a578063a9059cbb146103ad578063ae19139e146103cc578063d9443923146103eb578063f275f64b1461040b575f80fd5b806367b9a286146102f657806370a082311461030a578063715018a61461033e57806382247ec0146103525780638da5cb5b14610367575f80fd5b80631693e8d4116100f95780631693e8d41461023257806318160ddd1461025257806327de2e8514610266578063313ce567146102855780635b8bec55146102a05780635d0044ca146102d7575f80fd5b806304c0c4761461014757806306fdde031461017d5780630902f1ac1461019e57806311106ee2146101d557806312a54b6214610202575f80fd5b366101435761014161042a565b005b5f80fd5b348015610152575f80fd5b506003546101639063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b348015610188575f80fd5b5061019161056e565b6040516101749190610df6565b3480156101a9575f80fd5b506101c0305f908152602081905260409020544791565b60408051928352602083019190915201610174565b3480156101e0575f80fd5b506101f46101ef366004610e3f565b6105fe565b604051908152602001610174565b34801561020d575f80fd5b5060075461022290600160b01b900460ff1681565b6040519015158152602001610174565b34801561023d575f80fd5b5060075461022290600160a01b900460ff1681565b34801561025d575f80fd5b506001546101f4565b348015610271575f80fd5b50610141610280366004610e69565b610662565b348015610290575f80fd5b5060405160128152602001610174565b3480156102ab575f80fd5b506007546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b3480156102e2575f80fd5b506101416102f1366004610e93565b610702565b348015610301575f80fd5b50610141610731565b348015610315575f80fd5b506101f4610324366004610ec0565b6001600160a01b03165f9081526020819052604090205490565b348015610349575f80fd5b50610141610811565b34801561035d575f80fd5b506101f460025481565b348015610372575f80fd5b506006546102bf906001600160a01b031681565b348015610391575f80fd5b5061019161084d565b6101416103a8366004610e69565b61085c565b3480156103b8575f80fd5b506102226103c7366004610ed9565b6109e6565b3480156103d7575f80fd5b506101416103e6366004610f01565b610a19565b3480156103f6575f80fd5b5060075461022290600160a81b900460ff1681565b348015610416575f80fd5b50610141610425366004610f01565b610a61565b600754600160a01b900460ff1661047d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b305f9081526020819052604081205447906104989034610f2e565b6104a29190610f45565b600754909150600160b01b900460ff161561051757600254335f908152602081905260409020546104d39083610f64565b11156105175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610474565b610522303383610aa9565b604080513481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a250565b60606004805461057d90610f77565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990610f77565b80156105f45780601f106105cb576101008083540402835291602001916105f4565b820191905f5260205f20905b8154815290600101906020018083116105d757829003601f168201915b5050505050905090565b5f805f610617305f908152602081905260409020544791565b9150915083156106485761062b8583610f64565b6106358287610f2e565b61063f9190610f45565b9250505061065c565b6106528582610f64565b6106358387610f2e565b92915050565b6007546001600160a01b0316331461068c5760405162461bcd60e51b815260040161047490610faf565b60035463ffffffff8083169116106106e65760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610474565b6003805463ffffffff191663ffffffff92909216919091179055565b6006546001600160a01b0316331461072c5760405162461bcd60e51b815260040161047490610ff1565b600255565b6007546001600160a01b0316331461075b5760405162461bcd60e51b815260040161047490610faf565b60035463ffffffff1643116107a55760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610474565b6007805460ff60a01b1916905560405133904780156108fc02915f818181858888f193505050501580156107db573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6006546001600160a01b0316331461083b5760405162461bcd60e51b815260040161047490610ff1565b600680546001600160a01b0319169055565b60606005805461057d90610f77565b6006546001600160a01b031633146108865760405162461bcd60e51b815260040161047490610ff1565b600754600160a81b900460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610474565b6007805460ff60a81b1916600160a81b1790553461092e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610474565b8063ffffffff16431061097a5760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610474565b6003805463ffffffff831663ffffffff199091168117909155600780546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b5f306001600160a01b03841603610a0557610a0082610c60565b610a10565b610a10338484610aa9565b50600192915050565b6006546001600160a01b03163314610a435760405162461bcd60e51b815260040161047490610ff1565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6006546001600160a01b03163314610a8b5760405162461bcd60e51b815260040161047490610ff1565b60078054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600860205260409020544363ffffffff90911603610b285760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610474565b335f908152600860209081526040808320805463ffffffff19164363ffffffff161790556001600160a01b038616835290829052902054811115610bbd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610474565b6001600160a01b038084165f908152602081905260409020805483900390558216610bf057600180548290039055610c0e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5391815260200190565b60405180910390a3505050565b600754600160a01b900460ff16610cae5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610474565b305f90815260208190526040812054610cc8908390610f64565b610cd24784610f2e565b610cdc9190610f45565b90505f8111610d235760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610474565b80471015610d735760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610474565b610d7e333084610aa9565b604051339082156108fc029083905f818181858888f19350505050158015610da8573d5f803e3d5ffd5b50604080515f808252602082018590528183018490526060820152905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80358015158114610e3a575f80fd5b919050565b5f8060408385031215610e50575f80fd5b82359150610e6060208401610e2b565b90509250929050565b5f60208284031215610e79575f80fd5b813563ffffffff81168114610e8c575f80fd5b9392505050565b5f60208284031215610ea3575f80fd5b5035919050565b80356001600160a01b0381168114610e3a575f80fd5b5f60208284031215610ed0575f80fd5b610e8c82610eaa565b5f8060408385031215610eea575f80fd5b610ef383610eaa565b946020939093013593505050565b5f60208284031215610f11575f80fd5b610e8c82610e2b565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761065c5761065c610f1a565b5f82610f5f57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561065c5761065c610f1a565b600181811c90821680610f8b57607f821691505b602082108103610fa957634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea2646970667358221220d42eba2b76b7868e51a57e20fd2ce57321a74ac9d515592349f1d9a7d414a26064736f6c63430008190033

Deployed Bytecode Sourcemap

9811:162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9787:5;:3;:5::i;:::-;9811:162;;;;;998:36;;;;;;;;;;-1:-1:-1;998:36:0;;;;;;;;;;;188:10:1;176:23;;;158:42;;146:2;131:18;998:36:0;;;;;;;;2426:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5064:137::-;;;;;;;;;;;;5186:4;5108:7;5168:24;;;;;;;;;;;5145:21;;5064:137;;;;;808:25:1;;;864:2;849:18;;842:34;;;;781:18;5064:137:0;634:248:1;8150:344:0;;;;;;;;;;-1:-1:-1;8150:344:0;;;;;:::i;:::-;;:::i;:::-;;;1451:25:1;;;1439:2;1424:18;8150:344:0;1305:177:1;1237:27:0;;;;;;;;;;-1:-1:-1;1237:27:0;;;;-1:-1:-1;;;1237:27:0;;;;;;;;;1652:14:1;;1645:22;1627:41;;1615:2;1600:18;1237:27:0;1487:187:1;1172:25:0;;;;;;;;;;-1:-1:-1;1172:25:0;;;;-1:-1:-1;;;1172:25:0;;;;;;2996:99;;;;;;;;;;-1:-1:-1;3075:12:0;;2996:99;;7666:261;;;;;;;;;;-1:-1:-1;7666:261:0;;;;;:::i;:::-;;:::i;2846:84::-;;;;;;;;;;-1:-1:-1;2846:84:0;;2920:2;2102:36:1;;2090:2;2075:18;2846:84:0;1960:184:1;1130:32:0;;;;;;;;;;-1:-1:-1;1130:32:0;;;;-1:-1:-1;;;;;1130:32:0;;;;;;-1:-1:-1;;;;;2313:32:1;;;2295:51;;2283:2;2268:18;1130:32:0;2149:203:1;5926:105:0;;;;;;;;;;-1:-1:-1;5926:105:0;;;;;:::i;:::-;;:::i;7112:304::-;;;;;;;;;;;;;:::i;3159:118::-;;;;;;;;;;-1:-1:-1;3159:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;3251:18:0;3224:7;3251:18;;;;;;;;;;;;3159:118;6151:85;;;;;;;;;;;;;:::i;966:25::-;;;;;;;;;;;;;;;;1103:20;;;;;;;;;;-1:-1:-1;1103:20:0;;;;-1:-1:-1;;;;;1103:20:0;;;2637:95;;;;;;;;;;;;;:::i;6470:529::-;;;;;;:::i;:::-;;:::i;3533:280::-;;;;;;;;;;-1:-1:-1;3533:280:0;;;;;:::i;:::-;;:::i;5674:120::-;;;;;;;;;;-1:-1:-1;5674:120:0;;;;;:::i;:::-;;:::i;1204:26::-;;;;;;;;;;-1:-1:-1;1204:26:0;;;;-1:-1:-1;;;1204:26:0;;;;;;5374:112;;;;;;;;;;-1:-1:-1;5374:112:0;;;;;:::i;:::-;;:::i;8579:461::-;8625:13;;-1:-1:-1;;;8625:13:0;;;;8617:44;;;;-1:-1:-1;;;8617:44:0;;3557:2:1;8617:44:0;;;3539:21:1;3596:2;3576:18;;;3569:30;-1:-1:-1;;;3615:18:1;;;3608:48;3673:18;;8617:44:0;;;;;;;;;8729:4;8675:20;8711:24;;;;;;;;;;;8740:21;;8699:36;;:9;:36;:::i;:::-;8698:64;;;;:::i;:::-;8780:15;;8675:87;;-1:-1:-1;;;;8780:15:0;;;;8776:130;;;8860:10;;8845;8835:9;:21;;;;;;;;;;;8820:36;;:12;:36;:::i;:::-;:50;;8812:82;;;;-1:-1:-1;;;8812:82:0;;4561:2:1;8812:82:0;;;4543:21:1;4600:2;4580:18;;;4573:30;-1:-1:-1;;;4619:18:1;;;4612:49;4678:18;;8812:82:0;4359:343:1;8812:82:0;8919:50;8937:4;8944:10;8956:12;8919:9;:50::i;:::-;8988:44;;;9005:9;4954:25:1;;9015:1:0;5010:2:1;4995:18;;4988:34;;;5038:18;;;5031:34;5096:2;5081:18;;5074:34;;;8988:44:0;;8993:10;;8988:44;;;;;;4941:3:1;8988:44:0;;;8603:437;8579:461::o;2426:91::-;2471:13;2504:5;2497:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:91;:::o;8150:344::-;8218:7;8242:18;8262:20;8286:13;5186:4;5108:7;5168:24;;;;;;;;;;;5145:21;;5064:137;8286:13;8241:58;;;;8317:4;8313:174;;;8371:18;8384:5;8371:10;:18;:::i;:::-;8346:20;8354:12;8346:5;:20;:::i;:::-;8345:45;;;;:::i;:::-;8338:52;;;;;;8313:174;8454:20;8469:5;8454:12;:20;:::i;:::-;8431:18;8439:10;8431:5;:18;:::i;8150:344::-;;;;;:::o;7666:261::-;1542:17;;-1:-1:-1;;;;;1542:17:0;1528:10;:31;1520:78;;;;-1:-1:-1;;;1520:78:0;;;;;;;:::i;:::-;7778:22:::1;::::0;:48:::1;::::0;;::::1;:22:::0;::::1;:48;7770:87;;;::::0;-1:-1:-1;;;7770:87:0;;6109:2:1;7770:87:0::1;::::0;::::1;6091:21:1::0;6148:2;6128:18;;;6121:30;6187:28;6167:18;;;6160:56;6233:18;;7770:87:0::1;5907:350:1::0;7770:87:0::1;7871:22;:48:::0;;-1:-1:-1;;7871:48:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7666:261::o;5926:105::-;1405:5;;-1:-1:-1;;;;;1405:5:0;1391:10;:19;1383:64;;;;-1:-1:-1;;;1383:64:0;;;;;;;:::i;:::-;5999:10:::1;:24:::0;5926:105::o;7112:304::-;1542:17;;-1:-1:-1;;;;;1542:17:0;1528:10;:31;1520:78;;;;-1:-1:-1;;;1520:78:0;;;;;;;:::i;:::-;7205:22:::1;::::0;::::1;;7190:12;:37;7182:66;;;::::0;-1:-1:-1;;;7182:66:0;;6825:2:1;7182:66:0::1;::::0;::::1;6807:21:1::0;6864:2;6844:18;;;6837:30;-1:-1:-1;;;6883:18:1;;;6876:46;6939:18;;7182:66:0::1;6623:340:1::0;7182:66:0::1;7262:13;:21:::0;;-1:-1:-1;;;;7262:21:0::1;::::0;;7297:51:::1;::::0;7305:10:::1;::::0;7326:21:::1;7297:51:::0;::::1;;;::::0;7278:5:::1;7297:51:::0;7278:5;7297:51;7326:21;7305:10;7297:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7367:38:0::1;::::0;7383:21:::1;1451:25:1::0;;7367:38:0::1;::::0;1439:2:1;1424:18;7367:38:0::1;;;;;;;7112:304::o:0;6151:85::-;1405:5;;-1:-1:-1;;;;;1405:5:0;1391:10;:19;1383:64;;;;-1:-1:-1;;;1383:64:0;;;;;;;:::i;:::-;6210:5:::1;:18:::0;;-1:-1:-1;;;;;;6210:18:0::1;::::0;;6151:85::o;2637:95::-;2684:13;2717:7;2710:14;;;;;:::i;6470:529::-;1405:5;;-1:-1:-1;;;;;1405:5:0;1391:10;:19;1383:64;;;;-1:-1:-1;;;1383:64:0;;;;;;;:::i;:::-;6571:14:::1;::::0;-1:-1:-1;;;6571:14:0;::::1;;;:23;6563:59;;;::::0;-1:-1:-1;;;6563:59:0;;7170:2:1;6563:59:0::1;::::0;::::1;7152:21:1::0;7209:2;7189:18;;;7182:30;7248:25;7228:18;;;7221:53;7291:18;;6563:59:0::1;6968:347:1::0;6563:59:0::1;6636:14;:21:::0;;-1:-1:-1;;;;6636:21:0::1;-1:-1:-1::0;;;6636:21:0::1;::::0;;6679:9:::1;6671:37;;;::::0;-1:-1:-1;;;6671:37:0;;7522:2:1;6671:37:0::1;::::0;::::1;7504:21:1::0;7561:2;7541:18;;;7534:30;-1:-1:-1;;;7580:18:1;;;7573:41;7631:18;;6671:37:0::1;7320:335:1::0;6671:37:0::1;6742:23;6727:38;;:12;:38;6719:71;;;::::0;-1:-1:-1;;;6719:71:0;;7862:2:1;6719:71:0::1;::::0;::::1;7844:21:1::0;7901:2;7881:18;;;7874:30;-1:-1:-1;;;7920:18:1;;;7913:50;7980:18;;6719:71:0::1;7660:344:1::0;6719:71:0::1;6804:22;:48:::0;;::::1;::::0;::::1;-1:-1:-1::0;;6804:48:0;;::::1;::::0;::::1;::::0;;;6863:13:::1;:20:::0;;-1:-1:-1;;;;;;6894:30:0;6914:10:::1;6894:30:::0;-1:-1:-1;;;6894:30:0;;;6943:48:::1;::::0;;8181:42:1;;;6981:9:0::1;8254:2:1::0;8239:18;;8232:34;6943:48:0::1;::::0;8154:18:1;6943:48:0::1;;;;;;;6470:529:::0;:::o;3533:280::-;3602:4;3666;-1:-1:-1;;;;;3652:19:0;;;3648:136;;3688:11;3693:5;3688:4;:11::i;:::-;3648:136;;;3740:32;3750:10;3762:2;3766:5;3740:9;:32::i;:::-;-1:-1:-1;3801:4:0;3533:280;;;;:::o;5674:120::-;1405:5;;-1:-1:-1;;;;;1405:5:0;1391:10;:19;1383:64;;;;-1:-1:-1;;;1383:64:0;;;;;;;:::i;:::-;5752:15:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;5752:34:0::1;-1:-1:-1::0;;;;5752:34:0;;::::1;::::0;;;::::1;::::0;;5674:120::o;5374:112::-;1405:5;;-1:-1:-1;;;;;1405:5:0;1391:10;:19;1383:64;;;;-1:-1:-1;;;1383:64:0;;;;;;;:::i;:::-;5448:13:::1;:30:::0;;;::::1;;-1:-1:-1::0;;;5448:30:0::1;-1:-1:-1::0;;;;5448:30:0;;::::1;::::0;;;::::1;::::0;;5374:112::o;4235:719::-;4350:10;4334:27;;;;:15;:27;;;;;;4365:12;4334:27;;;;:43;4326:105;;;;-1:-1:-1;;;4326:105:0;;8479:2:1;4326:105:0;;;8461:21:1;8518:2;8498:18;;;8491:30;8557:34;8537:18;;;8530:62;-1:-1:-1;;;8608:18:1;;;8601:47;8665:19;;4326:105:0;8277:413:1;4326:105:0;4461:10;4445:27;;;;:15;:27;;;;;;;;:50;;-1:-1:-1;;4445:50:0;4482:12;4445:50;;;;;-1:-1:-1;;;;;4518:15:0;;;;;;;;;;;-1:-1:-1;;4518:24:0;4509:76;;;;-1:-1:-1;;;4509:76:0;;8897:2:1;4509:76:0;;;8879:21:1;8936:2;8916:18;;;8909:30;8975:34;8955:18;;;8948:62;-1:-1:-1;;;9026:18:1;;;9019:36;9072:19;;4509:76:0;8695:402:1;4509:76:0;-1:-1:-1;;;;;4642:15:0;;;:9;:15;;;;;;;;;;;;:23;;;4624:41;;4694:16;;4690:213;;4756:12;:21;;;;;;;4690:213;;;-1:-1:-1;;;;;4854:13:0;;:9;:13;;;;;;;;;;:22;;;;;;4690:213;4936:2;-1:-1:-1;;;;;4921:25:0;4930:4;-1:-1:-1;;;;;4921:25:0;;4940:5;4921:25;;;;1451::1;;1439:2;1424:18;;1305:177;4921:25:0;;;;;;;;4235:719;;;:::o;9125:544::-;9191:13;;-1:-1:-1;;;9191:13:0;;;;9183:44;;;;-1:-1:-1;;;9183:44:0;;3557:2:1;9183:44:0;;;3539:21:1;3596:2;3576:18;;;3569:30;-1:-1:-1;;;3615:18:1;;;3608:48;3673:18;;9183:44:0;3355:342:1;9183:44:0;9320:4;9241:17;9302:24;;;;;;;;;;;:38;;9329:11;;9302:38;:::i;:::-;9262:35;9276:21;9262:11;:35;:::i;:::-;9261:80;;;;:::i;:::-;9241:100;;9375:1;9363:9;:13;9355:45;;;;-1:-1:-1;;;9355:45:0;;9304:2:1;9355:45:0;;;9286:21:1;9343:2;9323:18;;;9316:30;-1:-1:-1;;;9362:18:1;;;9355:49;9421:18;;9355:45:0;9102:343:1;9355:45:0;9444:9;9419:21;:34;;9411:75;;;;-1:-1:-1;;;9411:75:0;;9652:2:1;9411:75:0;;;9634:21:1;9691:2;9671:18;;;9664:30;9730;9710:18;;;9703:58;9778:18;;9411:75:0;9450:352:1;9411:75:0;9500:49;9510:10;9530:4;9537:11;9500:9;:49::i;:::-;9560:39;;9568:10;;9560:39;;;;;9589:9;;9560:39;;;;9589:9;9568:10;9560:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9618:43:0;;;9635:1;4954:25:1;;;5010:2;4995:18;;4988:34;;;5038:18;;;5031:34;;;5096:2;5081:18;;5074:34;9618:43:0;;9623:10;;9618:43;;;;;;4941:3:1;9618:43:0;;;9169:500;9125:544;:::o;211:418:1:-;360:2;349:9;342:21;323:4;392:6;386:13;435:6;430:2;419:9;415:18;408:34;494:6;489:2;481:6;477:15;472:2;461:9;457:18;451:50;550:1;545:2;536:6;525:9;521:22;517:31;510:42;620:2;613;609:7;604:2;596:6;592:15;588:29;577:9;573:45;569:54;561:62;;;211:418;;;;:::o;887:160::-;952:20;;1008:13;;1001:21;991:32;;981:60;;1037:1;1034;1027:12;981:60;887:160;;;:::o;1052:248::-;1117:6;1125;1178:2;1166:9;1157:7;1153:23;1149:32;1146:52;;;1194:1;1191;1184:12;1146:52;1230:9;1217:23;1207:33;;1259:35;1290:2;1279:9;1275:18;1259:35;:::i;:::-;1249:45;;1052:248;;;;;:::o;1679:276::-;1737:6;1790:2;1778:9;1769:7;1765:23;1761:32;1758:52;;;1806:1;1803;1796:12;1758:52;1845:9;1832:23;1895:10;1888:5;1884:22;1877:5;1874:33;1864:61;;1921:1;1918;1911:12;1864:61;1944:5;1679:276;-1:-1:-1;;;1679:276:1:o;2357:180::-;2416:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:52;;;2485:1;2482;2475:12;2437:52;-1:-1:-1;2508:23:1;;2357:180;-1:-1:-1;2357:180:1:o;2542:173::-;2610:20;;-1:-1:-1;;;;;2659:31:1;;2649:42;;2639:70;;2705:1;2702;2695:12;2720:186;2779:6;2832:2;2820:9;2811:7;2807:23;2803:32;2800:52;;;2848:1;2845;2838:12;2800:52;2871:29;2890:9;2871:29;:::i;2911:254::-;2979:6;2987;3040:2;3028:9;3019:7;3015:23;3011:32;3008:52;;;3056:1;3053;3046:12;3008:52;3079:29;3098:9;3079:29;:::i;:::-;3069:39;3155:2;3140:18;;;;3127:32;;-1:-1:-1;;;2911:254:1:o;3170:180::-;3226:6;3279:2;3267:9;3258:7;3254:23;3250:32;3247:52;;;3295:1;3292;3285:12;3247:52;3318:26;3334:9;3318:26;:::i;3702:127::-;3763:10;3758:3;3754:20;3751:1;3744:31;3794:4;3791:1;3784:15;3818:4;3815:1;3808:15;3834:168;3907:9;;;3938;;3955:15;;;3949:22;;3935:37;3925:71;;3976:18;;:::i;4007:217::-;4047:1;4073;4063:132;;4117:10;4112:3;4108:20;4105:1;4098:31;4152:4;4149:1;4142:15;4180:4;4177:1;4170:15;4063:132;-1:-1:-1;4209:9:1;;4007:217::o;4229:125::-;4294:9;;;4315:10;;;4312:36;;;4328:18;;:::i;5119:380::-;5198:1;5194:12;;;;5241;;;5262:61;;5316:4;5308:6;5304:17;5294:27;;5262:61;5369:2;5361:6;5358:14;5338:18;5335:38;5332:161;;5415:10;5410:3;5406:20;5403:1;5396:31;5450:4;5447:1;5440:15;5478:4;5475:1;5468:15;5332:161;;5119:380;;;:::o;5504:398::-;5706:2;5688:21;;;5745:2;5725:18;;;5718:30;5784:34;5779:2;5764:18;;5757:62;-1:-1:-1;;;5850:2:1;5835:18;;5828:32;5892:3;5877:19;;5504:398::o;6262:356::-;6464:2;6446:21;;;6483:18;;;6476:30;6542:34;6537:2;6522:18;;6515:62;6609:2;6594:18;;6262:356::o

Swarm Source

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