Contract 0xDA0C33402Fc1e10d18c532F0Ed9c1A6c5C9e386C

Contract Overview

Balance:
0 ETH

Token:
Txn Hash Method
Block
From
To
Value
0x703fb897d9e27ec60d8e5fda4c8c818dfecee9435c19e3e3f31dfa0c868fb9bbApprove120827172023-07-17 11:31:4270 days 7 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000406568611.00000005
0xdd531335ae136278f03b78fb175ffe78b04e369cf1fdaa026b58d000ca873137Approve120792332023-07-17 9:35:3470 days 9 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000680671580.0300001
0x35d344d8a8506e80fef767513fd8f9795d8bb0523e56eb082e794ad7715a93c3Approve120791052023-07-17 9:31:1870 days 9 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000580369930.03000005
0xb12da445adcd272a3465d2cf2c2275f9f34d8afc6ee651af3aac1c902f82e2e5Approve120788132023-07-17 9:21:3470 days 9 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000488830050.03000005
0xef52c29ef788baa142ec46d1636e585bdbd97c706c8ab0f6ee6b894832fb4d1eApprove120788042023-07-17 9:21:1670 days 9 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000472099830.03000005
0x70d7c10b8f3cf79c96afa200c5bc08d535114bdce0294ba50473d9d5d79c1ad5Approve119593692023-07-14 15:00:0673 days 3 hrs ago0x8e2f228c0322f872efaf253ef25d7f5a78d5851d IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000802304621.50000005
0x91714ae2c516dee7732b5083526cacecc3479c089433ff20ca222d311077fe9fApprove119593182023-07-14 14:58:2473 days 3 hrs ago0x8e2f228c0322f872efaf253ef25d7f5a78d5851d IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000833629331.50000005
0x2abc430e2d7077a4740ea897b9071a51856a274585df09ff9b09424613dd51d2Transfer119534982023-07-14 11:44:2473 days 7 hrs ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0001847181781.50000005
0x87fa8fb985e8d301e56fae7c012cb60f2269cdbc3da3be43e2f6c6e18b6d55fcApprove118787382023-07-12 18:12:2475 days 42 mins ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000032299340.00100005
0x3301eb1edaaea9b3f6975d9e607b15aca33f34b9e1dea4eaad421364f3e49e96Approve117986722023-07-10 21:43:3276 days 21 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000405272921.500000051
0x82b983986f877d57e49af60418f312b9f387c6ca52c13cb00a8d97fbd0d291e0Approve117986702023-07-10 21:43:2876 days 21 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000703772921.50000005
0xc3a90a12e4d4d8db400a17c1fc765bbf1dbc5e8b9a67a6ec958fd393c79c58fcTransfer117986312023-07-10 21:42:1076 days 21 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000528906841.50000005
0x696c0461095c846fae114c67d1b63a21eefbb0d175ac286c73d0b7959fd52593Transfer117981242023-07-10 21:25:1676 days 21 hrs ago0x043e7c673f2bd9c62e69921395bfd1f97acc0a78 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000576176491.100000254
0x1462d669c00219aa278d6d01c1f46ea6fe52c5acb9090b82fb7c9b4642932f7fApprove116936402023-07-08 11:22:2879 days 7 hrs ago0x1f29a435881cc0603ce6d19414a46bf692ba626a IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000703740021.50000005
0x3c6b8754d30a4aa60c5c20b64d83f15b9cbf79c08ef0fd701c503df36395ece1Approve116929362023-07-08 10:59:0079 days 7 hrs ago0x1f29a435881cc0603ce6d19414a46bf692ba626a IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000405240011.50000005
0xcfaeb1997f026a241e1e081819aad2897f9777523a4a0c7260513736f353f5c4Approve116929232023-07-08 10:58:3479 days 7 hrs ago0x1f29a435881cc0603ce6d19414a46bf692ba626a IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000703740021.50000005
0xedb0fb03ed57bb934ee79297e2643c71e7c7002e383132cd7854c0078a8a54efApprove116923202023-07-08 10:38:2879 days 8 hrs ago0x1f29a435881cc0603ce6d19414a46bf692ba626a IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000703560021.50000005
0xd0382038556705814eb641040a1a60cc4c5a6a637631c3b60fb6a1b258048ca4Approve116613722023-07-07 17:26:5280 days 1 hr ago0xc2ecd777d06ffdf8b3179286beabf52b67e9d991 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000000469180.00100005
0x30b936cdeee36498681a6f0b2688ff9c8b9eca1a88ba2d8425062178c9362a0bApprove116604312023-07-07 16:55:3080 days 1 hr ago0x043e7c673f2bd9c62e69921395bfd1f97acc0a78 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000596800032.0000001
0x25ff0dfab55857fa521631cf8e648990c1727f539c6967a336a28e9d57647ab4Approve116595922023-07-07 16:27:3280 days 2 hrs ago0x043e7c673f2bd9c62e69921395bfd1f97acc0a78 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000938080042.0000001
0x8c22260bc3bb13f05d7597a68d1882ad617cbba082b048b217b6aa3f315312c9Transfer116547212023-07-07 13:45:1080 days 5 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000785550021.50000005
0x667dba7c5059b9b30a9c7839234347ce138101fc5b96f6ec184a376022fa43deApprove116146162023-07-06 15:28:2081 days 3 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000896156521.50000005
0xcfb0adc57c060e9968466f8174ba10de9fc0ec0412d0cf11f8dc01ac95f8047cApprove116145872023-07-06 15:27:2281 days 3 hrs ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0001160209871.50000005
0x2fffde82bd7186f2b7181f5c0c9b2c444ce59528965d8228a733ccb385403c50Transfer116135332023-07-06 14:52:1481 days 4 hrs ago0x043e7c673f2bd9c62e69921395bfd1f97acc0a78 IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0001478266671.5000004
0x7474cd9be7fdfec3cb21141f182b140051075f3d2f410ca02cef94e801cd8dbfApprove115749712023-07-05 17:26:5082 days 1 hr ago0xf18742cf293ebf6c397f1be2eefb58e22ee9354e IN  0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH0.0000707032191.50000005
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb81bb226af2ffe15ef0cf1f83a1ca84173bdb35248771e65dca745534002b2c4120914982023-07-17 16:24:2470 days 2 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x117b88d2cd1fa448ca7b8b062cf15e779821291941f57e9958f67e2c8eb545dd120914552023-07-17 16:22:5870 days 2 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xbed79439bb089161888d84341f6d09fff7141bb0e7516d015fd0dcc86df79223120913892023-07-17 16:20:4670 days 2 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xfe7cbb80c5b249f03bfcc3ab384ea36e7893c3db8563c539bd2e6602ed2a9a16120804832023-07-17 10:17:1470 days 8 hrs ago 0x671423b2e8a99882fd14bbd07e90ae8b64a0e63a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xfe7cbb80c5b249f03bfcc3ab384ea36e7893c3db8563c539bd2e6602ed2a9a16120804832023-07-17 10:17:1470 days 8 hrs ago 0x671423b2e8a99882fd14bbd07e90ae8b64a0e63a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xfe7cbb80c5b249f03bfcc3ab384ea36e7893c3db8563c539bd2e6602ed2a9a16120804832023-07-17 10:17:1470 days 8 hrs ago 0x671423b2e8a99882fd14bbd07e90ae8b64a0e63a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xfe7cbb80c5b249f03bfcc3ab384ea36e7893c3db8563c539bd2e6602ed2a9a16120804832023-07-17 10:17:1470 days 8 hrs ago 0x671423b2e8a99882fd14bbd07e90ae8b64a0e63a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xd61a291bf2bedb350171e98fc96e306e148aeae2643d1abbec11e5ae82f25544120804202023-07-17 10:15:0870 days 8 hrs ago 0xafd87d1a62260bd5714c55a1bb4057bdc8dfa413 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xd61a291bf2bedb350171e98fc96e306e148aeae2643d1abbec11e5ae82f25544120804202023-07-17 10:15:0870 days 8 hrs ago 0xafd87d1a62260bd5714c55a1bb4057bdc8dfa413 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xfc99cbf856f3ac252014a30740b84a7fcfea84c8e9bb4e1111fb3adcf17783f6120803932023-07-17 10:14:1470 days 8 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x85ed5c55b44c898a20623fbb526f1171a92e8ab1ecd09efcc9d4cfd7655fdf11120803872023-07-17 10:14:0270 days 8 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x31f3cbec01ccd605f5132848cc2fb2f96afd2f9dd1d99dc65a54958ace1d9b7a120792442023-07-17 9:35:5670 days 9 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x8c6d0358cbd25a98a7c263cffd22288f36d0f7e27a514b6753afc2507a599bf8120789502023-07-17 9:26:0870 days 9 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x179978a024ff8e5cd4c07fed12c3f32afa281968909263d33caaa5e5873d78b0120787732023-07-17 9:20:1470 days 9 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x6b752da948a7f5e5b940a70c35a66b755803634fbcabc2bc9a5ef7a16a37f1a5120787022023-07-17 9:17:5270 days 9 hrs ago 0xf211f298c6985ff4cf6f9488e065292b818163f8 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x6b752da948a7f5e5b940a70c35a66b755803634fbcabc2bc9a5ef7a16a37f1a5120787022023-07-17 9:17:5270 days 9 hrs ago 0xf211f298c6985ff4cf6f9488e065292b818163f8 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xc844481e67218c02c3fef97b8cdedfa52f0345463b76c9b9bb36b844eddf98a9120786962023-07-17 9:17:4070 days 9 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xb33819d0ef0ab9bd2b61976d08a1a40bdcce7925dd7559dae122dcc50a906ed6119593852023-07-14 15:00:3873 days 3 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x01fcea2aaacd2b0391e38773d64ef0be12da6be4bb9b11618d7161ceb4606df4119593372023-07-14 14:59:0273 days 3 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x7c26044204fc1a19fc25c1832a10e8dff0158d8b45aac8522012452e7490cafc119590802023-07-14 14:50:2873 days 4 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xdfe7dff3b13f8fb42abdea8b3362fec1ed26e2c65d72ea1ea768970264f656a2119582012023-07-14 14:21:1073 days 4 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xd9da8b961944811651b2db0be58d406c077775773d4e416b7996a9916a964379119581922023-07-14 14:20:5273 days 4 hrs ago 0xf211f298c6985ff4cf6f9488e065292b818163f8 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xd9da8b961944811651b2db0be58d406c077775773d4e416b7996a9916a964379119581922023-07-14 14:20:5273 days 4 hrs ago 0x3e5371d909bf1996c95e9d179b0bc91c26fb1279 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0xd52c1f416a238c05a3fb6119b08e4fd793e04c45bf40e6c85f6a0551c9bc9664119578522023-07-14 14:09:3273 days 4 hrs ago 0x1653a3a3c4ccee0538685f1600a30df5e3ee830a 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
0x4a45542077943d8afdc512afd15200aca64029ef2772768835938215bb913c53119578422023-07-14 14:09:1273 days 4 hrs ago 0xf211f298c6985ff4cf6f9488e065292b818163f8 0xda0c33402fc1e10d18c532f0ed9c1a6c5c9e386c0 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed ByteCode of the Source Code for Contract 0x0775e75DfFaC48ac3b5421b0687eA5825CB0999c
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Kwenta

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 16 : Kwenta.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./utils/ERC20.sol";
import "./utils/Owned.sol";
import "./interfaces/ISupplySchedule.sol";
import "./interfaces/IKwenta.sol";

