ETH Price: $3,487.32 (+2.68%)

Contract

0x33c1869A9e651C2833Ce67Cc2485aA09b06a0C75
 
Transaction Hash
Method
Block
From
To
Exec Transaction187875562023-12-14 23:09:23376 days ago1702595363IN
0x33c1869A...9b06a0C75
0 ETH0.003269541.89150557
Exec Transaction182122142023-09-25 10:29:59456 days ago1695637799IN
0x33c1869A...9b06a0C75
0 ETH0.0008365110
Exec Transaction182122112023-09-25 10:29:23456 days ago1695637763IN
0x33c1869A...9b06a0C75
0 ETH0.0005703910.47232672
Exec Transaction164852482023-01-25 17:12:47699 days ago1674666767IN
0x33c1869A...9b06a0C75
0 ETH0.0035006437.74563986
Exec Transaction160684582022-11-28 12:23:11757 days ago1669638191IN
0x33c1869A...9b06a0C75
0 ETH0.0010744510.73308008
Exec Transaction153976652022-08-23 16:22:23854 days ago1661271743IN
0x33c1869A...9b06a0C75
0 ETH0.0012179712
Exec Transaction151600672022-07-17 12:06:12891 days ago1658059572IN
0x33c1869A...9b06a0C75
0 ETH0.0008844210.97255125
Exec Transaction151344142022-07-13 13:05:28895 days ago1657717528IN
0x33c1869A...9b06a0C75
0 ETH0.0063575271.81210446
Exec Transaction151343822022-07-13 12:56:24895 days ago1657716984IN
0x33c1869A...9b06a0C75
0 ETH0.0061976570.00626306
Exec Transaction151338942022-07-13 10:59:20895 days ago1657709960IN
0x33c1869A...9b06a0C75
0 ETH0.0007254111.12729136
Exec Transaction151337462022-07-13 10:25:23895 days ago1657707923IN
0x33c1869A...9b06a0C75
0 ETH0.0006932710.31782823
Exec Transaction151337322022-07-13 10:22:36895 days ago1657707756IN
0x33c1869A...9b06a0C75
0 ETH0.000856512.78007751
Exec Transaction150567052022-07-01 12:51:47907 days ago1656679907IN
0x33c1869A...9b06a0C75
0 ETH0.0021554826.74195909
Exec Transaction150557672022-07-01 9:18:10907 days ago1656667090IN
0x33c1869A...9b06a0C75
0 ETH0.0015081715.43825663
Exec Transaction150557602022-07-01 9:17:04907 days ago1656667024IN
0x33c1869A...9b06a0C75
0 ETH0.00144615.66012309
Exec Transaction150557392022-07-01 9:12:25907 days ago1656666745IN
0x33c1869A...9b06a0C75
0 ETH0.0013374316.1123319
Exec Transaction150555572022-07-01 8:31:13907 days ago1656664273IN
0x33c1869A...9b06a0C75
0 ETH0.002120324
Exec Transaction150494172022-06-30 8:18:33908 days ago1656577113IN
0x33c1869A...9b06a0C75
0 ETH0.003313440
Exec Transaction149389822022-06-10 14:42:25928 days ago1654872145IN
0x33c1869A...9b06a0C75
0 ETH0.0038344947.68149762
Exec Transaction149380842022-06-10 11:03:01928 days ago1654858981IN
0x33c1869A...9b06a0C75
0 ETH0.0026772233.29101166
Exec Transaction147485192022-05-10 12:20:41959 days ago1652185241IN
0x33c1869A...9b06a0C75
0 ETH0.0044344355.133396
Exec Transaction142302992022-02-18 13:12:131040 days ago1645189933IN
0x33c1869A...9b06a0C75
0 ETH0.0048432649.6587634
Exec Transaction142291682022-02-18 9:08:491040 days ago1645175329IN
0x33c1869A...9b06a0C75
0 ETH0.01043561129.74623508
Exec Transaction141853392022-02-11 14:43:421047 days ago1644590622IN
0x33c1869A...9b06a0C75
0 ETH0.007455192.68947954
Exec Transaction141790052022-02-10 14:58:451048 days ago1644505125IN
0x33c1869A...9b06a0C75
0 ETH0.0073991175.87362006
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
159569642022-11-12 22:36:47773 days ago1668292607
0x33c1869A...9b06a0C75
10.769581 ETH
136456342021-11-19 12:43:381131 days ago1637325818
0x33c1869A...9b06a0C75
1 ETH
133268662021-09-30 11:37:481181 days ago1633001868
0x33c1869A...9b06a0C75
0.5 ETH
133268522021-09-30 11:34:441181 days ago1633001684
0x33c1869A...9b06a0C75
4 ETH
132822252021-09-23 13:16:501188 days ago1632403010
0x33c1869A...9b06a0C75
3 ETH
132780362021-09-22 21:34:581189 days ago1632346498
0x33c1869A...9b06a0C75
1 ETH
132780242021-09-22 21:32:351189 days ago1632346355
0x33c1869A...9b06a0C75
5 ETH
132311132021-09-15 15:28:101196 days ago1631719690
0x33c1869A...9b06a0C75
15 ETH
131981392021-09-10 13:01:151201 days ago1631278875
0x33c1869A...9b06a0C75
10 ETH
131980472021-09-10 12:38:281201 days ago1631277508
0x33c1869A...9b06a0C75
1 ETH
131980442021-09-10 12:37:181201 days ago1631277438
0x33c1869A...9b06a0C75
10 ETH
131725602021-09-06 13:57:341205 days ago1630936654
0x33c1869A...9b06a0C75
4 ETH
131267462021-08-30 11:59:061212 days ago1630324746
0x33c1869A...9b06a0C75
3 ETH
131072662021-08-27 11:45:261215 days ago1630064726
0x33c1869A...9b06a0C75
1 ETH
131072572021-08-27 11:42:461215 days ago1630064566
0x33c1869A...9b06a0C75
4 ETH
130971072021-08-25 22:11:411217 days ago1629929501  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.