Contract 0x55c948561336a98f7683dd3d79f31ef6e3e0bac8 4

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x05555d383320dd0ae23d922bb86736ceefcaf1c4c309830f0455077cb325527eTransfer434495422023-06-02 14:34:122 days 13 hrs ago0xbd6914b933c9e4c7ff507967cdb1480ba8914296 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.005761330297184.510177647
0xb2b36fa22a5f723ca4909f58e8e1f23bb1616c0fb3003b416948483e93574823Transfer432895642023-05-29 13:18:586 days 14 hrs ago0xaad809753fd27b57bd1e3caaa163f421beaab5ef IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.006938907145192.6778426
0x4ccd228e7dbaef93c5f18becbc3143c2699d4ec64a286d70b26c6d294f760495Transfer403050002023-03-13 16:59:1183 days 10 hrs ago0x59df020399e9663718a205a49f1646b4632710ee IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.009214942424146.016295999
0x2858c6cfa5ca9026b186b758def49f36937934f4954aecc3de7c74c050f3aa87Transfer403049632023-03-13 16:57:5383 days 10 hrs ago0x59df020399e9663718a205a49f1646b4632710ee IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.009148147653144.930334657
0xea873ac4e575d71c2b486bd779fe23056bfd5c433e6c8d059835e1c4a6037189Transfer402811972023-03-13 2:04:5884 days 1 hr ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.017590794368183.079154152
0xc6220778e2ecfe9a1bcee68fff487a8346961cf4dc3b66249ac53af5610ffb6aTransfer402441052023-03-12 2:45:0485 days 1 hr ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.014125567777140.01930729
0x5cc00ca36dbd24670d68f01a134f2f2ec2a27be24f440640bd299c07d039e260Transfer402130472023-03-11 7:45:4285 days 20 hrs ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.3124719265231,568.705044522
0x9e062f3f75d49146735366112598d7de6d4c856ab588726bda4f57295af3573dTransfer401717152023-03-10 5:09:3086 days 22 hrs ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.019920781972168.964808631
0xa9f5005da75ef51caccb1cc198cf98eec57bafae10e2bbf0f753c5c5584810c3Transfer401283682023-03-09 1:46:4388 days 2 hrs ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.00958113553896.893657544
0xa42c465b0cf8537a8009f3352738b1a523488c7ed2a49b852778bd7be17e2624Transfer401128682023-03-08 15:59:1888 days 11 hrs ago0xe889f77a41b1775968542c9e78fd7f6400e76124 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.013440737371148.804177925
0x81d9772fa6b9187d712e32c53cd3a92feedc0134a8d06198e1e0771a6db8f85eTransfer400931642023-03-08 3:22:0489 days 33 mins ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.01986972091399.752101818
0xabdbbd3f1d075fc2932b224d26e643564f5880be031b5f38f061c1cbaa12685cTransfer400931032023-03-08 3:19:5489 days 36 mins ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.023700084947118.981705735
0xd809782d866d385adc375a9b6bab7a9ae87a9fa9769959a1751b5eb2d92683d6Transfer400685642023-03-07 11:37:1489 days 16 hrs ago0xe889f77a41b1775968542c9e78fd7f6400e76124 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.010864962871120.287438379
0x554f86f066573193de85dff73d4bb1fcde83507bd7d5d0e53acd534e19e5a369Transfer400604062023-03-07 6:33:0289 days 21 hrs ago0x6c97abf727b6688e289b94e376d244cb365e24f6 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.01059519904 108.022787237
0x501fa8d66fa6b49cdd2110f5459d777b16de6e010aad028991c40b945ad0135aTransfer400553122023-03-07 3:24:5590 days 31 mins ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.010882006185110.946914201
0x67345e554488b4cd2d75a2edbdea7f484a1bc919caba761412c739bc0f51791fTransfer400379682023-03-06 15:57:5190 days 11 hrs ago0xe889f77a41b1775968542c9e78fd7f6400e76124 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.025574088218211.883182287
0x5541205a31da7704667aec12e02a834a47e8b6133c195db94c5dd305a1621262Transfer400379682023-03-06 15:57:5190 days 11 hrs ago0xe889f77a41b1775968542c9e78fd7f6400e76124 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.016530462081163.87724997
0x724b591dd02766b33cfcc533ebcc687539fd3bba16301e104680e6dbb6ffa59eTransfer400235172023-03-06 7:09:1590 days 20 hrs ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.012005882975101.831932213
0xb215f551150bb1cab6b49ef9a74a04447ba51dd74a8d992b9e243fec6f47efd7Transfer399387272023-03-04 2:26:4493 days 1 hr ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.027257467023136.84085638
0xe03cddba77fdd76ac72dc13d83aef345cc208e58e6f1504cf72932b4a1edcfcfTransfer399386262023-03-04 2:22:0693 days 1 hr ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.06288913604696.161440394
0xf2bdab6abec9fb6bb8217e1c2776f85dfe859f925c7fa6db6d28e6ac83cb001aTransfer399386262023-03-04 2:22:0693 days 1 hr ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.070151213701352.180639194
0xfa9957dce6c18a430727587953e9e45c58505eb58ef2704899d2db257c40a9d6Transfer399202512023-03-03 14:34:4393 days 13 hrs ago0x2907f8752ffac140fedae7ab831a7524ffc928ba IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.014250319967157.746216586
0xd2f8332332da6a6834eb7b651e01ec19b2a6ac1e406c08b39f485aa1c5aad704Transfer399183972023-03-03 13:22:1593 days 14 hrs ago0x601f5f94abfd26a30384f023404ae2e6f1ea3bd3 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.009805524451108.543835317
0x9ab80b2f2613fba3c7ccc1020f70af89e5ae1378e5e1a8762e52248da60d5b8aTransfer399183512023-03-03 13:20:3793 days 14 hrs ago0x601f5f94abfd26a30384f023404ae2e6f1ea3bd3 IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.013865067222114.861671451
0x7b26f8631e1a4264d3a163c7e8451563adf794d65e47e1d88bfe13b382073fcfTransfer398666752023-03-02 4:19:2094 days 23 hrs ago0x79924f63f50668820e7bac1ca3144eb07328e8bc IN  0x55c948561336a98f7683dd3d79f31ef6e3e0bac80 MATIC0.00848917233793.972263161
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FavorToken

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 9 : FavorToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./ERC223/IERC223.sol";
import "./ERC223/IERC223Recipient.sol";
import "./utils/Address.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract FavorToken is IERC223, Ownable {

    uint256 public defaultAmount;

    constructor(uint256 amount) IERC223("Favor Token", "FTUBE") {
        setDefaultAmount(amount);
    }

    function setDefaultAmount(uint256 amount) public onlyOwner {
        defaultAmount = amount;
    }

    function decimals() public pure override returns (uint8) {
        return 2;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balanceOf(account, true);
    }

    function _balanceOf(address account, bool check) internal view returns (uint256 balances) {
        if (!check)
            return super.balanceOf(account);

        balances = super.balanceOf(account);
        if (balances == 0) {
            return defaultAmount;
        }
    }

    function transfer(address to, uint amount, bytes calldata data) external override returns (bool) {

        address from = _msgSender();

        address owner;

        (owner) = decodeCallbackData(data);

        airdrop(owner);

        _transfer(from, to, amount);

        if (Address.isContract(to))
            IERC223Recipient(to).tokenReceived(from, amount, data);

        return true;
    }

    function airdrop(address owner) internal {
        if (owner == address(0))
            return;

        uint256 balances = _balanceOf(owner, false);
        if (balances == 0) {
            _mint(owner, defaultAmount);
        }

    }

    function decodeCallbackData(bytes memory data) internal pure returns (address _owner) {
        return abi.decode(data, (address));
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal override {
        // skip _mint to call
        if (from == address(0))
            return;

        // skip _burn to call
        if (to == address(0))
            return;

        uint256 balances = _balanceOf(from, false);
        if (balances == 0) {
            _mint(from, defaultAmount);
        }
    }

    function _afterTokenTransfer(address from, address to, uint256 amount) internal override {
        // skip _mint to call
        if (from == address(0))
            return;

        // skip _burn to call
        if (to == address(0))
            return;

        uint256 balances = _balanceOf(to, false);
        if (balances == amount) {
            _mint(to, defaultAmount);
        }
    }

}

