ETH Price: $3,476.28 (+4.95%)

Token

PEPE (PEPE)
 

Overview

Max Total Supply

1,000,000,000 PEPE

Holders

223

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
633,764,116.842656473974294189 PEPE

Value
$0.00
0xb95b9ce4351651d5606be1ee965760275313e29e
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:
StandardToken

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-31
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC-20 standard as defined in the ERC.
 */
interface IERC20 {
    /**
     * @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 Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

pragma solidity ^0.8.20;

/**
 * @dev Interface for the optional metadata functions from the ERC-20 standard.
 */
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);
}

pragma solidity ^0.8.20;

/**
 * @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) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

pragma solidity ^0.8.20;

/**
 * @dev Standard ERC-20 Errors
 * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.
 */
interface IERC20Errors {
    /**
     * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     * @param balance Current balance for the interacting account.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);

    /**
     * @dev Indicates a failure with the token `sender`. Used in transfers.
     * @param sender Address whose tokens are being transferred.
     */
    error ERC20InvalidSender(address sender);

    /**
     * @dev Indicates a failure with the token `receiver`. Used in transfers.
     * @param receiver Address to which tokens are being transferred.
     */
    error ERC20InvalidReceiver(address receiver);

    /**
     * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     * @param allowance Amount of tokens a `spender` is allowed to operate with.
     * @param needed Minimum amount required to perform a transfer.
     */
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);

    /**
     * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
     * @param approver Address initiating an approval operation.
     */
    error ERC20InvalidApprover(address approver);

    /**
     * @dev Indicates a failure with the `spender` to be approved. Used in approvals.
     * @param spender Address that may be allowed to operate on tokens without being their owner.
     */
    error ERC20InvalidSpender(address spender);
}


pragma solidity ^0.8.20;


