Contract 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14

 

Contract Overview

Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Block
From
To
Value
0x05a9a56139fb068a29e943bce926153cacdea7c2a58ae6b632e260b5ff1d0a74Cooldown10187502023-05-29 10:37:519 hrs 18 mins ago0xf421acbf2aabe407bcb629747eaf7a3e0c1b30b4 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001825207591.244770917
0x5e3c8832cd1685feb2f455012a8ee37d986347e2118ea703bf2d006ac696728cLeave10185412023-05-28 19:27:381 day 28 mins ago0x59708a071c921947efcb11aa927d8cdf76a11ae9 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.000342784621.22
0x2c610329f20f7ef2f55f02058183067eb2512a66f1c41fe51984e664787ad41fApprove10185402023-05-28 19:26:541 day 29 mins ago0x59708a071c921947efcb11aa927d8cdf76a11ae9 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.000218053041.22
0x06ec5c1b5061f72a471ae5c9596e4e2db4c31bdf0457483ce0a8c3de450cee9dCooldown10184192023-05-28 11:07:171 day 8 hrs ago0xeebd9767331e9b007790c8796a7bbba5b96e0ecd IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001556411
0x75f7d5c0f8c07c3a67f23b23d30b0f4d1a7ae41781da9634a5c66ed0be88369aEnter10183992023-05-28 10:04:441 day 9 hrs ago0x693e988544dac9357bef51e20b94ccbae47b7aa2 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0002532111
0x71588c47846b909fab0d2b0e3a7f30aebb053b815239d162d6c00158ed55e73fCooldown10183312023-05-28 6:10:201 day 13 hrs ago0x59efd86b59c36c314ad526f0678cef134b299594 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.8988254731
0xd4a6eadd149eb6dff19695cb539b1f19e2d1a3fa8efb569cd86dff9bc337d476Leave10182132023-05-27 17:32:382 days 2 hrs ago0x5edca6d32e28f4bb5c63a0b7306b0fbb34370188 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether1.5824283931
0xa1d149d334f1710af0f07739c4789143ec0dc2d5ad94f82d695a03ff92e1e28aApprove10182122023-05-27 17:31:532 days 2 hrs ago0x5edca6d32e28f4bb5c63a0b7306b0fbb34370188 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.896927851
0x3461f4c947e430bed0812eb8eacb47853078550a5cdaa6ef917ecbbd31a7caa9Cooldown10182032023-05-27 16:13:022 days 3 hrs ago0x41ae2ecb07ee6f5bf7b93f5d6b26aac6e42eab5b IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether1.0088990731
0xa4e1cd68230cbe2f6e4e990567e5ff631db848393c784ec189c06a57b4ecab9eCooldown10181922023-05-27 14:46:232 days 5 hrs ago0x0261e344a7ccd6007c27fe0a6ee092fab9f196d0 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.000153281
0xcb9b35ce36cf6bffae57905aec96c6fb598861e927d5176b5fd84d9cbc425448Leave10178122023-05-26 11:42:463 days 8 hrs ago0x36d7f0ff860498ec72c5ed9a3e76f151fa54b647 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0002738811
0x1383c846a7722c760cd856185abec35487757690519ce87545ef010623158584Approve10178112023-05-26 11:41:463 days 8 hrs ago0x36d7f0ff860498ec72c5ed9a3e76f151fa54b647 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001553591
0x2ec5c5f23a19bc88a68bed1d9938053c0789b9c71e38b5b9d4493cd555f31f75Cooldown10177322023-05-26 4:39:573 days 15 hrs ago0xab888291f4127352b655fd476f64ac2ebfb8fe76 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001919871
0xee1ecbb6799892f2ae47a3c57eb115401ace81512315773c6ea31e0deb2797f8Leave10177022023-05-26 0:47:043 days 19 hrs ago0xdc090268c04a3440525874cebea91b50d5da2bff IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.000274821
0xcc66976ce76052c6e24e645dcfc21c228254816b36ff25b8962663465dde4403Leave10174502023-05-25 5:24:204 days 14 hrs ago0xc7b889f865a0cc4c64a45dc98a6679e1a22c599d IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether1.6513103881
0xb785e98ce2a8a6eab69238a28441670b71014577845f68ce2e88a98a8871f416Leave10174062023-05-25 3:37:134 days 16 hrs ago0x1641242ccc3333bf434404e154e21ab86f3b761d IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0002653371
0xfad5b39d6b6d95b03591ad0bb17d7a046e37799c5a72ab5c9da5e1d11910695eApprove10174052023-05-25 3:36:224 days 16 hrs ago0x1641242ccc3333bf434404e154e21ab86f3b761d IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001640181
0x6a401d3e894a5153947e568fdfb5d657121fb9ac7526097f73bfc2ef3c70402dCooldown10173642023-05-25 0:21:134 days 19 hrs ago0x1bc33280e47ed8a91a901bc08a513438aad78a57 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001614951
0xe87f09685bac1dd4a40841c5412789b8a353e667126b85435891d27938f5c6eaLeave10171322023-05-24 8:23:135 days 11 hrs ago0x121853dd4079cddc97445d8ea4bfcc3e28705f7a IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0003224999961.010101
0x38d8c345d700047757def7c45b7168259b8b7fea8a9f3ddb625bf3b9053233edApprove10171312023-05-24 8:22:035 days 11 hrs ago0x121853dd4079cddc97445d8ea4bfcc3e28705f7a IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001964656541.010101
0x269f1e3fe6116165f6eb3203c84a3015bbfd3c79840a94d256bacc000f30b9e5Cooldown10169232023-05-23 16:03:176 days 3 hrs ago0x59708a071c921947efcb11aa927d8cdf76a11ae9 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0002899291
0xdc59f2d48d5bb7d003d2cc2868112cdb374c2e63a63c66bef3e9b2d77cdf3ee5Cooldown10165612023-05-22 11:14:477 days 8 hrs ago0xbdacd851f2ae79d73f46c34f60737f6bf40d94d9 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.9807156451
0x8d7b14ff6518b6fa156ac8f28a0f11b3b8935fe78955429ac00999dc5d0f231aCooldown10165152023-05-22 6:10:317 days 13 hrs ago0xa69c20abc059c3104030aa8cf2da5396b6fd2528 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001509481
0x3d238508857a4ac40d79292406e007b8a8203a93d0110b7b9123a79ae65f84baCooldown10165142023-05-22 6:10:107 days 13 hrs ago0xa69c20abc059c3104030aa8cf2da5396b6fd2528 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.0001680481
0xec1d0515331398df8b54ab14bdcdd8acc235f42df0468d254fbd407431e6f76cCooldown10164902023-05-22 4:35:207 days 15 hrs ago0x5edca6d32e28f4bb5c63a0b7306b0fbb34370188 IN  0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether0.9942283261
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5e3c8832cd1685feb2f455012a8ee37d986347e2118ea703bf2d006ac696728c10185412023-05-28 19:27:381 day 28 mins ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0x5e3c8832cd1685feb2f455012a8ee37d986347e2118ea703bf2d006ac696728c10185412023-05-28 19:27:381 day 28 mins ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0x5e3c8832cd1685feb2f455012a8ee37d986347e2118ea703bf2d006ac696728c10185412023-05-28 19:27:381 day 28 mins ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0x75f7d5c0f8c07c3a67f23b23d30b0f4d1a7ae41781da9634a5c66ed0be88369a10183992023-05-28 10:04:441 day 9 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0x75f7d5c0f8c07c3a67f23b23d30b0f4d1a7ae41781da9634a5c66ed0be88369a10183992023-05-28 10:04:441 day 9 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0x75f7d5c0f8c07c3a67f23b23d30b0f4d1a7ae41781da9634a5c66ed0be88369a10183992023-05-28 10:04:441 day 9 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xd4a6eadd149eb6dff19695cb539b1f19e2d1a3fa8efb569cd86dff9bc337d47610182132023-05-27 17:32:382 days 2 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xd4a6eadd149eb6dff19695cb539b1f19e2d1a3fa8efb569cd86dff9bc337d47610182132023-05-27 17:32:382 days 2 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xd4a6eadd149eb6dff19695cb539b1f19e2d1a3fa8efb569cd86dff9bc337d47610182132023-05-27 17:32:382 days 2 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xcb9b35ce36cf6bffae57905aec96c6fb598861e927d5176b5fd84d9cbc42544810178122023-05-26 11:42:463 days 8 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xcb9b35ce36cf6bffae57905aec96c6fb598861e927d5176b5fd84d9cbc42544810178122023-05-26 11:42:463 days 8 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xcb9b35ce36cf6bffae57905aec96c6fb598861e927d5176b5fd84d9cbc42544810178122023-05-26 11:42:463 days 8 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xee1ecbb6799892f2ae47a3c57eb115401ace81512315773c6ea31e0deb2797f810177022023-05-26 0:47:043 days 19 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xee1ecbb6799892f2ae47a3c57eb115401ace81512315773c6ea31e0deb2797f810177022023-05-26 0:47:043 days 19 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xee1ecbb6799892f2ae47a3c57eb115401ace81512315773c6ea31e0deb2797f810177022023-05-26 0:47:043 days 19 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xcc66976ce76052c6e24e645dcfc21c228254816b36ff25b8962663465dde440310174502023-05-25 5:24:204 days 14 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xcc66976ce76052c6e24e645dcfc21c228254816b36ff25b8962663465dde440310174502023-05-25 5:24:204 days 14 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xcc66976ce76052c6e24e645dcfc21c228254816b36ff25b8962663465dde440310174502023-05-25 5:24:204 days 14 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xb785e98ce2a8a6eab69238a28441670b71014577845f68ce2e88a98a8871f41610174062023-05-25 3:37:134 days 16 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xb785e98ce2a8a6eab69238a28441670b71014577845f68ce2e88a98a8871f41610174062023-05-25 3:37:134 days 16 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xb785e98ce2a8a6eab69238a28441670b71014577845f68ce2e88a98a8871f41610174062023-05-25 3:37:134 days 16 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xe87f09685bac1dd4a40841c5412789b8a353e667126b85435891d27938f5c6ea10171322023-05-24 8:23:135 days 11 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xe87f09685bac1dd4a40841c5412789b8a353e667126b85435891d27938f5c6ea10171322023-05-24 8:23:135 days 11 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140x5008f837883ea9a07271a1b5eb0658404f5a96100 Ether
0xe87f09685bac1dd4a40841c5412789b8a353e667126b85435891d27938f5c6ea10171322023-05-24 8:23:135 days 11 hrs ago 0xb828dfc55b4883c6c587c1404f91af3cdbe94c14 0x31b9fbd965397d697d2daa434ebd219ab878e49b0 Ether
0xb62991113c1cdbf7dbe5eecfffc9116ebe3ea979bdcc4f89a052b6b8b6a40f1c10158252023-05-20 13:50:209 days 6 hrs ago 0x2849d33ccc4ccf426f53338bf0b8a2e33aa21672 0xb828dfc55b4883c6c587c1404f91af3cdbe94c140 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OolongStaker

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at bobascan.com on 2022-07-12
*/

