Sepolia Testnet

Contract

0x49A3Bb231f1e92C4F901B83B980f85da841E8080

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OpsProxy

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
london EvmVersion, Unlicense license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 5 : OpsProxy.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.12;

import {Proxied} from "../vendor/proxy/EIP173/Proxied.sol";
import {_call} from "../functions/FExec.sol";
import {IOpsProxy} from "../interfaces/IOpsProxy.sol";

contract OpsProxy is Proxied, IOpsProxy {
    // solhint-disable const-name-snakecase
    uint256 public constant override version = 1;
    address public immutable override ops;

    modifier onlyAuth() {
        address proxyOwner = owner();
        if (msg.sender != proxyOwner) {
            require(msg.sender == ops, "OpsProxy: Not authorised");
            require(
                _getTaskCreator() == proxyOwner,
                "OpsProxy: Only tasks created by owner"
            );
        } // else msg.sender == proxyOwner
        _;
    }

    // solhint-disable no-empty-blocks
    constructor(address _ops) {
        ops = _ops;
    }

    receive() external payable {}

    ///@inheritdoc IOpsProxy
    function batchExecuteCall(
        address[] calldata _targets,
        bytes[] calldata _datas,
        uint256[] calldata _values
    ) external payable override onlyAuth {
        uint256 length = _targets.length;
        require(
            length == _datas.length && length == _values.length,
            "OpsProxy: Length mismatch"
        );

        for (uint256 i; i < length; i++)
            _executeCall(_targets[i], _datas[i], _values[i]);
    }

    ///@inheritdoc IOpsProxy
    function executeCall(
        address _target,
        bytes calldata _data,
        uint256 _value
    ) external payable override onlyAuth {
        _executeCall(_target, _data, _value);
    }

    function owner() public view returns (address) {
        return _proxyAdmin();
    }

    function _executeCall(
        address _target,
        bytes calldata _data,
        uint256 _value
    ) private {
        (, bytes memory returnData) = _call(
            _target,
            _data,
            _value,
            true,
            "OpsProxy.executeCall: "
        );

        emit ExecuteCall(_target, _data, _value, returnData);
    }

    function _getTaskCreator() private pure returns (address taskCreator) {
        assembly {
            taskCreator := shr(96, calldataload(sub(calldatasize(), 20)))
        }
    }
}

File 2 of 5 : FExec.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.12;

import {GelatoBytes} from "../vendor/gelato/GelatoBytes.sol";

// solhint-disable private-vars-leading-underscore
// solhint-disable func-visibility

function _call(
    address _add,
    bytes memory _data,
    uint256 _value,
    bool _revertOnFailure,
    string memory _tracingInfo
) returns (bool success, bytes memory returnData) {
    (success, returnData) = _add.call{value: _value}(_data);

    if (!success && _revertOnFailure)
        GelatoBytes.revertWithError(returnData, _tracingInfo);
}

function _delegateCall(
    address _add,
    bytes memory _data,
    string memory _tracingInfo
) returns (bool success, bytes memory returnData) {
    (success, returnData) = _add.delegatecall(_data);

    if (!success) GelatoBytes.revertWithError(returnData, _tracingInfo);
}

File 3 of 5 : IOpsProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.12;

interface IOpsProxy {
    /**
     * @notice Emitted when proxy calls a contract successfully in `executeCall`
     *
     * @param target Address of contract that is called
     * @param data Data used in the call.
     * @param value Native token value used in the call.
     * @param returnData Data returned by the call.
     */
    event ExecuteCall(
        address indexed target,
        bytes data,
        uint256 value,
        bytes returnData
    );

    /**
     * @notice Multicall to different contracts with different datas.
     *
     * @param targets Addresses of contracts to be called.
     * @param datas Datas for each contract call.
     * @param values Native token value for each contract call.
     */
    function batchExecuteCall(
        address[] calldata targets,
        bytes[] calldata datas,
        uint256[] calldata values
    ) external payable;

