Contract 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1e333f5b3153db8ef063705e6982027d6400318ff7e303c056b4099906c77cdcSend239514032022-01-20 15:37:5946 mins ago0x118e0804ca176184f0b91f361fedc96932ba0971 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.028280736852 122.436972806
0xebb004c4fedd3c53b153012a836c1cf218808332f0ca57e33f1cd4d63c9fc53dSend239500852022-01-20 14:52:331 hr 32 mins ago0x54f669c1cc4f938d166bd3f17b517e9b83d68ff2 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.015198537877 69.83916092
0x1ef96bedc280ca649db8bb462833855b4b3fc4bca1259947153f8bc092bfa3ecSend239459622022-01-20 12:26:093 hrs 58 mins ago0x99e5f58fbb54d8ef015943e930dd1f091a0fb573 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.052087199525 224.262462435
0xa0432bcfea0f3864f4f2c7ff77b7408d58d1be4d5d074be1469bb2e7598962a7Send239457822022-01-20 12:19:574 hrs 4 mins ago0x4903cb9e427ded0e36598bc65c815052c98afeac IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.02123632513 97.784841328
0xafb623b0e0c195eabcaf6aaa3e8ee8d6f40681acd49915edf4938a4ec5e50bbeSend239427402022-01-20 10:30:415 hrs 54 mins ago0x1c967aa45e5e67e872feac71ed816ad361599aa6 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.011349815462 49.044652805
0x51ebab4cdc41bb59d2d051d899edf6c1446a9082dde8fe0fdc22d5c55313d1e5Send239423662022-01-20 10:17:496 hrs 6 mins ago0xd2ea42a69287a0a1bacd9259fbbd61a5db977248 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.011244340307 48.497504065
0x31ba58dd31fcfbc1c1dbc723c793af0da9214187c48889e42f23795bc3b9c9f7Send239414642022-01-20 9:46:496 hrs 37 mins ago0x052fe7da70ae776555dcd9527cf7d74328c2b7b2 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.007081730151 32.602249151
0x696260d76b62300d8d306897f9138960e6413a8d77741f415d3bb9867576af33Send239380732022-01-20 7:45:568 hrs 38 mins ago0xd2d9d7ce174e4ba293112e1d5abab3e5876d5f2a IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.012451926865 55.041006345
0x2f57d7b4546cae2a87381cddc4c11680f76ac77c2ccf5048f7c6cba81433f95bSend239337542022-01-20 5:11:5511 hrs 12 mins ago0x7b2ba594ca7bfad5297e8b97093ab090ca8a920e IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.011199459082 51.573334756
0x4d68bee5220c55cfc4c05b0e678cba2291c2396ac0c0df25f5186571d20a8625Send239130752022-01-19 16:31:2523 hrs 53 mins ago0x478c1ccbe59ff796a47d76ba82c5536c8639d3e6 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.055556651204255.802175113
0xf7d84527c50d5212439eb49792e513aa4c4af5bd07c37fce1fa6027b06d40529Send239127822022-01-19 16:19:151 day 5 mins ago0x8092b1c179a87eba3b4733d93158422db6a75f57 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.083860743065 354.423034613
0xf459ce2ad21c4ba351e22b2d9dd86f7dbd6531e6a33d894000ae199cd1945483Send239125782022-01-19 16:12:091 day 12 mins ago0x8a4fbedba5b81d22b7fa5f3cc4a5fa481c317553 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.116152425001 513.535228273
0x7e950d406d22d53b0b21a96006051b7ebf9fa84160415a1fc2e74f99892dfad1Send239120322022-01-19 15:53:091 day 31 mins ago0xe1eef2fa8c7060d3a3bd9a49957dcd8de671068e IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.150852449633 651.861348871
0x2c6d7ee336091e448445ca21352e419038280216f4311d124e819a38b62b27ffSend239092692022-01-19 14:09:261 day 2 hrs ago0x1cf98210f34cb989be9694de2091ca35dba9d928 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.059579727597 263.380048791
0xb557cfef91bd67b610754af7ee81d1aba563d12a27341d2573bf7b1a6307acd9Send239067132022-01-19 12:34:061 day 3 hrs ago0x4cdd4f72b1d89718d0eccfae9167e65a0a81a7ac IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.065978268411 303.786931071
0xdddd57084bcc349d4ba1417d89be3b200870ade57804d4465e3beda791b097d2Send239056532022-01-19 11:54:481 day 4 hrs ago0x1cf98210f34cb989be9694de2091ca35dba9d928 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.068380840716 295.501589055
0x8cbf44ed6993a031cb4cffdc4a4c91802eb40a7478489e4530148628423e36f9Send239051052022-01-19 11:33:511 day 4 hrs ago0xdf14ab0dc8f8fdf5181a28a2fff31e2edf2d8028 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.041426994027 179.337636483
0x447952219aeb932c2fe719da4da81bccf583cab84e4fe1eebeb7be188300b6a8Send239046872022-01-19 11:19:271 day 5 hrs ago0x1217130d7a5339c39dd3981bbce74f6690da7607 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.053896449767 227.755215758
0xc07f5e5f96dc24a63c6127a3c0aed74ba9d31e8eab58d64af025ce1740a41e09Send239024582022-01-19 10:01:591 day 6 hrs ago0x609a1a3077dfaf0bdc0a1aeb240a896f1f8f2f79 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.052141244995 240.096353954
0x34d356b737d7cf8d1f52d5caadff22084ba747bb50d58cf39564d2e77f407847Send239009522022-01-19 9:07:581 day 7 hrs ago0xe84b0443b8341d9c215a150ff208c0ce5d2d9a74 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.0444832200
0x73ebca145ea5e549fc0ef7b6c0a80a504da4def01618598abbd7f474b55e3f1aSend239007462022-01-19 9:00:461 day 7 hrs ago0x2d8e211913247a0ec5454137e7a6ed18ed727a2f IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.023804040887 103.034414955
0xb347e1aaf536b23fe5945c133c3aac8ca5bc2136cdf2811958c0e7e8c2d72108Send239003122022-01-19 8:45:501 day 7 hrs ago0x2d8e211913247a0ec5454137e7a6ed18ed727a2f IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.022984258066 98.773756601
0x853fa0210429434c4f8804fe0a8d4c1f475bd0e76c4d34a9f563ac6af4a20b85Send238931232022-01-19 4:32:001 day 11 hrs ago0xd39ec0556b27bea894718c981470a15724278585 IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.038816640835 168.037406213
0x939208ce29658cfbf6f9c65b033157129025960c885ebd0505d371a0429f4007Send238898922022-01-19 2:36:311 day 13 hrs ago0x2657fb9057f389e3d418c89ff8342ee929f548ab IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.009667811441.7
0x0a18478add4232b01f42d1f06846148a3cea44c7be708e231e4415acbbbd1c7aSend238881202022-01-19 1:33:251 day 14 hrs ago0x4cdd4f72b1d89718d0eccfae9167e65a0a81a7ac IN  0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d0 MATIC0.045973492363 199.019447463
[ Download CSV Export 
Latest 11 internal transactions
Parent Txn Hash Block From To Value
0x045956b839b03c5a38d60cf56b91ac07c3654fe64e3806f7524a6a6f79748710231346062021-12-30 8:24:2221 days 8 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x0528d55fd6ff1cb25ffb22e4025c66b434a7516643b53130f9bb03eae83ece67220910032021-12-03 14:34:0648 days 1 hr ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x6c7f1d53c63b35065c182e08e188ee8c643c66a9ba8c6a2109cc4f2be0ec5c61219520902021-11-29 22:53:4151 days 17 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0xc40d28ae49b51443883b6e1c4e319d711bf715979595f874d869a862a9d5699e219513232021-11-29 22:23:0351 days 18 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x7047e4de8553a8977c875c5ea79bf2b421393aa104e174b2afa7fbac228653d9219513162021-11-29 22:22:4951 days 18 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x33a0d1a2b202989fc1e5a97279588d5b1a29b7c19e2ed6d4c1a0ce5c8b323e7e219513082021-11-29 22:22:3351 days 18 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0xd1314371ca2406260a0c844edab2d9099d645ce265fd26f471f4bd130a1a29cc219512982021-11-29 22:22:1351 days 18 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x2907298cf1ffd1f6bbf416d0c7416aacf33ff7ba6f1d6686b7b2624903dca7ea219494242021-11-29 21:15:1451 days 19 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x5c388995330b1ff00f453b53a40842fc9175907febe7b33801e3f0176ab229b6219130832021-11-28 21:13:4752 days 19 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0xa28053d62bf59f0729c01b26eaed8852afa0a886d0f734dd49748f4e2dd251e5218945492021-11-28 9:43:2453 days 6 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
0x1a435fd2f9a2dbb72f265f8f5eb551eef029dab10456bf5302b447ce8165568e218784512021-11-27 23:39:5453 days 16 hrs ago 0x3a5846882c0d5f8b0fa4bb04dc90c013104d125d  Contract Creation0 MATIC
[ 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",
        "devdoc",
        "userdoc",
        "metadata",
        "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"}]

