ETH Price: $3,230.00 (+1.47%)
Gas: 3 Gwei

Contract

0xEA1aFf9dbFfD1580F6b81A3ad3589E66652dB7D9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deploy Vault164945482023-01-27 0:22:35546 days ago1674778955IN
Arrakis: Factory
0 ETH0.0136808516.72975375
Deploy Vault161870202022-12-15 2:09:47589 days ago1671070187IN
Arrakis: Factory
0 ETH0.0105581413.18463057
Deploy Vault161782642022-12-13 20:48:59590 days ago1670964539IN
Arrakis: Factory
0 ETH0.0136521115.76549758
Deploy Vault160654292022-11-28 2:15:23606 days ago1669601723IN
Arrakis: Factory
0 ETH0.0081990210.7731432
Deploy Vault160431912022-11-24 23:41:59609 days ago1669333319IN
Arrakis: Factory
0 ETH0.0096528512.6000156
Deploy Vault160431462022-11-24 23:32:47609 days ago1669332767IN
Arrakis: Factory
0 ETH0.0086690411.58925483
Deploy Vault160325102022-11-23 11:50:59610 days ago1669204259IN
Arrakis: Factory
0 ETH0.0119567814.61535774
Deploy Vault159912782022-11-17 17:36:59616 days ago1668706619IN
Arrakis: Factory
0 ETH0.0124723916.56542697
Deploy Vault159709272022-11-14 21:21:11619 days ago1668460871IN
Arrakis: Factory
0 ETH0.0124455616.55869464
Deploy Vault159709202022-11-14 21:19:47619 days ago1668460787IN
Arrakis: Factory
0 ETH0.0136501917.94791785
Deploy Vault159708902022-11-14 21:13:47619 days ago1668460427IN
Arrakis: Factory
0 ETH0.0160284921.13398223
Deploy Vault156472332022-09-30 16:05:47664 days ago1664553947IN
Arrakis: Factory
0 ETH0.0311411641.36014373
Deploy Vault156252052022-09-27 14:11:47667 days ago1664287907IN
Arrakis: Factory
0 ETH0.0161270421.00791963
Deploy Vault154157282022-08-26 13:50:00699 days ago1661521800IN
Arrakis: Factory
0 ETH0.009851812.97111094
Deploy Vault154154872022-08-26 12:58:07699 days ago1661518687IN
Arrakis: Factory
0 ETH0.0076398510.06390638
Deploy Vault154149022022-08-26 10:45:33699 days ago1661510733IN
Arrakis: Factory
0 ETH0.007409469.82245689
Deploy Vault153966952022-08-23 12:57:54702 days ago1661259474IN
Arrakis: Factory
0 ETH0.007050739.26856939
Deploy Vault153662812022-08-18 17:22:18707 days ago1660843338IN
Arrakis: Factory
0 ETH0.0235895828.57981664
Deploy Vault153510422022-08-16 7:33:01709 days ago1660635181IN
Arrakis: Factory
0 ETH0.007086948.65789312
Deploy Vault153500122022-08-16 3:33:56709 days ago1660620836IN
Arrakis: Factory
0 ETH0.0066939913.92314981
Deploy Vault152646532022-08-02 18:20:57723 days ago1659464457IN
Arrakis: Factory
0 ETH0.0114086214.25006335
Deploy Vault150960622022-07-07 14:49:10749 days ago1657205350IN
Arrakis: Factory
0 ETH0.0496679759.92301871
Deploy Vault149918762022-06-19 17:07:11767 days ago1655658431IN
Arrakis: Factory
0 ETH0.0146418419.42930816
Deploy Vault149816332022-06-17 22:34:44769 days ago1655505284IN
Arrakis: Factory
0 ETH0.0243102132.29241044
Deploy Vault149811122022-06-17 20:23:21769 days ago1655497401IN
Arrakis: Factory
0 ETH0.0245193630
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
164945482023-01-27 0:22:35546 days ago1674778955
Arrakis: Factory
 Contract Creation0 ETH
164477842023-01-20 11:41:47552 days ago1674214907
Arrakis: Factory
 Contract Creation0 ETH
161870202022-12-15 2:09:47589 days ago1671070187
Arrakis: Factory
 Contract Creation0 ETH
161782642022-12-13 20:48:59590 days ago1670964539
Arrakis: Factory
 Contract Creation0 ETH
160750312022-11-29 10:24:23604 days ago1669717463
Arrakis: Factory
 Contract Creation0 ETH
160654292022-11-28 2:15:23606 days ago1669601723
Arrakis: Factory
 Contract Creation0 ETH
160431912022-11-24 23:41:59609 days ago1669333319
Arrakis: Factory
 Contract Creation0 ETH
160431462022-11-24 23:32:47609 days ago1669332767
Arrakis: Factory
 Contract Creation0 ETH
