ETH Price: $2,228.46 (-2.87%)

Contract

0x31be87E1350306712F9A2Af75FC12bd42ff37266
 
Transaction Hash
Method
Block
From
To
Exec Transaction218618222025-02-16 22:04:5911 days ago1739743499IN
0x31be87E1...42ff37266
0 ETH0.000059160.77973645
Exec Transaction218593882025-02-16 13:54:3512 days ago1739714075IN
0x31be87E1...42ff37266
0 ETH0.000084070.82946073
Exec Transaction218593832025-02-16 13:53:3512 days ago1739714015IN
0x31be87E1...42ff37266
0 ETH0.000087150.89938576
Exec Transaction218546312025-02-15 21:53:4712 days ago1739656427IN
0x31be87E1...42ff37266
0 ETH0.000135541.20935022
Exec Transaction218546272025-02-15 21:52:5912 days ago1739656379IN
0x31be87E1...42ff37266
0 ETH0.000091140.81336079
Exec Transaction218546162025-02-15 21:50:4712 days ago1739656247IN
0x31be87E1...42ff37266
0 ETH0.000087140.77774384
Exec Transaction218546102025-02-15 21:49:2312 days ago1739656163IN
0x31be87E1...42ff37266
0 ETH0.000053870.76712708
Exec Transaction218545572025-02-15 21:38:4712 days ago1739655527IN
0x31be87E1...42ff37266
0 ETH0.000049990.76523058
Exec Transaction215679022025-01-06 20:47:1152 days ago1736196431IN
0x31be87E1...42ff37266
0 ETH0.0016949924.11707438
Exec Transaction214770842024-12-25 4:24:5965 days ago1735100699IN
0x31be87E1...42ff37266
0 ETH0.000699915.16778335
Exec Transaction214750592024-12-24 21:37:4765 days ago1735076267IN
0x31be87E1...42ff37266
0 ETH0.000898684.30787795
Exec Transaction214738002024-12-24 17:24:5965 days ago1735061099IN
0x31be87E1...42ff37266
0 ETH0.000699127.62190912
Exec Transaction206352072024-08-29 15:42:59183 days ago1724946179IN
0x31be87E1...42ff37266
0 ETH0.000705415.33252837
Exec Transaction204408982024-08-02 12:35:59210 days ago1722602159IN
0x31be87E1...42ff37266
0 ETH0.000926177
Exec Transaction204408722024-08-02 12:30:47210 days ago1722601847IN
0x31be87E1...42ff37266
0 ETH0.000454926.96510656
Exec Transaction204408032024-08-02 12:16:47210 days ago1722601007IN
0x31be87E1...42ff37266
0 ETH0.00078915.96348515
Exec Transaction204407782024-08-02 12:11:47210 days ago1722600707IN
0x31be87E1...42ff37266
0 ETH0.000371542.89128652
Exec Transaction204407582024-08-02 12:07:47210 days ago1722600467IN
0x31be87E1...42ff37266
0 ETH0.000379322.95211991
Exec Transaction203769062024-07-24 14:09:47219 days ago1721830187IN
0x31be87E1...42ff37266
0 ETH0.00147311.46162223
Exec Transaction203768352024-07-24 13:55:35219 days ago1721829335IN
0x31be87E1...42ff37266
0 ETH0.0013534410.22845519
Exec Transaction203767902024-07-24 13:46:35219 days ago1721828795IN
0x31be87E1...42ff37266
0 ETH0.0018506213.42084477
Exec Transaction203767722024-07-24 13:42:59219 days ago1721828579IN
0x31be87E1...42ff37266
0 ETH0.0018686711.79079802
Exec Transaction203767092024-07-24 13:30:11219 days ago1721827811IN
0x31be87E1...42ff37266
0 ETH0.001122598.67196146
Exec Transaction203766252024-07-24 13:13:23219 days ago1721826803IN
0x31be87E1...42ff37266
0 ETH0.000377536.13552145
Exec Transaction203662902024-07-23 2:36:59220 days ago1721702219IN
0x31be87E1...42ff37266
0 ETH0.000194982.98471726
View all transactions

Latest 23 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
218546102025-02-15 21:49:2312 days ago1739656163
0x31be87E1...42ff37266
0.37 ETH
215679022025-01-06 20:47:1152 days ago1736196431
0x31be87E1...42ff37266
0.2 ETH
214892592024-12-26 21:15:1163 days ago1735247711
0x31be87E1...42ff37266
0.06 ETH
214892592024-12-26 21:15:1163 days ago1735247711
0x31be87E1...42ff37266
0.1 ETH
206352072024-08-29 15:42:59183 days ago1724946179
0x31be87E1...42ff37266
2 ETH
204408982024-08-02 12:35:59210 days ago1722602159
0x31be87E1...42ff37266
1 ETH
204408032024-08-02 12:16:47210 days ago1722601007
0x31be87E1...42ff37266
0.635 ETH
204407782024-08-02 12:11:47210 days ago1722600707
0x31be87E1...42ff37266
0.414 ETH
204407582024-08-02 12:07:47210 days ago1722600467
0x31be87E1...42ff37266
0.192 ETH
203769062024-07-24 14:09:47219 days ago1721830187
0x31be87E1...42ff37266
0.725 ETH
203768352024-07-24 13:55:35219 days ago1721829335
0x31be87E1...42ff37266
0.725 ETH
203767902024-07-24 13:46:35219 days ago1721828795
0x31be87E1...42ff37266
0.725 ETH
203767722024-07-24 13:42:59219 days ago1721828579
0x31be87E1...42ff37266
0.725 ETH
200704592024-06-11 18:44:35261 days ago1718131475
0x31be87E1...42ff37266
8.07381166 ETH
199731152024-05-29 4:24:35275 days ago1716956675
0x31be87E1...42ff37266
0.01 ETH
199731152024-05-29 4:24:35275 days ago1716956675
0x31be87E1...42ff37266
0.01 ETH
199731152024-05-29 4:24:35275 days ago1716956675
0x31be87E1...42ff37266
0.01 ETH
199731042024-05-29 4:22:23275 days ago1716956543
0x31be87E1...42ff37266
0.01 ETH
199729282024-05-29 3:46:59275 days ago1716954419
0x31be87E1...42ff37266
0.01 ETH
196465612024-04-13 12:10:23321 days ago1713010223
0x31be87E1...42ff37266
0.7 ETH
196464822024-04-13 11:54:35321 days ago1713009275
0x31be87E1...42ff37266
0.30501236 ETH
190646212024-01-22 20:26:23402 days ago1705955183
0x31be87E1...42ff37266
0.005 ETH
190441532024-01-19 23:20:35405 days ago1705706435  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

API
[{"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.