Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 23 from a total of 23 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy | 20497828 | 15 days ago | IN | 0 ETH | 0.00005536 | ||||
Deploy | 20497820 | 15 days ago | IN | 0 ETH | 0.00012842 | ||||
Deploy | 20497812 | 15 days ago | IN | 0 ETH | 0.00015508 | ||||
Deploy | 20497746 | 15 days ago | IN | 0 ETH | 0.00002582 | ||||
Deploy | 20497738 | 15 days ago | IN | 0 ETH | 0.0000713 | ||||
Deploy | 20497729 | 15 days ago | IN | 0 ETH | 0.00015084 | ||||
Deploy | 20497721 | 15 days ago | IN | 0 ETH | 0.0001484 | ||||
Deploy | 20497712 | 15 days ago | IN | 0 ETH | 0.00008914 | ||||
Deploy | 20431780 | 18 days ago | IN | 0 ETH | 0.00000558 | ||||
Deploy | 20431773 | 18 days ago | IN | 0 ETH | 0.00000558 | ||||
Deploy | 20431763 | 18 days ago | IN | 0 ETH | 0.00000878 | ||||
Deploy | 20431755 | 18 days ago | IN | 0 ETH | 0.0000284 | ||||
Deploy | 20088795 | 31 days ago | IN | 0 ETH | 0.0000086 | ||||
Deploy | 20088789 | 31 days ago | IN | 0 ETH | 0.00001654 | ||||
Deploy | 20088754 | 31 days ago | IN | 0 ETH | 0.00000912 | ||||
Deploy | 20088747 | 31 days ago | IN | 0 ETH | 0.00003873 | ||||
Deploy | 20086373 | 31 days ago | IN | 0 ETH | 0.00001902 | ||||
Deploy | 20086363 | 31 days ago | IN | 0 ETH | 0.0000419 | ||||
Deploy | 20086355 | 31 days ago | IN | 0 ETH | 0.0000245 | ||||
Deploy | 20086346 | 31 days ago | IN | 0 ETH | 0.00001724 | ||||
Deploy | 19455202 | 56 days ago | IN | 0 ETH | 0.000042 | ||||
Deploy | 19455196 | 56 days ago | IN | 0 ETH | 0.00004608 | ||||
Deploy | 17707320 | 124 days ago | IN | 0 ETH | 0.00295673 |
Latest 23 internal transactions
Loading...
Loading
Contract Name:
CREATE3Factory
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0 pragma solidity ^0.8.7; import { CREATE3 } from "./CREATE3.sol"; import { ICREATE3Factory } from "./ICREATE3Factory.sol"; /// @title Factory for deploying contracts to deterministic addresses via CREATE3 /// @author zefram.eth /// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has /// its own namespace for deployed addresses. contract CREATE3Factory is ICREATE3Factory { /// @inheritdoc ICREATE3Factory function deploy(bytes32 salt, bytes memory creationCode) external payable override returns (address deployed) { // hash salt with the deployer address to give each deployer its own namespace salt = keccak256(abi.encodePacked(msg.sender, salt)); return CREATE3.deployDeterministic(msg.value, creationCode, salt); } /// @inheritdoc ICREATE3Factory function getDeployed(address deployer, bytes32 salt) external view override returns (address deployed) { // hash salt with the deployer address to give each deployer its own namespace salt = keccak256(abi.encodePacked(deployer, salt)); return CREATE3.predictDeterministicAddress(salt); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.4; /// @notice Deterministic deployments agnostic to the initialization code. /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/CREATE3.sol) /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol) /// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol) library CREATE3 { /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ /* CUSTOM ERRORS */ /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ /// @dev Unable to deploy the contract. error DeploymentFailed(); /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ /* BYTECODE CONSTANTS */ /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ /** * -------------------------------------------------------------------+ * Opcode | Mnemonic | Stack | Memory | * -------------------------------------------------------------------| * 36 | CALLDATASIZE | cds | | * 3d | RETURNDATASIZE | 0 cds | | * 3d | RETURNDATASIZE | 0 0 cds | | * 37 | CALLDATACOPY | | [0..cds): calldata | * 36 | CALLDATASIZE | cds | [0..cds): calldata | * 3d | RETURNDATASIZE | 0 cds | [0..cds): calldata | * 34 | CALLVALUE | value 0 cds | [0..cds): calldata | * f0 | CREATE | newContract | [0..cds): calldata | * -------------------------------------------------------------------| * Opcode | Mnemonic | Stack | Memory | * -------------------------------------------------------------------| * 67 bytecode | PUSH8 bytecode | bytecode | | * 3d | RETURNDATASIZE | 0 bytecode | | * 52 | MSTORE | | [0..8): bytecode | * 60 0x08 | PUSH1 0x08 | 0x08 | [0..8): bytecode | * 60 0x18 | PUSH1 0x18 | 0x18 0x08 | [0..8): bytecode | * f3 | RETURN | | [0..8): bytecode | * -------------------------------------------------------------------+ */ /// @dev The proxy initialization code. uint256 private constant _PROXY_INITCODE = 0x67363d3d37363d34f03d5260086018f3; /// @dev Hash of the `_PROXY_INITCODE`. /// Equivalent to `keccak256(abi.encodePacked(hex"67363d3d37363d34f03d5260086018f3"))`. bytes32 internal constant PROXY_INITCODE_HASH = 0x21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f; /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/ /* CREATE3 OPERATIONS */ /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/ /// @dev Deploys `initCode` deterministically with a `salt`. /// Returns the deterministic address of the deployed contract, /// which solely depends on `salt`. function deployDeterministic(bytes memory initCode, bytes32 salt) internal returns (address deployed) { deployed = deployDeterministic(0, initCode, salt); } /// @dev Deploys `initCode` deterministically with a `salt`. /// The deployed contract is funded with `value` (in wei) ETH. /// Returns the deterministic address of the deployed contract, /// which solely depends on `salt`. function deployDeterministic(uint256 value, bytes memory initCode, bytes32 salt) internal returns (address deployed) { /// @solidity memory-safe-assembly assembly { mstore(0x00, _PROXY_INITCODE) // Store the `_PROXY_INITCODE`. let proxy := create2(0, 0x10, 0x10, salt) if iszero(proxy) { mstore(0x00, 0x30116425) // `DeploymentFailed()`. revert(0x1c, 0x04) } mstore(0x14, proxy) // Store the proxy's address. // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01). // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex). mstore(0x00, 0xd694) mstore8(0x34, 0x01) // Nonce of the proxy contract (1). deployed := keccak256(0x1e, 0x17) if iszero( mul( // The arguments of `mul` are evaluated last to first. extcodesize(deployed), call(gas(), proxy, value, add(initCode, 0x20), mload(initCode), 0x00, 0x00) ) ) { mstore(0x00, 0x30116425) // `DeploymentFailed()`. revert(0x1c, 0x04) } } } /// @dev Returns the deterministic address for `salt`. function predictDeterministicAddress(bytes32 salt) internal view returns (address deployed) { deployed = predictDeterministicAddress(salt, address(this)); } /// @dev Returns the deterministic address for `salt` with `deployer`. function predictDeterministicAddress(bytes32 salt, address deployer) internal pure returns (address deployed) { /// @solidity memory-safe-assembly assembly { let m := mload(0x40) // Cache the free memory pointer. mstore(0x00, deployer) // Store `deployer`. mstore8(0x0b, 0xff) // Store the prefix. mstore(0x20, salt) // Store the salt. mstore(0x40, PROXY_INITCODE_HASH) // Store the bytecode hash. mstore(0x14, keccak256(0x0b, 0x55)) // Store the proxy's address. mstore(0x40, m) // Restore the free memory pointer. // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01). // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex). mstore(0x00, 0xd694) mstore8(0x34, 0x01) // Nonce of the proxy contract (1). deployed := keccak256(0x1e, 0x17) } } }
// SPDX-License-Identifier: AGPL-3.0 pragma solidity >=0.6.0; /// @title Factory for deploying contracts to deterministic addresses via CREATE3 /// @author zefram.eth /// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has /// its own namespace for deployed addresses. interface ICREATE3Factory { /// @notice Deploys a contract using CREATE3 /// @dev The provided salt is hashed together with msg.sender to generate the final salt /// @param salt The deployer-specific salt for determining the deployed contract's address /// @param creationCode The creation code of the contract to deploy /// @return deployed The address of the deployed contract function deploy(bytes32 salt, bytes memory creationCode) external payable returns (address deployed); /// @notice Predicts the address of a deployed contract /// @dev The provided salt is hashed together with the deployer address to generate the final salt /// @param deployer The deployer account that will call deploy() /// @param salt The deployer-specific salt for determining the deployed contract's address /// @return deployed The address of the contract that will be deployed function getDeployed(address deployer, bytes32 salt) external view returns (address deployed); }
{ "optimizer": { "enabled": true, "runs": 200, "details": { "yul": false } }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"creationCode","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"getDeployed","outputs":[{"internalType":"address","name":"deployed","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610435806100206000396000f3fe6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610064575b600080fd5b34801561003a57600080fd5b5061004e610049366004610208565b610077565b60405161005b9190610254565b60405180910390f35b61004e61007236600461035d565b6100b6565b6000828260405160200161008c9291906103d9565b6040516020818303038152906040528051906020012091506100ad826100ee565b90505b92915050565b600033836040516020016100cb9291906103d9565b6040516020818303038152906040528051906020012092506100ad3483856100fa565b60006100b0823061016a565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061012a5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101625763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b206014528060405261d694600052600160345350506017601e2092915050565b60006001600160a01b0382166100b0565b6101de816101c4565b81146101e957600080fd5b50565b80356100b0816101d5565b806101de565b80356100b0816101f7565b6000806040838503121561021e5761021e600080fd5b600061022a85856101ec565b925050602061023b858286016101fd565b9150509250929050565b61024e816101c4565b82525050565b602081016100b08284610245565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561029e5761029e610262565b6040525050565b60006102b060405190565b90506102bc8282610278565b919050565b600067ffffffffffffffff8211156102db576102db610262565b601f19601f83011660200192915050565b82818337506000910152565b600061030b610306846102c1565b6102a5565b90508281526020810184848401111561032657610326600080fd5b6101628482856102ec565b600082601f83011261034557610345600080fd5b81356103558482602086016102f8565b949350505050565b6000806040838503121561037357610373600080fd5b600061037f85856101fd565b925050602083013567ffffffffffffffff81111561039f5761039f600080fd5b61023b85828601610331565b60006100b08260601b90565b60006100b0826103ab565b61024e6103ce826101c4565b6103b7565b8061024e565b60006103e582856103c2565b6014820191506103f582846103d3565b506020019291505056fea26469706673582212204bec886f54707d9b8c65587c5ea3f7bfc14034d5daba518fa4eb3fdbf9f363f464736f6c63430008090033
Deployed Bytecode
0x6080604052600436106100295760003560e01c806350f1c4641461002e578063cdcb760a14610064575b600080fd5b34801561003a57600080fd5b5061004e610049366004610208565b610077565b60405161005b9190610254565b60405180910390f35b61004e61007236600461035d565b6100b6565b6000828260405160200161008c9291906103d9565b6040516020818303038152906040528051906020012091506100ad826100ee565b90505b92915050565b600033836040516020016100cb9291906103d9565b6040516020818303038152906040528051906020012092506100ad3483856100fa565b60006100b0823061016a565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061012a5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101625763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b206014528060405261d694600052600160345350506017601e2092915050565b60006001600160a01b0382166100b0565b6101de816101c4565b81146101e957600080fd5b50565b80356100b0816101d5565b806101de565b80356100b0816101f7565b6000806040838503121561021e5761021e600080fd5b600061022a85856101ec565b925050602061023b858286016101fd565b9150509250929050565b61024e816101c4565b82525050565b602081016100b08284610245565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561029e5761029e610262565b6040525050565b60006102b060405190565b90506102bc8282610278565b919050565b600067ffffffffffffffff8211156102db576102db610262565b601f19601f83011660200192915050565b82818337506000910152565b600061030b610306846102c1565b6102a5565b90508281526020810184848401111561032657610326600080fd5b6101628482856102ec565b600082601f83011261034557610345600080fd5b81356103558482602086016102f8565b949350505050565b6000806040838503121561037357610373600080fd5b600061037f85856101fd565b925050602083013567ffffffffffffffff81111561039f5761039f600080fd5b61023b85828601610331565b60006100b08260601b90565b60006100b0826103ab565b61024e6103ce826101c4565b6103b7565b8061024e565b60006103e582856103c2565b6014820191506103f582846103d3565b506020019291505056fea26469706673582212204bec886f54707d9b8c65587c5ea3f7bfc14034d5daba518fa4eb3fdbf9f363f464736f6c63430008090033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.