Contract 0x027da30fadab6202801f97be344e2348a2a92842

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc47cfb9c5589ee167ca94f1a4aa349ace2de90d0eabb2526ea68868bbafa2fa5Exec Transaction363918122022-12-03 22:57:4423 hrs 10 mins ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.014996305881 39.644973449
0x62b50cd71f937d8d8470c8fcbdc2671f27e24e593eeb367eba8e2f413f039d80Exec Transaction363918082022-12-03 22:57:3623 hrs 10 mins ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.074388721736 39.160244292
0xd9c866d41226c44bbdf0ea22a2b1cf5491f6a440c8272278ce93ea736cbff678Exec Transaction363918022022-12-03 22:57:2023 hrs 10 mins ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.024855619376 39.747813367
0x9ba199b60b7cd696657e48f947908cfee0f95f45318f7d34a8125bb6ffce3b30Exec Transaction363480572022-12-02 20:42:092 days 1 hr ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.012895378117 34.096716335
0x19ee57e76d4599d6464ac01e36932ef7c2649a6bd8cbc19fdcb0b7a88e4bf2d9Exec Transaction363013152022-12-01 16:57:103 days 5 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.019892734728 52.591082498
0x52c960c651c63192bfb9d6ad94cf5edc4682f9c13a9237623c2eedf418324c63Exec Transaction362975432022-12-01 14:42:113 days 7 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.050494030887 133.492743976
0x486877f6094b7f9e29e75afc9134e8bca04c36ec31316e1161a334cfd3e9cd3aExec Transaction362971682022-12-01 14:27:093 days 7 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.047185981378 124.75110149
0x79d85ddd6a9820ec8a571dbe37c4b532116805f472c5e801d679097ff2280179Approve362921072022-12-01 11:25:273 days 10 hrs ago0xe40e00645989ebe748b765ec1980b348fbd8accd IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.002018443766 30.186399168
0x800db3162d88c4b03cda89507b19bc9b164d07a0ee1793e6816ae972fca5a601Exec Transaction362778572022-12-01 2:57:113 days 19 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.018935920699 50.063109761
0x5e36d0ef025f067bb8ab1b78693477e810cd054a197ded46198c8e46bb3f4d10Exec Transaction362757712022-12-01 1:42:103 days 20 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.015232323875 40.268922252
0xcc03454adfbd83dbf2c3f7c0bd1812072fae3df09e2697ed643b64cf3e82efc6Approve362726042022-11-30 23:51:113 days 22 hrs ago0xc34bebe4cee82f02ceaa3bc3c6b6e2f2809a6bfc IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.00265926082 39.770000012
0x478dc6237fb32afe020409b6f19774ded30433835838c9f4484df78ce77fd1ecApprove362694692022-11-30 22:03:254 days 4 mins ago0x5f446ab514e3e08e5b3752ff69ace0d6a013360c IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.002005987324 30.000109539
0xccb802b94747b0b5732c18183727f016599fe94ace7a54a4f2f358687f2a01fdApprove362461692022-11-30 8:24:454 days 13 hrs ago0x4d6054b8f9f1714c86767466f59a6856d552146c IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.002237670758 33.465001019
0xba419f4cbceb55462eee41495bf15ef48a305865a300adcf6b46bb91513d0125Exec Transaction362338782022-11-30 0:57:424 days 21 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.053047575122 134.157048367
0xc95cfb0749607d95c638ec6374d88a5699787d7680c7daab3eea6ed2f7990ab5Exec Transaction362338752022-11-30 0:57:364 days 21 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.028815546682 138.225938313
0x096cfe02a42b9eb9c35617a2a004263e80ce2922fa55eba093e7563897fce864Exec Transaction362338682022-11-30 0:57:224 days 21 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.238189753602 152.170311332
0x34a384ab83b4db53e8e10cb947044ed99e6dc61d59ceb2872a966ffce98ccdbdExec Transaction362338632022-11-30 0:57:124 days 21 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.077701452006 159.938767459
0xd7b9c30c095e65f8327b82ef6ed850149ed0abc9b0aa7324e6455ed7935c9208Approve362134232022-11-29 12:51:295 days 9 hrs ago0x62ef5c4f5cf0597d06860116644b2181ec1b4f13 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.003357150
0x8f942b3122b4cc24416e35e164fed0acd1c8affed521ceac28406a48db6519d2Exec Transaction362127292022-11-29 12:27:095 days 9 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.016782982601 44.371135338
0xd594015ed14ca84d7b60ee9716745a7d6ee0963639ac8fdb4773f3b619c0c628Exec Transaction362068882022-11-29 8:58:065 days 13 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.01791080714 45.296340394
0x0eeedf1cc966d3f6eb06262a6733b7c2a604e18850439ee005fcd87f610be69cExec Transaction362068842022-11-29 8:57:585 days 13 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.010318038226 49.494827605
0x5f638b7cf09de9bc62a07466561546d22910dccd1bcc1c2d8ab6b6e51cf61b3bExec Transaction362068772022-11-29 8:57:445 days 13 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.062538433966 53.63088095
0x5b30296c9031f71e6c4d8bdc370208ee13580809da01cf69732cd46bc2e9fd71Exec Transaction362068662022-11-29 8:57:225 days 13 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.026064242509 53.64999899
0xdb5cfc161230cf8ed4aa16d786676d36ba438d5257cc525a3ba9c81a14e50adfExec Transaction361846862022-11-28 19:42:086 days 2 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.015033860804 39.745516372
0xf01f587f76fdc8d593b5bbaf6ed04e408015ddb1c34a78bf94dbdb2edff0db2dExec Transaction361803402022-11-28 17:12:126 days 4 hrs ago0xaea4e2ccab09da5ba4cb60d18b3ba9909495dab3 IN  0x027da30fadab6202801f97be344e2348a2a928420 MATIC0.074339726307 196.534399746
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x54af2a200ee6633ecab0e00f396a140739b138a58b7af2066c13f8eafb2dd5cf222242382021-12-07 3:08:47362 days 18 hrs ago 0xfdc7b8bfe0dd3513cc669bb8d601cb83e2f69cb0  Contract Creation0 MATIC
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xd0f2be46772a482d54fad84c73649d0e2314c33f

