ETH Price: $2,487.90 (-0.77%)

Contract

0x398d7f18c8D4FCdbA2B89cC2b57615Fd95dc5DFe
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exec Transaction183884982023-10-20 2:16:59379 days ago1697768219IN
0x398d7f18...d95dc5DFe
0 ETH0.000554988.95923439
Exec Transaction183884792023-10-20 2:13:11379 days ago1697767991IN
0x398d7f18...d95dc5DFe
0 ETH0.00191319.74713808
Transfer183394912023-10-13 5:49:11386 days ago1697176151IN
0x398d7f18...d95dc5DFe
0 ETH0.000146325.35415824
Transfer183390742023-10-13 4:25:11386 days ago1697171111IN
0x398d7f18...d95dc5DFe
0 ETH0.000141525.17871506
Transfer180763942023-09-06 9:03:11423 days ago1693990991IN
0x398d7f18...d95dc5DFe
0.04931021 ETH0.000305111.1641837
Transfer178469082023-08-05 6:13:35455 days ago1691216015IN
0x398d7f18...d95dc5DFe
0.01800566 ETH0.0003606713.19765307
Transfer174171522023-06-05 22:04:59515 days ago1686002699IN
0x398d7f18...d95dc5DFe
0.85479958 ETH0.0009367434.2766413
Transfer171694622023-05-02 0:13:35550 days ago1682986415IN
0x398d7f18...d95dc5DFe
0.39592061 ETH0.0017479663.95993591
Transfer166966962023-02-24 7:22:59617 days ago1677223379IN
0x398d7f18...d95dc5DFe
0.04156032 ETH0.0006953425.44342689
Transfer161409522022-12-08 15:42:11695 days ago1670514131IN
0x398d7f18...d95dc5DFe
0.02861865 ETH0.0004133515.12506949
Transfer160034472022-11-19 10:24:59714 days ago1668853499IN
0x398d7f18...d95dc5DFe
0.01464263 ETH0.0003427612.54214699
Exec Transaction155025512022-09-09 11:39:18785 days ago1662723558IN
0x398d7f18...d95dc5DFe
0 ETH0.000971112.29276184
Transfer155025222022-09-09 11:31:59785 days ago1662723119IN
0x398d7f18...d95dc5DFe
0.11 ETH0.000297210.87501148

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
183884982023-10-20 2:16:59379 days ago1697768219
0x398d7f18...d95dc5DFe
34.6410222 ETH
183387042023-10-13 3:09:35386 days ago1697166575
0x398d7f18...d95dc5DFe
0.00793584 ETH
155025512022-09-09 11:39:18785 days ago1662723558
0x398d7f18...d95dc5DFe
0.01 ETH
155025052022-09-09 11:28:53785 days ago1662722933  Contract Creation0 ETH
Loading...
Loading

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

Contract Name:
GnosisSafeProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-07-09
*/

// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

/// @title IProxy - Helper interface to access masterCopy of the Proxy on-chain
/// @author Richard Meissner - <[email protected]>
interface IProxy {
    function masterCopy() external view returns (address);
}

/// @title GnosisSafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
/// @author Stefan George - <[email protected]>
/// @author Richard Meissner - <[email protected]>
contract GnosisSafeProxy {
    // singleton always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
    // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
    address internal singleton;

    /// @dev Constructor function sets address of singleton contract.
    /// @param _singleton Singleton address.
    constructor(address _singleton) {
        require(_singleton != address(0), "Invalid singleton address provided");
        singleton = _singleton;
    }

    /// @dev Fallback function forwards all transactions and returns all received return data.
    fallback() external payable {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            let _singleton := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)
            // 0xa619486e == keccak("masterCopy()"). The value is right padded to 32-bytes with 0s
            if eq(calldataload(0), 0xa619486e00000000000000000000000000000000000000000000000000000000) {
                mstore(0, _singleton)
                return(0, 0x20)
            }
            calldatacopy(0, 0, calldatasize())
            let success := delegatecall(gas(), _singleton, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            if eq(success, 0) {
                revert(0, returndatasize())
            }
            return(0, returndatasize())
        }
    }
}

