ETH Price: $3,341.99 (-1.21%)
 
Transaction Hash
Method
Block
From
To
Exec Transaction216799702025-01-22 12:16:233 days ago1737548183IN
0x8afEd901...96A48E9DB
0 ETH0.001496096.90924318
Exec Transaction215596102025-01-05 16:56:1120 days ago1736096171IN
0x8afEd901...96A48E9DB
0 ETH0.000836389.31005084
Exec Transaction215595812025-01-05 16:50:2320 days ago1736095823IN
0x8afEd901...96A48E9DB
0 ETH0.003465929.12178811
Exec Transaction215397932025-01-02 22:32:1122 days ago1735857131IN
0x8afEd901...96A48E9DB
0 ETH0.001758098.26549934
Exec Transaction215382532025-01-02 17:22:3523 days ago1735838555IN
0x8afEd901...96A48E9DB
0 ETH0.0029812114.01505237
Exec Transaction215381382025-01-02 16:59:2323 days ago1735837163IN
0x8afEd901...96A48E9DB
0 ETH0.0012259313.84764612
Exec Transaction215101832024-12-29 19:21:1126 days ago1735500071IN
0x8afEd901...96A48E9DB
0 ETH0.00034555.56429727
Exec Transaction215101602024-12-29 19:16:3526 days ago1735499795IN
0x8afEd901...96A48E9DB
0 ETH0.001832565.34524194
Exec Transaction215101442024-12-29 19:13:2326 days ago1735499603IN
0x8afEd901...96A48E9DB
0 ETH0.000489875.29826769
Exec Transaction215101332024-12-29 19:11:1126 days ago1735499471IN
0x8afEd901...96A48E9DB
0 ETH0.001118655.1747568
Exec Transaction215101272024-12-29 19:09:5926 days ago1735499399IN
0x8afEd901...96A48E9DB
0 ETH0.000333115.042481
Exec Transaction215033262024-12-28 20:23:4727 days ago1735417427IN
0x8afEd901...96A48E9DB
0 ETH0.000523555.81722264
Exec Transaction215033122024-12-28 20:20:5927 days ago1735417259IN
0x8afEd901...96A48E9DB
0 ETH0.002154235.93680171
Exec Transaction215032312024-12-28 20:04:4727 days ago1735416287IN
0x8afEd901...96A48E9DB
0 ETH0.001323686.22314817
Exec Transaction215032192024-12-28 20:02:2327 days ago1735416143IN
0x8afEd901...96A48E9DB
0 ETH0.000860785.8113512
Exec Transaction215032042024-12-28 19:59:2327 days ago1735415963IN
0x8afEd901...96A48E9DB
0 ETH0.001636525.65395933
Exec Transaction215032012024-12-28 19:58:4727 days ago1735415927IN
0x8afEd901...96A48E9DB
0 ETH0.000345655.89647475
Exec Transaction214929032024-12-27 9:29:2329 days ago1735291763IN
0x8afEd901...96A48E9DB
0 ETH0.000797028.75115355
Exec Transaction214928862024-12-27 9:25:5929 days ago1735291559IN
0x8afEd901...96A48E9DB
0 ETH0.002803929.69597958
Exec Transaction214928762024-12-27 9:23:5929 days ago1735291439IN
0x8afEd901...96A48E9DB
0 ETH0.000859269.54657294
Exec Transaction214886352024-12-26 19:09:3529 days ago1735240175IN
0x8afEd901...96A48E9DB
0 ETH0.000683447.59488177
Exec Transaction214886012024-12-26 19:02:4729 days ago1735239767IN
0x8afEd901...96A48E9DB
0 ETH0.002860687.68525032
Exec Transaction214852302024-12-26 7:45:2330 days ago1735199123IN
0x8afEd901...96A48E9DB
0 ETH0.002031556.87266193
Exec Transaction214852202024-12-26 7:43:2330 days ago1735199003IN
0x8afEd901...96A48E9DB
0 ETH0.001498337.07214952
Exec Transaction214852052024-12-26 7:40:2330 days ago1735198823IN
0x8afEd901...96A48E9DB
0 ETH0.000514896.3954652
View all transactions

Latest 23 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
215101832024-12-29 19:21:1126 days ago1735500071
0x8afEd901...96A48E9DB
100 ETH
215101602024-12-29 19:16:3526 days ago1735499795
0x8afEd901...96A48E9DB
100 ETH
215032192024-12-28 20:02:2327 days ago1735416143
0x8afEd901...96A48E9DB
19.32138294 ETH
215032042024-12-28 19:59:2327 days ago1735415963
0x8afEd901...96A48E9DB
19.32006369 ETH
214929032024-12-27 9:29:2329 days ago1735291763
0x8afEd901...96A48E9DB
300 ETH
214928862024-12-27 9:25:5929 days ago1735291559
0x8afEd901...96A48E9DB
300 ETH
214648792024-12-23 11:26:3533 days ago1734953195
0x8afEd901...96A48E9DB
319.25182528 ETH
213579272024-12-08 12:59:3548 days ago1733662775
0x8afEd901...96A48E9DB
320.77349 ETH
213017602024-11-30 16:43:1156 days ago1732984991
0x8afEd901...96A48E9DB
348.84810762 ETH
209590832024-10-13 20:37:11103 days ago1728851831
0x8afEd901...96A48E9DB
1.02058304 ETH
207355702024-09-12 15:57:47135 days ago1726156667
0x8afEd901...96A48E9DB
0.39801243 ETH
207355702024-09-12 15:57:47135 days ago1726156667
0x8afEd901...96A48E9DB
159.60654078 ETH
207355542024-09-12 15:54:35135 days ago1726156475
0x8afEd901...96A48E9DB
160.2291114 ETH
206866172024-09-05 19:56:11141 days ago1725566171
0x8afEd901...96A48E9DB
8.4912 ETH
204690592024-08-06 10:53:59172 days ago1722941639
0x8afEd901...96A48E9DB
82.81680119 ETH
204420252024-08-02 16:22:47176 days ago1722615767
0x8afEd901...96A48E9DB
249.9 ETH
204419892024-08-02 16:15:35176 days ago1722615335
0x8afEd901...96A48E9DB
0.1 ETH
204419602024-08-02 16:09:47176 days ago1722614987
0x8afEd901...96A48E9DB
250 ETH
200846662024-06-13 18:24:35226 days ago1718303075
0x8afEd901...96A48E9DB
193.49914958 ETH
199510502024-05-26 2:24:47244 days ago1716690287
0x8afEd901...96A48E9DB
49.60754202 ETH
199510362024-05-26 2:21:59244 days ago1716690119
0x8afEd901...96A48E9DB
49.60654202 ETH
179738372023-08-23 0:29:11521 days ago1692750551
0x8afEd901...96A48E9DB
48.93476 ETH
179317902023-08-17 3:14:47527 days ago1692242087  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

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.