Contract Name:
InitializableUpgradeabilityProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;

import "./BaseUpgradeabilityProxy.sol";
import "../utils/AddressHelper.sol";

/**
 * @title InitializableUpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with an initializer for initializing
 * implementation and init data.
 */
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
  using AddressHelper for address;

  /**
   * @dev Contract initializer.
   * @param _factory Address of the factory containing the implementation.
   * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
   */
  function initialize(
    address _factory,
    bytes memory _data,
    uint8 _proxyType
  ) public payable {
    require(_implementation() == address(0), "Impl not zero");
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
    _setImplementation(_factory);
    _setProxyType(_proxyType);
    if (_data.length > 0) {
      _implementation().tryAssemblyDelegateCall(_data);
    }
  }
}

File 2 of 6 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;

import "./Proxy.sol";
import "./Address.sol";
import "./HasLogic.sol";

/**
 * @title BaseUpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract BaseUpgradeabilityProxy is Proxy {
  /**
   * @dev Emitted when the implementation is upgraded.
   * @param implementation Address of the new implementation.
   */
  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 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

  /**
   * @dev Storing type of the proxy, 1 for managerLogic, 2 for pool.
   */
  bytes32 internal constant PROXY_TYPE = 0x1000000000000000000000000000000000000000000000000000000000000000;

  /**
   * @notice Returns the current implementation.
   * @return impl Address of the current implementation
   */
  function _implementation() internal view override returns (address) {
    address factory;
    bytes32 slot = IMPLEMENTATION_SLOT;
    assembly {
      factory := sload(slot)
    }

    // Begin custom modification
    if (factory == address(0x0)) return address(0x0); // If factory not initialized return empty

    return HasLogic(factory).getLogic(_proxyType());
  }

  /// @notice Return the proxy type.
  /// @return proxyType Return type of the proxy.
  function _proxyType() internal view returns (uint8 proxyType) {
    bytes32 slot = PROXY_TYPE;
    assembly {
      proxyType := sload(slot)
    }
  }

  /**
   * @notice Upgrades the proxy to a new implementation.
   * @param newImplementation Address of the new implementation.
   */
  function _upgradeTo(address newImplementation) internal {
    _setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }

  /**
   * @notice Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) internal {
    require(OpenZeppelinUpgradesAddress.isContract(newImplementation), "Cannot set implementation to EOA");

    bytes32 slot = IMPLEMENTATION_SLOT;

    assembly {
      sstore(slot, newImplementation)
    }
  }

  /**
   * @notice Sets type of the proxy.
   * @param proxyType Type of the proxy.
   */
  function _setProxyType(uint8 proxyType) internal {
    bytes32 slot = PROXY_TYPE;

    assembly {
      sstore(slot, proxyType)
    }
  }
}

