ETH Price: $3,667.75 (+0.56%)
 
Transaction Hash
Method
Block
From
To
Exec Transaction211420502024-11-08 9:33:1159 days ago1731058391IN
0x888860CE...c76Bc17E2
0 ETH0.0009116212.30427901
Exec Transaction211405462024-11-08 4:30:4759 days ago1731040247IN
0x888860CE...c76Bc17E2
0 ETH0.000991677.89345795
Exec Transaction192475082024-02-17 12:13:59324 days ago1708172039IN
0x888860CE...c76Bc17E2
0 ETH0.0021129616.38537989
Exec Transaction191329762024-02-01 10:24:47340 days ago1706783087IN
0x888860CE...c76Bc17E2
0 ETH0.0014173219.1600553
Exec Transaction191329692024-02-01 10:23:23340 days ago1706783003IN
0x888860CE...c76Bc17E2
0 ETH0.0014055219
Exec Transaction191326932024-02-01 9:27:35340 days ago1706779655IN
0x888860CE...c76Bc17E2
0 ETH0.0022607319
Exec Transaction191326652024-02-01 9:21:59340 days ago1706779319IN
0x888860CE...c76Bc17E2
0 ETH0.0015536421
Exec Transaction191326582024-02-01 9:20:35340 days ago1706779235IN
0x888860CE...c76Bc17E2
0 ETH0.0027173118.86969187
Exec Transaction191227232024-01-30 23:52:47342 days ago1706658767IN
0x888860CE...c76Bc17E2
0 ETH0.001272417.23779669
Exec Transaction191227192024-01-30 23:51:59342 days ago1706658719IN
0x888860CE...c76Bc17E2
0 ETH0.0013783617
Exec Transaction191227092024-01-30 23:49:59342 days ago1706658599IN
0x888860CE...c76Bc17E2
0 ETH0.0023009319.29832294
Exec Transaction191227002024-01-30 23:48:11342 days ago1706658491IN
0x888860CE...c76Bc17E2
0 ETH0.0025446719.61152536
Exec Transaction191226842024-01-30 23:44:59342 days ago1706658299IN
0x888860CE...c76Bc17E2
0 ETH0.0020023220
Exec Transaction191143492024-01-29 19:44:47343 days ago1706557487IN
0x888860CE...c76Bc17E2
0 ETH0.0012893711
Exec Transaction190589192024-01-22 1:07:59350 days ago1705885679IN
0x888860CE...c76Bc17E2
0 ETH0.000738019.999477
Exec Transaction190550492024-01-21 11:50:35351 days ago1705837835IN
0x888860CE...c76Bc17E2
0 ETH0.0007413510
Exec Transaction190548322024-01-21 11:07:11351 days ago1705835231IN
0x888860CE...c76Bc17E2
0 ETH0.0007418110
Exec Transaction190548092024-01-21 11:02:35351 days ago1705834955IN
0x888860CE...c76Bc17E2
0 ETH0.0057459311.87377456
Exec Transaction189971052024-01-13 9:33:47359 days ago1705138427IN
0x888860CE...c76Bc17E2
0 ETH0.0008396714.67711099
Exec Transaction189690092024-01-09 11:08:35363 days ago1704798515IN
0x888860CE...c76Bc17E2
0 ETH0.001304115.39162029
Exec Transaction189653372024-01-08 22:43:59364 days ago1704753839IN
0x888860CE...c76Bc17E2
0 ETH0.0019195821.15761147
Exec Transaction189653282024-01-08 22:42:11364 days ago1704753731IN
0x888860CE...c76Bc17E2
0 ETH0.0015272317.90535196
Exec Transaction189257572024-01-03 8:50:35369 days ago1704271835IN
0x888860CE...c76Bc17E2
0 ETH0.0035246617
Exec Transaction189063702023-12-31 15:31:59372 days ago1704036719IN
0x888860CE...c76Bc17E2
0 ETH0.0012210520.79983834
Exec Transaction189061222023-12-31 14:41:35372 days ago1704033695IN
0x888860CE...c76Bc17E2
0 ETH0.0014582719.56733377
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
189063702023-12-31 15:31:59372 days ago1704036719
0x888860CE...c76Bc17E2
58.87475366 ETH
188555262023-12-24 12:08:47379 days ago1703419727
0x888860CE...c76Bc17E2
10 ETH
188554682023-12-24 11:56:59379 days ago1703419019
0x888860CE...c76Bc17E2
0.1 ETH
188477362023-12-23 9:51:59380 days ago1703325119
0x888860CE...c76Bc17E2
0.29321753 ETH
187005662023-12-02 18:39:35401 days ago1701542375
0x888860CE...c76Bc17E2
9.28737774 ETH
185769242023-11-15 11:14:35418 days ago1700046875
0x888860CE...c76Bc17E2
9.96914041 ETH
185767492023-11-15 10:38:59418 days ago1700044739
0x888860CE...c76Bc17E2
46.37591773 ETH
185478762023-11-11 9:44:47422 days ago1699695887
0x888860CE...c76Bc17E2
20 ETH
185478112023-11-11 9:31:47422 days ago1699695107
0x888860CE...c76Bc17E2
21.69774928 ETH
183186242023-10-10 7:40:23454 days ago1696923623
0x888860CE...c76Bc17E2
0.00012613 ETH
183186102023-10-10 7:37:35454 days ago1696923455
0x888860CE...c76Bc17E2
26.46553426 ETH
181837632023-09-21 10:50:11473 days ago1695293411
0x888860CE...c76Bc17E2
3.09847387 ETH
180986222023-09-09 11:45:59485 days ago1694259959
0x888860CE...c76Bc17E2
8 ETH
180586022023-09-03 21:19:47491 days ago1693775987
0x888860CE...c76Bc17E2
4 ETH
180583792023-09-03 20:34:23491 days ago1693773263
0x888860CE...c76Bc17E2
3.03485304 ETH
180051442023-08-27 9:35:23498 days ago1693128923
0x888860CE...c76Bc17E2
0.1 ETH
179912792023-08-25 11:01:59500 days ago1692961319
0x888860CE...c76Bc17E2
13 ETH
179912552023-08-25 10:57:11500 days ago1692961031
0x888860CE...c76Bc17E2
13 ETH
179908562023-08-25 9:36:47500 days ago1692956207
0x888860CE...c76Bc17E2
13 ETH
179865352023-08-24 19:06:23501 days ago1692903983
0x888860CE...c76Bc17E2
0.05 ETH
179714282023-08-22 16:25:11503 days ago1692721511
0x888860CE...c76Bc17E2
10.0738146 ETH
179714222023-08-22 16:23:59503 days ago1692721439
0x888860CE...c76Bc17E2
0.5 ETH
179565912023-08-20 14:35:59505 days ago1692542159
0x888860CE...c76Bc17E2
25.32716679 ETH
179519182023-08-19 22:52:47506 days ago1692485567
0x888860CE...c76Bc17E2
6.28161692 ETH
179483432023-08-19 10:51:59506 days ago1692442319
0x888860CE...c76Bc17E2
6.29183534 ETH
View All Internal Transactions
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.