ETH Price: $3,967.56 (+1.94%)

Contract

0x22f27E9d976f686a68f45922B377616058c18b82
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exec Transaction153710702022-08-19 11:41:13849 days ago1660909273IN
0x22f27E9d...058c18b82
0 ETH0.0021082525.19488413
Exec Transaction153680522022-08-18 23:57:26850 days ago1660867046IN
0x22f27E9d...058c18b82
0 ETH0.0012945116.21447486
Transfer153648682022-08-18 11:57:40850 days ago1660823860IN
0x22f27E9d...058c18b82
0.269 ETH0.000205117.50549248
Exec Transaction153642972022-08-18 9:47:17850 days ago1660816037IN
0x22f27E9d...058c18b82
0 ETH0.000384025.05010254
Transfer153636352022-08-18 7:12:53850 days ago1660806773IN
0x22f27E9d...058c18b82
0.56784962 ETH0.000228658.36689881
Exec Transaction153052902022-08-09 2:17:57860 days ago1660011477IN
0x22f27E9d...058c18b82
0 ETH0.0017128722.52510057
Exec Transaction152175342022-07-26 10:16:09873 days ago1658830569IN
0x22f27E9d...058c18b82
0 ETH0.000806210.60192778
Exec Transaction151148322022-07-10 12:16:37889 days ago1657455397IN
0x22f27E9d...058c18b82
0 ETH0.0012677215.87412217
Transfer150595362022-07-01 23:28:38898 days ago1656718118IN
0x22f27E9d...058c18b82
2.22049605 ETH0.0005070818.5548377
Exec Transaction150594152022-07-01 23:05:19898 days ago1656716719IN
0x22f27E9d...058c18b82
0 ETH0.0017891422.39992836
Transfer150568252022-07-01 13:20:18898 days ago1656681618IN
0x22f27E9d...058c18b82
1.9039 ETH0.0007017425.67783841
Exec Transaction150415662022-06-28 20:52:07901 days ago1656449527IN
0x22f27E9d...058c18b82
0 ETH0.0045778457.33121487
Transfer150353372022-06-27 16:53:44902 days ago1656348824IN
0x22f27E9d...058c18b82
0.07 ETH0.00376306137.69500799
Transfer150353292022-06-27 16:51:06902 days ago1656348666IN
0x22f27E9d...058c18b82
0.1681942 ETH0.00413805151.41610808
Transfer150345582022-06-27 13:23:05902 days ago1656336185IN
0x22f27E9d...058c18b82
1.60666713 ETH0.0017242263.09145311
Transfer150333852022-06-27 8:08:25902 days ago1656317305IN
0x22f27E9d...058c18b82
1.5877563 ETH0.0007847828.71610243
Exec Transaction150181282022-06-24 11:49:43905 days ago1656071383IN
0x22f27E9d...058c18b82
0 ETH0.0028493829.39415372
Transfer150177262022-06-24 10:00:48905 days ago1656064848IN
0x22f27E9d...058c18b82
0.86320145 ETH0.0006402123.42610194

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
153710702022-08-19 11:41:13849 days ago1660909273
0x22f27E9d...058c18b82
0.09084567 ETH
153680522022-08-18 23:57:26850 days ago1660867046
0x22f27E9d...058c18b82
0.2 ETH
153642972022-08-18 9:47:17850 days ago1660816037
0x22f27E9d...058c18b82
1 ETH
153052902022-08-09 2:17:57860 days ago1660011477
0x22f27E9d...058c18b82
0.1165 ETH
152175342022-07-26 10:16:09873 days ago1658830569
0x22f27E9d...058c18b82
1.65 ETH
151148322022-07-10 12:16:37889 days ago1657455397
0x22f27E9d...058c18b82
1.9039 ETH
150594152022-07-01 23:05:19898 days ago1656716719
0x22f27E9d...058c18b82
2.2158191 ETH
150415662022-06-28 20:52:07901 days ago1656449527
0x22f27E9d...058c18b82
2.07 ETH
150181282022-06-24 11:49:43905 days ago1656071383
0x22f27E9d...058c18b82
0.01 ETH
150177062022-06-24 9:57:16905 days ago1656064636  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.