/**
 * @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}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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 ERC-20
 * applications.
 */
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
    mapping(address account => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 returns (string memory) {
        return _name;
    }

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * 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 default value returned by this function, unless
     * it's 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 returns (uint8) {
        return 18;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `value`.
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, value);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, value);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Skips emitting an {Approval} event indicating an allowance update. This is not
     * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `value`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `value`.
     */
    function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, value);
        _transfer(from, to, value);
        return true;
    }

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to`.
     *
     * 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.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _transfer(address from, address to, uint256 value) virtual internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`
     * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding
     * this function.
     *
     * Emits a {Transfer} event.
     */
    function _update(address from, address to, uint256 value) internal virtual {
        if (from == address(0)) {
            // Overflow check required: The rest of the code assumes that totalSupply never overflows
            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {
                // Overflow not possible: value <= fromBalance <= totalSupply.
                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {
                // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.
                _totalSupply -= value;
            }
        } else {
            unchecked {
                // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.
                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    /**
     * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
     * Relies on the `_update` mechanism
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    /**
     * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.
     * Relies on the `_update` mechanism.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead
     */
    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    /**
     * @dev Sets `value` 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.
     *
     * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        _approve(owner, spender, value, true);
    }

    /**
     * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.
     *
     * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by
     * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any
     * `Approval` event during `transferFrom` operations.
     *
     * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to
     * true using the following override:
     *
     * ```solidity
     * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {
     *     super._approve(owner, spender, value, true);
     * }
     * ```
     *
     * Requirements are the same as {_approve}.
     */
    function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `value`.
     *
     * Does not update the allowance value in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Does not emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 value) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(spender, currentAllowance, value);
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

interface IBondingCurveDeployer{
    // function deployBondingCurve(address token, address router, string memory _web, string memory _tg, string memory _x, string memory _desc, string memory _tokenLogo, string memory _name, string memory _symbol, address _who) external returns (address bondingCurve);
    function deployBondingCurve(address[] memory addresses, string memory _web, string memory _tg, string memory _x, string memory _desc, string memory _tokenLogo, string memory _name, string memory _symbol) external returns (address bondingCurve);

}


pragma solidity ^0.8.0;


contract StandardToken is ERC20 {

    address public bondingCurve;
    bool public dexInitialized = false;
    mapping(address => bool) public isBondingCurve;
    event Created(address bondingC);

    constructor(string memory name, string memory symbol, string memory _website, string memory _tg, string memory _x, string memory _description, string memory _tokenLogo, address[] memory addresses) ERC20(name, symbol) {
        IBondingCurveDeployer bondingCurveDeployer = IBondingCurveDeployer(0xa3c11A1506dbbBe523B1F01D7bDb01710E660786);

        address[] memory localAddresses = addresses;
        localAddresses[0] = address(this); // token
        localAddresses[1] = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // router   
        localAddresses[2] = msg.sender; // deployer
        localAddresses[3] = address(0x0); // placeholder helper

        string memory localName = name; 
        string memory locanSybmol = symbol;

        address curved = bondingCurveDeployer.deployBondingCurve(localAddresses, _website, _tg, _x, _description, _tokenLogo, localName, locanSybmol);
        bondingCurve = curved;
        _mint(curved, 1000000000 * 10 ** decimals());
        isBondingCurve[curved] = true;
        emit Created(curved);
    }

    function initializeDex() public returns(bool) {
        require(msg.sender == bondingCurve, 'Cannot Initialize Dex');
        dexInitialized = true;
        return true;
    }
        /**
     * @dev Moves a `value` amount of tokens from `from` to `to`.
     *
     * 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.
     *
     * NOTE: This function is not virtual, {_update} should be overridden instead.
     */
    function _transfer(address from, address to, uint256 value) override internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if(dexInitialized == true){
            _update(from, to, value);
        } else {
            require(isBondingCurve[from] == true || isBondingCurve[to] == true, 'Not bonding curve');
            _update(from, to, value);
        }

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"_website","type":"string"},{"internalType":"string","name":"_tg","type":"string"},{"internalType":"string","name":"_x","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"_tokenLogo","type":"string"},{"internalType":"address[]","name":"addresses","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"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":false,"internalType":"address","name":"bondingC","type":"address"}],"name":"Created","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":"value","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":"bondingCurve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initializeDex","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBondingCurve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526005805460ff60a01b1916905534801561001c575f80fd5b5060405161129e38038061129e83398101604081905261003b9161052a565b8787600361004983826106e0565b50600461005682826106e0565b5050815173a3c11a1506dbbbe523b1f01d7bdb01710e66078691508290309082905f906100855761008561079f565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d816001815181106100cd576100cd61079f565b60200260200101906001600160a01b031690816001600160a01b03168152505033816002815181106101015761010161079f565b60200260200101906001600160a01b031690816001600160a01b0316815250505f816003815181106101355761013561079f565b6001600160a01b03928316602091820292909201015260405163975e4a3160e01b81528b918b915f9186169063975e4a31906101839087908f908f908f908f908f908c908c906004016107e1565b6020604051808303815f875af115801561019f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c391906108c1565b600580546001600160a01b0319166001600160a01b038316179055905061020a816101ec601290565b6101f790600a6109d7565b61020590633b9aca006109e5565b610276565b6001600160a01b0381165f9081526006602052604090819020805460ff19166001179055517f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b9061025c9083906109fc565b60405180910390a150505050505050505050505050610a23565b6001600160a01b0382166102a8575f60405163ec442f0560e01b815260040161029f91906109fc565b60405180910390fd5b6102b35f83836102b7565b5050565b6001600160a01b0383166102e1578060025f8282546102d69190610a10565b909155506103519050565b6001600160a01b0383165f90815260208190526040902054818110156103335760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161029f565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661036d5760028054829003905561038b565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103d091815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610419576104196103dd565b604052919050565b5f82601f830112610430575f80fd5b81516001600160401b03811115610449576104496103dd565b61045c601f8201601f19166020016103f1565b818152846020838601011115610470575f80fd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b03811681146104a2575f80fd5b919050565b5f82601f8301126104b6575f80fd5b815160206001600160401b038211156104d1576104d16103dd565b8160051b6104e08282016103f1565b92835284810182019282810190878511156104f9575f80fd5b83870192505b8483101561051f576105108361048c565b825291830191908301906104ff565b979650505050505050565b5f805f805f805f80610100898b031215610542575f80fd5b88516001600160401b0380821115610558575f80fd5b6105648c838d01610421565b995060208b0151915080821115610579575f80fd5b6105858c838d01610421565b985060408b015191508082111561059a575f80fd5b6105a68c838d01610421565b975060608b01519150808211156105bb575f80fd5b6105c78c838d01610421565b965060808b01519150808211156105dc575f80fd5b6105e88c838d01610421565b955060a08b01519150808211156105fd575f80fd5b6106098c838d01610421565b945060c08b015191508082111561061e575f80fd5b61062a8c838d01610421565b935060e08b015191508082111561063f575f80fd5b5061064c8b828c016104a7565b9150509295985092959890939650565b600181811c9082168061067057607f821691505b60208210810361068e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156106db57805f5260205f20601f840160051c810160208510156106b95750805b601f840160051c820191505b818110156106d8575f81556001016106c5565b50505b505050565b81516001600160401b038111156106f9576106f96103dd565b61070d81610707845461065c565b84610694565b602080601f831160018114610740575f84156107295750858301515b5f19600386901b1c1916600185901b178555610797565b5f85815260208120601f198616915b8281101561076e5788860151825594840194600190910190840161074f565b508582101561078b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b61010080825289519082018190525f90610120830190602090818d01845b828110156108245781516001600160a01b0316855293830193908301906001016107ff565b50505050828103602084015261083a818b6107b3565b9050828103604084015261084e818a6107b3565b9050828103606084015261086281896107b3565b9050828103608084015261087681886107b3565b905082810360a084015261088a81876107b3565b905082810360c084015261089e81866107b3565b905082810360e08401526108b281856107b3565b9b9a5050505050505050505050565b5f602082840312156108d1575f80fd5b6108da8261048c565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561092f57815f1904821115610915576109156108e1565b8085161561092257918102915b93841c93908002906108fa565b509250929050565b5f82610945575060016109d1565b8161095157505f6109d1565b816001811461096757600281146109715761098d565b60019150506109d1565b60ff841115610982576109826108e1565b50506001821b6109d1565b5060208310610133831016604e8410600b84101617156109b0575081810a6109d1565b6109ba83836108f5565b805f19048211156109cd576109cd6108e1565b0290505b92915050565b5f6108da60ff841683610937565b80820281158282048414176109d1576109d16108e1565b6001600160a01b0391909116815260200190565b808201808211156109d1576109d16108e1565b61086e80610a305f395ff3fe608060405234801561000f575f80fd5b50600436106100ad575f3560e01c806306fdde03146100b1578063095ea7b3146100cf57806318160ddd146100f257806323b872dd14610104578063313ce567146101175780636afa67671461012657806370a082311461013a57806395d89b4114610162578063a9059cbb1461016a578063c694cc431461017d578063dd62ed3e14610185578063eff1d50e14610198578063f36ce210146101b8575b5f80fd5b6100b96101da565b6040516100c691906106aa565b60405180910390f35b6100e26100dd3660046106fa565b61026a565b60405190151581526020016100c6565b6002545b6040519081526020016100c6565b6100e2610112366004610722565b610283565b604051601281526020016100c6565b6005546100e290600160a01b900460ff1681565b6100f661014836600461075b565b6001600160a01b03165f9081526020819052604090205490565b6100b96102a6565b6100e26101783660046106fa565b6102b5565b6100e26102c2565b6100f661019336600461077b565b610334565b6005546101ab906001600160a01b031681565b6040516100c691906107ac565b6100e26101c636600461075b565b60066020525f908152604090205460ff1681565b6060600380546101e9906107c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610215906107c0565b80156102605780601f1061023757610100808354040283529160200191610260565b820191905f5260205f20905b81548152906001019060200180831161024357829003601f168201915b5050505050905090565b5f3361027781858561035e565b60019150505b92915050565b5f33610290858285610370565b61029b8585856103c0565b506001949350505050565b6060600480546101e9906107c0565b5f336102778185856103c0565b6005545f906001600160a01b0316331461031b5760405162461bcd60e51b8152602060048201526015602482015274086c2dcdcdee84092dcd2e8d2c2d8d2f4ca4088caf605b1b60448201526064015b60405180910390fd5b506005805460ff60a01b1916600160a01b179055600190565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61036b83838360016104c5565b505050565b5f61037b8484610334565b90505f1981146103ba57818110156103ac57828183604051637dc7a0d960e11b8152600401610312939291906107f8565b6103ba84848484035f6104c5565b50505050565b6001600160a01b0383166103e9575f604051634b637e8f60e11b815260040161031291906107ac565b6001600160a01b038216610412575f60405163ec442f0560e01b815260040161031291906107ac565b600554600160a01b900460ff1615156001036104335761036b838383610597565b6001600160a01b0383165f9081526006602052604090205460ff1615156001148061047a57506001600160a01b0382165f9081526006602052604090205460ff1615156001145b6104ba5760405162461bcd60e51b81526020600482015260116024820152704e6f7420626f6e64696e6720637572766560781b6044820152606401610312565b61036b838383610597565b6001600160a01b0384166104ee575f60405163e602df0560e01b815260040161031291906107ac565b6001600160a01b038316610517575f604051634a1406b160e11b815260040161031291906107ac565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103ba57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058991815260200190565b60405180910390a350505050565b6001600160a01b0383166105c1578060025f8282546105b69190610819565b9091555061061e9050565b6001600160a01b0383165f90815260208190526040902054818110156106005783818360405163391434e360e21b8152600401610312939291906107f8565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661063a57600280548290039055610658565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161069d91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146106f5575f80fd5b919050565b5f806040838503121561070b575f80fd5b610714836106df565b946020939093013593505050565b5f805f60608486031215610734575f80fd5b61073d846106df565b925061074b602085016106df565b9150604084013590509250925092565b5f6020828403121561076b575f80fd5b610774826106df565b9392505050565b5f806040838503121561078c575f80fd5b610795836106df565b91506107a3602084016106df565b90509250929050565b6001600160a01b0391909116815260200190565b600181811c908216806107d457607f821691505b6020821081036107f257634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b8082018082111561027d57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ad9135bd7beff2d75f25d7930381ff944dedd75cc080ab20d0114c4540e743b764736f6c6343000819003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000004504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001468747470733a2f2f63616e6e6f6e2e746563682f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a68747470733a2f2f742e6d652f63616e6e6f6e74656368776562000000000000000000000000000000000000000000000000000000000000000000000000001b68747470733a2f2f782e636f6d2f63616e6e6f6e746563687765620000000000000000000000000000000000000000000000000000000000000000000000001446697273742050455045206f6e2063616e6e6f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f63727970746f6c6f676f732e63632f6c6f676f732f706570652d706570652d6c6f676f2e706e673f763d30333200000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100ad575f3560e01c806306fdde03146100b1578063095ea7b3146100cf57806318160ddd146100f257806323b872dd14610104578063313ce567146101175780636afa67671461012657806370a082311461013a57806395d89b4114610162578063a9059cbb1461016a578063c694cc431461017d578063dd62ed3e14610185578063eff1d50e14610198578063f36ce210146101b8575b5f80fd5b6100b96101da565b6040516100c691906106aa565b60405180910390f35b6100e26100dd3660046106fa565b61026a565b60405190151581526020016100c6565b6002545b6040519081526020016100c6565b6100e2610112366004610722565b610283565b604051601281526020016100c6565b6005546100e290600160a01b900460ff1681565b6100f661014836600461075b565b6001600160a01b03165f9081526020819052604090205490565b6100b96102a6565b6100e26101783660046106fa565b6102b5565b6100e26102c2565b6100f661019336600461077b565b610334565b6005546101ab906001600160a01b031681565b6040516100c691906107ac565b6100e26101c636600461075b565b60066020525f908152604090205460ff1681565b6060600380546101e9906107c0565b80601f0160208091040260200160405190810160405280929190818152602001828054610215906107c0565b80156102605780601f1061023757610100808354040283529160200191610260565b820191905f5260205f20905b81548152906001019060200180831161024357829003601f168201915b5050505050905090565b5f3361027781858561035e565b60019150505b92915050565b5f33610290858285610370565b61029b8585856103c0565b506001949350505050565b6060600480546101e9906107c0565b5f336102778185856103c0565b6005545f906001600160a01b0316331461031b5760405162461bcd60e51b8152602060048201526015602482015274086c2dcdcdee84092dcd2e8d2c2d8d2f4ca4088caf605b1b60448201526064015b60405180910390fd5b506005805460ff60a01b1916600160a01b179055600190565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61036b83838360016104c5565b505050565b5f61037b8484610334565b90505f1981146103ba57818110156103ac57828183604051637dc7a0d960e11b8152600401610312939291906107f8565b6103ba84848484035f6104c5565b50505050565b6001600160a01b0383166103e9575f604051634b637e8f60e11b815260040161031291906107ac565b6001600160a01b038216610412575f60405163ec442f0560e01b815260040161031291906107ac565b600554600160a01b900460ff1615156001036104335761036b838383610597565b6001600160a01b0383165f9081526006602052604090205460ff1615156001148061047a57506001600160a01b0382165f9081526006602052604090205460ff1615156001145b6104ba5760405162461bcd60e51b81526020600482015260116024820152704e6f7420626f6e64696e6720637572766560781b6044820152606401610312565b61036b838383610597565b6001600160a01b0384166104ee575f60405163e602df0560e01b815260040161031291906107ac565b6001600160a01b038316610517575f604051634a1406b160e11b815260040161031291906107ac565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156103ba57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161058991815260200190565b60405180910390a350505050565b6001600160a01b0383166105c1578060025f8282546105b69190610819565b9091555061061e9050565b6001600160a01b0383165f90815260208190526040902054818110156106005783818360405163391434e360e21b8152600401610312939291906107f8565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661063a57600280548290039055610658565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161069d91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146106f5575f80fd5b919050565b5f806040838503121561070b575f80fd5b610714836106df565b946020939093013593505050565b5f805f60608486031215610734575f80fd5b61073d846106df565b925061074b602085016106df565b9150604084013590509250925092565b5f6020828403121561076b575f80fd5b610774826106df565b9392505050565b5f806040838503121561078c575f80fd5b610795836106df565b91506107a3602084016106df565b90509250929050565b6001600160a01b0391909116815260200190565b600181811c908216806107d457607f821691505b6020821081036107f257634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b8082018082111561027d57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ad9135bd7beff2d75f25d7930381ff944dedd75cc080ab20d0114c4540e743b764736f6c63430008190033

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

00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000004504550450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045045504500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001468747470733a2f2f63616e6e6f6e2e746563682f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a68747470733a2f2f742e6d652f63616e6e6f6e74656368776562000000000000000000000000000000000000000000000000000000000000000000000000001b68747470733a2f2f782e636f6d2f63616e6e6f6e746563687765620000000000000000000000000000000000000000000000000000000000000000000000001446697273742050455045206f6e2063616e6e6f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000003568747470733a2f2f63727970746f6c6f676f732e63632f6c6f676f732f706570652d706570652d6c6f676f2e706e673f763d30333200000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008

-----Decoded View---------------
Arg [0] : name (string): PEPE
Arg [1] : symbol (string): PEPE
Arg [2] : _website (string): https://cannon.tech/
Arg [3] : _tg (string): https://t.me/cannontechweb
Arg [4] : _x (string): https://x.com/cannontechweb
Arg [5] : _description (string): First PEPE on cannon
Arg [6] : _tokenLogo (string): https://cryptologos.cc/logos/pepe-pepe-logo.png?v=032
Arg [7] : addresses (address[]): 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008,0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008,0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008,0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008

-----Encoded View---------------
28 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [3] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000200
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000240
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000280
Arg [7] : 00000000000000000000000000000000000000000000000000000000000002e0
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 5045504500000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 5045504500000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [13] : 68747470733a2f2f63616e6e6f6e2e746563682f000000000000000000000000
Arg [14] : 000000000000000000000000000000000000000000000000000000000000001a
Arg [15] : 68747470733a2f2f742e6d652f63616e6e6f6e74656368776562000000000000
Arg [16] : 000000000000000000000000000000000000000000000000000000000000001b
Arg [17] : 68747470733a2f2f782e636f6d2f63616e6e6f6e746563687765620000000000
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [19] : 46697273742050455045206f6e2063616e6e6f6e000000000000000000000000
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000035
Arg [21] : 68747470733a2f2f63727970746f6c6f676f732e63632f6c6f676f732f706570
Arg [22] : 652d706570652d6c6f676f2e706e673f763d3033320000000000000000000000
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [24] : 000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008
Arg [25] : 000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008
Arg [26] : 000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008
Arg [27] : 000000000000000000000000c532a74256d3db42d0bf7a0400fefdbad7694008


Deployed Bytecode Sourcemap

17684:2377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7706:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9999:190;;;;;;:::i;:::-;;:::i;:::-;;;1039:14:1;;1032:22;1014:41;;1002:2;987:18;9999:190:0;874:187:1;8808:99:0;8887:12;;8808:99;;;1212:25:1;;;1200:2;1185:18;8808:99:0;1066:177:1;10799:249:0;;;;;;:::i;:::-;;:::i;8659:84::-;;;8733:2;1723:36:1;;1711:2;1696:18;8659:84:0;1581:184:1;17759:34:0;;;;;-1:-1:-1;;;17759:34:0;;;;;;8970:118;;;;;;:::i;:::-;-1:-1:-1;;;;;9062:18:0;9035:7;9062:18;;;;;;;;;;;;8970:118;7916:95;;;:::i;9293:182::-;;;;;;:::i;:::-;;:::i;18961:179::-;;;:::i;9538:142::-;;;;;;:::i;:::-;;:::i;17725:27::-;;;;;-1:-1:-1;;;;;17725:27:0;;;;;;;;;;:::i;17800:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7706:91;7751:13;7784:5;7777:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7706:91;:::o;9999:190::-;10072:4;3978:10;10128:31;3978:10;10144:7;10153:5;10128:8;:31::i;:::-;10177:4;10170:11;;;9999:190;;;;;:::o;10799:249::-;10886:4;3978:10;10944:37;10960:4;3978:10;10975:5;10944:15;:37::i;:::-;10992:26;11002:4;11008:2;11012:5;10992:9;:26::i;:::-;-1:-1:-1;11036:4:0;;10799:249;-1:-1:-1;;;;10799:249:0:o;7916:95::-;7963:13;7996:7;7989:14;;;;;:::i;9293:182::-;9362:4;3978:10;9418:27;3978:10;9435:2;9439:5;9418:9;:27::i;18961:179::-;19040:12;;19001:4;;-1:-1:-1;;;;;19040:12:0;19026:10;:26;19018:60;;;;-1:-1:-1;;;19018:60:0;;3021:2:1;19018:60:0;;;3003:21:1;3060:2;3040:18;;;3033:30;-1:-1:-1;;;3079:18:1;;;3072:51;3140:18;;19018:60:0;;;;;;;;;-1:-1:-1;19089:14:0;:21;;-1:-1:-1;;;;19089:21:0;-1:-1:-1;;;19089:21:0;;;19106:4;;18961:179::o;9538:142::-;-1:-1:-1;;;;;9645:18:0;;;9618:7;9645:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9538:142::o;14866:130::-;14951:37;14960:5;14967:7;14976:5;14983:4;14951:8;:37::i;:::-;14866:130;;;:::o;16598:487::-;16698:24;16725:25;16735:5;16742:7;16725:9;:25::i;:::-;16698:52;;-1:-1:-1;;16765:16:0;:37;16761:317;;16842:5;16823:16;:24;16819:132;;;16902:7;16911:16;16929:5;16875:60;;-1:-1:-1;;;16875:60:0;;;;;;;;;;:::i;16819:132::-;16994:57;17003:5;17010:7;17038:5;17019:16;:24;17045:5;16994:8;:57::i;:::-;16687:398;16598:487;;;:::o;19527:531::-;-1:-1:-1;;;;;19620:18:0;;19616:88;;19689:1;19662:30;;-1:-1:-1;;;19662:30:0;;;;;;;;:::i;19616:88::-;-1:-1:-1;;;;;19718:16:0;;19714:88;;19787:1;19758:32;;-1:-1:-1;;;19758:32:0;;;;;;;;:::i;19714:88::-;19815:14;;-1:-1:-1;;;19815:14:0;;;;:22;;19833:4;19815:22;19812:237;;19853:24;19861:4;19867:2;19871:5;19853:7;:24::i;19812:237::-;-1:-1:-1;;;;;19918:20:0;;;;;;:14;:20;;;;;;;;:28;;:20;:28;;:58;;-1:-1:-1;;;;;;19950:18:0;;;;;;:14;:18;;;;;;;;:26;;:18;:26;19918:58;19910:88;;;;-1:-1:-1;;;19910:88:0;;3721:2:1;19910:88:0;;;3703:21:1;3760:2;3740:18;;;3733:30;-1:-1:-1;;;3779:18:1;;;3772:47;3836:18;;19910:88:0;3519:341:1;19910:88:0;20013:24;20021:4;20027:2;20031:5;20013:7;:24::i;15863:443::-;-1:-1:-1;;;;;15976:19:0;;15972:91;;16048:1;16019:32;;-1:-1:-1;;;16019:32:0;;;;;;;;:::i;15972:91::-;-1:-1:-1;;;;;16077:21:0;;16073:92;;16150:1;16122:31;;-1:-1:-1;;;16122:31:0;;;;;;;;:::i;16073:92::-;-1:-1:-1;;;;;16175:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;16221:78;;;;16272:7;-1:-1:-1;;;;;16256:31:0;16265:5;-1:-1:-1;;;;;16256:31:0;;16281:5;16256:31;;;;1212:25:1;;1200:2;1185:18;;1066:177;16256:31:0;;;;;;;;15863:443;;;;:::o;12073:1135::-;-1:-1:-1;;;;;12163:18:0;;12159:552;;12317:5;12301:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;12159:552:0;;-1:-1:-1;12159:552:0;;-1:-1:-1;;;;;12377:15:0;;12355:19;12377:15;;;;;;;;;;;12411:19;;;12407:117;;;12483:4;12489:11;12502:5;12458:50;;-1:-1:-1;;;12458:50:0;;;;;;;;;;:::i;12407:117::-;-1:-1:-1;;;;;12647:15:0;;:9;:15;;;;;;;;;;12665:19;;;;12647:37;;12159:552;-1:-1:-1;;;;;12727:16:0;;12723:435;;12893:12;:21;;;;;;;12723:435;;;-1:-1:-1;;;;;13109:13:0;;:9;:13;;;;;;;;;;:22;;;;;;12723:435;13190:2;-1:-1:-1;;;;;13175:25:0;13184:4;-1:-1:-1;;;;;13175:25:0;;13194:5;13175:25;;;;1212::1;;1200:2;1185:18;;1066:177;13175:25:0;;;;;;;;12073:1135;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:254::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;859:2;844:18;;;;831:32;;-1:-1:-1;;;615:254:1:o;1248:328::-;1325:6;1333;1341;1394:2;1382:9;1373:7;1369:23;1365:32;1362:52;;;1410:1;1407;1400:12;1362:52;1433:29;1452:9;1433:29;:::i;:::-;1423:39;;1481:38;1515:2;1504:9;1500:18;1481:38;:::i;:::-;1471:48;;1566:2;1555:9;1551:18;1538:32;1528:42;;1248:328;;;;;:::o;1770:186::-;1829:6;1882:2;1870:9;1861:7;1857:23;1853:32;1850:52;;;1898:1;1895;1888:12;1850:52;1921:29;1940:9;1921:29;:::i;:::-;1911:39;1770:186;-1:-1:-1;;;1770:186:1:o;1961:260::-;2029:6;2037;2090:2;2078:9;2069:7;2065:23;2061:32;2058:52;;;2106:1;2103;2096:12;2058:52;2129:29;2148:9;2129:29;:::i;:::-;2119:39;;2177:38;2211:2;2200:9;2196:18;2177:38;:::i;:::-;2167:48;;1961:260;;;;;:::o;2226:203::-;-1:-1:-1;;;;;2390:32:1;;;;2372:51;;2360:2;2345:18;;2226:203::o;2434:380::-;2513:1;2509:12;;;;2556;;;2577:61;;2631:4;2623:6;2619:17;2609:27;;2577:61;2684:2;2676:6;2673:14;2653:18;2650:38;2647:161;;2730:10;2725:3;2721:20;2718:1;2711:31;2765:4;2762:1;2755:15;2793:4;2790:1;2783:15;2647:161;;2434:380;;;:::o;3169:345::-;-1:-1:-1;;;;;3389:32:1;;;;3371:51;;3453:2;3438:18;;3431:34;;;;3496:2;3481:18;;3474:34;3359:2;3344:18;;3169:345::o;3865:222::-;3930:9;;;3951:10;;;3948:133;;;4003:10;3998:3;3994:20;3991:1;3984:31;4038:4;4035:1;4028:15;4066:4;4063:1;4056:15

Swarm Source

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