Contract 0x286ae10228C274a9396a05A56B9E3B8f42D1cE14

 
Txn Hash
Method
Block
From
To
Value
0x3c38fddf7b92b84200e11e01bfee95e9382f7b83571f3192dfb19d6180236613Sell Sparkle126409672021-06-15 19:29:27427 days 12 hrs ago0x6bcdb09fa5e18d9af2abae373648c18654e9a908 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0019274130
0xed49623abcb61ffca16a741b58f2a63e8c7317a1ca17032dce651af4af3121feSell Sparkle124399392021-05-15 16:01:57458 days 15 hrs ago0x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf69 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0034125373.‍00000134
0x8bf352ed9d86935ff3544b6cf86908a9b1193e2dfc808c4b1b55d1138da0af32Sell Sparkle114395932020-12-12 17:52:06612 days 14 hrs ago0x9930a8c7e2672319d9aab0f70f86ed9615aa170a IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0032727646
0x599c41cddf97f4ca5d31cec41f35ab5cd7210123fd1c0a39baa4c76b341d38beTransfer114354282020-12-12 2:30:34613 days 5 hrs ago0x9930a8c7e2672319d9aab0f70f86ed9615aa170a IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0016867256
0xd1d2fce511b45fbcab95c4fba21a782c9a3ce99be7a370d9103480d8a5bc0dadTransfer108882792020-09-18 20:17:59697 days 11 hrs ago0x8d4dcd434b00941689f68308d2b0c39fafe12153 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍01174212390
0x978ddd8b22b4ecbb66d45e68a9348ea2e29631fca1f847c20098b461082c0719Transfer108882752020-09-18 20:17:25697 days 11 hrs ago0x8d4dcd434b00941689f68308d2b0c39fafe12153 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0045162150
0x650201afc3d9514ebe8ae0fdfd12a21715e5f83baf70ff1de35c274a634a8df4Sell Sparkle100775492020-05-16 14:04:14822 days 17 hrs ago0xfeec7d69854dd820c44e1f829c7843f3eef0b80f IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0013384620
0x798fc2c4d993b61061230a4f30cecbe48ab1c03e43fc6a2d556d3f3e9927804bSell Sparkle100775282020-05-16 13:58:35822 days 17 hrs ago0xfeec7d69854dd820c44e1f829c7843f3eef0b80f IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0011520820
0x8d8b3b901af90a1411d84c3edbf98e3fa683310701c24a485f17e21f164bac17Transfer100742382020-05-16 1:44:40823 days 6 hrs ago0xfeec7d69854dd820c44e1f829c7843f3eef0b80f IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0017820118.‍2
0xcac4ed06782b527704eb1c408a40ed1acd789004c2a3b0519c1d12baf96d61feTransfer100393812020-05-10 15:57:36828 days 15 hrs ago0xfeec7d69854dd820c44e1f829c7843f3eef0b80f IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0014276621
0x3b3580bd8f61a05f2c41a55a371938b3fef008301646adf3b97c49b047611493Transfer100393612020-05-10 15:53:14828 days 15 hrs ago0xfeec7d69854dd820c44e1f829c7843f3eef0b80f IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0014953822
0x5546b903670fe2dabf8c5fa050867646f0a76f0b0661b138d12d4261ebfb17a2Transfer99639922020-04-28 23:45:18840 days 8 hrs ago0x3a8f6cd4b5d36920527db71e7256e1a63a46a412 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140.‍00010137 Ether0.‍0000422
0xa68787b4e989bc3bc600ff1502d1a3bca086764906f7897a06bd075e498716d7Sell Sparkle97365322020-03-24 21:35:20875 days 10 hrs ago0xde4d5886da98c3a1140260aaf536a2f1262e2948 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000084221.‍5
0x120b4a2e403e4345d30b2b0c8300b6bb3ef3463cd3343324ae1ed78d8f5e5478Sell Sparkle95216622020-02-20 18:11:27908 days 13 hrs ago0xecf76e6901832b280502aa051b60536d0368dd39 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000133842
0x892c5aa1fc853926a08854b46eac3b52b501125831f5d96d2b092b2a0477c69cSell Sparkle95152812020-02-19 18:26:25909 days 13 hrs ago0xecf76e6901832b280502aa051b60536d0368dd39 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000180483
0x1f913100584ea99a93e2a029d31eab6b7e61c552ec255542f1b2773bc7b37c97Sell Sparkle95133772020-02-19 11:28:40909 days 20 hrs ago0xecf76e6901832b280502aa051b60536d0368dd39 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000170893.‍2
0x132b0391a2232176bae2f9a78db3fd8427c3b86fb619c2cd7f0254b1e3ec4c35Sell Sparkle95095322020-02-18 21:24:49910 days 10 hrs ago0xecf76e6901832b280502aa051b60536d0368dd39 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍00005761
0x3548a650fb13973ee3780a230c76a1498d55dd788d3151d5049f8b702b142a6eSell Sparkle92538932020-01-10 15:33:55949 days 16 hrs ago0x46a033d62b2c9476236aa708d6656dd10e661dd6 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000100381.‍5
0xbb91230add15e94bd70f89620f708b4ace421b85b728a4cf7fc6adfa94c4e939Sell Sparkle92538412020-01-10 15:20:15949 days 16 hrs ago0x46a033d62b2c9476236aa708d6656dd10e661dd6 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000066931
0x63677b9f94b133a696f275a36a3ede4ac1fcb49090a0b7caf22f59cfb7decde0Sell Sparkle92493932020-01-09 23:05:12950 days 8 hrs ago0x46a033d62b2c9476236aa708d6656dd10e661dd6 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍00005341
0x21db7f48d8746319503fe09701b4445578bcecefccfb4d2644e05fac28a4f982Sell Sparkle92493742020-01-09 23:01:50950 days 8 hrs ago0x46a033d62b2c9476236aa708d6656dd10e661dd6 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000120322
0xd0cf9e51cb079d5683984db0c2bf5b1b3f15cb0dcc98fba147c42f58802a5ce7Sell Sparkle92492772020-01-09 22:41:51950 days 9 hrs ago0x46a033d62b2c9476236aa708d6656dd10e661dd6 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000064361
0x2f5e5848770e8b3714cf4aa46412736d36b2b2a92a72880e67801e85cbea188bSell Sparkle92426092020-01-08 22:01:37951 days 9 hrs ago0xceb8fa8652a2b3de9f0caf9209ca5e28b24cd249 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍0007113510
0x75c444cc99f674185e72ca230fbfd7b3932ad9cb7d3c792699a45be59fc38635Transfer92426012020-01-08 21:58:52951 days 9 hrs ago0xceb8fa8652a2b3de9f0caf9209ca5e28b24cd249 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍00003011
0x6af3ec55fda94b6511c68064825df5119aeeb87d62bfcca03e9b77a9b2c98d78Approve92424722020-01-08 21:31:20951 days 10 hrs ago0xceb8fa8652a2b3de9f0caf9209ca5e28b24cd249 IN  0x286ae10228c274a9396a05a56b9e3b8f42d1ce140 Ether0.‍000044391
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3c38fddf7b92b84200e11e01bfee95e9382f7b83571f3192dfb19d6180236613126409672021-06-15 19:29:27427 days 12 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x6bcdb09fa5e18d9af2abae373648c18654e9a9080.‍0746996 Ether
0x3c38fddf7b92b84200e11e01bfee95e9382f7b83571f3192dfb19d6180236613126409672021-06-15 19:29:27427 days 12 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00231029 Ether
0xed49623abcb61ffca16a741b58f2a63e8c7317a1ca17032dce651af4af3121fe124399392021-05-15 16:01:57458 days 15 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍14583783 Ether
0xed49623abcb61ffca16a741b58f2a63e8c7317a1ca17032dce651af4af3121fe124399392021-05-15 16:01:57458 days 15 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00451044 Ether
0x8bf352ed9d86935ff3544b6cf86908a9b1193e2dfc808c4b1b55d1138da0af32114395932020-12-12 17:52:06612 days 14 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x9930a8c7e2672319d9aab0f70f86ed9615aa170a0.‍46253491 Ether
0x8bf352ed9d86935ff3544b6cf86908a9b1193e2dfc808c4b1b55d1138da0af32114395932020-12-12 17:52:06612 days 14 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍0143052 Ether
0x650201afc3d9514ebe8ae0fdfd12a21715e5f83baf70ff1de35c274a634a8df4100775492020-05-16 14:04:14822 days 17 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xfeec7d69854dd820c44e1f829c7843f3eef0b80f0.‍048209 Ether
0x650201afc3d9514ebe8ae0fdfd12a21715e5f83baf70ff1de35c274a634a8df4100775492020-05-16 14:04:14822 days 17 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍001491 Ether
0xa68787b4e989bc3bc600ff1502d1a3bca086764906f7897a06bd075e498716d797365322020-03-24 21:35:20875 days 10 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xde4d5886da98c3a1140260aaf536a2f1262e29480.‍18837152 Ether
0xa68787b4e989bc3bc600ff1502d1a3bca086764906f7897a06bd075e498716d797365322020-03-24 21:35:20875 days 10 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00582592 Ether
0x120b4a2e403e4345d30b2b0c8300b6bb3ef3463cd3343324ae1ed78d8f5e547895216622020-02-20 18:11:27908 days 13 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xecf76e6901832b280502aa051b60536d0368dd390.‍087106 Ether
0x120b4a2e403e4345d30b2b0c8300b6bb3ef3463cd3343324ae1ed78d8f5e547895216622020-02-20 18:11:27908 days 13 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍002694 Ether
0x892c5aa1fc853926a08854b46eac3b52b501125831f5d96d2b092b2a0477c69c95152812020-02-19 18:26:25909 days 13 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xecf76e6901832b280502aa051b60536d0368dd391 wei
0x3548a650fb13973ee3780a230c76a1498d55dd788d3151d5049f8b702b142a6e92538932020-01-10 15:33:55949 days 16 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x46a033d62b2c9476236aa708d6656dd10e661dd60.‍004171 Ether
0x3548a650fb13973ee3780a230c76a1498d55dd788d3151d5049f8b702b142a6e92538932020-01-10 15:33:55949 days 16 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍000129 Ether
0xbb91230add15e94bd70f89620f708b4ace421b85b728a4cf7fc6adfa94c4e93992538412020-01-10 15:20:15949 days 16 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x46a033d62b2c9476236aa708d6656dd10e661dd60.‍97 Ether
0xbb91230add15e94bd70f89620f708b4ace421b85b728a4cf7fc6adfa94c4e93992538412020-01-10 15:20:15949 days 16 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍03 Ether
0x21db7f48d8746319503fe09701b4445578bcecefccfb4d2644e05fac28a4f98292493742020-01-09 23:01:50950 days 8 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x46a033d62b2c9476236aa708d6656dd10e661dd61 wei
0xd0cf9e51cb079d5683984db0c2bf5b1b3f15cb0dcc98fba147c42f58802a5ce792492772020-01-09 22:41:51950 days 9 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x46a033d62b2c9476236aa708d6656dd10e661dd61 wei
0x2f5e5848770e8b3714cf4aa46412736d36b2b2a92a72880e67801e85cbea188b92426092020-01-08 22:01:37951 days 9 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xceb8fa8652a2b3de9f0caf9209ca5e28b24cd2490.‍09868537 Ether
0x2f5e5848770e8b3714cf4aa46412736d36b2b2a92a72880e67801e85cbea188b92426092020-01-08 22:01:37951 days 9 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00305212 Ether
0x62e535dc636c1f8d11b853a1f781499a6670120e1ea738d31f123227aecc88e490465042019-12-04 0:21:55987 days 7 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140xd18a54f89603fe4301b29ef6a8ab11b9ba24f1390.‍29455338 Ether
0x62e535dc636c1f8d11b853a1f781499a6670120e1ea738d31f123227aecc88e490465042019-12-04 0:21:55987 days 7 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00910989 Ether
0xd685ed418dd1393ca253f8d2c8c7a4b7be51b4765c835d6aafdbe988112b6bfe90148352019-11-28 9:50:48992 days 22 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce14ENS Name obfarmer.sismo.eth0.‍09859448 Ether
0xd685ed418dd1393ca253f8d2c8c7a4b7be51b4765c835d6aafdbe988112b6bfe90148352019-11-28 9:50:48992 days 22 hrs ago 0x286ae10228c274a9396a05a56b9e3b8f42d1ce140x4c3cc1d2229cbd17d26ec984f2e1b9bd336cbf690.‍00304931 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Sparkle

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-09-11
*/

