S Price: $0.56393 (-6.46%)
    /

    Contract

    0xA912262Ba05D9C0233D6D652BaB6810Cb2405972

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    $0.00

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount

    There are no matching entries

    Please try again later

    Parent Transaction Hash Block Age From To Amount
    View All Internal Transactions
    Loading...
    Loading

    Contract Source Code Verified (Exact Match)

    Contract Name:
    EulerEarnFactoryPerspective

    Compiler Version
    v0.8.24+commit.e11b9ed9

    Optimization Enabled:
    Yes with 20000 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 9 : EulerEarnFactoryPerspective.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.24;
    import {IEulerEarnFactory} from "euler-earn/interface/IEulerEarnFactory.sol";
    import {BasePerspective} from "../implementation/BasePerspective.sol";
    /// @title EulerEarnFactoryPerspective
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice A contract that verifies whether a vault was deployed by the EulerEarnFactory Factory.
    contract EulerEarnFactoryPerspective is BasePerspective {
    /// @notice Creates a new EulerEarnFactoryPerspective instance.
    /// @param vaultFactory_ The address of the EulerEarnFactory contract.
    constructor(address vaultFactory_) BasePerspective(vaultFactory_) {}
    /// @inheritdoc BasePerspective
    function name() public pure virtual override returns (string memory) {
    return "Euler Earn Factory Perspective";
    }
    /// @inheritdoc BasePerspective
    function perspectiveVerifyInternal(address vault) internal virtual override {
    testProperty(IEulerEarnFactory(address(vaultFactory)).isValidDeployment(vault), ERROR__FACTORY);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 9 : IEulerEarnFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    interface IEulerEarnFactory {
    function deployEulerEarn(
    address _asset,
    string memory _name,
    string memory _symbol,
    uint256 _initialCashAllocationPoints,
    uint24 _smearingPeriod
    ) external returns (address);
    function eulerEarnImpl() external view returns (address);
    function getEulerEarnVaultsListLength() external view returns (uint256);
    function getEulerEarnVaultsListSlice(uint256 _start, uint256 _end) external view returns (address[] memory);
    function isValidDeployment(address _earnVaultAddress) external view returns (bool);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 9 : BasePerspective.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.24;
    import {EnumerableSet} from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
    import {GenericFactory} from "evk/GenericFactory/GenericFactory.sol";
    import {IPerspective} from "./interfaces/IPerspective.sol";
    import {PerspectiveErrors} from "./PerspectiveErrors.sol";
    /// @title BasePerspective
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice A base contract for implementing a perspective.
    abstract contract BasePerspective is IPerspective, PerspectiveErrors {
    using EnumerableSet for EnumerableSet.AddressSet;
    struct Transient {
    uint256 placeholder;
    }
    GenericFactory public immutable vaultFactory;
    EnumerableSet.AddressSet internal verified;
    Transient private transientVerified;
    Transient private transientErrors;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 9 : EnumerableSet.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.1.0) (utils/structs/EnumerableSet.sol)
    // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.
    pragma solidity ^0.8.20;
    /**
    * @dev Library for managing
    * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
    * types.
    *
    * Sets have the following properties:
    *
    * - Elements are added, removed, and checked for existence in constant time
    * (O(1)).
    * - Elements are enumerated in O(n). No guarantees are made on the ordering.
    *
    * ```solidity
    * contract Example {
    * // Add the library methods
    * using EnumerableSet for EnumerableSet.AddressSet;
    *
    * // Declare a set state variable
    * EnumerableSet.AddressSet private mySet;
    * }
    * ```
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 9 : GenericFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    import {BeaconProxy} from "./BeaconProxy.sol";
    import {MetaProxyDeployer} from "./MetaProxyDeployer.sol";
    /// @title IComponent
    /// @notice Minimal interface which must be implemented by the contract deployed by the factory
    interface IComponent {
    /// @notice Function replacing the constructor in proxied contracts
    /// @param creator The new contract's creator address
    function initialize(address creator) external;
    }
    /// @title GenericFactory
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice The factory allows permissionless creation of upgradeable or non-upgradeable proxy contracts and serves as a
    /// beacon for the upgradeable ones
    contract GenericFactory is MetaProxyDeployer {
    // Constants
    uint256 internal constant REENTRANCYLOCK__UNLOCKED = 1;
    uint256 internal constant REENTRANCYLOCK__LOCKED = 2;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 9 : IPerspective.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity >=0.8.0;
    /// @title IPerspective
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice A contract that verifies the properties of a vault.
    interface IPerspective {
    /// @notice Emitted when a vault is verified successfully.
    /// @param vault The address of the vault that has been verified.
    event PerspectiveVerified(address indexed vault);
    /// @notice Error thrown when a perspective verification fails.
    /// @param perspective The address of the perspective contract where the error occurred.
    /// @param vault The address of the vault being verified.
    /// @param codes The error codes indicating the reasons for verification failure.
    error PerspectiveError(address perspective, address vault, uint256 codes);
    /// @notice Error thrown when a panic occurs in the perspective contract.
    error PerspectivePanic();
    /// @notice Returns the name of the perspective.
    /// @dev Name should be unique and descriptive.
    /// @return The name of the perspective.
    function name() external view returns (string memory);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 9 : PerspectiveErrors.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    /// @title PerspectiveErrors
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice A contract that defines the error codes for the perspectives.
    abstract contract PerspectiveErrors {
    uint256 internal constant ERROR__FACTORY = 1 << 0;
    uint256 internal constant ERROR__IMPLEMENTATION = 1 << 1;
    uint256 internal constant ERROR__UPGRADABILITY = 1 << 2;
    uint256 internal constant ERROR__SINGLETON = 1 << 3;
    uint256 internal constant ERROR__NESTING = 1 << 4;
    uint256 internal constant ERROR__ORACLE_INVALID_ROUTER = 1 << 5;
    uint256 internal constant ERROR__ORACLE_GOVERNED_ROUTER = 1 << 6;
    uint256 internal constant ERROR__ORACLE_INVALID_FALLBACK = 1 << 7;
    uint256 internal constant ERROR__ORACLE_INVALID_ROUTER_CONFIG = 1 << 8;
    uint256 internal constant ERROR__ORACLE_INVALID_ADAPTER = 1 << 9;
    uint256 internal constant ERROR__UNIT_OF_ACCOUNT = 1 << 10;
    uint256 internal constant ERROR__CREATOR = 1 << 11;
    uint256 internal constant ERROR__GOVERNOR = 1 << 12;
    uint256 internal constant ERROR__FEE_RECEIVER = 1 << 13;
    uint256 internal constant ERROR__INTEREST_FEE = 1 << 14;
    uint256 internal constant ERROR__INTEREST_RATE_MODEL = 1 << 15;
    uint256 internal constant ERROR__SUPPLY_CAP = 1 << 16;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 9 : BeaconProxy.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    /// @title BeaconProxy
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice A proxy contract, forwarding all calls to an implementation contract, fetched from a beacon
    /// @dev The proxy attaches up to 128 bytes of metadata to the delegated call data.
    contract BeaconProxy {
    // ERC-1967 beacon address slot. bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)
    bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;
    // Beacon implementation() selector
    bytes32 internal constant IMPLEMENTATION_SELECTOR =
    0x5c60da1b00000000000000000000000000000000000000000000000000000000;
    // Max trailing data length, 4 immutable slots
    uint256 internal constant MAX_TRAILING_DATA_LENGTH = 128;
    address internal immutable beacon;
    uint256 internal immutable metadataLength;
    bytes32 internal immutable metadata0;
    bytes32 internal immutable metadata1;
    bytes32 internal immutable metadata2;
    bytes32 internal immutable metadata3;
    event Genesis();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 9 : MetaProxyDeployer.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: GPL-2.0-or-later
    pragma solidity ^0.8.0;
    /// @title MetaProxyDeployer
    /// @custom:security-contact security@euler.xyz
    /// @author Euler Labs (https://www.eulerlabs.com/)
    /// @notice Contract for deploying minimal proxies with metadata, based on EIP-3448.
    /// @dev The metadata of the proxies does not include the data length as defined by EIP-3448, saving gas at a cost of
    /// supporting variable size data.
    contract MetaProxyDeployer {
    error E_DeploymentFailed();
    // Meta proxy bytecode from EIP-3488 https://eips.ethereum.org/EIPS/eip-3448
    bytes constant BYTECODE_HEAD = hex"600b380380600b3d393df3363d3d373d3d3d3d60368038038091363936013d73";
    bytes constant BYTECODE_TAIL = hex"5af43d3d93803e603457fd5bf3";
    /// @dev Creates a proxy for `targetContract` with metadata from `metadata`.
    /// @return addr A non-zero address if successful.
    function deployMetaProxy(address targetContract, bytes memory metadata) internal returns (address addr) {
    bytes memory code = abi.encodePacked(BYTECODE_HEAD, targetContract, BYTECODE_TAIL, metadata);
    assembly ("memory-safe") {
    addr := create(0, add(code, 32), mload(code))
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "lib/euler-price-oracle:@openzeppelin/contracts/=lib/euler-price-oracle/lib/openzeppelin-contracts/contracts/",
    "lib/native-token-transfers/evm:openzeppelin-contracts/contracts/=lib/native-token-transfers/evm/lib/openzeppelin-contracts/contracts/",
    "lib/euler-earn:@openzeppelin/=lib/euler-earn/lib/openzeppelin-contracts/",
    "lib/euler-earn:@openzeppelin-upgradeable/=lib/euler-earn/lib/openzeppelin-contracts-upgradeable/contracts/",
    "lib/euler-earn:ethereum-vault-connector/=lib/euler-earn/lib/ethereum-vault-connector/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "ethereum-vault-connector/=lib/ethereum-vault-connector/src/",
    "evc/=lib/ethereum-vault-connector/src/",
    "evk/=lib/euler-vault-kit/src/",
    "evk-test/=lib/euler-vault-kit/test/",
    "euler-price-oracle/=lib/euler-price-oracle/src/",
    "euler-price-oracle-test/=lib/euler-price-oracle/test/",
    "fee-flow/=lib/fee-flow/src/",
    "reward-streams/=lib/reward-streams/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "euler-earn/=lib/euler-earn/src/",
    "native-token-transfers/=lib/native-token-transfers/evm/src/",
    "@openzeppelin-upgradeable/=lib/euler-earn/lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@pendle/core-v2/=lib/euler-price-oracle/lib/pendle-core-v2-public/contracts/",
    "@pyth/=lib/euler-price-oracle/lib/pyth-sdk-solidity/",
    "@redstone/evm-connector/=lib/euler-price-oracle/lib/redstone-oracles-monorepo/packages/evm-connector/contracts/",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"vaultFactory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"perspective","type":"address"},{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"codes","type":"uint256"}],"name":"PerspectiveError","type":"error"},{"inputs":[],"name":"PerspectivePanic","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"vault","type":"address"}],"name":"PerspectiveVerified","type":"event"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"name":"isVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"bool","name":"failEarly","type":"bool"}],"name":"perspectiveVerify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vaultFactory","outputs":[{"internalType":"contract GenericFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verifiedArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"verifiedLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

    60a060405234801561000f575f80fd5b50604051610a4e380380610a4e83398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b6080516109ae6100a05f395f81816101230152818161016d0152818161037e01528181610463015261054e01526109ae5ff3fe608060405234801561000f575f80fd5b506004361061006f575f3560e01c80638d5e21d31161004d5780638d5e21d3146100e6578063b9209e33146100fb578063d8a06f731461011e575f80fd5b806306fdde0314610073578063138721d9146100bb5780632e5896e5146100d1575b5f80fd5b604080518082018252601e81527f45756c6572204561726e20466163746f72792050657273706563746976650000602082015290516100b291906106e8565b60405180910390f35b6100c361016a565b6040519081526020016100b2565b6100e46100df366004610780565b6101fd565b005b6100ee610327565b6040516100b291906107b7565b61010e610109366004610810565b61041c565b60405190151581526020016100b2565b6101457f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b2565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e02cb6df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f8919061082b565b905090565b5f8281526002602052604090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815c0161023457005b61023e5f846104d4565b1561024857505050565b6004805c9060055c9085905d8360055d6001835d61026585610505565b5f8260045d8160055d5060035c80156102d4576040517f818fa2cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152604481018290526064015b60405180910390fd5b6102de5f876105c3565b5060405173ffffffffffffffffffffffffffffffffffffffff8716907f570e1c1f1f2e6e95bfd6d0cae607f36c3cd5ebb7bc35c2f87299924b1bcd3920905f90a2505050505050565b6040517f2082bd630000000000000000000000000000000000000000000000000000000081525f60048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201526060907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632082bd63906044015f60405180830381865afa1580156103d7573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101f8919081019061087f565b6040517f6ee0787a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301525f917f000000000000000000000000000000000000000000000000000000000000000090911690636ee0787a90602401602060405180830381865afa1580156104aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ce919061095d565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260018301602052604081205415155b9392505050565b6040517f6ee0787a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526105c0917f000000000000000000000000000000000000000000000000000000000000000090911690636ee0787a90602401602060405180830381865afa158015610595573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b9919061095d565b60016105e4565b50565b5f6104fe8373ffffffffffffffffffffffffffffffffffffffff841661069c565b81156105ee575050565b805f03610627576040517fcb365b8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055c801561068d576040517f818fa2cf000000000000000000000000000000000000000000000000000000008152306004808301919091525c73ffffffffffffffffffffffffffffffffffffffff8116602483015260448201849052906064016102cb565b60035c82811760035d50505050565b5f8181526001830160205260408120546106e157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556104ce565b505f6104ce565b5f602080835283518060208501525f5b81811015610714578581018301518582016040015282016106f8565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146105c0575f80fd5b80151581146105c0575f80fd5b5f8060408385031215610791575f80fd5b823561079c81610752565b915060208301356107ac81610773565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b8181101561080457835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016107d2565b50909695505050505050565b5f60208284031215610820575f80fd5b81356104fe81610752565b5f6020828403121561083b575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161087a81610752565b919050565b5f6020808385031215610890575f80fd5b825167ffffffffffffffff808211156108a7575f80fd5b818501915085601f8301126108ba575f80fd5b8151818111156108cc576108cc610842565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561090f5761090f610842565b60405291825284820192508381018501918883111561092c575f80fd5b938501935b82851015610951576109428561086f565b84529385019392850192610931565b98975050505050505050565b5f6020828403121561096d575f80fd5b81516104fe8161077356fea2646970667358221220c15f4bd1bb59b09bcbafd244948a23bf4df6167ed5ae3cce9431c0b1701d567464736f6c63430008180033000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add

    Deployed Bytecode

    0x608060405234801561000f575f80fd5b506004361061006f575f3560e01c80638d5e21d31161004d5780638d5e21d3146100e6578063b9209e33146100fb578063d8a06f731461011e575f80fd5b806306fdde0314610073578063138721d9146100bb5780632e5896e5146100d1575b5f80fd5b604080518082018252601e81527f45756c6572204561726e20466163746f72792050657273706563746976650000602082015290516100b291906106e8565b60405180910390f35b6100c361016a565b6040519081526020016100b2565b6100e46100df366004610780565b6101fd565b005b6100ee610327565b6040516100b291906107b7565b61010e610109366004610810565b61041c565b60405190151581526020016100b2565b6101457f000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b2565b5f7f000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add73ffffffffffffffffffffffffffffffffffffffff1663e02cb6df6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f8919061082b565b905090565b5f8281526002602052604090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815c0161023457005b61023e5f846104d4565b1561024857505050565b6004805c9060055c9085905d8360055d6001835d61026585610505565b5f8260045d8160055d5060035c80156102d4576040517f818fa2cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152604481018290526064015b60405180910390fd5b6102de5f876105c3565b5060405173ffffffffffffffffffffffffffffffffffffffff8716907f570e1c1f1f2e6e95bfd6d0cae607f36c3cd5ebb7bc35c2f87299924b1bcd3920905f90a2505050505050565b6040517f2082bd630000000000000000000000000000000000000000000000000000000081525f60048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201526060907f000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add73ffffffffffffffffffffffffffffffffffffffff1690632082bd63906044015f60405180830381865afa1580156103d7573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526101f8919081019061087f565b6040517f6ee0787a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301525f917f000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add90911690636ee0787a90602401602060405180830381865afa1580156104aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ce919061095d565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260018301602052604081205415155b9392505050565b6040517f6ee0787a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526105c0917f000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add90911690636ee0787a90602401602060405180830381865afa158015610595573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b9919061095d565b60016105e4565b50565b5f6104fe8373ffffffffffffffffffffffffffffffffffffffff841661069c565b81156105ee575050565b805f03610627576040517fcb365b8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055c801561068d576040517f818fa2cf000000000000000000000000000000000000000000000000000000008152306004808301919091525c73ffffffffffffffffffffffffffffffffffffffff8116602483015260448201849052906064016102cb565b60035c82811760035d50505050565b5f8181526001830160205260408120546106e157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556104ce565b505f6104ce565b5f602080835283518060208501525f5b81811015610714578581018301518582016040015282016106f8565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff811681146105c0575f80fd5b80151581146105c0575f80fd5b5f8060408385031215610791575f80fd5b823561079c81610752565b915060208301356107ac81610773565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b8181101561080457835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016107d2565b50909695505050505050565b5f60208284031215610820575f80fd5b81356104fe81610752565b5f6020828403121561083b575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b805161087a81610752565b919050565b5f6020808385031215610890575f80fd5b825167ffffffffffffffff808211156108a7575f80fd5b818501915085601f8301126108ba575f80fd5b8151818111156108cc576108cc610842565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110858211171561090f5761090f610842565b60405291825284820192508381018501918883111561092c575f80fd5b938501935b82851015610951576109428561086f565b84529385019392850192610931565b98975050505050505050565b5f6020828403121561096d575f80fd5b81516104fe8161077356fea2646970667358221220c15f4bd1bb59b09bcbafd244948a23bf4df6167ed5ae3cce9431c0b1701d567464736f6c63430008180033

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

    000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add

    -----Decoded View---------------
    Arg [0] : vaultFactory_ (address): 0xc8EB6dD027C4Ab1754245F6FdE91B39090C12aDd

    -----Encoded View---------------
    1 Constructor Arguments found :
    Arg [0] : 000000000000000000000000c8eb6dd027c4ab1754245f6fde91b39090c12add


    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

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

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age 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.