MATIC Price: $0.532941 (+1.44%)
Gas: 30.1 GWei
 
Transaction Hash
Method
Block
From
To
Exec Transaction575770432024-05-30 19:07:5554 days ago1717096075IN
0x350fFD50...94538EF88
0 MATIC0.0452058630.00000003
Exec Transaction575769932024-05-30 19:05:3754 days ago1717095937IN
0x350fFD50...94538EF88
0 MATIC0.045207330.00000002
Exec Transaction575768282024-05-30 18:59:4554 days ago1717095585IN
0x350fFD50...94538EF88
0 MATIC0.0452110530.00000002
Exec Transaction575724272024-05-30 16:13:1354 days ago1717085593IN
0x350fFD50...94538EF88
0 MATIC0.0043615540.01829394
Exec Transaction575723912024-05-30 16:11:5754 days ago1717085517IN
0x350fFD50...94538EF88
0 MATIC0.004772343.79182337
Exec Transaction575723652024-05-30 16:11:0154 days ago1717085461IN
0x350fFD50...94538EF88
0 MATIC0.005248148.15258114
Exec Transaction575723452024-05-30 16:10:1954 days ago1717085419IN
0x350fFD50...94538EF88
0 MATIC0.0057018248.06518534
Exec Transaction575723202024-05-30 16:09:2754 days ago1717085367IN
0x350fFD50...94538EF88
0 MATIC0.0058457449.26836802
Transfer575722982024-05-30 16:08:2954 days ago1717085309IN
0x350fFD50...94538EF88
50 MATIC0.0013791650.46530633
Transfer575709812024-05-30 15:18:1754 days ago1717082297IN
0x350fFD50...94538EF88
4 MATIC0.0008200930.00808899
Exec Transaction575709072024-05-30 15:15:0754 days ago1717082107IN
0x350fFD50...94538EF88
0 MATIC0.0051593230.42864309
Exec Transaction575708592024-05-30 15:13:2554 days ago1717082005IN
0x350fFD50...94538EF88
0 MATIC0.0050868130.00095416
Exec Transaction575708272024-05-30 15:12:1754 days ago1717081937IN
0x350fFD50...94538EF88
0 MATIC0.2732798630.00068094
Exec Transaction575707992024-05-30 15:11:1754 days ago1717081877IN
0x350fFD50...94538EF88
0 MATIC0.5543597560.85781026
Exec Transaction575707212024-05-30 15:08:3354 days ago1717081713IN
0x350fFD50...94538EF88
0 MATIC0.5465558260.00044588
Exec Transaction575694252024-05-30 14:18:5554 days ago1717078735IN
0x350fFD50...94538EF88
0 MATIC0.0032696730.00000152
Exec Transaction575693882024-05-30 14:17:3554 days ago1717078655IN
0x350fFD50...94538EF88
0 MATIC0.0032700330.00000245
Transfer573466772024-05-24 19:41:3560 days ago1716579695IN
0x350fFD50...94538EF88
12 MATIC0.000821730.06730039
Exec Transaction573462012024-05-24 19:23:3960 days ago1716578619IN
0x350fFD50...94538EF88
0 MATIC0.001756130.60542087
Exec Transaction573460962024-05-24 19:19:5760 days ago1716578397IN
0x350fFD50...94538EF88
0 MATIC0.0032912730.15041402
Exec Transaction567694742024-05-09 17:16:5275 days ago1715275012IN
0x350fFD50...94538EF88
0 MATIC0.0466658330.96838944
Exec Transaction567666472024-05-09 15:34:2275 days ago1715268862IN
0x350fFD50...94538EF88
0 MATIC0.01843945169.22365771
Transfer567656352024-05-09 14:57:2875 days ago1715266648IN
0x350fFD50...94538EF88
5 MATIC0.001320248.30790356
Exec Transaction567652312024-05-09 14:42:3075 days ago1715265750IN
0x350fFD50...94538EF88
0 MATIC0.314695734.54751204
Exec Transaction562790072024-04-26 15:16:5288 days ago1714144612IN
0x350fFD50...94538EF88
0 MATIC0.01334161163.2941091
View all transactions

Latest 17 internal transactions

Parent Transaction Hash Block From To
575770432024-05-30 19:07:5554 days ago1717096075
0x350fFD50...94538EF88
1.9 MATIC
575769932024-05-30 19:05:3754 days ago1717095937
0x350fFD50...94538EF88
1.9 MATIC
575768282024-05-30 18:59:4554 days ago1717095585
0x350fFD50...94538EF88
1.9 MATIC
575723452024-05-30 16:10:1954 days ago1717085419
0x350fFD50...94538EF88
3 MATIC
575723202024-05-30 16:09:2754 days ago1717085367
0x350fFD50...94538EF88
3 MATIC
573468962024-05-24 19:49:5360 days ago1716580193
0x350fFD50...94538EF88
3 MATIC
573468962024-05-24 19:49:5360 days ago1716580193
0x350fFD50...94538EF88
3 MATIC
573468962024-05-24 19:49:5360 days ago1716580193
0x350fFD50...94538EF88
3 MATIC
573468962024-05-24 19:49:5360 days ago1716580193
0x350fFD50...94538EF88
3 MATIC
567694742024-05-09 17:16:5275 days ago1715275012
0x350fFD50...94538EF88
3 MATIC
562790072024-04-26 15:16:5288 days ago1714144612
0x350fFD50...94538EF88
464 MATIC
562295112024-04-25 7:55:4989 days ago1714031749
0x350fFD50...94538EF88
12 MATIC
562295112024-04-25 7:55:4989 days ago1714031749
0x350fFD50...94538EF88
12 MATIC
562295112024-04-25 7:55:4989 days ago1714031749
0x350fFD50...94538EF88
12 MATIC
557092512024-04-11 17:09:21103 days ago1712855361
0x350fFD50...94538EF88
0.5 MATIC
557073432024-04-11 15:57:20103 days ago1712851040
0x350fFD50...94538EF88
0.5 MATIC
557064172024-04-11 15:22:50103 days ago1712848970  Contract Creation0 MATIC
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb412684F...aB3ae124D
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 polygonscan.com on 2021-07-05
*/

/**
 *Submitted for verification at polygonscan.com on 2021-06-16
*/

// 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

598:1528:0:-:0;;;1450:42;1446:1;1440:8;1436:57;1630:66;1626:1;1613:15;1610:87;1607:2;;;1727:10;1724:1;1717:21;1766:4;1763:1;1756:15;1607:2;1819:14;1816:1;1813;1800:34;1917:1;1914;1898:14;1895:1;1883:10;1876:5;1863:56;1954:16;1951:1;1948;1933:38;2000:1;1991:7;1988:14;1985:2;;;2032:16;2029:1;2022:27;1985:2;2088:16;2085:1;2078:27

Swarm Source

ipfs://d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b9552

Block Transaction 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
[ 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.