Overview
ETH Balance
ETH Value
$0.00Multichain Info
Latest 25 from a total of 75 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy | 10773396 | 22 days ago | IN | 0 ETH | 0.00000296 | ||||
Deploy | 9636417 | 35 days ago | IN | 0 ETH | 0.00000506 | ||||
Deploy | 9636399 | 35 days ago | IN | 0 ETH | 0.00000425 | ||||
Deploy | 9636381 | 35 days ago | IN | 0 ETH | 0.00000352 | ||||
Deploy | 9636354 | 35 days ago | IN | 0 ETH | 0.00000242 | ||||
Deploy | 9636335 | 35 days ago | IN | 0 ETH | 0.00000182 | ||||
Deploy | 9630059 | 35 days ago | IN | 0 ETH | 0.00000189 | ||||
Deploy | 9630039 | 35 days ago | IN | 0 ETH | 0.00000199 | ||||
Deploy | 9528704 | 37 days ago | IN | 0 ETH | 0.00000504 | ||||
Deploy | 9476488 | 37 days ago | IN | 0 ETH | 0.00000522 | ||||
Deploy | 9009793 | 43 days ago | IN | 0 ETH | 0.00000153 | ||||
Deploy | 8923311 | 44 days ago | IN | 0 ETH | 0.00000508 | ||||
Deploy | 8923304 | 44 days ago | IN | 0 ETH | 0.00000429 | ||||
Deploy | 8923105 | 44 days ago | IN | 0 ETH | 0.00000356 | ||||
Deploy | 8859453 | 44 days ago | IN | 0 ETH | 0.00000182 | ||||
Deploy | 8857146 | 44 days ago | IN | 0 ETH | 0.00000163 | ||||
Deploy | 8857138 | 44 days ago | IN | 0 ETH | 0.00000186 | ||||
Deploy | 8857130 | 44 days ago | IN | 0 ETH | 0.00000192 | ||||
Deploy | 8857123 | 44 days ago | IN | 0 ETH | 0.00000198 | ||||
Deploy | 8853555 | 44 days ago | IN | 0 ETH | 0.00000512 | ||||
Deploy | 8853547 | 44 days ago | IN | 0 ETH | 0.00000432 | ||||
Deploy | 8853536 | 44 days ago | IN | 0 ETH | 0.00000359 | ||||
Deploy | 8853528 | 44 days ago | IN | 0 ETH | 0.00000242 | ||||
Deploy | 8853520 | 44 days ago | IN | 0 ETH | 0.00000182 | ||||
Deploy | 8761700 | 45 days ago | IN | 0 ETH | 0.00000216 |
Latest 25 internal transactions (View All)
Contract Source Code Verified (Exact Match)
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; import {CREATE3} from "solmate/src/utils/CREATE3.sol"; import {ICreate3Factory} from "./ICreate3Factory.sol"; /// @title Factory for deploying contracts to deterministic addresses via CREATE3 /// @notice Enables deploying contracts using CREATE3. Each deployer (msg.sender) has /// its own namespace for deployed addresses. contract Create3Factory is 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.deploy(salt, creationCode, msg.value); } 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.getDeployed(salt); } }
// SPDX-License-Identifier: AGPL-3.0 pragma solidity 0.8.28; /// @title Factory for deploying contracts to deterministic addresses via CREATE3 /// @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); }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Library for converting between addresses and bytes32 values. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol) library Bytes32AddressLib { function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) { return address(uint160(uint256(bytesValue))); } function fillLast12Bytes(address addressValue) internal pure returns (bytes32) { return bytes32(bytes20(addressValue)); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {Bytes32AddressLib} from "./Bytes32AddressLib.sol"; /// @notice Deploy to deterministic addresses without an initcode factor. /// @author 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 { using Bytes32AddressLib for bytes32; //--------------------------------------------------------------------------------// // Opcode | Opcode + Arguments | Description | Stack View // //--------------------------------------------------------------------------------// // 0x36 | 0x36 | CALLDATASIZE | size // // 0x3d | 0x3d | RETURNDATASIZE | 0 size // // 0x3d | 0x3d | RETURNDATASIZE | 0 0 size // // 0x37 | 0x37 | CALLDATACOPY | // // 0x36 | 0x36 | CALLDATASIZE | size // // 0x3d | 0x3d | RETURNDATASIZE | 0 size // // 0x34 | 0x34 | CALLVALUE | value 0 size // // 0xf0 | 0xf0 | CREATE | newContract // //--------------------------------------------------------------------------------// // Opcode | Opcode + Arguments | Description | Stack View // //--------------------------------------------------------------------------------// // 0x67 | 0x67XXXXXXXXXXXXXXXX | PUSH8 bytecode | bytecode // // 0x3d | 0x3d | RETURNDATASIZE | 0 bytecode // // 0x52 | 0x52 | MSTORE | // // 0x60 | 0x6008 | PUSH1 08 | 8 // // 0x60 | 0x6018 | PUSH1 18 | 24 8 // // 0xf3 | 0xf3 | RETURN | // //--------------------------------------------------------------------------------// bytes internal constant PROXY_BYTECODE = hex"67_36_3d_3d_37_36_3d_34_f0_3d_52_60_08_60_18_f3"; bytes32 internal constant PROXY_BYTECODE_HASH = keccak256(PROXY_BYTECODE); function deploy( bytes32 salt, bytes memory creationCode, uint256 value ) internal returns (address deployed) { bytes memory proxyChildBytecode = PROXY_BYTECODE; address proxy; /// @solidity memory-safe-assembly assembly { // Deploy a new contract with our pre-made bytecode via CREATE2. // We start 32 bytes into the code to avoid copying the byte length. proxy := create2(0, add(proxyChildBytecode, 32), mload(proxyChildBytecode), salt) } require(proxy != address(0), "DEPLOYMENT_FAILED"); deployed = getDeployed(salt); (bool success, ) = proxy.call{value: value}(creationCode); require(success && deployed.code.length != 0, "INITIALIZATION_FAILED"); } function getDeployed(bytes32 salt) internal view returns (address) { return getDeployed(salt, address(this)); } function getDeployed(bytes32 salt, address creator) internal pure returns (address) { address proxy = keccak256( abi.encodePacked( // Prefix: bytes1(0xFF), // Creator: creator, // Salt: salt, // Bytecode hash: PROXY_BYTECODE_HASH ) ).fromLast20Bytes(); return keccak256( abi.encodePacked( // 0xd6 = 0xc0 (short RLP prefix) + 0x16 (length of: 0x94 ++ proxy ++ 0x01) // 0x94 = 0x80 + 0x14 (0x14 = the length of an address, 20 bytes, in hex) hex"d6_94", proxy, hex"01" // Nonce of the proxy contract (1) ) ).fromLast20Bytes(); } }
{ "evmVersion": "paris", "libraries": {}, "optimizer": { "enabled": true, "runs": 300 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "viaIR": true }
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
608080604052346015576103c7908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816350f1c464146101f0575063cdcb760a1461003557600080fd5b60403660031901126101eb5760243567ffffffffffffffff81116101eb57366023820112156101eb5780600401359061006d826102a0565b9161007b6040519384610268565b808352602083019136602483830101116101eb57816000926024602093018537840101526040513360601b6bffffffffffffffffffffffff1916602082019081526004356034830152906100dc81605481015b03601f198101835282610268565b519020806100e86102bc565b6020815191016000f56001600160a01b038116156101b25760009261010f849330906102ea565b94519134905af13d156101ad573d610126816102a0565b906101346040519283610268565b8152600060203d92013e5b806101a3575b1561015e576020906001600160a01b0360405191168152f35b60405162461bcd60e51b815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606490fd5b50803b1515610145565b61013f565b60405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606490fd5b600080fd5b346101eb5760403660031901126101eb57600435906001600160a01b03821682036101eb5760609190911b6bffffffffffffffffffffffff19166020828101918252602435603484015291610257919061024d81605481016100ce565b51902030906102ea565b6001600160a01b0360405191168152f35b90601f8019910116810190811067ffffffffffffffff82111761028a57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161028a57601f01601f191660200190565b604051906102cb604083610268565b601082526f67363d3d37363d34f03d5260086018f360801b6020830152565b906001600160a01b03916102fc6102bc565b6020815191012060405191602083019360ff60f81b85526bffffffffffffffffffffffff199060601b1660218401526035830152605582015260558152610344607582610268565b5190206040516135a560f21b6020820190815260609290921b6bffffffffffffffffffffffff19166022820152600160f81b60368201526017815261038a603782610268565b519020169056fea264697066735822122065f6ceb35136aea978989287647a62e6025431b04f6b2f56309adb7824cd473664736f6c634300081c0033
Deployed Bytecode
0x608080604052600436101561001357600080fd5b60003560e01c90816350f1c464146101f0575063cdcb760a1461003557600080fd5b60403660031901126101eb5760243567ffffffffffffffff81116101eb57366023820112156101eb5780600401359061006d826102a0565b9161007b6040519384610268565b808352602083019136602483830101116101eb57816000926024602093018537840101526040513360601b6bffffffffffffffffffffffff1916602082019081526004356034830152906100dc81605481015b03601f198101835282610268565b519020806100e86102bc565b6020815191016000f56001600160a01b038116156101b25760009261010f849330906102ea565b94519134905af13d156101ad573d610126816102a0565b906101346040519283610268565b8152600060203d92013e5b806101a3575b1561015e576020906001600160a01b0360405191168152f35b60405162461bcd60e51b815260206004820152601560248201527f494e495449414c495a4154494f4e5f4641494c454400000000000000000000006044820152606490fd5b50803b1515610145565b61013f565b60405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606490fd5b600080fd5b346101eb5760403660031901126101eb57600435906001600160a01b03821682036101eb5760609190911b6bffffffffffffffffffffffff19166020828101918252602435603484015291610257919061024d81605481016100ce565b51902030906102ea565b6001600160a01b0360405191168152f35b90601f8019910116810190811067ffffffffffffffff82111761028a57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161028a57601f01601f191660200190565b604051906102cb604083610268565b601082526f67363d3d37363d34f03d5260086018f360801b6020830152565b906001600160a01b03916102fc6102bc565b6020815191012060405191602083019360ff60f81b85526bffffffffffffffffffffffff199060601b1660218401526035830152605582015260558152610344607582610268565b5190206040516135a560f21b6020820190815260609290921b6bffffffffffffffffffffffff19166022820152600160f81b60368201526017815261038a603782610268565b519020169056fea264697066735822122065f6ceb35136aea978989287647a62e6025431b04f6b2f56309adb7824cd473664736f6c634300081c0033
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.