Contract 0x5eD8BD53B0c3fa3dEaBd345430B1A3a6A4e8BD7C 1

Txn Hash
Method
Block
From
To
Value
0xdab6dd7a1e46459412eb6bdf0fbbdf8f85514ef10da3e3f87b6686e0e0d52c9eTransfer114606282022-09-28 19:05:3420 hrs 37 mins ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007746 1.5
0x2295bcf7e4b8bddeb41b1255273c86d62e24a5152108a87665df0e338ce7f5d3Transfer114565462022-09-28 1:55:521 day 13 hrs ago0x20a4ad0fb0c85921bf2b123ea1e1fcd45e156706 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007093 2.05351426
0x4517418b5b71095e3c2a995aa5fb87134cf3b3696fc808629f87182348db68a4Transfer114565422022-09-28 1:54:521 day 13 hrs ago0x20a4ad0fb0c85921bf2b123ea1e1fcd45e156706 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00008377 2.425
0x3e588b281618329b544e6c9107037232c6bc66c693d63dc5a50ddf0fed92cc03Transfer114565192022-09-28 1:48:581 day 13 hrs ago0x20a4ad0fb0c85921bf2b123ea1e1fcd45e156706 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005179 1.5
0x8da77e2bde9984747c1dedd5a3a46fa46e73479ae47c9a7b3cad15c28fc1b006Mint114537492022-09-27 14:12:082 days 1 hr ago0x6c146db4c9c1c74612fd5a85f382d5133bb4a2b9 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005127 1
0x2a206e83ea0071e4545082f6756bfda0af98b4a00b6944aa0f59430604caec4aMint114416332022-09-25 11:24:454 days 4 hrs ago0xd5742fafb58cabb89a355ce67c2b0c9dede6ddfb IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005127 1
0xdd2ea47caf1ac667834108e541a5505fa051b1f0dd64e83e7d8526767629c95dMint114290262022-09-23 6:31:586 days 9 hrs ago0x1563e7af6b4ef608ca7c370a1265e274d7cd5455 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005128 1.00000001
0x8e4270549c822ae504d763f492ede0c38e6c95b88b67abe82b0aba6acbf9c6e7Approve114175582022-09-21 6:22:138 days 9 hrs ago0x57b74591a8cbc1995d9e2e9092759b1d12fa62f3 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00006992 1.501
0x6052e351272301e284d29048ca93558bba45c2cdc81ba809a5308eecfeff6867Mint114175302022-09-21 6:15:098 days 9 hrs ago0x57b74591a8cbc1995d9e2e9092759b1d12fa62f3 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00012821 2.5
0xcd298f6bddf7d79533fed3df5ebc075b09f20242435abeb8c47486dc07759fdfTransfer114155392022-09-20 21:53:008 days 17 hrs ago0x0fae0fda10907456825b759d96f59863e6636fcb IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005179 1.5
0x722f3aad0f949b40e2bd3d38e28d7812c5beec69872b3a6509572dcdb812e881Mint114151692022-09-20 20:19:558 days 19 hrs ago0x08f4c582e60d9237ec06cba8732bfb241c1a99ce IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00008546 2.5
0x38115c31070ebfbc74348ce93732e630a4c2697af4dcf5bd49c0e9d189233d65Mint114151412022-09-20 20:12:518 days 19 hrs ago0x08f4c582e60d9237ec06cba8732bfb241c1a99ce IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00008528 2.5
0x85dc011eebbcea7c08b25e5b1b89792a6f53efdf329e9cf2637f494aa1f74e8cTransfer114149862022-09-20 19:33:408 days 20 hrs ago0x4d48e700cc52a25e85233857b1f40f51c779e2a2 IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.0000743 2.5
0xf80b0ea045aa326ce1f02db71466807513a29deee743a4efc98d5b3c5cb04000Transfer114149852022-09-20 19:33:258 days 20 hrs ago0x7304914a89a1436acd8b631cb7c2f29407b25cab IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.0000743 2.5
0x4f19630255e33a6a22032f9d433171a0a3d8199aaa0d18c8d77236dd9d97f6b6Transfer114149842022-09-20 19:33:108 days 20 hrs ago0x7c05bf4b9ffeca04852260fd540280cf7186ee4a IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.0000743 2.5
0xbab2a2269feb6c8b6a0b2529af309111db03b1278ffb583feb7aa8fc63b56c30Transfer114149842022-09-20 19:33:108 days 20 hrs ago0xe9833290f1d2cf198d6089dc230db6089924330b IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.0000743 2.5
0x2f3d13894c41e44e3c92f5ec7ce64a9ce1de2821278332996bef225561639dfcTransfer114149592022-09-20 19:26:558 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007741 1.5
0x1bd455f3b7cdffb1c64ecad6f717c92be7d416657f61e9be720f7e153e5c3534Transfer114149552022-09-20 19:25:558 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007743 1.5
0xe2c9f0b82528408253c7b3bfe93c986b09ae0663cdf916c41c87dfd3d3e677ffTransfer114149402022-09-20 19:22:088 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007743 1.5
0x376432153a197305baafb3758a5e024bf1f595ae61a38cddc878017259db332aTransfer114149352022-09-20 19:20:538 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007743 1.5
0x0ebc334808205025c57f2bfbf47423430b677d75c34a4dd99010d5a2d06aedfdTransfer114149332022-09-20 19:20:238 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007743 1.5
0xd216895ad14ebb61e8ee691a3db2265fc42a02a42b2764b522f9ab2cecc17933Transfer114149302022-09-20 19:19:388 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00007743 1.5
0x91c49bfd713258d36c2644df78f49ab753b45cff18eccb868b0044b105afeb42Transfer114149292022-09-20 19:19:238 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00012518 2.425
0x128692ed7968c991396863212a4dc5b855e2e896351bd0b3db1c8d130421d453Transfer114149172022-09-20 19:16:238 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005178 1.5
0x3712099c1ffe39a948c1558b83d9293da6db117cf2104feb3e867e7a3b8ebb1eTransfer114149162022-09-20 19:16:088 days 20 hrs ago0xf2ee1cff7c94d96af58011e2f38d1738fab55b6c IN  0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether0.00005178 1.5
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x87776b0e23a344a3bf07b55d9b08a20437dba13d8127e91eb825d837577735a0114588772022-09-28 11:43:211 day 4 hrs ago 0xc1f3af5dc05b0c51955804b2afc80ef8feed67b9 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x2545e73d65a332e8007346ad39819d019bf3a233872ccce91e715aa7cf5fa50b114585372022-09-28 10:17:511 day 5 hrs ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x2545e73d65a332e8007346ad39819d019bf3a233872ccce91e715aa7cf5fa50b114585372022-09-28 10:17:511 day 5 hrs ago 0xc6930e247d131ae6444a5ea9b7004bff3091fd40 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x2545e73d65a332e8007346ad39819d019bf3a233872ccce91e715aa7cf5fa50b114585372022-09-28 10:17:511 day 5 hrs ago 0xc6930e247d131ae6444a5ea9b7004bff3091fd40 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x2545e73d65a332e8007346ad39819d019bf3a233872ccce91e715aa7cf5fa50b114585372022-09-28 10:17:511 day 5 hrs ago 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x45731a9166d4e79172abdf06c5d49c967636c7aa8af5adc7bc65411b133fb0d6114585232022-09-28 10:14:141 day 5 hrs ago 0xc1f3af5dc05b0c51955804b2afc80ef8feed67b9 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x1464577fe5ff6cd999a90ad9a1a4f89c89bc6137aa427d29aa7a4ac761a85e6f114553022022-09-27 20:43:031 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x1464577fe5ff6cd999a90ad9a1a4f89c89bc6137aa427d29aa7a4ac761a85e6f114553022022-09-27 20:43:031 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x1464577fe5ff6cd999a90ad9a1a4f89c89bc6137aa427d29aa7a4ac761a85e6f114553022022-09-27 20:43:031 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x60a6ff5c57ea89dcfe3d759129d2a6b130c92eca4cdba6bdbd5ec4acc31e93fd114552832022-09-27 20:38:181 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x60a6ff5c57ea89dcfe3d759129d2a6b130c92eca4cdba6bdbd5ec4acc31e93fd114552832022-09-27 20:38:181 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x60a6ff5c57ea89dcfe3d759129d2a6b130c92eca4cdba6bdbd5ec4acc31e93fd114552832022-09-27 20:38:181 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x3a618542357d9107fad390d13f2cb8d2124073217baf512b8703f022a523b93e114552802022-09-27 20:37:331 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x3a618542357d9107fad390d13f2cb8d2124073217baf512b8703f022a523b93e114552802022-09-27 20:37:331 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x3a618542357d9107fad390d13f2cb8d2124073217baf512b8703f022a523b93e114552802022-09-27 20:37:331 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x0540c5148f3651b2f6aaba14bf33ba76078bc2c9f1e60c76a7ac3d936753cc87114552772022-09-27 20:36:481 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x0540c5148f3651b2f6aaba14bf33ba76078bc2c9f1e60c76a7ac3d936753cc87114552772022-09-27 20:36:481 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0x0540c5148f3651b2f6aaba14bf33ba76078bc2c9f1e60c76a7ac3d936753cc87114552772022-09-27 20:36:481 day 19 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xb2a97c9e38092004bf8db4da7fcad7963cf0db6875a87b63b40cfc5b288a65cf114537612022-09-27 14:15:082 days 1 hr ago 0xc7dd7d4730d95aae47f27c32ebb85b04fc78769e 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xd44880020fa4e46cf36fc60cd2257cc35bb208abf6f08ee2eea58bf3c818ed7c114530732022-09-27 11:21:572 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xd44880020fa4e46cf36fc60cd2257cc35bb208abf6f08ee2eea58bf3c818ed7c114530732022-09-27 11:21:572 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xd44880020fa4e46cf36fc60cd2257cc35bb208abf6f08ee2eea58bf3c818ed7c114530732022-09-27 11:21:572 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xad6d11a485446c902e2cb6e248cf403c75ec1ee563e4346bfdb9c1444759e430114530262022-09-27 11:10:072 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xad6d11a485446c902e2cb6e248cf403c75ec1ee563e4346bfdb9c1444759e430114530262022-09-27 11:10:072 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
0xad6d11a485446c902e2cb6e248cf403c75ec1ee563e4346bfdb9c1444759e430114530262022-09-27 11:10:072 days 4 hrs ago 0x57fd5b0ccc0ad528050a2d5e3b3935c08f058dca 0x5ed8bd53b0c3fa3deabd345430b1a3a6a4e8bd7c0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GodModeErc20

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: GodModeErc20.sol
// SPDX-License-Identifier: WTFPL
pragma solidity >=0.8.0;

