Contract 0x5713ab44042D92C642444bd2F0fee9c2336F9E3b 10

 
Txn Hash Method
Block
From
To
Value
0xb2ad676d49242e76eaa093195acb094dbb8081b32682409a1ecca8b7abd57eb1Close Round135407022024-04-23 11:12:3119 hrs 57 mins ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000116212690.087346191
0xa503d578c1c08527d3bf3d4751cff6209457c8268736b18f24ab08e9c802c5e8Process Round Cl...135406832024-04-23 11:11:5319 hrs 58 mins ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000378404720.088647024
0xa7701daaf97a970859f44b0ef0cab8f5d111fb33a7aecd30e307d8cf815edb7cPrepare Round Cl...135406652024-04-23 11:11:1719 hrs 59 mins ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000225457930.089310676
0x840b9dc575f76ff3dc4db27d0b3e3fcab7aac35f82c78b705e7b0eb91319ff3cExercise Markets...133623692024-04-19 8:08:054 days 23 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.000072440910.047376223
0xada03caa80b1f43182eb9f0d969c35b026c15b73294888f34717d6070ffd31cfExercise Markets...132770572024-04-17 8:44:216 days 22 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000184131310.032706425
0xf3d61fb17d493048e1515da0ae5ae2cb8636fc9253ece0abdda943482e6536a1Close Round132398742024-04-16 12:04:557 days 19 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000071144230.060546506
0xb151c1187fe088bf0a093814f3cda42ec13c047183531885d8442987bd40f15aProcess Round Cl...132398552024-04-16 12:04:177 days 19 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000280737760.061204869
0xd9615f0f80fd6b7b1c5c784694243072456d4b1f90d3036e7cec6b51e54194fdPrepare Round Cl...132398372024-04-16 12:03:417 days 19 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.000006712260.061022526
0x20af57691fa60104ff455efd70c5279bc534fbbeb7bac27fabb90931bd9059d4Withdrawal Reque...130148492024-04-11 7:04:0513 days 6 mins ago0x13d84998a552b6b46f69df874a2f32c4261fa1e8 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000032425380.039182809
0xb185936b551eda355f3778cf45e24a59bb5ac8eda4fd1258d272bbc498fa903aClose Round129385722024-04-09 12:41:3114 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000199077580.149495652
0xe37942c3443c903b08e095c6c00f9d1f9b8fed264e6cd6b2df48c08659fe371aProcess Round Cl...129385532024-04-09 12:40:5314 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000619650630.145122336
0xb2c8c94574a7f8b263ef8563ea2062cd471be3c3661f5f482dc3042c8662c209Prepare Round Cl...129385352024-04-09 12:40:1714 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.000025158360.142211161
0x7a6b36a699b7cee47956948a09af2ecc1f72e3900023ccdee86597c0f88d8615Deposit128618312024-04-07 18:03:2916 days 13 hrs ago0x13d84998a552b6b46f69df874a2f32c4261fa1e8 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000677228250.131275709
0xe3e96c8299a863e3998904e94dc91ce24b84f4d70170f6427dc8b9c406a4d73cExercise Markets...127577702024-04-05 8:14:4718 days 22 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000011908270.004617899
0xe1587090118bef342d17089b06d80c277d27d3ad9f7c3a1869596ba07a2fecf7Exercise Markets...126714002024-04-03 8:15:4720 days 22 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000083088310.001814331
0x3c9937ab5c775ffab7881e0154d19dde5a5d19be32c0c8fb524c4ebca3e0cf3fClose Round126353852024-04-02 12:15:1721 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000059871190.001349301
0x252cdeef1258a6e7aa1f79b237015376f8cf83ac6f8e8d8a75172ab47187964bProcess Round Cl...126353662024-04-02 12:14:3921 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000062030420.001368329
0xbf49a265ac58345c9392a8bc696f9414ae86f7d12b66fe0d4768c4b102d28da1Prepare Round Cl...126353472024-04-02 12:14:0121 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000058212570.001377501
0xd2f8b66e2da421ca840da1258d06f94e957e00f11179492ae2613e2dc3d81c55Exercise Markets...124553262024-03-29 8:13:1925 days 22 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000069063320.033211583
0x3eb850e3646ea0e9ac23a3ef201c52ea1aefe180b15c49e54a818f504fce4402Exercise Markets...123689622024-03-27 8:14:3127 days 22 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000910093260.488812523
0x23746b91cdd66a8f1e2110f503ea4e65efc876c0f339abd5886a9559a33d6624Close Round123329482024-03-26 12:14:0328 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000470502010.40158659
0xa0751adb76254075ef728dc4bfe3dfb9b54d25c9b7958a6cc9893c341398ac1aProcess Round Cl...123329282024-03-26 12:13:2328 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0001788016530.402858973
0x8e7c50ec8d8642da2badfce5b92faf32e935dc3bc76afacfd78c6e2c5fc9083fPrepare Round Cl...123329102024-03-26 12:12:4728 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000440461360.401644096
0x9c2f53972abb395e54fed8a7e1afe8493eec212388c8e2e03f68acff72b8458aClose Round120306422024-03-19 12:17:1135 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000027863440.007020823
0x1668aaea3d85a24c94330d1270d6d1ae41efeb372b994926572f64fb02565c80Process Round Cl...120306232024-03-19 12:16:3335 days 18 hrs ago0xff936b80783b32ad3f2b4e610d04c9778c4669a0 IN  0x5713ab44042d92c642444bd2f0fee9c2336f9e3b0 ETH0.0000032269490.007026252
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb17a57b1a1e3470ada6087f49fc9b3a091a78f188e51f870fbfb4d47c08b52d2135559682024-04-23 19:41:2311 hrs 28 mins ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xa7cc4b89e3b5886bda647e7b5123f0d91d49aead634c65c4bfe4b93960ac9e31133994292024-04-20 4:43:254 days 2 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x19a011bc867e7bda6e476df326d14c9fe2ef4272466e9dad050675dc5c1fe86d133774292024-04-19 16:30:054 days 14 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x0df8f999328d7de583e6e1959a5b8098e9ba934a4a74919231d0f02426799665133773272024-04-19 16:26:414 days 14 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x2fc035561c2a672f105f63cd765e6a5aaa98ca9fd2f1c3efd0d95184c8cc6c8d130855682024-04-12 22:21:2311 days 8 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xbe7053cf36e786138347ff963a6990810c95284f612168ac2a25acb9663a772e128732892024-04-08 0:25:2516 days 6 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x7a6b36a699b7cee47956948a09af2ecc1f72e3900023ccdee86597c0f88d8615128618312024-04-07 18:03:2916 days 13 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x8950d7e43ae723cef9bb3f9367fc715d533334c390971ad6b42ed7b6082c8cd1126663172024-04-03 5:26:2121 days 1 hr ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x9c2f53972abb395e54fed8a7e1afe8493eec212388c8e2e03f68acff72b8458a120306422024-03-19 12:17:1135 days 18 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xf580287af4d5b19fa816e7e4c0df1ae047018b2cd703b500070c7e4822f27a6e117990182024-03-14 3:36:2341 days 3 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x8ec32e92ddfd13498f1e56c0f9e2dd2b72d91cf8a3c3e585cbd2623fc3dc16c7117281692024-03-12 12:14:4542 days 18 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xf168a6e65416e71e6c30b8f6887998417d3d9341c4c3def671e0e264cf2b5d23116690872024-03-11 3:25:2144 days 3 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x440e91325f0b76706765fea2b89c8b7c340c112ebb90ffa0b0a05c142766c506109871312024-02-24 8:33:2959 days 22 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xc519763570d25dc33f82829f39a1866e423f3323055382121f828668e71af469105511752024-02-14 6:21:3770 days 48 mins ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xad9067c0c9b23144baa27ca65eef8b8988f5d8534127fed16dc9749c26353651103526812024-02-09 16:05:0974 days 15 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x5cd5d9c7356949b421634b557918f52b28ad4cc8782b4447682557212984666296266352024-01-23 20:43:3791 days 10 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x65f61c5399aaa925c6154187737072546cc06261329bc767ad2373bd87c3e50e94104802024-01-18 20:38:2796 days 10 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x182abc2e6e520a7b994927ee11f21526da9c0eaed3b0ad574abd0fe0deec283a91479622024-01-12 18:47:51102 days 12 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x0b86d06bab857607e5dd23e31f5c47c3b6ab32fffed71eb3f7a9d91deae454f685717792023-12-30 10:41:45115 days 20 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x88d6f96541c5839d914d974623988b6d41902dd21eb3cfc33f5fdb69a510934085423332023-12-29 18:20:13116 days 12 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xb6c0feb55d6bf9524812e785a63c5308f10cc02ad31fe6a9e57b639076df7f5271521632023-11-27 14:01:13148 days 17 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xbb6769ef5bab0236bdeb6aba5d27ce06c314ac3b3951fa45cb64832f52d9808d69503902023-11-22 21:55:27153 days 9 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0xa4d9c8e89431f85c0922e4ec80f82a83c1ffd0623f2d91b59c1f35a499a58e1c66275132023-11-15 10:32:53160 days 20 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x0f000e4d7171c07bb24077daa526e30b90d8206ce9615ab635b2069f41fa90bb64287692023-11-10 20:08:05165 days 11 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
0x525df9145e9b96fc5efe4293f2791482beb347b0a850b091227aa08da35a44e663895442023-11-09 22:20:35166 days 8 hrs ago 0x5713ab44042d92c642444bd2f0fee9c2336f9e3b  Contract Creation0 ETH
[ Download CSV Export 
Loading

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

Contract Name:
TransparentUpgradeableProxy

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2023-07-19
*/

/**
 *Submitted for verification at Optimistic.Etherscan.io on 2021-11-13
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Library for reading and writing primitive types to specific storage slots.
 *
 * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
 * This library helps with reading and writing to such slots without the need for inline assembly.
 *
 * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
 *
 * Example usage to set ERC1967 implementation slot:
 * ```
 * contract ERC1967 {
 *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
 *
 *     function _getImplementation() internal view returns (address) {
 *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
 *     }
 *
 *     function _setImplementation(address newImplementation) internal {
 *         require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
 *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
 *     }
 * }
 * ```
 *
 * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
 */
library StorageSlot {
    struct AddressSlot {
        address value;
    }

    struct BooleanSlot {
        bool value;
    }

    struct Bytes32Slot {
        bytes32 value;
    }

    struct Uint256Slot {
        uint256 value;
    }

    /**
     * @dev Returns an `AddressSlot` with member `value` located at `slot`.
     */
    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.
     */
    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
     */
    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
        assembly {
            r.slot := slot
        }
    }

    /**
     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.
     */
    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
        assembly {
            r.slot := slot
        }
    }
}

