CREATE3Factory
0xc7c662fc760fe1d5cb97fd8a68cb43a046da3f7d
Verification
Verified
v0.8.28+commit.7893614a
Type
Contract
1,591 bytes
ABI entries
2
1 read · 1 write
License
none
Contract information
- Address
- 0xc7c662fc760fe1d5cb97fd8a68cb43a046da3f7d
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.28+commit.7893614a
- Optimization
- Enabled
- Creator
- 0xB7878Fbc50…5749669Ad6
- Creation tx
- 0x7414e6c802…f11d481010
Token
Not a token
This contract does not expose ERC-20 metadata.
Read contract (1)
getDeployed(address, bytes32) → address
ABI
[
{
"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"
}
]Source code
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.28;
import {CREATE3} from "solmate/utils/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.deploy(salt, creationCode, msg.value);
}
/// @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.getDeployed(salt);
}
}
Chain explorer2583msChain node82ms