Contract 0x3bb5f6285c312fc7e1877244103036ebbeda193d

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x2025b8bc325e60a1131fcb730b7bd4f95677395b7c100b5d44712648950447e271858852021-05-06 12:19:422 mins ago0x26044c2e775d4945d19f9d13d0893903b29e9551 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0.368089194774836 BNB0.004035185
0x722ba8f0185cc5895fb843b6491a5f551d4512b1916eab9a1a13b19d52a932b071858312021-05-06 12:16:355 mins ago0xd274bc31a942e688eac44ce2dabce5088abf1901 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d1.158395915961258 BNB0.003630855
0x3e4294d668c79b692bfb54a7eda237f1e1dda76b1ed2d751b1da77ae1343fe0771855592021-05-06 12:02:0620 mins ago0x215462dc79523ac795216e1baa27586840fa9382 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00383529
0xbffb5eb4d39090adc53a36eda8ec310eccc81f9eb0fe6cd5f7975a0e49b10d8c71850362021-05-06 11:35:5646 mins ago0x04167fd988e5bcd1d4e617a91e645612ab58b10a IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00277858
0xf0c907232e219e28b4cdd9ad03868bdaff205594ce31135b65c84aafc5c48d5971849452021-05-06 11:31:2250 mins ago0x4537a45edf0fbcda54143dced8b2645e4e693c6b IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d1 BNB0.003784235
0xdc277eabfa04f9dd2aa7aa99d5756f472eeccb3f35c6fe4778d5ba224fa75dbf71848412021-05-06 11:25:1656 mins ago0xb73888476dccade29770175966ccc5ad50e45b48 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d57.6 BNB0.00361675
0xa3cf25f270d80f4447d8a418e5234456ca418466ad2903cd51560856b39152c971845692021-05-06 11:11:401 hr 10 mins ago0x589f24cc3bba5bf077009c22c25bf6829a588e53 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d1 BNB0.00369345
0x60aef739fa998acbf83b95fccafa90feb3f90539900ec65d2c43f9a3bafe229c71845682021-05-06 11:11:371 hr 10 mins ago0x8333e81a580b276d50d777d4c30fe4c746b04995 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.000439175
0x306a0384d26fdcbc94e14c2c9f7939ffc2f38041d069da673b6b96328583725271845302021-05-06 11:09:431 hr 12 mins ago0xb73888476dccade29770175966ccc5ad50e45b48 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d19.343404659703732 BNB0.00369187
0x97334a73791d6185475f0c79a48becfd571fad1fd8b12e72b28c212a4b693a0971842552021-05-06 10:55:581 hr 26 mins ago0xf324f5fd0c5499e66e6110ef6bd8d272300ca211 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.000364295
0x5ac5aa8b3dacf937ff119020d9398e619c1f9df481acdb189cb6d9165a63865871835432021-05-06 10:19:332 hrs 2 mins ago0x52b5165605a9cf2fc1e0fb9ca9af06ff70a90680 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00264844
0x92c5dba3f39bcb08d3747a64c1edfd18a2f895b1d8b3cd01bdcc1c13fb9d67af71828232021-05-06 9:43:332 hrs 38 mins ago0x0db90b2604f9bb2a99f731a1b174be4f888bb0f5 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00270364
0xb8b42db772f0b8a6ab24634c19b50a9688f1468b87ccfb94422e12b9b736806e71828132021-05-06 9:43:032 hrs 39 mins ago0x0db90b2604f9bb2a99f731a1b174be4f888bb0f5 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00276406
0xd5c9a51e2f9c8830bcef9958b3db8185ec0a591725190ba0009db92cd7ddf25771827872021-05-06 9:41:452 hrs 40 mins ago0x0db90b2604f9bb2a99f731a1b174be4f888bb0f5 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00270364
0x3cbe3424cc5ac967c649356df2707e838f4cacec9ad74765bd7cc0c86fbd5e8b71826902021-05-06 9:36:542 hrs 45 mins ago0x0db90b2604f9bb2a99f731a1b174be4f888bb0f5 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00291406
0xad00517839d511a04d76ef8070731727ee913967f299031930ad7b48af874c0e71826402021-05-06 9:34:242 hrs 47 mins ago0x1624aff4ebf4351bd333d9678f24e85366b874c7 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00397309
0x62ae63ae365883baecad2947840e36c7cce89e3dace90918bc7e73528dd10ef171825862021-05-06 9:31:422 hrs 50 mins ago0xb73888476dccade29770175966ccc5ad50e45b48 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d169 BNB0.00380584
0xd27d0b8485937d0d1a5d607dd6ed64ab379642168c509ce2db5217ffafb1e5a971825532021-05-06 9:30:032 hrs 52 mins ago0xb73888476dccade29770175966ccc5ad50e45b48 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d170 BNB0.003886745
0xa2b2e15851c191411defe4a7be971779a6e9082cab36f14353789861867c578e71824362021-05-06 9:24:122 hrs 57 mins ago0xc4822446fe0dc179cc77ce6a7c5298320be89722 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0.023615313866067 BNB0.003402555
0x27617acc7e29bf4dfab57cea7ad9dbd276be15fee41c3566c3d7e287797a984d71818682021-05-06 8:55:453 hrs 26 mins ago0x6450d9b75a79d1eb76f5f03d4b288d5e967b0c38 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d3.072763005359768 BNB0.00047414
0x87439a3e9c7e01df7d6b4f4ec0eda875f84093a63053b501c9b7240aea483b8471817832021-05-06 8:51:303 hrs 30 mins ago0x897d4fbc085a80d085b8c3bf8ce10b7dbdc65154 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.000364295
0x2db3f25d9584980d41af552e2aa9bc64504e46e6278cb6572ad3e6a706950fac71817712021-05-06 8:50:543 hrs 31 mins ago0x4f1dcfb5d1634c1dcdb0f338e7a5a97f2be91e4c IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.002716435
0x690adfd5db289f485daf78e72cf7dd2cb17264d50025add352abe398155c8b1871810932021-05-06 8:16:254 hrs 5 mins ago0xa1e629658456c16d1a9d7f648286da03e5c20598 IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00264844
0x589fc9ff4e21a76c84321cb566d88a3c86149ec42a6a8c7ef4cd433bcef9f24f71807562021-05-06 7:59:344 hrs 22 mins ago0xb0a8c66946a8c1af7d2e3da84afb2bb8c9e0abcc IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0.442230875931535 BNB0.00047414
0xc209bdabbee1989d37812a7df674376264b4f16a5301bed6078d7468f5b5bb6271807462021-05-06 7:59:044 hrs 23 mins ago0xb0a8c66946a8c1af7d2e3da84afb2bb8c9e0abcc IN  0x3bb5f6285c312fc7e1877244103036ebbeda193d0 BNB0.00263535
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2025b8bc325e60a1131fcb730b7bd4f95677395b7c100b5d44712648950447e271858852021-05-06 12:19:422 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0xc2dc871a7ded817d8a960d2f2ceae6edb377c73f2.086317689041805746 BNB
0xf44378024ef37636d8054532fd427dc4d41a6f27a2b4928174ba0a526bb37eb971858332021-05-06 12:16:415 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e36.474500808588833889 BNB
0x722ba8f0185cc5895fb843b6491a5f551d4512b1916eab9a1a13b19d52a932b071858312021-05-06 12:16:355 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x5a71a15037de71d52d8b27b6a637b617b4fae2612.943205717029666386 BNB
0xba39957628644f3aa292d78cbe7b9756144e4ee4b975c45a8d94252a5e966b1771858252021-05-06 12:16:046 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e0.503544205252452079 BNB
0x3e4294d668c79b692bfb54a7eda237f1e1dda76b1ed2d751b1da77ae1343fe0771855592021-05-06 12:02:0620 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x22bb68bd0b113ccf688e0759ac0b4abc013df824246.693287898898612765 BNB
0xdfb2af0baa4a1ce068b36c606fc0bdcaed8a6c3a4d3051a1e6c3030b368b4ad571851172021-05-06 11:39:5942 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e65.284312131675755588 BNB
0xbffb5eb4d39090adc53a36eda8ec310eccc81f9eb0fe6cd5f7975a0e49b10d8c71850362021-05-06 11:35:5646 mins ago 0x22bb68bd0b113ccf688e0759ac0b4abc013df824 0x3bb5f6285c312fc7e1877244103036ebbeda193d4.798908972020840892 BNB
0xf0c907232e219e28b4cdd9ad03868bdaff205594ce31135b65c84aafc5c48d5971849452021-05-06 11:31:2250 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x22bb68bd0b113ccf688e0759ac0b4abc013df8242 BNB
0xdc277eabfa04f9dd2aa7aa99d5756f472eeccb3f35c6fe4778d5ba224fa75dbf71848412021-05-06 11:25:1656 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x7b4b9e3d52296416b7e0396593b5d885cdb27472144 BNB
0xbd150c8396d9d33a0cdfb3cb34ba4469041a93593c73de1cc3703397be7af65671847692021-05-06 11:21:401 hr ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e5.841622471812253844 BNB
0xa3cf25f270d80f4447d8a418e5234456ca418466ad2903cd51560856b39152c971845692021-05-06 11:11:401 hr 10 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x78cffa390b2355b14aacaf97571da3be817c84bf2.5 BNB
0x60aef739fa998acbf83b95fccafa90feb3f90539900ec65d2c43f9a3bafe229c71845682021-05-06 11:11:371 hr 10 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d0x8333e81a580b276d50d777d4c30fe4c746b049950.880552626082174732 BNB
0x306a0384d26fdcbc94e14c2c9f7939ffc2f38041d069da673b6b96328583725271845302021-05-06 11:09:431 hr 12 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x7b4b9e3d52296416b7e0396593b5d885cdb2747248.358511649259332202 BNB
0xad08731e0427a0e9334f660ecd0cef3b0ccb6d26caf96f1c20ac7caaf4a0ee6271842942021-05-06 10:57:551 hr 24 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e59.350764359763917459 BNB
0x97334a73791d6185475f0c79a48becfd571fad1fd8b12e72b28c212a4b693a0971842552021-05-06 10:55:581 hr 26 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d0xf324f5fd0c5499e66e6110ef6bd8d272300ca2110.114412093595370732 BNB
0xfeed3c4177924eb8d242dd8631daaac32b387a600cd372f6897ea830f85349d071842062021-05-06 10:53:311 hr 28 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e14.184870453015622383 BNB
0xb37b7b0611e5c28a65a2b605808c95acb4f1587fa1cb0b6e69eadf67399a037c71841772021-05-06 10:52:041 hr 30 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e0.302148883649068339 BNB
0x98b23664e55320c9484e3fa9815361027b7bb55e2610f324b6df6a40f8eeb96071838192021-05-06 10:33:251 hr 48 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e5.039376415326339333 BNB
0xea9c6ef6599b5d603f7d76cfa9cf24cfcb136fe2477748026161bc5428cf05a371836942021-05-06 10:27:081 hr 55 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e119.714331430485027975 BNB
0x5ac5aa8b3dacf937ff119020d9398e619c1f9df481acdb189cb6d9165a63865871835432021-05-06 10:19:332 hrs 2 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d0x52b5165605a9cf2fc1e0fb9ca9af06ff70a906801.886407077158132982 BNB
0x5ac5aa8b3dacf937ff119020d9398e619c1f9df481acdb189cb6d9165a63865871835432021-05-06 10:19:332 hrs 2 mins ago 0xa25ad83285e0d0989b1409b3755be7e30bb821d7 0x3bb5f6285c312fc7e1877244103036ebbeda193d3.782787166009702126 BNB
0x3e40fbf26e47dcbfeeb2e74c31f9a8de6907bd4270e825bbc0bab53fa099e9f771834092021-05-06 10:12:512 hrs 9 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e1.007176736966055307 BNB
0xed2276362c929cb13174b51883a2a8ba9d6d7c72644ec70db6f221e4cc670fc271833402021-05-06 10:09:242 hrs 12 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e2.316404902068841208 BNB
0xa3728a9faebd8527e4ccd16ed8b6a1b86c0c28985850a556c7bd440ffb26c10f71832472021-05-06 10:04:452 hrs 17 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e50.144477228524180425 BNB
0xd7a84e278da3e41999d64e2a638e0b76025abcd81053efcb36f6a45e708706d471830022021-05-06 9:52:302 hrs 29 mins ago 0x3bb5f6285c312fc7e1877244103036ebbeda193d 0x67fc8d24a4e59357efd3614d5122e9e3bad1fc6e3.018512894746593442 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TransparentUpgradeableProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-03-16
*/

