Address io1u65sped90tfq8cgz7n085lagmsvfemxjyc8k6t

Contract Overview

Balance:
0 IOTX

IOTX Value:
$ 0

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
333785682da56a9614972a5fdcb141cf9b1603442560f9a0d8cee0562a8e4cce 24994531 2024-03-04 06:38:15 +0000 UTC 2 months ago endorsetest  IN    Contract: IProxy 0 IOTX 0.3225
f4f1eaad2fb83c6e0bc42e7ea44e00691eb801ee83bc0ec5259b2a298152a332 20954106 2023-06-25 17:53:30 +0000 UTC 10 months ago io1uxamdhptghl828qcgp0yusjxxfdau2llwfhzdv  IN    Contract: IProxy 0 IOTX 0.296158
39a7d61dfc4192d2b7c58cec7270ca2f86c36a47267904c7a1ef4f92bc7fa6e7 20607292 2023-06-04 20:57:15 +0000 UTC 11 months ago io19kqt0ktplqrma2w0kd938x0aahvkuujf84fxzh  IN    Contract: IProxy 0 IOTX 0.322466
35e8ec749f31556325aa138c642cdb35fe2447bd438256fb81c39492c66854bb 19226285 2023-03-13 20:25:50 +0000 UTC one year ago io1tyc8zuppf5eev582v2sx9uzfv9wffurhfw5y73  IN    Contract: IProxy 0 IOTX 0.348774
e0a478a86ce1cccc03f0b06f2da35d9945fcf26409d6c841b6a325f493c4b926 19226270 2023-03-13 20:24:30 +0000 UTC one year ago io1tyc8zuppf5eev582v2sx9uzfv9wffurhfw5y73  IN    Contract: IProxy 0 IOTX 0.348774
f41cdbc61166df3818294af7bc23c2550bff90aa49f4475bad121c009fa4ba18 19226237 2023-03-13 20:21:40 +0000 UTC one year ago io1tyc8zuppf5eev582v2sx9uzfv9wffurhfw5y73  IN    Contract: IProxy 0 IOTX 0.348774
329bafc3811b4c89650deaeebbee1861bbcd6394c9bac09cb3d7abea0dba6296 19172191 2023-03-10 14:26:45 +0000 UTC one year ago io1fc6l7xrj5usxjkn5rvq097jdrzp5gzav60u6lj  IN    Contract: IProxy 0 IOTX 0.296158
886b09e182c16eabaa28d23fda1eac9b26822c9996905604170a988f83c02273 19128909 2023-03-07 23:57:10 +0000 UTC one year ago io1cv98ru9ujh3cs8z95w3ehxaxhu06klh00a4rst  IN    Contract: IProxy 0 IOTX 0.296158
a3acd38430a3150282598723caeb0de4bce82143573b01eaffe574675bc996fc 19128896 2023-03-07 23:56:05 +0000 UTC one year ago io1cv98ru9ujh3cs8z95w3ehxaxhu06klh00a4rst  IN    Contract: IProxy 0 IOTX 0.296132
d580706339686eb18a7d94f0011522a6957af5f8110d6f454b67db09c0c12c77 19128895 2023-03-07 23:56:00 +0000 UTC one year ago io1cv98ru9ujh3cs8z95w3ehxaxhu06klh00a4rst  IN    Contract: IProxy 0 IOTX 0.296158
0db4c5ced725ea40d882a677786b26b739ae0ea4c3138bd1527c02d35bc5987c 19110984 2023-03-06 22:08:20 +0000 UTC one year ago io1tyc8zuppf5eev582v2sx9uzfv9wffurhfw5y73  IN    Contract: IProxy 0 IOTX 0.348774
5b83fcc0a5d06848ac3fc5408d1b494f66b9185620ed563e4003993dc53eb746 19026025 2023-03-01 19:25:20 +0000 UTC one year ago io12ydezf3m445f9hn6y3c03xe5xxq0v2qv8es38t  IN    Contract: IProxy 0 IOTX 0.348774
444fede6129ab6121b2ac9e4537067afc984a90f7ec995c962aaa9051285bcd9 18907667 2023-02-22 16:38:15 +0000 UTC one year ago io1lmkjrv5tuvdplz6nead9f4zazv5crzvhlzdv9v  IN    Contract: IProxy 0 IOTX 0.348774
8b81bd231e2ef10f2ea57c6f94d7641a739172f7449746f48f9cefe4af1fa05a 18793476 2023-02-15 19:20:45 +0000 UTC one year ago io13f5wqxkantwghzrsyhw9fsmvl2g5xt6ctlhhu8  IN    Contract: IProxy 0 IOTX 0.296158
f76e37c7c12e5c7a659dff343773ef1546de311040db69a991a4d4a19386b80a 18756550 2023-02-13 11:33:20 +0000 UTC one year ago io1vs7g4qfqa7m8t6pvt3vd34rn7kkapd0xrsfw9k  IN    Contract: IProxy 0 IOTX 0.296158
643ee2b66712add21521be31244d1dceae4a2f41282e7c97455a11ec10105f1c 18711733 2023-02-10 18:22:50 +0000 UTC one year ago io1vs7g4qfqa7m8t6pvt3vd34rn7kkapd0xrsfw9k  IN    Contract: IProxy 0 IOTX 0.296158
e923d529300f4fb8b695afdb763bf97164f2d45566851244998fc9614c7a5fe9 18711604 2023-02-10 18:11:35 +0000 UTC one year ago io1vs7g4qfqa7m8t6pvt3vd34rn7kkapd0xrsfw9k  IN    Contract: IProxy 0 IOTX 0.296158
5da1d52b621d5ad9a126b041d54ebadbf0c130fde5be2ee5fa68bdb578e9cba0 18707317 2023-02-10 12:03:40 +0000 UTC one year ago io1nftev0s2ypca0njj5shk547n3598udzukzjd00  IN    Contract: IProxy 0 IOTX 0.296158
dc15198aac3692c1a60db1ed243354b67ea76404007ab9e32fde1cbf107fa41c 18705910 2023-02-10 10:01:35 +0000 UTC one year ago io1vs7g4qfqa7m8t6pvt3vd34rn7kkapd0xrsfw9k  IN    Contract: IProxy 0 IOTX 0.296158
18abd9932c7d6e96d70d81060e7c7cf2944810d81eda6c6b19561ab69587fc2e 18702555 2023-02-10 05:09:45 +0000 UTC one year ago io13f5wqxkantwghzrsyhw9fsmvl2g5xt6ctlhhu8  IN    Contract: IProxy 0 IOTX 0.296158
5e786e6ca5dce60c7e675d149f99e83da86be419cda522752a85b63b15ab7c43 18700997 2023-02-10 02:54:25 +0000 UTC one year ago io1asp2m5h98tqhew0g4uw0drmdcvv7yvcyfv95dp  IN    Contract: IProxy 0 IOTX 0.296158
42230dcbe580437317588d26c5a406122c1cc41c2ad7c747a8c24fddcd99bf84 18698522 2023-02-09 23:18:50 +0000 UTC one year ago io1h430kft0da4frdh3gutw55u062tnuhpmsk0x0a  IN    Contract: IProxy 0 IOTX 0.296158
bffe1a04cf795d2617e5f9794bb84f6ff3f14de1f1002762d5a6f90d68f2725f 18695833 2023-02-09 19:25:00 +0000 UTC one year ago io1u0t839juhg34a8qlw0ma44nnhclwlkraf8j4ns  IN    Contract: IProxy 0 IOTX 0.296158
166023e250a84baa6eef11154b5d16311a43d482242c63b7b99b2516dd82e922 18694806 2023-02-09 17:57:35 +0000 UTC one year ago io13gszz9mxm560h94tstllt93zeazwyns77lrs9y  IN    Contract: IProxy 0 IOTX 0.296158
4a02f4922a9548d41a9bc75e5d47733d40e03e59bc996413171d98d614a8697b 18691541 2023-02-09 13:10:20 +0000 UTC one year ago io1vs7g4qfqa7m8t6pvt3vd34rn7kkapd0xrsfw9k  IN    Contract: IProxy 0 IOTX 0.296158
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
File 1 of 3: IProxyCreationCallback.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;
import "./GnosisSafeProxy.sol";

interface IProxyCreationCallback {
    function proxyCreated(
        GnosisSafeProxy proxy,
        address _singleton,
        bytes calldata initializer,
        uint256 saltNonce
    ) external;
}

File 2 of 3: GnosisSafeProxyFactory.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

import "./GnosisSafeProxy.sol";
import "./IProxyCreationCallback.sol";

/// @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 invoked 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)));
    }
}

File 3 of 3: GnosisSafeProxy.sol
// 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())
        }
    }
}

Contract ABI

[{"inputs":[],"name":"masterCopy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

Contract Creation Code


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.