import "./Erc20.sol";

/// @title GodModeErc20
/// @author Paul Razvan Berg
/// @notice Implementation that allows anyone to mint or burn tokens belonging to any address.
/// @dev Strictly for test purposes.
contract GodModeErc20 is Erc20 {
    /// EVENTS ///

    event Burn(address indexed holder, uint256 burnAmount);

    event Mint(address indexed beneficiary, uint256 mintAmount);

    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) Erc20(name_, symbol_, decimals_) {} // solhint-disable-line no-empty-blocks

    /// NON-CONSTANT FUNCTIONS ///

    /// @notice Destroys `burnAmount` tokens from `holder`, reducing the token supply.
    /// @param holder The account whose tokens to burn.
    /// @param burnAmount The amount of fyTokens to destroy.
    function burn(address holder, uint256 burnAmount) external {
        burnInternal(holder, burnAmount);
    }

    /// @notice Prints new tokens into existence and assigns them to `beneficiary`, increasing the
    /// total supply.
    /// @param beneficiary The account for which to mint the tokens.
    /// @param mintAmount The amount of fyTokens to print into existence.
    function mint(address beneficiary, uint256 mintAmount) external {
        mintInternal(beneficiary, mintAmount);
    }
}

File 1 of 4: Erc20.sol
// SPDX-License-Identifier: WTFPL
pragma solidity >=0.8.0;

