Contract 0x9f5AF07189B4aE59845D36a2b0562478870fa915 8

 
Txn Hash Method
Block
From
To
Value
0x02e29b89ab74d21ed50846d4121576854dc470b93b8054fb49a9194f5d3a9f9aStake132180562024-04-15 23:57:394 hrs 56 mins ago0xfab21546b5a1eab23a85d9c2a5075998c3aef72b IN  Seamless Protocol: wsWETH Geyser0 ETH0.000004610670.014043105
0x411f9f153ff81c8ec687027a0bf02b14c2032263f335a3e68e209a59285e945eUnstake And Clai...130617702024-04-12 9:08:073 days 19 hrs ago0x7c3afb806baf17bb99585cf74a96a3634b3d7e5c IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000081427210.043501478
0xc2795d3b125818b921b8ad39ecefd764d6a86751d69741870c46556f5bba4d30Unstake And Clai...128256792024-04-06 21:58:259 days 6 hrs ago0x3ab7aa2799d3bc7038852674fd7d153051b5dc09 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000088259150.04731647
0x8a4d8b92c81c6cf7fe614b17b3a00b6263075314c45113e634fa02a520ee87cfUnstake And Clai...127478352024-04-05 2:43:3711 days 2 hrs ago0xfab21546b5a1eab23a85d9c2a5075998c3aef72b IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000038754630.019466925
0xb8677e08e04c892831d3acddc5e2604ca760a9284551731db818572816964f0eStake127477652024-04-05 2:41:1711 days 2 hrs ago0xfab21546b5a1eab23a85d9c2a5075998c3aef72b IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000034247320.020303508
0x4933fe582b7ead1829fd129eb0c25bfdd0e60818b89a3d382049fb6b9c51f9b3Unstake And Clai...127474572024-04-05 2:31:0111 days 2 hrs ago0xfab21546b5a1eab23a85d9c2a5075998c3aef72b IN  Seamless Protocol: wsWETH Geyser0 ETH0.000005223530.024747407
0x11607435d7ce368a249cc198e2db3ab21d9f1c80f8ab85bdde174f47813fed6bStake127474172024-04-05 2:29:4111 days 2 hrs ago0xfab21546b5a1eab23a85d9c2a5075998c3aef72b IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000039572770.023532882
0x00d6752f9fb041612c06afce5a9e794ab6b64b0d27e079494446d94b8a67e7c4Unstake And Clai...126965872024-04-03 22:15:2112 days 6 hrs ago0x6d50a443ca97a81b90bd751b3e1ff6d4a5fcf264 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000083682080.037387273
0x0531b99ad6e92527b0e10e343dc7a314f074c48429b822d5d4f1393482d7765dUnstake And Clai...125629572024-03-31 20:01:0115 days 8 hrs ago0x1c885481a750e5ebf957e65fc359bade294faf9e IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000658057840.326860287
0x7bf62afbde1e02a929ad555cc86af8bb1ff88202464c4d44a7504034564146b1Unstake And Clai...125229422024-03-30 21:47:1116 days 7 hrs ago0xb512ddb203cb1b46d59d66e1f90f243f7b831d90 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000371143870.190643621
0xb03a99b71cdad4dd7cfa6bafe5797de4de91e2940b3d3cfd2309f53a71bf1cddUnstake And Clai...124681622024-03-29 15:21:1117 days 13 hrs ago0x3de5ee31a5116f24dd3ccb9745c187471fbb8cf6 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000740614130.394852419
0x27e3d142e00f11c862f67fe83c25a8e52ad89e24cedfd0cdb3b9de9e39fe6757Unstake And Clai...118284912024-03-14 19:58:4932 days 8 hrs ago0x2afb157a7e35a8a9b2265051156cc6be2ea070fc IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000079401180.041299207
0xf2ec33d9b7872829551aab303e9cbb93b680ceb5a61217e7a635b9448135b2d8Unstake And Clai...118266352024-03-14 18:56:5732 days 9 hrs ago0x329b9c525a653934512a8e8af1cd8b435b5b766a IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000142915350.074579525
0x311158c1639e13b6fa60317bdb9139ff44c2b606720d6a89e95a0b879e0b8843Unstake And Clai...117911552024-03-13 23:14:1733 days 5 hrs ago0x329b9c525a653934512a8e8af1cd8b435b5b766a IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001474226380.001002229
0xce4f529a60b749c13d6fc3d1231527b27464b432f46407ffa47b6a10b7d4ed0fStake115441822024-03-08 6:01:5138 days 22 hrs ago0x6d50a443ca97a81b90bd751b3e1ff6d4a5fcf264 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001167657990.000950901
0xd33f6cece4e7412c7a0fd37b82661928a77dc7e65414b1a318b38c37124a2442Stake114982712024-03-07 4:31:2940 days 22 mins ago0x6d50a443ca97a81b90bd751b3e1ff6d4a5fcf264 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001859493340.000013335
0xa0bdf948f9b7e37a16a989534ef795233a10c6c834772386a9ae79e8a6e0661aUnstake And Clai...114508362024-03-06 2:10:1941 days 2 hrs ago0x4efc9a4573e1520c3d0cbc58e7b9ef8529cf95d0 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001619211810.000031289
0x79deec4ea20a0d05b5fe1323347485d47c23e2e79b66d59d8122420f764b396bUnstake And Clai...114464232024-03-05 23:43:1341 days 5 hrs ago0x349b3a2ebcfdd10dded0d5e9290e721f5d594c29 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001969954710.000101991
0x8a7b7cc942165f9967f6da94daa223e3d962745a0ae4c2bb83d5456506073b6eUnstake And Clai...112141382024-02-29 14:40:2346 days 14 hrs ago0x689dcf59d68392f3aa333a4640bfca89018834a6 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0002230211560.0010004
0xd27c07abb585644426aa71bf7a27aa04b4c1821de05f760d457ffc5649cf8b4fUnstake And Clai...111805382024-02-28 20:00:2347 days 8 hrs ago0x469ce8788f99b45dda2a85807c00d728cd8462a3 IN  Seamless Protocol: wsWETH Geyser0 ETH0.000149181610.000005436
0x4895645ed0a11f394273337975b4ed997c65a3a29d5592b345c833f0689a6f46Unstake And Clai...111803802024-02-28 19:55:0747 days 8 hrs ago0x69b2a220d1d0948d34da622051be636ddedd17c9 IN  Seamless Protocol: wsWETH Geyser0 ETH0.000144548580.000049924
0x30b2341136ee58656f9877495255f63305e66d1afd22a98bbebc3002fa438587Stake111803242024-02-28 19:53:1547 days 9 hrs ago0x69b2a220d1d0948d34da622051be636ddedd17c9 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001376493440.000048523
0x69197359d27d7ce9ff0424f18ae0a3b8a7b1823349cac34f8193d583c18b70e0Unstake And Clai...111801422024-02-28 19:47:1147 days 9 hrs ago0x69b2a220d1d0948d34da622051be636ddedd17c9 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0001659715790.000970309
0x55f3305dd51a6cbbb1a823a79a800047619a5adc485aa2684b527d0ff3a521d9Stake109850702024-02-24 7:24:4751 days 21 hrs ago0x6d50a443ca97a81b90bd751b3e1ff6d4a5fcf264 IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000771072290.000000457
0x33a237052b8559e4eaea30070c582bf1cc2b7a5a1f00da3fb4fa3902bcd02d1bUnstake And Clai...108995832024-02-22 7:55:1353 days 20 hrs ago0xbcce2ce773be0250bdddd4487d927accd748414f IN  Seamless Protocol: wsWETH Geyser0 ETH0.0000891739810.000006414
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at basescan.org on 2023-09-12
*/