60a060405260405161058b38038061058b8339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b506040525050506100f0826101d060201b6100291760201c565b610134576040805162461bcd60e51b815260206004820152601060248201526f18995858dbdb880858dbdb9d1c9858dd60821b604482015290519081900360640190fd5b6001600160601b0319606083901b166080526000610151836101d6565b9050610166816101d060201b6100291760201c565b6101b7576040805162461bcd60e51b815260206004820152601f60248201527f626561636f6e20696d706c656d656e746174696f6e2021636f6e747261637400604482015290519081900360640190fd5b8151156101c8576101c881836102d6565b50505061038f565b3b151590565b604051600090819081906001600160a01b0385169082818181855afa9150503d8060008114610221576040519150601f19603f3d011682016040523d82523d6000602084013e610226565b606091505b50915091508181906102b65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561027b578181015183820152602001610263565b50505050905090810190601f1680156102a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156102cc57600080fd5b5051949350505050565b6000826001600160a01b0316826040518082805190602001908083835b602083106103125780518252601f1990920191602091820191016102f3565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610372576040519150601f19603f3d011682016040523d82523d6000602084013e610377565b606091505b505090508061038a573d6000803e3d6000fd5b505050565b60805160601c6101e06103ab60003980603652506101e06000f3fe60806040523661001357610011610017565b005b6100115b61002761002261002f565b61005f565b565b3b151590565b600061005a7f0000000000000000000000000000000000000000000000000000000000000000610083565b905090565b3660008037600080366000845af43d6000803e80801561007e573d6000f35b3d6000fd5b6040516000908190819073ffffffffffffffffffffffffffffffffffffffff85169082818181855afa9150503d80600081146100db576040519150601f19603f3d011682016040523d82523d6000602084013e6100e0565b606091505b509150915081819061018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561014f578181015183820152602001610137565b50505050905090810190601f16801561017c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508080602001905160208110156101a057600080fd5b505194935050505056fea264697066735822122045e2978eb512ee336ea17d3aebe82e86ec3eccf27a023a07f6c24bd7e9b53c8e64736f6c63430007060033000000000000000000000000e41f1bb38b5d155534fdabb701c3331927c825e100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc9550000000000000000000000008f6b6adb49cdca3b9f6947f61a1201242c3d827f0000000000000000000000004ea75c12ed058f0e6651475688a941555fa6239500000000000000000000000000000000000000000000000000000000

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

000000000000000000000000e41f1bb38b5d155534fdabb701c3331927c825e100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc9550000000000000000000000008f6b6adb49cdca3b9f6947f61a1201242c3d827f0000000000000000000000004ea75c12ed058f0e6651475688a941555fa6239500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _upgradeBeacon (address): 0xe41f1bb38b5d155534fdabb701c3331927c825e1
Arg [1] : _initializationCalldata (bytes): 0x485cc9550000000000000000000000008f6b6adb49cdca3b9f6947f61a1201242c3d827f0000000000000000000000004ea75c12ed058f0e6651475688a941555fa62395

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000e41f1bb38b5d155534fdabb701c3331927c825e1
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [3] : 485cc9550000000000000000000000008f6b6adb49cdca3b9f6947f61a120124
Arg [4] : 2c3d827f0000000000000000000000004ea75c12ed058f0e6651475688a94155
Arg [5] : 5fa6239500000000000000000000000000000000000000000000000000000000


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.