/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
/// @author Stefan George - <[email protected]>
contract GnosisSafeProxyFactory {
    event ProxyCreation(GnosisSafeProxy proxy, address singleton);

    /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
    /// @param singleton Address of singleton contract.
    /// @param data Payload for message call sent to new proxy contract.
    function createProxy(address singleton, bytes memory data) public returns (GnosisSafeProxy proxy) {
        proxy = new GnosisSafeProxy(singleton);
        if (data.length > 0)
            // solhint-disable-next-line no-inline-assembly
            assembly {
                if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) {
                    revert(0, 0)
                }
            }
        emit ProxyCreation(proxy, singleton);
    }

    /// @dev Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.
    function proxyRuntimeCode() public pure returns (bytes memory) {
        return type(GnosisSafeProxy).runtimeCode;
    }

    /// @dev Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.
    function proxyCreationCode() public pure returns (bytes memory) {
        return type(GnosisSafeProxy).creationCode;
    }

    /// @dev Allows to create new proxy contact using CREATE2 but it doesn't run the initializer.
    ///      This method is only meant as an utility to be called from other methods
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function deployProxyWithNonce(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce
    ) internal returns (GnosisSafeProxy proxy) {
        // If the initializer changes the proxy address should change too. Hashing the initializer data is cheaper than just concatinating it
        bytes32 salt = keccak256(abi.encodePacked(keccak256(initializer), saltNonce));
        bytes memory deploymentData = abi.encodePacked(type(GnosisSafeProxy).creationCode, uint256(uint160(_singleton)));
        // solhint-disable-next-line no-inline-assembly
        assembly {
            proxy := create2(0x0, add(0x20, deploymentData), mload(deploymentData), salt)
        }
        require(address(proxy) != address(0), "Create2 call failed");
    }

    /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function createProxyWithNonce(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce
    ) public returns (GnosisSafeProxy proxy) {
        proxy = deployProxyWithNonce(_singleton, initializer, saltNonce);
        if (initializer.length > 0)
            // solhint-disable-next-line no-inline-assembly
            assembly {
                if eq(call(gas(), proxy, 0, add(initializer, 0x20), mload(initializer), 0, 0), 0) {
                    revert(0, 0)
                }
            }
        emit ProxyCreation(proxy, _singleton);
    }

    /// @dev Allows to create new proxy contact, execute a message call to the new proxy and call a specified callback within one transaction
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    /// @param callback Callback that will be invoced after the new proxy contract has been successfully deployed and initialized.
    function createProxyWithCallback(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce,
        IProxyCreationCallback callback
    ) public returns (GnosisSafeProxy proxy) {
        uint256 saltNonceWithCallback = uint256(keccak256(abi.encodePacked(saltNonce, callback)));
        proxy = createProxyWithNonce(_singleton, initializer, saltNonceWithCallback);
        if (address(callback) != address(0)) callback.proxyCreated(proxy, _singleton, initializer, saltNonce);
    }

    /// @dev Allows to get the address for a new proxy contact created via `createProxyWithNonce`
    ///      This method is only meant for address calculation purpose when you use an initializer that would revert,
    ///      therefore the response is returned with a revert. When calling this method set `from` to the address of the proxy factory.
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function calculateCreateProxyWithNonceAddress(
        address _singleton,
        bytes calldata initializer,
        uint256 saltNonce
    ) external returns (GnosisSafeProxy proxy) {
        proxy = deployProxyWithNonce(_singleton, initializer, saltNonce);
        revert(string(abi.encodePacked(proxy)));
    }
}

interface IProxyCreationCallback {
    function proxyCreated(
        GnosisSafeProxy proxy,
        address _singleton,
        bytes calldata initializer,
        uint256 saltNonce
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_singleton","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

Deployed Bytecode

0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033

Deployed Bytecode Sourcemap

524:1528:0:-:0;;;1376:42;1372:1;1366:8;1362:57;1556:66;1552:1;1539:15;1536:87;1533:2;;;1653:10;1650:1;1643:21;1692:4;1689:1;1682:15;1533:2;1745:14;1742:1;1739;1726:34;1843:1;1840;1824:14;1821:1;1809:10;1802:5;1789:56;1880:16;1877:1;1874;1859:38;1926:1;1917:7;1914:14;1911:2;;;1958:16;1955:1;1948:27;1911:2;2014:16;2011:1;2004:27

Swarm Source

ipfs://d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b9552

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Latest 25 from a total of 35 withdrawals (33.13816452 ETH withdrawn)

Validator Index Block Amount
471134183791282023-10-18 18:49:23380 days ago169765496332.003832254 ETH
471134183268472023-10-11 11:16:59388 days ago16970230190.01654484 ETH
471134182754102023-10-04 6:36:35395 days ago16964013950.016446727 ETH
471134182250262023-09-27 5:30:23402 days ago16957926230.016325931 ETH
471134181756362023-09-20 7:32:59409 days ago16951951790.016149466 ETH
471134181273512023-09-13 12:21:59416 days ago16946077190.01592941 ETH
471134180800312023-09-06 21:18:35422 days ago16940351150.054820909 ETH
471134180336422023-08-31 9:24:35429 days ago16934738750.015581032 ETH
471134179881792023-08-25 0:36:59435 days ago16929238190.015437028 ETH
471134179435992023-08-18 18:56:35441 days ago16923849950.015305837 ETH
471134178998832023-08-12 16:09:59448 days ago16918565990.015076019 ETH
471134178570192023-08-06 16:10:35454 days ago16913382350.052423884 ETH
471134178149112023-07-31 18:54:23459 days ago16908296630.014844061 ETH
471134177735942023-07-26 0:11:11465 days ago16903302710.014706733 ETH
471134177329762023-07-20 7:45:23471 days ago16898391230.014572152 ETH
471134176931322023-07-14 17:18:47477 days ago16893551270.014472275 ETH
471134176539222023-07-09 4:57:11482 days ago16888786310.014318434 ETH
471134176153722023-07-03 19:00:11487 days ago16884108110.014180176 ETH
471134175775022023-06-28 11:24:47493 days ago16879514870.014072651 ETH
471134175402152023-06-23 5:30:59498 days ago16874982590.014013029 ETH
471134175033482023-06-18 1:18:11503 days ago16870510910.013852313 ETH
471134174670302023-06-12 22:47:59508 days ago16866100790.01369226 ETH
471134174311972023-06-07 21:36:59513 days ago16861738190.047953334 ETH
471134173960002023-06-02 22:27:59518 days ago16857448790.013289415 ETH
471134173617832023-05-29 2:49:23523 days ago16853285630.013047935 ETH
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.