Contract 0xdfce1e99a31c4597a3f8a8945cbfa9037655e335 2

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8cf6e3dc7b0066c44f0ebff9c6b2cfa2eefc5c82ce2c495f26b1d88e07a5f95dApprove361064782022-11-26 21:45:251 hr ago0x866d70979565a926516fe16ee9dea45d6b99225c IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001459453165 31.337566896
0x691334e5e5f9fdb5376dc72e674de738b638d984ebf7cf29efcdb62a47f96d04Approve361054582022-11-26 21:08:131 hr 37 mins ago0x24cc30bad5faa5d743f960fbf70e0a8717b43bb9 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.00139716 30.000000016
0x38ccec4e07fccb9cd5115c0efbc609aa8e9e788b39e08ff537d5ecd26d0b5d2bApprove361009622022-11-26 18:33:354 hrs 11 mins ago0x569f6ad28e87beb63b6d3797911375287e76dadb IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001635329207 35.113999999
0x458f72b6044a5fe816d592d2cf2b2bd7b32ddda60f481d6f4950e2435744a156Increase Allowan...360917262022-11-26 13:09:229 hrs 36 mins ago0xc757281985fcae825a6aaa6233a900e7b15ce677 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001571131163 33.768885439
0xdf6fb3bebab24715d113d62c11adc1d8e5a0e2fc9bfe1a22ebc4a76e185cbc24Increase Allowan...360916332022-11-26 13:06:089 hrs 39 mins ago0xc757281985fcae825a6aaa6233a900e7b15ce677 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001395420905 30.000019459
0xe59250258ae0bc308ef36f2e3b3613633dbc26deafdaa4a048d5b289d24f0e74Approve360837222022-11-26 8:31:5314 hrs 13 mins ago0x220346d1a45eea944718e3a72c202cddbb278336 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001635498187 35.117628355
0x0868655f373aae63545c79b322666c783b43b23415c3e089cddc270d69c18e0eApprove360796632022-11-26 6:11:5116 hrs 33 mins ago0x5510586c64a6a3c0d787831c0c198a20e41ef7ed IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001478832525 31.753683016
0x84a07f3c266d6d972ecd26d56919d26531c1b5c93a1e06072952c2f4a4a9e6ccApprove360769922022-11-26 4:40:0018 hrs 5 mins ago0x2342ec603e756635fc7b517f669021a4cb903c4e IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001397160001 30.000000023
0xd0d75cbf323e134902bcfde70ec3b56ab076c4f0560b3355d75d0f64d47b2812Approve360753282022-11-26 3:42:4819 hrs 2 mins ago0xd3cba4614e1f2bc23bf7bcf53e7b441d2528965a IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.00149076972 32.010000017
0xa5d5db42c6bac60f89760c75ac51f256d6605e16e145d49988321b5c3af5446dApprove360738862022-11-26 2:50:4019 hrs 54 mins ago0x496ec9925d327da6a0bb29d49071c4b84eedf4f4 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001397160001 30.000000032
0x0a4b486699542754221c99436ef9415052a2aa0e5cd7ee00fa5baa615b3ba2d2Approve360726942022-11-26 2:09:4020 hrs 35 mins ago0xfd3b43062bbddaa57b39e9772d4b66af2d1cd19f IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.002188884 47
0xf42cb34929299a9319ff8377a440bd41b4eba365287006bf7cb25dc9c08a2209Approve360696402022-11-26 0:24:3822 hrs 20 mins ago0x4a851f4031345b17a857e12a0f5daa881731f74a IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.0014041458 30.15
0xc0777290681a940996951361563f32fe1c5de788a7e519cf2cd2ae9fdac8a845Transfer360637912022-11-25 21:00:551 day 1 hr ago0xc9743a1aebb466b2ff66efb8c1896e8825cd3644 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001410435727 30.118209
0xf6ffd9354fad4f8f48d645b726e905c2bce8289207298e76313ba977b7754c8dApprove360625502022-11-25 20:16:091 day 2 hrs ago0x79f5b2f93f050807389b292301863b87c208ec84 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.00153594456 32.980000015
0x3e74393921d5b5c14d50ecd8e8b23cebbc10273748b34581df820a67ba0d67a4Approve360590632022-11-25 18:16:151 day 4 hrs ago0xa19442e942f872b83601155f4930140e6e6646cc IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001397160277 30.000005955
0xb07753eb19df52ca40380ffd7ddada666d132a71968d0f4a357928a844d21f04Approve360585462022-11-25 17:58:281 day 4 hrs ago0x05763c047c7d7f2ba76390c6178f224c2ede71e1 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001535959618 32.980323346
0x1776b99790c5ceabbd029e77c9956ba4e4d1d82e76bb53236d446ffc5744ab33Approve360572112022-11-25 17:12:341 day 5 hrs ago0x83a49737d8c3e54e2622f0313c6f9b730ce96957 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.0019979388 42.9
0x83e2987b1d46cad0fc1058514c42484e551f59b2771b923f4970217ee1125eb6Approve360565062022-11-25 16:48:131 day 5 hrs ago0x142e6ee40bd42643aa4d3f7a0ae066997f902788 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.013527045776 290.454474293
0x3e5d4338510cdb6038b9e5ffe20c62bb2277d9baeb1ad25afa6c57b69fa3a40aApprove360563152022-11-25 16:41:391 day 6 hrs ago0x95512703cb6421480f240c60618432a84050e3f4 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001818213457 39.040914225
0xe9ee0263effbb8d8013a749ce76f59536ad436ca6f7de0ca28bf0a21bc841c1dApprove360562932022-11-25 16:40:551 day 6 hrs ago0x95512703cb6421480f240c60618432a84050e3f4 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001803665245 38.728533138
0x36fc6c8668713dd71995609ec03ae983ade88716bdaac15243722d5931d977aeApprove360536972022-11-25 15:11:311 day 7 hrs ago0x99030458f2270e85d87651507fd0d205e5143fe7 IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.002368797409 50.863123977
0x1c18bf15bd32e3565b47c8b097b099acd569ec08543197c147ba352f4c3aa60bTransfer360388942022-11-25 6:37:041 day 16 hrs ago0x218f88739d0b4db166ba1186137e873150192a2c IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.002325132813 45.045000077
0x84c659b6eb669ea56542d2046f1e5796d8f30bdc37ebd43d778fed20365b6f91Transfer360384952022-11-25 6:23:181 day 16 hrs ago0x218f88739d0b4db166ba1186137e873150192a2c IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.001865767526 45.044000055
0xe1482d12c5b1feffe95207ac2a9bf4d292267f78e84ee24027d4b74462c7c769Approve360360322022-11-25 4:56:321 day 17 hrs ago0xef9ea6df13639b9691e5ff26b439f06fcce4a5fe IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.0011148896 41.8
0x17ec10d518a6b51cc698c41d643fc70c5112449c3c4cce8f1681d5fdb2641b6cApprove360360202022-11-25 4:56:041 day 17 hrs ago0xef9ea6df13639b9691e5ff26b439f06fcce4a5fe IN  0xdfce1e99a31c4597a3f8a8945cbfa9037655e3350 MATIC0.0020910828 44.9
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Astrafer

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 5 : astraferErc20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Astrafer is ERC20 {
    uint256 public constant INITIAL_SUPPLY = 888077888 * (10**uint256(18));

    constructor() ERC20("Astrafer", "ASTRAFER") {
        _mint(0x388a18601d8f34b4A912a29A4429FAfeE70F9ED4, INITIAL_SUPPLY);
    }
}

