Contract 0x3df3e659a9157df57ddd79118533e38ded129cd1

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xde1b60a8db7ee62b1c407cefbeccdd06ba9b7d4f3619ebed2d8a324c38824a77Approve275888662023-09-30 11:33:293 days 15 hrs ago0x55f82274fb5844240535f54ef33c552527957795 IN  Shitcoin: SHIT Token0 BTT13.8963
0xd3743218f7bf5e2acc06258b7cb902e699492e14ed6331e3b891e10532b7cbdcApprove273733702023-09-25 8:05:458 days 19 hrs ago0x6ccc8fda0816fbfcb22a9248a21222422d20a2fc IN  Shitcoin: SHIT Token0 BTT13.9719
0x8d25179bc1c6fff53f3e1d2b11b5bc35f0b3c16123f03d4535b47d8fc8621566Approve271871132023-09-20 21:23:1113 days 5 hrs ago0x1b8e15229f052b42c1bdff4a7d131fa600447972 IN  Shitcoin: SHIT Token0 BTT13.8999
0xf693c04ab092e61c444e06982aefef321db5d8fc1dc69ffcd9099e6e267028afApprove271046702023-09-18 22:09:1315 days 5 hrs ago0x54bf2f91b73f18d83d812bab86a4357006896c2d IN  Shitcoin: SHIT Token0 BTT13.8963
0x7b05ef7fdd8431cf8a03767df38e3ad1933e9fb726dcda682c00b02bcf317e54Approve269697052023-09-15 16:49:4718 days 10 hrs ago0x4c0c1fcb4386fa7d49efc0bb3d85b3d0b44a885e IN  Shitcoin: SHIT Token0 BTT13.8999
0x17eae27848973b9d262eca6373bb3219e41cc8deba19446100de07250b0b5ffbApprove266458652023-09-07 23:17:4726 days 3 hrs ago0xf992e5d6b60d1c05d3d9cfd7c5e49cf30e8e5e57 IN  Shitcoin: SHIT Token0 BTT13.9719
0x3b205dcaa8756c1b628520bef839e3bafb6069ad5d6ca7156ca4ee1de0d3d1f9Transfer265021182023-09-04 12:56:2929 days 14 hrs ago0x9e5c43c50489e278b9044ea69ff5a0c7d4da7fbc IN  Shitcoin: SHIT Token0 BTT17.18
0x9be8bc671293c741cdd9bcb79af58fc58f281521270f90cfcd17665d8c78f6f8Transfer264974672023-09-04 10:16:3529 days 16 hrs ago0x6aea6512d7a1e859e8994a9db8e7eb5f1c138a73 IN  Shitcoin: SHIT Token0 BTT17.192
0x89d7919d6d8739d254d14cf783934c5175732f5ac1dd969d5945befed265c2f5Approve264682202023-09-03 17:31:0230 days 9 hrs ago0x898b65642c47141e552b7b2c8977cbc7bf742d16 IN  Shitcoin: SHIT Token0 BTT13.8999
0x3be49f8e460acc318d238d511eb17e8a7847af5e713a759cd43b9aae1bac9b90Approve264681002023-09-03 17:26:5830 days 9 hrs ago0x898b65642c47141e552b7b2c8977cbc7bf742d16 IN  Shitcoin: SHIT Token0 BTT13.8927
0x49c9d76babb6bcb576506de6542eab42d5cb27954c98ecb41df22e6b2ecc4affApprove262980102023-08-30 16:00:0634 days 11 hrs ago0x6eed3ac5718b002539d661f89415093f40e25b5f IN  Shitcoin: SHIT Token0 BTT13.8963
0x150a86e4f68efb3419b54a57df3153a9800cd0093daefc8517bf7fbdf0768a07Transfer262978012023-08-30 15:52:5634 days 11 hrs ago0x7fa6ab7aa157b1ea4d46e411ce936c6e96c9e017 IN  Shitcoin: SHIT Token0 BTT18.248
0x51353d01ee6a7b01b2a2eeaea890e463b2b74bf6943d2c0a6278024fc2377741Approve262952762023-08-30 14:26:0634 days 12 hrs ago0xc7c59915a88cb8cb2131bf48f159bbfcca7bb981 IN  Shitcoin: SHIT Token0 BTT18.737344631837
0x9ec0fdaf40b84a833260504c13d5c91ce980350d2df6e7d95e6ca3cbf8e859f9Approve262682862023-08-29 22:58:1835 days 4 hrs ago0x789c652475e7c97b0a83219be57f63a07bb2aeab IN  Shitcoin: SHIT Token0 BTT8.7663
0xc8a673b07c053c531de1afa44ce37563590c7c24ff675fe807018b55766a37e6Transfer262499722023-08-29 12:28:4635 days 14 hrs ago0xce5083151c4a330bee3233679e38f4f2286759ba IN  Shitcoin: SHIT Token0 BTT15.438
0xc6ce3a3bc5ed11301743c12afaae018e57d6b4ab7fafdd7f4ee6a88e96490b8dApprove259652392023-08-22 17:21:0442 days 9 hrs ago0x55f82274fb5844240535f54ef33c552527957795 IN  Shitcoin: SHIT Token0 BTT13.8999
0x97f80d0723da964546141e9f30748c9de571ec744c265892c2b15e13446878a4Transfer259229472023-08-21 17:07:2043 days 10 hrs ago0x8e97c5470aa227469a2edab26cec6b48f4d076bd IN  Shitcoin: SHIT Token0 BTT18.26
0xcc313ee799c889076856297af015b5fe9fb3be6441d60a5398ba517b442e4c1eApprove257388112023-08-17 7:37:3647 days 19 hrs ago0xbc70a526879d15c5ed7bdd245fed63131d7f0ff0 IN  Shitcoin: SHIT Token0 BTT8.7663
0x0fd838b11fb7efb17dd1d17e4f7180151243c40cbb8f9c359a039b2e55a55511Approve254134562023-08-09 13:13:3455 days 14 hrs ago0x40adc11d55d21719c943795e7b23e000ae3eec5e IN  Shitcoin: SHIT Token0 BTT13.9035
0x2a6ffca8bfe4f9e8e007d5b48787375fe0ed307d7e0f3091c31eb4979036583fApprove254051562023-08-09 8:28:1455 days 18 hrs ago0xbc70a526879d15c5ed7bdd245fed63131d7f0ff0 IN  Shitcoin: SHIT Token0 BTT14.6105
0xe814800b27d013b822dfa0225eb91f6125ea5e9c321edaceef18e15656e02eb0Approve253793362023-08-08 17:40:4256 days 9 hrs ago0xbc70a526879d15c5ed7bdd245fed63131d7f0ff0 IN  Shitcoin: SHIT Token0 BTT14.6165
0xfdee9f281ecc01a156406707d0fefd61c05f29317206d92b6d3be00896fd1ea3Approve247021022023-07-23 13:40:0572 days 13 hrs ago0xe4bbef336b9903f6a6bc5bd3dbe8e375e88112e3 IN  Shitcoin: SHIT Token0 BTT13.8999
0x30cf4d813807dfc0da87bce08cad8e0770d76c66ec2b10182ffe4559a31c3907Approve246608782023-07-22 14:03:0173 days 13 hrs ago0x55f82274fb5844240535f54ef33c552527957795 IN  Shitcoin: SHIT Token0 BTT13.8927
0x46fcc7cdd31a4e115a36930003effbdd99a06f2a1765ee4e9dd14b7e0e4a8080Approve246168172023-07-21 12:48:2374 days 14 hrs ago0x55f82274fb5844240535f54ef33c552527957795 IN  Shitcoin: SHIT Token0 BTT13.8999
0x7909a305d1578a6cd6118eed2c50cbe58bf64894f0109b9e9f843a12fbc7c5dcApprove245756582023-07-20 13:13:3375 days 14 hrs ago0x55f82274fb5844240535f54ef33c552527957795 IN  Shitcoin: SHIT Token0 BTT13.8999
[ Download CSV Export 

OVERVIEW

A memecoin aiming to bring joy and entertainment to the world of crypto.

Parent Txn Hash Block From To Value
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Shitcoin

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: Shitcoin.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "./ERC20.sol";
import "./ERC20Burnable.sol";


contract Shitcoin is ERC20Burnable {
        constructor() ERC20("Shitcoin", "SHIT") {
        _mint(_msgSender(), 69000000000000 * 10**18);
    }
}

File 2 of 6: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

File 3 of 6: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @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.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 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}.
     *
     * 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 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 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` 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 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * 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 `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `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.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 4 of 6: ERC20Burnable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/extensions/ERC20Burnable.sol)

pragma solidity ^0.8.0;

import "./ERC20.sol";
import "./Context.sol";

/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

File 5 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

File 6 of 6: IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

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

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":[{"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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":"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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600881526020016729b434ba31b7b4b760c11b8152506040518060400160405280600481526020016314d2125560e21b815250816003908162000061919062000215565b50600462000070828262000215565b5050506200009c62000087620000a260201b60201c565b6d0366e7064422fd84202340000000620000a6565b62000309565b3390565b6001600160a01b038216620001015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001159190620002e1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200019c57607f821691505b602082108103620001bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200016c57600081815260208120601f850160051c81016020861015620001ec5750805b601f850160051c820191505b818110156200020d57828155600101620001f8565b505050505050565b81516001600160401b0381111562000231576200023162000171565b620002498162000242845462000187565b84620001c3565b602080601f831160018114620002815760008415620002685750858301515b600019600386901b1c1916600185901b1785556200020d565b600085815260208120601f198616915b82811015620002b25788860151825594840194600190910190840162000291565b5085821015620002d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200030357634e487b7160e01b600052601160045260246000fd5b92915050565b610a0a80620003196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad578063a457c2d7146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015c57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc6101ee565b6040516100e9919061083b565b60405180910390f35b6101056101003660046108a5565b610280565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046108cf565b61029a565b604051601281526020016100e9565b6101056101573660046108a5565b6102be565b61016f61016a36600461090b565b6102e0565b005b61011961017f366004610924565b6001600160a01b031660009081526020819052604090205490565b61016f6101a83660046108a5565b6102ed565b6100dc610306565b6101056101c33660046108a5565b610315565b6101056101d63660046108a5565b610395565b6101196101e9366004610946565b6103a3565b6060600380546101fd90610979565b80601f016020809104026020016040519081016040528092919081815260200182805461022990610979565b80156102765780601f1061024b57610100808354040283529160200191610276565b820191906000526020600020905b81548152906001019060200180831161025957829003601f168201915b5050505050905090565b60003361028e8185856103ce565b60019150505b92915050565b6000336102a88582856104f3565b6102b385858561056d565b506001949350505050565b60003361028e8185856102d183836103a3565b6102db91906109b3565b6103ce565b6102ea3382610711565b50565b6102f88233836104f3565b6103028282610711565b5050565b6060600480546101fd90610979565b6000338161032382866103a3565b9050838110156103885760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102b382868684036103ce565b60003361028e81858561056d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104305760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037f565b6001600160a01b0382166104915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006104ff84846103a3565b90506000198114610567578181101561055a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161037f565b61056784848484036103ce565b50505050565b6001600160a01b0383166105d15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037f565b6001600160a01b0382166106335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037f565b6001600160a01b038316600090815260208190526040902054818110156106ab5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161037f565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610567565b6001600160a01b0382166107715760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161037f565b6001600160a01b038216600090815260208190526040902054818110156107e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161037f565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016104e6565b600060208083528351808285015260005b818110156108685785810183015185820160400152820161084c565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108a057600080fd5b919050565b600080604083850312156108b857600080fd5b6108c183610889565b946020939093013593505050565b6000806000606084860312156108e457600080fd5b6108ed84610889565b92506108fb60208501610889565b9150604084013590509250925092565b60006020828403121561091d57600080fd5b5035919050565b60006020828403121561093657600080fd5b61093f82610889565b9392505050565b6000806040838503121561095957600080fd5b61096283610889565b915061097060208401610889565b90509250929050565b600181811c9082168061098d57607f821691505b6020821081036109ad57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561029457634e487b7160e01b600052601160045260246000fdfea2646970667358221220278d5cba3897af02106e92865cda74e3afe8beaa55a6b6614f057bfc84b0fb2364736f6c63430008120033

Deployed ByteCode Sourcemap

118:152:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:100:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4558:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:6;;1162:22;1144:41;;1132:2;1117:18;4558:201:1;1004:187:6;3327:108:1;3415:12;;3327:108;;;1342:25:6;;;1330:2;1315:18;3327:108:1;1196:177:6;5339:261:1;;;;;;:::i;:::-;;:::i;3169:93::-;;;3252:2;1853:36:6;;1841:2;1826:18;3169:93:1;1711:184:6;6009:238:1;;;;;;:::i;:::-;;:::i;583:91:2:-;;;;;;:::i;:::-;;:::i;:::-;;3498:127:1;;;;;;:::i;:::-;-1:-1:-1;;;;;3599:18:1;3572:7;3599:18;;;;;;;;;;;;3498:127;993:164:2;;;;;;:::i;:::-;;:::i;2417:104:1:-;;;:::i;6750:436::-;;;;;;:::i;:::-;;:::i;3831:193::-;;;;;;:::i;:::-;;:::i;4087:151::-;;;;;;:::i;:::-;;:::i;2198:100::-;2252:13;2285:5;2278:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:100;:::o;4558:201::-;4641:4;736:10:0;4697:32:1;736:10:0;4713:7:1;4722:6;4697:8;:32::i;:::-;4747:4;4740:11;;;4558:201;;;;;:::o;5339:261::-;5436:4;736:10:0;5494:38:1;5510:4;736:10:0;5525:6:1;5494:15;:38::i;:::-;5543:27;5553:4;5559:2;5563:6;5543:9;:27::i;:::-;-1:-1:-1;5588:4:1;;5339:261;-1:-1:-1;;;;5339:261:1:o;6009:238::-;6097:4;736:10:0;6153:64:1;736:10:0;6169:7:1;6206:10;6178:25;736:10:0;6169:7:1;6178:9;:25::i;:::-;:38;;;;:::i;:::-;6153:8;:64::i;583:91:2:-;639:27;736:10:0;659:6:2;639:5;:27::i;:::-;583:91;:::o;993:164::-;1070:46;1086:7;736:10:0;1109:6:2;1070:15;:46::i;:::-;1127:22;1133:7;1142:6;1127:5;:22::i;:::-;993:164;;:::o;2417:104:1:-;2473:13;2506:7;2499:14;;;;;:::i;6750:436::-;6843:4;736:10:0;6843:4:1;6926:25;736:10:0;6943:7:1;6926:9;:25::i;:::-;6899:52;;6990:15;6970:16;:35;;6962:85;;;;-1:-1:-1;;;6962:85:1;;3355:2:6;6962:85:1;;;3337:21:6;3394:2;3374:18;;;3367:30;3433:34;3413:18;;;3406:62;-1:-1:-1;;;3484:18:6;;;3477:35;3529:19;;6962:85:1;;;;;;;;;7083:60;7092:5;7099:7;7127:15;7108:16;:34;7083:8;:60::i;3831:193::-;3910:4;736:10:0;3966:28:1;736:10:0;3983:2:1;3987:6;3966:9;:28::i;4087:151::-;-1:-1:-1;;;;;4203:18:1;;;4176:7;4203:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4087:151::o;10743:346::-;-1:-1:-1;;;;;10845:19:1;;10837:68;;;;-1:-1:-1;;;10837:68:1;;3761:2:6;10837:68:1;;;3743:21:6;3800:2;3780:18;;;3773:30;3839:34;3819:18;;;3812:62;-1:-1:-1;;;3890:18:6;;;3883:34;3934:19;;10837:68:1;3559:400:6;10837:68:1;-1:-1:-1;;;;;10924:21:1;;10916:68;;;;-1:-1:-1;;;10916:68:1;;4166:2:6;10916:68:1;;;4148:21:6;4205:2;4185:18;;;4178:30;4244:34;4224:18;;;4217:62;-1:-1:-1;;;4295:18:6;;;4288:32;4337:19;;10916:68:1;3964:398:6;10916:68:1;-1:-1:-1;;;;;10997:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11049:32;;1342:25:6;;;11049:32:1;;1315:18:6;11049:32:1;;;;;;;;10743:346;;;:::o;11380:419::-;11481:24;11508:25;11518:5;11525:7;11508:9;:25::i;:::-;11481:52;;-1:-1:-1;;11548:16:1;:37;11544:248;;11630:6;11610:16;:26;;11602:68;;;;-1:-1:-1;;;11602:68:1;;4569:2:6;11602:68:1;;;4551:21:6;4608:2;4588:18;;;4581:30;4647:31;4627:18;;;4620:59;4696:18;;11602:68:1;4367:353:6;11602:68:1;11714:51;11723:5;11730:7;11758:6;11739:16;:25;11714:8;:51::i;:::-;11470:329;11380:419;;;:::o;7656:806::-;-1:-1:-1;;;;;7753:18:1;;7745:68;;;;-1:-1:-1;;;7745:68:1;;4927:2:6;7745:68:1;;;4909:21:6;4966:2;4946:18;;;4939:30;5005:34;4985:18;;;4978:62;-1:-1:-1;;;5056:18:6;;;5049:35;5101:19;;7745:68:1;4725:401:6;7745:68:1;-1:-1:-1;;;;;7832:16:1;;7824:64;;;;-1:-1:-1;;;7824:64:1;;5333:2:6;7824:64:1;;;5315:21:6;5372:2;5352:18;;;5345:30;5411:34;5391:18;;;5384:62;-1:-1:-1;;;5462:18:6;;;5455:33;5505:19;;7824:64:1;5131:399:6;7824:64:1;-1:-1:-1;;;;;7974:15:1;;7952:19;7974:15;;;;;;;;;;;8008:21;;;;8000:72;;;;-1:-1:-1;;;8000:72:1;;5737:2:6;8000:72:1;;;5719:21:6;5776:2;5756:18;;;5749:30;5815:34;5795:18;;;5788:62;-1:-1:-1;;;5866:18:6;;;5859:36;5912:19;;8000:72:1;5535:402:6;8000:72:1;-1:-1:-1;;;;;8108:15:1;;;:9;:15;;;;;;;;;;;8126:20;;;8108:38;;8326:13;;;;;;;;;;:23;;;;;;8378:26;;1342:25:6;;;8326:13:1;;8378:26;;1315:18:6;8378:26:1;;;;;;;8417:37;9630:675;;-1:-1:-1;;;;;9714:21:1;;9706:67;;;;-1:-1:-1;;;9706:67:1;;6144:2:6;9706:67:1;;;6126:21:6;6183:2;6163:18;;;6156:30;6222:34;6202:18;;;6195:62;-1:-1:-1;;;6273:18:6;;;6266:31;6314:19;;9706:67:1;5942:397:6;9706:67:1;-1:-1:-1;;;;;9873:18:1;;9848:22;9873:18;;;;;;;;;;;9910:24;;;;9902:71;;;;-1:-1:-1;;;9902:71:1;;6546:2:6;9902:71:1;;;6528:21:6;6585:2;6565:18;;;6558:30;6624:34;6604:18;;;6597:62;-1:-1:-1;;;6675:18:6;;;6668:32;6717:19;;9902:71:1;6344:398:6;9902:71:1;-1:-1:-1;;;;;10009:18:1;;:9;:18;;;;;;;;;;;10030:23;;;10009:44;;10148:12;:22;;;;;;;10199:37;1342:25:6;;;10009:9:1;;:18;10199:37;;1315:18:6;10199:37:1;1196:177:6;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:6;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:6:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:6;;1900:180;-1:-1:-1;1900:180:6:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:6:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;2926:222::-;2991:9;;;3012:10;;;3009:133;;;3064:10;3059:3;3055:20;3052:1;3045:31;3099:4;3096:1;3089:15;3127:4;3124:1;3117:15

Swarm Source

ipfs://278d5cba3897af02106e92865cda74e3afe8beaa55a6b6614f057bfc84b0fb23
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.