Contract 0x9e53e88dcff56d3062510a745952dec4cefdff9e 12

 
Txn Hash Method
Block
From
To
Value
0xcd1e723c27a0670ce409f6f965319a47bf668114d5c3e90b23cb2e03deec749bApprove132220492024-04-16 2:10:451 hr 52 mins ago0x568dcb6c2167f9c6fa1719c4c18aa4ba37a0e09c IN  Basic Dog Meme: DOG Token0 ETH0.0000016372090.035
0xc70869b63859eb5fcb74566ffa89f83df7def7a6412689a3378e2f497c26231eApprove132199772024-04-16 1:01:413 hrs 1 min ago0x3426316b1eb507bf2bdfe37b97c7e4456cb8b49b IN  Basic Dog Meme: DOG Token0 ETH0.0000007624690.01604722
0x3d448e07d9ea932739f12d91521cb1c004b738c292d45d3653d50fc77278a840Approve132193742024-04-16 0:41:353 hrs 21 mins ago0xee945133c76124576176204d0ee5489623d1ed30 IN  Basic Dog Meme: DOG Token0 ETH0.0000008619650.0182
0xab3e43d7b7ba0722e043181151471c5ef89b25c991ef08235dc846f244ab6317Approve132168032024-04-15 23:15:534 hrs 46 mins ago0x093eea81dd980f9662fe35e619145772fe191561 IN  Basic Dog Meme: DOG Token0 ETH0.0000008900010.018861886
0x321f1be5e0ea6e5a34ab3e9a60e965e188bbc61b83b222c5c62ce00fe7911b45Approve132165162024-04-15 23:06:194 hrs 56 mins ago0xd4d80c5889b8863811a06163ed065241f298b95a IN  Basic Dog Meme: DOG Token0 ETH0.0000010120550.021384339
0xfeab4d785661a6e7f1682baf57492a25076f81bb6dd58ce741e5620cc33b3947Approve132158662024-04-15 22:44:395 hrs 18 mins ago0xc5c1a220a261bcd7d7f2ea60714be514b3877b83 IN  Basic Dog Meme: DOG Token0 ETH0.0000010976130.0232
0x7db00e6acba27615f3145295ebee988b49750bf693cd961966543022ab18c08cApprove132157852024-04-15 22:41:575 hrs 20 mins ago0x6875c161f0d04257f6a9366d035761580800d7fb IN  Basic Dog Meme: DOG Token0 ETH0.0000009954320.020909075
0x581d877e2fd875ee77abcc4bb09aea01184e5c68c3d6b2b702b56fe3c898100bApprove132149182024-04-15 22:13:035 hrs 49 mins ago0xe0c7820911658df569de4579a3be518d76fdfd6d IN  Basic Dog Meme: DOG Token0 ETH0.0000012998160.027300082
0xbd5da8adc4e4244bb4ccbe11889b6b7a95644adaba268ead1b523837e48e0128Approve132125952024-04-15 20:55:377 hrs 7 mins ago0xe0b17a7b6609fa841d7439ea6c5afe2fb07f8bac IN  Basic Dog Meme: DOG Token0 ETH0.000005044030.1075
0xf29357d996282e154fffe1a015ff5c078d7ab8d415d716475c30fc27480c42adApprove132115212024-04-15 20:19:497 hrs 42 mins ago0xafb9553689ff24c64e9491b6ec17385c9e5dc3d2 IN  Basic Dog Meme: DOG Token0 ETH0.0000053511790.114918605
0xda12501d76131abddc96cce2e4e9f5efb7c8486d4cd50282df79d42def239ec8Approve132107882024-04-15 19:55:238 hrs 7 mins ago0x1424c2a237f32030fd914465410f89bbc4723b90 IN  Basic Dog Meme: DOG Token0 ETH0.0000025776910.05476673
0x562d33dd8aeb864bb9a62942b35b8b21e13c6defe54bdfc2ca47d3e66ee6c51dApprove132104632024-04-15 19:44:338 hrs 18 mins ago0x0291687811ae3020ded4a2127096eba0c30db6b4 IN  Basic Dog Meme: DOG Token0 ETH0.0000032811440.0694
0x29a48fe44205fd99ac144cd8f2ae413e199babac80bb610fb1023b2be34a1532Approve132092122024-04-15 19:02:518 hrs 59 mins ago0x29599af7a8d4b74d4d962e94b2389b0c349873ba IN  Basic Dog Meme: DOG Token0 ETH0.000003727150.079517912
0x60dcc63202106ad16eed518b1e38fe3763425bffc797a984801d3c40f329ee1cTransfer132076952024-04-15 18:12:179 hrs 50 mins ago0x2781c14ab304f2e0e3a74653ddeed044939faf0c IN  Basic Dog Meme: DOG Token0 ETH0.0000074533160.1578
0xbd237c55aec92e033b18faaab14ff95152dd9d2040a2ca906a7ac0cef641c907Approve132053832024-04-15 16:55:1311 hrs 7 mins ago0xc44fd65765199b4bc0a6a03943423819b15293c3 IN  Basic Dog Meme: DOG Token0 ETH0.0000054771860.185995899
0xd53a07d7a0c8171646bc4efe880b7bc2dffe3002144af5cce3386acc81649923Approve132042562024-04-15 16:17:3911 hrs 45 mins ago0x3445a938f98eaaeb6af3ce90e71fc5994a23f897 IN  Basic Dog Meme: DOG Token0 ETH0.0000184293620.3973
0xa6bbdd20be6564eb91c51657919e614c447b030ef86fff1e82fe4a3cdd3707bfApprove132038712024-04-15 16:04:4911 hrs 57 mins ago0x54bcd31ca05680f24f9ad644187e06c5deaec649 IN  Basic Dog Meme: DOG Token0 ETH0.0000141314210.304279867
0xfcd62ef79e0525637141651d8000d270cb445e9f6bbb40b2312e786042d8ae48Approve132033292024-04-15 15:46:4512 hrs 16 mins ago0xb51e6f8008ff826bf24b98fdb0c88da85886dde9 IN  Basic Dog Meme: DOG Token0 ETH0.0000241001140.517051182
0xad4532ff1759356b27deeaf7d8d2eb0a03da2ca5ed1134fb95cd17989eda1e24Approve132030282024-04-15 15:36:4312 hrs 26 mins ago0xcac0eb798903ffe73ab1776da3174e6e40e721c6 IN  Basic Dog Meme: DOG Token0 ETH0.0000134673540.28955386
0xa2aea86e0d398baabdd2be1517e68825993bf6bd9c623686013b1e344c2242a0Approve132023392024-04-15 15:13:4512 hrs 49 mins ago0x3985c3d9eed408615d2a643d44ebaf4ea0f30beb IN  Basic Dog Meme: DOG Token0 ETH0.0000208635220.448332886
0x2125ec1e134df25f01b1db8842ef60c687d79da62325428900861cd28b0cf0cfApprove132013672024-04-15 14:41:2113 hrs 21 mins ago0x65e8a23c41305fd41751c7cafa3b0eb78445a319 IN  Basic Dog Meme: DOG Token0 ETH0.0000067365440.144199882
0xd321e903cc33a654bb2163fcc42ac262f56b30c13568ca5558c335e2e1e814c6Approve131982192024-04-15 12:56:2515 hrs 6 mins ago0xbe8eb72d33d76008bb4964189e86f56378acc518 IN  Basic Dog Meme: DOG Token0 ETH0.0000026817440.0903
0x38366427b0d32dac2bf5e07223a2f28beb16e3016175abc6c305bda5eab2acdfApprove131977992024-04-15 12:42:2515 hrs 20 mins ago0x2dabb00f401d0c9c12e6367f0b22290c5b84b205 IN  Basic Dog Meme: DOG Token0 ETH0.0000042135890.09005367
0x1e7f0903ea0b3cb91a99b28978a21c703150340eecb5f09fa727ee161c7b8a7eApprove131898872024-04-15 8:18:4119 hrs 44 mins ago0x32576c7a03adc878049889996084c4f10c17b16a IN  Basic Dog Meme: DOG Token0 ETH0.0000046284980.098697593
0xb833ecd2606fb64d8cdc3772107d7b758319fa8c7796918d3b6d482d71dd93b5Approve131879242024-04-15 7:13:1520 hrs 49 mins ago0x49a7566e1231b93d447da57a56d93bd002237929 IN  Basic Dog Meme: DOG Token0 ETH0.0000019335660.041047985
[ Download CSV Export 

OVERVIEW

Basic Dog Meme was a very early meme coin deployed on the Base network, having it's contract deployment transaction posted only hours after the network entered Developer Preview. 50% of the initial supply was airdropped to early adopters of the Base blockchain.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x9ca5477aeaeae29c115a3b4548317f2cc6988390c331f621fb4f8ed5976a9f2c14099432023-07-17 15:53:53273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x9ca5477aeaeae29c115a3b4548317f2cc6988390c331f621fb4f8ed5976a9f2c14099432023-07-17 15:53:53273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x7b76a9d38fcc1f2d6d1d497d34c0fffa964cb661752c01a8f0c6f11752cf3f6514099322023-07-17 15:53:31273 days 12 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x37cc7bf2194a6adf20cabb790d15ff0c8df38e03dc7ffc4e5db871423965597b13339982023-07-15 21:42:23275 days 6 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x2b6c0c0ccd6d080fc592f8f41e3b5018c6778f92a6b5b2d4759ca09f11be26f213240092023-07-15 16:09:25275 days 11 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x2b6c0c0ccd6d080fc592f8f41e3b5018c6778f92a6b5b2d4759ca09f11be26f213240092023-07-15 16:09:25275 days 11 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
0x2b6c0c0ccd6d080fc592f8f41e3b5018c6778f92a6b5b2d4759ca09f11be26f213240092023-07-15 16:09:25275 days 11 hrs ago 0xd54b921426a038db005447926262a52645242b92 Basic Dog Meme: DOG Token0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BasicDogMeme

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 20 runs

Other Settings:
default evmVersion, MIT license
File 1 of 5 : BasicDogMeme.sol
// SPDX-License-Identifier: MIT
// The first Dog token on Base.
// Want some $DOG? -> https://twitter.com/ImpossibleNFT/status/1679594153473187842

pragma solidity 0.8.10;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract BasicDogMeme is ERC20 {
    constructor() ERC20("Basic Dog Meme", "DOG") {
        _mint(msg.sender, 1_000_000_000 ether);
    }
}

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

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/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 3 of 5 : 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 4 of 5 : 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);
}