160325102022-11-23 11:50:59610 days ago1669204259
Arrakis: Factory
 Contract Creation0 ETH
159912782022-11-17 17:36:59616 days ago1668706619
Arrakis: Factory
 Contract Creation0 ETH
159709272022-11-14 21:21:11619 days ago1668460871
Arrakis: Factory
 Contract Creation0 ETH
159709202022-11-14 21:19:47619 days ago1668460787
Arrakis: Factory
 Contract Creation0 ETH
159708902022-11-14 21:13:47619 days ago1668460427
Arrakis: Factory
 Contract Creation0 ETH
156472332022-09-30 16:05:47664 days ago1664553947
Arrakis: Factory
 Contract Creation0 ETH
156252052022-09-27 14:11:47667 days ago1664287907
Arrakis: Factory
 Contract Creation0 ETH
155169362022-09-11 20:56:48683 days ago1662929808
Arrakis: Factory
 Contract Creation0 ETH
155044032022-09-09 19:11:05685 days ago1662750665
Arrakis: Factory
 Contract Creation0 ETH
154157282022-08-26 13:50:00699 days ago1661521800
Arrakis: Factory
 Contract Creation0 ETH
154154872022-08-26 12:58:07699 days ago1661518687
Arrakis: Factory
 Contract Creation0 ETH
154149022022-08-26 10:45:33699 days ago1661510733
Arrakis: Factory
 Contract Creation0 ETH
153966952022-08-23 12:57:54702 days ago1661259474
Arrakis: Factory
 Contract Creation0 ETH
153669352022-08-18 19:52:15707 days ago1660852335
Arrakis: Factory
 Contract Creation0 ETH
153662812022-08-18 17:22:18707 days ago1660843338
Arrakis: Factory
 Contract Creation0 ETH
153510422022-08-16 7:33:01709 days ago1660635181
Arrakis: Factory
 Contract Creation0 ETH
153500122022-08-16 3:33:56709 days ago1660620836
Arrakis: Factory
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x075D3764...40Fde7051
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
EIP173ProxyWithReceive

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 3 : EIP173ProxyWithReceive.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.4;

import "./EIP173Proxy.sol";

///@notice Proxy implementing EIP173 for ownership management that accept ETH via receive
contract EIP173ProxyWithReceive is EIP173Proxy {
    constructor(
        address implementationAddress,
        address ownerAddress,
        bytes memory data
    ) payable EIP173Proxy(implementationAddress, ownerAddress, data) {}

    receive() external payable override {}
}

File 2 of 3 : EIP173Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.4;

import "./Proxy.sol";

interface ERC165 {
    function supportsInterface(bytes4 id) external view returns (bool);
}

///@notice Proxy implementing EIP173 for ownership management
contract EIP173Proxy is Proxy {
    // ////////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////

    event ProxyAdminTransferred(
        address indexed previousAdmin,
        address indexed newAdmin
    );

    // /////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////////////

    constructor(
        address implementationAddress,
        address adminAddress,
        bytes memory data
    ) payable {
        _setImplementation(implementationAddress, data);
        _setProxyAdmin(adminAddress);
    }

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    function proxyAdmin() external view returns (address) {
        return _proxyAdmin();
    }

    function supportsInterface(bytes4 id) external view returns (bool) {
        if (id == 0x01ffc9a7 || id == 0x7f5828d0) {
            return true;
        }
        if (id == 0xFFFFFFFF) {
            return false;
        }

        ERC165 implementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            implementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // Technically this is not standard compliant as ERC-165 require 30,000 gas which that call cannot ensure
        // because it is itself inside `supportsInterface` that might only get 30,000 gas.
        // In practise this is unlikely to be an issue.
        try implementation.supportsInterface(id) returns (bool support) {
            return support;
        } catch {
            return false;
        }
    }

    function transferProxyAdmin(address newAdmin) external onlyProxyAdmin {
        _setProxyAdmin(newAdmin);
    }

    function upgradeTo(address newImplementation) external onlyProxyAdmin {
        _setImplementation(newImplementation, "");
    }

    function upgradeToAndCall(address newImplementation, bytes calldata data)
        external
        payable
        onlyProxyAdmin
    {
        _setImplementation(newImplementation, data);
    }

    // /////////////////////// MODIFIERS ////////////////////////////////////////////////////////////////////////

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

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

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

    function _setProxyAdmin(address newAdmin) internal {
        address previousAdmin = _proxyAdmin();
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103,
                newAdmin
            )
        }
        emit ProxyAdminTransferred(previousAdmin, newAdmin);
    }
}

File 3 of 3 : Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.4;

