ETH Price: $3,428.42 (-0.21%)

Contract

0xb99aE5769f2b1aeC218dbcecB281A7D752A1920D
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exec Transaction213129732024-12-02 6:15:2318 days ago1733120123IN
0xb99aE576...752A1920D
0 ETH0.000465710
Exec Transaction213086992024-12-01 15:56:4719 days ago1733068607IN
0xb99aE576...752A1920D
0 ETH0.0010347522.19465362
Exec Transaction213086992024-12-01 15:56:4719 days ago1733068607IN
0xb99aE576...752A1920D
0 ETH0.00103522.2
Exec Transaction213086832024-12-01 15:53:2319 days ago1733068403IN
0xb99aE576...752A1920D
0 ETH0.0024118824.98710328
Exec Transaction213084652024-12-01 15:09:4719 days ago1733065787IN
0xb99aE576...752A1920D
0 ETH0.0065330417.1903615
Exec Transaction210648792024-10-28 14:58:4753 days ago1730127527IN
0xb99aE576...752A1920D
0 ETH0.0014353815.4789662
Exec Transaction210647992024-10-28 14:42:4753 days ago1730126567IN
0xb99aE576...752A1920D
0 ETH0.004733312.59974562
Exec Transaction208996472024-10-05 13:30:4776 days ago1728135047IN
0xb99aE576...752A1920D
0 ETH0.00162196.82213754
Exec Transaction208996262024-10-05 13:26:3576 days ago1728134795IN
0xb99aE576...752A1920D
0 ETH0.000498836.15654786
Exec Transaction208995782024-10-05 13:16:5976 days ago1728134219IN
0xb99aE576...752A1920D
0 ETH0.000662987.14863574
Exec Transaction208995582024-10-05 13:12:5976 days ago1728133979IN
0xb99aE576...752A1920D
0 ETH0.002122125.83136726
Exec Transaction208995232024-10-05 13:05:5976 days ago1728133559IN
0xb99aE576...752A1920D
0 ETH0.001656486.2
Exec Transaction203512472024-07-21 0:12:23152 days ago1721520743IN
0xb99aE576...752A1920D
0 ETH0.000245443.00706575
Transfer197412402024-04-26 18:14:23238 days ago1714155263IN
0xb99aE576...752A1920D
32.63730781 ETH0.000256169.37325224
Exec Transaction189075952023-12-31 19:38:47354 days ago1704051527IN
0xb99aE576...752A1920D
0 ETH0.0008548613.52038853
Exec Transaction189075142023-12-31 19:22:23354 days ago1704050543IN
0xb99aE576...752A1920D
0 ETH0.0012491915.55345849
Transfer189074422023-12-31 19:07:59354 days ago1704049679IN
0xb99aE576...752A1920D
0.01 ETH0.0003836514.03839651

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
208995232024-10-05 13:05:5976 days ago1728133559
0xb99aE576...752A1920D
32.8 ETH
200422432024-06-07 20:09:23195 days ago1717790963
0xb99aE576...752A1920D
32 ETH
189075952023-12-31 19:38:47354 days ago1704051527
0xb99aE576...752A1920D
0.002 ETH
189075142023-12-31 19:22:23354 days ago1704050543
0xb99aE576...752A1920D
0.002 ETH
189073792023-12-31 18:55:23355 days ago1704048923  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

 Latest 1 block produced

Block Transaction Difficulty Gas Used Reward
205075472024-08-11 19:45:59130 days ago1723405559600.00 TH3,507,221 (11.69%)
0.005568553058716387 ETH

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Latest 13 from a total of 13 withdrawals (32.259236137 ETH withdrawn)

Validator Index Block Amount
1435070208952712024-10-04 22:52:3576 days ago172808235532.013933996 ETH
1435070208287062024-09-25 16:06:5986 days ago17272804190.019074632 ETH
1435070207622282024-09-16 9:15:4795 days ago17264781470.018923673 ETH
1435070206960182024-09-07 3:25:47104 days ago17256795470.018677545 ETH
1435070206301512024-08-28 22:44:35113 days ago17248850750.00079823 ETH
1435070205644702024-08-19 18:30:11123 days ago17240922110.06459427 ETH
1435070204990052024-08-10 15:08:11132 days ago17233024910.018732197 ETH
1435070204337892024-08-01 12:46:59141 days ago17225164190.018617756 ETH
1435070203692802024-07-23 12:37:47150 days ago17217382670.018200815 ETH
1435070203053752024-07-14 14:35:23159 days ago17209677230.01852246 ETH
1435070202413822024-07-05 16:04:59168 days ago17201954990.018362024 ETH
1435070201778332024-06-26 19:05:11176 days ago17194287110.017098896 ETH
1435070201144772024-06-17 22:26:23185 days ago17186631830.013699643 ETH

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.