File 5 of 5 : 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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 20
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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"}]

608060405234801561001057600080fd5b506040518060400160405280600e81526020016d426173696320446f67204d656d6560901b81525060405180604001604052806003815260200162444f4760e81b815250816003908051906020019061006a929190610165565b50805161007e906004906020840190610165565b50505061009d336b033b2e3c9fd0803ce80000006100a260201b60201c565b61025f565b6001600160a01b0382166100fc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825461010e91906101fe565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82805461017190610224565b90600052602060002090601f01602090048101928261019357600085556101d9565b82601f106101ac57805160ff19168380011785556101d9565b828001600101855582156101d9579182015b828111156101d95782518255916020019190600101906101be565b506101e59291506101e9565b5090565b5b808211156101e557600081556001016101ea565b6000821982111561021f57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c9082168061023857607f821691505b6020821081141561025957634e487b7160e01b600052602260045260246000fd5b50919050565b61084d8061026e6000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806306fdde031461009e578063095ea7b3146100bc57806318160ddd146100df57806323b872dd146100f1578063313ce56714610104578063395093511461011357806370a082311461012657806395d89b411461014f578063a457c2d714610157578063a9059cbb1461016a578063dd62ed3e1461017d575b600080fd5b6100a6610190565b6040516100b3919061068a565b60405180910390f35b6100cf6100ca3660046106fb565b610222565b60405190151581526020016100b3565b6002545b6040519081526020016100b3565b6100cf6100ff366004610725565b61023a565b604051601281526020016100b3565b6100cf6101213660046106fb565b61025e565b6100e3610134366004610761565b6001600160a01b031660009081526020819052604090205490565b6100a6610280565b6100cf6101653660046106fb565b61028f565b6100cf6101783660046106fb565b61030f565b6100e361018b366004610783565b61031d565b60606003805461019f906107b6565b80601f01602080910402602001604051908101604052809291908181526020018280546101cb906107b6565b80156102185780601f106101ed57610100808354040283529160200191610218565b820191906000526020600020905b8154815290600101906020018083116101fb57829003601f168201915b5050505050905090565b600033610230818585610348565b5060019392505050565b60003361024885828561046c565b6102538585856104e6565b506001949350505050565b600033610230818585610271838361031d565b61027b91906107f1565b610348565b60606004805461019f906107b6565b6000338161029d828661031d565b9050838110156103025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102538286868403610348565b6000336102308185856104e6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103aa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102f9565b6001600160a01b03821661040b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102f9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610478848461031d565b905060001981146104e057818110156104d35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016102f9565b6104e08484848403610348565b50505050565b6001600160a01b03831661054a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102f9565b6001600160a01b0382166105ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102f9565b6001600160a01b038316600090815260208190526040902054818110156106245760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102f9565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e0565b600060208083528351808285015260005b818110156106b75785810183015185820160400152820161069b565b818111156106c9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146106f657600080fd5b919050565b6000806040838503121561070e57600080fd5b610717836106df565b946020939093013593505050565b60008060006060848603121561073a57600080fd5b610743846106df565b9250610751602085016106df565b9150604084013590509250925092565b60006020828403121561077357600080fd5b61077c826106df565b9392505050565b6000806040838503121561079657600080fd5b61079f836106df565b91506107ad602084016106df565b90509250929050565b600181811c908216806107ca57607f821691505b602082108114156107eb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561081257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220243f65b2559bc952ac4a9360234da742c19b159ece67ba0456f0da77324e83a064736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100995760003560e01c806306fdde031461009e578063095ea7b3146100bc57806318160ddd146100df57806323b872dd146100f1578063313ce56714610104578063395093511461011357806370a082311461012657806395d89b411461014f578063a457c2d714610157578063a9059cbb1461016a578063dd62ed3e1461017d575b600080fd5b6100a6610190565b6040516100b3919061068a565b60405180910390f35b6100cf6100ca3660046106fb565b610222565b60405190151581526020016100b3565b6002545b6040519081526020016100b3565b6100cf6100ff366004610725565b61023a565b604051601281526020016100b3565b6100cf6101213660046106fb565b61025e565b6100e3610134366004610761565b6001600160a01b031660009081526020819052604090205490565b6100a6610280565b6100cf6101653660046106fb565b61028f565b6100cf6101783660046106fb565b61030f565b6100e361018b366004610783565b61031d565b60606003805461019f906107b6565b80601f01602080910402602001604051908101604052809291908181526020018280546101cb906107b6565b80156102185780601f106101ed57610100808354040283529160200191610218565b820191906000526020600020905b8154815290600101906020018083116101fb57829003601f168201915b5050505050905090565b600033610230818585610348565b5060019392505050565b60003361024885828561046c565b6102538585856104e6565b506001949350505050565b600033610230818585610271838361031d565b61027b91906107f1565b610348565b60606004805461019f906107b6565b6000338161029d828661031d565b9050838110156103025760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102538286868403610348565b6000336102308185856104e6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103aa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102f9565b6001600160a01b03821661040b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102f9565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610478848461031d565b905060001981146104e057818110156104d35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016102f9565b6104e08484848403610348565b50505050565b6001600160a01b03831661054a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016102f9565b6001600160a01b0382166105ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016102f9565b6001600160a01b038316600090815260208190526040902054818110156106245760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016102f9565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e0565b600060208083528351808285015260005b818110156106b75785810183015185820160400152820161069b565b818111156106c9576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146106f657600080fd5b919050565b6000806040838503121561070e57600080fd5b610717836106df565b946020939093013593505050565b60008060006060848603121561073a57600080fd5b610743846106df565b9250610751602085016106df565b9150604084013590509250925092565b60006020828403121561077357600080fd5b61077c826106df565b9392505050565b6000806040838503121561079657600080fd5b61079f836106df565b91506107ad602084016106df565b90509250929050565b600181811c908216806107ca57607f821691505b602082108114156107eb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000821982111561081257634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220243f65b2559bc952ac4a9360234da742c19b159ece67ba0456f0da77324e83a064736f6c634300080a0033

