Contract 0x86c3dd18baf4370495d9228b58fd959771285c55 1

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x68b14841ed3471883fcc21af0f539ce33b121b56518d0c5e81e25fc8b09defa0Exec Transaction432451742023-05-28 10:12:075 days 18 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.057615406055 170.925528009
0x546a1e5a3d1fff2942af35e2f08b43352cd18d96d3cf0d405dc2539ad60a5e3bExec Transaction432451692023-05-28 10:11:575 days 18 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.064404501218 177.389149773
0x4e21e87634a97b529417b15131b12597d8a9169081870b547556bab7cfeb6f8fExec Transaction432451612023-05-28 10:11:395 days 18 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.089617728488 165.805846624
0x5a47f8b69d738105489e0de6bffeb1152cb32ede85090a709bbfbc7ed229c82dExec Transaction432451472023-05-28 10:11:095 days 18 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.056558998408 167.791521893
0x6062820c05fe2e6e8ee9086d3eec4f3880111ec5079f891fc93124cbff89e380Exec Transaction431759272023-05-26 15:56:337 days 12 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.057109957202 169.426031295
0x8d505ea794e63ed396de7e6c539c9683563f06af44521b33c1549f0aa22fc8c3Exec Transaction431759212023-05-26 15:56:217 days 12 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.057128284383 170.960870191
0xd735a38e799bf8b651a767340ccabf4dfb416e9be0ad88b786a3e9de4a452831Exec Transaction431759182023-05-26 15:56:137 days 12 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.088247474026 163.270676352
0xd9d5a41b7d9118825b8a643b3d209ebb011dc070d0772c8406ebc4701a8680b2Exec Transaction431755132023-05-26 15:41:537 days 13 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.062889044032 186.568423896
0xe77d567dfc2292087d1fab7d49eae4f8388aad3a801e295be6f88e56d57567fbExec Transaction431755092023-05-26 15:41:457 days 13 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.113367870061 189.361783614
0x096e83031b22313b013cfc0ec2f29450de80ae4cc2b11b20f1b63b949aba66b1Exec Transaction431755042023-05-26 15:41:357 days 13 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.104351246043 193.064999396
0xe8f18c4f134b8d003d9893ee2642f1941a90427816f54052641185364df66dcbExec Transaction431754942023-05-26 15:41:137 days 13 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.069701957234 206.782259453
0xcb65665429cda62480613b8d389ede731fe6979d4bf361e9386b531367c43fc4Approve430778822023-05-24 4:37:4410 days 14 mins ago0x073c87e1809aa1f31bddeafe20b979dc508baa67 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.008805286736 131.709198205
0x54a7a141ea605c5eb46733278791ae04a166b3c3d38d27e92aca4fadbe36f488Approve430775812023-05-24 4:27:0410 days 25 mins ago0x685367a31987507f74ccf6ad3a8d71b2e2786691 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.010346874765 154.104357411
0xed434bcd9646c87247976fe07794e41947bb0a1f0028694a62a25aaf33212c95Approve430132362023-05-22 12:30:3011 days 16 hrs ago0x51150f973c2b0537642f5ae8911a49567598808f IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.010040871783 201.810342562
0xe1a03ce6e3d426d5f4595efc0d07faa64ed2709bfece6ce92646f8ab171de00fExec Transaction429489422023-05-20 21:11:4713 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.047669510741 141.567656614
0x3a6e52aefb56eadd94281a997821b35515a16420bb97786c24a9b5a177cc724bExec Transaction429489382023-05-20 21:11:3913 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.063141103291 137.534749662
0x1768464c5ae136cbce8db033f1415043d46dc2e87fee0a12e367c5e8e1a09e8bExec Transaction429489292023-05-20 21:11:2113 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.076778858559 142.144902867
0xe348dd4fe9e6080baf223c5be9c78be25a74599aa9d7ca9970aed61903311811Exec Transaction429485612023-05-20 20:57:5813 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.04255717185 126.385167318
0xef2344a1d25971c75e01d83e99de59aba88ac9120fbd9d01adea1fef8e92228dExec Transaction429485322023-05-20 20:56:5513 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.071765135251 129.072127112
0x482d0b430b7d77669b31b0cd71dd62105a83557897226f1ed8cf35c72e614192Exec Transaction429485252023-05-20 20:56:3913 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.074831436723 138.539534243
0x736585acf7ac7019b26a3be9fa331b9686bef91dc73350afece0a18c8ca7273fExec Transaction429485112023-05-20 20:56:0913 days 7 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.049699833433 147.597255434
0x38b23cdb0f2db1d249cffe950233e8a820b71b2a9680f7966c0816cb0952e9b0Approve427889442023-05-16 20:54:1617 days 7 hrs ago0xe2d101c72a622108a9a53d9a7dd7e3df20b90b5d IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.010084567785 150.19760784
0xfd3b54acaa5c0fa984d1de1bf26cf735ef2cad3d1279013505ea37dc07a3333eExec Transaction427805622023-05-16 15:56:1117 days 12 hrs ago0xcfffd4c53bfab0fc78994a63c20035e784cf43a4 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.059619936114 177.064025003
0xfe283e56319ebcfc24152eec957fcb973bbe659c0e2dad7549ef3346a664a388Approve427404982023-05-15 16:02:0618 days 12 hrs ago0x51150f973c2b0537642f5ae8911a49567598808f IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.014190213199 212.332982185
0x5c1e364016e98c5f197c44daa74716b630d9f817ed0166e51d760751734dc356Approve426717912023-05-13 23:08:2320 days 5 hrs ago0x685367a31987507f74ccf6ad3a8d71b2e2786691 IN  0x86c3dd18baf4370495d9228b58fd959771285c550 MATIC0.009815420467 146.840710719
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x0160a90d41929ea3bb07bddeb3216fa957440148348452f073367669dda1d0f9247584632022-02-10 2:22:53478 days 2 hrs ago 0xfdc7b8bfe0dd3513cc669bb8d601cb83e2f69cb0  Contract Creation0 MATIC
[ Download CSV Export 
Loading

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

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"}]

608060405234801561001057600080fd5b5061037f806100206000396000f3fe6080604052600436106100225760003560e01c8063e74a474a1461003957610031565b366100315761002f6100f4565b005b61002f6100f4565b61002f6004803603606081101561004f57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561007a57600080fd5b82018360208201111561008c57600080fd5b803590602001918460018302840111640100000000831117156100ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061010e9050565b6100fc61010c565b61010c61010761019e565b61025f565b565b600061011861019e565b6001600160a01b031614610163576040805162461bcd60e51b815260206004820152600d60248201526c496d706c206e6f74207a65726f60981b604482015290519081900360640190fd5b61016c83610283565b61017581610301565b815115610199576101978261018861019e565b6001600160a01b031690610309565b505b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546000916001600160a01b0382166101dd5760009250505061025c565b816001600160a01b031663ecef89d56101f461033a565b6040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561022b57600080fd5b505afa15801561023f573d6000803e3d6000fd5b505050506040513d602081101561025557600080fd5b5051925050505b90565b3660008037600080366000845af43d6000803e80801561027e573d6000f35b3d6000fd5b61028c81610343565b6102dd576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f20454f41604482015290519081900360640190fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b600160fc1b55565b6000806000835160208501865af4905080156001811461032857610333565b3d806000803e806000fd5b5092915050565b600160fc1b5490565b3b15159056fea2646970667358221220b4ffe86ea20645cee8da3f4a7acd422faf93e667491014f96c827b08e1cbba2564736f6c63430007060033

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.