import "./Erc20Interface.sol";

/// @title Erc20
/// @author Paul Razvan Berg
/// @notice Implementation of the {Erc20Interface} interface.
///
/// We have followed general OpenZeppelin guidelines: functions revert instead of returning
/// `false` on failure. This behavior is nonetheless conventional and does not conflict with
/// the 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 Erc 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.
///
///@dev Forked from OpenZeppelin
///https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/token/Erc20/Erc20.sol
contract Erc20 is Erc20Interface {
    /// @notice All three of these values are immutable: they can only be set once during construction.
    /// @param name_ Erc20 name of this token.
    /// @param symbol_ Erc20 symbol of this token.
    /// @param decimals_ Erc20 decimal precision of this token.
    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) {
        name = name_;
        symbol = symbol_;
        decimals = decimals_;
    }

    /// CONSTANT FUNCTIONS ///

    /// @notice 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 virtual override returns (uint256) {
        return allowances[owner][spender];
    }

    /// @notice Returns the amount of tokens owned by `account`.
    function balanceOf(address account) public view virtual override returns (uint256) {
        return balances[account];
    }

    /// NON-CONSTANT FUNCTIONS ///

    /// @notice Sets `amount` as the allowance of `spender` over the caller's tokens.
    ///
    /// @dev Emits an {Approval} event.
    ///
    /// 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
    ///
    /// Requirements:
    ///
    /// - `spender` cannot be the zero address.
    ///
    /// @return a boolean value indicating whether the operation succeeded.
    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        approveInternal(msg.sender, spender, amount);
        return true;
    }

    /// @notice Atomically decreases the allowance granted to `spender` by the caller.
    ///
    /// @dev Emits an {Approval} event indicating the updated allowance.
    ///
    /// This is an alternative to {approve} that can be used as a mitigation for problems described
    /// in {Erc20Interface-approve}.
    ///
    /// Requirements:
    ///
    /// - `spender` cannot be the zero address.
    /// - `spender` must have allowance for the caller of at least
    /// `subtractedValue`.
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        uint256 newAllowance = allowances[msg.sender][spender] - subtractedValue;
        approveInternal(msg.sender, spender, newAllowance);
        return true;
    }

    /// @notice Atomically increases the allowance granted to `spender` by the caller.
    ///
    /// @dev Emits an {Approval} event indicating the updated allowance.
    ///
    /// This is an alternative to {approve} that can be used as a mitigation for the problems
    /// described above.
    ///
    /// Requirements:
    ///
    /// - `spender` cannot be the zero address.
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        uint256 newAllowance = allowances[msg.sender][spender] + addedValue;
        approveInternal(msg.sender, spender, newAllowance);
        return true;
    }

    /// @notice Moves `amount` tokens from the caller's account to `recipient`.
    ///
    /// @dev Emits a {Transfer} event.
    ///
    /// Requirements:
    ///
    /// - `recipient` cannot be the zero address.
    /// - The caller must have a balance of at least `amount`.
    ///
    /// @return a boolean value indicating whether the operation succeeded.
    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        transferInternal(msg.sender, recipient, amount);
        return true;
    }

    /// @notice Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount`
    /// `is then deducted from the caller's allowance.
    ///
    /// @dev Emits a {Transfer} event and an {Approval} event indicating the updated allowance. This is
    /// not required by the Erc. See the note at the beginning of {Erc20}.
    ///
    /// Requirements:
    ///
    /// - `sender` and `recipient` cannot be the zero address.
    /// - `sender` must have a balance of at least `amount`.
    /// - The caller must have approed `sender` to spent at least `amount` tokens.
    ///
    /// @return a boolean value indicating whether the operation succeeded.
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external virtual override returns (bool) {
        transferInternal(sender, recipient, amount);

        uint256 currentAllowance = allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERR_ERC20_TRANSFER_FROM_INSUFFICIENT_ALLOWANCE");
        approveInternal(sender, msg.sender, currentAllowance);
        return true;
    }

    /// INTERNAL FUNCTIONS ///

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

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

    /// @notice Destroys `burnAmount` tokens from `holder`, reducing the token supply.
    ///
    /// @dev Emits a {Transfer} event.
    ///
    /// Requirements:
    ///
    /// - `holder` must have at least `amount` tokens.
    function burnInternal(address holder, uint256 burnAmount) internal {
        require(holder != address(0), "ERR_ERC20_BURN_ZERO_ADDRESS");

        uint256 accountBalance = balances[holder];
        require(accountBalance >= burnAmount, "ERR_ERC20_BURN_BALANCE_UNDERFLOW");

        // Burn the tokens.
        balances[holder] = accountBalance - burnAmount;

        // Reduce the total supply.
        totalSupply -= burnAmount;

        emit Transfer(holder, address(0), burnAmount);
    }

    /// @notice Prints new tokens into existence and assigns them to `beneficiary`, increasing the
    /// total supply.
    ///
    /// @dev Emits a {Transfer} event.
    ///
    /// Requirements:
    ///
    /// - The beneficiary's balance and the total supply cannot overflow.
    function mintInternal(address beneficiary, uint256 mintAmount) internal {
        require(beneficiary != address(0), "ERR_ERC20_MINT_ZERO_ADDRESS");

        /// Mint the new tokens.
        balances[beneficiary] += mintAmount;

        /// Increase the total supply.
        totalSupply += mintAmount;

        emit Transfer(address(0), beneficiary, mintAmount);
    }

    /// @notice Moves `amount` tokens from `sender` to `recipient`.
    ///
    /// @dev This is 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:
    ///
    /// - `sender` cannot be the zero address.
    /// - `recipient` cannot be the zero address.
    /// - `sender` must have a balance of at least `amount`.
    function transferInternal(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERR_ERC20_TRANSFER_FROM_ZERO_ADDRESS");
        require(recipient != address(0), "ERR_ERC20_TRANSFER_TO_ZERO_ADDRESS");

        uint256 senderBalance = balances[sender];
        require(senderBalance >= amount, "ERR_ERC20_TRANSFER_INSUFFICIENT_BALANCE");
        balances[sender] = senderBalance - amount;
        balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
}