Deployed ByteCode Sourcemap

238:143:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:5;;1211:22;1193:41;;1181:2;1166:18;4444:197:0;1053:187:5;3255:106:0;3342:12;;3255:106;;;1391:25:5;;;1379:2;1364:18;3255:106:0;1245:177:5;5203:256:0;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1902:36:5;;1890:2;1875:18;3104:91:0;1760:184:5;5854:234:0;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:0;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;;:::i;2158:98::-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:3;4581:32:0;719:10:3;4597:7:0;4606:6;4581:8;:32::i;:::-;-1:-1:-1;4630:4:0;;4444:197;-1:-1:-1;;;4444:197:0:o;5203:256::-;5300:4;719:10:3;5356:38:0;5372:4;719:10:3;5387:6:0;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:0;;5203:256;-1:-1:-1;;;;5203:256:0:o;5854:234::-;5942:4;719:10:3;5996:64:0;719:10:3;6012:7:0;6049:10;6021:25;719:10:3;6012:7:0;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;6668:4;719:10:3;6668:4:0;6749:25;719:10:3;6766:7:0;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:0;;3222:2:5;6784:85:0;;;3204:21:5;3261:2;3241:18;;;3234:30;3300:34;3280:18;;;3273:62;-1:-1:-1;;;3351:18:5;;;3344:35;3396:19;;6784:85:0;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:3;3873:28:0;719:10:3;3890:2:0;3894:6;3873:9;:28::i;3987:149::-;-1:-1:-1;;;;;4102:18:0;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149::o;10457:340::-;-1:-1:-1;;;;;10558:19:0;;10550:68;;;;-1:-1:-1;;;10550:68:0;;3628:2:5;10550:68:0;;;3610:21:5;3667:2;3647:18;;;3640:30;3706:34;3686:18;;;3679:62;-1:-1:-1;;;3757:18:5;;;3750:34;3801:19;;10550:68:0;3426:400:5;10550:68:0;-1:-1:-1;;;;;10636:21:0;;10628:68;;;;-1:-1:-1;;;10628:68:0;;4033:2:5;10628:68:0;;;4015:21:5;4072:2;4052:18;;;4045:30;4111:34;4091:18;;;4084:62;-1:-1:-1;;;4162:18:5;;;4155:32;4204:19;;10628:68:0;3831:398:5;10628:68:0;-1:-1:-1;;;;;10707:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1391:25:5;;;10758:32:0;;1364:18:5;10758:32:0;;;;;;;10457:340;;;:::o;11078:411::-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;-1:-1:-1;;11244:16:0;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:0;;4436:2:5;11297:68:0;;;4418:21:5;4475:2;4455:18;;;4448:30;4514:31;4494:18;;;4487:59;4563:18;;11297:68:0;4234:353:5;11297:68:0;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:0;;7544:68;;;;-1:-1:-1;;;7544:68:0;;4794:2:5;7544:68:0;;;4776:21:5;4833:2;4813:18;;;4806:30;4872:34;4852:18;;;4845:62;-1:-1:-1;;;4923:18:5;;;4916:35;4968:19;;7544:68:0;4592:401:5;7544:68:0;-1:-1:-1;;;;;7630:16:0;;7622:64;;;;-1:-1:-1;;;7622:64:0;;5200:2:5;7622:64:0;;;5182:21:5;5239:2;5219:18;;;5212:30;5278:34;5258:18;;;5251:62;-1:-1:-1;;;5329:18:5;;;5322:33;5372:19;;7622:64:0;4998:399:5;7622:64:0;-1:-1:-1;;;;;7768:15:0;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:0;;5604:2:5;7793:72:0;;;5586:21:5;5643:2;5623:18;;;5616:30;5682:34;5662:18;;;5655:62;-1:-1:-1;;;5733:18:5;;;5726:36;5779:19;;7793:72:0;5402:402:5;7793:72:0;-1:-1:-1;;;;;7899:15:0;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1391:25:5;;;8114:13:0;;8163:26;;1364:18:5;8163:26:0;;;;;;;8200:37;12073:91;14:597:5;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:5;574:15;-1:-1:-1;;570:29:5;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:5:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:5;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:5:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:5:o;2140:260::-;2208:6;2216;2269:2;2257:9;2248:7;2244:23;2240:32;2237:52;;;2285:1;2282;2275:12;2237:52;2308:29;2327:9;2308:29;:::i;:::-;2298:39;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2140:260;;;;;:::o;2405:380::-;2484:1;2480:12;;;;2527;;;2548:61;;2602:4;2594:6;2590:17;2580:27;;2548:61;2655:2;2647:6;2644:14;2624:18;2621:38;2618:161;;;2701:10;2696:3;2692:20;2689:1;2682:31;2736:4;2733:1;2726:15;2764:4;2761:1;2754:15;2618:161;;2405:380;;;:::o;2790:225::-;2830:3;2861:1;2857:6;2854:1;2851:13;2848:136;;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2848:136;-1:-1:-1;3000:9:5;;2790:225::o

Swarm Source

ipfs://243f65b2559bc952ac4a9360234da742c19b159ece67ba0456f0da77324e83a0
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.