Contract 0xE05D2A6b97dce9B8e59ad074c2E4b6D51a24aAe3

 
Ad
Crypto.com
Txn Hash
Block
From
To
Value
0x3b01aa7bbcb8a721b762e693cb293918b101bb9270af74fa643ab22a641204a2119604632021-03-02 18:28:145 days 23 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.1263576136
0x6881371ed23cc62fefac571edc2f3fd23c9617ffbad99e16607b4d534287417f119542132021-03-01 19:31:456 days 22 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.08739566110
0x51b941ded8b051c0f490be08cd524fb313b9145cb5ceca9a4fe7ac4802a20152119526172021-03-01 13:37:197 days 4 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00665418130
0xf8cf286a8c8c66f4d40702f97649ce519110924e2b494695399a25cf1b592a56119460942021-02-28 13:29:298 days 4 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.0041963280
0xe29ad43345404337fa2f207aa4039a3f31a4d856b5d5063f9f21ca8c6970ee05119352682021-02-26 21:25:549 days 20 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00614232120
0xc4e1971afff5fa494ee0f00689853b3b6001d4a0b759836b74cf58cfdfa7dbd9119285232021-02-25 20:35:4810 days 21 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.006635431126.5
0xbf7afdf65a0da858891377a68609bfde125ae5d0456bada2ec8cb9225bc7f1b2119149652021-02-23 18:22:5213 days 1 min agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.1450605195
0xe99f264768bddfa4a0152ddeee38558fe308251741301a1c4f9a84616c9bf2d3118984742021-02-21 5:42:5915 days 12 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.006705366131
0xd40dc29ed50fe860dc60cd01fe708a972578f67f3a0796815aabeada755d3fc9118901932021-02-19 22:55:5516 days 19 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.013533132258
0xd67367b3fa4f7a51398a20f879a3cf744a0b6d66a6f82805eaf74d8535a3b817118693912021-02-16 18:11:2320 days 13 mins agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.19094464160
0x9637a2e5499f3887f5956b295b220c5a5685f47d4ba3e4444a6e80185cd7bf3d118560872021-02-14 17:11:0922 days 1 hr agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.006347064124
0xc7f4723ab37cf70f9b4d6598221dc94f7cd2816cc72998764105a5f6181e568e118494662021-02-13 16:50:1023 days 1 hr agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00788803252150.38
0xafcb0c42c3811c5b6bbc7febff4793d4216ebf7e78f2e310448b649d21709ce5118485332021-02-13 13:30:2123 days 4 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.005210784144
0xd0c0f7522e38c0073f80dd848502a88218fcb3207a520a1f8e6b5416ba173aa1118420412021-02-12 13:21:3724 days 5 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.009494174181
0x47a3dae4a93877d51004c8aebaad5fdda76df74fcfc77d9db0c622500e1e9886118237912021-02-09 18:00:1327 days 24 mins agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.331588355161
0x72e6cf0e3e1ca39308c4d722dc105fac15598ee446db35e24f2c81e3a0ff5c3d117999842021-02-06 2:20:2130 days 16 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00687534190
0xf8a8627f4eeab6bb63d3dba8784ef14a5e42d59c030f0910dfc21226e1a5cd34117934552021-02-05 2:00:0831 days 16 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.006346934121
0x59f4acf9382b4188dd724c96e3d22e6685e0d5cefc797f9669f6d149acbe1b79117848892021-02-03 18:26:3632 days 23 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.005898318163
0x567fba781c23844c2900f811076e34e65dfd070748c42c9aa3c72e728d9cb503117782042021-02-02 17:38:4834 days 45 mins agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.2456766120
0x06f04fc3598c222b2dd894867774d589a58460914f653705a2f2b7d35f96ef2d117767642021-02-02 12:18:1934 days 6 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.006707306139
0xf41709f55f573959ce584ef07f568851f8fc4aba476e2770c1c21866b2fb8b66117394272021-01-27 18:15:1240 days 9 mins agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.0023520965
0x836b28c0379ada10bc88dd1d0be23da3e8ae57bfde72c3a6b8b715f2873f2bb1117329242021-01-26 18:12:5441 days 11 mins agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00419809887
0xf742f4ff13548c5302bf14aa0d3a70b13c7fd6cf0a921cc6d3863dde5f002ef7117326822021-01-26 17:19:1441 days 1 hr agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.12343038474569.505
0x52b03556f774f9a1654b43da1d65f5af5ee7f9a6f9de4b950420f1bf1f2bdef2117215402021-01-25 0:17:1642 days 18 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.004306134119
0xe586d0cfe6733f2d77aebd013109776d808df4586ed300dedf49df4bd04b869f117149142021-01-23 23:47:0843 days 18 hrs agoStabilize Finance: Deployer IN  0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30 Ether0.00275047857
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3b01aa7bbcb8a721b762e693cb293918b101bb9270af74fa643ab22a641204a2119604632021-03-02 18:28:145 days 23 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.0289338 Ether
0x3b01aa7bbcb8a721b762e693cb293918b101bb9270af74fa643ab22a641204a2119604632021-03-02 18:28:145 days 23 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.0289338 Ether
0x6881371ed23cc62fefac571edc2f3fd23c9617ffbad99e16607b4d534287417f119542132021-03-01 19:31:456 days 22 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.02414061 Ether
0x6881371ed23cc62fefac571edc2f3fd23c9617ffbad99e16607b4d534287417f119542132021-03-01 19:31:456 days 22 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.02414061 Ether
0xbf7afdf65a0da858891377a68609bfde125ae5d0456bada2ec8cb9225bc7f1b2119149652021-02-23 18:22:5213 days 1 min ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.0232518 Ether
0xbf7afdf65a0da858891377a68609bfde125ae5d0456bada2ec8cb9225bc7f1b2119149652021-02-23 18:22:5213 days 1 min ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.0232518 Ether
0xd67367b3fa4f7a51398a20f879a3cf744a0b6d66a6f82805eaf74d8535a3b817118693912021-02-16 18:11:2320 days 13 mins ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.03623292 Ether
0xd67367b3fa4f7a51398a20f879a3cf744a0b6d66a6f82805eaf74d8535a3b817118693912021-02-16 18:11:2320 days 13 mins ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.03623292 Ether
0x47a3dae4a93877d51004c8aebaad5fdda76df74fcfc77d9db0c622500e1e9886118237912021-02-09 18:00:1327 days 24 mins ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.06221745 Ether
0x47a3dae4a93877d51004c8aebaad5fdda76df74fcfc77d9db0c622500e1e9886118237912021-02-09 18:00:1327 days 24 mins ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.06221745 Ether
0x567fba781c23844c2900f811076e34e65dfd070748c42c9aa3c72e728d9cb503117782042021-02-02 17:38:4834 days 45 mins ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.06184995 Ether
0x567fba781c23844c2900f811076e34e65dfd070748c42c9aa3c72e728d9cb503117782042021-02-02 17:38:4834 days 45 mins ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.06184995 Ether
0xf742f4ff13548c5302bf14aa0d3a70b13c7fd6cf0a921cc6d3863dde5f002ef7117326822021-01-26 17:19:1441 days 1 hr ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.05370627 Ether
0xf742f4ff13548c5302bf14aa0d3a70b13c7fd6cf0a921cc6d3863dde5f002ef7117326822021-01-26 17:19:1441 days 1 hr ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.05370627 Ether
0x5fa9a71fd4b62822ffdae876857f609d462aebacecce16f7363ab9b39ee90890117147412021-01-23 23:07:5143 days 19 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.04666491 Ether
0x5fa9a71fd4b62822ffdae876857f609d462aebacecce16f7363ab9b39ee90890117147412021-01-23 23:07:5143 days 19 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.04666491 Ether
0xff1edeb82c744e1df3386598619e7cc8446596893b61464210907fb200918814116895952021-01-20 2:34:0347 days 15 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.04951308 Ether
0xff1edeb82c744e1df3386598619e7cc8446596893b61464210907fb200918814116895952021-01-20 2:34:0347 days 15 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.04951308 Ether
0xeac9f37c9788f8b87f6d16dff60147c8ddfbbb2cad2ce236014d013967ee9edd116870592021-01-19 17:17:2148 days 1 hr ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.05834802 Ether
0xeac9f37c9788f8b87f6d16dff60147c8ddfbbb2cad2ce236014d013967ee9edd116870592021-01-19 17:17:2148 days 1 hr ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.05834802 Ether
0xc8867245978ba848e976c0595134c5fbc5bc85f2ea15b34b2596ea42a33451b0116464782021-01-13 12:02:3154 days 6 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.04252107 Ether
0xc8867245978ba848e976c0595134c5fbc5bc85f2ea15b34b2596ea42a33451b0116464782021-01-13 12:02:3154 days 6 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.04252107 Ether
0x400b00718dfed3181e7b2f88202f9fb291719904b2793dafa91cf5726f7840b7116409992021-01-12 15:45:4055 days 2 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.04947489 Ether
0x400b00718dfed3181e7b2f88202f9fb291719904b2793dafa91cf5726f7840b7116409992021-01-12 15:45:4055 days 2 hrs ago Wrapped Ether 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae30.04947489 Ether
0x46e9f29fca501bfbc1064f4dd0684d99e492a068c7c2d82894c6e96b97496ca7115954022021-01-05 15:45:0862 days 2 hrs ago 0xe05d2a6b97dce9b8e59ad074c2e4b6d51a24aae3Stabilize Finance: Deployer0.04935285 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StabilizeGasTreasury

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-12-21
*/

// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

pragma solidity ^0.6.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);
    
    function decimals() external view returns (uint8);

    /**
     * @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: @openzeppelin/contracts/math/SafeMath.sol

pragma solidity ^0.6.0;

/**
 * @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: @openzeppelin/contracts/utils/Address.sol

pragma solidity ^0.6.2;

/**
 * @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: @openzeppelin/contracts/token/ERC20/SafeERC20.sol

pragma solidity ^0.6.0;

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// File: @openzeppelin/contracts/GSN/Context.sol

pragma solidity ^0.6.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with 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: @openzeppelin/contracts/access/Ownable.sol

pragma solidity ^0.6.0;

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

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

    /**
     * Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferGovernance(address newOwner) internal virtual onlyGovernance {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/GasTreasury.sol

// Used to convert weth to eth
interface WrappedEther {
    function withdraw(uint) external;
}

// Used to call maintenance functions from the main contract
interface Operator {
    function rebalancePoolRewards() external;
    function mintNewWeek() external;
}

pragma solidity ^0.6.6;

// Gas Treasury is an intermediate treasury that can be used to pay for operations required by the Stabilize protocol
// The gas treasury can call mintnewweek and rebalancepoolrewards and pay the caller back for those calls (up to a certain gas price)
// The treasury is also used as a reservoir for the team to obtain funds needed to build new contracts or run maintenance calls
// The team can also forward funds from the gas treasury to the treasury furnace when ready
// In case of lost tokens, team can recover them

contract StabilizeGasTreasury is Ownable {
    using SafeMath for uint256;
    using SafeERC20 for IERC20;
    
    // variables
    address public treasuryFurnaceAddress; // The address for the normal Treasury furnance
    address public operatorAddress; // The address for the operator contract
    uint256 public lastRebalanceTime; // The last time the gas treasury paid for a rebalance
    uint256 public maxGasPrice = 30; // This is the maximum gas price in Gwei that this contract will payout at
    uint256 public minRebalanceInterval = 86400; // The minimum amount of time needed in between rebalance periods
    address constant wethAddress = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);

    constructor(
        address _treasury,
        address _operator
    ) public {
        treasuryFurnaceAddress = _treasury;
        operatorAddress = _operator;
    }
    
    // functions
    
    function balance() public view returns (uint256) {
        IERC20 token = IERC20(wethAddress);
        return token.balanceOf(address(this));        
    }
    
    function subsidizedMintNewWeek() external {
        uint256 startGas = gasleft();
        uint256 weiGasPriceMax = maxGasPrice.mul(10**9); // The maximum gas price in Wei units
        uint256 weiGasPrice = tx.gasprice; // The gas price for the current transaction
        if(weiGasPrice > weiGasPriceMax){
            // User should not spend more than the gas price max
            weiGasPrice = weiGasPriceMax;
        }
        Operator(operatorAddress).mintNewWeek(); // Mint the new week
        uint256 gasPayoutEstimate = startGas.sub(gasleft()).add(60000); // Estimate the amount of gas used by this operation and the next few
        gasPayoutEstimate = gasPayoutEstimate.mul(weiGasPrice);
        uint256 wethBalance = balance();
        if(gasPayoutEstimate > wethBalance){
            gasPayoutEstimate = wethBalance; // Payout cannot be greater than contract balance
        }
        if(gasPayoutEstimate > 0){
            WrappedEther(wethAddress).withdraw(gasPayoutEstimate); // This will send ETH to this contract and burn WETH
            msg.sender.transfer(gasPayoutEstimate); // Send ETH back to user
        }
    }
    
    function subsidizedRebalancePoolRewards() external {
        uint256 startGas = gasleft();
        require(now.sub(lastRebalanceTime) > minRebalanceInterval, "Too soon to run another subsidized rebalance event");
        lastRebalanceTime = now;
        uint256 weiGasPriceMax = maxGasPrice.mul(10**9); // The maximum gas price in Wei units
        uint256 weiGasPrice = tx.gasprice; // The gas price for the current transaction
        if(weiGasPrice > weiGasPriceMax){
            // User should not spend more than the gas price max
            weiGasPrice = weiGasPriceMax;
        }
        Operator(operatorAddress).rebalancePoolRewards(); // Rebalance the pool
        uint256 gasPayoutEstimate = startGas.sub(gasleft()).add(60000); // Estimate the amount of gas used by this operation and the next few
        gasPayoutEstimate = gasPayoutEstimate.mul(weiGasPrice);
        uint256 wethBalance = balance();
        if(gasPayoutEstimate > wethBalance){
            gasPayoutEstimate = wethBalance; // Payout cannot be greater than contract balance
        }
        if(gasPayoutEstimate > 0){
            WrappedEther(wethAddress).withdraw(gasPayoutEstimate); // This will send ETH to this contract and burn WETH
            msg.sender.transfer(gasPayoutEstimate); // Send ETH back to user
        }
    }
    
    receive() external payable {
        // We need an anonymous fallback function to accept ether into this contract
    }
    
    // Governance only functions
    
    // Non-timelock governance
    
    // Recover non-WETH lost tokens
    function recoverLostTokens(address _token, uint256 _amount) external onlyGovernance {
        require(_token != wethAddress, "Cannot recover WETH via this function");
        IERC20 token = IERC20(_token);
        token.safeTransfer(governance(), _amount);        
    }
    
    // Governance at anytime can push WETH to the main TreasuryFurnace
    function pushBalanceToTreasury(uint256 _amount) external onlyGovernance {
        IERC20 weth = IERC20(wethAddress);
        weth.safeTransfer(treasuryFurnaceAddress, _amount);        
    }
    
    // Timelock variables
    // Timelock doesn't activate until WETH is present at address
    
    uint256 private _timelockStart; // The start of the timelock to change governance variables
    uint256 private _timelockType; // The function that needs to be changed
    uint256 constant _timelockDuration = 86400; // Timelock is 24 hours
    
    // Reusable timelock variables
    address private _timelock_address;
    uint256 private _timelock_data;
    
    modifier timelockConditionsMet(uint256 _type) {
        require(_timelockType == _type, "Timelock not acquired for this function");
        _timelockType = 0; // Reset the type once the timelock is used
        if(balance() > 0){
            // Timelock is only required after weth is in contract
            require(now >= _timelockStart + _timelockDuration, "Timelock time not met");
        }
        _;
    }
    
    // Change the owner of the token contract
    // --------------------
    function startGovernanceChange(address _address) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 1;
        _timelock_address = _address;       
    }
    
    function finishGovernanceChange() external onlyGovernance timelockConditionsMet(1) {
        transferGovernance(_timelock_address);
    }
    // --------------------
   
    // Change the treasury furnance address
    // --------------------
    function startChangeTreasuryFurnace(address _address) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 2;
        _timelock_address = _address;
    }
    
    function finishChangeTreasuryFurnace() public onlyGovernance timelockConditionsMet(2) {
        treasuryFurnaceAddress = _timelock_address;
    }
    // --------------------
    
    // Change the gas price maximum
    // --------------------
    function startChangeGasPriceMax(uint256 _price) external onlyGovernance {
        require(_price > 0, "Price must be greater than 0");
        _timelockStart = now;
        _timelockType = 3;
        _timelock_data = _price;
    }
    
    function finishChangeGasPriceMax() public onlyGovernance timelockConditionsMet(3) {
        maxGasPrice = _timelock_data;
    }
    // --------------------
    
    // Change the gas price maximum
    // --------------------
    function startChangeMinInterval(uint256 _interval) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 4;
        _timelock_data = _interval;
    }
    
    function finishChangeMinInterval() public onlyGovernance timelockConditionsMet(4) {
        minRebalanceInterval = _timelock_data;
    }
    // --------------------
    
    // Pull funds from contract to governance for expenditures
    // --------------------
    function startWithdrawForGovernance(uint256 _amount) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 5;
        _timelock_data = _amount;
    }
    
    function finishWithdrawForGovernance() public onlyGovernance timelockConditionsMet(5) {
        uint256 amount = _timelock_data;
        IERC20 weth = IERC20(wethAddress);
        weth.safeTransfer(governance(), amount);
    }
    // --------------------
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishChangeGasPriceMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishChangeMinInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishChangeTreasuryFurnace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishGovernanceChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishWithdrawForGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebalanceTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxGasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minRebalanceInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"pushBalanceToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"startChangeGasPriceMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"startChangeMinInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"startChangeTreasuryFurnace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"startGovernanceChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"startWithdrawForGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"subsidizedMintNewWeek","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"subsidizedRebalancePoolRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFurnaceAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e6004556201518060055534801561001c57600080fd5b506040516118013803806118018339818101604052604081101561003f57600080fd5b508051602090910151600061005b6001600160e01b036100d616565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100da565b3390565b611718806100e96000396000f3fe60806040526004361061012e5760003560e01c80636c252eb2116100ab578063b91950721161006f578063b919507214610302578063c63bb59714610317578063d9ca21d514610341578063dec2ba0f14610356578063e4b487ed1461038f578063f8008776146103a457610135565b80636c252eb21461029957806387bd8712146102ae5780638c02c993146102c3578063b33d3650146102d8578063b69ef8a8146102ed57610135565b80635a79c371116100f25780635a79c371146102065780635aa6e6751461021b57806360cef5c41461023057806361809150146102455780636aa629301461026f57610135565b8063127effb21461013a5780633de39c111461016b5780634080de2d1461019257806341be79ac146101be57806355e5c4e4146101f157610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6103d7565b604080516001600160a01b039092168252519081900360200190f35b34801561017757600080fd5b506101806103e6565b60408051918252519081900360200190f35b34801561019e57600080fd5b506101bc600480360360208110156101b557600080fd5b50356103ec565b005b3480156101ca57600080fd5b506101bc600480360360208110156101e157600080fd5b50356001600160a01b031661047c565b3480156101fd57600080fd5b506101bc6104ff565b34801561021257600080fd5b506101bc610627565b34801561022757600080fd5b5061014f610769565b34801561023c57600080fd5b506101bc610778565b34801561025157600080fd5b506101bc6004803603602081101561026857600080fd5b5035610884565b34801561027b57600080fd5b506101bc6004803603602081101561029257600080fd5b503561093f565b3480156102a557600080fd5b506101806109a5565b3480156102ba57600080fd5b506101bc6109ab565b3480156102cf57600080fd5b5061014f610ab7565b3480156102e457600080fd5b506101bc610ac6565b3480156102f957600080fd5b50610180610cb2565b34801561030e57600080fd5b506101bc610d3a565b34801561032357600080fd5b506101bc6004803603602081101561033a57600080fd5b5035610e55565b34801561034d57600080fd5b50610180610ebb565b34801561036257600080fd5b506101bc6004803603604081101561037957600080fd5b506001600160a01b038135169060200135610ec1565b34801561039b57600080fd5b506101bc610f81565b3480156103b057600080fd5b506101bc600480360360208110156103c757600080fd5b50356001600160a01b0316610fff565b6002546001600160a01b031681565b60045481565b6103f4611082565b6000546001600160a01b03908116911614610444576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b60015473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906104789082906001600160a01b03168463ffffffff61108616565b5050565b610484611082565b6000546001600160a01b039081169116146104d4576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b426006556002600755600880546001600160a01b0319166001600160a01b0392909216919091179055565b610507611082565b6000546001600160a01b03908116911614610557576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b600280600754146105995760405162461bcd60e51b81526004018080602001828103825260278152602001806116516027913960400191505060405180910390fd5b600060078190556105a8610cb2565b1115610602576201518060065401421015610602576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b50600854600180546001600160a01b0319166001600160a01b03909216919091179055565b61062f611082565b6000546001600160a01b0390811691161461067f576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b600580600754146106c15760405162461bcd60e51b81526004018080602001828103825260278152602001806116516027913960400191505060405180910390fd5b600060078190556106d0610cb2565b111561072a57620151806006540142101561072a576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b60095473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc261076461074d610769565b6001600160a01b038316908463ffffffff61108616565b505050565b6000546001600160a01b031690565b610780611082565b6000546001600160a01b039081169116146107d0576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b600380600754146108125760405162461bcd60e51b81526004018080602001828103825260278152602001806116516027913960400191505060405180910390fd5b60006007819055610821610cb2565b111561087b57620151806006540142101561087b576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b50600954600455565b61088c611082565b6000546001600160a01b039081169116146108dc576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b60008111610931576040805162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e203000000000604482015290519081900360640190fd5b426006556003600755600955565b610947611082565b6000546001600160a01b03908116911614610997576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b426006556005600755600955565b60055481565b6109b3611082565b6000546001600160a01b03908116911614610a03576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b60048060075414610a455760405162461bcd60e51b81526004018080602001828103825260278152602001806116516027913960400191505060405180910390fd5b60006007819055610a54610cb2565b1115610aae576201518060065401421015610aae576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b50600954600555565b6001546001600160a01b031681565b60005a9050600554610ae3600354426110d890919063ffffffff16565b11610b1f5760405162461bcd60e51b81526004018080602001828103825260328152602001806115fa6032913960400191505060405180910390fd5b42600355600454600090610b3d90633b9aca0063ffffffff61112316565b90503a81811115610b4b5750805b600260009054906101000a90046001600160a01b03166001600160a01b031663882229f36040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9b57600080fd5b505af1158015610baf573d6000803e3d6000fd5b505050506000610bd861ea60610bcc5a879063ffffffff6110d816565b9063ffffffff61117c16565b9050610bea818363ffffffff61112316565b90506000610bf6610cb2565b905080821115610c04578091505b8115610cab5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c6457600080fd5b505af1158015610c78573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f19350505050158015610ca9573d6000803e3d6000fd5b505b5050505050565b604080516370a0823160e01b8152306004820152905160009173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29182916370a08231916024808301926020929190829003018186803b158015610d0857600080fd5b505afa158015610d1c573d6000803e3d6000fd5b505050506040513d6020811015610d3257600080fd5b505191505090565b610d42611082565b6000546001600160a01b03908116911614610d92576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b60018060075414610dd45760405162461bcd60e51b81526004018080602001828103825260278152602001806116516027913960400191505060405180910390fd5b60006007819055610de3610cb2565b1115610e3d576201518060065401421015610e3d576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b600854610e52906001600160a01b03166111d6565b50565b610e5d611082565b6000546001600160a01b03908116911614610ead576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b426006556004600755600955565b60035481565b610ec9611082565b6000546001600160a01b03908116911614610f19576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b6001600160a01b03821673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21415610f755760405162461bcd60e51b815260040180806020018281038252602581526020018061162c6025913960400191505060405180910390fd5b8161076461074d610769565b60005a90506000610fa1633b9aca0060045461112390919063ffffffff16565b90503a81811115610faf5750805b600260009054906101000a90046001600160a01b03166001600160a01b03166319597a566040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9b57600080fd5b611007611082565b6000546001600160a01b03908116911614611057576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b426006556001600755600880546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107649084906112ce565b600061111a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061137f565b90505b92915050565b6000826111325750600061111d565b8282028284828161113f57fe5b041461111a5760405162461bcd60e51b81526004018080602001828103825260218152602001806116786021913960400191505060405180910390fd5b60008282018381101561111a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6111de611082565b6000546001600160a01b0390811691161461122e576040805162461bcd60e51b81526020600482018190526024820152600080516020611699833981519152604482015290519081900360640190fd5b6001600160a01b0381166112735760405162461bcd60e51b81526004018080602001828103825260268152602001806115d46026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060611323826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114169092919063ffffffff16565b8051909150156107645780806020019051602081101561134257600080fd5b50516107645760405162461bcd60e51b815260040180806020018281038252602a8152602001806116b9602a913960400191505060405180910390fd5b6000818484111561140e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156113d35781810151838201526020016113bb565b50505050905090810190601f1680156114005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6060611425848460008561142d565b949350505050565b60606114388561159a565b611489576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106114c85780518252601f1990920191602091820191016114a9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461152a576040519150601f19603f3d011682016040523d82523d6000602084013e61152f565b606091505b509150915081156115435791506114259050565b8051156115535780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156113d35781810151838201526020016113bb565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061142557505015159291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373546f6f20736f6f6e20746f2072756e20616e6f7468657220737562736964697a656420726562616c616e6365206576656e7443616e6e6f74207265636f76657220574554482076696120746869732066756e6374696f6e54696d656c6f636b206e6f7420616371756972656420666f7220746869732066756e6374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212207be0d092acc0a8c8ef7a407dc0c09150d0406524ad94e5270cccb768a59ecaf264736f6c6343000606003300000000000000000000000042cbe17335ef8d52f8d1e0a261ea2e78e829c56e000000000000000000000000ee9156c93ebb836513968f92b4a67721f3cea08a

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

00000000000000000000000042cbe17335ef8d52f8d1e0a261ea2e78e829c56e000000000000000000000000ee9156c93ebb836513968f92b4a67721f3cea08a

-----Decoded View---------------
Arg [0] : _treasury (address): 0x42cbe17335ef8d52f8d1e0a261ea2e78e829c56e
Arg [1] : _operator (address): 0xee9156c93ebb836513968f92b4a67721f3cea08a

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000042cbe17335ef8d52f8d1e0a261ea2e78e829c56e
Arg [1] : 000000000000000000000000ee9156c93ebb836513968f92b4a67721f3cea08a


Deployed ByteCode Sourcemap

21866:7706:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;22096:30:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22096:30:0;;;:::i;:::-;;;;-1:-1:-1;;;;;22096:30:0;;;;;;;;;;;;;;22268:31;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22268:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;26087:193;;5:9:-1;2:2;;;27:1;24;17:12;2:2;26087:193:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;26087:193:0;;:::i;:::-;;27723:184;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27723:184:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;27723:184:0;-1:-1:-1;;;;;27723:184:0;;:::i;27919:147::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27919:147:0;;;:::i;29310:230::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29310:230:0;;;:::i;20292:84::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20292:84:0;;;:::i;28420:129::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;28420:129:0;;;:::i;28173:235::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;28173:235:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;28173:235:0;;:::i;29119:179::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29119:179:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;29119:179:0;;:::i;22381:43::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22381:43:0;;;:::i;28847:138::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;28847:138:0;;;:::i;22004:37::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22004:37:0;;;:::i;24136:1333::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;24136:1333:0;;;:::i;22797:158::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22797:158:0;;;:::i;27470:139::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27470:139:0;;;:::i;28656:179::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;28656:179:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;28656:179:0;;:::i;22174:32::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22174:32:0;;;:::i;25729:274::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25729:274:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;25729:274:0;;;;;;;;:::i;22967:1157::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22967:1157:0;;;:::i;27272:186::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;27272:186:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;27272:186:0;-1:-1:-1;;;;;27272:186:0;;:::i;22096:30::-;;;-1:-1:-1;;;;;22096:30:0;;:::o;22268:31::-;;;;:::o;26087:193::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;26232:22:::1;::::0;22536:42:::1;::::0;26214:50:::1;::::0;22536:42;;-1:-1:-1;;;;;26232:22:0::1;26256:7:::0;26214:50:::1;:17;:50;:::i;:::-;20579:1;26087:193:::0;:::o;27723:184::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;27829:3:::1;27812:14;:20:::0;27859:1:::1;27843:13;:17:::0;27871::::1;:28:::0;;-1:-1:-1;;;;;;27871:28:0::1;-1:-1:-1::0;;;;;27871:28:0;;;::::1;::::0;;;::::1;::::0;;27723:184::o;27919:147::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;28002:1:::1;26846:5;26829:13;;:22;26821:74;;;;-1:-1:-1::0;;;26821:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26922:1;26906:13;:17:::0;;;26981:9:::1;:7;:9::i;:::-;:13;26978:187;;;26603:5;27093:14;;:34;27086:3;:41;;27078:75;;;::::0;;-1:-1:-1;;;27078:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27078:75:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;28041:17:0::2;::::0;;28016:42;;-1:-1:-1;;;;;;28016:42:0::2;-1:-1:-1::0;;;;;28041:17:0;;::::2;28016:42:::0;;;::::2;::::0;;27919:147::o;29310:230::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;29393:1:::1;26846:5;26829:13;;:22;26821:74;;;;-1:-1:-1::0;;;26821:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26922:1;26906:13;:17:::0;;;26981:9:::1;:7;:9::i;:::-;:13;26978:187;;;26603:5;27093:14;;:34;27086:3;:41;;27078:75;;;::::0;;-1:-1:-1;;;27078:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27078:75:0;;;;;;;;;;;;;::::1;;29424:14:::2;::::0;22536:42:::2;29493:39;29511:12;:10;:12::i;:::-;-1:-1:-1::0;;;;;29493:17:0;::::2;::::0;29525:6;29493:39:::2;:17;:39;:::i;:::-;27175:1;;20579::::1;29310:230::o:0;20292:84::-;20335:7;20362:6;-1:-1:-1;;;;;20362:6:0;20292:84;:::o;28420:129::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;28499:1:::1;26846:5;26829:13;;:22;26821:74;;;;-1:-1:-1::0;;;26821:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26922:1;26906:13;:17:::0;;;26981:9:::1;:7;:9::i;:::-;:13;26978:187;;;26603:5;27093:14;;:34;27086:3;:41;;27078:75;;;::::0;;-1:-1:-1;;;27078:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27078:75:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;28527:14:0::2;::::0;28513:11:::2;:28:::0;28420:129::o;28173:235::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;28273:1:::1;28264:6;:10;28256:51;;;::::0;;-1:-1:-1;;;28256:51:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28335:3;28318:14;:20:::0;28365:1:::1;28349:13;:17:::0;28377:14:::1;:23:::0;28173:235::o;29119:179::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;29224:3:::1;29207:14;:20:::0;29254:1:::1;29238:13;:17:::0;29266:14:::1;:24:::0;29119:179::o;22381:43::-;;;;:::o;28847:138::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;28926:1:::1;26846:5;26829:13;;:22;26821:74;;;;-1:-1:-1::0;;;26821:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26922:1;26906:13;:17:::0;;;26981:9:::1;:7;:9::i;:::-;:13;26978:187;;;26603:5;27093:14;;:34;27086:3;:41;;27078:75;;;::::0;;-1:-1:-1;;;27078:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27078:75:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;28963:14:0::2;::::0;28940:20:::2;:37:::0;28847:138::o;22004:37::-;;;-1:-1:-1;;;;;22004:37:0;;:::o;24136:1333::-;24198:16;24217:9;24198:28;;24274:20;;24245:26;24253:17;;24245:3;:7;;:26;;;;:::i;:::-;:49;24237:112;;;;-1:-1:-1;;;24237:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24380:3;24360:17;:23;24419:11;;24394:22;;24419;;24435:5;24419:22;:15;:22;:::i;:::-;24394:47;-1:-1:-1;24512:11:0;24582:28;;;24579:153;;;-1:-1:-1;24706:14:0;24579:153;24751:15;;;;;;;;;-1:-1:-1;;;;;24751:15:0;-1:-1:-1;;;;;24742:46:0;;:48;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;24742:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24742:48:0;;;;24823:25;24851:34;24879:5;24851:23;24864:9;24851:8;;:23;:12;:23;:::i;:::-;:27;:34;:27;:34;:::i;:::-;24823:62;-1:-1:-1;24986:34:0;24823:62;25008:11;24986:34;:21;:34;:::i;:::-;24966:54;;25031:19;25053:9;:7;:9::i;:::-;25031:31;;25096:11;25076:17;:31;25073:143;;;25143:11;25123:31;;25073:143;25229:21;;25226:236;;22536:42;-1:-1:-1;;;;;25266:34:0;;25301:17;25266:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;25266:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;25387:38:0;;:10;;-1:-1:-1;25387:38:0;;;;;-1:-1:-1;25407:17:0;;25387:38;;;;25407:17;25387:10;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25387:38:0;25226:236;24136:1333;;;;;:::o;22797:158::-;22909:30;;;-1:-1:-1;;;22909:30:0;;22933:4;22909:30;;;;;;22837:7;;22536:42;;;;22909:15;;:30;;;;;;;;;;;;;;22536:42;22909:30;;;2:2:-1;;;;27:1;24;17:12;2:2;22909:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22909:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22909:30:0;;-1:-1:-1;;22797:158:0;:::o;27470:139::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;27550:1:::1;26846:5;26829:13;;:22;26821:74;;;;-1:-1:-1::0;;;26821:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26922:1;26906:13;:17:::0;;;26981:9:::1;:7;:9::i;:::-;:13;26978:187;;;26603:5;27093:14;;:34;27086:3;:41;;27078:75;;;::::0;;-1:-1:-1;;;27078:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27078:75:0;;;;;;;;;;;;;::::1;;27583:17:::2;::::0;27564:37:::2;::::0;-1:-1:-1;;;;;27583:17:0::2;27564:18;:37::i;:::-;20579:1:::1;27470:139::o:0;28656:179::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;28759:3:::1;28742:14;:20:::0;28789:1:::1;28773:13;:17:::0;28801:14:::1;:26:::0;28656:179::o;22174:32::-;;;;:::o;25729:274::-;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25832:21:0;::::1;22536:42;25832:21;;25824:71;;;;-1:-1:-1::0;;;25824:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25928:6:::0;25946:41:::1;25965:12;:10;:12::i;22967:1157::-:0;23020:16;23039:9;23020:28;;23059:22;23084;23100:5;23084:11;;:15;;:22;;;;:::i;:::-;23059:47;-1:-1:-1;23177:11:0;23247:28;;;23244:153;;;-1:-1:-1;23371:14:0;23244:153;23416:15;;;;;;;;;-1:-1:-1;;;;;23416:15:0;-1:-1:-1;;;;;23407:37:0;;:39;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;27272:186:0;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;27373:3:::1;27356:14;:20:::0;27403:1:::1;27387:13;:17:::0;27415::::1;:28:::0;;-1:-1:-1;;;;;;27415:28:0::1;-1:-1:-1::0;;;;;27415:28:0;;;::::1;::::0;;;::::1;::::0;;27272:186::o;18858:106::-;18946:10;18858:106;:::o;15163:177::-;15273:58;;;-1:-1:-1;;;;;15273:58:0;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;15273:58:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;15246:86:0;;15266:5;;15246:19;:86::i;4279:136::-;4337:7;4364:43;4368:1;4371;4364:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4357:50;;4279:136;;;;;:::o;5169:471::-;5227:7;5472:6;5468:47;;-1:-1:-1;5502:1:0;5495:8;;5468:47;5539:5;;;5543:1;5539;:5;:1;5563:5;;;;;:10;5555:56;;;;-1:-1:-1;;;5555:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3815:181;3873:7;3905:5;;;3929:6;;;;3921:46;;;;;-1:-1:-1;;;3921:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20738:252;20519:12;:10;:12::i;:::-;20509:6;;-1:-1:-1;;;;;20509:6:0;;;:22;;;20501:67;;;;;-1:-1:-1;;;20501:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20501:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;20835:22:0;::::1;20827:73;;;;-1:-1:-1::0;;;20827:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20937:6;::::0;;20916:38:::1;::::0;-1:-1:-1;;;;;20916:38:0;;::::1;::::0;20937:6;::::1;::::0;20916:38:::1;::::0;::::1;20965:6;:17:::0;;-1:-1:-1;;;;;;20965:17:0::1;-1:-1:-1::0;;;;;20965:17:0;;;::::1;::::0;;;::::1;::::0;;20738:252::o;17468:761::-;17892:23;17918:69;17946:4;17918:69;;;;;;;;;;;;;;;;;17926:5;-1:-1:-1;;;;;17918:27:0;;;:69;;;;;:::i;:::-;18002:17;;17892:95;;-1:-1:-1;18002:21:0;17998:224;;18144:10;18133:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18133:30:0;18125:85;;;;-1:-1:-1;;;18125:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4718:192;4804:7;4840:12;4832:6;;;;4824:29;;;;-1:-1:-1;;;4824:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4824:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4876:5:0;;;4718:192::o;12152:196::-;12255:12;12287:53;12310:6;12318:4;12324:1;12327:12;12287:22;:53::i;:::-;12280:60;12152:196;-1:-1:-1;;;;12152:196:0:o;13529:979::-;13659:12;13692:18;13703:6;13692:10;:18::i;:::-;13684:60;;;;;-1:-1:-1;;;13684:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13818:12;13832:23;13859:6;-1:-1:-1;;;;;13859:11:0;13879:8;13890:4;13859:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13859:36:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;13817:78:0;;;;13910:7;13906:595;;;13941:10;-1:-1:-1;13934:17:0;;-1:-1:-1;13934:17:0;13906:595;14055:17;;:21;14051:439;;14318:10;14312:17;14379:15;14366:10;14362:2;14358:19;14351:44;14266:148;14454:20;;-1:-1:-1;;;14454:20:0;;;;;;;;;;;;;;;;;14461:12;;14454:20;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;9037:619:0;9097:4;9565:20;;9408:66;9605:23;;;;;;:42;;-1:-1:-1;;9632:15:0;;;9597:51;-1:-1:-1;;9037:619:0:o

Swarm Source

ipfs://7be0d092acc0a8c8ef7a407dc0c09150d0406524ad94e5270cccb768a59ecaf2
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.