contract Kwenta is ERC20, Owned, IKwenta {
    /// @notice defines inflationary supply schedule,
    /// according to which the KWENTA inflationary supply is released
    ISupplySchedule public supplySchedule;

    modifier onlySupplySchedule() {
        require(
            msg.sender == address(supplySchedule),
            "Kwenta: Only SupplySchedule can perform this action"
        );
        _;
    }

    constructor(
        string memory name,
        string memory symbol,
        uint256 _initialSupply,
        address _owner,
        address _initialHolder
    ) ERC20(name, symbol) Owned(_owner) {
        _mint(_initialHolder, _initialSupply);
    }

    // Mints inflationary supply
    function mint(address account, uint256 amount)
        external
        override
        onlySupplySchedule
    {
        _mint(account, amount);
    }

    function burn(uint256 amount) external override {
        _burn(msg.sender, amount);
    }

    function setSupplySchedule(address _supplySchedule)
        external
        override
        onlyOwner
    {
        require(_supplySchedule != address(0), "Kwenta: Invalid Address");
        supplySchedule = ISupplySchedule(_supplySchedule);
    }
}

File 2 of 16 : ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../interfaces/IERC20.sol";
import "../interfaces/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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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 Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor(address _owner) {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}

File 4 of 16 : ISupplySchedule.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.24;

