Contract 0x0dD333859cF16942dd333D7570D839b8946Ac221

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x522527b854eb637045e646150efde66f5f170088fa62bdb8c10049c2945318f4Exec Transaction219621692021-11-30 5:25:333 hrs 45 mins ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x543b35bbf3654c4887472b513443ae3d531eea09a6d313ad13b44020dccb6390Exec Transaction219621512021-11-30 5:24:573 hrs 45 mins ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.00454328
0x09a7e29e5743d9d927e809e6aeca393c976045f5a516f4e6a2753662713ef242Exec Transaction219394272021-11-29 14:20:1418 hrs 50 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0044751308
0xf2c5fb032c8b5a6f5d78b40c6fff7954ccf6a2985a615bee6f96865b36434f69Exec Transaction219392812021-11-29 14:15:1418 hrs 55 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.00511119
0x1aa008b251af6a313bc1f61e9094cbbc68e839ce35f06e6e3cfe4b53e39c799cExec Transaction219390502021-11-29 14:07:1619 hrs 3 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x62ef68aeba8ba5e46575eed554e9a64cfca475081ec4358be4bdc7bde654f325Exec Transaction219390362021-11-29 14:06:4819 hrs 3 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x080a7eafc70ce1fecbc901635e45f3a48220c91b52ac0d327d91c6e318d30ebcExec Transaction219390222021-11-29 14:06:2019 hrs 4 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x765caeb5c68cb590c0d379d655066b647abc8c87826ee5ba1d76e8a87dc9c3f8Exec Transaction219390092021-11-29 14:05:5419 hrs 4 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x3ec3efe06a9ae1c7174c2bd809dfc5a1b86ef057d100635dd6ee7b5c8595ed92Exec Transaction219389992021-11-29 14:05:3019 hrs 5 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x736aebbd372d183e4b48353f58f4263508b4dfbf29f8681f9ce40f04ff1e0bbaExec Transaction219389722021-11-29 14:04:3619 hrs 6 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x674d4d3eb4d2d2ce81730672ab66fc324fb689b6bc7c144654bbd058e2d84c10Exec Transaction219389572021-11-29 14:04:0619 hrs 6 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x9e3a66bc9e55cf4614baca7a424b6c555d4019fece3a1f72cfcc7797d2e39b16Exec Transaction219389412021-11-29 14:03:3019 hrs 7 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0xb1a379487637069b2ace8724e8e2b6b9a4ed64f8d6b7b6bb31fa6be3e86edd4dExec Transaction219389302021-11-29 14:03:0819 hrs 7 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0xc34d9e24f2ea17105d08862d7b08bd26fc73febe2a70543a8f364692b2ac1f9aExec Transaction219388682021-11-29 14:01:0019 hrs 9 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0056791
0x13d35499e220944c5b24ef25396282345dcbff2f19fa4cca281b75135e52335bExec Transaction219388372021-11-29 13:59:5819 hrs 10 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.00397537
0xa4f0393f32e4d3a30ddeaea92efbd03eb0479654ef3da12e0669266d324b9b8eExec Transaction219388172021-11-29 13:59:1819 hrs 11 mins ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0113582
0x396d570a85e31c05da2997488c5568a23127a6f30f50e496a27666f8f90cdf25Exec Transaction219118902021-11-28 20:32:381 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.007496412
0x5d4bbb3a9149b7a80a9a2bb70113c099194b8f623231f5894397ec00fe361892Exec Transaction219118742021-11-28 20:32:061 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.012834766
0x4638fdb2842b3e5f15355e18ccd71f2b0c63f11479b91e2240e563a3f76b0a05Exec Transaction219118262021-11-28 20:30:261 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.012380438
0xa4144a81cedbd457db40aeeffdc359e0374b2c4d7cb66ac294d95a06cc308c3aExec Transaction219118122021-11-28 20:29:581 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.029872066
0xf8bb7e134cf302d05c9ff8593edb55a9fa4589eb5a02f986b400ecd736891ce2Exec Transaction219117842021-11-28 20:28:561 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0113582
0x29c8cf4e3e156c831988a34ce6c214d3ddb1c3c9840edd608a4a49fdd1825a42Exec Transaction219117682021-11-28 20:28:241 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.024874458
0x64daef916c8a0062f9f207ad99840f345ded2270ce21c71f50cff40403cdca67Exec Transaction219117552021-11-28 20:27:581 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0063265174
0xfb03e73954a8173d18af5eaa37b3d81ccf95420bc1d6ad0f85d058b4bc01d226Exec Transaction219117462021-11-28 20:27:401 day 12 hrs ago0xdecdf7f70a7d1c49d78176a94dc57d48f4c5928f IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.029872066
0x5810d941b0db010937731733b557949d7292e65b5834ebd082784b8e1ed3351cExec Transaction218743402021-11-27 21:00:542 days 12 hrs ago0x47eb9cd755f0bf775544fce93bdb03141421f4ad IN  0x0dd333859cf16942dd333d7570d839b8946ac2210 MATIC0.0164353154
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x3b15097bbae7ea020c483bce9e6c87bc7c570472316057bb808d4032ae963ecd214576382021-11-17 1:06:1113 days 8 hrs ago Gnosis Safe: Proxy Factory 1.3.0  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xb412684F4F0B5d27cC4A4D287F42595aB3ae124D

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"}]

608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f76696465640000000000000000000000003e5c63644e683549055b9be8653de26e0b4cd36e

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
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.