ETH Price: $2,393.53 (+2.93%)

Contract

0xc3A0bCF4a7006a6c124f3714F87508D2c325c8Ff
 
Transaction Hash
Method
Block
From
To
Exec Transaction168374932023-03-16 2:38:23552 days ago1678934303IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0031018921.90853856
Exec Transaction163020192022-12-31 3:19:59627 days ago1672456799IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0013359618.34968342
Exec Transaction163020052022-12-31 3:17:11627 days ago1672456631IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0016862716.90278105
Exec Transaction163016892022-12-31 2:13:11627 days ago1672452791IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0018024817.23630101
Transfer161194842022-12-05 15:25:47653 days ago1670253947IN
0xc3A0bCF4...2c325c8Ff
0.06705646 ETH0.0007108126.009519
Transfer160621612022-11-27 15:16:47661 days ago1669562207IN
0xc3A0bCF4...2c325c8Ff
0.21197277 ETH0.0002830110.35587354
Transfer158906422022-11-03 16:19:47685 days ago1667492387IN
0xc3A0bCF4...2c325c8Ff
0.0119959 ETH0.0014435252.82013625
Exec Transaction155357952022-09-15 0:05:33735 days ago1663200333IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0013691919
Exec Transaction155349102022-09-14 20:28:53735 days ago1663187333IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0013923614.03307273
Exec Transaction155347372022-09-14 19:48:19735 days ago1663184899IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0009308919.75618694
Exec Transaction155347372022-09-14 19:48:19735 days ago1663184899IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0009614720.40518694
Exec Transaction155347372022-09-14 19:48:19735 days ago1663184899IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0008952619
Exec Transaction155347292022-09-14 19:46:43735 days ago1663184803IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0017396728.28878738
Exec Transaction142505002022-02-21 16:26:23940 days ago1645460783IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0075994680.41680543
Exec Transaction142504782022-02-21 16:21:01940 days ago1645460461IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0070148774.23065506
Exec Transaction140331502022-01-19 1:51:45973 days ago1642557105IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0117462578.23433556
Exec Transaction138021292021-12-14 8:14:141009 days ago1639469654IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.003390671
Exec Transaction138021282021-12-14 8:14:011009 days ago1639469641IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0105638670.35917316
Transfer136681602021-11-23 2:13:381030 days ago1637633618IN
0xc3A0bCF4...2c325c8Ff
0.01 ETH0.00341262124.8718805
Transfer136622482021-11-22 3:57:311031 days ago1637553451IN
0xc3A0bCF4...2c325c8Ff
0.00869494 ETH0.00302558110.70962376
Exec Transaction136418262021-11-18 21:46:491035 days ago1637272009IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.01918862164.94279578
Exec Transaction136417012021-11-18 21:19:291035 days ago1637270369IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.02314527153.95491028
Exec Transaction135946242021-11-11 11:22:351042 days ago1636629755IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.02223797147.90805951
Exec Transaction135945772021-11-11 11:11:561042 days ago1636629116IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0088563984.51165151
Exec Transaction135945372021-11-11 11:04:101042 days ago1636628650IN
0xc3A0bCF4...2c325c8Ff
0 ETH0.0068552497.28307135
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
163020192022-12-31 3:19:59627 days ago1672456799
0xc3A0bCF4...2c325c8Ff
0.30972009 ETH
135945372021-11-11 11:04:101042 days ago1636628650
0xc3A0bCF4...2c325c8Ff
2.28368945 ETH
133870442021-10-09 21:50:161075 days ago1633816216
0xc3A0bCF4...2c325c8Ff
0.06576176 ETH
131410432021-09-01 17:13:561113 days ago1630516436  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.