interface ISupplySchedule {
    // Views
    function mintableSupply() external view returns (uint);

    function isMintable() external view returns (bool);

    // Mutative functions

    function mint() external;

    function setTreasuryDiversion(uint _treasuryDiversion) external;

    function setTradingRewardsDiversion(uint _tradingRewardsDiversion) external;
    
    function setStakingRewards(address _stakingRewards) external;

    function setTradingRewards(address _tradingRewards) external;
}

File 5 of 16 : IKwenta.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";

interface IKwenta is IERC20 {

    function mint(address account, uint amount) external;

    function burn(uint amount) external;

    function setSupplySchedule(address _supplySchedule) external;

}

File 6 of 16 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0 <0.9.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

File 7 of 16 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT

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 8 of 16 : Context.sol
// SPDX-License-Identifier: MIT

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 9 of 16 : Kwenta.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../contracts/Kwenta.sol";

contract $Kwenta is Kwenta {
    constructor(string memory name, string memory symbol, uint256 _initialSupply, address _owner, address _initialHolder) Kwenta(name, symbol, _initialSupply, _owner, _initialHolder) {}

    function $_transfer(address sender,address recipient,uint256 amount) external {
        return super._transfer(sender,recipient,amount);
    }

    function $_mint(address account,uint256 amount) external {
        return super._mint(account,amount);
    }

    function $_burn(address account,uint256 amount) external {
        return super._burn(account,amount);
    }

    function $_approve(address owner,address spender,uint256 amount) external {
        return super._approve(owner,spender,amount);
    }

    function $_beforeTokenTransfer(address from,address to,uint256 amount) external {
        return super._beforeTokenTransfer(from,to,amount);
    }

    function $_afterTokenTransfer(address from,address to,uint256 amount) external {
        return super._afterTokenTransfer(from,to,amount);
    }

    function $_msgSender() external view returns (address) {
        return super._msgSender();
    }

    function $_msgData() external view returns (bytes memory) {
        return super._msgData();
    }
}

