Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 123 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Deploy | 21688329 | 412 days ago | IN | 0 ETH | 0.11700175 | ||||
| Update Best Addr... | 21338345 | 461 days ago | IN | 0 ETH | 0.00054509 | ||||
| Update Best Addr... | 21312210 | 465 days ago | IN | 0 ETH | 0.00097526 | ||||
| Update Best Addr... | 21302682 | 466 days ago | IN | 0 ETH | 0.00240005 | ||||
| Update Best Addr... | 21302638 | 466 days ago | IN | 0 ETH | 0.00093389 | ||||
| Update Best Addr... | 21302146 | 466 days ago | IN | 0 ETH | 0.00101053 | ||||
| Update Best Addr... | 21302141 | 466 days ago | IN | 0 ETH | 0.00094954 | ||||
| Deploy | 21302123 | 466 days ago | IN | 0 ETH | 0.00035586 | ||||
| Update Best Addr... | 21299084 | 466 days ago | IN | 0 ETH | 0.00040323 | ||||
| Update Best Addr... | 21295386 | 467 days ago | IN | 0 ETH | 0.00091173 | ||||
| Update Best Addr... | 21291751 | 467 days ago | IN | 0 ETH | 0.00047991 | ||||
| Update Best Addr... | 21291735 | 467 days ago | IN | 0 ETH | 0.00047084 | ||||
| Update Best Addr... | 21291660 | 467 days ago | IN | 0 ETH | 0.0003276 | ||||
| Update Best Addr... | 21288144 | 468 days ago | IN | 0 ETH | 0.00091778 | ||||
| Update Best Addr... | 21281081 | 469 days ago | IN | 0 ETH | 0.0015622 | ||||
| Update Best Addr... | 21280757 | 469 days ago | IN | 0 ETH | 0.0013033 | ||||
| Update Best Addr... | 21267235 | 471 days ago | IN | 0 ETH | 0.0007177 | ||||
| Update Best Addr... | 21267071 | 471 days ago | IN | 0 ETH | 0.00032898 | ||||
| Update Best Addr... | 21258419 | 472 days ago | IN | 0 ETH | 0.000553 | ||||
| Update Best Addr... | 21256195 | 472 days ago | IN | 0 ETH | 0.00058145 | ||||
| Update Best Addr... | 21255888 | 472 days ago | IN | 0 ETH | 0.00052616 | ||||
| Update Best Addr... | 21255871 | 472 days ago | IN | 0 ETH | 0.00035365 | ||||
| Update Best Addr... | 21255862 | 472 days ago | IN | 0 ETH | 0.00019966 | ||||
| Update Best Addr... | 21252440 | 473 days ago | IN | 0 ETH | 0.00131774 | ||||
| Update Best Addr... | 21252407 | 473 days ago | IN | 0 ETH | 0.00095334 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60a03460 | 21688329 | 412 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
UniswapV4DeployerCompetition
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 44444444 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPADIX-License-Identifier: UNLICENSED
pragma solidity 0.8.26;
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
import {VanityAddressLib} from "./libraries/VanityAddressLib.sol";
import {IUniswapV4DeployerCompetition} from "./interfaces/IUniswapV4DeployerCompetition.sol";
/// @title UniswapV4DeployerCompetition
/// @notice A contract to crowdsource a salt for the best Uniswap V4 address
contract UniswapV4DeployerCompetition is IUniswapV4DeployerCompetition {
using VanityAddressLib for address;
/// @dev The salt for the best address found so far
bytes32 public bestAddressSalt;
/// @dev The submitter of the best address found so far
address public bestAddressSubmitter;
/// @dev The deadline for the competition
uint256 public immutable competitionDeadline;
/// @dev The init code hash of the V4 contract
bytes32 public immutable initCodeHash;
/// @dev The deployer who can initiate the deployment of the v4 PoolManager, until the exclusive deploy deadline.
/// @dev After this deadline anyone can deploy.
address public immutable deployer;
/// @dev The deadline for exclusive deployment by deployer after deadline
uint256 public immutable exclusiveDeployDeadline;
constructor(
bytes32 _initCodeHash,
uint256 _competitionDeadline,
address _exclusiveDeployer,
uint256 _exclusiveDeployLength
) {
initCodeHash = _initCodeHash;
competitionDeadline = _competitionDeadline;
exclusiveDeployDeadline = _competitionDeadline + _exclusiveDeployLength;
deployer = _exclusiveDeployer;
}
/// @inheritdoc IUniswapV4DeployerCompetition
function updateBestAddress(bytes32 salt) external {
if (block.timestamp > competitionDeadline) {
revert CompetitionOver(block.timestamp, competitionDeadline);
}
address saltSubAddress = address(bytes20(salt));
if (saltSubAddress != msg.sender && saltSubAddress != address(0)) revert InvalidSender(salt, msg.sender);
address newAddress = Create2.computeAddress(salt, initCodeHash);
address _bestAddress = bestAddress();
if (!newAddress.betterThan(_bestAddress)) {
revert WorseAddress(newAddress, _bestAddress, newAddress.score(), _bestAddress.score());
}
bestAddressSalt = salt;
bestAddressSubmitter = msg.sender;
emit NewAddressFound(newAddress, msg.sender, newAddress.score());
}
/// @inheritdoc IUniswapV4DeployerCompetition
function deploy(bytes memory bytecode) external {
if (keccak256(bytecode) != initCodeHash) {
revert InvalidBytecode();
}
if (block.timestamp <= competitionDeadline) {
revert CompetitionNotOver(block.timestamp, competitionDeadline);
}
if (msg.sender != deployer && block.timestamp <= exclusiveDeployDeadline) {
// anyone can deploy after the deadline
revert NotAllowedToDeploy(msg.sender, deployer);
}
// the owner of the contract must be encoded in the bytecode
Create2.deploy(0, bestAddressSalt, bytecode);
}
/// @dev returns the best address found so far
function bestAddress() public view returns (address) {
return Create2.computeAddress(bestAddressSalt, initCodeHash);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Create2.sol)
pragma solidity ^0.8.20;
/**
* @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.
* `CREATE2` can be used to compute in advance the address where a smart
* contract will be deployed, which allows for interesting new mechanisms known
* as 'counterfactual interactions'.
*
* See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more
* information.
*/
library Create2 {
/**
* @dev Not enough balance for performing a CREATE2 deploy.
*/
error Create2InsufficientBalance(uint256 balance, uint256 needed);
/**
* @dev There's no code to deploy.
*/
error Create2EmptyBytecode();
/**
* @dev The deployment failed.
*/
error Create2FailedDeployment();
/**
* @dev Deploys a contract using `CREATE2`. The address where the contract
* will be deployed can be known in advance via {computeAddress}.
*
* The bytecode for a contract can be obtained from Solidity with
* `type(contractName).creationCode`.
*
* Requirements:
*
* - `bytecode` must not be empty.
* - `salt` must have not been used for `bytecode` already.
* - the factory must have a balance of at least `amount`.
* - if `amount` is non-zero, `bytecode` must have a `payable` constructor.
*/
function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {
if (address(this).balance < amount) {
revert Create2InsufficientBalance(address(this).balance, amount);
}
if (bytecode.length == 0) {
revert Create2EmptyBytecode();
}
/// @solidity memory-safe-assembly
assembly {
addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)
}
if (addr == address(0)) {
revert Create2FailedDeployment();
}
}
/**
* @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the
* `bytecodeHash` or `salt` will result in a new destination address.
*/
function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {
return computeAddress(salt, bytecodeHash, address(this));
}
/**
* @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
* `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
*/
function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {
/// @solidity memory-safe-assembly
assembly {
let ptr := mload(0x40) // Get free memory pointer
// | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... |
// |-------------------|---------------------------------------------------------------------------|
// | bytecodeHash | CCCCCCCCCCCCC...CC |
// | salt | BBBBBBBBBBBBB...BB |
// | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA |
// | 0xFF | FF |
// |-------------------|---------------------------------------------------------------------------|
// | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |
// | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |
mstore(add(ptr, 0x40), bytecodeHash)
mstore(add(ptr, 0x20), salt)
mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes
let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff
mstore8(start, 0xff)
addr := keccak256(start, 85)
}
}
}// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
/// @title VanityAddressLib
/// @notice A library to score addresses based on their vanity
library VanityAddressLib {
/// @notice Compares two addresses and returns true if the first address has a better vanity score
/// @param first The first address to compare
/// @param second The second address to compare
/// @return better True if the first address has a better vanity score
function betterThan(address first, address second) internal pure returns (bool better) {
return score(first) > score(second);
}
/// @notice Scores an address based on its vanity
/// @dev Scoring rules:
/// Requirement: The first nonzero nibble must be 4
/// 10 points for every leading 0 nibble
/// 40 points if the first 4 is followed by 3 more 4s
/// 20 points if the first nibble after the 4 4s is NOT a 4
/// 20 points if the last 4 nibbles are 4s
/// 1 point for every 4
/// @param addr The address to score
/// @return calculatedScore The vanity score of the address
function score(address addr) internal pure returns (uint256 calculatedScore) {
// convert the address to bytes for easier parsing
bytes20 addrBytes = bytes20(addr);
unchecked {
// 10 points per leading zero nibble
uint256 leadingZeroCount = getLeadingNibbleCount(addrBytes, 0, 0);
calculatedScore += (leadingZeroCount * 10);
// special handling for 4s immediately after leading 0s
uint256 leadingFourCount = getLeadingNibbleCount(addrBytes, leadingZeroCount, 4);
// If the first nonzero nibble is not 4, return 0
if (leadingFourCount == 0) {
return 0;
} else if (leadingFourCount == 4) {
// 60 points if exactly 4 4s
calculatedScore += 60;
} else if (leadingFourCount > 4) {
// 40 points if more than 4 4s
calculatedScore += 40;
}
// handling for remaining nibbles
for (uint256 i = 0; i < addrBytes.length * 2; i++) {
uint8 currentNibble = getNibble(addrBytes, i);
// 1 extra point for any 4 nibbles
if (currentNibble == 4) {
calculatedScore += 1;
}
}
// If the last 4 nibbles are 4s, add 20 points
if (addrBytes[18] == 0x44 && addrBytes[19] == 0x44) {
calculatedScore += 20;
}
}
}
/// @notice Returns the number of leading nibbles in an address that match a given value
/// @param addrBytes The address to count the leading zero nibbles in
function getLeadingNibbleCount(bytes20 addrBytes, uint256 startIndex, uint8 comparison)
internal
pure
returns (uint256 count)
{
if (startIndex >= addrBytes.length * 2) {
return count;
}
for (uint256 i = startIndex; i < addrBytes.length * 2; i++) {
uint8 currentNibble = getNibble(addrBytes, i);
if (currentNibble != comparison) {
return count;
}
count += 1;
}
}
/// @notice Returns the nibble at a given index in an address
/// @param input The address to get the nibble from
/// @param nibbleIndex The index of the nibble to get
function getNibble(bytes20 input, uint256 nibbleIndex) internal pure returns (uint8 currentNibble) {
uint8 currByte = uint8(input[nibbleIndex / 2]);
if (nibbleIndex % 2 == 0) {
// Get the higher nibble of the byte
currentNibble = currByte >> 4;
} else {
// Get the lower nibble of the byte
currentNibble = currByte & 0x0F;
}
}
}// SPADIX-License-Identifier: UNLICENSED
pragma solidity 0.8.26;
/// @title UniswapV4DeployerCompetition
/// @notice A competition to deploy the UniswapV4 contract with the best address
interface IUniswapV4DeployerCompetition {
event NewAddressFound(address indexed bestAddress, address indexed submitter, uint256 score);
error InvalidBytecode();
error CompetitionNotOver(uint256 currentTime, uint256 deadline);
error CompetitionOver(uint256 currentTime, uint256 deadline);
error NotAllowedToDeploy(address sender, address deployer);
error WorseAddress(address newAddress, address bestAddress, uint256 newScore, uint256 bestScore);
error InvalidSender(bytes32 salt, address sender);
/// @notice Updates the best address if the new address has a better vanity score
/// @param salt The salt to use to compute the new address with CREATE2
/// @dev The first 20 bytes of the salt must be either address(0) or msg.sender
function updateBestAddress(bytes32 salt) external;
/// @notice deploys the Uniswap v4 PoolManager contract
/// @param bytecode The bytecode of the Uniswap v4 PoolManager contract
/// @dev The bytecode must match the initCodeHash
function deploy(bytes memory bytecode) external;
}{
"remappings": [
"@uniswap/v4-core/=lib/v4-core/",
"forge-gas-snapshot/=lib/forge-gas-snapshot/src/",
"ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/v4-core/lib/forge-std/src/",
"openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/",
"solmate/=lib/v4-core/lib/solmate/",
"@ensdomains/=lib/v4-core/node_modules/@ensdomains/",
"@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/",
"@openzeppelin/contracts/=lib/v4-core/lib/openzeppelin-contracts/contracts/",
"erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/",
"hardhat/=lib/v4-core/node_modules/hardhat/",
"permit2/=lib/permit2/",
"v4-core/=lib/v4-core/src/"
],
"optimizer": {
"enabled": true,
"runs": 44444444
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "none",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "cancun",
"viaIR": true,
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"bytes32","name":"_initCodeHash","type":"bytes32"},{"internalType":"uint256","name":"_competitionDeadline","type":"uint256"},{"internalType":"address","name":"_exclusiveDeployer","type":"address"},{"internalType":"uint256","name":"_exclusiveDeployLength","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"CompetitionNotOver","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"CompetitionOver","type":"error"},{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidBytecode","type":"error"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"}],"name":"InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"deployer","type":"address"}],"name":"NotAllowedToDeploy","type":"error"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"address","name":"bestAddress","type":"address"},{"internalType":"uint256","name":"newScore","type":"uint256"},{"internalType":"uint256","name":"bestScore","type":"uint256"}],"name":"WorseAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bestAddress","type":"address"},{"indexed":true,"internalType":"address","name":"submitter","type":"address"},{"indexed":false,"internalType":"uint256","name":"score","type":"uint256"}],"name":"NewAddressFound","type":"event"},{"inputs":[],"name":"bestAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bestAddressSalt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bestAddressSubmitter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"competitionDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"bytecode","type":"bytes"}],"name":"deploy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exclusiveDeployDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"updateBestAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
610100346100f057601f610b7538819003918201601f19168301916001600160401b038311848410176100f4578084926080946040528339810103126100f057805160208201516040830151929091906001600160a01b03841684036100f057606001519060a0528160805281018091116100dc5760e05260c052604051610a6c9081610109823960805181818160b2015281816104180152610601015260a05181818160ef015281816103520152818161047401526105db015260c0518181816103bf0152610640015260e0518181816104ec015261071d0152f35b634e487b7160e01b5f52601160045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c9081627743601461050f5750806360f871bb146104b7578063756f06831461043b578063a94557b8146103e3578063d5f3948814610375578063db4c545e1461031d578063e87a6f84146102cc578063edb6e1ca146102925763fd3989f51461007e575f80fd5b3461028e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e576004357f000000000000000000000000000000000000000000000000000000000000000080421161025f57508060601c338114159081610255575b50610226577f00000000000000000000000000000000000000000000000000000000000000009061012761011d30848461091a565b9230905f5461091a565b610130836107c8565b610139826107c8565b10156101ba57505f55337fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155610175816107c8565b6040519081527f7e8d398a63ed37daa88e8998642ec9be730043b51e67affe790111f209e4046b602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b826084916101c7826107c8565b73ffffffffffffffffffffffffffffffffffffffff6101e5836107c8565b9281604051957f29551db800000000000000000000000000000000000000000000000000000000875216600486015216602484015260448301526064820152fd5b7f8c7d9949000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b905015155f6100e8565b7fafa178b0000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b5f80fd5b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760205f54604051908152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206104995f5430907f00000000000000000000000000000000000000000000000000000000000000009061091a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461028e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760043567ffffffffffffffff811161028e573660238201121561028e57806004013567ffffffffffffffff811161079b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81601f8401160116830183811067ffffffffffffffff82111761079b576040528083526020830191366024838301011161028e57815f92602460209301853784010152815181207f000000000000000000000000000000000000000000000000000000000000000003610773577f000000000000000000000000000000000000000000000000000000000000000080421115610744575073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803314158061071a575b6106eb57505f54908251156106c35773ffffffffffffffffffffffffffffffffffffffff9251905ff5161561069b57005b7f741752c2000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4ca249dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc419b2d2000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b507f000000000000000000000000000000000000000000000000000000000000000042111561066a565b7f0474c5c1000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b7f23639643000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016906107f78261093a565b610805600a820291846109b1565b8061081157505f925050565b600481036109045750603c01915b5f5b602881106108dc57507f44000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008260121a60f81b1614908161088a575b5061088357565b9060140190565b60131a60f81b7fff00000000000000000000000000000000000000000000000000000000000000167f44000000000000000000000000000000000000000000000000000000000000001490505f61087c565b600460ff6108ea8385610a0b565b16146108f9575b600101610821565b6001909301926108f1565b600490939193111561081f57916028019161081f565b90605592600b92604051926040840152602083015281520160ff81532090565b5f919082906028905b81831061094f57505050565b9092919360ff61095f8684610a0b565b166109a9576001810180911161097c576001909401919290610943565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b925050915090565b915f9260ff6028169283811015610a02579192905b8183106109d257505050565b90929193600460ff6109e48785610a0b565b16036109a9576001810180911161097c5760019094019192906109c6565b50509150505f90565b8160011c906014821015610a3257901a90600116610a2c5760041c60ff1690565b600f1690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c634300081a000a94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d900000000000000000000000000000000000000000000000000000000674d3ecf0000000000000000000000006b93e3bb9c0780c0f9042346ffc379530a5882c10000000000000000000000000000000000000000000000000000000000506b80
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c9081627743601461050f5750806360f871bb146104b7578063756f06831461043b578063a94557b8146103e3578063d5f3948814610375578063db4c545e1461031d578063e87a6f84146102cc578063edb6e1ca146102925763fd3989f51461007e575f80fd5b3461028e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e576004357f00000000000000000000000000000000000000000000000000000000674d3ecf80421161025f57508060601c338114159081610255575b50610226577f94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d99061012761011d30848461091a565b9230905f5461091a565b610130836107c8565b610139826107c8565b10156101ba57505f55337fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155610175816107c8565b6040519081527f7e8d398a63ed37daa88e8998642ec9be730043b51e67affe790111f209e4046b602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b826084916101c7826107c8565b73ffffffffffffffffffffffffffffffffffffffff6101e5836107c8565b9281604051957f29551db800000000000000000000000000000000000000000000000000000000875216600486015216602484015260448301526064820152fd5b7f8c7d9949000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b905015155f6100e8565b7fafa178b0000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b5f80fd5b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760205f54604051908152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d98152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000006b93e3bb9c0780c0f9042346ffc379530a5882c1168152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f00000000000000000000000000000000000000000000000000000000674d3ecf8152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206104995f5430907f94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d99061091a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461028e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760206040517f00000000000000000000000000000000000000000000000000000000679daa4f8152f35b3461028e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261028e5760043567ffffffffffffffff811161028e573660238201121561028e57806004013567ffffffffffffffff811161079b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f81601f8401160116830183811067ffffffffffffffff82111761079b576040528083526020830191366024838301011161028e57815f92602460209301853784010152815181207f94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d903610773577f00000000000000000000000000000000000000000000000000000000674d3ecf80421115610744575073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000006b93e3bb9c0780c0f9042346ffc379530a5882c116803314158061071a575b6106eb57505f54908251156106c35773ffffffffffffffffffffffffffffffffffffffff9251905ff5161561069b57005b7f741752c2000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4ca249dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fc419b2d2000000000000000000000000000000000000000000000000000000005f523360045260245260445ffd5b507f00000000000000000000000000000000000000000000000000000000679daa4f42111561066a565b7f0474c5c1000000000000000000000000000000000000000000000000000000005f524260045260245260445ffd5b7f23639643000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016906107f78261093a565b610805600a820291846109b1565b8061081157505f925050565b600481036109045750603c01915b5f5b602881106108dc57507f44000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008260121a60f81b1614908161088a575b5061088357565b9060140190565b60131a60f81b7fff00000000000000000000000000000000000000000000000000000000000000167f44000000000000000000000000000000000000000000000000000000000000001490505f61087c565b600460ff6108ea8385610a0b565b16146108f9575b600101610821565b6001909301926108f1565b600490939193111561081f57916028019161081f565b90605592600b92604051926040840152602083015281520160ff81532090565b5f919082906028905b81831061094f57505050565b9092919360ff61095f8684610a0b565b166109a9576001810180911161097c576001909401919290610943565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b925050915090565b915f9260ff6028169283811015610a02579192905b8183106109d257505050565b90929193600460ff6109e48785610a0b565b16036109a9576001810180911161097c5760019094019192906109c6565b50509150505f90565b8160011c906014821015610a3257901a90600116610a2c5760041c60ff1690565b600f1690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea164736f6c634300081a000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d900000000000000000000000000000000000000000000000000000000674D3ECF0000000000000000000000006B93E3bB9C0780C0f9042346Ffc379530a5882c10000000000000000000000000000000000000000000000000000000000506B80
-----Decoded View---------------
Arg [0] : _initCodeHash (bytes32): 0x94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d9
Arg [1] : _competitionDeadline (uint256): 1733115599
Arg [2] : _exclusiveDeployer (address): 0x6B93E3bB9C0780C0f9042346Ffc379530a5882c1
Arg [3] : _exclusiveDeployLength (uint256): 5270400
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 94d114296a5af85c1fd2dc039cdaa32f1ed4b0fe0868f02d888bfc91feb645d9
Arg [1] : 00000000000000000000000000000000000000000000000000000000674D3ECF
Arg [2] : 0000000000000000000000006B93E3bB9C0780C0f9042346Ffc379530a5882c1
Arg [3] : 0000000000000000000000000000000000000000000000000000000000506B80
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
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.