POL Price: $0.435395 (-0.98%)
Gas: 30 GWei
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exec Transaction636675082024-10-30 9:12:2187 days ago1730279541IN
0xb48f7525...73CEdc6b5
0 POL5.26468351,500
Exec Transaction636258182024-10-29 8:22:2488 days ago1730190144IN
0xb48f7525...73CEdc6b5
0 POL1.8238195500
Exec Transaction636255132024-10-29 8:11:3688 days ago1730189496IN
0xb48f7525...73CEdc6b5
0 POL0.40124401110.00102012
Exec Transaction628758072024-10-10 18:39:32107 days ago1728585572IN
0xb48f7525...73CEdc6b5
0 POL0.0031555532.00000002
Exec Transaction628352822024-10-09 18:38:44108 days ago1728499124IN
0xb48f7525...73CEdc6b5
0 POL0.0044558725.72678122
Exec Transaction628352682024-10-09 18:38:14108 days ago1728499094IN
0xb48f7525...73CEdc6b5
0 POL0.0029402625.72678133
Exec Transaction627738792024-10-08 6:16:22109 days ago1728368182IN
0xb48f7525...73CEdc6b5
0 POL0.00519630.00000003
Exec Transaction627738662024-10-08 6:15:54109 days ago1728368154IN
0xb48f7525...73CEdc6b5
0 POL0.001995630.00000004
Exec Transaction606641232024-08-16 15:21:59162 days ago1723821719IN
0xb48f7525...73CEdc6b5
0 POL0.1258416929.69803749
Exec Transaction589013552024-07-03 8:18:36206 days ago1719994716IN
0xb48f7525...73CEdc6b5
0 POL0.0447755730.00000041
Exec Transaction586208672024-06-26 7:34:21213 days ago1719387261IN
0xb48f7525...73CEdc6b5
0 POL0.0497053230.00000009
Exec Transaction583270592024-06-18 22:44:45220 days ago1718750685IN
0xb48f7525...73CEdc6b5
0 POL0.0658734730.03328358
Exec Transaction578133592024-06-05 23:08:51233 days ago1717628931IN
0xb48f7525...73CEdc6b5
0 POL0.0449059530.00000002
Exec Transaction575167242024-05-29 5:33:41241 days ago1716960821IN
0xb48f7525...73CEdc6b5
0 POL0.0485783230.02227466
Exec Transaction572236572024-05-21 13:29:31249 days ago1716298171IN
0xb48f7525...73CEdc6b5
0 POL0.0543575335.43843992
Exec Transaction567635432024-05-09 13:39:01261 days ago1715261941IN
0xb48f7525...73CEdc6b5
0 POL0.0591641130.00000104
Exec Transaction564630002024-05-01 16:06:48269 days ago1714579608IN
0xb48f7525...73CEdc6b5
0 POL0.1337041895.29483715
Exec Transaction564288712024-04-30 17:30:09270 days ago1714498209IN
0xb48f7525...73CEdc6b5
0 POL0.0177361469.49492064
Exec Transaction561705032024-04-23 17:49:12277 days ago1713894552IN
0xb48f7525...73CEdc6b5
0 POL0.15898067101.33037803
Exec Transaction558980382024-04-16 17:27:44284 days ago1713288464IN
0xb48f7525...73CEdc6b5
0 POL0.02309685136.34988039
Exec Transaction558978902024-04-16 17:21:58284 days ago1713288118IN
0xb48f7525...73CEdc6b5
0 POL0.25568696152.45551807
Exec Transaction557533722024-04-12 22:51:11287 days ago1712962271IN
0xb48f7525...73CEdc6b5
0 POL0.0058213874.80481925
Exec Transaction557068102024-04-11 15:37:20289 days ago1712849840IN
0xb48f7525...73CEdc6b5
0 POL0.0542435315.27759289
Exec Transaction556289492024-04-09 13:56:57291 days ago1712671017IN
0xb48f7525...73CEdc6b5
0 POL0.40129475246.26592318
Exec Transaction553403692024-04-01 23:43:57298 days ago1712015037IN
0xb48f7525...73CEdc6b5
0 POL0.0716787450.61046469
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
265442592022-03-30 15:53:031032 days ago1648655583  Contract Creation0 POL
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.