/**
__                  _    _
/ _\_ __   __ _ _ __| | _| | ___
\ \| '_ \ / _` | '__| |/ / |/ _ \
_\ \ |_) | (_| | |  |   <| |  __/
\__/ .__/ \__,_|_|  |_|\_\_|\___|
  |_|


Sparkle is the world's first redistributive currency.

Sparkle! offers an alternative to economies based on income inequality by
creating a currency that proportionally redistributes two percent of every
transaction to each person in the economy.

Put simply: When the rich spend, the poor receive a share.

Sparkle is minted via an anti-speculative system whereby the smart contract
maintains a stable buy price of 1 ETH = 9700 SPRK and sell price of
10000 SPRK = .97 ETH until 400,000,000 SPRK have been minted.

Once 400 million Sparkle are in circulation, the buy function of this contract
is disabled and no more SPRK will be minted until supply drops below the
threshold. The sell function remains active to preserve a minimum value of
10,000 SPRK equals .97 ETH.

Everyone can mint Sparkle! by sending ETH to this contract.

Everyone can earn ETH by selling Sparkle! to this contract.

Everyone starts with free Sparkle!: by entering into the economy of Sparkle!
you will automatically receive your share of the transaction taxes collected.

Sparkle! is an activist experiment created by Micah White and released on
September 17, 2019 to commemorate the eighth anniversary of Occupy Wall Street.

SPARKLE! IS:

• Autonomous — Sparkle! has no kill switch or pause function.

• Adversarial — Sparkle! is an act of protest that offers an alternative.

• Experimental — Sparkle! tests new economic laws that could form the basis for
                 an activist society.

• Anti-speculative — Sparkle! fights currency speculation and is backed by a
                      verifiable reserve of ETH that guarantees as a
                      minimum value.

*/