// File: contracts/common/IERC20.sol

// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.6.12;

/**
 * @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: contracts/common/Context.sol

pragma solidity 0.6.12;

/*
 * @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 GSN 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 payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: contracts/common/SafeMath.sol

pragma solidity 0.6.12;

/**
 * @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.
     */
    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.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        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.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// File: contracts/common/Address.sol

pragma solidity 0.6.12;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: contracts/common/ERC20.sol

pragma solidity 0.6.12;





/**
 * @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 guidelines: functions revert instead
 * of 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 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    /**
     * @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. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * 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;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view 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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _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);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(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
     *
     * - `to` 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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(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);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is 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 Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    /**
     * @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 to 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 { }
}

// File: contracts/interfaces/IOolongStaker.sol

pragma solidity 0.6.12;

interface IOolongStaker {
    function enterFor(address _recipient, uint256 _amount) external;
}

// File: contracts/interfaces/IOolongFarm.sol

pragma solidity 0.6.12;

interface IOolongFarm {
  function poolInfo(uint _poolId) external view returns (address _lpToken, uint _allocPoint, uint _lastRewardTimestamp, uint _accOolongPerShare, address _bonusFarm);
  function userInfo(uint _poolId, address _user) external view returns (uint _balance, uint _rewardDebt);
  function deposit(uint256 _pid, uint256 _amount) external;
  function withdraw(uint256 _pid, uint256 _amount) external;
  function pendingOolong(uint256 _pid, address _user) external view returns (uint256);
}

// File: contracts/staking/OolongStaker.sol

pragma solidity 0.6.12;






// Bring your Oolongs to Oolong Staker to get Yield Earning Oolongs (YOLO) and get more Oolong!
// It auto compounds earned Oolongs for you, so you can stake and forget.
//
// Forked from the original SushiBar https://github.com/sushiswap/sushiswap/blob/canary/contracts/SushiBar.sol
// Changes:
// 1. Name changes
// 2. Add withdraw cooldown
// 3. Add stake for with whitelist
// 4. Add gate for public deposits
// 5. Add farm emission receiver
contract OolongStaker is ERC20("Yield Earning Oolong", "YOLO"), IOolongStaker {
    using SafeMath for uint256;

    /* ======== STATE VARIABLS ======== */

    IERC20 public oolong;
    // Used to allow staking from bonding only during initial period
    address public governance;
    mapping(address => bool) public isWhitelisted;
    bool public enablePublicStake = true;

    // Withdraw cooldown variables
    bool public enableCoolDown = true;
    uint256 public COOLDOWN_SECONDS = 5 * 86400; // 5 days
    uint256 public UNSTAKE_WINDOW = 2 * 86400; // 2 days
    mapping(address => uint256) public cooldownStartTime;

    // Farm emission states
    IOolongFarm public farm;
    IERC20 public stakingTokenWrappper;
    uint public pid;

    /* ======== CONSTRUCTOR ======== */

    // Define the OLO token contract
    constructor(IERC20 _oolong) public {
        oolong = _oolong;
        governance = msg.sender;
    }

    /* ======== FARM EMISSION FUNCTION ======== */

    // Initialize emission flow from farm
    function init(IOolongFarm _farm, IERC20 _stakingTokenWrapper, uint _pid) external onlyGov {
        require(address(farm) == address(0) && address(stakingTokenWrappper) == address(0), "already init");
        farm = _farm;
        stakingTokenWrappper = _stakingTokenWrapper;
        pid = _pid;

        // Deposit wrapper token into farm
        uint amount = stakingTokenWrappper.balanceOf(address(this));
        require(amount > 0, "nothing to be deposited");
        stakingTokenWrappper.approve(address(farm), amount);
        farm.deposit(pid, amount);
    }

    // Claim payout token from farm
    function claim() public {
        farm.deposit(pid, 0);
    }

    /* ======== VIEW FUNCTIONS ======== */

    // Total OLO Supply = OLO staked + reward pending
    function totalOLOBalance() external view returns (uint) {
        return oolong.balanceOf(address(this))
                           .add(IOolongFarm(farm).pendingOolong(pid, address(this)));
    }

    /* ======== MUTATIVE FUNCTIONS ======== */

    // Called by user to deposit OLO and stake
    function enter(uint256 _amount) external {
        require(enablePublicStake, "public staking not allowed");
        _enter(msg.sender, _amount);
    }

    // Called only by whitelisted contracts (i.e bond contracts)
    // This call is gated to avoid attacker resetting user cooldown times with continous small stakes
    function enterFor(address _recipient, uint256 _amount) external override onlyWhitelist {
        _enter(_recipient, _amount);
    }

    // Pay some OLOs. Earn some shares.
    // Locks OLO and mints YOLO
    function _enter(address _recipient, uint256 _amount) internal {
        claim();

        // Gets the amount of OLO locked in the contract
        uint256 totalOLO = oolong.balanceOf(address(this));
        // Gets the amount of YOLO in existence
        uint256 totalShares = totalSupply();
        // If no YOLO exists, mint it 1:1 to the amount put in
        if (totalShares == 0 || totalOLO == 0) {
            _mint(_recipient, _amount);
        }
        // Calculate and mint the amount of YOLO the OLO is worth. The ratio will change overtime, as YOLO is burned/minted and OLO deposited + gained from fees / withdrawn.
        else {
            uint256 what = _amount.mul(totalShares).div(totalOLO);
            _mint(_recipient, what);
        }
        // Lock the OLO in the contract
        oolong.transferFrom(msg.sender, address(this), _amount);

        // Clear cooldown timer
        cooldownStartTime[_recipient] = 0;

        emit Enter(msg.sender, _recipient, _amount);
    }

    // Activate withdraw cooldown
    function cooldown() external {
        require(balanceOf(msg.sender) != 0, 'INVALID_BALANCE_ON_COOLDOWN');
        cooldownStartTime[msg.sender] = block.timestamp;

        emit Cooldown(msg.sender);
    }

    // Claim back your OLOs.
    // Unlocks the staked + gained OLO and burns YOLO
    function leave(uint256 _share) public {
        claim();

        if (enableCoolDown) {
            // Only allow withdraw if user is in unstaking window
            uint256 cooldownStartTimestamp = cooldownStartTime[msg.sender];
            require(
              block.timestamp > cooldownStartTimestamp.add(COOLDOWN_SECONDS),
              'INSUFFICIENT_COOLDOWN'
            );
            require(
              block.timestamp.sub(cooldownStartTimestamp.add(COOLDOWN_SECONDS)) <= UNSTAKE_WINDOW,
              'UNSTAKE_WINDOW_FINISHED'
            );
        }

        // Gets the amount of YOLO in existence
        uint256 totalShares = totalSupply();
        // Calculates the amount of OLO the YOLO is worth
        uint256 what = _share.mul(oolong.balanceOf(address(this))).div(totalShares);
        _burn(msg.sender, _share);
        oolong.transfer(msg.sender, what);

        emit Leave(msg.sender, what);
    }

    /* ======== RESTRICTIVE FUNCTIONS ======== */

    function setGov(address _governance) external onlyGov {
        governance = _governance;
    }

    function addToWhitelist(address _user) external onlyGov {
        require(isWhitelisted[_user] == false, "already in whitelist");
        isWhitelisted[_user] = true;
        emit AddToWhitelist(_user);
    }

    function removeFromWhitelist(address _user) external onlyGov {
        require(isWhitelisted[_user] == true, "not in whitelist");
        isWhitelisted[_user] = false;
        emit RemoveFromWhitelist(_user);
    }

    function setEnablePublicStake() external onlyGov {
        enablePublicStake = true;
    }

    function setDisablePublicStake() external onlyGov {
        enablePublicStake = false;
    }

    function setEnableCooldown() external onlyGov {
        enableCoolDown = true;
    }

    function setDisableCooldown() external onlyGov {
        enableCoolDown = false;
    }

    function setCooldownSeconds(uint _cooldownSeconds) external onlyGov {
        require(_cooldownSeconds > 0, "Cannot set _cooldownSeconds to 0");
        COOLDOWN_SECONDS = _cooldownSeconds;
    }

    function setUnstakeWindow(uint _unstakeWindow) external onlyGov {
        require(_unstakeWindow > 0, "Cannot set _unstakeWindow to 0");
        UNSTAKE_WINDOW = _unstakeWindow;
    }

    /* ======== MODIFIERS ======== */

    modifier onlyGov() {
        require(msg.sender == governance, "!gov");
        _;
    }

    modifier onlyWhitelist() {
        require(isWhitelisted[msg.sender] == true, "!whitelist");
        _;
    }

    /* ======== EVENTS ======== */
    event Enter(address sender, address indexed recipient, uint oloAmount);
    event Leave(address indexed user, uint oloAmount);
    event Cooldown(address indexed user);
    event AddToWhitelist(address indexed user);
    event RemoveFromWhitelist(address indexed user);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_oolong","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"AddToWhitelist","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"Cooldown","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"oloAmount","type":"uint256"}],"name":"Enter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"oloAmount","type":"uint256"}],"name":"Leave","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"RemoveFromWhitelist","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":"COOLDOWN_SECONDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNSTAKE_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"addToWhitelist","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":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableCoolDown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enablePublicStake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"enter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"enterFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"farm","outputs":[{"internalType":"contract IOolongFarm","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IOolongFarm","name":"_farm","type":"address"},{"internalType":"contract IERC20","name":"_stakingTokenWrapper","type":"address"},{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_share","type":"uint256"}],"name":"leave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oolong","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cooldownSeconds","type":"uint256"}],"name":"setCooldownSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDisableCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setDisablePublicStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setEnableCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setEnablePublicStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_unstakeWindow","type":"uint256"}],"name":"setUnstakeWindow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingTokenWrappper","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOLOBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]