// Sources flattened with hardhat v2.1.2 https://hardhat.org

// SPDX-License-Identifier: MIT

// File contracts/proxy/Proxy.sol

pragma solidity ^0.6.0;

/**
 * @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 {
  /**
   * @dev Fallback function.
   * Implemented entirely in `_fallback`.
   */
  fallback () payable external {
    _fallback();
  }

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

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

  /**
   * @dev 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.
      returndatacopy(0, 0, returndatasize())

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

  /**
   * @dev 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().
   */
  function _willFallback() internal virtual {
  }

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


// File @openzeppelin/contracts/utils/[email protected]

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 contracts/proxy/UpgradeabilityProxy.sol

pragma solidity ^0.6.0;


/**
 * @title UpgradeabilityProxy
 * @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 UpgradeabilityProxy is Proxy {
  /**
   * @dev Contract constructor.
   * @param _logic Address of the initial 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.
   */
  constructor(address _logic, bytes memory _data) public payable {
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if(_data.length > 0) {
      (bool success,) = _logic.delegatecall(_data);
      require(success);
    }
  }  

  /**
   * @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 Returns the current implementation.
   * @return impl Address of the current implementation
   */
  function _implementation() internal override view returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    assembly {
      impl := sload(slot)
    }
  }

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

  /**
   * @dev Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) internal {
    require(Address.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");

    bytes32 slot = IMPLEMENTATION_SLOT;

    assembly {
      sstore(slot, newImplementation)
    }
  }
}


// File contracts/proxy/AdminUpgradeabilityProxy.sol

pragma solidity ^0.6.0;

/**
 * @title AdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract AdminUpgradeabilityProxy is UpgradeabilityProxy {
  /**
   * Contract constructor.
   * @param _logic address of the initial implementation.
   * @param _admin Address of the proxy administrator.
   * @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.
   */
  constructor(address _logic, address _admin, bytes memory _data) UpgradeabilityProxy(_logic, _data) public payable {
    assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1));
    _setAdmin(_admin);
  }

  /**
   * @dev Emitted when the administration has been transferred.
   * @param previousAdmin Address of the previous admin.
   * @param newAdmin Address of the new admin.
   */
  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 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

  /**
   * @dev Modifier to check whether the `msg.sender` is the admin.
   * If it is, it will run the function. Otherwise, it will delegate the call
   * to the implementation.
   */
  modifier ifAdmin() {
    if (msg.sender == _admin()) {
      _;
    } else {
      _fallback();
    }
  }

  /**
   * @return The address of the proxy admin.
   */
  function admin() external ifAdmin returns (address) {
    return _admin();
  }

  /**
   * @return The address of the implementation.
   */
  function implementation() external ifAdmin returns (address) {
    return _implementation();
  }

  /**
   * @dev Changes the admin of the proxy.
   * Only the current admin can call this function.
   * @param newAdmin Address to transfer proxy administration to.
   */
  function changeAdmin(address newAdmin) external ifAdmin {
    require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
    emit AdminChanged(_admin(), newAdmin);
    _setAdmin(newAdmin);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy.
   * Only the admin can call this function.
   * @param newImplementation Address of the new implementation.
   */
  function upgradeTo(address newImplementation) external ifAdmin {
    _upgradeTo(newImplementation);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * This is useful to initialize the proxied contract.
   * @param newImplementation Address of the new implementation.
   * @param data Data to send as msg.data in the low level call.
   * 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.
   */
  function upgradeToAndCall(address newImplementation, bytes calldata data) payable external ifAdmin {
    _upgradeTo(newImplementation);
    (bool success,) = newImplementation.delegatecall(data);
    require(success);
  }

  /**
   * @return adm The admin slot.
   */
  function _admin() internal view returns (address adm) {
    bytes32 slot = ADMIN_SLOT;
    assembly {
      adm := sload(slot)
    }
  }

  /**
   * @dev Sets the address of the proxy admin.
   * @param newAdmin Address of the new proxy admin.
   */
  function _setAdmin(address newAdmin) internal {
    bytes32 slot = ADMIN_SLOT;

    assembly {
      sstore(slot, newAdmin)
    }
  }

  /**
   * @dev Only fall back when the sender is not the admin.
   */
  function _willFallback() internal override virtual {
    require(msg.sender != _admin(), "Cannot call fallback function from the proxy admin");
    super._willFallback();
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","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":"","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"}]

60806040526040516109943803806109948339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c01902086935084925060008051602061093983398151915260001990910114905061013157fe5b610143826001600160e01b0361026516565b8051156101fb576000826001600160a01b0316826040518082805190602001908083835b602083106101865780518252601f199092019160209182019101610167565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101e6576040519150601f19603f3d011682016040523d82523d6000602084013e6101eb565b606091505b50509050806101f957600080fd5b505b5050604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190206000805160206109198339815191526000199091011461024b57fe5b61025d826001600160e01b036102c516565b5050506102dd565b610278816102d760201b6103b41760201c565b6102b35760405162461bcd60e51b815260040180806020018281038252603b815260200180610959603b913960400191505060405180910390fd5b60008051602061093983398151915255565b60008051602061091983398151915255565b3b151590565b61062d806102ec6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212206e221e2a3547bd97244b05ed46430b1b078ba097cb2a4e25ec3d79cf9ac9f02c64736f6c63430006080033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e7472616374206164647265737300000000000000000000000052efbbd14c5a4059e2108734e5d746ad19160564000000000000000000000000ac6d0e95c84329b6af75c0d58c9b34a85ee521a900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212206e221e2a3547bd97244b05ed46430b1b078ba097cb2a4e25ec3d79cf9ac9f02c64736f6c63430006080033

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

00000000000000000000000052efbbd14c5a4059e2108734e5d746ad19160564000000000000000000000000ac6d0e95c84329b6af75c0d58c9b34a85ee521a900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _logic (address): 0x52EfbBD14c5a4059E2108734E5d746aD19160564
Arg [1] : _admin (address): 0xaC6D0e95c84329B6AF75C0D58c9b34A85Ee521a9
Arg [2] : _data (bytes): 0x

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000052efbbd14c5a4059e2108734e5d746ad19160564
Arg [1] : 000000000000000000000000ac6d0e95c84329b6af75c0d58c9b34a85ee521a9
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

13655:4220:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:11;:9;:11::i;:::-;13655:4220;;613:11;:9;:11::i;16301:105::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16301:105:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16301:105:0;-1:-1:-1;;;;;16301:105:0;;:::i;16934:225::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;16934:225:0;;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;16934:225:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;16934:225:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;16934:225:0;;-1:-1:-1;16934:225:0;-1:-1:-1;16934:225:0;:::i;15601:98::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15601:98:0;;;:::i;:::-;;;;-1:-1:-1;;;;;15601:98:0;;;;;;;;;;;;;;15882:228;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15882:228:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;15882:228:0;-1:-1:-1;;;;;15882:228:0;;:::i;15452:80::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15452:80:0;;;:::i;2331:93::-;2368:15;:13;:15::i;:::-;2390:28;2400:17;:15;:17::i;:::-;2390:9;:28::i;:::-;2331:93::o;16301:105::-;15319:8;:6;:8::i;:::-;-1:-1:-1;;;;;15305:22:0;:10;-1:-1:-1;;;;;15305:22:0;;15301:80;;;16371:29:::1;16382:17;16371:10;:29::i;:::-;15301:80:::0;;;15362:11;:9;:11::i;:::-;16301:105;:::o;16934:225::-;15319:8;:6;:8::i;:::-;-1:-1:-1;;;;;15305:22:0;:10;-1:-1:-1;;;;;15305:22:0;;15301:80;;;17040:29:::1;17051:17;17040:10;:29::i;:::-;17077:12;17094:17;-1:-1:-1::0;;;;;17094:30:0::1;17125:4;;17094:36;;;;;30:3:-1;22:6;14;1:33;17094:36:0;::::0;45:16:-1;::::1;::::0;-1:-1;17094:36:0::1;::::0;-1:-1:-1;17094:36:0;;-1:-1:-1;;17094:36:0;;::::1;::::0;;::::1;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;17076:54:0;;;17145:7;17137:16;;12:1:-1;9::::0;2:12:::1;17137:16:0;15338:1;15301:80:::0;;;15362:11;:9;:11::i;:::-;16934:225;;;:::o;15601:98::-;15653:7;15319:8;:6;:8::i;:::-;-1:-1:-1;;;;;15305:22:0;:10;-1:-1:-1;;;;;15305:22:0;;15301:80;;;15676:17:::1;:15;:17::i;:::-;15669:24;;15301:80:::0;;;15362:11;:9;:11::i;:::-;15601:98;:::o;15882:228::-;15319:8;:6;:8::i;:::-;-1:-1:-1;;;;;15305:22:0;:10;-1:-1:-1;;;;;15305:22:0;;15301:80;;;-1:-1:-1;;;;;15953:22:0;::::1;15945:89;;;;-1:-1:-1::0;;;15945:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16046:32;16059:8;:6;:8::i;:::-;16046:32;::::0;;-1:-1:-1;;;;;16046:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;16085:19;16095:8;16085:9;:19::i;15452:80::-:0;15495:7;15319:8;:6;:8::i;:::-;-1:-1:-1;;;;;15305:22:0;:10;-1:-1:-1;;;;;15305:22:0;;15301:80;;;15518:8:::1;:6;:8::i;3209:422::-:0;3576:20;3615:8;;;3209:422::o;17695:177::-;17775:8;:6;:8::i;:::-;-1:-1:-1;;;;;17761:22:0;:10;-1:-1:-1;;;;;17761:22:0;;;17753:85;;;;-1:-1:-1;;;17753:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17845:21;:19;:21::i;12304:170::-;12113:66;12451:11;;12434:35::o;1204:762::-;1511:14;1508:1;1505;1492:34;1711:1;1708;1692:14;1689:1;1673:14;1666:5;1653:60;1778:16;1775:1;1772;1757:38;1812:6;1869:38;;;;1935:16;1932:1;1925:27;1869:38;1888:16;1885:1;1878:27;17213:141;15012:66;17331:11;;17315:34::o;12615:145::-;12678:37;12697:17;12678:18;:37::i;:::-;12727:27;;-1:-1:-1;;;;;12727:27:0;;;;;;;;12615:145;:::o;17476:139::-;15012:66;17581:22;17572:38::o;12903:293::-;12982:37;13001:17;12982:18;:37::i;:::-;12974:109;;;;-1:-1:-1;;;12974:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12113:66;13153:31;13144:47::o

Swarm Source

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