pragma solidity ^0.5.0;


/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see {ERC20Detailed}.
 */
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);
}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Optional functions from the ERC20 standard.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of
     * these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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.
     *
     * 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 returns (uint8) {
        return _decimals;
    }
}

contract Sparkle is ERC20Detailed {

    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowed;

    event SparkleRedistribution(address from, uint amount);
    event Mint(address to, uint amount);
    event Sell(address from, uint amount);

    uint256 public constant MAX_SUPPLY = 400000000 * 10 ** 18; // 40000 ETH of Sparkle
    uint256 public constant PERCENT = 100; // 100%
    uint256 public constant TAX = 2; // 2%
    uint256 public constant COST_PER_TOKEN = 1e14; // 1 Sparkle = .0001 ETH
    address payable creator = 0x4C3cC1D2229CBD17D26ec984F2E1b9bD336cBf69;

    uint256 private _tobinsCollected;
    uint256 private _totalSupply;
    mapping (address => uint256) private _tobinsClaimed; // Internal accounting

    constructor() public ERC20Detailed("Sparkle!", "SPRK", 18) {}

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function tobinsCollected() public view returns (uint256) {
        return _tobinsCollected;
    }

    function balanceOf(address owner) public view returns (uint256) {
        if (_totalSupply == 0) return 0;

        uint256 unclaimed = _tobinsCollected.sub(_tobinsClaimed[owner]);
        uint256 floatingSupply = _totalSupply.sub(_tobinsCollected);
        uint256 redistribution = _balances[owner].mul(unclaimed).div(floatingSupply);

        return _balances[owner].add(redistribution);
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    function transfer(address to, uint256 value) public returns (bool) {
        require(to != address(0));

        uint256 taxAmount = value.mul(TAX).div(PERCENT);

        _balances[msg.sender] = balanceOf(msg.sender).sub(value).sub(taxAmount);
        _balances[to] = balanceOf(to).add(value);

        _tobinsClaimed[msg.sender] = _tobinsCollected;
        _tobinsClaimed[to] = _tobinsCollected;
        _tobinsCollected = _tobinsCollected.add(taxAmount);

        emit Transfer(msg.sender, to, value);
        emit SparkleRedistribution(msg.sender, taxAmount);

        return true;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        require(value <= _allowed[from][msg.sender]);
        require(to != address(0));

        uint256 taxAmount = value.mul(TAX).div(PERCENT);

        _balances[from] = balanceOf(from).sub(value).sub(taxAmount);
        _balances[to] = balanceOf(to).add(value);

        _tobinsClaimed[from] = _tobinsCollected;
        _tobinsClaimed[to] = _tobinsCollected;
        _tobinsCollected = _tobinsCollected.add(taxAmount);

        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);

        emit Transfer(from, to, value);
        emit SparkleRedistribution(from, taxAmount);

        return true;
    }

    function approve(address spender, uint256 value) public returns (bool) {
        require(spender != address(0));
        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));
        _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].add(addedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));
        _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].sub(subtractedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    function () external payable {
        mintSparkle();
    }

    function mintSparkle() public payable returns (bool) {
        uint256 amount = msg.value.mul(10 ** 18).div(COST_PER_TOKEN);
        require(_totalSupply.add(amount) <= MAX_SUPPLY);

        uint256 taxAmount = amount.mul(TAX).div(PERCENT);
        uint256 creatorAmount = amount.mul(1).div(PERCENT);
        uint256 buyerAmount = amount.sub(taxAmount).sub(creatorAmount);

        _balances[msg.sender] = balanceOf(msg.sender).add(buyerAmount);
        _balances[creator]= balanceOf(creator).add(creatorAmount);

        _totalSupply = _totalSupply.add(amount);

        _tobinsClaimed[msg.sender] = _tobinsCollected;
        _tobinsClaimed[creator] = _tobinsCollected;
        _tobinsCollected = _tobinsCollected.add(taxAmount);

        emit Mint(msg.sender, buyerAmount);
        emit SparkleRedistribution(msg.sender, taxAmount);

        return true;
    }

    function sellSparkle(uint256 amount) public returns (bool) {
        require(amount > 0 && balanceOf(msg.sender) >= amount);

        uint256 reward = amount.mul(COST_PER_TOKEN).div(10 ** 18);

        uint256 creatorAmount = reward.mul(3).div(PERCENT);
        uint256 sellerAmount = reward.sub(creatorAmount);

        _balances[msg.sender] = balanceOf(msg.sender).sub(amount);
        _tobinsClaimed[msg.sender] = _tobinsCollected;

        _totalSupply = _totalSupply.sub(amount);

        creator.transfer(creatorAmount);
        msg.sender.transfer(sellerAmount);

        emit Sell(msg.sender, amount);

        return true;
    }


}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tobinsCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"COST_PER_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mintSparkle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellSparkle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SparkleRedistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Sell","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"},{"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"}]