60806040526008805461ff001960ff1990911660011716610100179055620697806009556202a300600a553480156200003757600080fd5b506040516200223538038062002235833981810160405260208110156200005d57600080fd5b5051604080518082018252601481527f5969656c64204561726e696e67204f6f6c6f6e67000000000000000000000000602082810191825283518085019094526004845263594f4c4f60e01b908401528151919291620000c09160039162000122565b508051620000d690600490602084019062000122565b5050600580546001600160a01b0390931661010002610100600160a81b031960ff19909416601217939093169290921790915550600680546001600160a01b03191633179055620001be565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000195565b8280016001018555821562000195579182015b828111156200019557825182559160200191906001019062000178565b50620001a3929150620001a7565b5090565b5b80821115620001a35760008155600101620001a8565b61206780620001ce6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c8063787a08a611610130578063a9059cbb116100b8578063e43252d71161007c578063e43252d714610619578063ec0207561461063f578063f106845414610647578063f21097f41461064f578063f8f10dfc1461065757610232565b8063a9059cbb14610589578063b7f04181146105b5578063cfad57a2146105bd578063dd62ed3e146105e3578063e035df731461061157610232565b80638ab1d681116100ff5780638ab1d681146104e657806395d89b411461050c578063a457c2d714610514578063a47f07c014610540578063a59f3e0c1461056c57610232565b8063787a08a6146104835780637b5b11571461048b57806386863ec6146104a85780638825349e146104de57610232565b80633af32abf116101be5780635dab80da116101825780635dab80da1461040a57806367486d751461043057806367dfd4c91461043857806370a082311461045557806372b49d631461047b57610232565b80633af32abf146103c257806340feba7f146103e85780634478ed25146103f25780634e71d92d146103fa5780635aa6e6751461040257610232565b806323b872dd1161020557806323b872dd14610316578063313ce5671461034c578063359c4a961461036a57806336e9332d14610372578063395093511461039657610232565b806301ab0f3d1461023757806306fdde0314610253578063095ea7b3146102d057806318160ddd146102fc575b600080fd5b61023f610674565b604080519115158252519081900360200190f35b61025b61067d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029557818101518382015260200161027d565b50505050905090810190601f1680156102c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023f600480360360408110156102e657600080fd5b506001600160a01b038135169060200135610713565b610304610731565b60408051918252519081900360200190f35b61023f6004803603606081101561032c57600080fd5b506001600160a01b03813581169160208101359091169060400135610737565b6103546107be565b6040805160ff9092168252519081900360200190f35b6103046107c7565b61037a6107cd565b604080516001600160a01b039092168252519081900360200190f35b61023f600480360360408110156103ac57600080fd5b506001600160a01b0381351690602001356107dc565b61023f600480360360208110156103d857600080fd5b50356001600160a01b031661082a565b6103f061083f565b005b610304610893565b6103f06109a1565b61037a610a11565b6103046004803603602081101561042057600080fd5b50356001600160a01b0316610a20565b61037a610a32565b6103f06004803603602081101561044e57600080fd5b5035610a41565b6103046004803603602081101561046b57600080fd5b50356001600160a01b0316610cb4565b610304610ccf565b6103f0610cd5565b6103f0600480360360208110156104a157600080fd5b5035610d69565b6103f0600480360360608110156104be57600080fd5b506001600160a01b03813581169160208101359091169060400135610e0b565b6103f06110a8565b6103f0600480360360208110156104fc57600080fd5b50356001600160a01b03166110fd565b61025b6111f3565b61023f6004803603604081101561052a57600080fd5b506001600160a01b038135169060200135611254565b6103f06004803603604081101561055657600080fd5b506001600160a01b0381351690602001356112bc565b6103f06004803603602081101561058257600080fd5b5035611320565b61023f6004803603604081101561059f57600080fd5b506001600160a01b038135169060200135611384565b6103f0611398565b6103f0600480360360208110156105d357600080fd5b50356001600160a01b03166113f1565b610304600480360360408110156105f957600080fd5b506001600160a01b038135811691602001351661145b565b61037a611486565b6103f06004803603602081101561062f57600080fd5b50356001600160a01b031661149a565b6103f0611593565b6103046115ea565b61023f6115f0565b6103f06004803603602081101561066d57600080fd5b50356115fe565b60085460ff1681565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107095780601f106106de57610100808354040283529160200191610709565b820191906000526020600020905b8154815290600101906020018083116106ec57829003601f168201915b5050505050905090565b60006107276107206116a0565b84846116a4565b5060015b92915050565b60025490565b6000610744848484611790565b6107b4846107506116a0565b6107af85604051806060016040528060288152602001611f7b602891396001600160a01b038a1660009081526001602052604081209061078e6116a0565b6001600160a01b0316815260208101919091526040016000205491906118eb565b6116a4565b5060019392505050565b60055460ff1690565b600a5481565b600c546001600160a01b031681565b60006107276107e96116a0565b846107af85600160006107fa6116a0565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611982565b60076020526000908152604090205460ff1681565b6006546001600160a01b03163314610887576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6008805460ff19169055565b600c54600e5460408051631dd3b55760e21b815260048101929092523060248301525160009261099c926001600160a01b039091169163774ed55c91604480820192602092909190829003018186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d602081101561091957600080fd5b5051600554604080516370a0823160e01b815230600482015290516101009092046001600160a01b0316916370a0823191602480820192602092909190829003018186803b15801561096a57600080fd5b505afa15801561097e573d6000803e3d6000fd5b505050506040513d602081101561099457600080fd5b505190611982565b905090565b600c54600e5460408051631c57762b60e31b8152600481019290925260006024830181905290516001600160a01b039093169263e2bbb15892604480820193929182900301818387803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b50505050565b6006546001600160a01b031681565b600b6020526000908152604090205481565b600d546001600160a01b031681565b610a496109a1565b600854610100900460ff1615610b3957336000908152600b6020526040902054600954610a77908290611982565b4211610ac2576040805162461bcd60e51b815260206004820152601560248201527424a729aaa32324a1a4a2a72a2fa1a7a7a62227aba760591b604482015290519081900360640190fd5b600a54610ae4610add6009548461198290919063ffffffff16565b42906119e3565b1115610b37576040805162461bcd60e51b815260206004820152601760248201527f554e5354414b455f57494e444f575f46494e4953484544000000000000000000604482015290519081900360640190fd5b505b6000610b43610731565b90506000610be982610be3600560019054906101000a90046001600160a01b03166001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610bb057600080fd5b505afa158015610bc4573d6000803e3d6000fd5b505050506040513d6020811015610bda57600080fd5b50518690611a25565b90611a7e565b9050610bf53384611ac0565b6005546040805163a9059cbb60e01b81523360048201526024810184905290516101009092046001600160a01b03169163a9059cbb916044808201926020929091908290030181600087803b158015610c4d57600080fd5b505af1158015610c61573d6000803e3d6000fd5b505050506040513d6020811015610c7757600080fd5b505060408051828152905133917f61a26f7c17d8780c095ccfa67e689a13ee4e06ddce3da18956369f4a396100e8919081900360200190a2505050565b6001600160a01b031660009081526020819052604090205490565b60095481565b610cde33610cb4565b610d2f576040805162461bcd60e51b815260206004820152601b60248201527f494e56414c49445f42414c414e43455f4f4e5f434f4f4c444f574e0000000000604482015290519081900360640190fd5b336000818152600b6020526040808220429055517ff52f50426b32362d3e6bb8cb36b7074756b224622def6352a59eac7f66ebe6e89190a2565b6006546001600160a01b03163314610db1576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b60008111610e06576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574205f636f6f6c646f776e5365636f6e647320746f2030604482015290519081900360640190fd5b600955565b6006546001600160a01b03163314610e53576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600c546001600160a01b0316158015610e755750600d546001600160a01b0316155b610eb5576040805162461bcd60e51b815260206004820152600c60248201526b185b1c9958591e481a5b9a5d60a21b604482015290519081900360640190fd5b600c80546001600160a01b038086166001600160a01b031992831617909255600d805485841692169190911790819055600e839055604080516370a0823160e01b8152306004820152905160009392909216916370a0823191602480820192602092909190829003018186803b158015610f2e57600080fd5b505afa158015610f42573d6000803e3d6000fd5b505050506040513d6020811015610f5857600080fd5b5051905080610fae576040805162461bcd60e51b815260206004820152601760248201527f6e6f7468696e6720746f206265206465706f7369746564000000000000000000604482015290519081900360640190fd5b600d54600c546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561100757600080fd5b505af115801561101b573d6000803e3d6000fd5b505050506040513d602081101561103157600080fd5b5050600c54600e5460408051631c57762b60e31b8152600481019290925260248201849052516001600160a01b039092169163e2bbb1589160448082019260009290919082900301818387803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b5050505050505050565b6006546001600160a01b031633146110f0576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6008805461ff0019169055565b6006546001600160a01b03163314611145576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff1615156001146111aa576040805162461bcd60e51b815260206004820152601060248201526f1b9bdd081a5b881dda1a5d195b1a5cdd60821b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020526040808220805460ff19169055517f1f756c8b089af6b33ee121fee8badac2553a2fa89c0575ea91ff8792617746c29190a250565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107095780601f106106de57610100808354040283529160200191610709565b60006107276112616116a0565b846107af8560405180606001604052806025815260200161200d602591396001600061128b6116a0565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906118eb565b3360009081526007602052604090205460ff161515600114611312576040805162461bcd60e51b815260206004820152600a602482015269085dda1a5d195b1a5cdd60b21b604482015290519081900360640190fd5b61131c8282611bbc565b5050565b60085460ff16611377576040805162461bcd60e51b815260206004820152601a60248201527f7075626c6963207374616b696e67206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6113813382611bbc565b50565b60006107276113916116a0565b8484611790565b6006546001600160a01b031633146113e0576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6008805461ff001916610100179055565b6006546001600160a01b03163314611439576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60055461010090046001600160a01b031681565b6006546001600160a01b031633146114e2576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff1615611547576040805162461bcd60e51b8152602060048201526014602482015273185b1c9958591e481a5b881dda1a5d195b1a5cdd60621b604482015290519081900360640190fd5b6001600160a01b038116600081815260076020526040808220805460ff19166001179055517f75b2135d1c8c3519f3c09c43fe6527089ef09f40c7981ebf0ed46e79e79032c79190a250565b6006546001600160a01b031633146115db576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6008805460ff19166001179055565b600e5481565b600854610100900460ff1681565b6006546001600160a01b03163314611646576040805162461bcd60e51b8152602060048083019190915260248201526310b3b7bb60e11b604482015290519081900360640190fd5b6000811161169b576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420736574205f756e7374616b6557696e646f7720746f20300000604482015290519081900360640190fd5b600a55565b3390565b6001600160a01b0383166116e95760405162461bcd60e51b8152600401808060200182810382526024815260200180611fe96024913960400191505060405180910390fd5b6001600160a01b03821661172e5760405162461bcd60e51b8152600401808060200182810382526022815260200180611f126022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166117d55760405162461bcd60e51b8152600401808060200182810382526025815260200180611fc46025913960400191505060405180910390fd5b6001600160a01b03821661181a5760405162461bcd60e51b8152600401808060200182810382526023815260200180611ecd6023913960400191505060405180910390fd5b611825838383611d72565b61186281604051806060016040528060268152602001611f34602691396001600160a01b03861660009081526020819052604090205491906118eb565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546118919082611982565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561197a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561193f578181015183820152602001611927565b50505050905090810190601f16801561196c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156119dc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006119dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118eb565b600082611a345750600061072b565b82820282848281611a4157fe5b04146119dc5760405162461bcd60e51b8152600401808060200182810382526021815260200180611f5a6021913960400191505060405180910390fd5b60006119dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d77565b6001600160a01b038216611b055760405162461bcd60e51b8152600401808060200182810382526021815260200180611fa36021913960400191505060405180910390fd5b611b1182600083611d72565b611b4e81604051806060016040528060228152602001611ef0602291396001600160a01b03851660009081526020819052604090205491906118eb565b6001600160a01b038316600090815260208190526040902055600254611b7490826119e3565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b611bc46109a1565b600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611c1457600080fd5b505afa158015611c28573d6000803e3d6000fd5b505050506040513d6020811015611c3e57600080fd5b505190506000611c4c610731565b9050801580611c59575081155b15611c6d57611c688484611ddc565b611c8b565b6000611c7d83610be38685611a25565b9050611c898582611ddc565b505b600554604080516323b872dd60e01b81523360048201523060248201526044810186905290516101009092046001600160a01b0316916323b872dd916064808201926020929091908290030181600087803b158015611ce957600080fd5b505af1158015611cfd573d6000803e3d6000fd5b505050506040513d6020811015611d1357600080fd5b50506001600160a01b0384166000818152600b6020908152604080832092909255815133815290810186905281517f6014ec19402c9c44de7b5dc0b7c3e24c9940998a9a9dc393502f06f1e6fbcc26929181900390910190a250505050565b505050565b60008183611dc65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561193f578181015183820152602001611927565b506000838581611dd257fe5b0495945050505050565b6001600160a01b038216611e37576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611e4360008383611d72565b600254611e509082611982565b6002556001600160a01b038216600090815260208190526040902054611e769082611982565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220448e90a95b482003ca9eaa9f7c552290f508c111c969af8d90c82f2c6a44de7e64736f6c634300060c00330000000000000000000000005008f837883ea9a07271a1b5eb0658404f5a9610

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