File 10 of 16 : IERC20.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/interfaces/IERC20.sol";

abstract contract $IERC20 is IERC20 {
    constructor() {}
}

File 11 of 16 : IERC20Metadata.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/interfaces/IERC20Metadata.sol";

abstract contract $IERC20Metadata is IERC20Metadata {
    constructor() {}
}

File 12 of 16 : IKwenta.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/interfaces/IKwenta.sol";

abstract contract $IKwenta is IKwenta {
    constructor() {}
}

File 13 of 16 : ISupplySchedule.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/interfaces/ISupplySchedule.sol";

abstract contract $ISupplySchedule is ISupplySchedule {
    constructor() {}
}

File 14 of 16 : Context.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

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

contract $Context is Context {
    constructor() {}

    function $_msgSender() external view returns (address) {
        return super._msgSender();
    }

    function $_msgData() external view returns (bytes memory) {
        return super._msgData();
    }
}

File 15 of 16 : ERC20.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/utils/ERC20.sol";

contract $ERC20 is ERC20 {
    constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_) {}

    function $_transfer(address sender,address recipient,uint256 amount) external {
        return super._transfer(sender,recipient,amount);
    }

    function $_mint(address account,uint256 amount) external {
        return super._mint(account,amount);
    }

    function $_burn(address account,uint256 amount) external {
        return super._burn(account,amount);
    }

    function $_approve(address owner,address spender,uint256 amount) external {
        return super._approve(owner,spender,amount);
    }

    function $_beforeTokenTransfer(address from,address to,uint256 amount) external {
        return super._beforeTokenTransfer(from,to,amount);
    }

    function $_afterTokenTransfer(address from,address to,uint256 amount) external {
        return super._afterTokenTransfer(from,to,amount);
    }

    function $_msgSender() external view returns (address) {
        return super._msgSender();
    }

    function $_msgData() external view returns (bytes memory) {
        return super._msgData();
    }
}

