Contract 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 17

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1236d534f68c7d7522bc360efe0aab86538ff1ca52477e6ef036b28b77d0ca530x90411a32450124592022-08-16 7:11:5736 secs ago0xcf455ba6cf3ff81f04344660c2c0a9d3bdd8b6b6 IN  OpenOceanExchange.V20 FTM0.002177626286
0xd48e80e5f34681ad0a50d1f11f5fa2ac748f218eab13832a5784bde62147ac280x90411a32450123442022-08-16 7:09:522 mins ago0xcf455ba6cf3ff81f04344660c2c0a9d3bdd8b6b6 IN  OpenOceanExchange.V20 FTM0.001243099346
0xb9b1c1fc4730018cc6e174b1b478874da5cb17b1b39f43c88331c8aeceef3c160x90411a32450103602022-08-16 6:32:3739 mins ago0xef2e56d92dd753ac394beded1440db69029e31fb IN  OpenOceanExchange.V20 FTM0.000313908827
0xea5518f9f6e12678eacbf227d726b987d725205202f13d7e0a8c0681ea92a1710x90411a32450103072022-08-16 6:31:3640 mins ago0x7e6deff6c46e274fe99fc4ae4fc182ab83700b1a IN  OpenOceanExchange.V20 FTM0.004524387
0x148f7f53a91253a5029250d303eb6bf2291bc915c94a3a05865e6a194d132ac90x90411a32450102712022-08-16 6:30:5341 mins ago0xef2e56d92dd753ac394beded1440db69029e31fb IN  OpenOceanExchange.V20 FTM0.000249699125
0x09cb5d9d82ab913eaf1b4e5df5ebde064859e6c2a3fd71ec91e3c0eb83ac63620x90411a32450093162022-08-16 6:11:181 hr 1 min ago0xcc59153aee567a1d426b631d2fab11ebf84e998c IN  OpenOceanExchange.V20 FTM0.000353398912
0x96bc6e3064dae2325b655fc9d2f9809a9c6594726aa76f7d0080fa60c0a0ee340x90411a32450092152022-08-16 6:09:291 hr 3 mins ago0xcc59153aee567a1d426b631d2fab11ebf84e998c IN  OpenOceanExchange.V20 FTM0.000658305161
0xf476a19aa964c871e85e44dd7ca66c3ca8811c26e13ee1e47240d3c9213343440x90411a32450081932022-08-16 5:47:361 hr 24 mins ago0x116bd88bba2956e098af1b2554f162f13409cc49 IN  OpenOceanExchange.V20 FTM0.002268045504
0xd9e8b4a3519b954deb77bb4b8c2415a6cc7e287761372024787a731554d31e4b0x90411a32450076912022-08-16 5:37:041 hr 35 mins ago0x84d0f74d21a89f86b67e9a38d8559d0b4e10f12d IN  OpenOceanExchange.V20 FTM0.000859276
0xe426bad0a0d4542226734935c9f7708a8f43516a9df41430eb3ffcd1c1c7aa010x90411a32450076752022-08-16 5:36:451 hr 35 mins ago0x84d0f74d21a89f86b67e9a38d8559d0b4e10f12d IN  OpenOceanExchange.V20 FTM0.001517818
0xdc52de6ea100c71a166ac253cab8c819591ec450f78c390805f5372c3b6aa1160x90411a32450068472022-08-16 5:20:461 hr 51 mins ago0x9d6a31691519245d0ec83b8e996f851b9be787d1 IN  OpenOceanExchange.V20 FTM0.001148539326
0x4c163a3f732e23ea0ed7e19c05538050a19e1eada484a5c434a897a263bb79440x90411a32450061742022-08-16 5:07:172 hrs 5 mins ago0x116bd88bba2956e098af1b2554f162f13409cc49 IN  OpenOceanExchange.V20 FTM0.013807750428
0xdadf94c23cee1d53900c9db1ca31c70a8fdeebe538e3ac68b03de7392b218a6c0x90411a32450060502022-08-16 5:04:582 hrs 7 mins ago0xcabe02e51448e03a55a1da5540e8b07ca0835d97 IN  OpenOceanExchange.V20 FTM0.000568264927
0xc30670d0f820018c1023ba1a4822423a494127f5a325f1b5951ae63fb6d43d700x90411a32450058772022-08-16 5:01:132 hrs 11 mins ago0xcabe02e51448e03a55a1da5540e8b07ca0835d97 IN  OpenOceanExchange.V20 FTM0.000462217952
0xc1887c933d88a402aa107cbc3ec46c827d76573a9310deed7ffa19a2df0fe1f00x90411a32450057992022-08-16 4:59:222 hrs 13 mins ago0x116bd88bba2956e098af1b2554f162f13409cc49 IN  OpenOceanExchange.V20 FTM0.000388601527
0x0c4484f58f0e5bb65b31bd1ae93ed7daec5fc9643316e3ebc436d02d6e5562810x90411a32450056322022-08-16 4:56:182 hrs 16 mins ago0x504db0a01caf27fa108e0245f12af3504642148d IN  OpenOceanExchange.V20 FTM0.000748833019
0x106d857c7a611a3933d2a9c5d08f3c55b4681927d7a31214caabfa9a594bc38a0x90411a32450054082022-08-16 4:52:042 hrs 20 mins ago0x84d0f74d21a89f86b67e9a38d8559d0b4e10f12d IN  OpenOceanExchange.V20 FTM0.001005138
0x166c7e5caf129dbee72e088115fd1e78ddac3c08971e46e7ed332b2c2940e2260x90411a32450054002022-08-16 4:51:552 hrs 20 mins ago0x84d0f74d21a89f86b67e9a38d8559d0b4e10f12d IN  OpenOceanExchange.V20 FTM0.000639558
0xf15209db743cdc3ec354562714038b32af072b39e08b238dcaf99c0f50a136040x90411a32450051682022-08-16 4:47:412 hrs 24 mins ago0x73860dc8055a36199fa017e4d9b6584e1497df85 IN  OpenOceanExchange.V20 FTM0.000804657179
0xe1c1fb907f511a4c1cb85aefd8d707aa5c4e9fac159ca9a86879e276ae27895f0x90411a32450048772022-08-16 4:41:222 hrs 31 mins ago0x116bd88bba2956e098af1b2554f162f13409cc49 IN  OpenOceanExchange.V20 FTM0.003299257078
0x01ba6e4cfc7c544fd5f31b81a1b7dbf314ba05d30e167bb437a69bfb311937a20x90411a32450046802022-08-16 4:36:492 hrs 35 mins ago0x73860dc8055a36199fa017e4d9b6584e1497df85 IN  OpenOceanExchange.V20 FTM0.001188937321
0x720c18845e14164f544599245e89bc1cee164e3b2eefc66d125e410d008beacb0x90411a32450046352022-08-16 4:36:002 hrs 36 mins ago0x73860dc8055a36199fa017e4d9b6584e1497df85 IN  OpenOceanExchange.V20 FTM0.002029127625
0x99da2165fb13293057f116a7528a7ea64fd796330828fac2cb0ce0e707a3cf140x90411a32450046082022-08-16 4:35:182 hrs 37 mins ago0x504db0a01caf27fa108e0245f12af3504642148d IN  OpenOceanExchange.V20 FTM0.001159923774
0x12972fca2edf05831eb1d17475bd2fc2e396565820ad59dc429b2926b75479910x90411a32450044942022-08-16 4:33:062 hrs 39 mins ago0x116bd88bba2956e098af1b2554f162f13409cc49 IN  OpenOceanExchange.V20 FTM0.004661739588
0xc9ab046188934da8035be7af91bd4efd58c1b83d4454eb3571c06a80611c759b0x90411a32450038412022-08-16 4:20:322 hrs 52 mins ago0xcf455ba6cf3ff81f04344660c2c0a9d3bdd8b6b6 IN  OpenOceanExchange.V20 FTM0.001428152555
[ Download CSV Export 

OVERVIEW

OpenOceanExchange Smart Contract Address update.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf057072e61592e12c7e22130382b1f31399cf52de2d8c6a4efefa8ce271fb329450117722022-08-16 6:59:0313 mins ago 0x80d28212c050a6d127d7b4fb6d45dfd9d274cce2 OpenOceanExchange.V21 FTM
0x45dd470f9493d4b63fa69296c82de4f0345e712e1fef77f6f4f26d3d17a2811b444789822022-08-08 13:48:447 days 17 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V285 FTM
0xb240f1806ebaa76c85c7fdb1a48c4e39ba54649037cec36c5f0db3ad8b722c3e444645722022-08-08 8:06:177 days 23 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V2280 FTM
0xdeabca8acfec8b1ef3bab36a6ca2a4589c6824544f4ab5f131ffa106f673e324443870022022-08-07 4:34:019 days 2 hrs ago 0x63bbed4159e61292c082b8474b2538f83cbaebf2 OpenOceanExchange.V213.37 FTM
0x2faebaece1bdf55216e6ce0fe371c6e8cf2b7d575e0688190cd2cbfd4b6aece2443799092022-08-07 2:13:239 days 4 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V20.4 FTM
0x89d226c15591c7f109efcb8dbbf5e2e502cdd75aad0696b9f51d34a0529b4828443503712022-08-06 15:35:389 days 15 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V22 FTM
0xde971a932c965fb90428a29cab80072964a025589ac3fafbf7f02eef2ecae9c7443109512022-08-06 1:52:4010 days 5 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V290 FTM
0x3bf34503301b19f16c5640cae8ef2533da0432ebfa3cdbfb9e0db7c8942d5bce442611992022-08-05 7:55:5810 days 23 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V22.88 FTM
0x520c68517a9a002449ef6aa6af84bc5dfd9fe70d878bf1725fe5161337c0bf0a442562002022-08-05 6:09:3111 days 1 hr ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V2100 FTM
0xddc86d5d409fcde094732bdb7b2667a3b30f7b7ef82598ded5ef32ad5abeaf81441695642022-08-03 23:16:5412 days 7 hrs ago 0xe10f73a5021f077a08a500be46ab379afe8481c6 OpenOceanExchange.V239 FTM
0xac22a80b31eb1b5caea4044d6c3a93e13a8b1c1a0cdef2bed48c4ef41f383f88441636752022-08-03 21:13:3112 days 9 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V2183.81385 FTM
0x2f40979a27446427774e1660f9bd7bd855c5c14b6c980c47b6172b4ecd40c430440826752022-08-02 17:53:1013 days 13 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V267 FTM
0xad1bc0a764c8525dad0852d189850b24d6bd15d266536cef7740d3e5fa5283fb440823152022-08-02 17:46:2113 days 13 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V217 FTM
0xa0fcde556ee36c2e19d088b973e399c0ca9e5d06df09dda36fddafcf93dac30e440098472022-08-01 16:31:2514 days 14 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V25 FTM
0x2a86f5efb219a16e21b99b86be3c5cec6b31f14f331b7c77585b06c4eb5d4ba7440004672022-08-01 13:12:2014 days 18 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V25 FTM
0x1746a92bfdae54cdb694b4159bfe18c28bffd955e45ac5aef865e11895ffc004439776762022-08-01 5:20:0115 days 1 hr ago 0xe10f73a5021f077a08a500be46ab379afe8481c6 OpenOceanExchange.V228 FTM
0x7dd989255474158fc867d2fba6b1228f284d2599d3a7242e9b316c1d47b64fc2439730372022-08-01 3:49:2815 days 3 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V250 FTM
0xaec191b25d59d56af16c06be8eae41a7a5089e5c90703ceede31680b3fc109cd438614252022-07-30 13:12:0116 days 18 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V24.9 FTM
0x6e68c6d05032506a84d5416bd4807b44b2774d31683b1c6f5b34ac701092ad1d438124052022-07-29 19:37:2417 days 11 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V2160 FTM
0x7c79c1d844f6367837cecc03e0b4a484bd744ff2bb22f3276812e8dd39e4ad0e437661452022-07-29 2:58:2418 days 4 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V26 FTM
0xaec2f5a6532498a6a5638f57999a9a4ea97a6c788b0580225491675a56b51009437652312022-07-29 2:40:2818 days 4 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V26 FTM
0x1dc9920b3a05962d297d7435465f222ea63adf08956ca729a5058b4465e2f1cb437369312022-07-28 16:58:5618 days 14 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V26 FTM
0x711da0e715c843e9dc3f65671aadcdcca1589131f21d23e3eab5e6e793f2e382437256882022-07-28 12:42:0818 days 18 hrs ago 0x485c8ffe2535b132847f385db066e8ba946768ca OpenOceanExchange.V24.85 FTM
0xa8a53a4f581a6aee6b5f87b8ef89f5732a12eca57787fefaa3e1c6bbe8a4fb9a437028442022-07-28 4:45:3919 days 2 hrs ago 0xe10f73a5021f077a08a500be46ab379afe8481c6 OpenOceanExchange.V27 FTM
0xb48acfe352370f893ab7a9da01e539fc058e37913aae9bf604255d87d1e89d14436928892022-07-28 1:12:3619 days 5 hrs ago 0xe10f73a5021f077a08a500be46ab379afe8481c6 OpenOceanExchange.V251,120 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OpenOceanExchangeProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at FtmScan.com on 2021-09-18
*/

// File: @openzeppelin/contracts/proxy/Proxy.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

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

// File: @openzeppelin/contracts/utils/Address.sol

pragma solidity >=0.6.2 <0.8.0;

/**
 * @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);
            }
        }
    }
}

// File: @openzeppelin/contracts/proxy/UpgradeableProxy.sol

pragma solidity >=0.6.0 <0.8.0;

/**
 * @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) {
            Address.functionDelegateCall(_logic, _data);
        }
    }

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

// File: @openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol

pragma solidity >=0.6.0 <0.8.0;

/**
 * @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 virtual 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 virtual 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 virtual ifAdmin {
        _upgradeTo(newImplementation);
        Address.functionDelegateCall(newImplementation, data);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view virtual 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 virtual override {
        require(msg.sender != _admin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
        super._beforeFallback();
    }
}

// File: contracts/OpenOceanExchangeProxy.sol

pragma solidity ^0.6.12;

contract OpenOceanExchangeProxy is TransparentUpgradeableProxy {
    constructor(
        address logic,
        address admin,
        bytes memory data
    ) public TransparentUpgradeableProxy(logic, admin, data) {}
}

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":"nonpayable","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"}]

60806040523480156200001157600080fd5b5060405162000c9238038062000c92833981810160405260608110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052508491508390508282816200010a826200014b565b8051156200012b57620001298282620001c260201b620003841760201c565b505b50620001349050565b6200013f82620001f1565b505050505050620003d3565b62000161816200021560201b620003b01760201c565b6200019e5760405162461bcd60e51b815260040180806020018281038252603681526020018062000c366036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6060620001ea838360405180606001604052806027815260200162000c0f602791396200021b565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b6060620002288462000215565b620002655760405162461bcd60e51b815260040180806020018281038252602681526020018062000c6c6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b60208310620002a55780518252601f19909201916020918201910162000284565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000307576040519150601f19603f3d011682016040523d82523d6000602084013e6200030c565b606091505b5090925090506200031f82828662000329565b9695505050505050565b606083156200033a575081620001ea565b8251156200034b5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620003975781810151838201526020016200037d565b50505050905090810190601f168015620003c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b61082c80620003e36000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610262565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b031661029f565b34801561018857600080fd5b5061012d610359565b6101996103b6565b6101a96101a4610416565b61043b565b565b6101b361045f565b6001600160a01b0316336001600160a01b031614156101da576101d581610484565b6101e2565b6101e2610191565b50565b6101ed61045f565b6001600160a01b0316336001600160a01b031614156102555761020f83610484565b61024f8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038492505050565b5061025d565b61025d610191565b505050565b600061026c61045f565b6001600160a01b0316336001600160a01b031614156102945761028d610416565b905061029c565b61029c610191565b90565b6102a761045f565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103055760405162461bcd60e51b815260040180806020018281038252603a8152602001806106f8603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e61045f565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c4565b600061036361045f565b6001600160a01b0316336001600160a01b031614156102945761028d61045f565b60606103a98383604051806060016040528060278152602001610732602791396104e8565b9392505050565b3b151590565b6103be61045f565b6001600160a01b0316336001600160a01b0316141561040e5760405162461bcd60e51b81526004018080602001828103825260428152602001806107b56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61048d816105eb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60606104f3846103b0565b61052e5760405162461bcd60e51b815260040180806020018281038252602681526020018061078f6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b6020831061056c5780518252601f19909201916020918201910161054d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e1828286610653565b9695505050505050565b6105f4816103b0565b61062f5760405162461bcd60e51b81526004018080602001828103825260368152602001806107596036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106625750816103a9565b8251156106725782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106bc5781810151838201526020016106a4565b50505050905090810190601f1680156106e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220d6532a0164793b86067e69ca26da1c7364d7a21188b7c79410d384a531b909f364736f6c634300060c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000ed85325119ccfc6acb16fa931bac6378b76e4615000000000000000000000000c979fec5bf053d0d52cada4cfe1c25737731502d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000

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

000000000000000000000000ed85325119ccfc6acb16fa931bac6378b76e4615000000000000000000000000c979fec5bf053d0d52cada4cfe1c25737731502d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : logic (address): 0xed85325119ccfc6acb16fa931bac6378b76e4615
Arg [1] : admin (address): 0xc979fec5bf053d0d52cada4cfe1c25737731502d
Arg [2] : data (bytes): 0x8129fc1c

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000ed85325119ccfc6acb16fa931bac6378b76e4615
Arg [1] : 000000000000000000000000c979fec5bf053d0d52cada4cfe1c25737731502d
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 8129fc1c00000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

20953:225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3024:11;:9;:11::i;:::-;20953:225;;2793:11;:9;:11::i;19217:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19217:119:0;-1:-1:-1;;;;;19217:119:0;;:::i;19721:219::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19721:219:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19721:219:0;;-1:-1:-1;19721:219:0;-1:-1:-1;19721:219:0;:::i;18451:131::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;18451:131:0;;;;;;;;;;;;;;18796:254;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18796:254:0;-1:-1:-1;;;;;18796:254:0;;:::i;17885:95::-;;;;;;;;;;;;;:::i;2430:113::-;2479:17;:15;:17::i;:::-;2507:28;2517:17;:15;:17::i;:::-;2507:9;:28::i;:::-;2430:113::o;19217:119::-;17343:8;:6;:8::i;:::-;-1:-1:-1;;;;;17329:22:0;:10;-1:-1:-1;;;;;17329:22:0;;17325:100;;;19299:29:::1;19310:17;19299:10;:29::i;:::-;17325:100:::0;;;17402:11;:9;:11::i;:::-;19217:119;:::o;19721:219::-;17343:8;:6;:8::i;:::-;-1:-1:-1;;;;;17329:22:0;:10;-1:-1:-1;;;;;17329:22:0;;17325:100;;;19839:29:::1;19850:17;19839:10;:29::i;:::-;19879:53;19908:17;19927:4;;19879:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;19879:28:0::1;::::0;-1:-1:-1;;;19879:53:0:i:1;:::-;;17325:100:::0;;;17402:11;:9;:11::i;:::-;19721:219;;;:::o;18451:131::-;18503:23;17343:8;:6;:8::i;:::-;-1:-1:-1;;;;;17329:22:0;:10;-1:-1:-1;;;;;17329:22:0;;17325:100;;;18557:17:::1;:15;:17::i;:::-;18539:35;;17325:100:::0;;;17402:11;:9;:11::i;:::-;18451:131;:::o;18796:254::-;17343:8;:6;:8::i;:::-;-1:-1:-1;;;;;17329:22:0;:10;-1:-1:-1;;;;;17329:22:0;;17325:100;;;-1:-1:-1;;;;;18879:22:0;::::1;18871:93;;;;-1:-1:-1::0;;;18871:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18980:32;18993:8;:6;:8::i;:::-;18980:32;::::0;;-1:-1:-1;;;;;18980:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;19023:19;19033:8;19023:9;:19::i;17885:95::-:0;17928:14;17343:8;:6;:8::i;:::-;-1:-1:-1;;;;;17329:22:0;:10;-1:-1:-1;;;;;17329:22:0;;17325:100;;;17964:8:::1;:6;:8::i;10005:200::-:0;10088:12;10120:77;10141:6;10149:4;10120:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;10113:84;10005:200;-1:-1:-1;;;10005:200:0:o;4155:444::-;4535:20;4583:8;;;4155:444::o;20662:207::-;20748:8;:6;:8::i;:::-;-1:-1:-1;;;;;20734:22:0;:10;-1:-1:-1;;;;;20734:22:0;;;20726:101;;;;-1:-1:-1;;;20726:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20838:23;:21;:23::i;13538:256::-;13388:66;13765:11;;13742:45::o;963:975::-;1363:14;1360:1;1357;1344:34;1581:1;1578;1562:14;1559:1;1543:14;1536:5;1523:60;1660:16;1657:1;1654;1639:38;1700:6;1769:68;;;;1888:16;1885:1;1878:27;1769:68;1805:16;1802:1;1795:27;20006:227;17082:66;20204:11;;20182:44::o;13920:163::-;13995:37;14014:17;13995:18;:37::i;:::-;14048:27;;-1:-1:-1;;;;;14048:27:0;;;;;;;;13920:163;:::o;20320:216::-;17082:66;20496:22;20481:48::o;10399:457::-;10544:12;10577:18;10588:6;10577:10;:18::i;:::-;10569:69;;;;-1:-1:-1;;;10569:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:12;10726:23;10753:6;-1:-1:-1;;;;;10753:19:0;10773:4;10753:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10753:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10711:67;;;;10796:52;10814:7;10823:10;10835:12;10796:17;:52::i;:::-;10789:59;10399:457;-1:-1:-1;;;;;;10399:457:0:o;14179:369::-;14261:37;14280:17;14261:18;:37::i;:::-;14253:104;;;;-1:-1:-1;;;14253:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13388:66;14499:31;14484:57::o;10864:777::-;11014:12;11043:7;11039:595;;;-1:-1:-1;11074:10:0;11067:17;;11039:595;11188:17;;:21;11184:439;;11451:10;11445:17;11512:15;11499:10;11495:2;11491:19;11484:44;11399:148;11594:12;11587:20;;-1:-1:-1;;;11587:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://d6532a0164793b86067e69ca26da1c7364d7a21188b7c79410d384a531b909f3
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.