ETH Price: $3,078.20 (+2.68%)
Gas: 3 Gwei

Contract

0xecf1c70100107017c5dA1ff4bbCC482809e396eE
 
Transaction Hash
Method
Block
From
To
Value
Exec Transaction202390972024-07-05 8:25:234 days ago1720167923IN
0xecf1c701...809e396eE
0 ETH0.0012837315
Exec Transaction202202792024-07-02 17:20:117 days ago1719940811IN
0xecf1c701...809e396eE
0 ETH0.0010838911.92432017
Exec Transaction202147422024-07-01 22:45:237 days ago1719873923IN
0xecf1c701...809e396eE
0 ETH0.000503375.88263283
Exec Transaction201961852024-06-29 8:35:2310 days ago1719650123IN
0xecf1c701...809e396eE
0 ETH0.000479515
Exec Transaction201961722024-06-29 8:32:4710 days ago1719649967IN
0xecf1c701...809e396eE
0 ETH0.000575346
Exec Transaction201960532024-06-29 8:08:4710 days ago1719648527IN
0xecf1c701...809e396eE
0 ETH0.000554164.90451166
Exec Transaction201960432024-06-29 8:06:4710 days ago1719648407IN
0xecf1c701...809e396eE
0 ETH0.004391253.80660765
Exec Transaction201843142024-06-27 16:47:3512 days ago1719506855IN
0xecf1c701...809e396eE
0 ETH0.0019174516.9682026
Exec Transaction201743312024-06-26 7:20:2313 days ago1719386423IN
0xecf1c701...809e396eE
0 ETH0.000473714
Exec Transaction201743232024-06-26 7:18:4713 days ago1719386327IN
0xecf1c701...809e396eE
0 ETH0.000286173.93140689
Exec Transaction201743172024-06-26 7:17:3513 days ago1719386255IN
0xecf1c701...809e396eE
0 ETH0.000235512.4560821
Exec Transaction201743142024-06-26 7:16:5913 days ago1719386219IN
0xecf1c701...809e396eE
0 ETH0.000116522
Exec Transaction201742262024-06-26 6:59:2313 days ago1719385163IN
0xecf1c701...809e396eE
0 ETH0.000564955
Exec Transaction201742212024-06-26 6:58:2313 days ago1719385103IN
0xecf1c701...809e396eE
0 ETH0.000671595.9437693
Exec Transaction201742162024-06-26 6:57:2313 days ago1719385043IN
0xecf1c701...809e396eE
0 ETH0.000583064.99165236
Exec Transaction201741632024-06-26 6:46:3513 days ago1719384395IN
0xecf1c701...809e396eE
0 ETH0.000667846.96458857
Exec Transaction201741582024-06-26 6:45:3513 days ago1719384335IN
0xecf1c701...809e396eE
0 ETH0.000871315
Exec Transaction201741542024-06-26 6:44:4713 days ago1719384287IN
0xecf1c701...809e396eE
0 ETH0.000479455
Exec Transaction201741442024-06-26 6:42:4713 days ago1719384167IN
0xecf1c701...809e396eE
0 ETH0.000447883.9643617
Exec Transaction201360592024-06-20 22:56:4718 days ago1718924207IN
0xecf1c701...809e396eE
0 ETH0.000513496
Transfer201360212024-06-20 22:49:1118 days ago1718923751IN
0xecf1c701...809e396eE
100.595 ETH0.000103983.805061
Exec Transaction201359892024-06-20 22:42:4718 days ago1718923367IN
0xecf1c701...809e396eE
0 ETH0.000676077
Exec Transaction201041702024-06-16 11:51:2323 days ago1718538683IN
0xecf1c701...809e396eE
0 ETH0.00067595.98191533
Exec Transaction200999432024-06-15 21:42:1123 days ago1718487731IN
0xecf1c701...809e396eE
0 ETH0.005867666
Exec Transaction200999272024-06-15 21:38:5923 days ago1718487539IN
0xecf1c701...809e396eE
0 ETH0.000774276.85327804
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
202390972024-07-05 8:25:234 days ago1720167923
0xecf1c701...809e396eE
15 ETH
202147422024-07-01 22:45:237 days ago1719873923
0xecf1c701...809e396eE
5 ETH
201360592024-06-20 22:56:4718 days ago1718924207
0xecf1c701...809e396eE
2 ETH
199055372024-05-19 17:41:5951 days ago1716140519
0xecf1c701...809e396eE
5 ETH
198409952024-05-10 17:01:4760 days ago1715360507
0xecf1c701...809e396eE
42 ETH
198409032024-05-10 16:43:2360 days ago1715359403
0xecf1c701...809e396eE
42 ETH
198218722024-05-08 0:49:4762 days ago1715129387
0xecf1c701...809e396eE
20 ETH
198218332024-05-08 0:41:5962 days ago1715128919
0xecf1c701...809e396eE
20 ETH
198211472024-05-07 22:24:1162 days ago1715120651
0xecf1c701...809e396eE
5 ETH
196406272024-04-12 16:09:3588 days ago1712938175
0xecf1c701...809e396eE
0.5 ETH
196335332024-04-11 16:21:2389 days ago1712852483
0xecf1c701...809e396eE
3 ETH
196297342024-04-11 3:34:1189 days ago1712806451
0xecf1c701...809e396eE
0.5 ETH
195915272024-04-05 19:10:1195 days ago1712344211
0xecf1c701...809e396eE
0.5 ETH
195915192024-04-05 19:08:3595 days ago1712344115
0xecf1c701...809e396eE
5 ETH
168164132023-03-13 3:32:23484 days ago1678678343  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.