File 16 of 16 : Owned.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.6.0;

import "../../contracts/utils/Owned.sol";

contract $Owned is Owned {
    constructor(address _owner) Owned(_owner) {}
}

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

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_initialHolder","type":"address"}],"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":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_supplySchedule","type":"address"}],"name":"setSupplySchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplySchedule","outputs":[{"internalType":"contract ISupplySchedule","name":"","type":"address"}],"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"}]

60806040523480156200001157600080fd5b5060405162002aa938038062002aa983398181016040528101906200003791906200045b565b818585816003908051906020019062000052929190620002ff565b5080600490805190602001906200006b929190620002ff565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000d890620005be565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516200015692919062000591565b60405180910390a1506200017181846200017c60201b60201c565b505050505062000904565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e690620005e0565b60405180910390fd5b6200020360008383620002f560201b60201c565b80600260008282546200021791906200068f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200026e91906200068f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002d5919062000602565b60405180910390a3620002f160008383620002fa60201b60201c565b5050565b505050565b505050565b8280546200030d9062000760565b90600052602060002090601f0160209004810192826200033157600085556200037d565b82601f106200034c57805160ff19168380011785556200037d565b828001600101855582156200037d579182015b828111156200037c5782518255916020019190600101906200035f565b5b5090506200038c919062000390565b5090565b5b80821115620003ab57600081600090555060010162000391565b5090565b6000620003c6620003c08462000648565b6200061f565b905082815260208101848484011115620003e557620003e46200085e565b5b620003f28482856200072a565b509392505050565b6000815190506200040b81620008d0565b92915050565b600082601f83011262000429576200042862000859565b5b81516200043b848260208601620003af565b91505092915050565b6000815190506200045581620008ea565b92915050565b600080600080600060a086880312156200047a576200047962000868565b5b600086015167ffffffffffffffff8111156200049b576200049a62000863565b5b620004a98882890162000411565b955050602086015167ffffffffffffffff811115620004cd57620004cc62000863565b5b620004db8882890162000411565b9450506040620004ee8882890162000444565b93505060606200050188828901620003fa565b92505060806200051488828901620003fa565b9150509295509295909350565b6200052c81620006ec565b82525050565b6000620005416019836200067e565b91506200054e826200087e565b602082019050919050565b600062000568601f836200067e565b91506200057582620008a7565b602082019050919050565b6200058b8162000720565b82525050565b6000604082019050620005a8600083018562000521565b620005b7602083018462000521565b9392505050565b60006020820190508181036000830152620005d98162000532565b9050919050565b60006020820190508181036000830152620005fb8162000559565b9050919050565b600060208201905062000619600083018462000580565b92915050565b60006200062b6200063e565b905062000639828262000796565b919050565b6000604051905090565b600067ffffffffffffffff8211156200066657620006656200082a565b5b62000671826200086d565b9050602081019050919050565b600082825260208201905092915050565b60006200069c8262000720565b9150620006a98362000720565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006e157620006e0620007cc565b5b828201905092915050565b6000620006f98262000700565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200074a5780820151818401526020810190506200072d565b838111156200075a576000848401525b50505050565b600060028204905060018216806200077957607f821691505b6020821081141562000790576200078f620007fb565b5b50919050565b620007a1826200086d565b810181811067ffffffffffffffff82111715620007c357620007c26200082a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620008db81620006ec565b8114620008e757600080fd5b50565b620008f58162000720565b81146200090157600080fd5b50565b61219580620009146000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b41146102f6578063a457c2d714610314578063a9059cbb14610344578063c40dd66f14610374578063dd62ed3e1461039257610121565b806342966c681461026457806353a47bb71461028057806370a082311461029e57806379ba5097146102ce5780638da5cb5b146102d857610121565b806323b872dd116100f457806323b872dd146101ae578063313ce567146101de578063332f3256146101fc578063395093511461021857806340c10f191461024857610121565b806306fdde0314610126578063095ea7b3146101445780631627540c1461017457806318160ddd14610190575b600080fd5b61012e6103c2565b60405161013b9190611909565b60405180910390f35b61015e600480360381019061015991906115b4565b610454565b60405161016b91906118d3565b60405180910390f35b61018e600480360381019061018991906114f4565b610472565b005b6101986104f5565b6040516101a59190611aeb565b60405180910390f35b6101c860048036038101906101c39190611561565b6104ff565b6040516101d591906118d3565b60405180910390f35b6101e66105f7565b6040516101f39190611b06565b60405180910390f35b610216600480360381019061021191906114f4565b610600565b005b610232600480360381019061022d91906115b4565b6106bc565b60405161023f91906118d3565b60405180910390f35b610262600480360381019061025d91906115b4565b610768565b005b61027e600480360381019061027991906115f4565b610806565b005b610288610813565b604051610295919061188f565b60405180910390f35b6102b860048036038101906102b391906114f4565b610839565b6040516102c59190611aeb565b60405180910390f35b6102d6610881565b005b6102e0610a35565b6040516102ed919061188f565b60405180910390f35b6102fe610a5b565b60405161030b9190611909565b60405180910390f35b61032e600480360381019061032991906115b4565b610aed565b60405161033b91906118d3565b60405180910390f35b61035e600480360381019061035991906115b4565b610bd8565b60405161036b91906118d3565b60405180910390f35b61037c610bf6565b60405161038991906118ee565b60405180910390f35b6103ac60048036038101906103a79190611521565b610c1c565b6040516103b99190611aeb565b60405180910390f35b6060600380546103d190611c85565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611c85565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b6000610468610461610ca3565b8484610cab565b6001905092915050565b61047a610e76565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516104ea919061188f565b60405180910390a150565b6000600254905090565b600061050c848484610f08565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610557610ca3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ce90611a2b565b60405180910390fd5b6105eb856105e3610ca3565b858403610cab565b60019150509392505050565b60006012905090565b610608610e76565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066f9061198b565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061075e6106c9610ca3565b8484600160006106d7610ca3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107599190611b3d565b610cab565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef906119eb565b60405180910390fd5b6108028282611189565b5050565b61081033826112e9565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610911576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109089061194b565b60405180910390fd5b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516109869291906118aa565b60405180910390a1600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610a6a90611c85565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9690611c85565b8015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b5050505050905090565b60008060016000610afc610ca3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090611aab565b60405180910390fd5b610bcd610bc4610ca3565b85858403610cab565b600191505092915050565b6000610bec610be5610ca3565b8484610f08565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290611a8b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d82906119ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e699190611aeb565b60405180910390a3505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90611a0b565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90611a6b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf9061192b565b60405180910390fd5b610ff38383836114c0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906119cb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461110c9190611b3d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111709190611aeb565b60405180910390a36111838484846114c5565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f090611acb565b60405180910390fd5b611205600083836114c0565b80600260008282546112179190611b3d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126c9190611b3d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112d19190611aeb565b60405180910390a36112e5600083836114c5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611359576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135090611a4b565b60405180910390fd5b611365826000836114c0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e29061196b565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114429190611b93565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a79190611aeb565b60405180910390a36114bb836000846114c5565b505050565b505050565b505050565b6000813590506114d981612131565b92915050565b6000813590506114ee81612148565b92915050565b60006020828403121561150a57611509611d15565b5b6000611518848285016114ca565b91505092915050565b6000806040838503121561153857611537611d15565b5b6000611546858286016114ca565b9250506020611557858286016114ca565b9150509250929050565b60008060006060848603121561157a57611579611d15565b5b6000611588868287016114ca565b9350506020611599868287016114ca565b92505060406115aa868287016114df565b9150509250925092565b600080604083850312156115cb576115ca611d15565b5b60006115d9858286016114ca565b92505060206115ea858286016114df565b9150509250929050565b60006020828403121561160a57611609611d15565b5b6000611618848285016114df565b91505092915050565b61162a81611bc7565b82525050565b61163981611bd9565b82525050565b61164881611c1c565b82525050565b600061165982611b21565b6116638185611b2c565b9350611673818560208601611c52565b61167c81611d1a565b840191505092915050565b6000611694602383611b2c565b915061169f82611d2b565b604082019050919050565b60006116b7603583611b2c565b91506116c282611d7a565b604082019050919050565b60006116da602283611b2c565b91506116e582611dc9565b604082019050919050565b60006116fd601783611b2c565b915061170882611e18565b602082019050919050565b6000611720602283611b2c565b915061172b82611e41565b604082019050919050565b6000611743602683611b2c565b915061174e82611e90565b604082019050919050565b6000611766603383611b2c565b915061177182611edf565b604082019050919050565b6000611789602f83611b2c565b915061179482611f2e565b604082019050919050565b60006117ac602883611b2c565b91506117b782611f7d565b604082019050919050565b60006117cf602183611b2c565b91506117da82611fcc565b604082019050919050565b60006117f2602583611b2c565b91506117fd8261201b565b604082019050919050565b6000611815602483611b2c565b91506118208261206a565b604082019050919050565b6000611838602583611b2c565b9150611843826120b9565b604082019050919050565b600061185b601f83611b2c565b915061186682612108565b602082019050919050565b61187a81611c05565b82525050565b61188981611c0f565b82525050565b60006020820190506118a46000830184611621565b92915050565b60006040820190506118bf6000830185611621565b6118cc6020830184611621565b9392505050565b60006020820190506118e86000830184611630565b92915050565b6000602082019050611903600083018461163f565b92915050565b60006020820190508181036000830152611923818461164e565b905092915050565b6000602082019050818103600083015261194481611687565b9050919050565b60006020820190508181036000830152611964816116aa565b9050919050565b60006020820190508181036000830152611984816116cd565b9050919050565b600060208201905081810360008301526119a4816116f0565b9050919050565b600060208201905081810360008301526119c481611713565b9050919050565b600060208201905081810360008301526119e481611736565b9050919050565b60006020820190508181036000830152611a0481611759565b9050919050565b60006020820190508181036000830152611a248161177c565b9050919050565b60006020820190508181036000830152611a448161179f565b9050919050565b60006020820190508181036000830152611a64816117c2565b9050919050565b60006020820190508181036000830152611a84816117e5565b9050919050565b60006020820190508181036000830152611aa481611808565b9050919050565b60006020820190508181036000830152611ac48161182b565b9050919050565b60006020820190508181036000830152611ae48161184e565b9050919050565b6000602082019050611b006000830184611871565b92915050565b6000602082019050611b1b6000830184611880565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b4882611c05565b9150611b5383611c05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b8857611b87611cb7565b5b828201905092915050565b6000611b9e82611c05565b9150611ba983611c05565b925082821015611bbc57611bbb611cb7565b5b828203905092915050565b6000611bd282611be5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611c2782611c2e565b9050919050565b6000611c3982611c40565b9050919050565b6000611c4b82611be5565b9050919050565b60005b83811015611c70578082015181840152602081019050611c55565b83811115611c7f576000848401525b50505050565b60006002820490506001821680611c9d57607f821691505b60208210811415611cb157611cb0611ce6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560008201527f2063616e20616363657074206f776e6572736869700000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4b77656e74613a20496e76616c69642041646472657373000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4b77656e74613a204f6e6c7920537570706c795363686564756c652063616e2060008201527f706572666f726d207468697320616374696f6e00000000000000000000000000602082015250565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660008201527f6f726d207468697320616374696f6e0000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61213a81611bc7565b811461214557600080fd5b50565b61215181611c05565b811461215c57600080fd5b5056fea2646970667358221220446437ad9577d2f605bd3212d2a7ce20306827b96febf257e725461bde99bd2364736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000425bfbffaab016540000000000000000000000000000652c46a302060b324a02d2d3e4a56e3da07fa91b000000000000000000000000652c46a302060b324a02d2d3e4a56e3da07fa91b00000000000000000000000000000000000000000000000000000000000000064b77656e7461000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064b57454e54410000000000000000000000000000000000000000000000000000

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading