ETH Price: $2,523.94 (-0.42%)

Token

Galaxy Brain (BRAIN)
 

Overview

Max Total Supply

1,000,000,000,000 BRAIN

Holders

70

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,184,501,621.75059503800671079 BRAIN

Value
$0.00
0xafda991fde54d32872a4bc19ad11880ba6c9e736
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:
GalaxyBrain

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
*/
/* 
           _---~~(~~-_.
        _{        )   )
      ,   ) -~~- ( ,-' )_
     (  `-,_..`., )-- '_,)
    ( ` _)  (  -~( -_ `,  }
    (_-  _  ~_-~~~~`,  ,' )
      `~ -^(    __;-,((()))
            ~~~~ {_ -_(())
                   `\  }
                     { }  

The Galaxy Brain meme, anon, are you ready to transcend?

imagine going to work and saying you quit because $BRAIN mooned? lol

https://t.me/GalaxyBrainETH
https://twitter.com/GalaxyBrainETH
https://GalaxyBrainETH.com


*/

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (utils/Context.sol)

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.0 (access/Ownable.sol)

pragma solidity ^0.8.0;

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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing 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);
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

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


// File @openzeppelin/contracts/token/ERC20/[email protected]


// OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;



/**
 * @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 Contracts guidelines: functions revert
 * instead 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 ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default 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(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    /**
     * @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 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");
        unchecked {
            _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");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, 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");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(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 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 Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


// File contracts/BRAIN.sol



pragma solidity ^0.8.0;


contract GalaxyBrain is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    uint256 public buyTax = 0;
    uint256 public sellTax = 100;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;

    constructor() ERC20("Galaxy Brain", "BRAIN") {
        _mint(msg.sender, 1000000000000 * 10**18);
    }


    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setBuyTax(uint256 _buyTax) external onlyOwner {
        buyTax = _buyTax;
    }

    function setSellTax(uint256 _sellTax) external onlyOwner {
        sellTax = _sellTax;
    }

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "Trading is not started");
            return;
        }

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }

    address public collectionWallet = 0x9a79bF056801D9fE9473177fC1C72bBa88801feD;

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) override internal virtual {
        uint256 taxAmount;
        if (recipient == uniswapV2Pair) {
            taxAmount = (amount * sellTax) / 100;
            super._transfer(sender, collectionWallet, taxAmount);
        } else if (sender == uniswapV2Pair) {
            taxAmount = (amount * buyTax) / 100;
            super._transfer(sender, collectionWallet, taxAmount);
        }


        uint256 finalAmount = amount - taxAmount;
        super._transfer(sender, recipient, finalAmount);
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectionWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setSellTax","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405260006009556064600a55600d80546001600160a01b031916739a79bf056801d9fe9473177fc1c72bba88801fed1790553480156200004157600080fd5b506040518060400160405280600c81526020016b23b0b630bc3c90213930b4b760a11b81525060405180604001604052806005815260200164212920a4a760d91b8152506200009f62000099620000f260201b60201c565b620000f6565b8151620000b4906004906020850190620003d1565b508051620000ca906005906020840190620003d1565b505050620000ec336c0c9f2c9cd04674edea400000006200014660201b60201c565b62000595565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001785760405162461bcd60e51b81526004016200016f90620004ce565b60405180910390fd5b620001866000838362000228565b80600360008282546200019a919062000533565b90915550506001600160a01b03821660009081526001602052604081208054839290620001c990849062000533565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200020e9085906200052a565b60405180910390a36200022460008383620003a2565b5050565b6001600160a01b0382166000908152600c602052604090205460ff161580156200026b57506001600160a01b0383166000908152600c602052604090205460ff16155b6200028a5760405162461bcd60e51b81526004016200016f9062000505565b600b546001600160a01b03166200030457620002a5620003a7565b6001600160a01b0316836001600160a01b03161480620002df5750620002ca620003a7565b6001600160a01b0316826001600160a01b0316145b620002fe5760405162461bcd60e51b81526004016200016f9062000497565b620003a2565b60065460ff168015620003245750600b546001600160a01b038481169116145b15620003a257600754816200034484620003b660201b620006341760201c565b62000350919062000533565b11158015620003835750600854816200037484620003b660201b620006341760201c565b62000380919062000533565b10155b620003a25760405162461bcd60e51b81526004016200016f9062000477565b505050565b6000546001600160a01b031690565b6001600160a01b031660009081526001602052604090205490565b828054620003df9062000558565b90600052602060002090601f0160209004810192826200040357600085556200044e565b82601f106200041e57805160ff19168380011785556200044e565b828001600101855582156200044e579182015b828111156200044e57825182559160200191906001019062000431565b506200045c92915062000460565b5090565b5b808211156200045c576000815560010162000461565b602080825260069082015265119bdc989a5960d21b604082015260600190565b60208082526016908201527f54726164696e67206973206e6f74207374617274656400000000000000000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b600082198211156200055357634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200056d57607f821691505b602082108114156200058f57634e487b7160e01b600052602260045260246000fd5b50919050565b6113ea80620005a56000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f957806395d89b4111610097578063cc1776d311610071578063cc1776d31461032b578063dc1052e214610333578063dd62ed3e14610346578063f2fde38b14610359576101a9565b806395d89b41146102fd578063a457c2d714610305578063a9059cbb14610318576101a9565b8063860a32ec116100d3578063860a32ec146102d257806389f9a1d3146102da5780638cd09d50146102e25780638da5cb5b146102f5576101a9565b806370a08231146102af578063715018a6146102c257806378b9f1a9146102ca576101a9565b8063313ce56711610166578063404e512911610140578063404e51291461026c57806342966c681461027f57806349bd5a5e146102925780634f7041a5146102a7576101a9565b8063313ce5671461022f57806339509351146102445780633aa633aa14610257576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806316c02129146101ec57806318160ddd146101ff5780631ab99e121461021457806323b872dd1461021c575b600080fd5b6101b661036c565b6040516101c39190610f37565b60405180910390f35b6101df6101da366004610e96565b6103fe565b6040516101c39190610f2c565b6101df6101fa366004610ddf565b61041b565b610207610430565b6040516101c391906112de565b610207610436565b6101df61022a366004610e32565b61043c565b6102376104d5565b6040516101c391906112e7565b6101df610252366004610e96565b6104da565b61026a610265366004610ebf565b61052e565b005b61026a61027a366004610e6d565b6105a8565b61026a61028d366004610f00565b610612565b61029a61061f565b6040516101c39190610f18565b61020761062e565b6102076102bd366004610ddf565b610634565b61026a610653565b61029a61069e565b6101df6106ad565b6102076106b6565b61026a6102f0366004610f00565b6106bc565b61029a610700565b6101b661070f565b6101df610313366004610e96565b61071e565b6101df610326366004610e96565b610797565b6102076107ab565b61026a610341366004610f00565b6107b1565b610207610354366004610e00565b6107f5565b61026a610367366004610ddf565b610820565b60606004805461037b90611363565b80601f01602080910402602001604051908101604052809291908181526020018280546103a790611363565b80156103f45780601f106103c9576101008083540402835291602001916103f4565b820191906000526020600020905b8154815290600101906020018083116103d757829003601f168201915b5050505050905090565b600061041261040b61088e565b8484610892565b50600192915050565b600c6020526000908152604090205460ff1681565b60035490565b60085481565b6000610449848484610946565b6001600160a01b03841660009081526002602052604081208161046a61088e565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156104b65760405162461bcd60e51b81526004016104ad9061112d565b60405180910390fd5b6104ca856104c261088e565b858403610892565b506001949350505050565b601290565b60006104126104e761088e565b8484600260006104f561088e565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461052991906112f5565b610892565b61053661088e565b6001600160a01b0316610547610700565b6001600160a01b03161461056d5760405162461bcd60e51b81526004016104ad90611175565b6006805460ff191694151594909417909355600b80546001600160a01b0319166001600160a01b039390931692909217909155600755600855565b6105b061088e565b6001600160a01b03166105c1610700565b6001600160a01b0316146105e75760405162461bcd60e51b81526004016104ad90611175565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61061c3382610a04565b50565b600b546001600160a01b031681565b60095481565b6001600160a01b0381166000908152600160205260409020545b919050565b61065b61088e565b6001600160a01b031661066c610700565b6001600160a01b0316146106925760405162461bcd60e51b81526004016104ad90611175565b61069c6000610af6565b565b600d546001600160a01b031681565b60065460ff1681565b60075481565b6106c461088e565b6001600160a01b03166106d5610700565b6001600160a01b0316146106fb5760405162461bcd60e51b81526004016104ad90611175565b600a55565b6000546001600160a01b031690565b60606005805461037b90611363565b6000806002600061072d61088e565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156107795760405162461bcd60e51b81526004016104ad90611274565b61078d61078461088e565b85858403610892565b5060019392505050565b60006104126107a461088e565b8484610946565b600a5481565b6107b961088e565b6001600160a01b03166107ca610700565b6001600160a01b0316146107f05760405162461bcd60e51b81526004016104ad90611175565b600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61082861088e565b6001600160a01b0316610839610700565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016104ad90611175565b6001600160a01b0381166108855760405162461bcd60e51b81526004016104ad9061100f565b61061c81610af6565b3390565b6001600160a01b0383166108b85760405162461bcd60e51b81526004016104ad90611230565b6001600160a01b0382166108de5760405162461bcd60e51b81526004016104ad90611055565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109399085906112de565b60405180910390a3505050565b600b546000906001600160a01b0384811691161415610999576064600a548361096f919061132d565b610979919061130d565b600d549091506109949085906001600160a01b031683610b46565b6109e4565b600b546001600160a01b03858116911614156109e4576064600954836109bf919061132d565b6109c9919061130d565b600d549091506109e49085906001600160a01b031683610b46565b60006109f0828461134c565b90506109fd858583610b46565b5050505050565b6001600160a01b038216610a2a5760405162461bcd60e51b81526004016104ad906111aa565b610a3682600083610c70565b6001600160a01b03821660009081526001602052604090205481811015610a6f5760405162461bcd60e51b81526004016104ad90610fcd565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610a9e90849061134c565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ae19086906112de565b60405180910390a3610af1836000845b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610b6c5760405162461bcd60e51b81526004016104ad906111eb565b6001600160a01b038216610b925760405162461bcd60e51b81526004016104ad90610f8a565b610b9d838383610c70565b6001600160a01b03831660009081526001602052604090205481811015610bd65760405162461bcd60e51b81526004016104ad90611097565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610c0d9084906112f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5791906112de565b60405180910390a3610c6a848484610af1565b50505050565b6001600160a01b0382166000908152600c602052604090205460ff16158015610cb257506001600160a01b0383166000908152600c602052604090205460ff16155b610cce5760405162461bcd60e51b81526004016104ad906112b9565b600b546001600160a01b0316610d3e57610ce6610700565b6001600160a01b0316836001600160a01b03161480610d1d5750610d08610700565b6001600160a01b0316826001600160a01b0316145b610d395760405162461bcd60e51b81526004016104ad906110fd565b610af1565b60065460ff168015610d5d5750600b546001600160a01b038481169116145b15610af15760075481610d6f84610634565b610d7991906112f5565b11158015610d9c575060085481610d8f84610634565b610d9991906112f5565b10155b610af15760405162461bcd60e51b81526004016104ad906110dd565b80356001600160a01b038116811461064e57600080fd5b8035801515811461064e57600080fd5b600060208284031215610df0578081fd5b610df982610db8565b9392505050565b60008060408385031215610e12578081fd5b610e1b83610db8565b9150610e2960208401610db8565b90509250929050565b600080600060608486031215610e46578081fd5b610e4f84610db8565b9250610e5d60208501610db8565b9150604084013590509250925092565b60008060408385031215610e7f578182fd5b610e8883610db8565b9150610e2960208401610dcf565b60008060408385031215610ea8578182fd5b610eb183610db8565b946020939093013593505050565b60008060008060808587031215610ed4578081fd5b610edd85610dcf565b9350610eeb60208601610db8565b93969395505050506040820135916060013590565b600060208284031215610f11578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610f6357858101830151858201604001528201610f47565b81811115610f745783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260069082015265119bdc989a5960d21b604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b60ff91909116815260200190565b600082198211156113085761130861139e565b500190565b60008261132857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156113475761134761139e565b500290565b60008282101561135e5761135e61139e565b500390565b60028104600182168061137757607f821691505b6020821081141561139857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea264697066735822122021d78a717de7cdcc83d5602e1f0972c164a4997a027eb6ab2203e95f078cbfd064736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f957806395d89b4111610097578063cc1776d311610071578063cc1776d31461032b578063dc1052e214610333578063dd62ed3e14610346578063f2fde38b14610359576101a9565b806395d89b41146102fd578063a457c2d714610305578063a9059cbb14610318576101a9565b8063860a32ec116100d3578063860a32ec146102d257806389f9a1d3146102da5780638cd09d50146102e25780638da5cb5b146102f5576101a9565b806370a08231146102af578063715018a6146102c257806378b9f1a9146102ca576101a9565b8063313ce56711610166578063404e512911610140578063404e51291461026c57806342966c681461027f57806349bd5a5e146102925780634f7041a5146102a7576101a9565b8063313ce5671461022f57806339509351146102445780633aa633aa14610257576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806316c02129146101ec57806318160ddd146101ff5780631ab99e121461021457806323b872dd1461021c575b600080fd5b6101b661036c565b6040516101c39190610f37565b60405180910390f35b6101df6101da366004610e96565b6103fe565b6040516101c39190610f2c565b6101df6101fa366004610ddf565b61041b565b610207610430565b6040516101c391906112de565b610207610436565b6101df61022a366004610e32565b61043c565b6102376104d5565b6040516101c391906112e7565b6101df610252366004610e96565b6104da565b61026a610265366004610ebf565b61052e565b005b61026a61027a366004610e6d565b6105a8565b61026a61028d366004610f00565b610612565b61029a61061f565b6040516101c39190610f18565b61020761062e565b6102076102bd366004610ddf565b610634565b61026a610653565b61029a61069e565b6101df6106ad565b6102076106b6565b61026a6102f0366004610f00565b6106bc565b61029a610700565b6101b661070f565b6101df610313366004610e96565b61071e565b6101df610326366004610e96565b610797565b6102076107ab565b61026a610341366004610f00565b6107b1565b610207610354366004610e00565b6107f5565b61026a610367366004610ddf565b610820565b60606004805461037b90611363565b80601f01602080910402602001604051908101604052809291908181526020018280546103a790611363565b80156103f45780601f106103c9576101008083540402835291602001916103f4565b820191906000526020600020905b8154815290600101906020018083116103d757829003601f168201915b5050505050905090565b600061041261040b61088e565b8484610892565b50600192915050565b600c6020526000908152604090205460ff1681565b60035490565b60085481565b6000610449848484610946565b6001600160a01b03841660009081526002602052604081208161046a61088e565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828110156104b65760405162461bcd60e51b81526004016104ad9061112d565b60405180910390fd5b6104ca856104c261088e565b858403610892565b506001949350505050565b601290565b60006104126104e761088e565b8484600260006104f561088e565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461052991906112f5565b610892565b61053661088e565b6001600160a01b0316610547610700565b6001600160a01b03161461056d5760405162461bcd60e51b81526004016104ad90611175565b6006805460ff191694151594909417909355600b80546001600160a01b0319166001600160a01b039390931692909217909155600755600855565b6105b061088e565b6001600160a01b03166105c1610700565b6001600160a01b0316146105e75760405162461bcd60e51b81526004016104ad90611175565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b61061c3382610a04565b50565b600b546001600160a01b031681565b60095481565b6001600160a01b0381166000908152600160205260409020545b919050565b61065b61088e565b6001600160a01b031661066c610700565b6001600160a01b0316146106925760405162461bcd60e51b81526004016104ad90611175565b61069c6000610af6565b565b600d546001600160a01b031681565b60065460ff1681565b60075481565b6106c461088e565b6001600160a01b03166106d5610700565b6001600160a01b0316146106fb5760405162461bcd60e51b81526004016104ad90611175565b600a55565b6000546001600160a01b031690565b60606005805461037b90611363565b6000806002600061072d61088e565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156107795760405162461bcd60e51b81526004016104ad90611274565b61078d61078461088e565b85858403610892565b5060019392505050565b60006104126107a461088e565b8484610946565b600a5481565b6107b961088e565b6001600160a01b03166107ca610700565b6001600160a01b0316146107f05760405162461bcd60e51b81526004016104ad90611175565b600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61082861088e565b6001600160a01b0316610839610700565b6001600160a01b03161461085f5760405162461bcd60e51b81526004016104ad90611175565b6001600160a01b0381166108855760405162461bcd60e51b81526004016104ad9061100f565b61061c81610af6565b3390565b6001600160a01b0383166108b85760405162461bcd60e51b81526004016104ad90611230565b6001600160a01b0382166108de5760405162461bcd60e51b81526004016104ad90611055565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109399085906112de565b60405180910390a3505050565b600b546000906001600160a01b0384811691161415610999576064600a548361096f919061132d565b610979919061130d565b600d549091506109949085906001600160a01b031683610b46565b6109e4565b600b546001600160a01b03858116911614156109e4576064600954836109bf919061132d565b6109c9919061130d565b600d549091506109e49085906001600160a01b031683610b46565b60006109f0828461134c565b90506109fd858583610b46565b5050505050565b6001600160a01b038216610a2a5760405162461bcd60e51b81526004016104ad906111aa565b610a3682600083610c70565b6001600160a01b03821660009081526001602052604090205481811015610a6f5760405162461bcd60e51b81526004016104ad90610fcd565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610a9e90849061134c565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ae19086906112de565b60405180910390a3610af1836000845b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610b6c5760405162461bcd60e51b81526004016104ad906111eb565b6001600160a01b038216610b925760405162461bcd60e51b81526004016104ad90610f8a565b610b9d838383610c70565b6001600160a01b03831660009081526001602052604090205481811015610bd65760405162461bcd60e51b81526004016104ad90611097565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610c0d9084906112f5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c5791906112de565b60405180910390a3610c6a848484610af1565b50505050565b6001600160a01b0382166000908152600c602052604090205460ff16158015610cb257506001600160a01b0383166000908152600c602052604090205460ff16155b610cce5760405162461bcd60e51b81526004016104ad906112b9565b600b546001600160a01b0316610d3e57610ce6610700565b6001600160a01b0316836001600160a01b03161480610d1d5750610d08610700565b6001600160a01b0316826001600160a01b0316145b610d395760405162461bcd60e51b81526004016104ad906110fd565b610af1565b60065460ff168015610d5d5750600b546001600160a01b038481169116145b15610af15760075481610d6f84610634565b610d7991906112f5565b11158015610d9c575060085481610d8f84610634565b610d9991906112f5565b10155b610af15760405162461bcd60e51b81526004016104ad906110dd565b80356001600160a01b038116811461064e57600080fd5b8035801515811461064e57600080fd5b600060208284031215610df0578081fd5b610df982610db8565b9392505050565b60008060408385031215610e12578081fd5b610e1b83610db8565b9150610e2960208401610db8565b90509250929050565b600080600060608486031215610e46578081fd5b610e4f84610db8565b9250610e5d60208501610db8565b9150604084013590509250925092565b60008060408385031215610e7f578182fd5b610e8883610db8565b9150610e2960208401610dcf565b60008060408385031215610ea8578182fd5b610eb183610db8565b946020939093013593505050565b60008060008060808587031215610ed4578081fd5b610edd85610dcf565b9350610eeb60208601610db8565b93969395505050506040820135916060013590565b600060208284031215610f11578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610f6357858101830151858201604001528201610f47565b81811115610f745783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b602080825260069082015265119bdc989a5960d21b604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252600b908201526a109b1858dadb1a5cdd195960aa1b604082015260600190565b90815260200190565b60ff91909116815260200190565b600082198211156113085761130861139e565b500190565b60008261132857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156113475761134761139e565b500290565b60008282101561135e5761135e61139e565b500390565b60028104600182168061137757607f821691505b6020821081141561139857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea264697066735822122021d78a717de7cdcc83d5602e1f0972c164a4997a027eb6ab2203e95f078cbfd064736f6c63430008000033

Deployed Bytecode Sourcemap

18786:2435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8759:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10926:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;19036:42::-;;;;;;:::i;:::-;;:::i;9879:108::-;;;:::i;:::-;;;;;;;:::i;18896:31::-;;;:::i;11577:492::-;;;;;;:::i;:::-;;:::i;9721:93::-;;;:::i;:::-;;;;;;;:::i;12478:215::-;;;;;;:::i;:::-;;:::i;19545:301::-;;;;;;:::i;:::-;;:::i;:::-;;19202:135;;;;;;:::i;:::-;;:::i;21137:81::-;;;;;;:::i;:::-;;:::i;19001:28::-;;;:::i;:::-;;;;;;;:::i;18934:25::-;;;:::i;10050:127::-;;;;;;:::i;:::-;;:::i;2160:103::-;;;:::i;20429:76::-;;;:::i;18832:19::-;;;:::i;18858:31::-;;;:::i;19443:94::-;;;;;;:::i;:::-;;:::i;1509:87::-;;;:::i;8978:104::-;;;:::i;13196:413::-;;;;;;:::i;:::-;;:::i;10390:175::-;;;;;;:::i;:::-;;:::i;18966:28::-;;;:::i;19345:90::-;;;;;;:::i;:::-;;:::i;10628:151::-;;;;;;:::i;:::-;;:::i;2418:201::-;;;;;;:::i;:::-;;:::i;8759:100::-;8813:13;8846:5;8839:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8759:100;:::o;10926:169::-;11009:4;11026:39;11035:12;:10;:12::i;:::-;11049:7;11058:6;11026:8;:39::i;:::-;-1:-1:-1;11083:4:0;10926:169;;;;:::o;19036:42::-;;;;;;;;;;;;;;;:::o;9879:108::-;9967:12;;9879:108;:::o;18896:31::-;;;;:::o;11577:492::-;11717:4;11734:36;11744:6;11752:9;11763:6;11734:9;:36::i;:::-;-1:-1:-1;;;;;11810:19:0;;11783:24;11810:19;;;:11;:19;;;;;11783:24;11830:12;:10;:12::i;:::-;-1:-1:-1;;;;;11810:33:0;-1:-1:-1;;;;;11810:33:0;;;;;;;;;;;;;11783:60;;11882:6;11862:16;:26;;11854:79;;;;-1:-1:-1;;;11854:79:0;;;;;;;:::i;:::-;;;;;;;;;11969:57;11978:6;11986:12;:10;:12::i;:::-;12019:6;12000:16;:25;11969:8;:57::i;:::-;-1:-1:-1;12057:4:0;;11577:492;-1:-1:-1;;;;11577:492:0:o;9721:93::-;9804:2;9721:93;:::o;12478:215::-;12566:4;12583:80;12592:12;:10;:12::i;:::-;12606:7;12652:10;12615:11;:25;12627:12;:10;:12::i;:::-;-1:-1:-1;;;;;12615:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;12615:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;12583:8;:80::i;19545:301::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;19685:7:::1;:18:::0;;-1:-1:-1;;19685:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;19714:13:::1;:30:::0;;-1:-1:-1;;;;;;19714:30:0::1;-1:-1:-1::0;;;;;19714:30:0;;;::::1;::::0;;;::::1;::::0;;;19755:16:::1;:36:::0;19802:16:::1;:36:::0;19545:301::o;19202:135::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19291:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:38;;-1:-1:-1;;19291:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19202:135::o;21137:81::-;21186:24;21192:10;21204:5;21186;:24::i;:::-;21137:81;:::o;19001:28::-;;;-1:-1:-1;;;;;19001:28:0;;:::o;18934:25::-;;;;:::o;10050:127::-;-1:-1:-1;;;;;10151:18:0;;10124:7;10151:18;;;:9;:18;;;;;;10050:127;;;;:::o;2160:103::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;2225:30:::1;2252:1;2225:18;:30::i;:::-;2160:103::o:0;20429:76::-;;;-1:-1:-1;;;;;20429:76:0;;:::o;18832:19::-;;;;;;:::o;18858:31::-;;;;:::o;19443:94::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;19511:7:::1;:18:::0;19443:94::o;1509:87::-;1555:7;1582:6;-1:-1:-1;;;;;1582:6:0;1509:87;:::o;8978:104::-;9034:13;9067:7;9060:14;;;;;:::i;13196:413::-;13289:4;13306:24;13333:11;:25;13345:12;:10;:12::i;:::-;-1:-1:-1;;;;;13333:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;13333:25:0;;;:34;;;;;;;;;;;-1:-1:-1;13386:35:0;;;;13378:85;;;;-1:-1:-1;;;13378:85:0;;;;;;;:::i;:::-;13499:67;13508:12;:10;:12::i;:::-;13522:7;13550:15;13531:16;:34;13499:8;:67::i;:::-;-1:-1:-1;13597:4:0;;13196:413;-1:-1:-1;;;13196:413:0:o;10390:175::-;10476:4;10493:42;10503:12;:10;:12::i;:::-;10517:9;10528:6;10493:9;:42::i;18966:28::-;;;;:::o;19345:90::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;19411:6:::1;:16:::0;19345:90::o;10628:151::-;-1:-1:-1;;;;;10744:18:0;;;10717:7;10744:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10628:151::o;2418:201::-;1740:12;:10;:12::i;:::-;-1:-1:-1;;;;;1729:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1729:23:0;;1721:68;;;;-1:-1:-1;;;1721:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2507:22:0;::::1;2499:73;;;;-1:-1:-1::0;;;2499:73:0::1;;;;;;;:::i;:::-;2583:28;2602:8;2583:18;:28::i;734:98::-:0;814:10;734:98;:::o;16880:380::-;-1:-1:-1;;;;;17016:19:0;;17008:68;;;;-1:-1:-1;;;17008:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17095:21:0;;17087:68;;;;-1:-1:-1;;;17087:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17168:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;17220:32;;;;;17198:6;;17220:32;:::i;:::-;;;;;;;;16880:380;;;:::o;20514:615::-;20700:13;;20655:17;;-1:-1:-1;;;;;20687:26:0;;;20700:13;;20687:26;20683:326;;;20763:3;20752:7;;20743:6;:16;;;;:::i;:::-;20742:24;;;;:::i;:::-;20805:16;;20730:36;;-1:-1:-1;20781:52:0;;20797:6;;-1:-1:-1;;;;;20805:16:0;20730:36;20781:15;:52::i;:::-;20683:326;;;20865:13;;-1:-1:-1;;;;;20855:23:0;;;20865:13;;20855:23;20851:158;;;20927:3;20917:6;;20908;:15;;;;:::i;:::-;20907:23;;;;:::i;:::-;20969:16;;20895:35;;-1:-1:-1;20945:52:0;;20961:6;;-1:-1:-1;;;;;20969:16:0;20895:35;20945:15;:52::i;:::-;21023:19;21045:18;21054:9;21045:6;:18;:::i;:::-;21023:40;;21074:47;21090:6;21098:9;21109:11;21074:15;:47::i;:::-;20514:615;;;;;:::o;15851:591::-;-1:-1:-1;;;;;15935:21:0;;15927:67;;;;-1:-1:-1;;;15927:67:0;;;;;;;:::i;:::-;16007:49;16028:7;16045:1;16049:6;16007:20;:49::i;:::-;-1:-1:-1;;;;;16094:18:0;;16069:22;16094:18;;;:9;:18;;;;;;16131:24;;;;16123:71;;;;-1:-1:-1;;;16123:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16230:18:0;;;;;;:9;:18;;;;;16251:23;;;16230:44;;16296:12;:22;;16268:6;;16230:18;16296:22;;16268:6;;16296:22;:::i;:::-;;;;-1:-1:-1;;16336:37:0;;16362:1;;-1:-1:-1;;;;;16336:37:0;;;;;;;16366:6;;16336:37;:::i;:::-;;;;;;;;16386:48;16406:7;16423:1;16427:6;16386:48;15851:591;;;:::o;2779:191::-;2853:16;2872:6;;-1:-1:-1;;;;;2889:17:0;;;-1:-1:-1;;;;;;2889:17:0;;;;;;2922:40;;2872:6;;;;;;;2922:40;;2853:16;2922:40;2779:191;;:::o;14099:733::-;-1:-1:-1;;;;;14239:20:0;;14231:70;;;;-1:-1:-1;;;14231:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14320:23:0;;14312:71;;;;-1:-1:-1;;;14312:71:0;;;;;;;:::i;:::-;14396:47;14417:6;14425:9;14436:6;14396:20;:47::i;:::-;-1:-1:-1;;;;;14480:17:0;;14456:21;14480:17;;;:9;:17;;;;;;14516:23;;;;14508:74;;;;-1:-1:-1;;;14508:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14618:17:0;;;;;;;:9;:17;;;;;;14638:22;;;14618:42;;14682:20;;;;;;;;:30;;14654:6;;14618:17;14682:30;;14654:6;;14682:30;:::i;:::-;;;;;;;;14747:9;-1:-1:-1;;;;;14730:35:0;14739:6;-1:-1:-1;;;;;14730:35:0;;14758:6;14730:35;;;;;;:::i;:::-;;;;;;;;14778:46;14798:6;14806:9;14817:6;14778:19;:46::i;:::-;14099:733;;;;:::o;19854:567::-;-1:-1:-1;;;;;20006:14:0;;;;;;:10;:14;;;;;;;;20005:15;:36;;;;-1:-1:-1;;;;;;20025:16:0;;;;;;:10;:16;;;;;;;;20024:17;20005:36;19997:60;;;;-1:-1:-1;;;19997:60:0;;;;;;;:::i;:::-;20074:13;;-1:-1:-1;;;;;20074:13:0;20070:148;;20134:7;:5;:7::i;:::-;-1:-1:-1;;;;;20126:15:0;:4;-1:-1:-1;;;;;20126:15:0;;:32;;;;20151:7;:5;:7::i;:::-;-1:-1:-1;;;;;20145:13:0;:2;-1:-1:-1;;;;;20145:13:0;;20126:32;20118:67;;;;-1:-1:-1;;;20118:67:0;;;;;;;:::i;:::-;20200:7;;20070:148;20234:7;;;;:32;;;;-1:-1:-1;20253:13:0;;-1:-1:-1;;;;;20245:21:0;;;20253:13;;20245:21;20234:32;20230:184;;;20323:16;;20313:6;20291:19;20307:2;20291:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20375:16;;20365:6;20343:19;20359:2;20343:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20291:100;20283:119;;;;-1:-1:-1;;;20283:119:0;;;;;;;:::i;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:162;261:20;;317:13;;310:21;300:32;;290:2;;346:1;343;336:12;361:198;;473:2;461:9;452:7;448:23;444:32;441:2;;;494:6;486;479:22;441:2;522:31;543:9;522:31;:::i;:::-;512:41;431:128;-1:-1:-1;;;431:128:1:o;564:274::-;;;693:2;681:9;672:7;668:23;664:32;661:2;;;714:6;706;699:22;661:2;742:31;763:9;742:31;:::i;:::-;732:41;;792:40;828:2;817:9;813:18;792:40;:::i;:::-;782:50;;651:187;;;;;:::o;843:342::-;;;;989:2;977:9;968:7;964:23;960:32;957:2;;;1010:6;1002;995:22;957:2;1038:31;1059:9;1038:31;:::i;:::-;1028:41;;1088:40;1124:2;1113:9;1109:18;1088:40;:::i;:::-;1078:50;;1175:2;1164:9;1160:18;1147:32;1137:42;;947:238;;;;;:::o;1190:268::-;;;1316:2;1304:9;1295:7;1291:23;1287:32;1284:2;;;1337:6;1329;1322:22;1284:2;1365:31;1386:9;1365:31;:::i;:::-;1355:41;;1415:37;1448:2;1437:9;1433:18;1415:37;:::i;1463:266::-;;;1592:2;1580:9;1571:7;1567:23;1563:32;1560:2;;;1613:6;1605;1598:22;1560:2;1641:31;1662:9;1641:31;:::i;:::-;1631:41;1719:2;1704:18;;;;1691:32;;-1:-1:-1;;;1550:179:1:o;1734:405::-;;;;;1894:3;1882:9;1873:7;1869:23;1865:33;1862:2;;;1916:6;1908;1901:22;1862:2;1944:28;1962:9;1944:28;:::i;:::-;1934:38;;1991:40;2027:2;2016:9;2012:18;1991:40;:::i;:::-;1852:287;;1981:50;;-1:-1:-1;;;;2078:2:1;2063:18;;2050:32;;2129:2;2114:18;2101:32;;1852:287::o;2144:190::-;;2256:2;2244:9;2235:7;2231:23;2227:32;2224:2;;;2277:6;2269;2262:22;2224:2;-1:-1:-1;2305:23:1;;2214:120;-1:-1:-1;2214:120:1:o;2339:203::-;-1:-1:-1;;;;;2503:32:1;;;;2485:51;;2473:2;2458:18;;2440:102::o;2547:187::-;2712:14;;2705:22;2687:41;;2675:2;2660:18;;2642:92::o;2739:603::-;;2880:2;2909;2898:9;2891:21;2941:6;2935:13;2984:6;2979:2;2968:9;2964:18;2957:34;3009:4;3022:140;3036:6;3033:1;3030:13;3022:140;;;3131:14;;;3127:23;;3121:30;3097:17;;;3116:2;3093:26;3086:66;3051:10;;3022:140;;;3180:6;3177:1;3174:13;3171:2;;;3250:4;3245:2;3236:6;3225:9;3221:22;3217:31;3210:45;3171:2;-1:-1:-1;3326:2:1;3305:15;-1:-1:-1;;3301:29:1;3286:45;;;;3333:2;3282:54;;2860:482;-1:-1:-1;;;2860:482:1:o;3347:399::-;3549:2;3531:21;;;3588:2;3568:18;;;3561:30;3627:34;3622:2;3607:18;;3600:62;-1:-1:-1;;;3693:2:1;3678:18;;3671:33;3736:3;3721:19;;3521:225::o;3751:398::-;3953:2;3935:21;;;3992:2;3972:18;;;3965:30;4031:34;4026:2;4011:18;;4004:62;-1:-1:-1;;;4097:2:1;4082:18;;4075:32;4139:3;4124:19;;3925:224::o;4154:402::-;4356:2;4338:21;;;4395:2;4375:18;;;4368:30;4434:34;4429:2;4414:18;;4407:62;-1:-1:-1;;;4500:2:1;4485:18;;4478:36;4546:3;4531:19;;4328:228::o;4561:398::-;4763:2;4745:21;;;4802:2;4782:18;;;4775:30;4841:34;4836:2;4821:18;;4814:62;-1:-1:-1;;;4907:2:1;4892:18;;4885:32;4949:3;4934:19;;4735:224::o;4964:402::-;5166:2;5148:21;;;5205:2;5185:18;;;5178:30;5244:34;5239:2;5224:18;;5217:62;-1:-1:-1;;;5310:2:1;5295:18;;5288:36;5356:3;5341:19;;5138:228::o;5371:329::-;5573:2;5555:21;;;5612:1;5592:18;;;5585:29;-1:-1:-1;;;5645:2:1;5630:18;;5623:36;5691:2;5676:18;;5545:155::o;5705:346::-;5907:2;5889:21;;;5946:2;5926:18;;;5919:30;-1:-1:-1;;;5980:2:1;5965:18;;5958:52;6042:2;6027:18;;5879:172::o;6056:404::-;6258:2;6240:21;;;6297:2;6277:18;;;6270:30;6336:34;6331:2;6316:18;;6309:62;-1:-1:-1;;;6402:2:1;6387:18;;6380:38;6450:3;6435:19;;6230:230::o;6465:356::-;6667:2;6649:21;;;6686:18;;;6679:30;6745:34;6740:2;6725:18;;6718:62;6812:2;6797:18;;6639:182::o;6826:397::-;7028:2;7010:21;;;7067:2;7047:18;;;7040:30;7106:34;7101:2;7086:18;;7079:62;-1:-1:-1;;;7172:2:1;7157:18;;7150:31;7213:3;7198:19;;7000:223::o;7228:401::-;7430:2;7412:21;;;7469:2;7449:18;;;7442:30;7508:34;7503:2;7488:18;;7481:62;-1:-1:-1;;;7574:2:1;7559:18;;7552:35;7619:3;7604:19;;7402:227::o;7634:400::-;7836:2;7818:21;;;7875:2;7855:18;;;7848:30;7914:34;7909:2;7894:18;;7887:62;-1:-1:-1;;;7980:2:1;7965:18;;7958:34;8024:3;8009:19;;7808:226::o;8039:401::-;8241:2;8223:21;;;8280:2;8260:18;;;8253:30;8319:34;8314:2;8299:18;;8292:62;-1:-1:-1;;;8385:2:1;8370:18;;8363:35;8430:3;8415:19;;8213:227::o;8445:335::-;8647:2;8629:21;;;8686:2;8666:18;;;8659:30;-1:-1:-1;;;8720:2:1;8705:18;;8698:41;8771:2;8756:18;;8619:161::o;8785:177::-;8931:25;;;8919:2;8904:18;;8886:76::o;8967:184::-;9139:4;9127:17;;;;9109:36;;9097:2;9082:18;;9064:87::o;9156:128::-;;9227:1;9223:6;9220:1;9217:13;9214:2;;;9233:18;;:::i;:::-;-1:-1:-1;9269:9:1;;9204:80::o;9289:217::-;;9355:1;9345:2;;-1:-1:-1;;;9380:31:1;;9434:4;9431:1;9424:15;9462:4;9387:1;9452:15;9345:2;-1:-1:-1;9491:9:1;;9335:171::o;9511:168::-;;9617:1;9613;9609:6;9605:14;9602:1;9599:21;9594:1;9587:9;9580:17;9576:45;9573:2;;;9624:18;;:::i;:::-;-1:-1:-1;9664:9:1;;9563:116::o;9684:125::-;;9752:1;9749;9746:8;9743:2;;;9757:18;;:::i;:::-;-1:-1:-1;9794:9:1;;9733:76::o;9814:380::-;9899:1;9889:12;;9946:1;9936:12;;;9957:2;;10011:4;10003:6;9999:17;9989:27;;9957:2;10064;10056:6;10053:14;10033:18;10030:38;10027:2;;;10110:10;10105:3;10101:20;10098:1;10091:31;10145:4;10142:1;10135:15;10173:4;10170:1;10163:15;10027:2;;9869:325;;;:::o;10199:127::-;10260:10;10255:3;10251:20;10248:1;10241:31;10291:4;10288:1;10281:15;10315:4;10312:1;10305:15

Swarm Source

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