ETH Price: $2,448.08 (+2.21%)

Contract

0x31Bf73048056fe947B827C0Fe159ACcB5Ae30237
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040173893102023-06-01 23:49:11461 days ago1685663351IN
 Create: ModuleProxyFactory
0 ETH0.006925727.20210053

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205286382024-08-14 18:23:5921 days ago1723659839
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
205286382024-08-14 18:23:5921 days ago1723659839
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
205286382024-08-14 18:23:5921 days ago1723659839
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
198764952024-05-15 16:12:23112 days ago1715789543
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
198764952024-05-15 16:12:23112 days ago1715789543
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
198764952024-05-15 16:12:23112 days ago1715789543
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196395182024-04-12 12:26:47145 days ago1712924807
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196395182024-04-12 12:26:47145 days ago1712924807
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196395182024-04-12 12:26:47145 days ago1712924807
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196393392024-04-12 11:50:23145 days ago1712922623
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196393392024-04-12 11:50:23145 days ago1712922623
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
196393392024-04-12 11:50:23145 days ago1712922623
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
195348952024-03-28 20:27:35160 days ago1711657655
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
195348952024-03-28 20:27:35160 days ago1711657655
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
195348952024-03-28 20:27:35160 days ago1711657655
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
190216982024-01-16 20:00:23232 days ago1705435223
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
190216982024-01-16 20:00:23232 days ago1705435223
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
187958542023-12-16 3:05:59263 days ago1702695959
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
187958542023-12-16 3:05:59263 days ago1702695959
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
187862362023-12-14 18:43:11265 days ago1702579391
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
187862362023-12-14 18:43:11265 days ago1702579391
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
184848472023-11-02 14:00:11307 days ago1698933611
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
184848472023-11-02 14:00:11307 days ago1698933611
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
184848472023-11-02 14:00:11307 days ago1698933611
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
175283432023-06-21 13:30:23441 days ago1687354223
0x31Bf7304...B5Ae30237
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ModuleProxyFactory

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : ModuleProxyFactory.sol
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.8.0;

contract ModuleProxyFactory {
    event ModuleProxyCreation(
        address indexed proxy,
        address indexed masterCopy
    );

    /// `target` can not be zero.
    error ZeroAddress(address target);

    /// `address_` is already taken.
    error TakenAddress(address address_);

    /// @notice Initialization failed.
    error FailedInitialization();

    function createProxy(address target, bytes32 salt)
        internal
        returns (address result)
    {
        if (address(target) == address(0)) revert ZeroAddress(target);
        bytes memory deployment = abi.encodePacked(
            hex"602d8060093d393df3363d3d373d3d3d363d73",
            target,
            hex"5af43d82803e903d91602b57fd5bf3"
        );
        // solhint-disable-next-line no-inline-assembly
        assembly {
            result := create2(0, add(deployment, 0x20), mload(deployment), salt)
        }
        if (result == address(0)) revert TakenAddress(result);
    }

    function deployModule(
        address masterCopy,
        bytes memory initializer,
        uint256 saltNonce
    ) public returns (address proxy) {
        proxy = createProxy(
            masterCopy,
            keccak256(abi.encodePacked(keccak256(initializer), saltNonce))
        );
        (bool success, ) = proxy.call(initializer);
        if (!success) revert FailedInitialization();

        emit ModuleProxyCreation(proxy, masterCopy);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"FailedInitialization","type":"error"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"TakenAddress","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proxy","type":"address"},{"indexed":true,"internalType":"address","name":"masterCopy","type":"address"}],"name":"ModuleProxyCreation","type":"event"},{"inputs":[{"internalType":"address","name":"masterCopy","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"},{"internalType":"uint256","name":"saltNonce","type":"uint256"}],"name":"deployModule","outputs":[{"internalType":"address","name":"proxy","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506103a4806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004361003e366004610266565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60006100a384848051906020012084604051602001610088929190918252602082015260400190565b6040516020818303038152906040528051906020012061016b565b90506000816001600160a01b0316846040516100bf919061033f565b6000604051808303816000865af19150503d80600081146100fc576040519150601f19603f3d011682016040523d82523d6000602084013e610101565b606091505b505090508061012357604051637dabd39960e01b815260040160405180910390fd5b846001600160a01b0316826001600160a01b03167f2150ada912bf189ed721c44211199e270903fc88008c2a1e1e889ef30fe67c5f60405160405180910390a3509392505050565b60006001600160a01b0383166101a457604051633202e20d60e21b81526001600160a01b03841660048201526024015b60405180910390fd5b60405172602d8060093d393df3363d3d373d3d3d363d7360681b60208201526bffffffffffffffffffffffff19606085901b1660338201526e5af43d82803e903d91602b57fd5bf360881b60478201526000906056016040516020818303038152906040529050828151602083016000f591506001600160a01b0382166102495760405163371e9e8960e21b81526001600160a01b038316600482015260240161019b565b5092915050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561027b57600080fd5b83356001600160a01b038116811461029257600080fd5b9250602084013567ffffffffffffffff808211156102af57600080fd5b818601915086601f8301126102c357600080fd5b8135818111156102d5576102d5610250565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd610250565b8160405282815289602084870101111561031657600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000825160005b818110156103605760208186018101518583015201610346565b50600092019182525091905056fea26469706673582212202318e271bb304c72c2e19dc693ef1bb2add88f8405bbba0b0bf5596d304fb29564736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004361003e366004610266565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60006100a384848051906020012084604051602001610088929190918252602082015260400190565b6040516020818303038152906040528051906020012061016b565b90506000816001600160a01b0316846040516100bf919061033f565b6000604051808303816000865af19150503d80600081146100fc576040519150601f19603f3d011682016040523d82523d6000602084013e610101565b606091505b505090508061012357604051637dabd39960e01b815260040160405180910390fd5b846001600160a01b0316826001600160a01b03167f2150ada912bf189ed721c44211199e270903fc88008c2a1e1e889ef30fe67c5f60405160405180910390a3509392505050565b60006001600160a01b0383166101a457604051633202e20d60e21b81526001600160a01b03841660048201526024015b60405180910390fd5b60405172602d8060093d393df3363d3d373d3d3d363d7360681b60208201526bffffffffffffffffffffffff19606085901b1660338201526e5af43d82803e903d91602b57fd5bf360881b60478201526000906056016040516020818303038152906040529050828151602083016000f591506001600160a01b0382166102495760405163371e9e8960e21b81526001600160a01b038316600482015260240161019b565b5092915050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561027b57600080fd5b83356001600160a01b038116811461029257600080fd5b9250602084013567ffffffffffffffff808211156102af57600080fd5b818601915086601f8301126102c357600080fd5b8135818111156102d5576102d5610250565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd610250565b8160405282815289602084870101111561031657600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000825160005b818110156103605760208186018101518583015201610346565b50600092019182525091905056fea26469706673582212202318e271bb304c72c2e19dc693ef1bb2add88f8405bbba0b0bf5596d304fb29564736f6c63430008130033

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