File 2 of 9 : Address.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * This test is non-exhaustive, and there may be false-negatives: during the
     * execution of a contract's constructor, its address will be reported as
     * not containing a contract.
     *
     * > It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }
}

File 3 of 9 : IERC223Recipient.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
* @title Contract that will work with ERC223 tokens.
 */

abstract contract IERC223Recipient {
    /**
     * @dev Standard ERC223 function that will handle incoming token transfers.
     *
     * @param _from  Token sender address.
     * @param _value Amount of tokens.
     * @param _data  Transaction metadata.
     */
    function tokenReceived(address _from, uint _value, bytes memory _data) external virtual;
}

File 4 of 9 : IERC223.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "../utils/Address.sol";
import "./IERC223Recipient.sol";

/**
 * @dev Interface of the ERC223 standard token as defined in the EIP.
 */

abstract contract IERC223 is ERC20 {

    constructor(string memory name, string memory symbol) ERC20(name, symbol) {}

    /**
      * @dev Transfers `value` tokens from `msg.sender` to `to` address with `data` parameter
     * and returns `true` on success.
     */
    function transfer(address to, uint amount, bytes calldata data) external virtual returns (bool success);

    /**
     * @dev See {ERC20-_transfer}. Allow pass some custom data to function.
     */
    function _transfer(address from, address to, uint256 amount, bytes memory data) internal virtual {
        _beforeTokenTransfer(from, to, amount, data);

        super._transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount, data);
    }

    /**
     * @dev See {ERC20-_beforeTokenTransfer}. Allow pass some custom data to function.
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount,
        bytes memory data
    ) internal virtual {}

    /**
     * @dev See {ERC20-_afterTokenTransfer}. Allow pass some custom data to function.
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount,
        bytes memory data
    ) internal virtual {}
}

File 5 of 9 : 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 6 of 9 : 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 7 of 9 : 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 8 of 9 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.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 `sender` to `recipient`.
     *
     * 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 9 of 9 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"pure","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":[],"name":"defaultAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setDefaultAmount","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200231d3803806200231d833981810160405281019062000037919062000394565b6040518060400160405280600b81526020017f4661766f7220546f6b656e0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f465455424500000000000000000000000000000000000000000000000000000081525081818160039080519060200190620000bd929190620002a4565b508060049080519060200190620000d6929190620002a4565b5050505050620000fb620000ef6200011360201b60201c565b6200011b60201b60201c565b6200010c81620001e160201b60201c565b50620004ad565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001f16200011360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002176200027a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000270576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002679062000427565b60405180910390fd5b8060068190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620002b29062000478565b90600052602060002090601f016020900481019282620002d6576000855562000322565b82601f10620002f157805160ff191683800117855562000322565b8280016001018555821562000322579182015b828111156200032157825182559160200191906001019062000304565b5b50905062000331919062000335565b5090565b5b808211156200035057600081600090555060010162000336565b5090565b600080fd5b6000819050919050565b6200036e8162000359565b81146200037a57600080fd5b50565b6000815190506200038e8162000363565b92915050565b600060208284031215620003ad57620003ac62000354565b5b6000620003bd848285016200037d565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200040f602083620003c6565b91506200041c82620003d7565b602082019050919050565b60006020820190508181036000830152620004428162000400565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200049157607f821691505b602082108103620004a757620004a662000449565b5b50919050565b611e6080620004bd6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637a4102b8116100a2578063a9059cbb11610071578063a9059cbb146102bc578063be45fd62146102ec578063dd62ed3e1461031c578063f2fde38b1461034c578063fc27ea83146103685761010b565b80637a4102b8146102345780638da5cb5b1461025057806395d89b411461026e578063a457c2d71461028c5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806370a08231146101fa578063715018a61461022a5761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610386565b6040516101259190611384565b60405180910390f35b61014860048036038101906101439190611444565b610418565b604051610155919061149f565b60405180910390f35b61016661043b565b60405161017391906114c9565b60405180910390f35b610196600480360381019061019191906114e4565b610445565b6040516101a3919061149f565b60405180910390f35b6101b4610474565b6040516101c19190611553565b60405180910390f35b6101e460048036038101906101df9190611444565b61047d565b6040516101f1919061149f565b60405180910390f35b610214600480360381019061020f919061156e565b6104b4565b60405161022191906114c9565b60405180910390f35b6102326104c8565b005b61024e6004803603810190610249919061159b565b610550565b005b6102586105d6565b60405161026591906115d7565b60405180910390f35b610276610600565b6040516102839190611384565b60405180910390f35b6102a660048036038101906102a19190611444565b610692565b6040516102b3919061149f565b60405180910390f35b6102d660048036038101906102d19190611444565b610709565b6040516102e3919061149f565b60405180910390f35b61030660048036038101906103019190611657565b61072c565b604051610313919061149f565b60405180910390f35b610336600480360381019061033191906116cb565b61082c565b60405161034391906114c9565b60405180910390f35b6103666004803603810190610361919061156e565b6108b3565b005b6103706109aa565b60405161037d91906114c9565b60405180910390f35b6060600380546103959061173a565b80601f01602080910402602001604051908101604052809291908181526020018280546103c19061173a565b801561040e5780601f106103e35761010080835404028352916020019161040e565b820191906000526020600020905b8154815290600101906020018083116103f157829003601f168201915b5050505050905090565b6000806104236109b0565b90506104308185856109b8565b600191505092915050565b6000600254905090565b6000806104506109b0565b905061045d858285610b81565b610468858585610c0d565b60019150509392505050565b60006002905090565b6000806104886109b0565b90506104a981858561049a858961082c565b6104a4919061179a565b6109b8565b600191505092915050565b60006104c1826001610e8c565b9050919050565b6104d06109b0565b73ffffffffffffffffffffffffffffffffffffffff166104ee6105d6565b73ffffffffffffffffffffffffffffffffffffffff1614610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053b9061183c565b60405180910390fd5b61054e6000610ec7565b565b6105586109b0565b73ffffffffffffffffffffffffffffffffffffffff166105766105d6565b73ffffffffffffffffffffffffffffffffffffffff16146105cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c39061183c565b60405180910390fd5b8060068190555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461060f9061173a565b80601f016020809104026020016040519081016040528092919081815260200182805461063b9061173a565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60008061069d6109b0565b905060006106ab828661082c565b9050838110156106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e7906118ce565b60405180910390fd5b6106fd82868684036109b8565b60019250505092915050565b6000806107146109b0565b9050610721818585610c0d565b600191505092915050565b6000806107376109b0565b9050600061078885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f8d565b905061079381610faa565b61079e828888610c0d565b6107a787611008565b1561081e578673ffffffffffffffffffffffffffffffffffffffff16638943ec02838888886040518563ffffffff1660e01b81526004016107eb949392919061193b565b600060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050505b600192505050949350505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108bb6109b0565b73ffffffffffffffffffffffffffffffffffffffff166108d96105d6565b73ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109269061183c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361099e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610995906119ed565b60405180910390fd5b6109a781610ec7565b50565b60065481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90611a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90611b11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b7491906114c9565b60405180910390a3505050565b6000610b8d848461082c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c075781811015610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090611b7d565b60405180910390fd5b610c0684848484036109b8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390611c0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290611ca1565b60405180910390fd5b610cf683838361101b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7390611d33565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e0f919061179a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e7391906114c9565b60405180910390a3610e868484846110b0565b50505050565b600081610ea357610e9c83611144565b9050610ec1565b610eac83611144565b905060008103610ec0576006549050610ec1565b5b92915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081806020019051810190610fa39190611d91565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160315611005576000610fec826000610e8c565b905060008103611003576110028260065461118c565b5b505b50565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156110ab57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156110ab576000611092846000610e8c565b9050600081036110a9576110a88460065461118c565b5b505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16031561113f57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16031561113f576000611127836000610e8c565b905081810361113d5761113c8360065461118c565b5b505b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290611e0a565b60405180910390fd5b6112076000838361101b565b8060026000828254611219919061179a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126e919061179a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d391906114c9565b60405180910390a36112e7600083836110b0565b5050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561132557808201518184015260208101905061130a565b83811115611334576000848401525b50505050565b6000601f19601f8301169050919050565b6000611356826112eb565b61136081856112f6565b9350611370818560208601611307565b6113798161133a565b840191505092915050565b6000602082019050818103600083015261139e818461134b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113db826113b0565b9050919050565b6113eb816113d0565b81146113f657600080fd5b50565b600081359050611408816113e2565b92915050565b6000819050919050565b6114218161140e565b811461142c57600080fd5b50565b60008135905061143e81611418565b92915050565b6000806040838503121561145b5761145a6113a6565b5b6000611469858286016113f9565b925050602061147a8582860161142f565b9150509250929050565b60008115159050919050565b61149981611484565b82525050565b60006020820190506114b46000830184611490565b92915050565b6114c38161140e565b82525050565b60006020820190506114de60008301846114ba565b92915050565b6000806000606084860312156114fd576114fc6113a6565b5b600061150b868287016113f9565b935050602061151c868287016113f9565b925050604061152d8682870161142f565b9150509250925092565b600060ff82169050919050565b61154d81611537565b82525050565b60006020820190506115686000830184611544565b92915050565b600060208284031215611584576115836113a6565b5b6000611592848285016113f9565b91505092915050565b6000602082840312156115b1576115b06113a6565b5b60006115bf8482850161142f565b91505092915050565b6115d1816113d0565b82525050565b60006020820190506115ec60008301846115c8565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611617576116166115f2565b5b8235905067ffffffffffffffff811115611634576116336115f7565b5b6020830191508360018202830111156116505761164f6115fc565b5b9250929050565b60008060008060608587031215611671576116706113a6565b5b600061167f878288016113f9565b94505060206116908782880161142f565b935050604085013567ffffffffffffffff8111156116b1576116b06113ab565b5b6116bd87828801611601565b925092505092959194509250565b600080604083850312156116e2576116e16113a6565b5b60006116f0858286016113f9565b9250506020611701858286016113f9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061175257607f821691505b6020821081036117655761176461170b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117a58261140e565b91506117b08361140e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117e5576117e461176b565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006118266020836112f6565b9150611831826117f0565b602082019050919050565b6000602082019050818103600083015261185581611819565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006118b86025836112f6565b91506118c38261185c565b604082019050919050565b600060208201905081810360008301526118e7816118ab565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b600061191a83856118ee565b93506119278385846118ff565b6119308361133a565b840190509392505050565b600060608201905061195060008301876115c8565b61195d60208301866114ba565b818103604083015261197081848661190e565b905095945050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006119d76026836112f6565b91506119e28261197b565b604082019050919050565b60006020820190508181036000830152611a06816119ca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611a696024836112f6565b9150611a7482611a0d565b604082019050919050565b60006020820190508181036000830152611a9881611a5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611afb6022836112f6565b9150611b0682611a9f565b604082019050919050565b60006020820190508181036000830152611b2a81611aee565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611b67601d836112f6565b9150611b7282611b31565b602082019050919050565b60006020820190508181036000830152611b9681611b5a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611bf96025836112f6565b9150611c0482611b9d565b604082019050919050565b60006020820190508181036000830152611c2881611bec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611c8b6023836112f6565b9150611c9682611c2f565b604082019050919050565b60006020820190508181036000830152611cba81611c7e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611d1d6026836112f6565b9150611d2882611cc1565b604082019050919050565b60006020820190508181036000830152611d4c81611d10565b9050919050565b6000611d5e826113b0565b9050919050565b611d6e81611d53565b8114611d7957600080fd5b50565b600081519050611d8b81611d65565b92915050565b600060208284031215611da757611da66113a6565b5b6000611db584828501611d7c565b91505092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611df4601f836112f6565b9150611dff82611dbe565b602082019050919050565b60006020820190508181036000830152611e2381611de7565b905091905056fea2646970667358221220758da4ff073d6a791627eef559a0c45723821811a234f6297136bb6f80b9dd6564736f6c634300080d003300000000000000000000000000000000000000000000000000000000000186a0

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

00000000000000000000000000000000000000000000000000000000000186a0

-----Decoded View---------------
Arg [0] : amount (uint256): 100000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000186a0


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.