ETH Price: $3,353.93 (-8.30%)
Gas: 4.86 Gwei
 
Transaction Hash
Method
Block
From
To
Exec Transaction205346822024-08-15 14:39:23145 days ago1723732763IN
0xe29B04B9...B279D5DE0
0 ETH0.010356325.58775849
Exec Transaction203839842024-07-25 13:52:47166 days ago1721915567IN
0xe29B04B9...B279D5DE0
0 ETH0.0006800510.00579858
Exec Transaction203839632024-07-25 13:48:35166 days ago1721915315IN
0xe29B04B9...B279D5DE0
0 ETH0.0011306512.58829626
Exec Transaction199763142024-05-29 15:08:59223 days ago1716995339IN
0xe29B04B9...B279D5DE0
0 ETH0.0025029226.43650167
Exec Transaction199762652024-05-29 14:58:59223 days ago1716994739IN
0xe29B04B9...B279D5DE0
0 ETH0.0023587524.92634643
Exec Transaction198480182024-05-11 16:35:47241 days ago1715445347IN
0xe29B04B9...B279D5DE0
0 ETH0.044791874.99551336
0x2749206f197372272024-04-26 4:43:11257 days ago1714106591IN
0xe29B04B9...B279D5DE0
0 ETH0.000197076.04330776
0x49206f66197370532024-04-26 4:07:59257 days ago1714104479IN
0xe29B04B9...B279D5DE0
0 ETH0.000194565.96850329
0x49206f66197370472024-04-26 4:06:47257 days ago1714104407IN
0xe29B04B9...B279D5DE0
0 ETH0.000172025.2768582
0x49206f66197370432024-04-26 4:05:59257 days ago1714104359IN
0xe29B04B9...B279D5DE0
0 ETH0.000185265.68317874
0x49206f66197370212024-04-26 4:01:35257 days ago1714104095IN
0xe29B04B9...B279D5DE0
0 ETH0.000186425.71876122
0x49206f66197370162024-04-26 4:00:35257 days ago1714104035IN
0xe29B04B9...B279D5DE0
0 ETH0.000180625.55183638
0x49206f66197370122024-04-26 3:59:47257 days ago1714103987IN
0xe29B04B9...B279D5DE0
0 ETH0.000186255.72475018
0x2749206f197369832024-04-26 3:53:59257 days ago1714103639IN
0xe29B04B9...B279D5DE0
0 ETH0.000179475.50898784
0x2749206f197369762024-04-26 3:52:35257 days ago1714103555IN
0xe29B04B9...B279D5DE0
0 ETH0.000182535.60578373
0x49206f66197369722024-04-26 3:51:47257 days ago1714103507IN
0xe29B04B9...B279D5DE0
0 ETH0.000195315.99728319
0x49206f66197369592024-04-26 3:49:11257 days ago1714103351IN
0xe29B04B9...B279D5DE0
0.00000001 ETH0.000155845.65995987
Exec Transaction197127642024-04-22 18:35:59260 days ago1713810959IN
0xe29B04B9...B279D5DE0
0 ETH0.0196495516
Exec Transaction196976332024-04-20 15:51:35262 days ago1713628295IN
0xe29B04B9...B279D5DE0
0 ETH0.002679116
Exec Transaction196976102024-04-20 15:46:59262 days ago1713628019IN
0xe29B04B9...B279D5DE0
0 ETH0.0044231814.34549606
Exec Transaction192832782024-02-22 12:54:35320 days ago1708606475IN
0xe29B04B9...B279D5DE0
0 ETH0.0135273334.57732165
Exec Transaction191771332024-02-07 15:13:11335 days ago1707318791IN
0xe29B04B9...B279D5DE0
0 ETH0.0028931439.67836148
Exec Transaction191626082024-02-05 14:16:59337 days ago1707142619IN
0xe29B04B9...B279D5DE0
0 ETH0.003967244.0903161
Transfer190988342024-01-27 15:32:59346 days ago1706369579IN
0xe29B04B9...B279D5DE0
0.01416058 ETH0.0008338130.51015842
Exec Transaction190841302024-01-25 14:09:11348 days ago1706191751IN
0xe29B04B9...B279D5DE0
0 ETH0.004048828
View all transactions

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
132651752021-09-20 21:48:551205 days ago1632174535
0xe29B04B9...B279D5DE0
0.05 ETH
132650422021-09-20 21:21:061205 days ago1632172866
0xe29B04B9...B279D5DE0
0.05 ETH
132649912021-09-20 21:09:451205 days ago1632172185  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.