ETH Price: $3,330.37 (-3.96%)

Contract

0x09ABbe423feDEE2332CAEa4117093D7d9B017cF5
 
Transaction Hash
Method
Block
From
To
Exec Transaction208715392024-10-01 15:28:2386 days ago1727796503IN
0x09ABbe42...d9B017cF5
0 ETH0.0040499139.07300045
Exec Transaction203631572024-07-22 16:06:59157 days ago1721664419IN
0x09ABbe42...d9B017cF5
0 ETH0.0009822410.94510289
Exec Transaction203631542024-07-22 16:06:23157 days ago1721664383IN
0x09ABbe42...d9B017cF5
0 ETH0.0009888311.02150806
Exec Transaction200644222024-06-10 22:30:35198 days ago1718058635IN
0x09ABbe42...d9B017cF5
0 ETH0.0012314613.16711017
Exec Transaction200644162024-06-10 22:29:23198 days ago1718058563IN
0x09ABbe42...d9B017cF5
0 ETH0.0013433815
Exec Transaction199779512024-05-29 20:39:59210 days ago1717015199IN
0x09ABbe42...d9B017cF5
0 ETH0.000792098.8444151
Exec Transaction199777892024-05-29 20:07:23210 days ago1717013243IN
0x09ABbe42...d9B017cF5
0 ETH0.0011829312
Exec Transaction199776522024-05-29 19:39:59210 days ago1717011599IN
0x09ABbe42...d9B017cF5
0 ETH0.0009321510.62720377
Exec Transaction197699252024-04-30 18:30:23240 days ago1714501823IN
0x09ABbe42...d9B017cF5
0 ETH0.0037316515.83390387
Transfer197680132024-04-30 12:05:47240 days ago1714478747IN
0x09ABbe42...d9B017cF5
0.05 ETH0.0016082258.84685801
Exec Transaction197328192024-04-25 13:56:23245 days ago1714053383IN
0x09ABbe42...d9B017cF5
0 ETH0.0005620810.62791588
Exec Transaction197328092024-04-25 13:54:23245 days ago1714053263IN
0x09ABbe42...d9B017cF5
0 ETH0.0018680616.55177324
Exec Transaction197327992024-04-25 13:52:23245 days ago1714053143IN
0x09ABbe42...d9B017cF5
0 ETH0.0013817617
Exec Transaction197327872024-04-25 13:49:59245 days ago1714052999IN
0x09ABbe42...d9B017cF5
0 ETH0.0013817617
Exec Transaction197327782024-04-25 13:48:11245 days ago1714052891IN
0x09ABbe42...d9B017cF5
0 ETH0.0009338616.12416645
Exec Transaction167221922023-02-27 21:25:11667 days ago1677533111IN
0x09ABbe42...d9B017cF5
0 ETH0.0017794125.67407225
Exec Transaction167206852023-02-27 16:21:23668 days ago1677514883IN
0x09ABbe42...d9B017cF5
0 ETH0.0041566629.84565744
Exec Transaction164209472023-01-16 17:48:47710 days ago1673891327IN
0x09ABbe42...d9B017cF5
0 ETH0.003914928.40901747
Exec Transaction160338482022-11-23 16:19:47764 days ago1669220387IN
0x09ABbe42...d9B017cF5
0 ETH0.0030116919.85307503
Exec Transaction160338022022-11-23 16:10:35764 days ago1669219835IN
0x09ABbe42...d9B017cF5
0 ETH0.001309915.87667701
Exec Transaction158470042022-10-28 13:57:35790 days ago1666965455IN
0x09ABbe42...d9B017cF5
0 ETH0.0012168214.65936118
Exec Transaction158469842022-10-28 13:53:35790 days ago1666965215IN
0x09ABbe42...d9B017cF5
0 ETH0.0022840614.07451461
Exec Transaction158469742022-10-28 13:51:35790 days ago1666965095IN
0x09ABbe42...d9B017cF5
0 ETH0.002179615.81208133
Exec Transaction158469312022-10-28 13:42:59790 days ago1666964579IN
0x09ABbe42...d9B017cF5
0 ETH0.0015847119.21026015
Exec Transaction156967182022-10-07 14:07:47811 days ago1665151667IN
0x09ABbe42...d9B017cF5
0 ETH0.0018942414
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
197699252024-04-30 18:30:23240 days ago1714501823
0x09ABbe42...d9B017cF5
0.002 ETH
153028262022-08-08 17:15:56871 days ago1659978956  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.