6080604052734c3cc1d2229cbd17d26ec984f2e1b9bd336cbf69600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b506040518060400160405280600881526020017f537061726b6c65210000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5350524b0000000000000000000000000000000000000000000000000000000081525060128260009080519060200190620000ed9291906200012b565b508160019080519060200190620001069291906200012b565b5080600260006101000a81548160ff021916908360ff160217905550505050620001da565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016e57805160ff19168380011785556200019f565b828001600101855582156200019f579182015b828111156200019e57825182559160200191906001019062000181565b5b509050620001ae9190620001b2565b5090565b620001d791905b80821115620001d3576000816000905550600101620001b9565b5090565b90565b6120cf80620001ea6000396000f3fe6080604052600436106101095760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb1461058d578063ab8f893914610600578063b85a8b2014610622578063dd62ed3e1461064d578063e1ee4e4e146106d257610109565b806370a08231146103fa5780638d3c971d1461045f57806395d89b411461048a578063a457c2d71461051a57610109565b8063313ce567116100dc578063313ce567146102d557806332cb6b0c1461030657806339509351146103315780635359def3146103a457806368f58b03146103cf57610109565b806306fdde0314610114578063095ea7b3146101a457806318160ddd1461021757806323b872dd14610242575b610111610725565b50005b34801561012057600080fd5b50610129610ace565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016957808201518184015260208101905061014e565b50505050905090810190601f1680156101965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101b057600080fd5b506101fd600480360360408110156101c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b70565b604051808215151515815260200191505060405180910390f35b34801561022357600080fd5b5061022c610c9b565b6040518082815260200191505060405180910390f35b34801561024e57600080fd5b506102bb6004803603606081101561026557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ca5565b604051808215151515815260200191505060405180910390f35b3480156102e157600080fd5b506102ea6110f5565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031257600080fd5b5061031b61110c565b6040518082815260200191505060405180910390f35b34801561033d57600080fd5b5061038a6004803603604081101561035457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111c565b604051808215151515815260200191505060405180910390f35b3480156103b057600080fd5b506103b9611351565b6040518082815260200191505060405180910390f35b3480156103db57600080fd5b506103e461135b565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b506104496004803603602081101561041d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611360565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b506104746114ad565b6040518082815260200191505060405180910390f35b34801561049657600080fd5b5061049f6114b7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104df5780820151818401526020810190506104c4565b50505050905090810190601f16801561050c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561052657600080fd5b506105736004803603604081101561053d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611559565b604051808215151515815260200191505060405180910390f35b34801561059957600080fd5b506105e6600480360360408110156105b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061178e565b604051808215151515815260200191505060405180910390f35b610608610725565b604051808215151515815260200191505060405180910390f35b34801561062e57600080fd5b50610637611a44565b6040518082815260200191505060405180910390f35b34801561065957600080fd5b506106bc6004803603604081101561067057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a49565b6040518082815260200191505060405180910390f35b3480156106de57600080fd5b5061070b600480360360208110156106f557600080fd5b8101908080359060200190929190505050611ad0565b604051808215151515815260200191505060405180910390f35b60008061075b655af3107a400061074d670de0b6b3a764000034611d5190919063ffffffff16565b611dd790919063ffffffff16565b90506b014adf4b7320334b9000000061077f82600754611e2190919063ffffffff16565b111561078a57600080fd5b60006107b360646107a5600285611d5190919063ffffffff16565b611dd790919063ffffffff16565b905060006107de60646107d0600186611d5190919063ffffffff16565b611dd790919063ffffffff16565b90506000610807826107f98587611ea990919063ffffffff16565b611ea990919063ffffffff16565b90506108248161081633611360565b611e2190919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506108a482610896600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611360565b611e2190919063ffffffff16565b60036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061091e84600754611e2190919063ffffffff16565b600781905550600654600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060065460086000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109e783600654611e2190919063ffffffff16565b6006819055507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968853382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17fec47f18d3fc9f028ccb9747e39ff0325aba5fd61a28a89d44291f021132aa3be3384604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600194505050505090565b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bab57600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610d3057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d6a57600080fd5b6000610d936064610d85600286611d5190919063ffffffff16565b611dd790919063ffffffff16565b9050610dc281610db485610da689611360565b611ea990919063ffffffff16565b611ea990919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e2083610e1286611360565b611e2190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f0481600654611e2190919063ffffffff16565b600681905550610f9983600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea990919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a37fec47f18d3fc9f028ccb9747e39ff0325aba5fd61a28a89d44291f021132aa3be8582604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019150509392505050565b6000600260009054906101000a900460ff16905090565b6b014adf4b7320334b9000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561115757600080fd5b6111e682600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b600281565b600080600754141561137557600090506114a8565b60006113cb600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600654611ea990919063ffffffff16565b905060006113e6600654600754611ea990919063ffffffff16565b9050600061144e8261144085600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5190919063ffffffff16565b611dd790919063ffffffff16565b90506114a281600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2190919063ffffffff16565b93505050505b919050565b655af3107a400081565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561154f5780601f106115245761010080835404028352916020019161154f565b820191906000526020600020905b81548152906001019060200180831161153257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561159457600080fd5b61162382600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea990919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117c957600080fd5b60006117f260646117e4600286611d5190919063ffffffff16565b611dd790919063ffffffff16565b9050611821816118138561180533611360565b611ea990919063ffffffff16565b611ea990919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061187f8361187186611360565b611e2190919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196381600654611e2190919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a37fec47f18d3fc9f028ccb9747e39ff0325aba5fd61a28a89d44291f021132aa3be3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505092915050565b606481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008082118015611ae9575081611ae633611360565b10155b611af257600080fd5b6000611b27670de0b6b3a7640000611b19655af3107a400086611d5190919063ffffffff16565b611dd790919063ffffffff16565b90506000611b526064611b44600385611d5190919063ffffffff16565b611dd790919063ffffffff16565b90506000611b698284611ea990919063ffffffff16565b9050611b8685611b7833611360565b611ea990919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2485600754611ea990919063ffffffff16565b600781905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611c92573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cd9573d6000803e3d6000fd5b507f5e5e995ce3133561afceaa51a9a154d5db228cd7525d34df5185582c18d3df093386604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019350505050919050565b600080831415611d645760009050611dd1565b6000828402905082848281611d7557fe5b0414611dcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061207a6021913960400191505060405180910390fd5b809150505b92915050565b6000611e1983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ef3565b905092915050565b600080828401905083811015611e9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000611eeb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611fb9565b905092915050565b60008083118290611f9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f64578082015181840152602081019050611f49565b50505050905090810190601f168015611f915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611fab57fe5b049050809150509392505050565b6000838311158290612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561202b578082015181840152602081019050612010565b50505050905090810190601f1680156120585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582038d2c3168981150eb481da90bc6cf9557a2ff924387d0b1da6c07be42741a9eb64736f6c634300050b0032