/**
 * @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.4._
     */
    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.4._
     */
    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 is the interface that {BeaconProxy} expects of its beacon.
 */
interface IBeacon {
    /**
     * @dev Must return an address that can be used as a delegate call target.
     *
     * {BeaconProxy} will check that this address is a contract.
     */
    function implementation() external view returns (address);
}

/**
 * @dev This abstract contract provides getters and event emitting update functions for
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.
 *
 * _Available since v4.1._
 *
 * @custom:oz-upgrades-unsafe-allow delegatecall
 */
abstract contract ERC1967Upgrade {
    // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1
    bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;

    /**
     * @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 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

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

    /**
     * @dev Returns the current implementation address.
     */
    function _getImplementation() internal view returns (address) {
        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
    }

    /**
     * @dev Perform implementation upgrade
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Perform implementation upgrade with additional setup call.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
        if (data.length > 0 || forceCall) {
            Address.functionDelegateCall(newImplementation, data);
        }
    }

    /**
     * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeToAndCallSecure(address newImplementation, bytes memory data, bool forceCall) internal {
        address oldImplementation = _getImplementation();

        // Initial upgrade and setup call
        _setImplementation(newImplementation);
        if (data.length > 0 || forceCall) {
            Address.functionDelegateCall(newImplementation, data);
        }

        // Perform rollback test if not already in progress
        StorageSlot.BooleanSlot storage rollbackTesting = StorageSlot.getBooleanSlot(_ROLLBACK_SLOT);
        if (!rollbackTesting.value) {
            // Trigger rollback using upgradeTo from the new implementation
            rollbackTesting.value = true;
            Address.functionDelegateCall(
                newImplementation,
                abi.encodeWithSignature(
                    "upgradeTo(address)",
                    oldImplementation
                )
            );
            rollbackTesting.value = false;
            // Check rollback was effective
            require(oldImplementation == _getImplementation(), "ERC1967Upgrade: upgrade breaks further upgrades");
            // Finally reset to the new implementation and log the upgrade
            _setImplementation(newImplementation);
            emit Upgraded(newImplementation);
        }
    }

    /**
     * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does
     * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).
     *
     * Emits a {BeaconUpgraded} event.
     */
    function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal {
        _setBeacon(newBeacon);
        emit BeaconUpgraded(newBeacon);
        if (data.length > 0 || forceCall) {
            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);
        }
    }

    /**
     * @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 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

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

    /**
     * @dev Returns the current admin.
     */
    function _getAdmin() internal view returns (address) {
        return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        require(newAdmin != address(0), "ERC1967: new admin is the zero address");
        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;
    }

    /**
     * @dev Changes the admin of the proxy.
     *
     * Emits an {AdminChanged} event.
     */
    function _changeAdmin(address newAdmin) internal {
        emit AdminChanged(_getAdmin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.
     * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.
     */
    bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;

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

    /**
     * @dev Returns the current beacon.
     */
    function _getBeacon() internal view returns (address) {
        return StorageSlot.getAddressSlot(_BEACON_SLOT).value;
    }

    /**
     * @dev Stores a new beacon in the EIP1967 beacon slot.
     */
    function _setBeacon(address newBeacon) private {
        require(
            Address.isContract(newBeacon),
            "ERC1967: new beacon is not a contract"
        );
        require(
            Address.isContract(IBeacon(newBeacon).implementation()),
            "ERC1967: beacon implementation is not a contract"
        );
        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;
    }
}

/**
 * @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 virtual {
        // 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 view virtual 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 virtual {
        _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 virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () external payable virtual {
        _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.
 */
contract ERC1967Proxy is Proxy, ERC1967Upgrade {
    /**
     * @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) payable {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _upgradeToAndCall(_logic, _data, false);
    }

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal view virtual override returns (address impl) {
        return ERC1967Upgrade._getImplementation();
    }
}

/**
 * @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 ERC1967Proxy {
    /**
     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
     * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.
     */
    constructor(address _logic, address admin_, bytes memory _data) payable ERC1967Proxy(_logic, _data) {
        assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _changeAdmin(admin_);
    }

    /**
     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
     */
    modifier ifAdmin() {
        if (msg.sender == _getAdmin()) {
            _;
        } 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_ = _getAdmin();
    }

    /**
     * @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 virtual ifAdmin {
        _changeAdmin(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 {
        _upgradeToAndCall(newImplementation, bytes(""), false);
    }

    /**
     * @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 {
        _upgradeToAndCall(newImplementation, data, true);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view virtual returns (address) {
        return _getAdmin();
    }

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

Contract Security Audit

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":"beacon","type":"address"}],"name":"BeaconUpgraded","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"}]

Deployed Bytecode

0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106ed565b610118565b61005b610093366004610707565b610164565b3480156100a457600080fd5b506100ad6101da565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106ed565b610217565b3480156100f557600080fd5b506100ad610241565b6101066102a2565b610116610111610346565b610355565b565b610120610379565b6001600160a01b0316336001600160a01b0316141561015957610154816040518060200160405280600081525060006103ac565b610161565b6101616100fe565b50565b61016c610379565b6001600160a01b0316336001600160a01b031614156101cd576101c88383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506103ac915050565b6101d5565b6101d56100fe565b505050565b60006101e4610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610346565b9050610214565b6102146100fe565b90565b61021f610379565b6001600160a01b0316336001600160a01b03161415610159576101548161040b565b600061024b610379565b6001600160a01b0316336001600160a01b0316141561020c57610205610379565b606061029183836040518060600160405280602781526020016108016027913961045f565b9392505050565b803b15155b919050565b6102aa610379565b6001600160a01b0316336001600160a01b031614156103415760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b610116565b600061035061053a565b905090565b3660008037600080366000845af43d6000803e808015610374573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b6103b583610562565b6040516001600160a01b038416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a26000825111806103f65750805b156101d557610405838361026c565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610434610379565b604080516001600160a01b03928316815291841660208301520160405180910390a161016181610611565b606061046a84610298565b6104c55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610338565b600080856001600160a01b0316856040516104e09190610785565b600060405180830381855af49150503d806000811461051b576040519150601f19603f3d011682016040523d82523d6000602084013e610520565b606091505b509150915061053082828661069d565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61039d565b61056b81610298565b6105cd5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610338565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381166106765760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610338565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036105f0565b606083156106ac575081610291565b8251156106bc5782518084602001fd5b8160405162461bcd60e51b815260040161033891906107a1565b80356001600160a01b038116811461029d57600080fd5b6000602082840312156106fe578081fd5b610291826106d6565b60008060006040848603121561071b578182fd5b610724846106d6565b9250602084013567ffffffffffffffff80821115610740578384fd5b818601915086601f830112610753578384fd5b813581811115610761578485fd5b876020828501011115610772578485fd5b6020830194508093505050509250925092565b600082516107978184602087016107d4565b9190910192915050565b60006020825282518060208401526107c08160408501602087016107d4565b601f01601f19169190910160400192915050565b60005b838110156107ef5781810151838201526020016107d7565b83811115610405575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122093f028255035b61df476b13b9dba3c4f06f60e51b9b4caee31680b389aef327f64736f6c63430008020033

Deployed ByteCode Sourcemap

23585:3618:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20514:11;:9;:11::i;:::-;23585:3618;;20282:11;:9;:11::i;26016:136::-;;;;;;;;;;-1:-1:-1;26016:136:0;;;;;:::i;:::-;;:::i;26537:166::-;;;;;;:::i;:::-;;:::i;25399:131::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1556:32:1;;;1538:51;;1526:2;1511:18;25399:131:0;;;;;;;25744:105;;;;;;;;;;-1:-1:-1;25744:105:0;;;;;:::i;:::-;;:::i;24830:98::-;;;;;;;;;;;;;:::i;19918:113::-;19967:17;:15;:17::i;:::-;19995:28;20005:17;:15;:17::i;:::-;19995:9;:28::i;:::-;19918:113::o;26016:136::-;24285:11;:9;:11::i;:::-;-1:-1:-1;;;;;24271:25:0;:10;-1:-1:-1;;;;;24271:25:0;;24267:103;;;26090:54:::1;26108:17;26127:9;;;;;;;;;;;::::0;26138:5:::1;26090:17;:54::i;:::-;24267:103:::0;;;24347:11;:9;:11::i;:::-;26016:136;:::o;26537:166::-;24285:11;:9;:11::i;:::-;-1:-1:-1;;;;;24271:25:0;:10;-1:-1:-1;;;;;24271:25:0;;24267:103;;;26647:48:::1;26665:17;26684:4;;26647:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;26690:4:0::1;::::0;-1:-1:-1;26647:17:0::1;::::0;-1:-1:-1;;26647:48:0:i:1;:::-;24267:103:::0;;;24347:11;:9;:11::i;:::-;26537:166;;;:::o;25399:131::-;25451:23;24285:11;:9;:11::i;:::-;-1:-1:-1;;;;;24271:25:0;:10;-1:-1:-1;;;;;24271:25:0;;24267:103;;;25505:17:::1;:15;:17::i;:::-;25487:35;;24267:103:::0;;;24347:11;:9;:11::i;:::-;25399:131;:::o;25744:105::-;24285:11;:9;:11::i;:::-;-1:-1:-1;;;;;24271:25:0;:10;-1:-1:-1;;;;;24271:25:0;;24267:103;;;25819:22:::1;25832:8;25819:12;:22::i;24830:98::-:0;24873:14;24285:11;:9;:11::i;:::-;-1:-1:-1;;;;;24271:25:0;:10;-1:-1:-1;;;;;24271:25:0;;24267:103;;;24909:11:::1;:9;:11::i;8960:200::-:0;9043:12;9075:77;9096:6;9104:4;9075:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;9068:84;8960:200;-1:-1:-1;;;8960:200:0:o;3275:422::-;3642:20;;3681:8;;3275:422;;;;:::o;26990:210::-;27076:11;:9;:11::i;:::-;-1:-1:-1;;;;;27062:25:0;:10;-1:-1:-1;;;;;27062:25:0;;;27054:104;;;;-1:-1:-1;;;27054:104:0;;3727:2:1;27054:104:0;;;3709:21:1;3766:2;3746:18;;;3739:30;3805:34;3785:18;;;3778:62;3876:34;3856:18;;;3849:62;-1:-1:-1;;;3927:19:1;;;3920:33;3970:19;;27054:104:0;;;;;;;;;27169:23;19918:113;21963:142;22030:12;22062:35;:33;:35::i;:::-;22055:42;;21963:142;:::o;18511:915::-;18911:14;18908:1;18905;18892:34;19129:1;19126;19110:14;19107:1;19091:14;19084:5;19071:60;19208:16;19205:1;19202;19187:38;19248:6;19317:38;;;;19389:16;19386:1;19379:27;19317:38;19336:16;19333:1;19326:27;15819:124;15863:7;15543:66;15890:39;:45;-1:-1:-1;;;;;15890:45:0;;-1:-1:-1;15819:124:0;:::o;12824:321::-;12933:37;12952:17;12933:18;:37::i;:::-;12986:27;;-1:-1:-1;;;;;12986:27:0;;;;;;;;13042:1;13028:4;:11;:15;:28;;;;13047:9;13028:28;13024:114;;;13073:53;13102:17;13121:4;13073:28;:53::i;:::-;;12824:321;;;:::o;16352:138::-;16417:35;16430:11;:9;:11::i;:::-;16417:35;;;-1:-1:-1;;;;;1830:15:1;;;1812:34;;1882:15;;;1877:2;1862:18;;1855:43;1747:18;16417:35:0;;;;;;;16463:19;16473:8;16463:9;:19::i;9354:423::-;9465:12;9498:18;9509:6;9498:10;:18::i;:::-;9490:69;;;;-1:-1:-1;;;9490:69:0;;3320:2:1;9490:69:0;;;3302:21:1;3359:2;3339:18;;;3332:30;3398:34;3378:18;;;3371:62;-1:-1:-1;;;3449:18:1;;;3442:36;3495:19;;9490:69:0;3292:228:1;9490:69:0;9633:12;9647:23;9674:6;-1:-1:-1;;;;;9674:19:0;9694:4;9674:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9632:67;;;;9717:52;9735:7;9744:10;9756:12;9717:17;:52::i;:::-;9710:59;9354:423;-1:-1:-1;;;;;;9354:423:0:o;11915:142::-;11968:7;11634:66;11995:48;1778:40;12153:262;12235:37;12254:17;12235:18;:37::i;:::-;12227:95;;;;-1:-1:-1;;;12227:95:0;;2906:2:1;12227:95:0;;;2888:21:1;2945:2;2925:18;;;2918:30;2984:34;2964:18;;;2957:62;-1:-1:-1;;;3035:18:1;;;3028:43;3088:19;;12227:95:0;2878:235:1;12227:95:0;12390:17;11634:66;12333:48;:74;;-1:-1:-1;;;;;;12333:74:0;-1:-1:-1;;;;;12333:74:0;;;;;;;;;;-1:-1:-1;12153:262:0:o;16030:204::-;-1:-1:-1;;;;;16094:22:0;;16086:73;;;;-1:-1:-1;;;16086:73:0;;2499:2:1;16086:73:0;;;2481:21:1;2538:2;2518:18;;;2511:30;2577:34;2557:18;;;2550:62;-1:-1:-1;;;2628:18:1;;;2621:36;2674:19;;16086:73:0;2471:228:1;16086:73:0;16218:8;15543:66;16170:39;1778:40;9785:742;9900:12;9929:7;9925:595;;;-1:-1:-1;9960:10:0;9953:17;;9925:595;10074:17;;:21;10070:439;;10337:10;10331:17;10398:15;10385:10;10381:2;10377:19;10370:44;10285:148;10480:12;10473:20;;-1:-1:-1;;;10473:20:0;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:715::-;;;;541:2;529:9;520:7;516:23;512:32;509:2;;;562:6;554;547:22;509:2;590:29;609:9;590:29;:::i;:::-;580:39;;670:2;659:9;655:18;642:32;693:18;734:2;726:6;723:14;720:2;;;755:6;747;740:22;720:2;798:6;787:9;783:22;773:32;;843:7;836:4;832:2;828:13;824:27;814:2;;870:6;862;855:22;814:2;915;902:16;941:2;933:6;930:14;927:2;;;962:6;954;947:22;927:2;1012:7;1007:2;998:6;994:2;990:15;986:24;983:37;980:2;;;1038:6;1030;1023:22;980:2;1074;1070;1066:11;1056:21;;1096:6;1086:16;;;;;499:609;;;;;:::o;1113:274::-;;1280:6;1274:13;1296:53;1342:6;1337:3;1330:4;1322:6;1318:17;1296:53;:::i;:::-;1365:16;;;;;1250:137;-1:-1:-1;;1250:137:1:o;1909:383::-;;2058:2;2047:9;2040:21;2090:6;2084:13;2133:6;2128:2;2117:9;2113:18;2106:34;2149:66;2208:6;2203:2;2192:9;2188:18;2183:2;2175:6;2171:15;2149:66;:::i;:::-;2276:2;2255:15;-1:-1:-1;;2251:29:1;2236:45;;;;2283:2;2232:54;;2030:262;-1:-1:-1;;2030:262:1:o;4000:258::-;4072:1;4082:113;4096:6;4093:1;4090:13;4082:113;;;4172:11;;;4166:18;4153:11;;;4146:39;4118:2;4111:10;4082:113;;;4213:6;4210:1;4207:13;4204:2;;;-1:-1:-1;;4248:1:1;4230:16;;4223:27;4053:205::o

Swarm Source

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