File 3 of 6 : AddressHelper.sol
//        __  __    __  ________  _______    ______   ________
//       /  |/  |  /  |/        |/       \  /      \ /        |
//   ____$$ |$$ |  $$ |$$$$$$$$/ $$$$$$$  |/$$$$$$  |$$$$$$$$/
//  /    $$ |$$ |__$$ |$$ |__    $$ |  $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$    $$ |$$    |   $$ |  $$ |$$ |/    |$$    |
// $$ |  $$ |$$$$$$$$ |$$$$$/    $$ |  $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ |  $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$    $$ |$$ |  $$ |$$       |$$    $$/ $$    $$/ $$       |
//  $$$$$$$/ $$/   $$/ $$$$$$$$/ $$$$$$$/   $$$$$$/  $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT

// import "./BytesLib.sol";

pragma solidity 0.7.6;

/**
 * @title A library for Address utils.
 */
library AddressHelper {
  /**
   * @notice try a contract call via assembly
   * @param to the contract address
   * @param data the call data
   * @return success if the contract call is successful or not
   */
  function tryAssemblyCall(address to, bytes memory data) internal returns (bool success) {
    assembly {
      success := call(gas(), to, 0, add(data, 0x20), mload(data), 0, 0)
      switch iszero(success)
      case 1 {
        let size := returndatasize()
        returndatacopy(0x00, 0x00, size)
        revert(0x00, size)
      }
    }
  }

  /**
   * @notice try a contract delegatecall via assembly
   * @param to the contract address
   * @param data the call data
   * @return success if the contract call is successful or not
   */
  function tryAssemblyDelegateCall(address to, bytes memory data) internal returns (bool success) {
    assembly {
      success := delegatecall(gas(), to, add(data, 0x20), mload(data), 0, 0)
      switch iszero(success)
      case 1 {
        let size := returndatasize()
        returndatacopy(0x00, 0x00, size)
        revert(0x00, size)
      }
    }
  }

  // /**
  //  * @notice try a contract call
  //  * @param to the contract address
  //  * @param data the call data
  //  * @return success if the contract call is successful or not
  //  */
  // function tryCall(address to, bytes memory data) internal returns (bool) {
  //   (bool success, bytes memory res) = to.call(data);

  //   // Get the revert message of the call and revert with it if the call failed
  //   require(success, _getRevertMsg(res));

  //   return success;
  // }

  // /**
  //  * @dev Get the revert message from a call
  //  * @notice This is needed in order to get the human-readable revert message from a call
  //  * @param response Response of the call
  //  * @return Revert message string
  //  */
  // function _getRevertMsg(bytes memory response) internal pure returns (string memory) {
  //     // If the response length is less than 68, then the transaction failed silently (without a revert message)
  //     if (response.length < 68) return "Transaction reverted silently";
  //     bytes memory revertData = response.slice(4, response.length - 4); // Remove the selector which is the first 4 bytes
  //     return abi.decode(revertData, (string)); // All that remains is the revert string
  // }
}

File 4 of 6 : Proxy.sol
//
//        __  __    __  ________  _______    ______   ________
//       /  |/  |  /  |/        |/       \  /      \ /        |
//   ____$$ |$$ |  $$ |$$$$$$$$/ $$$$$$$  |/$$$$$$  |$$$$$$$$/
//  /    $$ |$$ |__$$ |$$ |__    $$ |  $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$    $$ |$$    |   $$ |  $$ |$$ |/    |$$    |
// $$ |  $$ |$$$$$$$$ |$$$$$/    $$ |  $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ |  $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$    $$ |$$ |  $$ |$$       |$$    $$/ $$    $$/ $$       |
//  $$$$$$$/ $$/   $$/ $$$$$$$$/ $$$$$$$/   $$$$$$/  $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT

pragma solidity 0.7.6;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
  /**
   * @notice Fallback function.
   * Implemented entirely in `_fallback`.
   */
  fallback() external payable {
    _fallback();
  }

  /**
   * @notice Receive function.
   * Implemented entirely in `_fallback`.
   */
  receive() external payable {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal view virtual returns (address);

  /**
   * @notice Delegates execution to an implementation contract.
   * This is a low level function that doesn't return to its internal call site.
   * It will return to the external caller whatever the implementation returns.
   * @param implementation Address to delegate.
   */
  function _delegate(address implementation) internal {
    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.
      // Warning: OVM: Using RETURNDATASIZE or RETURNDATACOPY in user asm isn't guaranteed to work
      returndatacopy(0, 0, returndatasize())

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

  /**
   * @notice Function that is run as the first thing in the fallback function.
   * Can be redefined in derived contracts to add functionality.
   * Redefinitions must call super._willFallback().
   */
  // solhint-disable-next-line no-empty-blocks
  function _willFallback() internal virtual {}

  /**
   * @notice fallback implementation.
   * Extracted to enable manual triggering.
   */
  function _fallback() internal {
    _willFallback();
    _delegate(_implementation());
  }
}

File 5 of 6 : Address.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;

/**
 * Utility library of inline functions on addresses
 *
 * Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/utils/Address.sol
 * This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts
 * when the user imports a zos-lib contract (that transitively causes this contract to be compiled and added to the
 * build/artifacts folder) as well as the vanilla Address implementation from an openzeppelin version.
 */
library OpenZeppelinUpgradesAddress {
  /**
   * @notice Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   * as the code is not actually created until after the constructor finishes.
   * @param account address of the account to check
   * @return whether the target address is a contract
   */
  function isContract(address account) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solhint-disable-next-line no-inline-assembly
    assembly {
      size := extcodesize(account)
    }
    return size > 0;
  }
}

File 6 of 6 : HasLogic.sol
//
//        __  __    __  ________  _______    ______   ________
//       /  |/  |  /  |/        |/       \  /      \ /        |
//   ____$$ |$$ |  $$ |$$$$$$$$/ $$$$$$$  |/$$$$$$  |$$$$$$$$/
//  /    $$ |$$ |__$$ |$$ |__    $$ |  $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$    $$ |$$    |   $$ |  $$ |$$ |/    |$$    |
// $$ |  $$ |$$$$$$$$ |$$$$$/    $$ |  $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ |  $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$    $$ |$$ |  $$ |$$       |$$    $$/ $$    $$/ $$       |
//  $$$$$$$/ $$/   $$/ $$$$$$$$/ $$$$$$$/   $$$$$$/  $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT

pragma solidity 0.7.6;

interface HasLogic {
  function getLogic(uint8 _proxyType) external view returns (address);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_proxyType","type":"uint8"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5061037f806100206000396000f3fe6080604052600436106100225760003560e01c8063e74a474a1461003957610031565b366100315761002f6100f4565b005b61002f6100f4565b61002f6004803603606081101561004f57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561007a57600080fd5b82018360208201111561008c57600080fd5b803590602001918460018302840111640100000000831117156100ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061010e9050565b6100fc61010c565b61010c61010761019e565b61025f565b565b600061011861019e565b6001600160a01b031614610163576040805162461bcd60e51b815260206004820152600d60248201526c496d706c206e6f74207a65726f60981b604482015290519081900360640190fd5b61016c83610283565b61017581610301565b815115610199576101978261018861019e565b6001600160a01b031690610309565b505b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546000916001600160a01b0382166101dd5760009250505061025c565b816001600160a01b031663ecef89d56101f461033a565b6040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561022b57600080fd5b505afa15801561023f573d6000803e3d6000fd5b505050506040513d602081101561025557600080fd5b5051925050505b90565b3660008037600080366000845af43d6000803e80801561027e573d6000f35b3d6000fd5b61028c81610343565b6102dd576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f20454f41604482015290519081900360640190fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b600160fc1b55565b6000806000835160208501865af4905080156001811461032857610333565b3d806000803e806000fd5b5092915050565b600160fc1b5490565b3b15159056fea264697066735822122096cbc766c19b3402b2de2ccac0df3e8b1a8354baa89920a032162cdeb6b604d764736f6c63430007060033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.