// SPDX-License-Identifier: MIT
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;
    }
}

/**
 * @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.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

/**
 * @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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @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");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.3._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.3._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        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);
            }
        }
    }
}

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 * 
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 * 
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    /**
     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal virtual view returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     * 
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback () external payable {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () external payable {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     * 
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {
    }
}

/**
 * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
 * implementation address that can be changed. This address is stored in storage in the location specified by
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
 * implementation behind the proxy.
 * 
 * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
 * {TransparentUpgradeableProxy}.
 */
contract UpgradeableProxy is Proxy {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     * 
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializating the storage of the proxy like a Solidity constructor.
     */
    constructor(address _logic, bytes memory _data) public payable {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _setImplementation(_logic);
        if(_data.length > 0) {
            // solhint-disable-next-line avoid-low-level-calls
            (bool success,) = _logic.delegatecall(_data);
            require(success);
        }
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     */
    event Upgraded(address indexed implementation);

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal override view returns (address impl) {
        bytes32 slot = _IMPLEMENTATION_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            impl := sload(slot)
        }
    }

    /**
     * @dev Upgrades the proxy to a new implementation.
     * 
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        require(Address.isContract(newImplementation), "UpgradeableProxy: new implementation is not a contract");

        bytes32 slot = _IMPLEMENTATION_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newImplementation)
        }
    }
}

/**
 * @dev This contract implements a proxy that is upgradeable by an admin.
 * 
 * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
 * clashing], which can potentially be used in an attack, this contract uses the
 * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
 * things that go hand in hand:
 * 
 * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
 * that call matches one of the admin functions exposed by the proxy itself.
 * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
 * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
 * "admin cannot fallback to proxy target".
 * 
 * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
 * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
 * to sudden errors when trying to call a function from the proxy implementation.
 * 
 * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
 * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.
 */
contract TransparentUpgradeableProxy is UpgradeableProxy {
    /**
     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
     * optionally initialized with `_data` as explained in {UpgradeableProxy-constructor}.
     */
    constructor(address _logic, address admin_, bytes memory _data) public payable UpgradeableProxy(_logic, _data) {
        assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _setAdmin(admin_);
    }

    /**
     * @dev Emitted when the admin account has changed.
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @dev Storage slot with the admin of the contract.
     * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 private constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @dev Returns the current admin.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.
     * 
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
     */
    function admin() external ifAdmin returns (address admin_) {
        admin_ = _admin();
    }

    /**
     * @dev Returns the current implementation.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.
     * 
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
     */
    function implementation() external ifAdmin returns (address implementation_) {
        implementation_ = _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     * 
     * Emits an {AdminChanged} event.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.
     */
    function changeAdmin(address newAdmin) external ifAdmin {
        require(newAdmin != address(0), "TransparentUpgradeableProxy: new admin is the zero address");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the implementation of the proxy.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.
     */
    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
     * proxied contract.
     * 
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {
        _upgradeTo(newImplementation);
        // solhint-disable-next-line avoid-low-level-calls
        (bool success,) = newImplementation.delegatecall(data);
        require(success);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view returns (address adm) {
        bytes32 slot = _ADMIN_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            adm := sload(slot)
        }
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        bytes32 slot = _ADMIN_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newAdmin)
        }
    }

    /**
     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
     */
    function _beforeFallback() internal override virtual {
        require(msg.sender != _admin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
        super._beforeFallback();
    }
}

/**
 * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an
 * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.
 */
contract ProxyAdmin is Ownable {

    /**
     * @dev Returns the current implementation of `proxy`.
     * 
     * Requirements:
     * 
     * - This contract must be the admin of `proxy`.
     */
    function getProxyImplementation(TransparentUpgradeableProxy proxy) public view returns (address) {
        // We need to manually run the static call since the getter cannot be flagged as view
        // bytes4(keccak256("implementation()")) == 0x5c60da1b
        (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b");
        require(success);
        return abi.decode(returndata, (address));
    }

    /**
     * @dev Returns the current admin of `proxy`.
     * 
     * Requirements:
     * 
     * - This contract must be the admin of `proxy`.
     */
    function getProxyAdmin(TransparentUpgradeableProxy proxy) public view returns (address) {
        // We need to manually run the static call since the getter cannot be flagged as view
        // bytes4(keccak256("admin()")) == 0xf851a440
        (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440");
        require(success);
        return abi.decode(returndata, (address));
    }

    /**
     * @dev Changes the admin of `proxy` to `newAdmin`.
     * 
     * Requirements:
     * 
     * - This contract must be the current admin of `proxy`.
     */
    function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public onlyOwner {
        proxy.changeAdmin(newAdmin);
    }

    /**
     * @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.
     * 
     * Requirements:
     * 
     * - This contract must be the admin of `proxy`.
     */
    function upgrade(TransparentUpgradeableProxy proxy, address implementation) public onlyOwner {
        proxy.upgradeTo(implementation);
    }

    /**
     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See
     * {TransparentUpgradeableProxy-upgradeToAndCall}.
     * 
     * Requirements:
     * 
     * - This contract must be the admin of `proxy`.
     */
    function upgradeAndCall(TransparentUpgradeableProxy proxy, address implementation, bytes memory data) public payable onlyOwner {
        proxy.upgradeToAndCall{value: msg.value}(implementation, data);
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516108dc3803806108dc8339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b81526004018080602001828103825260368152602001806108a66036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063c8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b815260040180806020018281038252603a815260200180610555603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260428152602001806105c56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603681526020018061058f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220475d7a792f96bb47806093852143bf907adcb24377c4f22e6c49c6e3b3a8901064736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e747261637400000000000000000000000035cfacc93244fc94d26793cd6e68f59976380b3e00000000000000000000000074168a07c24f9d40ccf3d16ad18df9caa7b5084100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000070df43522d3a7332310b233de763758adca1496100000000000000000000000000000000000000000000000000000000

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

00000000000000000000000035cfacc93244fc94d26793cd6e68f59976380b3e00000000000000000000000074168a07c24f9d40ccf3d16ad18df9caa7b5084100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000070df43522d3a7332310b233de763758adca1496100000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000035cfacc93244fc94d26793cd6e68f59976380b3e
Arg [1] : 00000000000000000000000074168a07c24f9d40ccf3d16ad18df9caa7b50841
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000024
Arg [4] : c4d66de800000000000000000000000070df43522d3a7332310b233de763758a
Arg [5] : dca1496100000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

18662:4765:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13926:11;:9;:11::i;:::-;18662:4765;;13702:11;:9;:11::i;21707:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21707:111:0;-1:-1:-1;;;;;21707:111:0;;:::i;22204:299::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22204:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22204:299:0;;-1:-1:-1;22204:299:0;-1:-1:-1;22204:299:0;:::i;20946:131::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;20946:131:0;;;;;;;;;;;;;;21293:246;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21293:246:0;-1:-1:-1;;;;;21293:246:0;;:::i;20378:95::-;;;;;;;;;;;;;:::i;13354:105::-;13395:17;:15;:17::i;:::-;13423:28;13433:17;:15;:17::i;:::-;13423:9;:28::i;:::-;13354:105::o;21707:111::-;19834:8;:6;:8::i;:::-;-1:-1:-1;;;;;19820:22:0;:10;-1:-1:-1;;;;;19820:22:0;;19816:100;;;21781:29:::1;21792:17;21781:10;:29::i;:::-;19816:100:::0;;;19893:11;:9;:11::i;:::-;21707:111;:::o;22204:299::-;19834:8;:6;:8::i;:::-;-1:-1:-1;;;;;19820:22:0;:10;-1:-1:-1;;;;;19820:22:0;;19816:100;;;22314:29:::1;22325:17;22314:10;:29::i;:::-;22415:12;22432:17;-1:-1:-1::0;;;;;22432:30:0::1;22463:4;;22432:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;22432:36:0::1;::::0;-1:-1:-1;22432:36:0;;-1:-1:-1;;22432:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22414:54;;;22487:7;22479:16;;;::::0;::::1;;19859:1;19816:100:::0;;;19893:11;:9;:11::i;:::-;22204:299;;;:::o;20946:131::-;20998:23;19834:8;:6;:8::i;:::-;-1:-1:-1;;;;;19820:22:0;:10;-1:-1:-1;;;;;19820:22:0;;19816:100;;;21052:17:::1;:15;:17::i;:::-;21034:35;;19816:100:::0;;;19893:11;:9;:11::i;:::-;20946:131;:::o;21293:246::-;19834:8;:6;:8::i;:::-;-1:-1:-1;;;;;19820:22:0;:10;-1:-1:-1;;;;;19820:22:0;;19816:100;;;-1:-1:-1;;;;;21368:22:0;::::1;21360:93;;;;-1:-1:-1::0;;;21360:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21469:32;21482:8;:6;:8::i;:::-;21469:32;::::0;;-1:-1:-1;;;;;21469:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;21512:19;21522:8;21512:9;:19::i;20378:95::-:0;20421:14;19834:8;:6;:8::i;:::-;-1:-1:-1;;;;;19820:22:0;:10;-1:-1:-1;;;;;19820:22:0;;19816:100;;;20457:8:::1;:6;:8::i;3851:422::-:0;4218:20;4257:8;;;3851:422::o;23217:207::-;23303:8;:6;:8::i;:::-;-1:-1:-1;;;;;23289:22:0;:10;-1:-1:-1;;;;;23289:22:0;;;23281:101;;;;-1:-1:-1;;;23281:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23393:23;:21;:23::i;16183:248::-;16033:66;16402:11;;16379:45::o;11954:907::-;12346:14;12343:1;12340;12327:34;12564:1;12561;12545:14;12542:1;12526:14;12519:5;12506:60;12643:16;12640:1;12637;12622:38;12683:6;12752:38;;;;12824:16;12821:1;12814:27;12752:38;12771:16;12768:1;12761:27;22569:219;19573:66;22759:11;;22737:44::o;16558:155::-;16625:37;16644:17;16625:18;:37::i;:::-;16678:27;;-1:-1:-1;;;;;16678:27:0;;;;;;;;16558:155;:::o;22875:216::-;19573:66;23051:22;23036:48::o;16809:369::-;16891:37;16910:17;16891:18;:37::i;:::-;16883:104;;;;-1:-1:-1;;;16883:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16033:66;17129:31;17114:57::o

Swarm Source

ipfs://475d7a792f96bb47806093852143bf907adcb24377c4f22e6c49c6e3b3a89010
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.