POL Price: $0.126608 (-2.52%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Exec Transaction475734782023-09-15 13:41:19862 days ago1694785279IN
0xA54A8aB8...f45A8b950
0 POL0.01072723137
Exec Transaction474681932023-09-12 22:04:56864 days ago1694556296IN
0xA54A8aB8...f45A8b950
0 POL0.01755468242
Exec Transaction474660022023-09-12 20:46:03864 days ago1694551563IN
0xA54A8aB8...f45A8b950
0 POL0.01569271203
Exec Transaction474659562023-09-12 20:44:25864 days ago1694551465IN
0xA54A8aB8...f45A8b950
0 POL0.01429297179
Exec Transaction474657342023-09-12 20:36:01864 days ago1694550961IN
0xA54A8aB8...f45A8b950
0 POL0.00937541157
Exec Transaction474656482023-09-12 20:32:59864 days ago1694550779IN
0xA54A8aB8...f45A8b950
0 POL0.010092169
Exec Transaction474655472023-09-12 20:29:23864 days ago1694550563IN
0xA54A8aB8...f45A8b950
0 POL0.01184232152
Exec Transaction474588972023-09-12 16:29:21864 days ago1694536161IN
0xA54A8aB8...f45A8b950
0 POL0.01116261135
Exec Transaction474483712023-09-12 10:09:08865 days ago1694513348IN
0xA54A8aB8...f45A8b950
0 POL0.02095396177
Exec Transaction458344052023-08-02 21:43:28905 days ago1691012608IN
0xA54A8aB8...f45A8b950
0 POL0.0109002988
Exec Transaction458343792023-08-02 21:42:32905 days ago1691012552IN
0xA54A8aB8...f45A8b950
0 POL0.0171796186
Exec Transaction458340552023-08-02 21:30:30905 days ago1691011830IN
0xA54A8aB8...f45A8b950
0 POL0.02662110
Exec Transaction458335982023-08-02 21:13:49905 days ago1691010829IN
0xA54A8aB8...f45A8b950
0 POL0.009039975
Exec Transaction458335462023-08-02 21:11:57905 days ago1691010717IN
0xA54A8aB8...f45A8b950
0 POL0.0194950977
Exec Transaction458334972023-08-02 21:10:11905 days ago1691010611IN
0xA54A8aB8...f45A8b950
0 POL0.0330923790
Exec Transaction458334262023-08-02 21:07:41905 days ago1691010461IN
0xA54A8aB8...f45A8b950
0 POL0.0228887190
Exec Transaction446649392023-07-04 7:45:22935 days ago1688456722IN
0xA54A8aB8...f45A8b950
0 POL0.01767939196
Exec Transaction443911912023-06-27 7:48:47942 days ago1687852127IN
0xA54A8aB8...f45A8b950
0 POL0.10797566211
Exec Transaction435929552023-06-06 10:24:06963 days ago1686047046IN
0xA54A8aB8...f45A8b950
0 POL0.0202534168
Exec Transaction435928562023-06-06 10:20:36963 days ago1686046836IN
0xA54A8aB8...f45A8b950
0 POL0.07431734173
Exec Transaction431591842023-05-26 5:53:23974 days ago1685080403IN
0xA54A8aB8...f45A8b950
0 POL0.03040136193
Exec Transaction431589932023-05-26 5:46:28974 days ago1685079988IN
0xA54A8aB8...f45A8b950
0 POL0.06493654166
Exec Transaction422919712023-05-04 10:29:30996 days ago1683196170IN
0xA54A8aB8...f45A8b950
0 POL0.10131665259
Exec Transaction416544402023-04-18 1:12:361012 days ago1681780356IN
0xA54A8aB8...f45A8b950
0 POL0.04253932304
Exec Transaction416307762023-04-17 9:55:261013 days ago1681725326IN
0xA54A8aB8...f45A8b950
0 POL0.06171832197
View all transactions

Latest 10 internal transactions

Parent Transaction Hash Block From To
474483712023-09-12 10:09:08865 days ago1694513348
0xA54A8aB8...f45A8b950
286,324.73365194 POL
474479732023-09-12 9:55:02865 days ago1694512502
0xA54A8aB8...f45A8b950
180,557.76031804 POL
474479732023-09-12 9:55:02865 days ago1694512502
0xA54A8aB8...f45A8b950
105,766.97333389 POL
458344052023-08-02 21:43:28905 days ago1691012608
0xA54A8aB8...f45A8b950
1,777.23658308 POL
458340552023-08-02 21:30:30905 days ago1691011830
0xA54A8aB8...f45A8b950
1,777.23658308 POL
395833312023-02-22 10:12:421067 days ago1677060762
0xA54A8aB8...f45A8b950
33,187.43801892 POL
395832712023-02-22 10:10:271067 days ago1677060627
0xA54A8aB8...f45A8b950
33,187.43801892 POL
393487082023-02-16 6:31:581073 days ago1676529118
0xA54A8aB8...f45A8b950
1,303.32177784 POL
393485302023-02-16 6:24:431073 days ago1676528683
0xA54A8aB8...f45A8b950
1,303.32177784 POL
351136712022-11-02 15:29:271178 days ago1667402967  Contract Creation0 POL
Cross-Chain Transactions
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

Contract Source Code (Solidity)

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

API
[{"inputs":[{"internalType":"address","name":"_singleton","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

0x608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f76696465640000000000000000000000003e5c63644e683549055b9be8653de26e0b4cd36e

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