Deployed ByteCode Sourcemap

12046:5568:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16031:13;:11;:13::i;:::-;;12046:5568;11104:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11104:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11104:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15069:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15069:242:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15069:242:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12963:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12963:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14333:728;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14333:728:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14333:728:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11956:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11956:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12399:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12399:57:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15319:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15319:323:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15319:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13062:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13062:99:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12539:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12539:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13169:403;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13169:403:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13169:403:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12583:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12583:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11306:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11306:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11306:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15650:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15650:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15650:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13719:606;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13719:606:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13719:606:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16060:883;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12487:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12487:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13580:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13580:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13580:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16951:656;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16951:656:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16951:656:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16060:883;16107:4;16124:14;16141:43;12624:4;16141:23;16155:8;16141:9;:13;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16124:60;;12436:20;16203:24;16220:6;16203:12;;:16;;:24;;;;:::i;:::-;:38;;16195:47;;;;;;16255:17;16275:28;12521:3;16275:15;12569:1;16275:6;:10;;:15;;;;:::i;:::-;:19;;:28;;;;:::i;:::-;16255:48;;16314:21;16338:26;12521:3;16338:13;16349:1;16338:6;:10;;:13;;;;:::i;:::-;:17;;:26;;;;:::i;:::-;16314:50;;16375:19;16397:40;16423:13;16397:21;16408:9;16397:6;:10;;:21;;;;:::i;:::-;:25;;:40;;;;:::i;:::-;16375:62;;16474:38;16500:11;16474:21;16484:10;16474:9;:21::i;:::-;:25;;:38;;;;:::i;:::-;16450:9;:21;16460:10;16450:21;;;;;;;;;;;;;;;:62;;;;16543:37;16566:13;16543:18;16553:7;;;;;;;;;;;16543:9;:18::i;:::-;:22;;:37;;;;:::i;:::-;16523:9;:18;16533:7;;;;;;;;;;;16523:18;;;;;;;;;;;;;;;:57;;;;16608:24;16625:6;16608:12;;:16;;:24;;;;:::i;:::-;16593:12;:39;;;;16674:16;;16645:14;:26;16660:10;16645:26;;;;;;;;;;;;;;;:45;;;;16727:16;;16701:14;:23;16716:7;;;;;;;;;;;16701:23;;;;;;;;;;;;;;;:42;;;;16773:31;16794:9;16773:16;;:20;;:31;;;;:::i;:::-;16754:16;:50;;;;16822:29;16827:10;16839:11;16822:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;16867:44;16889:10;16901:9;16867:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;16931:4;16924:11;;;;;;16060:883;:::o;11104:83::-;11141:13;11174:5;11167:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11104:83;:::o;15069:242::-;15134:4;15178:1;15159:21;;:7;:21;;;;15151:30;;;;;;15224:5;15192:8;:20;15201:10;15192:20;;;;;;;;;;;;;;;:29;15213:7;15192:29;;;;;;;;;;;;;;;:37;;;;15266:7;15245:36;;15254:10;15245:36;;;15275:5;15245:36;;;;;;;;;;;;;;;;;;15299:4;15292:11;;15069:242;;;;:::o;12963:91::-;13007:7;13034:12;;13027:19;;12963:91;:::o;14333:728::-;14412:4;14446:8;:14;14455:4;14446:14;;;;;;;;;;;;;;;:26;14461:10;14446:26;;;;;;;;;;;;;;;;14437:5;:35;;14429:44;;;;;;14506:1;14492:16;;:2;:16;;;;14484:25;;;;;;14522:17;14542:27;12521:3;14542:14;12569:1;14542:5;:9;;:14;;;;:::i;:::-;:18;;:27;;;;:::i;:::-;14522:47;;14600:41;14631:9;14600:26;14620:5;14600:15;14610:4;14600:9;:15::i;:::-;:19;;:26;;;;:::i;:::-;:30;;:41;;;;:::i;:::-;14582:9;:15;14592:4;14582:15;;;;;;;;;;;;;;;:59;;;;14668:24;14686:5;14668:13;14678:2;14668:9;:13::i;:::-;:17;;:24;;;;:::i;:::-;14652:9;:13;14662:2;14652:13;;;;;;;;;;;;;;;:40;;;;14728:16;;14705:14;:20;14720:4;14705:20;;;;;;;;;;;;;;;:39;;;;14776:16;;14755:14;:18;14770:2;14755:18;;;;;;;;;;;;;;;:37;;;;14822:31;14843:9;14822:16;;:20;;:31;;;;:::i;:::-;14803:16;:50;;;;14895:37;14926:5;14895:8;:14;14904:4;14895:14;;;;;;;;;;;;;;;:26;14910:10;14895:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;14866:8;:14;14875:4;14866:14;;;;;;;;;;;;;;;:26;14881:10;14866:26;;;;;;;;;;;;;;;:66;;;;14965:2;14950:25;;14959:4;14950:25;;;14969:5;14950:25;;;;;;;;;;;;;;;;;;14991:38;15013:4;15019:9;14991:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;15049:4;15042:11;;;14333:728;;;;;:::o;11956:83::-;11997:5;12022:9;;;;;;;;;;;12015:16;;11956:83;:::o;12399:57::-;12436:20;12399:57;:::o;15319:323::-;15399:4;15443:1;15424:21;;:7;:21;;;;15416:30;;;;;;15490:45;15524:10;15490:8;:20;15499:10;15490:20;;;;;;;;;;;;;;;:29;15511:7;15490:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;15457:8;:20;15466:10;15457:20;;;;;;;;;;;;;;;:29;15478:7;15457:29;;;;;;;;;;;;;;;:79;;;;15573:7;15552:60;;15561:10;15552:60;;;15582:8;:20;15591:10;15582:20;;;;;;;;;;;;;;;:29;15603:7;15582:29;;;;;;;;;;;;;;;;15552:60;;;;;;;;;;;;;;;;;;15630:4;15623:11;;15319:323;;;;:::o;13062:99::-;13110:7;13137:16;;13130:23;;13062:99;:::o;12539:31::-;12569:1;12539:31;:::o;13169:403::-;13224:7;13264:1;13248:12;;:17;13244:31;;;13274:1;13267:8;;;;13244:31;13288:17;13308:43;13329:14;:21;13344:5;13329:21;;;;;;;;;;;;;;;;13308:16;;:20;;:43;;;;:::i;:::-;13288:63;;13362:22;13387:34;13404:16;;13387:12;;:16;;:34;;;;:::i;:::-;13362:59;;13432:22;13457:51;13493:14;13457:31;13478:9;13457;:16;13467:5;13457:16;;;;;;;;;;;;;;;;:20;;:31;;;;:::i;:::-;:35;;:51;;;;:::i;:::-;13432:76;;13528:36;13549:14;13528:9;:16;13538:5;13528:16;;;;;;;;;;;;;;;;:20;;:36;;;;:::i;:::-;13521:43;;;;;13169:403;;;;:::o;12583:45::-;12624:4;12583:45;:::o;11306:87::-;11345:13;11378:7;11371:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11306:87;:::o;15650:333::-;15735:4;15779:1;15760:21;;:7;:21;;;;15752:30;;;;;;15826:50;15860:15;15826:8;:20;15835:10;15826:20;;;;;;;;;;;;;;;:29;15847:7;15826:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;15793:8;:20;15802:10;15793:20;;;;;;;;;;;;;;;:29;15814:7;15793:29;;;;;;;;;;;;;;;:84;;;;15914:7;15893:60;;15902:10;15893:60;;;15923:8;:20;15932:10;15923:20;;;;;;;;;;;;;;;:29;15944:7;15923:29;;;;;;;;;;;;;;;;15893:60;;;;;;;;;;;;;;;;;;15971:4;15964:11;;15650:333;;;;:::o;13719:606::-;13780:4;13819:1;13805:16;;:2;:16;;;;13797:25;;;;;;13835:17;13855:27;12521:3;13855:14;12569:1;13855:5;:9;;:14;;;;:::i;:::-;:18;;:27;;;;:::i;:::-;13835:47;;13919;13956:9;13919:32;13945:5;13919:21;13929:10;13919:9;:21::i;:::-;:25;;:32;;;;:::i;:::-;:36;;:47;;;;:::i;:::-;13895:9;:21;13905:10;13895:21;;;;;;;;;;;;;;;:71;;;;13993:24;14011:5;13993:13;14003:2;13993:9;:13::i;:::-;:17;;:24;;;;:::i;:::-;13977:9;:13;13987:2;13977:13;;;;;;;;;;;;;;;:40;;;;14059:16;;14030:14;:26;14045:10;14030:26;;;;;;;;;;;;;;;:45;;;;14107:16;;14086:14;:18;14101:2;14086:18;;;;;;;;;;;;;;;:37;;;;14153:31;14174:9;14153:16;;:20;;:31;;;;:::i;:::-;14134:16;:50;;;;14223:2;14202:31;;14211:10;14202:31;;;14227:5;14202:31;;;;;;;;;;;;;;;;;;14249:44;14271:10;14283:9;14249:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;14313:4;14306:11;;;13719:606;;;;:::o;12487:37::-;12521:3;12487:37;:::o;13580:131::-;13652:7;13679:8;:15;13688:5;13679:15;;;;;;;;;;;;;;;:24;13695:7;13679:24;;;;;;;;;;;;;;;;13672:31;;13580:131;;;;:::o;16951:656::-;17004:4;17038:1;17029:6;:10;:45;;;;;17068:6;17043:21;17053:10;17043:9;:21::i;:::-;:31;;17029:45;17021:54;;;;;;17088:14;17105:40;17136:8;17105:26;12624:4;17105:6;:10;;:26;;;;:::i;:::-;:30;;:40;;;;:::i;:::-;17088:57;;17158:21;17182:26;12521:3;17182:13;17193:1;17182:6;:10;;:13;;;;:::i;:::-;:17;;:26;;;;:::i;:::-;17158:50;;17219:20;17242:25;17253:13;17242:6;:10;;:25;;;;:::i;:::-;17219:48;;17304:33;17330:6;17304:21;17314:10;17304:9;:21::i;:::-;:25;;:33;;;;:::i;:::-;17280:9;:21;17290:10;17280:21;;;;;;;;;;;;;;;:57;;;;17377:16;;17348:14;:26;17363:10;17348:26;;;;;;;;;;;;;;;:45;;;;17421:24;17438:6;17421:12;;:16;;:24;;;;:::i;:::-;17406:12;:39;;;;17458:7;;;;;;;;;;;:16;;:31;17475:13;17458:31;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17458:31:0;17500:10;:19;;:33;17520:12;17500:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17500:33:0;17551:24;17556:10;17568:6;17551:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;17595:4;17588:11;;;;;16951:656;;;:::o;7044:471::-;7102:7;7352:1;7347;:6;7343:47;;;7377:1;7370:8;;;;7343:47;7402:9;7418:1;7414;:5;7402:17;;7447:1;7442;7438;:5;;;;;;:10;7430:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7506:1;7499:8;;;7044:471;;;;;:::o;7983:132::-;8041:7;8068:39;8072:1;8075;8068:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8061:46;;7983:132;;;;:::o;5559:181::-;5617:7;5637:9;5653:1;5649;:5;5637:17;;5678:1;5673;:6;;5665:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5731:1;5724:8;;;5559:181;;;;:::o;6015:136::-;6073:7;6100:43;6104:1;6107;6100:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6093:50;;6015:136;;;;:::o;8750:345::-;8836:7;8935:1;8931;:5;8938:12;8923:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8923:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8962:9;8978:1;8974;:5;;;;;;8962:17;;9086:1;9079:8;;;8750:345;;;;;:::o;6601:192::-;6687:7;6720:1;6715;:6;;6723:12;6707:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6707:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6747:9;6763:1;6759;:5;6747:17;;6784:1;6777:8;;;6601:192;;;;;:::o

Swarm Source

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

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.