Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 17389310 | 461 days ago | IN | 0 ETH | 0.0069257 |
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
ModuleProxyFactory
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b506103a4806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004361003e366004610266565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60006100a384848051906020012084604051602001610088929190918252602082015260400190565b6040516020818303038152906040528051906020012061016b565b90506000816001600160a01b0316846040516100bf919061033f565b6000604051808303816000865af19150503d80600081146100fc576040519150601f19603f3d011682016040523d82523d6000602084013e610101565b606091505b505090508061012357604051637dabd39960e01b815260040160405180910390fd5b846001600160a01b0316826001600160a01b03167f2150ada912bf189ed721c44211199e270903fc88008c2a1e1e889ef30fe67c5f60405160405180910390a3509392505050565b60006001600160a01b0383166101a457604051633202e20d60e21b81526001600160a01b03841660048201526024015b60405180910390fd5b60405172602d8060093d393df3363d3d373d3d3d363d7360681b60208201526bffffffffffffffffffffffff19606085901b1660338201526e5af43d82803e903d91602b57fd5bf360881b60478201526000906056016040516020818303038152906040529050828151602083016000f591506001600160a01b0382166102495760405163371e9e8960e21b81526001600160a01b038316600482015260240161019b565b5092915050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561027b57600080fd5b83356001600160a01b038116811461029257600080fd5b9250602084013567ffffffffffffffff808211156102af57600080fd5b818601915086601f8301126102c357600080fd5b8135818111156102d5576102d5610250565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd610250565b8160405282815289602084870101111561031657600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000825160005b818110156103605760208186018101518583015201610346565b50600092019182525091905056fea26469706673582212202318e271bb304c72c2e19dc693ef1bb2add88f8405bbba0b0bf5596d304fb29564736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004361003e366004610266565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60006100a384848051906020012084604051602001610088929190918252602082015260400190565b6040516020818303038152906040528051906020012061016b565b90506000816001600160a01b0316846040516100bf919061033f565b6000604051808303816000865af19150503d80600081146100fc576040519150601f19603f3d011682016040523d82523d6000602084013e610101565b606091505b505090508061012357604051637dabd39960e01b815260040160405180910390fd5b846001600160a01b0316826001600160a01b03167f2150ada912bf189ed721c44211199e270903fc88008c2a1e1e889ef30fe67c5f60405160405180910390a3509392505050565b60006001600160a01b0383166101a457604051633202e20d60e21b81526001600160a01b03841660048201526024015b60405180910390fd5b60405172602d8060093d393df3363d3d373d3d3d363d7360681b60208201526bffffffffffffffffffffffff19606085901b1660338201526e5af43d82803e903d91602b57fd5bf360881b60478201526000906056016040516020818303038152906040529050828151602083016000f591506001600160a01b0382166102495760405163371e9e8960e21b81526001600160a01b038316600482015260240161019b565b5092915050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561027b57600080fd5b83356001600160a01b038116811461029257600080fd5b9250602084013567ffffffffffffffff808211156102af57600080fd5b818601915086601f8301126102c357600080fd5b8135818111156102d5576102d5610250565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd610250565b8160405282815289602084870101111561031657600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b6000825160005b818110156103605760208186018101518583015201610346565b50600092019182525091905056fea26469706673582212202318e271bb304c72c2e19dc693ef1bb2add88f8405bbba0b0bf5596d304fb29564736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.