Contract 0x6352a56caadC4F1E25CD6c75970Fa768A3304e64 18

 

Contract Overview

OpenOcean: Exchange V2
Balance:
0.000000000237721996 ETH

ETH Value:
Less Than $0.01 (@ $1,910.85/ETH)
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xfcf573109ca1c7525995088f945a5412741254e3e7284bf19ff1e65ccca64e76Call Uniswap To961282422023-05-30 21:31:087 mins ago0xf87f6a30651c174f8482d64e4462477452040ef8 IN  OpenOcean: Exchange V20 ETH0.00013179 0.1
0xc4075c4af01992196b225d119aa365dc8ecbaf22d0d98432d2ea105c132b78d5Uniswap V3Swap T...961280052023-05-30 21:30:088 mins ago0xf87f6a30651c174f8482d64e4462477452040ef8 IN  OpenOcean: Exchange V20.027 ETH0.00012351 0.1
0x154fc7db2bcd16a49fb7f386c000f520fa837fc6b79eac3c2f68e0f94cdba557Swap961264852023-05-30 21:23:4515 mins ago0xaaa3b149617a74c8e185ca1e4e210e0236a13487 IN  OpenOcean: Exchange V20 ETH0.000268640.1
0x48f7b4737b49d00100fd10f68c23978557751ba2114cbe115f11e64572df36f6Swap961264852023-05-30 21:23:4515 mins ago0xa049afef83d112f9b9ac4e9d743c50ad08ebee01 IN  OpenOcean: Exchange V20 ETH0.00031624 0.1
0xf458670b74bbb0368db6a6e22b09245c29222672c50dae23d481ac6373b9b0d4Swap961246652023-05-30 21:16:0822 mins ago0x2e162c7ae57566e4b235b4ee752aaede74a3ef26 IN  OpenOcean: Exchange V20 ETH0.000338190.1
0xf5e3af7a183f4c6d76deae04366c39a5c61daddbc5e4f5c022e16b73d2fa2dceSwap961246202023-05-30 21:15:5623 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00042854 0.1
0x89c495087988a9e186df0fdc0690085e5799880476956810affd5f8d0daddaa7Swap961205652023-05-30 20:58:5140 mins ago0x2f431334eb191700ef53db914e456bfa0d2606e3 IN  OpenOcean: Exchange V20 ETH0.000324870.1
0x202fa25e79c4b8cca26194ede0caf5a1ab14a692ebca61413851295864d76d10Swap961196192023-05-30 20:54:5444 mins ago0x1e9832102212cbeb4cf61e741ea2fc70da9d9487 IN  OpenOcean: Exchange V20 ETH0.00034230.1
0x2bf3f63562b8189ffc6573e04bd806778da522281f193884a27a2f4101125e01Swap961182722023-05-30 20:49:1549 mins ago0xc1a460c761a4ad4a6340e7de29bea85f8c535681 IN  OpenOcean: Exchange V20.44 ETH0.000407550.1
0x7ff9f6fc40d6237fb7d2d54dce8685d5ed18b141a8957ea69c21546e4cc3ab12Swap961181712023-05-30 20:48:4950 mins ago0xdd2c37e29b66b7604c1e3fa07e388ae2567cdb0a IN  OpenOcean: Exchange V20.43 ETH0.000408410.1
0x7066b1646a31582844ffbf7d0d6645239d7f74734bfd4c84147a1d428eef3904Swap961172272023-05-30 20:44:4954 mins ago0x40c3575f9c5b6d95d2fc2fbc2435d9c97dc18f6d IN  OpenOcean: Exchange V20 ETH0.00030798 0.1
0xf523fe7b690b08b4f7067dd3d0010aa5f08dd7be200d769dd74ac60cab854a5eSwap961153222023-05-30 20:36:511 hr 2 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00037249 0.1
0x781f8eaa95405f7d9ebf37a6b0c2bb3029a8e523fb6d9f71878f3e90fc984f87Swap961152292023-05-30 20:36:281 hr 2 mins ago0x990c23d72a50124cfcf1f9cf5782ba9b640ca44e IN  OpenOcean: Exchange V20 ETH0.000285770.1
0x115e3eb522fe1eb804461fa6dae496874e87eb29211afd6817c42fa51d648118Swap961142142023-05-30 20:32:111 hr 6 mins ago0x1ac4a6443316ec9ca423e48e25948206935271e2 IN  OpenOcean: Exchange V20 ETH0.0003201 0.1
0x1fd66632d57b9d19b55fdcd2b1a58de629991c9a3728576bd220c2d32bbe8076Swap961142092023-05-30 20:32:101 hr 6 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00044787 0.1
0x1133b61099c701c981957904173c2ed0144270103657617868bbb6bab315758eSwap961137802023-05-30 20:30:251 hr 8 mins ago0x1ac4a6443316ec9ca423e48e25948206935271e2 IN  OpenOcean: Exchange V20 ETH0.00031981 0.1
0xa455782ae1ecffcadc686edf470a8a1ad6e02154e413212283251e6621068db3Uniswap V3Swap T...961136012023-05-30 20:29:401 hr 9 mins ago0x40c3575f9c5b6d95d2fc2fbc2435d9c97dc18f6d IN  OpenOcean: Exchange V20 ETH0.00014326 0.1
0x2be6557acb6fe77e323b31690150698ea9bf99c556b0499e6e2fd97ac932057aSwap961130132023-05-30 20:27:101 hr 11 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00036621 0.1
0xc3bb210897064ddc60a8d185ffec0d5991b39c53c0151ade91bb7f04c3e5908eSwap961128182023-05-30 20:26:201 hr 12 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20.54 ETH0.00033232 0.1
0xa6cee60aef947695ecf220fc1882bbee3d73770c28ae7886ffbb30e97ebb1d68Swap961127352023-05-30 20:26:001 hr 13 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00036399 0.1
0xec54940ce339a930ed7450802c2cf1c49a9c57a969dfdbe91f2978c1207fc83fSwap961126172023-05-30 20:25:301 hr 13 mins ago0x5aad2e13496fc1e9713175ae902dacfe08abd591 IN  OpenOcean: Exchange V20.08 ETH0.00033661 0.1
0x15cc9fd49e339a0cf2a966a827b9c6de8afff212afff85ca145f52810e7b86a4Swap961112432023-05-30 20:19:471 hr 19 mins ago0x82ff77f5e4fba83635b8ea80c058dbddb70c0f2a IN  OpenOcean: Exchange V20 ETH0.000320110.1
0x6fa69e190f1b5f18f004262f2945fda39bd4b6925f657f4c9e079ab09c8089ecSwap961101692023-05-30 20:15:171 hr 23 mins ago0xf4d93a8815bea4f9320d1e9d26fe9ebb7cc50fee IN  OpenOcean: Exchange V20 ETH0.00033925 0.1
0xb158b37c4ab39d5717cbf83a8ae2dc4f9a81cf3c6edab859ff323fa656268a6dSwap961097592023-05-30 20:13:301 hr 25 mins ago0xf961e5e6c5276164adb2865b7e80cf82dc04e920 IN  OpenOcean: Exchange V20 ETH0.00034357 0.1
0x6296c41bbf40ae48cf088e3405f003e00b787302fe8588e9a8005bb5c05632bcSwap961086412023-05-30 20:08:481 hr 30 mins ago0x40c3575f9c5b6d95d2fc2fbc2435d9c97dc18f6d IN  OpenOcean: Exchange V20 ETH0.0002864 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xfcf573109ca1c7525995088f945a5412741254e3e7284bf19ff1e65ccca64e76961282422023-05-30 21:31:087 mins ago OpenOcean: Exchange V20xf87f6a30651c174f8482d64e4462477452040ef80.027019909235147953 ETH
0xfcf573109ca1c7525995088f945a5412741254e3e7284bf19ff1e65ccca64e76961282422023-05-30 21:31:087 mins ago Wrapped Ether OpenOcean: Exchange V20.027019909235147953 ETH
0xc4075c4af01992196b225d119aa365dc8ecbaf22d0d98432d2ea105c132b78d5961280052023-05-30 21:30:088 mins ago OpenOcean: Exchange V2 Wrapped Ether0.027 ETH
0x39576eac5029ae3fcf9a917f4f02469bf85365c5649b61ccc1f05ac1ce1cf95c961279362023-05-30 21:29:519 mins ago OpenOcean: Exchange V2 0x0a2854fbbd9b3ef66f17d47284e7f899b95093300.004022765249896911 ETH
0x39576eac5029ae3fcf9a917f4f02469bf85365c5649b61ccc1f05ac1ce1cf95c961279362023-05-30 21:29:519 mins ago Wrapped Ether OpenOcean: Exchange V20.004022765249896911 ETH
0x6f291e5e22f3dbe9012fd4afbd13f90146058748103da084f2186174750811ef961270782023-05-30 21:26:1512 mins ago OpenOcean: Exchange V2 0x0a2854fbbd9b3ef66f17d47284e7f899b95093300.012762667756943473 ETH
0x6f291e5e22f3dbe9012fd4afbd13f90146058748103da084f2186174750811ef961270782023-05-30 21:26:1512 mins ago Wrapped Ether OpenOcean: Exchange V20.012762667756943473 ETH
0xdf25a0ffd196474a1141982be188b84a6b15d5f8acdf45ba4bc46cbb96fc8ba0961269092023-05-30 21:25:3213 mins ago OpenOcean: Exchange V2 0x0a2854fbbd9b3ef66f17d47284e7f899b95093300.009447126034737165 ETH
0xdf25a0ffd196474a1141982be188b84a6b15d5f8acdf45ba4bc46cbb96fc8ba0961269092023-05-30 21:25:3213 mins ago Wrapped Ether OpenOcean: Exchange V20.009447126034737165 ETH
0x7c2842ccb97efac6d2d61e9efa1051c7b2fb51e5bdea10fd0b99aa2d439965d6961253002023-05-30 21:18:4920 mins ago OpenOcean: Exchange V2 0x2691f337abeb0146f16441ca4f82f363275851d50.004 ETH
0x7c2842ccb97efac6d2d61e9efa1051c7b2fb51e5bdea10fd0b99aa2d439965d6961253002023-05-30 21:18:4920 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.004 ETH
0x87dc0db4bb2bbd0fba3a78f7c0453d7cd3e00be6251796668ba1700fca339bb4961252842023-05-30 21:18:4520 mins ago OpenOcean: Exchange V2 0x2691f337abeb0146f16441ca4f82f363275851d50.000886 ETH
0x87dc0db4bb2bbd0fba3a78f7c0453d7cd3e00be6251796668ba1700fca339bb4961252842023-05-30 21:18:4520 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.000886 ETH
0xc9dfffbdde455e20c193d4143ad9e802e925dfbe98b2d2b7d83f01a3a4c4080b961237672023-05-30 21:12:1926 mins ago OpenOcean: Exchange V2 0x0a2854fbbd9b3ef66f17d47284e7f899b95093300.002174070223559239 ETH
0xc9dfffbdde455e20c193d4143ad9e802e925dfbe98b2d2b7d83f01a3a4c4080b961237672023-05-30 21:12:1926 mins ago Wrapped Ether OpenOcean: Exchange V20.002174070223559239 ETH
0x0c3b848f8db998eb00a9ed2572ea27bc120ff3b275886f95d5225dbf24b27ca5961237452023-05-30 21:12:1326 mins ago OpenOcean: Exchange V2 Wrapped Ether0.014064 ETH
0x0c3b848f8db998eb00a9ed2572ea27bc120ff3b275886f95d5225dbf24b27ca5961237452023-05-30 21:12:1326 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.014064 ETH
0x973e9bbfe2af7d4f0ffbdef4582c5706dabca512e6216aafb2473fa3ac9dbbc6961232342023-05-30 21:10:0429 mins ago OpenOcean: Exchange V2 0x2691f337abeb0146f16441ca4f82f363275851d50.000782 ETH
0x973e9bbfe2af7d4f0ffbdef4582c5706dabca512e6216aafb2473fa3ac9dbbc6961232342023-05-30 21:10:0429 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.000782 ETH
0x355f941e0b043a7cda9df1cf6d9a15be81e6bb60656ff53298699d6b02ff1eaa961223072023-05-30 21:06:1132 mins ago OpenOcean: Exchange V2 Wrapped Ether0.0000574925 ETH
0x355f941e0b043a7cda9df1cf6d9a15be81e6bb60656ff53298699d6b02ff1eaa961223072023-05-30 21:06:1132 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.0000574925 ETH
0x25db9a9d6b5546966522234340fa39ef46a114f187b56f3d79b514dd7ca02264961217152023-05-30 21:03:4035 mins ago OpenOcean: Exchange V2 Wrapped Ether0.013752 ETH
0x25db9a9d6b5546966522234340fa39ef46a114f187b56f3d79b514dd7ca02264961217152023-05-30 21:03:4035 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.013752 ETH
0xf83f25292fc95849ee5ade153214b63b8bcf90d732b748e73a28143a55248720961216652023-05-30 21:03:2835 mins ago OpenOcean: Exchange V2 0x2691f337abeb0146f16441ca4f82f363275851d50.0035 ETH
0xf83f25292fc95849ee5ade153214b63b8bcf90d732b748e73a28143a55248720961216652023-05-30 21:03:2835 mins ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 OpenOcean: Exchange V20.0035 ETH
[ 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 Arbiscan on 2021-12-14
*/

// 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 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Metadata Hash

d6532a0164793b86067e69ca26da1c7364d7a21188b7c79410d384a531b909f3
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.