0000000000000000000000005008f837883ea9a07271a1b5eb0658404f5a9610

-----Decoded View---------------
Arg [0] : _oolong (address): 0x5008f837883ea9a07271a1b5eb0658404f5a9610

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005008f837883ea9a07271a1b5eb0658404f5a9610


Deployed ByteCode Sourcemap

27675:6998:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28022:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;17547:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19653:169;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19653:169:0;;;;;;;;:::i;18622:100::-;;;:::i;:::-;;;;;;;;;;;;;;;;20296:321;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20296:321:0;;;;;;;;;;;;;;;;;:::i;18474:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28203:41;;;:::i;28351:23::-;;;:::i;:::-;;;;-1:-1:-1;;;;;28351:23:0;;;;;;;;;;;;;;21026:218;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21026:218:0;;;;;;;;:::i;27970:45::-;;;;;;;;;;;;;;;;-1:-1:-1;27970:45:0;-1:-1:-1;;;;;27970:45:0;;:::i;33409:94::-;;;:::i;:::-;;29530:199;;;:::i;29358:63::-;;;:::i;27938:25::-;;;:::i;28261:52::-;;;;;;;;;;;;;;;;-1:-1:-1;28261:52:0;-1:-1:-1;;;;;28261:52:0;;:::i;28381:34::-;;;:::i;31747:950::-;;;;;;;;;;;;;;;;-1:-1:-1;31747:950:0;;:::i;18785:119::-;;;;;;;;;;;;;;;;-1:-1:-1;18785:119:0;-1:-1:-1;;;;;18785:119:0;;:::i;28143:43::-;;;:::i;31444:210::-;;;:::i;33701:198::-;;;;;;;;;;;;;;;;-1:-1:-1;33701:198:0;;:::i;28736:577::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28736:577:0;;;;;;;;;;;;;;;;;:::i;33605:88::-;;;:::i;33083:218::-;;;;;;;;;;;;;;;;-1:-1:-1;33083:218:0;-1:-1:-1;;;;;33083:218:0;;:::i;17749:87::-;;;:::i;21747:269::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;21747:269:0;;;;;;;;:::i;30166:133::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30166:133:0;;;;;;;;:::i;29835:154::-;;;;;;;;;;;;;;;;-1:-1:-1;29835:154:0;;:::i;19117:175::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19117:175:0;;;;;;;;:::i;33511:86::-;;;:::i;32758:97::-;;;;;;;;;;;;;;;;-1:-1:-1;32758:97:0;-1:-1:-1;;;;;32758:97:0;;:::i;19355:151::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19355:151:0;;;;;;;;;;:::i;27841:20::-;;;:::i;32863:212::-;;;;;;;;;;;;;;;;-1:-1:-1;32863:212:0;-1:-1:-1;;;;;32863:212:0;;:::i;33309:92::-;;;:::i;28422:15::-;;;:::i;28103:33::-;;;:::i;33907:186::-;;;;;;;;;;;;;;;;-1:-1:-1;33907:186:0;;:::i;28022:36::-;;;;;;:::o;17547:83::-;17617:5;17610:12;;;;;;;;-1:-1:-1;;17610:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17584:13;;17610:12;;17617:5;;17610:12;;17617:5;17610:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17547:83;:::o;19653:169::-;19736:4;19753:39;19762:12;:10;:12::i;:::-;19776:7;19785:6;19753:8;:39::i;:::-;-1:-1:-1;19810:4:0;19653:169;;;;;:::o;18622:100::-;18702:12;;18622:100;:::o;20296:321::-;20402:4;20419:36;20429:6;20437:9;20448:6;20419:9;:36::i;:::-;20466:121;20475:6;20483:12;:10;:12::i;:::-;20497:89;20535:6;20497:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20497:19:0;;;;;;:11;:19;;;;;;20517:12;:10;:12::i;:::-;-1:-1:-1;;;;;20497:33:0;;;;;;;;;;;;-1:-1:-1;20497:33:0;;;:89;:37;:89::i;:::-;20466:8;:121::i;:::-;-1:-1:-1;20605:4:0;20296:321;;;;;:::o;18474:83::-;18540:9;;;;18474:83;:::o;28203:41::-;;;;:::o;28351:23::-;;;-1:-1:-1;;;;;28351:23:0;;:::o;21026:218::-;21114:4;21131:83;21140:12;:10;:12::i;:::-;21154:7;21163:50;21202:10;21163:11;:25;21175:12;:10;:12::i;:::-;-1:-1:-1;;;;;21163:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;21163:25:0;;;:34;;;;;;;;;;;:38;:50::i;27970:45::-;;;;;;;;;;;;;;;:::o;33409:94::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;33470:17:::1;:25:::0;;-1:-1:-1;;33470:25:0::1;::::0;;33409:94::o;29530:199::-;29681:4;;29701:3;;29669:51;;;-1:-1:-1;;;29669:51:0;;;;;;;;;29714:4;29669:51;;;;;29580:4;;29604:117;;-1:-1:-1;;;;;29681:4:0;;;;29669:31;;:51;;;;;;;;;;;;;;;29681:4;29669:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29669:51:0;29604:6;;:31;;;-1:-1:-1;;;29604:31:0;;29629:4;29604:31;;;;;;:6;;;;-1:-1:-1;;;;;29604:6:0;;:16;;:31;;;;;29669:51;;29604:31;;;;;;;;:6;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29604:31:0;;:64;:117::i;:::-;29597:124;;29530:199;:::o;29358:63::-;29393:4;;29406:3;;29393:20;;;-1:-1:-1;;;29393:20:0;;;;;;;;;:4;:20;;;;;;;;-1:-1:-1;;;;;29393:4:0;;;;:12;;:20;;;;;:4;:20;;;;;;:4;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29358:63::o;27938:25::-;;;-1:-1:-1;;;;;27938:25:0;;:::o;28261:52::-;;;;;;;;;;;;;:::o;28381:34::-;;;-1:-1:-1;;;;;28381:34:0;;:::o;31747:950::-;31796:7;:5;:7::i;:::-;31820:14;;;;;;;31816:511;;;31969:10;31918:30;31951:29;;;:17;:29;;;;;;32064:16;;32037:44;;31951:29;;32037:26;:44::i;:::-;32019:15;:62;31995:141;;;;;-1:-1:-1;;;31995:141:0;;;;;;;;;;;;-1:-1:-1;;;31995:141:0;;;;;;;;;;;;;;;32244:14;;32175:65;32195:44;32222:16;;32195:22;:26;;:44;;;;:::i;:::-;32175:15;;:19;:65::i;:::-;:83;;32151:164;;;;;-1:-1:-1;;;32151:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;31816:511;;32388:19;32410:13;:11;:13::i;:::-;32388:35;;32493:12;32508:60;32556:11;32508:43;32519:6;;;;;;;;;-1:-1:-1;;;;;32519:6:0;-1:-1:-1;;;;;32519:16:0;;32544:4;32519:31;;;;;;;;;;;;;-1:-1:-1;;;;;32519:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32519:31:0;32508:6;;:10;:43::i;:::-;:47;;:60::i;:::-;32493:75;;32579:25;32585:10;32597:6;32579:5;:25::i;:::-;32615:6;;:33;;;-1:-1:-1;;;32615:33:0;;32631:10;32615:33;;;;;;;;;;;;:6;;;;-1:-1:-1;;;;;32615:6:0;;:15;;:33;;;;;;;;;;;;;;;-1:-1:-1;32615:6:0;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;32666:23:0;;;;;;;;32672:10;;32666:23;;;;;;32615:33;32666:23;;;31747:950;;;:::o;18785:119::-;-1:-1:-1;;;;;18878:18:0;18851:7;18878:18;;;;;;;;;;;;18785:119::o;28143:43::-;;;;:::o;31444:210::-;31492:21;31502:10;31492:9;:21::i;:::-;31484:66;;;;;-1:-1:-1;;;31484:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;31579:10;31561:29;;;;:17;:29;;;;;;31593:15;31561:47;;31626:20;;;31561:29;31626:20;31444:210::o;33701:198::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;33807:1:::1;33788:16;:20;33780:65;;;::::0;;-1:-1:-1;;;33780:65:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;33856:16;:35:::0;33701:198::o;28736:577::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;28853:4:::1;::::0;-1:-1:-1;;;;;28853:4:0::1;28845:27:::0;:74;::::1;;;-1:-1:-1::0;28884:20:0::1;::::0;-1:-1:-1;;;;;28884:20:0::1;28876:43:::0;28845:74:::1;28837:99;;;::::0;;-1:-1:-1;;;28837:99:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;28837:99:0;;;;;;;;;;;;;::::1;;28947:4;:12:::0;;-1:-1:-1;;;;;28947:12:0;;::::1;-1:-1:-1::0;;;;;;28947:12:0;;::::1;;::::0;;;28970:20:::1;:43:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;29024:3:::1;:10:::0;;;29105:45:::1;::::0;;-1:-1:-1;;;29105:45:0;;29144:4:::1;29105:45;::::0;::::1;::::0;;;28947:4:::1;::::0;29105:20;;;::::1;::::0;:30:::1;::::0;:45;;;;;::::1;::::0;;;;;;;;;:20;:45;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;29105:45:0;;-1:-1:-1;29169:10:0;29161:46:::1;;;::::0;;-1:-1:-1;;;29161:46:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;29218:20;::::0;29255:4:::1;::::0;29218:51:::1;::::0;;-1:-1:-1;;;29218:51:0;;-1:-1:-1;;;;;29255:4:0;;::::1;29218:51;::::0;::::1;::::0;;;;;;;;;:20;;;::::1;::::0;:28:::1;::::0;:51;;;;;::::1;::::0;;;;;;;;:20:::1;::::0;:51;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;29280:4:0::1;::::0;29293:3:::1;::::0;29280:25:::1;::::0;;-1:-1:-1;;;29280:25:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;29280:4:0;;::::1;::::0;:12:::1;::::0;:25;;;;;:4:::1;::::0;:25;;;;;;;;:4;;:25;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;34224:1;28736:577:::0;;;:::o;33605:88::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;33663:14:::1;:22:::0;;-1:-1:-1;;33663:22:0::1;::::0;;33605:88::o;33083:218::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33163:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;:28;;:20:::0;:28:::1;33155:57;;;::::0;;-1:-1:-1;;;33155:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33155:57:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;33223:20:0;::::1;33246:5;33223:20:::0;;;:13:::1;:20;::::0;;;;;:28;;-1:-1:-1;;33223:28:0::1;::::0;;33267:26;::::1;::::0;33246:5;33267:26:::1;33083:218:::0;:::o;17749:87::-;17821:7;17814:14;;;;;;;;-1:-1:-1;;17814:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17788:13;;17814:14;;17821:7;;17814:14;;17821:7;17814:14;;;;;;;;;;;;;;;;;;;;;;;;21747:269;21840:4;21857:129;21866:12;:10;:12::i;:::-;21880:7;21889:96;21928:15;21889:96;;;;;;;;;;;;;;;;;:11;:25;21901:12;:10;:12::i;:::-;-1:-1:-1;;;;;21889:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;21889:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;30166:133::-;34299:10;34285:25;;;;:13;:25;;;;;;;;:33;;:25;:33;34277:56;;;;;-1:-1:-1;;;34277:56:0;;;;;;;;;;;;-1:-1:-1;;;34277:56:0;;;;;;;;;;;;;;;30264:27:::1;30271:10;30283:7;30264:6;:27::i;:::-;30166:133:::0;;:::o;29835:154::-;29895:17;;;;29887:56;;;;;-1:-1:-1;;;29887:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;29954:27;29961:10;29973:7;29954:6;:27::i;:::-;29835:154;:::o;19117:175::-;19203:4;19220:42;19230:12;:10;:12::i;:::-;19244:9;19255:6;19220:9;:42::i;33511:86::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;33568:14:::1;:21:::0;;-1:-1:-1;;33568:21:0::1;;;::::0;;33511:86::o;32758:97::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;32823:10:::1;:24:::0;;-1:-1:-1;;;;;;32823:24:0::1;-1:-1:-1::0;;;;;32823:24:0;;;::::1;::::0;;;::::1;::::0;;32758:97::o;19355:151::-;-1:-1:-1;;;;;19471:18:0;;;19444:7;19471:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19355:151::o;27841:20::-;;;;;;-1:-1:-1;;;;;27841:20:0;;:::o;32863:212::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;32938:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;:29;32930:62;;;::::0;;-1:-1:-1;;;32930:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;32930:62:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;33003:20:0;::::1;;::::0;;;:13:::1;:20;::::0;;;;;:27;;-1:-1:-1;;33003:27:0::1;33026:4;33003:27;::::0;;33046:21;::::1;::::0;33003:20;33046:21:::1;32863:212:::0;:::o;33309:92::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;33369:17:::1;:24:::0;;-1:-1:-1;;33369:24:0::1;33389:4;33369:24;::::0;;33309:92::o;28422:15::-;;;;:::o;28103:33::-;;;;;;;;;:::o;33907:186::-;34194:10;;-1:-1:-1;;;;;34194:10:0;34180;:24;34172:41;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;34172:41:0;;;;;;;;;;;;;;;34007:1:::1;33990:14;:18;33982:61;;;::::0;;-1:-1:-1;;;33982:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34054:14;:31:::0;33907:186::o;3430:106::-;3518:10;3430:106;:::o;24894:346::-;-1:-1:-1;;;;;24996:19:0;;24988:68;;;;-1:-1:-1;;;24988:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25075:21:0;;25067:68;;;;-1:-1:-1;;;25067:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25148:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;25200:32;;;;;;;;;;;;;;;;;24894:346;;;:::o;22506:539::-;-1:-1:-1;;;;;22612:20:0;;22604:70;;;;-1:-1:-1;;;22604:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22693:23:0;;22685:71;;;;-1:-1:-1;;;22685:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22769:47;22790:6;22798:9;22809:6;22769:20;:47::i;:::-;22849:71;22871:6;22849:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22849:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;22829:17:0;;;:9;:17;;;;;;;;;;;:91;;;;22954:20;;;;;;;:32;;22979:6;22954:24;:32::i;:::-;-1:-1:-1;;;;;22931:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;23002:35;;;;;;;22931:20;;23002:35;;;;;;;;;;;;;22506:539;;;:::o;5596:192::-;5682:7;5718:12;5710:6;;;;5702:29;;;;-1:-1:-1;;;5702:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5754:5:0;;;5596:192::o;4693:181::-;4751:7;4783:5;;;4807:6;;;;4799:46;;;;;-1:-1:-1;;;4799:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4865:1;4693:181;-1:-1:-1;;;4693:181:0:o;5157:136::-;5215:7;5242:43;5246:1;5249;5242:43;;;;;;;;;;;;;;;;;:3;:43::i;6047:471::-;6105:7;6350:6;6346:47;;-1:-1:-1;6380:1:0;6373:8;;6346:47;6417:5;;;6421:1;6417;:5;:1;6441:5;;;;;:10;6433:56;;;;-1:-1:-1;;;6433:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6994:132;7052:7;7079:39;7083:1;7086;7079:39;;;;;;;;;;;;;;;;;:3;:39::i;24036:418::-;-1:-1:-1;;;;;24120:21:0;;24112:67;;;;-1:-1:-1;;;24112:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24192:49;24213:7;24230:1;24234:6;24192:20;:49::i;:::-;24275:68;24298:6;24275:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24275:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;24254:18:0;;:9;:18;;;;;;;;;;:89;24369:12;;:24;;24386:6;24369:16;:24::i;:::-;24354:12;:39;24409:37;;;;;;;;24435:1;;-1:-1:-1;;;;;24409:37:0;;;;;;;;;;;;24036:418;;:::o;30381:1020::-;30454:7;:5;:7::i;:::-;30551:6;;:31;;;-1:-1:-1;;;30551:31:0;;30576:4;30551:31;;;;;;-1:-1:-1;;30551:6:0;;;-1:-1:-1;;;;;30551:6:0;;:16;;:31;;;;;;;;;;;;;;:6;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30551:31:0;;-1:-1:-1;30642:19:0;30664:13;:11;:13::i;:::-;30642:35;-1:-1:-1;30756:16:0;;;:33;;-1:-1:-1;30776:13:0;;30756:33;30752:400;;;30806:26;30812:10;30824:7;30806:5;:26::i;:::-;30752:400;;;31049:12;31064:38;31093:8;31064:24;:7;31076:11;31064;:24::i;:38::-;31049:53;;31117:23;31123:10;31135:4;31117:5;:23::i;:::-;30752:400;;31203:6;;:55;;;-1:-1:-1;;;31203:55:0;;31223:10;31203:55;;;;31243:4;31203:55;;;;;;;;;;;;:6;;;;-1:-1:-1;;;;;31203:6:0;;:19;;:55;;;;;;;;;;;;;;;-1:-1:-1;31203:6:0;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;31304:29:0;;31336:1;31304:29;;;:17;31203:55;31304:29;;;;;;;:33;;;;31355:38;;31361:10;31355:38;;;;;;;;;;;;;;;;;;;;;30381:1020;;;;:::o;26265:92::-;;;;:::o;7622:278::-;7708:7;7743:12;7736:5;7728:28;;;;-1:-1:-1;;;7728:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7767:9;7783:1;7779;:5;;;;;;;7622:278;-1:-1:-1;;;;;7622:278:0:o;23326:378::-;-1:-1:-1;;;;;23410:21:0;;23402:65;;;;;-1:-1:-1;;;23402:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23480:49;23509:1;23513:7;23522:6;23480:20;:49::i;:::-;23557:12;;:24;;23574:6;23557:16;:24::i;:::-;23542:12;:39;-1:-1:-1;;;;;23613:18:0;;:9;:18;;;;;;;;;;;:30;;23636:6;23613:22;:30::i;:::-;-1:-1:-1;;;;;23592:18:0;;:9;:18;;;;;;;;;;;:51;;;;23659:37;;;;;;;23592:18;;:9;;23659:37;;;;;;;;;;23326:378;;:::o

Swarm Source

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