    /**
     * @notice Call to a single contract.
     *
     * @param target Address of contracts to be called.
     * @param data Data for contract call.
     * @param value Native token value for contract call.
     */
    function executeCall(
        address target,
        bytes calldata data,
        uint256 value
    ) external payable;

    /**
     * @return address Ops smart contract address
     */
    function ops() external view returns (address);

    /**
     * @return address Owner of the proxy
     */
    function owner() external view returns (address);

    /**
     * @return uint256 version of OpsProxy.
     */
    function version() external view returns (uint256);
}

File 4 of 5 : GelatoBytes.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.12;

library GelatoBytes {
    function calldataSliceSelector(bytes calldata _bytes)
        internal
        pure
        returns (bytes4 selector)
    {
        selector =
            _bytes[0] |
            (bytes4(_bytes[1]) >> 8) |
            (bytes4(_bytes[2]) >> 16) |
            (bytes4(_bytes[3]) >> 24);
    }

    function memorySliceSelector(bytes memory _bytes)
        internal
        pure
        returns (bytes4 selector)
    {
        selector =
            _bytes[0] |
            (bytes4(_bytes[1]) >> 8) |
            (bytes4(_bytes[2]) >> 16) |
            (bytes4(_bytes[3]) >> 24);
    }

    function revertWithError(bytes memory _bytes, string memory _tracingInfo)
        internal
        pure
    {
        // 68: 32-location, 32-length, 4-ErrorSelector, UTF-8 err
        if (_bytes.length % 32 == 4) {
            bytes4 selector;
            assembly {
                selector := mload(add(0x20, _bytes))
            }
            if (selector == 0x08c379a0) {
                // Function selector for Error(string)
                assembly {
                    _bytes := add(_bytes, 68)
                }
                revert(string(abi.encodePacked(_tracingInfo, string(_bytes))));
            } else {
                revert(
                    string(abi.encodePacked(_tracingInfo, "NoErrorSelector"))
                );
            }
        } else {
            revert(
                string(abi.encodePacked(_tracingInfo, "UnexpectedReturndata"))
            );
        }
    }

    function returnError(bytes memory _bytes, string memory _tracingInfo)
        internal
        pure
        returns (string memory)
    {
        // 68: 32-location, 32-length, 4-ErrorSelector, UTF-8 err
        if (_bytes.length % 32 == 4) {
            bytes4 selector;
            assembly {
                selector := mload(add(0x20, _bytes))
            }
            if (selector == 0x08c379a0) {
                // Function selector for Error(string)
                assembly {
                    _bytes := add(_bytes, 68)
                }
                return string(abi.encodePacked(_tracingInfo, string(_bytes)));
            } else {
                return
                    string(abi.encodePacked(_tracingInfo, "NoErrorSelector"));
            }
        } else {
            return
                string(abi.encodePacked(_tracingInfo, "UnexpectedReturndata"));
        }
    }
}

File 5 of 5 : Proxied.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.12;