// EIP-1967
abstract contract Proxy {
    // /////////////////////// EVENTS ///////////////////////////////////////////////////////////////////////////

    event ProxyImplementationUpdated(
        address indexed previousImplementation,
        address indexed newImplementation
    );

    // ///////////////////// EXTERNAL ///////////////////////////////////////////////////////////////////////////

    // prettier-ignore
    receive() external payable virtual {
        revert("ETHER_REJECTED"); // explicit reject by default
    }

    fallback() external payable {
        _fallback();
    }

    // ///////////////////////// INTERNAL //////////////////////////////////////////////////////////////////////

    function _fallback() internal {
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            let implementationAddress := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                implementationAddress,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
                case 0 {
                    revert(0, retSz)
                }
                default {
                    return(0, retSz)
                }
        }
    }

    function _setImplementation(address newImplementation, bytes memory data)
        internal
    {
        address previousImplementation;
        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            previousImplementation := sload(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
            )
        }

        // solhint-disable-next-line security/no-inline-assembly
        assembly {
            sstore(
                0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc,
                newImplementation
            )
        }

        emit ProxyImplementationUpdated(
            previousImplementation,
            newImplementation
        );

        if (data.length > 0) {
            (bool success, ) = newImplementation.delegatecall(data);
            if (!success) {
                assembly {
                    // This assembly ensure the revert contains the exact string data
                    let returnDataSize := returndatasize()
                    returndatacopy(0, 0, returnDataSize)
                    revert(0, returnDataSize)
                }
            }
        }
    }
}

Settings
{
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 1
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"ProxyAdminTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ProxyImplementationUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"proxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferProxyAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061004e5760003560e01c806301ffc9a71461005f5780633659cfe6146100945780633e47158c146100b45780634f1ef286146100e15780638356ca4f146100f457610055565b3661005557005b61005d610114565b005b34801561006b57600080fd5b5061007f61007a366004610576565b61014d565b60405190151581526020015b60405180910390f35b3480156100a057600080fd5b5061005d6100af3660046104bf565b610242565b3480156100c057600080fd5b506100c961029f565b6040516001600160a01b03909116815260200161008b565b61005d6100ef3660046104d9565b6102ae565b34801561010057600080fd5b5061005d61010f3660046104bf565b61032b565b6000805160206106208339815191525460003681823780813683855af491503d8082833e828015610143578183f35b8183fd5b50505050565b60006301ffc9a760e01b6001600160e01b03198316148061017e57506307f5828d60e41b6001600160e01b03198316145b1561018b57506001919050565b6001600160e01b031980831614156101a557506000919050565b600080516020610620833981519152546040516301ffc9a760e01b81526001600160e01b0319841660048201526001600160a01b038216906301ffc9a79060240160206040518083038186803b1580156101fe57600080fd5b505afa92505050801561022e575060408051601f3d908101601f1916820190925261022b91810190610556565b60015b61023b5750600092915050565b9392505050565b61024a61036c565b6001600160a01b0316336001600160a01b0316146102835760405162461bcd60e51b815260040161027a906105d7565b60405180910390fd5b61029c816040518060200160405280600081525061037f565b50565b60006102a961036c565b905090565b6102b661036c565b6001600160a01b0316336001600160a01b0316146102e65760405162461bcd60e51b815260040161027a906105d7565b6103268383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061037f92505050565b505050565b61033361036c565b6001600160a01b0316336001600160a01b0316146103635760405162461bcd60e51b815260040161027a906105d7565b61029c81610442565b6000805160206106008339815191525490565b6000805160206106208339815191528054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a3815115610326576000836001600160a01b0316836040516103ee919061059e565b600060405180830381855af49150503d8060008114610429576040519150601f19603f3d011682016040523d82523d6000602084013e61042e565b606091505b5050905080610147573d806000803e806000fd5b600061044c61036c565b90508160008051602061060083398151915255816001600160a01b0316816001600160a01b03167fdf435d422321da6b195902d70fc417c06a32f88379c20dd8f2a8da07088cec2960405160405180910390a35050565b80356001600160a01b03811681146104ba57600080fd5b919050565b6000602082840312156104d0578081fd5b61023b826104a3565b6000806000604084860312156104ed578182fd5b6104f6846104a3565b925060208401356001600160401b0380821115610511578384fd5b818601915086601f830112610524578384fd5b813581811115610532578485fd5b876020828501011115610543578485fd5b6020830194508093505050509250925092565b600060208284031215610567578081fd5b8151801515811461023b578182fd5b600060208284031215610587578081fd5b81356001600160e01b03198116811461023b578182fd5b60008251815b818110156105be57602081860181015185830152016105a4565b818111156105cc5782828501525b509190910192915050565b6020808252600e908201526d1393d517d055551213d49256915160921b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b98e06a95fa86acb89692e6d911ca1aec63357dba2aa77647751548c0ff4a4b764736f6c63430008040033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.