ETH Price: $3,284.85 (-5.40%)
Gas: 10 Gwei

Token

Instadapp ETH v2 (iETHv2)
 

Overview

Max Total Supply

30,631.371399366289168436 iETHv2

Holders

977 ( 0.102%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Instadapp is an open source and non-custodial middleware platform for decentralized finance applications.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vault

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : events.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Events {
    event LogSetAdmin(address oldAdmin_, address newAdmin_);

    event LogSetDummyImplementation(
        address oldDummyImplementation_,
        address newDummyImplementation_
    );

    event LogSetImplementation(address implementation_, bytes4[] sigs_);

    event LogRemoveImplementation(address implementation_);
}

File 2 of 3 : proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

import { Events } from "./events.sol";

contract CoreInternals is Events {
    struct AddressSlot {
        address value;
    }

    struct SigsSlot {
        bytes4[] value;
    }

    /// @dev Storage slot with the admin of the contract.
    /// This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
    /// validated in the constructor.
    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /// @dev Storage slot with the address of the current dummy-implementation.
    /// This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
    /// validated in the constructor.
    bytes32 internal constant _DUMMY_IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /// @dev Returns the storage slot which stores the sigs array set for the implementation.
    function getSlotImplSigsSlotInternal(address implementation_) internal pure returns (bytes32) {
        return keccak256(abi.encode("eip1967.proxy.implementation", implementation_));
    }

    /// @dev Returns the storage slot which stores the implementation address for the function sig.
    function getSlotSigsImplSlotInternal(bytes4 sig_) internal pure returns (bytes32) {
        return keccak256(abi.encode("eip1967.proxy.implementation", sig_));
    }

    /// @dev Returns an `AddressSlot` with member `value` located at `slot`.
    function getAddressSlotInternal(bytes32 slot_) internal pure returns (AddressSlot storage _r) {
        assembly {
            _r.slot := slot_
        }
    }

    /// @dev Returns an `SigsSlot` with member `value` located at `slot`.
    function getSigsSlotInternal(bytes32 slot_) internal pure returns (SigsSlot storage _r) {
        assembly {
            _r.slot := slot_
        }
    }

    /// @dev Sets new implementation and adds mapping from implementation to sigs and sig to implementation.
    function setImplementationSigsInternal(address implementation_, bytes4[] memory sigs_) internal {
        require(sigs_.length != 0, "no-sigs");
        bytes32 slot_ = getSlotImplSigsSlotInternal(implementation_);
        bytes4[] memory sigsCheck_ = getSigsSlotInternal(slot_).value;
        require(sigsCheck_.length == 0, "implementation-already-exist");

        for (uint256 i; i < sigs_.length; i++) {
            bytes32 sigSlot_ = getSlotSigsImplSlotInternal(sigs_[i]);
            require(getAddressSlotInternal(sigSlot_).value == address(0), "sig-already-exist");
            getAddressSlotInternal(sigSlot_).value = implementation_;
        }

        getSigsSlotInternal(slot_).value = sigs_;
        emit LogSetImplementation(implementation_, sigs_);
    }

    /// @dev Removes implementation and the mappings corresponding to it.
    function removeImplementationSigsInternal(address implementation_) internal {
        bytes32 slot_ = getSlotImplSigsSlotInternal(implementation_);
        bytes4[] memory sigs_ = getSigsSlotInternal(slot_).value;
        require(sigs_.length != 0, "implementation-not-exist");

        for (uint256 i; i < sigs_.length; i++) {
            bytes32 sigSlot_ = getSlotSigsImplSlotInternal(sigs_[i]);
            delete getAddressSlotInternal(sigSlot_).value;
        }

        delete getSigsSlotInternal(slot_).value;
        emit LogRemoveImplementation(implementation_);
    }

    /// @dev Returns bytes4[] sigs from implementation address. If implemenatation is not registered then returns empty array.
    function getImplementationSigsInternal(address implementation_) internal view returns (bytes4[] memory) {
        bytes32 slot_ = getSlotImplSigsSlotInternal(implementation_);
        return getSigsSlotInternal(slot_).value;
    }

    /// @dev Returns implementation address from bytes4 sig. If sig is not registered then returns address(0).
    function getSigImplementationInternal(bytes4 sig_) internal view returns (address implementation_) {
        bytes32 slot_ = getSlotSigsImplSlotInternal(sig_);
        return getAddressSlotInternal(slot_).value;
    }

    /// @dev Returns the current admin.
    function getAdminInternal() internal view returns (address) {
        return getAddressSlotInternal(_ADMIN_SLOT).value;
    }

    /// @dev Returns the current dummy-implementation.
    function getDummyImplementationInternal() internal view returns (address) {
        return getAddressSlotInternal(_DUMMY_IMPLEMENTATION_SLOT).value;
    }

    /// @dev Stores a new address in the EIP1967 admin slot.
    function setAdminInternal(address newAdmin_) internal {
        address oldAdmin_ = getAdminInternal();
        require(newAdmin_ != address(0), "ERC1967: new admin is the zero address");
        getAddressSlotInternal(_ADMIN_SLOT).value = newAdmin_;
        emit LogSetAdmin(oldAdmin_, newAdmin_);
    }

    /// @dev Stores a new address in the EIP1967 implementation slot.
    function setDummyImplementationInternal(address newDummyImplementation_) internal {
        address oldDummyImplementation_ = getDummyImplementationInternal();
        getAddressSlotInternal(_DUMMY_IMPLEMENTATION_SLOT).value = newDummyImplementation_;
        emit LogSetDummyImplementation(oldDummyImplementation_, newDummyImplementation_);
    }

    /// @dev Delegates the current call to `implementation`.
    /// This function does not return to its internall call site, it will return directly to the external caller.
    function delegateInternal(address implementation_) internal {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation_, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

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

    /// @dev Delegates the current call to the address returned by Implementations registry.
    /// This function does not return to its internall call site, it will return directly to the external caller.
    function fallbackInternal(bytes4 sig_) internal {
        address implementation_ = getSigImplementationInternal(sig_);
        require(implementation_ != address(0), "Liquidity: Not able to find implementation_");
        delegateInternal(implementation_);
    }
}

contract AdminInternals is CoreInternals {
    /// @dev Only admin guard
    modifier onlyAdmin() {
        require(msg.sender == getAdminInternal(), "only-admin");
        _;
    }

    constructor(address admin_, address dummyImplementation_) {
        setAdminInternal(admin_);
        setDummyImplementationInternal(dummyImplementation_);
    }

    /// @dev Sets new admin.
    function setAdmin(address newAdmin_) external onlyAdmin {
        setAdminInternal(newAdmin_);
    }

    /// @dev Sets new dummy-implementation.
    function setDummyImplementation(address newDummyImplementation_) external onlyAdmin {
        setDummyImplementationInternal(newDummyImplementation_);
    }

    /// @dev Adds new implementation address.
    function addImplementation(address implementation_, bytes4[] calldata sigs_) external onlyAdmin {
        setImplementationSigsInternal(implementation_, sigs_);
    }

    /// @dev Removes an existing implementation address.
    function removeImplementation(address implementation_) external onlyAdmin {
        removeImplementationSigsInternal(implementation_);
    }
}

/// @title Proxy
/// @notice This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
abstract contract Proxy is AdminInternals {
    constructor(address admin_, address dummyImplementation_) AdminInternals(admin_, dummyImplementation_) {}

    /// @dev Returns admin's address.
    function getAdmin() external view returns (address) {
        return getAdminInternal();
    }

    /// @dev Returns dummy-implementations's address.
    function getDummyImplementation() external view returns (address) {
        return getDummyImplementationInternal();
    }

    /// @dev Returns bytes4[] sigs from implementation address If not registered then returns empty array.
    function getImplementationSigs(address impl_) external view returns (bytes4[] memory) {
        return getImplementationSigsInternal(impl_);
    }

    /// @dev Returns implementation address from bytes4 sig. If sig is not registered then returns address(0).
    function getSigsImplementation(bytes4 sig_) external view returns (address) {
        return getSigImplementationInternal(sig_);
    }

    /// @dev Fallback function that delegates calls to the address returned by Implementations registry.
    fallback() external payable {
        fallbackInternal(msg.sig);
    }

    /// @dev Fallback function that delegates calls to the address returned by Implementations registry.
    receive() external payable {
        if (msg.sig != 0x00000000) {
            fallbackInternal(msg.sig);
        }
    }
}

File 3 of 3 : infiniteProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

import "../../infiniteProxy/proxy.sol";

contract Vault is Proxy {
    constructor(address admin_, address dummyImplementation_)
        Proxy(admin_, dummyImplementation_)
    {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"dummyImplementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"implementation_","type":"address"}],"name":"LogRemoveImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin_","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin_","type":"address"}],"name":"LogSetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldDummyImplementation_","type":"address"},{"indexed":false,"internalType":"address","name":"newDummyImplementation_","type":"address"}],"name":"LogSetDummyImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"implementation_","type":"address"},{"indexed":false,"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"name":"LogSetImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"name":"addImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDummyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"getImplementationSigs","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"sig_","type":"bytes4"}],"name":"getSigsImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"removeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin_","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDummyImplementation_","type":"address"}],"name":"setDummyImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040516200105e3803806200105e833981016040819052620000349162000208565b8181818162000043826200005a565b6200004e816200013e565b50505050505062000240565b600062000066620001b1565b90506001600160a01b038216620000d25760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840160405180910390fd5b816000805160206200101e83398151915280546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073391015b60405180910390a15050565b60006200014a620001d3565b9050816000805160206200103e83398151915280546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d54502910162000132565b60006000805160206200101e8339815191525b546001600160a01b0316919050565b60006000805160206200103e833981519152620001c4565b80516001600160a01b03811681146200020357600080fd5b919050565b600080604083850312156200021c57600080fd5b6200022783620001eb565b91506200023760208401620001eb565b90509250929050565b610dce80620002506000396000f3fe60806040526004361061007f5760003560e01c8063908bfe5e1161004e578063908bfe5e14610161578063a5fcc8bc14610176578063c39aa07d14610196578063f0c01b42146101b6576100ad565b806322175a32146100c25780636e9960c3146100e2578063704b6c021461011457806389396dc814610134576100ad565b366100ad576001600160e01b031960003516156100ab576100ab6000356001600160e01b0319166101d6565b005b6100ab6000356001600160e01b0319166101d6565b3480156100ce57600080fd5b506100ab6100dd366004610b36565b61025f565b3480156100ee57600080fd5b506100f76102a3565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012057600080fd5b506100ab61012f366004610b36565b6102b2565b34801561014057600080fd5b5061015461014f366004610b36565b6102f3565b60405161010b9190610b9d565b34801561016d57600080fd5b506100f7610304565b34801561018257600080fd5b506100f7610191366004610bb0565b61030e565b3480156101a257600080fd5b506100ab6101b1366004610b36565b610319565b3480156101c257600080fd5b506100ab6101d1366004610bda565b61035a565b60006101e1826103d4565b90506001600160a01b0381166102525760405162461bcd60e51b815260206004820152602b60248201527f4c69717569646974793a204e6f742061626c6520746f2066696e6420696d706c60448201526a656d656e746174696f6e5f60a81b60648201526084015b60405180910390fd5b61025b816103f1565b5050565b610267610415565b6001600160a01b0316336001600160a01b0316146102975760405162461bcd60e51b815260040161024990610c60565b6102a081610448565b50565b60006102ad610415565b905090565b6102ba610415565b6001600160a01b0316336001600160a01b0316146102ea5760405162461bcd60e51b815260040161024990610c60565b6102a0816105c2565b60606102fe826106b0565b92915050565b60006102ad610741565b60006102fe826103d4565b610321610415565b6001600160a01b0316336001600160a01b0316146103515760405162461bcd60e51b815260040161024990610c60565b6102a081610769565b610362610415565b6001600160a01b0316336001600160a01b0316146103925760405162461bcd60e51b815260040161024990610c60565b6103cf838383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506107ea92505050565b505050565b6000806103e0836109f1565b546001600160a01b03169392505050565b3660008037600080366000845af43d6000803e808015610410573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b600061045382610a21565b90506000818054604080516020808402820181019092528281529291908301828280156104cc57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161048e5790505b5050505050905080516000036105245760405162461bcd60e51b815260206004820152601860248201527f696d706c656d656e746174696f6e2d6e6f742d657869737400000000000000006044820152606401610249565b60005b815181101561057557600061055483838151811061054757610547610c84565b60200260200101516109f1565b80546001600160a01b0319169055508061056d81610c9a565b915050610527565b50610581826000610a34565b6040516001600160a01b03841681527fda53aaefabec4c3f8ba693a2e3c67fa0152fbd71c369d51f669e66b28a4a08649060200160405180910390a1505050565b60006105cc610415565b90506001600160a01b0382166106335760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610249565b817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073391015b60405180910390a15050565b606060006106bd83610a21565b90508080546040805160208084028201810190925282815292919083018282801561073457602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116106f65790505b5050505050915050919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610439565b6000610773610741565b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d5450291016106a4565b80516000036108255760405162461bcd60e51b81526020600482015260076024820152666e6f2d7369677360c81b6044820152606401610249565b600061083083610a21565b90506000818054604080516020808402820181019092528281529291908301828280156108a957602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161086b5790505b5050505050905080516000146109015760405162461bcd60e51b815260206004820152601c60248201527f696d706c656d656e746174696f6e2d616c72656164792d6578697374000000006044820152606401610249565b60005b835181101561099f57600061092485838151811061054757610547610c84565b9050600081546001600160a01b0316146109745760405162461bcd60e51b81526020600482015260116024820152701cda59cb585b1c9958591e4b595e1a5cdd607a1b6044820152606401610249565b80546001600160a01b0319166001600160a01b0387161790558061099781610c9a565b915050610904565b50828281516109b19260200190610a59565b507fd613a4a18e567ee1f2db4d5b528a5fee09f7dff92d6fb708afd6c095070a9c6d84846040516109e3929190610cc1565b60405180910390a150505050565b600081604051602001610a049190610ced565b604051602081830303815290604052805190602001209050919050565b600081604051602001610a049190610d41565b5080546000825560070160089004906000526020600020908101906102a09190610b05565b82805482825590600052602060002090600701600890048101928215610af55791602002820160005b83821115610ac357835183826101000a81548163ffffffff021916908360e01c02179055509260200192600401602081600301049283019260010302610a82565b8015610af35782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610ac3565b505b50610b01929150610b05565b5090565b5b80821115610b015760008155600101610b06565b80356001600160a01b0381168114610b3157600080fd5b919050565b600060208284031215610b4857600080fd5b610b5182610b1a565b9392505050565b600081518084526020808501945080840160005b83811015610b925781516001600160e01b03191687529582019590820190600101610b6c565b509495945050505050565b602081526000610b516020830184610b58565b600060208284031215610bc257600080fd5b81356001600160e01b031981168114610b5157600080fd5b600080600060408486031215610bef57600080fd5b610bf884610b1a565b9250602084013567ffffffffffffffff80821115610c1557600080fd5b818601915086601f830112610c2957600080fd5b813581811115610c3857600080fd5b8760208260051b8501011115610c4d57600080fd5b6020830194508093505050509250925092565b6020808252600a908201526937b7363c96b0b236b4b760b11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201610cba57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610ce590830184610b58565b949350505050565b604081526000610d2a60408301601c81527f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000602082015260400190565b905063ffffffff60e01b8316602083015292915050565b604081526000610d7e60408301601c81527f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000602082015260400190565b6001600160a01b039390931660209290920191909152509056fea2646970667358221220be0b7f4d221d754e3f0731fbc4893a6a7ef8e39f9355766823eb39dc718ae98764736f6c63430008110033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc000000000000000000000000910e413dbf3f6276fe8213ff656726bdc142e08e000000000000000000000000172455d14d1eb242e6f7f3b451529ab289095bb6

Deployed Bytecode

0x60806040526004361061007f5760003560e01c8063908bfe5e1161004e578063908bfe5e14610161578063a5fcc8bc14610176578063c39aa07d14610196578063f0c01b42146101b6576100ad565b806322175a32146100c25780636e9960c3146100e2578063704b6c021461011457806389396dc814610134576100ad565b366100ad576001600160e01b031960003516156100ab576100ab6000356001600160e01b0319166101d6565b005b6100ab6000356001600160e01b0319166101d6565b3480156100ce57600080fd5b506100ab6100dd366004610b36565b61025f565b3480156100ee57600080fd5b506100f76102a3565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012057600080fd5b506100ab61012f366004610b36565b6102b2565b34801561014057600080fd5b5061015461014f366004610b36565b6102f3565b60405161010b9190610b9d565b34801561016d57600080fd5b506100f7610304565b34801561018257600080fd5b506100f7610191366004610bb0565b61030e565b3480156101a257600080fd5b506100ab6101b1366004610b36565b610319565b3480156101c257600080fd5b506100ab6101d1366004610bda565b61035a565b60006101e1826103d4565b90506001600160a01b0381166102525760405162461bcd60e51b815260206004820152602b60248201527f4c69717569646974793a204e6f742061626c6520746f2066696e6420696d706c60448201526a656d656e746174696f6e5f60a81b60648201526084015b60405180910390fd5b61025b816103f1565b5050565b610267610415565b6001600160a01b0316336001600160a01b0316146102975760405162461bcd60e51b815260040161024990610c60565b6102a081610448565b50565b60006102ad610415565b905090565b6102ba610415565b6001600160a01b0316336001600160a01b0316146102ea5760405162461bcd60e51b815260040161024990610c60565b6102a0816105c2565b60606102fe826106b0565b92915050565b60006102ad610741565b60006102fe826103d4565b610321610415565b6001600160a01b0316336001600160a01b0316146103515760405162461bcd60e51b815260040161024990610c60565b6102a081610769565b610362610415565b6001600160a01b0316336001600160a01b0316146103925760405162461bcd60e51b815260040161024990610c60565b6103cf838383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506107ea92505050565b505050565b6000806103e0836109f1565b546001600160a01b03169392505050565b3660008037600080366000845af43d6000803e808015610410573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b600061045382610a21565b90506000818054604080516020808402820181019092528281529291908301828280156104cc57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161048e5790505b5050505050905080516000036105245760405162461bcd60e51b815260206004820152601860248201527f696d706c656d656e746174696f6e2d6e6f742d657869737400000000000000006044820152606401610249565b60005b815181101561057557600061055483838151811061054757610547610c84565b60200260200101516109f1565b80546001600160a01b0319169055508061056d81610c9a565b915050610527565b50610581826000610a34565b6040516001600160a01b03841681527fda53aaefabec4c3f8ba693a2e3c67fa0152fbd71c369d51f669e66b28a4a08649060200160405180910390a1505050565b60006105cc610415565b90506001600160a01b0382166106335760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b6064820152608401610249565b817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073391015b60405180910390a15050565b606060006106bd83610a21565b90508080546040805160208084028201810190925282815292919083018282801561073457602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116106f65790505b5050505050915050919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610439565b6000610773610741565b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392831617905560408051838316815291841660208301527f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d5450291016106a4565b80516000036108255760405162461bcd60e51b81526020600482015260076024820152666e6f2d7369677360c81b6044820152606401610249565b600061083083610a21565b90506000818054604080516020808402820181019092528281529291908301828280156108a957602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161086b5790505b5050505050905080516000146109015760405162461bcd60e51b815260206004820152601c60248201527f696d706c656d656e746174696f6e2d616c72656164792d6578697374000000006044820152606401610249565b60005b835181101561099f57600061092485838151811061054757610547610c84565b9050600081546001600160a01b0316146109745760405162461bcd60e51b81526020600482015260116024820152701cda59cb585b1c9958591e4b595e1a5cdd607a1b6044820152606401610249565b80546001600160a01b0319166001600160a01b0387161790558061099781610c9a565b915050610904565b50828281516109b19260200190610a59565b507fd613a4a18e567ee1f2db4d5b528a5fee09f7dff92d6fb708afd6c095070a9c6d84846040516109e3929190610cc1565b60405180910390a150505050565b600081604051602001610a049190610ced565b604051602081830303815290604052805190602001209050919050565b600081604051602001610a049190610d41565b5080546000825560070160089004906000526020600020908101906102a09190610b05565b82805482825590600052602060002090600701600890048101928215610af55791602002820160005b83821115610ac357835183826101000a81548163ffffffff021916908360e01c02179055509260200192600401602081600301049283019260010302610a82565b8015610af35782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610ac3565b505b50610b01929150610b05565b5090565b5b80821115610b015760008155600101610b06565b80356001600160a01b0381168114610b3157600080fd5b919050565b600060208284031215610b4857600080fd5b610b5182610b1a565b9392505050565b600081518084526020808501945080840160005b83811015610b925781516001600160e01b03191687529582019590820190600101610b6c565b509495945050505050565b602081526000610b516020830184610b58565b600060208284031215610bc257600080fd5b81356001600160e01b031981168114610b5157600080fd5b600080600060408486031215610bef57600080fd5b610bf884610b1a565b9250602084013567ffffffffffffffff80821115610c1557600080fd5b818601915086601f830112610c2957600080fd5b813581811115610c3857600080fd5b8760208260051b8501011115610c4d57600080fd5b6020830194508093505050509250925092565b6020808252600a908201526937b7363c96b0b236b4b760b11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201610cba57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610ce590830184610b58565b949350505050565b604081526000610d2a60408301601c81527f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000602082015260400190565b905063ffffffff60e01b8316602083015292915050565b604081526000610d7e60408301601c81527f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000602082015260400190565b6001600160a01b039390931660209290920191909152509056fea2646970667358221220be0b7f4d221d754e3f0731fbc4893a6a7ef8e39f9355766823eb39dc718ae98764736f6c63430008110033

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

000000000000000000000000910e413dbf3f6276fe8213ff656726bdc142e08e000000000000000000000000172455d14d1eb242e6f7f3b451529ab289095bb6

-----Decoded View---------------
Arg [0] : admin_ (address): 0x910E413DBF3F6276Fe8213fF656726bDc142E08E
Arg [1] : dummyImplementation_ (address): 0x172455D14D1eb242e6f7F3B451529aB289095BB6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000910e413dbf3f6276fe8213ff656726bdc142e08e
Arg [1] : 000000000000000000000000172455d14d1eb242e6f7f3b451529ab289095bb6


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.