File 2 of 4: Erc20Interface.sol
// SPDX-License-Identifier: WTFPL
pragma solidity >=0.8.0;

import "./Erc20Storage.sol";

/// @title Erc20Interface
/// @author Paul Razvan Berg
/// @notice Contract interface adhering to the Erc20 standard.
/// @dev Forked from OpenZeppelin
/// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/token/ERC20/IERC20.sol
abstract contract Erc20Interface is Erc20Storage {
    /// CONSTANT FUNCTIONS ///

    function allowance(address owner, address spender) external view virtual returns (uint256);

    function balanceOf(address account) external view virtual returns (uint256);

    /// NON-CONSTANT FUNCTIONS ///

    function approve(address spender, uint256 amount) external virtual returns (bool);

    function transfer(address recipient, uint256 amount) external virtual returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external virtual returns (bool);

    /// EVENTS ///

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    event Transfer(address indexed from, address indexed to, uint256 amount);
}

File 3 of 4: Erc20Storage.sol
// SPDX-License-Identifier: WTFPL
pragma solidity >=0.8.0;

/// @title Erc20Storage
/// @author Paul Razvan Berg
/// @notice The storage interface of an Erc20 contract.
abstract contract Erc20Storage {
    /// @notice Returns the number of decimals used to get its user representation.
    uint8 public decimals;

    /// @notice Returns the name of the token.
    string public name;

    /// @notice Returns the symbol of the token, usually a shorter version of the name.
    string public symbol;

    /// @notice Returns the amount of tokens in existence.
    uint256 public totalSupply;

    mapping(address => mapping(address => uint256)) internal allowances;

    mapping(address => uint256) internal balances;
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"Mint","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"burnAmount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162000e1838038062000e188339810160408190526200003491620001df565b82828282600190805190602001906200004f92919062000086565b5081516200006590600290602085019062000086565b506000805460ff191660ff9290921691909117905550620002b39350505050565b828054620000949062000260565b90600052602060002090601f016020900481019282620000b8576000855562000103565b82601f10620000d357805160ff191683800117855562000103565b8280016001018555821562000103579182015b8281111562000103578251825591602001919060010190620000e6565b506200011192915062000115565b5090565b5b8082111562000111576000815560010162000116565b600082601f8301126200013d578081fd5b81516001600160401b03808211156200015a576200015a6200029d565b604051601f8301601f19908116603f011681019082821181831017156200018557620001856200029d565b81604052838152602092508683858801011115620001a1578485fd5b8491505b83821015620001c45785820183015181830184015290820190620001a5565b83821115620001d557848385830101525b9695505050505050565b600080600060608486031215620001f4578283fd5b83516001600160401b03808211156200020b578485fd5b62000219878388016200012c565b945060208601519150808211156200022f578384fd5b506200023e868287016200012c565b925050604084015160ff8116811462000255578182fd5b809150509250925092565b600181811c908216806200027557607f821691505b602082108114156200029757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610b5580620002c36000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806340c10f191161008c5780639dc29fac116100665780639dc29fac146101b1578063a457c2d7146101c4578063a9059cbb146101d7578063dd62ed3e146101ea576100df565b806340c10f191461018157806370a082311461019657806395d89b41146101a9576100df565b806323b872dd116100bd57806323b872dd1461013c578063313ce5671461014f578063395093511461016e576100df565b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610223565b6040516100f99190610a4c565b60405180910390f35b610115610110366004610a23565b6102b1565b60405190151581526020016100f9565b61012e60035481565b6040519081526020016100f9565b61011561014a3660046109e8565b6102c7565b60005461015c9060ff1681565b60405160ff90911681526020016100f9565b61011561017c366004610a23565b610389565b61019461018f366004610a23565b6103d1565b005b61012e6101a4366004610995565b6103df565b6100ec6103fe565b6101946101bf366004610a23565b61040b565b6101156101d2366004610a23565b610415565b6101156101e5366004610a23565b610446565b61012e6101f83660046109b6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6001805461023090610ace565b80601f016020809104026020016040519081016040528092919081815260200182805461025c90610ace565b80156102a95780601f1061027e576101008083540402835291602001916102a9565b820191906000526020600020905b81548152906001019060200180831161028c57829003601f168201915b505050505081565b60006102be338484610453565b50600192915050565b60006102d4848484610577565b6001600160a01b0384166000908152600460209081526040808320338452909152902054828110156103735760405162461bcd60e51b815260206004820152602e60248201527f4552525f45524332305f5452414e534645525f46524f4d5f494e53554646494360448201527f49454e545f414c4c4f57414e434500000000000000000000000000000000000060648201526084015b60405180910390fd5b61037e853383610453565b506001949350505050565b3360009081526004602090815260408083206001600160a01b038616845290915281205481906103ba908490610a9f565b90506103c7338583610453565b5060019392505050565b6103db8282610763565b5050565b6001600160a01b0381166000908152600560205260409020545b919050565b6002805461023090610ace565b6103db8282610844565b3360009081526004602090815260408083206001600160a01b038616845290915281205481906103ba908490610ab7565b60006102be338484610577565b6001600160a01b0383166104b55760405162461bcd60e51b815260206004820152602360248201527f4552525f45524332305f415050524f56455f46524f4d5f5a45524f5f4144445260448201526245535360e81b606482015260840161036a565b6001600160a01b0382166105155760405162461bcd60e51b815260206004820152602160248201527f4552525f45524332305f415050524f56455f544f5f5a45524f5f4144445245536044820152605360f81b606482015260840161036a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166105d95760405162461bcd60e51b8152602060048201526024808201527f4552525f45524332305f5452414e534645525f46524f4d5f5a45524f5f4144446044820152635245535360e01b606482015260840161036a565b6001600160a01b03821661063a5760405162461bcd60e51b815260206004820152602260248201527f4552525f45524332305f5452414e534645525f544f5f5a45524f5f4144445245604482015261535360f01b606482015260840161036a565b6001600160a01b038316600090815260056020526040902054818110156106c95760405162461bcd60e51b815260206004820152602760248201527f4552525f45524332305f5452414e534645525f494e53554646494349454e545f60448201527f42414c414e434500000000000000000000000000000000000000000000000000606482015260840161036a565b6106d38282610ab7565b6001600160a01b038086166000908152600560205260408082209390935590851681529081208054849290610709908490610a9f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075591815260200190565b60405180910390a350505050565b6001600160a01b0382166107b95760405162461bcd60e51b815260206004820152601b60248201527f4552525f45524332305f4d494e545f5a45524f5f414444524553530000000000604482015260640161036a565b6001600160a01b038216600090815260056020526040812080548392906107e1908490610a9f565b9250508190555080600360008282546107fa9190610a9f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03821661089a5760405162461bcd60e51b815260206004820152601b60248201527f4552525f45524332305f4255524e5f5a45524f5f414444524553530000000000604482015260640161036a565b6001600160a01b038216600090815260056020526040902054818110156109035760405162461bcd60e51b815260206004820181905260248201527f4552525f45524332305f4255524e5f42414c414e43455f554e444552464c4f57604482015260640161036a565b61090d8282610ab7565b6001600160a01b0384166000908152600560205260408120919091556003805484929061093b908490610ab7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161056a565b80356001600160a01b03811681146103f957600080fd5b6000602082840312156109a6578081fd5b6109af8261097e565b9392505050565b600080604083850312156109c8578081fd5b6109d18361097e565b91506109df6020840161097e565b90509250929050565b6000806000606084860312156109fc578081fd5b610a058461097e565b9250610a136020850161097e565b9150604084013590509250925092565b60008060408385031215610a35578182fd5b610a3e8361097e565b946020939093013593505050565b6000602080835283518082850152825b81811015610a7857858101830151858201604001528201610a5c565b81811115610a895783604083870101525b50601f01601f1916929092016040019392505050565b60008219821115610ab257610ab2610b09565b500190565b600082821015610ac957610ac9610b09565b500390565b600181811c90821680610ae257607f821691505b60208210811415610b0357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220bf627a40b469e76bf42f394d7ef016bb5a523d046c3eda9be57787d4c6dddb2e64736f6c63430008030033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000e44616920537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034441490000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000e44616920537461626c65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034441490000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Dai Stablecoin
Arg [1] : symbol_ (string): DAI
Arg [2] : decimals_ (uint8): 18

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [4] : 44616920537461626c65636f696e000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4441490000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

268:1106:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:18:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2943:173:0;;;;;;:::i;:::-;;:::i;:::-;;;1468:14:4;;1461:22;1443:41;;1431:2;1416:18;2943:173:0;1398:92:4;564:26:2;;;;;;;;;5759:25:4;;;5747:2;5732:18;564:26:2;5714:76:4;5765:451:0;;;;;;:::i;:::-;;:::i;290:21:2:-;;;;;;;;;;;;5967:4:4;5955:17;;;5937:36;;5925:2;5910:18;290:21:2;5892:87:4;4273:261:0;;;;;;:::i;:::-;;:::i;1254:118:3:-;;;;;;:::i;:::-;;:::i;:::-;;2056:124:0;;;;;;:::i;:::-;;:::i;478:20:2:-;;;:::i;876:108:3:-;;;;;;:::i;:::-;;:::i;3615:271:0:-;;;;;;:::i;:::-;;:::i;4902:179::-;;;;;;:::i;:::-;;:::i;1835:150::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1952:17:0;;;1926:7;1952:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1835:150;365:18:2;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2943:173:0:-;3028:4;3044:44;3060:10;3072:7;3081:6;3044:15;:44::i;:::-;-1:-1:-1;3105:4:0;2943:173;;;;:::o;5765:451::-;5903:4;5919:43;5936:6;5944:9;5955:6;5919:16;:43::i;:::-;-1:-1:-1;;;;;6000:18:0;;5973:24;6000:18;;;:10;:18;;;;;;;;6019:10;6000:30;;;;;;;;6048:26;;;;6040:85;;;;-1:-1:-1;;;6040:85:0;;3520:2:4;6040:85:0;;;3502:21:4;3559:2;3539:18;;;3532:30;3598:34;3578:18;;;3571:62;3669:16;3649:18;;;3642:44;3703:19;;6040:85:0;;;;;;;;;6135:53;6151:6;6159:10;6171:16;6135:15;:53::i;:::-;-1:-1:-1;6205:4:0;;5765:451;-1:-1:-1;;;;5765:451:0:o;4273:261::-;4413:10;4363:4;4402:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4402:31:0;;;;;;;;;;4363:4;;4402:44;;4436:10;;4402:44;:::i;:::-;4379:67;;4456:50;4472:10;4484:7;4493:12;4456:15;:50::i;:::-;-1:-1:-1;4523:4:0;;4273:261;-1:-1:-1;;;4273:261:0:o;1254:118:3:-;1328:37;1341:11;1354:10;1328:12;:37::i;:::-;1254:118;;:::o;2056:124:0:-;-1:-1:-1;;;;;2156:17:0;;2130:7;2156:17;;;:8;:17;;;;;;2056:124;;;;:::o;478:20:2:-;;;;;;;:::i;876:108:3:-;945:32;958:6;966:10;945:12;:32::i;3615:271:0:-;3760:10;3710:4;3749:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3749:31:0;;;;;;;;;;3710:4;;3749:49;;3783:15;;3749:49;:::i;4902:179::-;4990:4;5006:47;5023:10;5035:9;5046:6;5006:16;:47::i;6676:374::-;-1:-1:-1;;;;;6814:19:0;;6806:67;;;;-1:-1:-1;;;6806:67:0;;5411:2:4;6806:67:0;;;5393:21:4;5450:2;5430:18;;;5423:30;5489:34;5469:18;;;5462:62;-1:-1:-1;;;5540:18:4;;;5533:33;5583:19;;6806:67:0;5383:225:4;6806:67:0;-1:-1:-1;;;;;6891:21:0;;6883:67;;;;-1:-1:-1;;;6883:67:0;;2713:2:4;6883:67:0;;;2695:21:4;2752:2;2732:18;;;2725:30;2791:34;2771:18;;;2764:62;-1:-1:-1;;;2842:18:4;;;2835:31;2883:19;;6883:67:0;2685:223:4;6883:67:0;-1:-1:-1;;;;;6961:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;:35;;;7011:32;;5759:25:4;;;7011:32:0;;5732:18:4;7011:32:0;;;;;;;;6676:374;;;:::o;8908:567::-;-1:-1:-1;;;;;9050:20:0;;9042:69;;;;-1:-1:-1;;;9042:69:0;;3115:2:4;9042:69:0;;;3097:21:4;3154:2;3134:18;;;3127:30;3193:34;3173:18;;;3166:62;-1:-1:-1;;;3244:18:4;;;3237:34;3288:19;;9042:69:0;3087:226:4;9042:69:0;-1:-1:-1;;;;;9129:23:0;;9121:70;;;;-1:-1:-1;;;9121:70:0;;5008:2:4;9121:70:0;;;4990:21:4;5047:2;5027:18;;;5020:30;5086:34;5066:18;;;5059:62;-1:-1:-1;;;5137:18:4;;;5130:32;5179:19;;9121:70:0;4980:224:4;9121:70:0;-1:-1:-1;;;;;9226:16:0;;9202:21;9226:16;;;:8;:16;;;;;;9260:23;;;;9252:75;;;;-1:-1:-1;;;9252:75:0;;2305:2:4;9252:75:0;;;2287:21:4;2344:2;2324:18;;;2317:30;2383:34;2363:18;;;2356:62;2454:9;2434:18;;;2427:37;2481:19;;9252:75:0;2277:229:4;9252:75:0;9356:22;9372:6;9356:13;:22;:::i;:::-;-1:-1:-1;;;;;9337:16:0;;;;;;;:8;:16;;;;;;:41;;;;9388:19;;;;;;;;:29;;9411:6;;9337:16;9388:29;;9411:6;;9388:29;:::i;:::-;;;;;;;;9450:9;-1:-1:-1;;;;;9433:35:0;9442:6;-1:-1:-1;;;;;9433:35:0;;9461:6;9433:35;;;;5759:25:4;;5747:2;5732:18;;5714:76;9433:35:0;;;;;;;;8908:567;;;;:::o;8061:369::-;-1:-1:-1;;;;;8151:25:0;;8143:65;;;;-1:-1:-1;;;8143:65:0;;3935:2:4;8143:65:0;;;3917:21:4;3974:2;3954:18;;;3947:30;4013:29;3993:18;;;3986:57;4060:18;;8143:65:0;3907:177:4;8143:65:0;-1:-1:-1;;;;;8252:21:0;;;;;;:8;:21;;;;;:35;;8277:10;;8252:21;:35;;8277:10;;8252:35;:::i;:::-;;;;;;;;8352:10;8337:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;8378:45:0;;5759:25:4;;;-1:-1:-1;;;;;8378:45:0;;;8395:1;;8378:45;;5747:2:4;5732:18;8378:45:0;;;;;;;8061:369;;:::o;7283:492::-;-1:-1:-1;;;;;7368:20:0;;7360:60;;;;-1:-1:-1;;;7360:60:0;;4652:2:4;7360:60:0;;;4634:21:4;4691:2;4671:18;;;4664:30;4730:29;4710:18;;;4703:57;4777:18;;7360:60:0;4624:177:4;7360:60:0;-1:-1:-1;;;;;7456:16:0;;7431:22;7456:16;;;:8;:16;;;;;;7490:28;;;;7482:73;;;;-1:-1:-1;;;7482:73:0;;4291:2:4;7482:73:0;;;4273:21:4;;;4310:18;;;4303:30;4369:34;4349:18;;;4342:62;4421:18;;7482:73:0;4263:182:4;7482:73:0;7613:27;7630:10;7613:14;:27;:::i;:::-;-1:-1:-1;;;;;7594:16:0;;;;;;:8;:16;;;;;:46;;;;7687:11;:25;;7702:10;;7594:16;7687:25;;7702:10;;7687:25;:::i;:::-;;;;-1:-1:-1;;7728:40:0;;5759:25:4;;;7753:1:0;;-1:-1:-1;;;;;7728:40:0;;;;;5747:2:4;5732:18;7728:40:0;5714:76:4;14:196;82:20;;-1:-1:-1;;;;;131:54:4;;121:65;;111:2;;200:1;197;190:12;215:196;;327:2;315:9;306:7;302:23;298:32;295:2;;;348:6;340;333:22;295:2;376:29;395:9;376:29;:::i;:::-;366:39;285:126;-1:-1:-1;;;285:126:4:o;416:270::-;;;545:2;533:9;524:7;520:23;516:32;513:2;;;566:6;558;551:22;513:2;594:29;613:9;594:29;:::i;:::-;584:39;;642:38;676:2;665:9;661:18;642:38;:::i;:::-;632:48;;503:183;;;;;:::o;691:338::-;;;;837:2;825:9;816:7;812:23;808:32;805:2;;;858:6;850;843:22;805:2;886:29;905:9;886:29;:::i;:::-;876:39;;934:38;968:2;957:9;953:18;934:38;:::i;:::-;924:48;;1019:2;1008:9;1004:18;991:32;981:42;;795:234;;;;;:::o;1034:264::-;;;1163:2;1151:9;1142:7;1138:23;1134:32;1131:2;;;1184:6;1176;1169:22;1131:2;1212:29;1231:9;1212:29;:::i;:::-;1202:39;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;1121:177:4:o;1495:603::-;;1636:2;1665;1654:9;1647:21;1697:6;1691:13;1740:6;1735:2;1724:9;1720:18;1713:34;1765:4;1778:140;1792:6;1789:1;1786:13;1778:140;;;1887:14;;;1883:23;;1877:30;1853:17;;;1872:2;1849:26;1842:66;1807:10;;1778:140;;;1936:6;1933:1;1930:13;1927:2;;;2006:4;2001:2;1992:6;1981:9;1977:22;1973:31;1966:45;1927:2;-1:-1:-1;2082:2:4;2061:15;-1:-1:-1;;2057:29:4;2042:45;;;;2089:2;2038:54;;1616:482;-1:-1:-1;;;1616:482:4:o;5984:128::-;;6055:1;6051:6;6048:1;6045:13;6042:2;;;6061:18;;:::i;:::-;-1:-1:-1;6097:9:4;;6032:80::o;6117:125::-;;6185:1;6182;6179:8;6176:2;;;6190:18;;:::i;:::-;-1:-1:-1;6227:9:4;;6166:76::o;6247:380::-;6326:1;6322:12;;;;6369;;;6390:2;;6444:4;6436:6;6432:17;6422:27;;6390:2;6497;6489:6;6486:14;6466:18;6463:38;6460:2;;;6543:10;6538:3;6534:20;6531:1;6524:31;6578:4;6575:1;6568:15;6606:4;6603:1;6596:15;6460:2;;6302:325;;;:::o;6632:127::-;6693:10;6688:3;6684:20;6681:1;6674:31;6724:4;6721:1;6714:15;6748:4;6745:1;6738:15

Swarm Source

ipfs://bf627a40b469e76bf42f394d7ef016bb5a523d046c3eda9be57787d4c6dddb2e
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.