ETH Price: $1,975.43 (+0.67%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exec Transaction209360742024-10-10 15:21:47499 days ago1728573707IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0014278930.55634508
Exec Transaction209360742024-10-10 15:21:47499 days ago1728573707IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.002668927.5912356
Exec Transaction208780132024-10-02 13:08:11507 days ago1727874491IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0017399412.28110246
Exec Transaction208777652024-10-02 12:17:59507 days ago1727871479IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.001096569.41106232
Exec Transaction208630062024-09-30 10:55:23509 days ago1727693723IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.000509918.19980752
Exec Transaction208629812024-09-30 10:50:23509 days ago1727693423IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.00072568.8395929
Exec Transaction208348092024-09-26 12:32:11513 days ago1727353931IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.002059917.37991732
Exec Transaction193632932024-03-04 17:28:47719 days ago1709573327IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.01373239109.20570388
Exec Transaction190406252024-01-19 11:31:47764 days ago1705663907IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0083517723.98659245
Exec Transaction190406092024-01-19 11:28:35764 days ago1705663715IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.001850222.86826535
Exec Transaction190405862024-01-19 11:23:59764 days ago1705663439IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0048191521.75112178
Exec Transaction190405742024-01-19 11:21:35764 days ago1705663295IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0018687120.6715886
Exec Transaction172601792023-05-14 19:31:111014 days ago1684092671IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0155977342.85727598
Exec Transaction168680602023-03-20 9:41:591069 days ago1679305319IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.001501615
Exec Transaction154466512022-08-31 12:29:071270 days ago1661948947IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0052762919.87838438
Exec Transaction154334442022-08-29 9:56:171272 days ago1661766977IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0115770830.16177624
Exec Transaction154332812022-08-29 9:12:551272 days ago1661764375IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.000229754.20489263
Exec Transaction153705722022-08-19 9:46:421282 days ago1660902402IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0006556912.00044463
Exec Transaction153705232022-08-19 9:33:161282 days ago1660901596IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.017305939.78941499
Exec Transaction153705102022-08-19 9:30:061282 days ago1660901406IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.000476238.71985531
Exec Transaction153702552022-08-19 8:28:061282 days ago1660897686IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0141530216.22085573
Exec Transaction153701172022-08-19 7:53:531283 days ago1660895633IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.001633417.65522944
Exec Transaction153701142022-08-19 7:53:251283 days ago1660895605IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0115924321.43527823
Exec Transaction153701042022-08-19 7:49:521283 days ago1660895392IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0101109319.7161963
Exec Transaction153454232022-08-15 10:07:041286 days ago1660558024IN
Smart Account by Safe 0xC0CaC952...4463a7e16
0 ETH0.0054386111.00651625
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-138292532021-12-18 12:58:121526 days ago1639832292
Smart Account by Safe 0xC0CaC952...4463a7e16
0.001 ETH
-138291872021-12-18 12:42:411526 days ago1639831361  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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

Contract Source Code (Solidity)

/**
 *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 - <richard@gnosis.io>
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 - <stefan@gnosis.io>
/// @author Richard Meissner - <richard@gnosis.io>
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 - <stefan@gnosis.pm>
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

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

0x608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564000000000000000000000000d9db270c1b5e3bd161e8c8503c55ceabee709552

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 Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0xC0CaC952443CD6dbA8018e51e867e584463a7e16
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.