Contract 0x6a39909e805A3eaDd2b61fFf61147796ca6aBB47 1

Bridge 
 
Txn Hash
Method
Block
From
To
Value
0x81a33dc52e0377d5e64ebb4d5872ba984284ce9d864bd29cf020f97cc0fa82f2Send153279112022-08-12 15:57:482 days 8 hrs ago0xe809968423551135675f38ca77d9595c5d225918 IN  Optics: Bridge0 Ether0.‍00965891 43.‍5031592
0x4a844a0d10815411f4a16be038a939bc081f3fcd25da57914432ca30164873b5Send150610272022-07-02 4:52:5643 days 19 hrs agoENS Name knoxedge.eth IN  Optics: Bridge0 Ether0.‍00270034 12.‍0687078
0x09a9f84ba1ea1b3c2fefd19a0905d4064e73a8d13fe799171fa56a08528f6359Send150352542022-06-27 16:29:3148 days 8 hrs ago0x194bb9afabb1873d71977bf28864ffaca30f31c0 IN  Optics: Bridge0 Ether0.‍02668046 125.‍81385201
0x1569054478d69a7ba0931d370b01771eca0cb81a690b29302f9c46310c1112cfSend149675402022-06-15 12:40:4860 days 11 hrs ago0xa9709e74223e01a95762a52979748d55e22cef01 IN  Optics: Bridge0 Ether0.‍00692191 31.‍11643196
0x0e085a4bb2cbb66d658e3b050b2a77070fc0f6d7f60b6ed79de93ca1a49bc25aSend149664382022-06-15 7:58:5660 days 16 hrs ago0x8c2755cdcf38086d3001c39d5a1b876e9ad9bc75 IN  Optics: Bridge0 Ether0.‍01051451 47.‍57719565
0x4463a236f6abcd0f3016a29f6146a3f0c478c401eb57977606ef5de08691c647Send149468892022-06-11 22:59:4964 days 1 hr ago0x4862eb1658b72555934b91bf9aee142849e736b9 IN  Optics: Bridge0 Ether0.‍00132543 40.‍59890936
0x820012e6d5a4f2791f3a47d7816ada429b78574e76742185be18452b8feed45fSend148463852022-05-26 6:07:2580 days 18 hrs ago0xa9709e74223e01a95762a52979748d55e22cef01 IN  Optics: Bridge0 Ether0.‍00551394 24.‍69363364
0x91de311257957332b506c17d440a980aed52d700364b2410c37d86f5481e0a85Send148140362022-05-20 23:54:4786 days 38 mins agoENS Name cryptorabit.eth IN  Optics: Bridge0 Ether0.‍0054215725
0xee13fe93f5b9c1b1a1bc66bdf8e7966c1447f3da372e7549a025fa71a651354dSend148140362022-05-20 23:54:4786 days 38 mins agoBLOCKS DAO: Deployer IN  Optics: Bridge0 Ether0.‍00576493 25.‍91542897
0xc46f1e913e6afbe9d507fc4ad70943a18133e68e438618fe88a0714890d32d58Send148080572022-05-20 0:32:4187 days ago0xa9709e74223e01a95762a52979748d55e22cef01 IN  Optics: Bridge0 Ether0.‍00319668 14.‍39650652
0x39adbdacddd213429753bebb9727f39de05f39c3712360654b7d100f60781753Send147256242022-05-06 20:26:43100 days 4 hrs ago0x4bc78d61ccd5f4630e27742560b0c97de5262172 IN  Optics: Bridge0 Ether0.‍00626799 28.‍12020299
0xd036de67875e5efddaab853f371f2d7d17b5ba77c0c0706696461d0a88c83fdeSend145715612022-04-12 15:30:03124 days 9 hrs ago0xd0d542aaa6de5b20096fbd7da0dcf87f0f2cd858 IN  Optics: Bridge0 Ether0.‍0088818440
0x3388f5f5bc92898fdc4a2fbcf6f3f19b7d67d96620d9a842d0d1ffffc5ca1c35Send145201022022-04-04 14:42:15132 days 9 hrs ago0x55ac3097fc661d7daa6fc687fcdaf50dd5c5a68e IN  Optics: Bridge0 Ether0.‍01425882 64.‍08634364
0xd829684a83908dc27aba414526408761af499aee404619d8891f5517c448b5a8Send144625912022-03-26 15:16:47141 days 9 hrs ago0x2af33e93f68b8497bb535c492f5867c7e83f2bc4 IN  Optics: Bridge0 Ether0.‍00523506 23.‍57458022
0x69b7f1a77fbec5f81602911d7040de95fb5ae92c309e6a1261b6d9044d16d051Send144021722022-03-17 5:33:15150 days 18 hrs ago0xa9709e74223e01a95762a52979748d55e22cef01 IN  Optics: Bridge0 Ether0.‍00553291 24.‍68552901
0x9f84cb01e8cb0f57d43b180ba3967f686c76e48660d6d58ba01478cc0e07d235Send143744552022-03-12 21:45:49155 days 2 hrs ago0xb1d3d9d3f606459f0ac826a24ad9b6096e83c348 IN  Optics: Bridge0 Ether0.‍00354667 16.‍3310514
0xc107f87359f4e5d1f003b5bcc5ff59415e32fa5336f21e6e17abd524e3398d5dSend143737992022-03-12 19:23:52155 days 5 hrs ago0x96543b042e67baac2fc2281bd539c23c6c47b6c1 IN  Optics: Bridge0 Ether0.‍0062432 27.‍5257719
0x7fc030817da3d68bd1e0e59364d2983aab01089eeeafdf49be906dffbf116345Send143737722022-03-12 19:17:57155 days 5 hrs ago0x96543b042e67baac2fc2281bd539c23c6c47b6c1 IN  Optics: Bridge0 Ether0.‍00572727 25.‍79529917
0xf3ac6dcfc37abef78f71f55e399d8888069d5d9e8ca30084f9706c3f69a9aa93Send142553292022-02-22 10:32:08173 days 14 hrs agoENS Name ledger-qa-arnaud.eth IN  Optics: Bridge0 Ether0.‍0122809 55.‍10344981
0x00163c2e5511b6618acbf3030c304947199d4eac30119f12c048db9ed94bafcfSend142344732022-02-19 4:49:19176 days 19 hrs agoENS Name szno1.eth IN  Optics: Bridge0 Ether0.‍01159347 52.‍21910412
0xbea24bf73c7191806fbae427782704a878a9a7e7ba26da5e2efa53983322aba2Send142285372022-02-18 6:50:03177 days 17 hrs ago0x4b718319459972e70766c72ad698734f53ec3d97 IN  Optics: Bridge0 Ether0.‍01730285 77.‍78242814
0xdc0274c99b80c0b37808e5aeac090f9da32645875c7502714de0778c27f02d58Send142128962022-02-15 20:30:11180 days 4 hrs ago0x7f7eceede5f97179883ef8f30edf24c50aa5c597 IN  Optics: Bridge0 Ether0.‍01567198 70.‍57610124
0x5c7704082fb053f04d6d9877e694f372befa5ede616b19f2ce5b1334ab449975Send141460852022-02-05 12:44:12190 days 11 hrs agoENS Name thehoarder.eth IN  Optics: Bridge0 Ether0.‍01300049 58.‍22142758
0x4d57028496156e6d4ce48fe5451eff97aa6eb1b57a1fc49896e7114eea19fe3aSend141373932022-02-04 4:38:36191 days 19 hrs ago0xb1bd14af5a0de98979cd24c77a8fb5ec0b59c61c IN  Optics: Bridge0 Ether0.‍01632481 73.‍52593765
0x1db7dc047bfbdaf2bcd120dbcbddf4669dd703e0adfa42e638776191b6f97b49Send141295842022-02-02 23:29:58193 days 1 hr ago0x9e704170d59c7a99e9577f51c1a950c7f4c59eb3 IN  Optics: Bridge0 Ether0.‍02205598 101.‍33043912
[ Download CSV Export 
Latest 22 internal transactions
Parent Txn Hash Block From To Value
0x3e081c5e3a3b4bb1d30bcee8fd96d0f2012b9153ebe17ca6917dc7aa1b79b0a4136734632021-11-23 22:23:18264 days 2 hrs ago Optics: Bridge  Contract Creation0 Ether
0x3413101d2234317bd79aef0cb7b89e8a3aa3ad29a47ea4bc336fe9ddd2b348be136421002021-11-18 22:51:45269 days 1 hr ago Optics: Bridge  Contract Creation0 Ether
0xb153cb648a4e3af3f398243e382c1ac30f2b2f875f5b805e8a6f61a3a8a2185f136339312021-11-17 16:03:33270 days 8 hrs ago Optics: Bridge  Contract Creation0 Ether
0x489bdec4373e1144002a66748e46cd2f0399dbfaba7bfe11e77f7468e752ca50136207052021-11-15 13:55:07272 days 10 hrs ago Optics: Bridge  Contract Creation0 Ether
0xa4a13d7d26b79dcd5d643eb9fca02311b132be0862ffb1dd6858ccff683636bf136113792021-11-14 2:38:21273 days 21 hrs ago Optics: Bridge  Contract Creation0 Ether
0xda877dd8f6a17f6ef4082b02e1b70116bb5257caf14c1bfc8f3051398dfa2c9d136060212021-11-13 6:07:54274 days 18 hrs ago Optics: Bridge  Contract Creation0 Ether
0x62d615cbf7f6b6f0d17c2d70b759c33c6128e56062208e957a4fa18ec8882f27135980532021-11-12 0:17:47276 days 15 mins ago Optics: Bridge  Contract Creation0 Ether
0x2b98648dd1b9af74fbfbfaef95bc104e6fadb0a973d2d5e5bd1dae6a69715c8a135600312021-11-06 1:15:03281 days 23 hrs ago Optics: Bridge  Contract Creation0 Ether
0x871af14937d8c84d98f0d96303dd405b934d87691f8e2f5f1b2b8be87cf6dad4135591692021-11-05 21:59:32282 days 2 hrs ago Optics: Bridge  Contract Creation0 Ether
0xaefafed3aa1af22ecb95e69a5bb5c1182c89bfbcf0af2d335ab065b3d2615165134136482021-10-14 2:18:24304 days 22 hrs ago Optics: Bridge  Contract Creation0 Ether
0xc7d4018d95e437726b9c3ab9b96e87196dab0aaec53b2d02d84a4460a4a6cdcb134055532021-10-12 19:33:01306 days 5 hrs ago Optics: Bridge  Contract Creation0 Ether
0xf261a0bb19d09c356f14ee09fa3b7b7ec6cd089e1abbb9973623cd20a594ffb2133995112021-10-11 20:50:52307 days 3 hrs ago Optics: Bridge  Contract Creation0 Ether
0xfa6ba3faead307d3639665ab006c77117fc9faa2806805057cc6bc081bc2e303133993572021-10-11 20:14:05307 days 4 hrs ago Optics: Bridge  Contract Creation0 Ether
0xd2d548c22c4085db006b8e7567b1e1ab53bc02483d01a9d76ed45306838112e9133794692021-10-08 17:16:55310 days 7 hrs ago Optics: Bridge  Contract Creation0 Ether
0xc9f2b8deae5d5cf8d3b6d5a3dd3ed62780104be64d10485b604b65c4311d1420133534832021-10-04 15:51:20314 days 8 hrs ago Optics: Bridge  Contract Creation0 Ether
0x12623abeb7ba7399de18c6fd85d013a6a3acfd84b20b035fcbd5e04e3a59375a133447812021-10-03 7:09:06315 days 17 hrs ago Optics: Bridge  Contract Creation0 Ether
0xcd1651f150d9aa5a7c812485c3074a5ca5cadf97dfb87b432714bb50505589d4133404172021-10-02 14:40:13316 days 9 hrs ago Optics: Bridge  Contract Creation0 Ether
0xf15a53ff5e6ebd187abc9689616e32e46e99362e942885d4ca85ba8cfb4fe27a133248712021-09-30 4:16:07318 days 20 hrs ago Optics: Bridge  Contract Creation0 Ether
0x1eeb5362f42e146d067c4e77455875632407bcb1162b67e987d4375119d756f9133239222021-09-30 0:38:53318 days 23 hrs ago Optics: Bridge  Contract Creation0 Ether
0x238b8cb970c4f87fbff633f85f302a309ab8f8553ae97c7925afd8e73a83357f132542332021-09-19 5:13:53329 days 19 hrs ago Optics: Bridge  Contract Creation0 Ether
0x276a454bf1a41f30867b9ecbb48491375226f5ee9229d4119d84d3a4af742420132421132021-09-17 8:22:32331 days 16 hrs ago Optics: Bridge  Contract Creation0 Ether
0x7ee0b128a3c358e711e09f42c740503a68bb79843443598892cb08b3f3dfad24132354392021-09-16 7:33:45332 days 16 hrs ago Optics: Bridge  Contract Creation0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UpgradeBeaconProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 2 : UpgradeBeaconProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.11;

// ============ External Imports ============
import {Address} from "@openzeppelin/contracts/utils/Address.sol";

/**
 * @title UpgradeBeaconProxy
 * @notice
 * Proxy contract which delegates all logic, including initialization,
 * to an implementation contract.
 * The implementation contract is stored within an Upgrade Beacon contract;
 * the implementation contract can be changed by performing an upgrade on the Upgrade Beacon contract.
 * The Upgrade Beacon contract for this Proxy is immutably specified at deployment.
 * @dev This implementation combines the gas savings of keeping the UpgradeBeacon address outside of contract storage
 * found in 0age's implementation:
 * https://github.com/dharma-eng/dharma-smart-wallet/blob/master/contracts/proxies/smart-wallet/UpgradeBeaconProxyV1.sol
 * With the added safety checks that the UpgradeBeacon and implementation are contracts at time of deployment
 * found in OpenZeppelin's implementation:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/beacon/BeaconProxy.sol
 */
contract UpgradeBeaconProxy {
    // ============ Immutables ============

    // Upgrade Beacon address is immutable (therefore not kept in contract storage)
    address private immutable upgradeBeacon;

    // ============ Constructor ============

    /**
     * @notice Validate that the Upgrade Beacon is a contract, then set its
     * address immutably within this contract.
     * Validate that the implementation is also a contract,
     * Then call the initialization function defined at the implementation.
     * The deployment will revert and pass along the
     * revert reason if the initialization function reverts.
     * @param _upgradeBeacon Address of the Upgrade Beacon to be stored immutably in the contract
     * @param _initializationCalldata Calldata supplied when calling the initialization function
     */
    constructor(address _upgradeBeacon, bytes memory _initializationCalldata)
        payable
    {
        // Validate the Upgrade Beacon is a contract
        require(Address.isContract(_upgradeBeacon), "beacon !contract");
        // set the Upgrade Beacon
        upgradeBeacon = _upgradeBeacon;
        // Validate the implementation is a contract
        address _implementation = _getImplementation(_upgradeBeacon);
        require(
            Address.isContract(_implementation),
            "beacon implementation !contract"
        );
        // Call the initialization function on the implementation
        if (_initializationCalldata.length > 0) {
            _initialize(_implementation, _initializationCalldata);
        }
    }

    // ============ External Functions ============

    /**
     * @notice Forwards all calls with data to _fallback()
     * No public functions are declared on the contract, so all calls hit fallback
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @notice Forwards all calls with no data to _fallback()
     */
    receive() external payable {
        _fallback();
    }

    // ============ Private Functions ============

    /**
     * @notice Call the initialization function on the implementation
     * Used at deployment to initialize the proxy
     * based on the logic for initialization defined at the implementation
     * @param _implementation - Contract to which the initalization is delegated
     * @param _initializationCalldata - Calldata supplied when calling the initialization function
     */
    function _initialize(
        address _implementation,
        bytes memory _initializationCalldata
    ) private {
        // Delegatecall into the implementation, supplying initialization calldata.
        (bool _ok, ) = _implementation.delegatecall(_initializationCalldata);
        // Revert and include revert data if delegatecall to implementation reverts.
        if (!_ok) {
            assembly {
                returndatacopy(0, 0, returndatasize())
                revert(0, returndatasize())
            }
        }
    }

    /**
     * @notice Delegates function calls to the implementation contract returned by the Upgrade Beacon
     */
    function _fallback() private {
        _delegate(_getImplementation());
    }

    /**
     * @notice Delegate function execution to the implementation contract
     * @dev This is a low level function that doesn't return to its internal
     * call site. It will return whatever is returned by the implementation to the
     * external caller, reverting and returning the revert data if implementation
     * reverts.
     * @param _implementation - Address to which the function execution is delegated
     */
    function _delegate(address _implementation) private {
        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())
            // Delegatecall to the implementation, supplying calldata and gas.
            // Out and outsize are set to zero - instead, use the return buffer.
            let result := delegatecall(
                gas(),
                _implementation,
                0,
                calldatasize(),
                0,
                0
            )
            // Copy the returned data from the return buffer.
            returndatacopy(0, 0, returndatasize())
            switch result
            // Delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @notice Call the Upgrade Beacon to get the current implementation contract address
     * @return _implementation Address of the current implementation.
     */
    function _getImplementation()
        private
        view
        returns (address _implementation)
    {
        _implementation = _getImplementation(upgradeBeacon);
    }

    /**
     * @notice Call the Upgrade Beacon to get the current implementation contract address
     * @dev _upgradeBeacon is passed as a parameter so that
     * we can also use this function in the constructor,
     * where we can't access immutable variables.
     * @param _upgradeBeacon Address of the UpgradeBeacon storing the current implementation
     * @return _implementation Address of the current implementation.
     */
    function _getImplementation(address _upgradeBeacon)
        private
        view
        returns (address _implementation)
    {
        // Get the current implementation address from the upgrade beacon.
        (bool _ok, bytes memory _returnData) = _upgradeBeacon.staticcall("");
        // Revert and pass along revert message if call to upgrade beacon reverts.
        require(_ok, string(_returnData));
        // Set the implementation to the address returned from the upgrade beacon.
        _implementation = abi.decode(_returnData, (address));
    }
}

File 2 of 2 : Address.sol
// SPDX-License-Identifier: MIT

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);
            }
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_upgradeBeacon","type":"address"},{"internalType":"bytes","name":"_initializationCalldata","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea264697066735822122045e2978eb512ee336ea17d3aebe82e86ec3eccf27a023a07f6c24bd7e9b53c8e64736f6c634300070600330000000000000000000000003b96b42d1f4962cb21049fb237a886e2860afacb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000c494bfee14b5e1e118f93cfedf831f40dfa720fa000000000000000000000000cec158a719d11005bd9339865965bed938beafa300000000000000000000000000000000000000000000000000000000

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

0000000000000000000000003b96b42d1f4962cb21049fb237a886e2860afacb00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000c494bfee14b5e1e118f93cfedf831f40dfa720fa000000000000000000000000cec158a719d11005bd9339865965bed938beafa300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _upgradeBeacon (address): 0x3b96b42d1f4962cb21049fb237a886e2860afacb
Arg [1] : _initializationCalldata (bytes): 0x485cc955000000000000000000000000c494bfee14b5e1e118f93cfedf831f40dfa720fa000000000000000000000000cec158a719d11005bd9339865965bed938beafa3

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000003b96b42d1f4962cb21049fb237a886e2860afacb
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [3] : 485cc955000000000000000000000000c494bfee14b5e1e118f93cfedf831f40
Arg [4] : dfa720fa000000000000000000000000cec158a719d11005bd9339865965bed9
Arg [5] : 38beafa300000000000000000000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
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.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.