abstract contract Proxied {
    /// @notice to be used by initialisation / postUpgrade function so that only the proxy's admin can execute them
    /// It also allows these functions to be called inside a contructor
    /// even if the contract is meant to be used without proxy
    modifier proxied() {
        address proxyAdminAddress = _proxyAdmin();
        // With hardhat-deploy proxies
        // the proxyAdminAddress is zero only for the implementation contract
        // if the implementation contract want to be used as a standalone/immutable contract
        // it simply has to execute the `proxied` function
        // This ensure the proxyAdminAddress is never zero post deployment
        // And allow you to keep the same code for both proxied contract and immutable contract
        if (proxyAdminAddress == address(0)) {
            // ensure can not be called twice when used outside of proxy : no admin
            // solhint-disable-next-line security/no-inline-assembly
            assembly {
                sstore(
                    0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,
                    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
                )
            }
        } else {
            require(msg.sender == proxyAdminAddress);
        }
        _;
    }

    modifier onlyProxyAdmin() {
        require(msg.sender == _proxyAdmin(), "NOT_AUTHORIZED");
        _;
    }

    function _proxyAdmin() internal view returns (address adminAddress) {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            adminAddress := sload(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
            )
        }
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_ops","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"ExecuteCall","type":"event"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"batchExecuteCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"executeCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ops","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040523480156200001157600080fd5b5060405162001317380380620013178339818101604052810190620000379190620000dc565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200010e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a48262000077565b9050919050565b620000b68162000097565b8114620000c257600080fd5b50565b600081519050620000d681620000ab565b92915050565b600060208284031215620000f557620000f462000072565b5b60006200010584828501620000c5565b91505092915050565b6080516111df6200013860003960008181610154015281816102be01526104b501526111df6000f3fe60806040526004361061004e5760003560e01c806354132d781461005a57806354fd4d50146100765780638da5cb5b146100a1578063c0e8c0c2146100cc578063e70abe92146100e857610055565b3661005557005b600080fd5b610074600480360381019061006f91906108fa565b610113565b005b34801561008257600080fd5b5061008b610269565b604051610098919061097d565b60405180910390f35b3480156100ad57600080fd5b506100b661026e565b6040516100c391906109a7565b60405180910390f35b6100e660048036038101906100e19190610ac4565b61027d565b005b3480156100f457600080fd5b506100fd6104b3565b60405161010a91906109a7565b60405180910390f35b600061011d61026e565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610256577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d790610bd5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166101ff6104d7565b73ffffffffffffffffffffffffffffffffffffffff1614610255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024c90610c67565b60405180910390fd5b5b610262858585856104e6565b5050505050565b600181565b60006102786105cd565b905090565b600061028761026e565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c0577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461034a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034190610bd5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166103696104d7565b73ffffffffffffffffffffffffffffffffffffffff16146103bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b690610c67565b60405180910390fd5b5b600087879050905085859050811480156103dc57508383905081145b61041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290610cd3565b60405180910390fd5b60005b818110156104a85761049589898381811061043c5761043b610cf3565b5b90506020020160208101906104519190610d22565b88888481811061046457610463610cf3565b5b90506020028101906104769190610d5e565b88888681811061048957610488610cf3565b5b905060200201356104e6565b80806104a090610df0565b91505061041e565b505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601436033560601c905090565b600061056f8585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508460016040518060400160405280601681526020017f4f707350726f78792e6578656375746543616c6c3a20000000000000000000008152506105f6565b9150508473ffffffffffffffffffffffffffffffffffffffff167f8f8f4d49bbb03ffac818a5d588ec1786a4d2d17269871cbf5b1745f58b64c15d858585856040516105be9493929190610f0d565b60405180910390a25050505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354905090565b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516106209190610f90565b60006040518083038185875af1925050503d806000811461065d576040519150601f19603f3d011682016040523d82523d6000602084013e610662565b606091505b508092508193505050811580156106765750835b15610686576106858184610690565b5b9550959350505050565b6004602083516106a09190610fd6565b0361079b576000826020015190506308c379a060e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361073f5760448301925081836040516020016106f492919061104e565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073691906110ab565b60405180910390fd5b816040516020016107509190611119565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079291906110ab565b60405180910390fd5b806040516020016107ac9190611187565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ee91906110ab565b60405180910390fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061082c82610801565b9050919050565b61083c81610821565b811461084757600080fd5b50565b60008135905061085981610833565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108845761088361085f565b5b8235905067ffffffffffffffff8111156108a1576108a0610864565b5b6020830191508360018202830111156108bd576108bc610869565b5b9250929050565b6000819050919050565b6108d7816108c4565b81146108e257600080fd5b50565b6000813590506108f4816108ce565b92915050565b60008060008060608587031215610914576109136107f7565b5b60006109228782880161084a565b945050602085013567ffffffffffffffff811115610943576109426107fc565b5b61094f8782880161086e565b93509350506040610962878288016108e5565b91505092959194509250565b610977816108c4565b82525050565b6000602082019050610992600083018461096e565b92915050565b6109a181610821565b82525050565b60006020820190506109bc6000830184610998565b92915050565b60008083601f8401126109d8576109d761085f565b5b8235905067ffffffffffffffff8111156109f5576109f4610864565b5b602083019150836020820283011115610a1157610a10610869565b5b9250929050565b60008083601f840112610a2e57610a2d61085f565b5b8235905067ffffffffffffffff811115610a4b57610a4a610864565b5b602083019150836020820283011115610a6757610a66610869565b5b9250929050565b60008083601f840112610a8457610a8361085f565b5b8235905067ffffffffffffffff811115610aa157610aa0610864565b5b602083019150836020820283011115610abd57610abc610869565b5b9250929050565b60008060008060008060608789031215610ae157610ae06107f7565b5b600087013567ffffffffffffffff811115610aff57610afe6107fc565b5b610b0b89828a016109c2565b9650965050602087013567ffffffffffffffff811115610b2e57610b2d6107fc565b5b610b3a89828a01610a18565b9450945050604087013567ffffffffffffffff811115610b5d57610b5c6107fc565b5b610b6989828a01610a6e565b92509250509295509295509295565b600082825260208201905092915050565b7f4f707350726f78793a204e6f7420617574686f72697365640000000000000000600082015250565b6000610bbf601883610b78565b9150610bca82610b89565b602082019050919050565b60006020820190508181036000830152610bee81610bb2565b9050919050565b7f4f707350726f78793a204f6e6c79207461736b7320637265617465642062792060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000610c51602583610b78565b9150610c5c82610bf5565b604082019050919050565b60006020820190508181036000830152610c8081610c44565b9050919050565b7f4f707350726f78793a204c656e677468206d69736d6174636800000000000000600082015250565b6000610cbd601983610b78565b9150610cc882610c87565b602082019050919050565b60006020820190508181036000830152610cec81610cb0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610d3857610d376107f7565b5b6000610d468482850161084a565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610d7b57610d7a610d4f565b5b80840192508235915067ffffffffffffffff821115610d9d57610d9c610d54565b5b602083019250600182023603831315610db957610db8610d59565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dfb826108c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e2d57610e2c610dc1565b5b600182019050919050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610e758385610e38565b9350610e82838584610e49565b610e8b83610e58565b840190509392505050565b600081519050919050565b60005b83811015610ebf578082015181840152602081019050610ea4565b83811115610ece576000848401525b50505050565b6000610edf82610e96565b610ee98185610e38565b9350610ef9818560208601610ea1565b610f0281610e58565b840191505092915050565b60006060820190508181036000830152610f28818688610e69565b9050610f37602083018561096e565b8181036040830152610f498184610ed4565b905095945050505050565b600081905092915050565b6000610f6a82610e96565b610f748185610f54565b9350610f84818560208601610ea1565b80840191505092915050565b6000610f9c8284610f5f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610fe1826108c4565b9150610fec836108c4565b925082610ffc57610ffb610fa7565b5b828206905092915050565b600081519050919050565b600081905092915050565b600061102882611007565b6110328185611012565b9350611042818560208601610ea1565b80840191505092915050565b600061105a828561101d565b9150611066828461101d565b91508190509392505050565b600061107d82611007565b6110878185610b78565b9350611097818560208601610ea1565b6110a081610e58565b840191505092915050565b600060208201905081810360008301526110c58184611072565b905092915050565b7f4e6f4572726f7253656c6563746f720000000000000000000000000000000000600082015250565b6000611103600f83611012565b915061110e826110cd565b600f82019050919050565b6000611125828461101d565b9150611130826110f6565b915081905092915050565b7f556e657870656374656452657475726e64617461000000000000000000000000600082015250565b6000611171601483611012565b915061117c8261113b565b601482019050919050565b6000611193828461101d565b915061119e82611164565b91508190509291505056fea2646970667358221220925e8abf4f8b318f74a9a344b29c6785f3cc7ee8f12ec00fec31b621e6bdc76064736f6c634300080e00330000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e0

Deployed Bytecode

0x60806040526004361061004e5760003560e01c806354132d781461005a57806354fd4d50146100765780638da5cb5b146100a1578063c0e8c0c2146100cc578063e70abe92146100e857610055565b3661005557005b600080fd5b610074600480360381019061006f91906108fa565b610113565b005b34801561008257600080fd5b5061008b610269565b604051610098919061097d565b60405180910390f35b3480156100ad57600080fd5b506100b661026e565b6040516100c391906109a7565b60405180910390f35b6100e660048036038101906100e19190610ac4565b61027d565b005b3480156100f457600080fd5b506100fd6104b3565b60405161010a91906109a7565b60405180910390f35b600061011d61026e565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610256577f0000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d790610bd5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166101ff6104d7565b73ffffffffffffffffffffffffffffffffffffffff1614610255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161024c90610c67565b60405180910390fd5b5b610262858585856104e6565b5050505050565b600181565b60006102786105cd565b905090565b600061028761026e565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103c0577f0000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461034a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034190610bd5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166103696104d7565b73ffffffffffffffffffffffffffffffffffffffff16146103bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b690610c67565b60405180910390fd5b5b600087879050905085859050811480156103dc57508383905081145b61041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290610cd3565b60405180910390fd5b60005b818110156104a85761049589898381811061043c5761043b610cf3565b5b90506020020160208101906104519190610d22565b88888481811061046457610463610cf3565b5b90506020028101906104769190610d5e565b88888681811061048957610488610cf3565b5b905060200201356104e6565b80806104a090610df0565b91505061041e565b505050505050505050565b7f0000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e081565b6000601436033560601c905090565b600061056f8585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508460016040518060400160405280601681526020017f4f707350726f78792e6578656375746543616c6c3a20000000000000000000008152506105f6565b9150508473ffffffffffffffffffffffffffffffffffffffff167f8f8f4d49bbb03ffac818a5d588ec1786a4d2d17269871cbf5b1745f58b64c15d858585856040516105be9493929190610f0d565b60405180910390a25050505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354905090565b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516106209190610f90565b60006040518083038185875af1925050503d806000811461065d576040519150601f19603f3d011682016040523d82523d6000602084013e610662565b606091505b508092508193505050811580156106765750835b15610686576106858184610690565b5b9550959350505050565b6004602083516106a09190610fd6565b0361079b576000826020015190506308c379a060e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361073f5760448301925081836040516020016106f492919061104e565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073691906110ab565b60405180910390fd5b816040516020016107509190611119565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079291906110ab565b60405180910390fd5b806040516020016107ac9190611187565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ee91906110ab565b60405180910390fd5b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061082c82610801565b9050919050565b61083c81610821565b811461084757600080fd5b50565b60008135905061085981610833565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108845761088361085f565b5b8235905067ffffffffffffffff8111156108a1576108a0610864565b5b6020830191508360018202830111156108bd576108bc610869565b5b9250929050565b6000819050919050565b6108d7816108c4565b81146108e257600080fd5b50565b6000813590506108f4816108ce565b92915050565b60008060008060608587031215610914576109136107f7565b5b60006109228782880161084a565b945050602085013567ffffffffffffffff811115610943576109426107fc565b5b61094f8782880161086e565b93509350506040610962878288016108e5565b91505092959194509250565b610977816108c4565b82525050565b6000602082019050610992600083018461096e565b92915050565b6109a181610821565b82525050565b60006020820190506109bc6000830184610998565b92915050565b60008083601f8401126109d8576109d761085f565b5b8235905067ffffffffffffffff8111156109f5576109f4610864565b5b602083019150836020820283011115610a1157610a10610869565b5b9250929050565b60008083601f840112610a2e57610a2d61085f565b5b8235905067ffffffffffffffff811115610a4b57610a4a610864565b5b602083019150836020820283011115610a6757610a66610869565b5b9250929050565b60008083601f840112610a8457610a8361085f565b5b8235905067ffffffffffffffff811115610aa157610aa0610864565b5b602083019150836020820283011115610abd57610abc610869565b5b9250929050565b60008060008060008060608789031215610ae157610ae06107f7565b5b600087013567ffffffffffffffff811115610aff57610afe6107fc565b5b610b0b89828a016109c2565b9650965050602087013567ffffffffffffffff811115610b2e57610b2d6107fc565b5b610b3a89828a01610a18565b9450945050604087013567ffffffffffffffff811115610b5d57610b5c6107fc565b5b610b6989828a01610a6e565b92509250509295509295509295565b600082825260208201905092915050565b7f4f707350726f78793a204e6f7420617574686f72697365640000000000000000600082015250565b6000610bbf601883610b78565b9150610bca82610b89565b602082019050919050565b60006020820190508181036000830152610bee81610bb2565b9050919050565b7f4f707350726f78793a204f6e6c79207461736b7320637265617465642062792060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000610c51602583610b78565b9150610c5c82610bf5565b604082019050919050565b60006020820190508181036000830152610c8081610c44565b9050919050565b7f4f707350726f78793a204c656e677468206d69736d6174636800000000000000600082015250565b6000610cbd601983610b78565b9150610cc882610c87565b602082019050919050565b60006020820190508181036000830152610cec81610cb0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610d3857610d376107f7565b5b6000610d468482850161084a565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610d7b57610d7a610d4f565b5b80840192508235915067ffffffffffffffff821115610d9d57610d9c610d54565b5b602083019250600182023603831315610db957610db8610d59565b5b509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dfb826108c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e2d57610e2c610dc1565b5b600182019050919050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610e758385610e38565b9350610e82838584610e49565b610e8b83610e58565b840190509392505050565b600081519050919050565b60005b83811015610ebf578082015181840152602081019050610ea4565b83811115610ece576000848401525b50505050565b6000610edf82610e96565b610ee98185610e38565b9350610ef9818560208601610ea1565b610f0281610e58565b840191505092915050565b60006060820190508181036000830152610f28818688610e69565b9050610f37602083018561096e565b8181036040830152610f498184610ed4565b905095945050505050565b600081905092915050565b6000610f6a82610e96565b610f748185610f54565b9350610f84818560208601610ea1565b80840191505092915050565b6000610f9c8284610f5f565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610fe1826108c4565b9150610fec836108c4565b925082610ffc57610ffb610fa7565b5b828206905092915050565b600081519050919050565b600081905092915050565b600061102882611007565b6110328185611012565b9350611042818560208601610ea1565b80840191505092915050565b600061105a828561101d565b9150611066828461101d565b91508190509392505050565b600061107d82611007565b6110878185610b78565b9350611097818560208601610ea1565b6110a081610e58565b840191505092915050565b600060208201905081810360008301526110c58184611072565b905092915050565b7f4e6f4572726f7253656c6563746f720000000000000000000000000000000000600082015250565b6000611103600f83611012565b915061110e826110cd565b600f82019050919050565b6000611125828461101d565b9150611130826110f6565b915081905092915050565b7f556e657870656374656452657475726e64617461000000000000000000000000600082015250565b6000611171601483611012565b915061117c8261113b565b601482019050919050565b6000611193828461101d565b915061119e82611164565b91508190509291505056fea2646970667358221220925e8abf4f8b318f74a9a344b29c6785f3cc7ee8f12ec00fec31b621e6bdc76064736f6c634300080e0033

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

0000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e0

-----Decoded View---------------
Arg [0] : _ops (address): 0x2A6C106ae13B558BB9E2Ec64Bd2f1f7BEFF3A5E0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e0


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.