File 2 of 5 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `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;
        }
        _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;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600881526020016720b9ba3930b332b960c11b8152506040518060400160405280600881526020016720a9aa2920a322a960c11b81525081600390805190602001906200006c929190620001b2565b50805162000082906004906020840190620001b2565b505050620000c473388a18601d8f34b4a912a29a4429fafee70f9ed46012600a620000ae9190620002bc565b620000be906334eefe4062000387565b620000ca565b620003fc565b6001600160a01b038216620001255760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000139919062000258565b90915550506001600160a01b038216600090815260208190526040812080548392906200016890849062000258565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001c090620003a9565b90600052602060002090601f016020900481019282620001e457600085556200022f565b82601f10620001ff57805160ff19168380011785556200022f565b828001600101855582156200022f579182015b828111156200022f57825182559160200191906001019062000212565b506200023d92915062000241565b5090565b5b808211156200023d576000815560010162000242565b600082198211156200026e576200026e620003e6565b500190565b600181815b80851115620002b4578160001904821115620002985762000298620003e6565b80851615620002a657918102915b93841c939080029062000278565b509250929050565b6000620002ca8383620002d1565b9392505050565b600082620002e25750600162000381565b81620002f15750600062000381565b81600181146200030a5760028114620003155762000335565b600191505062000381565b60ff841115620003295762000329620003e6565b50506001821b62000381565b5060208310610133831016604e8410600b84101617156200035a575081810a62000381565b62000366838362000273565b80600019048211156200037d576200037d620003e6565b0290505b92915050565b6000816000190483118215151615620003a457620003a4620003e6565b500290565b600181811c90821680620003be57607f821691505b60208210811415620003e057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6109cb806200040c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80633950935111610071578063395093511461013657806370a082311461014957806395d89b4114610172578063a457c2d71461017a578063a9059cbb1461018d578063dd62ed3e146101a057600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c5780632ff2e9dc1461011f578063313ce56714610127575b600080fd5b6100c16101b3565b6040516100ce91906107cd565b60405180910390f35b6100ea6100e53660046107a3565b610245565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a366004610767565b61025f565b6100fe610283565b604051601281526020016100ce565b6100ea6101443660046107a3565b6102a0565b6100fe610157366004610712565b6001600160a01b031660009081526020819052604090205490565b6100c16102c2565b6100ea6101883660046107a3565b6102d1565b6100ea61019b3660046107a3565b610351565b6100fe6101ae366004610734565b61035f565b6060600380546101c290610944565b80601f01602080910402602001604051908101604052809291908181526020018280546101ee90610944565b801561023b5780601f106102105761010080835404028352916020019161023b565b820191906000526020600020905b81548152906001019060200180831161021e57829003601f168201915b5050505050905090565b60003361025381858561038a565b60019150505b92915050565b60003361026d8582856104ae565b610278858585610528565b506001949350505050565b61028f6012600a61087d565b61029d906334eefe40610925565b81565b6000336102538185856102b3838361035f565b6102bd9190610822565b61038a565b6060600480546101c290610944565b600033816102df828661035f565b9050838110156103445760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610278828686840361038a565b600033610253818585610528565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103ec5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161033b565b6001600160a01b03821661044d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161033b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104ba848461035f565b9050600019811461052257818110156105155760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161033b565b610522848484840361038a565b50505050565b6001600160a01b03831661058c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161033b565b6001600160a01b0382166105ee5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161033b565b6001600160a01b038316600090815260208190526040902054818110156106665760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161033b565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061069d908490610822565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e991815260200190565b60405180910390a3610522565b80356001600160a01b038116811461070d57600080fd5b919050565b60006020828403121561072457600080fd5b61072d826106f6565b9392505050565b6000806040838503121561074757600080fd5b610750836106f6565b915061075e602084016106f6565b90509250929050565b60008060006060848603121561077c57600080fd5b610785846106f6565b9250610793602085016106f6565b9150604084013590509250925092565b600080604083850312156107b657600080fd5b6107bf836106f6565b946020939093013593505050565b600060208083528351808285015260005b818110156107fa578581018301518582016040015282016107de565b8181111561080c576000604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108355761083561097f565b500190565b600181815b8085111561087557816000190482111561085b5761085b61097f565b8085161561086857918102915b93841c939080029061083f565b509250929050565b600061072d838360008261089357506001610259565b816108a057506000610259565b81600181146108b657600281146108c0576108dc565b6001915050610259565b60ff8411156108d1576108d161097f565b50506001821b610259565b5060208310610133831016604e8410600b84101617156108ff575081810a610259565b610909838361083a565b806000190482111561091d5761091d61097f565b029392505050565b600081600019048311821515161561093f5761093f61097f565b500290565b600181811c9082168061095857607f821691505b6020821081141561097957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220969142345402dafe787967a192e9447094a8394c87c830c87e26b50480b6043164736f6c63430008070033

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.