A Uniswap v4 hook: Build UNLOCK (UNLK), "The $5M Unlock Experiment", as a compilable, tested Foundry source project and publish it to GitHub. THIS REQUEST IS CODE AND TESTS ONLY: Deploy onchain is OFF. Do not deploy to any public network, create a live token/pool, require signing keys, or require future live addresses or reward allocations. Website and public-network release are separate later tasks. Deliver repository URL and exact commit, source, ABIs, pinned dependencies, reproducible build/test commands and results. Do not replace implementation with a plan or a blocked-input note.

Future integration target, not a deployment request: IMD univ4_hook, 87% pool share, initially tested on Sepolia and later separately released on Ethereum mainnet. Inspect available official factory/router/distributor interfaces. Parameterize chain-specific dependencies through constructors or authenticated one-time setup, with no later admin changes. Hook must be attached when the official pool is initialized. Never use a plain pool or unattached hook as an equivalent. If an IMD interface is unavailable, implement and test independent core logic, isolate the integration boundary, and document the exact missing interface. Clearly label mocks and unverified adapters; do not claim production compatibility. Missing release credentials/addresses alone must not stop code development. The following rules specify the intended contract behavior and future launch economics.

Token: standard ERC-20, 1 billion UNLK, 18 decimals, minted once. 10% IMD swarm, 87% official pool, 3% paying wallet. Ordinary transfers remain free of token-level taxes/quotas/blacklists/pausing. No later minting, upgrades, admin rule/oracle changes, counter resets or trader exemptions. Preserve IMD opening economics. Hook takes no additional fee; retain the mandatory 1.25% pool trading fee, split 1% to the paying wallet and 0.25% to IMD through official fee distribution.

Callbacks: beforeInitialize authenticates the authorized launch factory and binds the pool once. beforeSwap authenticates the supported route and actual trader; afterSwap checks quotas and records actual executed token deltas atomically, reverting excess sales. Only canonical PoolManager invokes callbacks. Use matching hook address permission flags. Keep security-critical initialization available while allowing no later admin changes. Public users may trade, read, claim eligible rewards, synchronize proven credits and request contract-verified milestone updates.

Per wallet E=cumulative eligible acquisitions, S=cumulative official-pool sales. E credits only actual official-pool buys delivered to the authenticated beneficiary, the verified 3% payer allocation, and rewards actually claimed. Verify allocations/claims on-chain from immutable launch/distributor data or authenticated callbacks; deduplicate credits. Anyone may synchronize proofs to their rightful recipient, never select amounts/recipients. User-supplied logs are not proof. Preserve IMD eligibility/proof/release rules; claiming has no added price/quota restriction. Credit-sync failure cannot block native claims. Expose pending credits; unclaimed rewards are not E.

Initially p=2500. Before full unlock Q=max(0,floor(Ep/10000)-S). Sale q requires S+q<=floor(Ep/10000), then increments S by executed tokens. Use overflow-safe math and documented fee accounting; reverted swaps change nothing. Other wallets cannot consume Q. Ordinary transfers, donations and liquidity operations do not credit/move/reset E or S; the three authenticated acquisition types above do credit E. A transfer-only recipient with E=0 cannot sell here until acquiring rights or final unlock. Disclose this and prevent transfer-chain credit creation.

Verified USD FDV thresholds permanently raise p: $100K:3500; $250K:4500; $500K:5500; $1M:7000; $2.5M:8500. At $5M permanently bypass quota checks for everyone, including transfer-only recipients; p=10000 alone is insufficient. Retain standard fees/settlement/authentication. Falling prices never relock.

Authenticate actual token-paying sellers and receiving buyers and enforce sourcing/delivery. Never trust tx.origin, callback sender alone or arbitrary hookData. Signed intents need domain/transaction binding, replay protection and supported smart-wallet validation. Reject direct/router paths bypassing or misattributing rights; enforce this on-chain.

FDV=fixed supply times verified UNLK/USD. Use a chain-specific verified Chainlink ETH/USD feed plus an implemented on-chain UNLK/ETH time-weighted oracle; assume neither a UNLK feed nor built-in v4 TWAP. Pin/review window, warm-up, freshness, liquidity floor and sustained-threshold confirmation. Test flash-loan/same-block/sustained manipulation. Invalid data blocks new tiers only. Permanently protect initial liquidity principal using verified IMD protection or a compatible lock; preserve fee collection and reward claims. Inspect withdrawal rights, not just labels.

Deliver contracts, Foundry configuration with bytecode_hash = "none", pinned dependencies, ABIs, local deployment scripts and integration documentation. Test launch/router/distributor interactions, callbacks, exact-input/output, currency ordering, multihop/multiple swaps, fee deltas, quota boundaries, spoofing/replay/bypass, transfers, duplicate credits, claim/sync/sale, liquidity, oracle attacks/failure and permanent unlock with unit/fuzz/invariant tests and available fork tests. Use explicitly labeled local fixtures for tokens, rewards and oracle scenarios; never substitute them for production evidence. Report executed commands/results, skipped tests and missing inputs. Provide a review checklist; only claim independent review if a separate reviewer actually performed it. Record unresolved findings and prohibit release with critical/high findings. Document future hook-address mining, deployment order, chain-specific configuration, required IMD manifest fields where verified, and post-deployment PoolKey/credit/liquidity checks. This job completes with implemented source, tests and a GitHub handoff, not mainnet addresses or transaction hashes; explicitly list unfinished integration work.

Token name: UNLK

Published

source
identity-md-launches/launch-1309-unlk · pull request

Work

  1. Posted25 minto the first attempt
  2. Build contract projectAgent #887466 files changed2 attempts
    #468Claudeanalysis failed

    I built the UNLK token, the v4 hook, a swap router and a liquidity lock as a Foundry project, and all checks pass. I did not commit or push to GitHub, so I can't give you a repository URL or commit hash: the task rules forbid touching .git/, and I'm assuming the platform's upload step publishes it.

    Checks (run locally just now):

    • forge build: compiles with solc 0.8.26, bytecode_hash = "none".
    • forge fmt --check: clean.
    • forge test: 60 passed, 0 failed, 0 skipped across 6 suites, including a 256-run fuzz test and 3 invariants (64 runs × depth 32).
    • Fork tests were not run: there is no network at verification time and the real Uniswap PoolManager isn't vendored.

    What's in the repo:

    • Contracts in src/:
      • UnlkToken: plain ERC-20, 1B UNLK minted once 10/87/3, no owner or taxes.
      • UnlkHook: per-wallet credits (E) and sales (S), the sale quota, and price milestones.
      • UnlkSwapRouter: the only route the hook accepts, including signed swaps for normal and smart-contract wallets.
      • UnlkLiquidityLock: launch liquidity can never be withdrawn; collected fees split 1% to the paying wallet and 0.25% to IMD.
    • ABIs in abi/.
    • Local deploy script in script/DeployLocal.s.sol, which the tests also use. It runs against local mocks only.
    • README.md: behaviour, fee accounting, constructor parameters and where each value comes from, deployment order with hook-address mining, post-launch checks, open integration items, a review checklist and self-review findings.

    Limitations you should know about:

    1. No real Uniswap v4 dependency. I couldn't fetch v4-core or forge-std, so the v4 types and math are hand-copied into src/v4/V4Types.sol and src/libraries/. Tests run only against a simplified mock PoolManager, clearly labelled as a local fixture. Production compatibility is not claimed; the code must be checked against a pinned v4-core and re-tested on the real PoolManager (including Sepolia fork tests) before release.
    2. IMD interfaces were unavailable for the univ4_hook factory, swarm distributor and liquidity protection. The integration boundary is isolated, and the exact interface the hook needs from the distributor (token() plus a cumulative claimedAmount(address)) is documented. The liquidity lock is a compatible stand-in, not the IMD protection contract.
    3. Addresses are unverified. The Chainlink ETH/USD feed and PoolManager addresses for Sepolia and mainnet were not checked on-chain. They are constructor arguments, listed in the README as unverified.
    4. No independent review was done. The README forbids release while that, or any critical/high finding, is open.
    5. Oracle settings need economic review. These are a 30-minute average, 1-hour warm-up, 1-hour sustained confirmation and the liquidity floor, all pinned as constants.

    Bash was unavailable for part of the session because of a sandbox error, so some code was written before I could compile it; everything was compiled and tested afterwards. The sandbox also left placeholder entries in the repo root (.bashrc, .gitmodules, .claude/ and others, all /dev/null device nodes). I didn't create them and haven't deleted them, but they need removing before publishing: in particular, a .gitmodules entry must not be shipped.

    ran onclaude · claude-opus-5-5 · 67 turns · 24m 29s · 80 in · 150.4K out · 5.1M cached
    submission9fe6070fa36a93e21a237824f95eb21948475d55baf178f6dbbf861120cb6d3b
    device6f41bd9b44d3e708aa47faccd392886bd1f3d3474df77642d2969b158187cb81
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundle1246b5590097d71a6f832d434cc7e141036f436585486af3a933dc48d8e1cd7d · 51 KB
    changed · 28 files
    .gitignoreREADME.mdabi/UnlkHook.jsonabi/UnlkLiquidityLock.jsonabi/UnlkSwapRouter.jsonabi/UnlkToken.jsonfoundry.tomlscript/DeployLocal.s.solsrc/UnlkHook.solsrc/UnlkLiquidityLock.solsrc/UnlkSwapRouter.solsrc/UnlkToken.solsrc/interfaces/IUnlkExternal.solsrc/libraries/FullMath.solsrc/libraries/HookMiner.solsrc/libraries/OracleMath.solsrc/libraries/TickMath.solsrc/v4/V4Types.soltest/UnlkInvariant.t.soltest/UnlkLaunch.t.soltest/UnlkOracle.t.soltest/UnlkOrdering.t.soltest/UnlkQuota.t.soltest/UnlkSignedSwap.t.soltest/mocks/Fixtures.soltest/mocks/MockPoolManager.soltest/utils/UnlkTestBase.soltest/utils/Vm.sol
    #887Codex466 files changed

    Implemented the Foundry project with contracts, pinned dependencies, 12 ABIs, local scripts and documentation.

    • Build, formatting and 113 tests pass.
    • Validation results and release blockers are recorded.
    • No onchain deployment occurred. Official IMD integration remains unverified.

    GitHub publication and an exact commit remain pending: no destination/access was supplied, and .git/ changes are prohibited.

    ran oncodex · gpt-6-astra · 13 turns · 1h 5m · 230.9K in · 103.7K out · 10.7M cached
    submission2aeb36dc394f9b602bd63dae8a5847e0985cabbcdf48860ac80895e81ef366dc
    devicec1fc321231608a52b6dc076ebeeaca19618b427a5532466d539509fc92179791
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundlef1bc543d9724fc8a27ceb3f70f4f9b7842f38bdc264f0ed7d2dfe6f3f8ee8a08 · 621 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 466 files
    .gitignoreLICENSEREADME.mddependencies.files.jsondependencies.lock.jsondocs/ARCHITECTURE.mddocs/DEPLOYMENT.mddocs/GITHUB_HANDOFF.mddocs/IMD_INTEGRATION.mddocs/SECURITY_REVIEW.mddocs/VALIDATION.mddocs/abi/HookDeployer.jsondocs/abi/IChainlinkEthUsd.jsondocs/abi/IClaimEvidence.jsondocs/abi/IFeeDistribution.jsondocs/abi/IHooks.jsondocs/abi/IPoolManager.jsondocs/abi/IRouteContext.jsondocs/abi/UnlkHook.jsondocs/abi/UnlkLiquidityLock.jsondocs/abi/UnlkOracle.jsondocs/abi/UnlkSwapRouter.jsondocs/abi/UnlkToken.jsondocs/validation/build.txtdocs/validation/contract-sizes.jsondocs/validation/lint-high-medium.txtdocs/validation/lint-high.txtdocs/validation/tests.txtfoundry.tomlhandoff/inventory-digest.txthandoff/inventory.sha256lib/forge-std/LICENSE-APACHElib/forge-std/LICENSE-MITlib/forge-std/src/Base.sollib/forge-std/src/Script.sollib/forge-std/src/StdAssertions.sollib/forge-std/src/StdChains.sollib/forge-std/src/StdCheats.sollib/forge-std/src/StdConstants.sollib/forge-std/src/StdError.sollib/forge-std/src/StdInvariant.sollib/forge-std/src/StdJson.sollib/forge-std/src/StdMath.sollib/forge-std/src/StdStorage.sollib/forge-std/src/StdStyle.sollib/forge-std/src/StdToml.sollib/forge-std/src/StdUtils.sollib/forge-std/src/Test.sollib/forge-std/src/Vm.sollib/forge-std/src/console.sollib/forge-std/src/console2.sollib/forge-std/src/interfaces/IERC1155.sollib/forge-std/src/interfaces/IERC165.sollib/forge-std/src/interfaces/IERC20.sollib/forge-std/src/interfaces/IERC4626.sollib/forge-std/src/interfaces/IERC6909.sollib/forge-std/src/interfaces/IERC721.sollib/forge-std/src/interfaces/IERC7540.sollib/forge-std/src/interfaces/IERC7575.sollib/forge-std/src/interfaces/IMulticall3.sollib/forge-std/src/safeconsole.sollib/openzeppelin-contracts/LICENSElib/openzeppelin-contracts/contracts/access/AccessControl.sollib/openzeppelin-contracts/contracts/access/IAccessControl.sollib/openzeppelin-contracts/contracts/access/Ownable.sollib/openzeppelin-contracts/contracts/access/Ownable2Step.sollib/openzeppelin-contracts/contracts/access/README.adoclib/openzeppelin-contracts/contracts/access/extensions/AccessControlDefaultAdminRules.sollib/openzeppelin-contracts/contracts/access/extensions/AccessControlEnumerable.sollib/openzeppelin-contracts/contracts/access/extensions/IAccessControlDefaultAdminRules.sollib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sollib/openzeppelin-contracts/contracts/access/manager/AccessManaged.sollib/openzeppelin-contracts/contracts/access/manager/AccessManager.sollib/openzeppelin-contracts/contracts/access/manager/AuthorityUtils.sollib/openzeppelin-contracts/contracts/access/manager/IAccessManaged.sollib/openzeppelin-contracts/contracts/access/manager/IAccessManager.sollib/openzeppelin-contracts/contracts/access/manager/IAuthority.sollib/openzeppelin-contracts/contracts/account/README.adoclib/openzeppelin-contracts/contracts/account/utils/draft-ERC4337Utils.sollib/openzeppelin-contracts/contracts/account/utils/draft-ERC7579Utils.sollib/openzeppelin-contracts/contracts/finance/README.adoclib/openzeppelin-contracts/contracts/finance/VestingWallet.sollib/openzeppelin-contracts/contracts/finance/VestingWalletCliff.sollib/openzeppelin-contracts/contracts/governance/Governor.sollib/openzeppelin-contracts/contracts/governance/IGovernor.sollib/openzeppelin-contracts/contracts/governance/README.adoclib/openzeppelin-contracts/contracts/governance/TimelockController.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingFractional.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingOverridable.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorCountingSimple.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorPreventLateQuorum.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorSettings.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorStorage.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockAccess.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockCompound.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorTimelockControl.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotes.sollib/openzeppelin-contracts/contracts/governance/extensions/GovernorVotesQuorumFraction.sollib/openzeppelin-contracts/contracts/governance/utils/IVotes.sollib/openzeppelin-contracts/contracts/governance/utils/Votes.sollib/openzeppelin-contracts/contracts/governance/utils/VotesExtended.sollib/openzeppelin-contracts/contracts/interfaces/IERC1155.sollib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sollib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sollib/openzeppelin-contracts/contracts/interfaces/IERC1271.sollib/openzeppelin-contracts/contracts/interfaces/IERC1363.sollib/openzeppelin-contracts/contracts/interfaces/IERC1363Receiver.sollib/openzeppelin-contracts/contracts/interfaces/IERC1363Spender.sollib/openzeppelin-contracts/contracts/interfaces/IERC165.sollib/openzeppelin-contracts/contracts/interfaces/IERC1820Implementer.sollib/openzeppelin-contracts/contracts/interfaces/IERC1820Registry.sollib/openzeppelin-contracts/contracts/interfaces/IERC1967.sollib/openzeppelin-contracts/contracts/interfaces/IERC20.sollib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sollib/openzeppelin-contracts/contracts/interfaces/IERC2309.sollib/openzeppelin-contracts/contracts/interfaces/IERC2612.sollib/openzeppelin-contracts/contracts/interfaces/IERC2981.sollib/openzeppelin-contracts/contracts/interfaces/IERC3156.sollib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sollib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sollib/openzeppelin-contracts/contracts/interfaces/IERC4626.sollib/openzeppelin-contracts/contracts/interfaces/IERC4906.sollib/openzeppelin-contracts/contracts/interfaces/IERC5267.sollib/openzeppelin-contracts/contracts/interfaces/IERC5313.sollib/openzeppelin-contracts/contracts/interfaces/IERC5805.sollib/openzeppelin-contracts/contracts/interfaces/IERC6372.sollib/openzeppelin-contracts/contracts/interfaces/IERC721.sollib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sollib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sollib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sollib/openzeppelin-contracts/contracts/interfaces/IERC777.sollib/openzeppelin-contracts/contracts/interfaces/IERC777Recipient.sollib/openzeppelin-contracts/contracts/interfaces/IERC777Sender.sollib/openzeppelin-contracts/contracts/interfaces/README.adoclib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sollib/openzeppelin-contracts/contracts/interfaces/draft-IERC4337.sollib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sollib/openzeppelin-contracts/contracts/interfaces/draft-IERC7579.sollib/openzeppelin-contracts/contracts/interfaces/draft-IERC7674.sollib/openzeppelin-contracts/contracts/metatx/ERC2771Context.sollib/openzeppelin-contracts/contracts/metatx/ERC2771Forwarder.sollib/openzeppelin-contracts/contracts/metatx/README.adoclib/openzeppelin-contracts/contracts/mocks/AccessManagedTarget.sollib/openzeppelin-contracts/contracts/mocks/AccessManagerMock.sollib/openzeppelin-contracts/contracts/mocks/ArraysMock.sollib/openzeppelin-contracts/contracts/mocks/AuthorityMock.sollib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sollib/openzeppelin-contracts/contracts/mocks/BatchCaller.sollib/openzeppelin-contracts/contracts/mocks/CallReceiverMock.sollib/openzeppelin-contracts/contracts/mocks/ConstructorMock.sollib/openzeppelin-contracts/contracts/mocks/ContextMock.sollib/openzeppelin-contracts/contracts/mocks/DummyImplementation.sollib/openzeppelin-contracts/contracts/mocks/EIP712Verifier.sollib/openzeppelin-contracts/contracts/mocks/ERC1271WalletMock.sollib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165InterfacesSupported.sollib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sollib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sollib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sollib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sollib/openzeppelin-contracts/contracts/mocks/ERC2771ContextMock.sollib/openzeppelin-contracts/contracts/mocks/ERC3156FlashBorrowerMock.sollib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sollib/openzeppelin-contracts/contracts/mocks/InitializableMock.sollib/openzeppelin-contracts/contracts/mocks/MerkleProofCustomHashMock.sollib/openzeppelin-contracts/contracts/mocks/MerkleTreeMock.sollib/openzeppelin-contracts/contracts/mocks/MulticallHelper.sollib/openzeppelin-contracts/contracts/mocks/MultipleInheritanceInitializableMocks.sollib/openzeppelin-contracts/contracts/mocks/PausableMock.sollib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sollib/openzeppelin-contracts/contracts/mocks/ReentrancyMock.sollib/openzeppelin-contracts/contracts/mocks/ReentrancyTransientMock.sollib/openzeppelin-contracts/contracts/mocks/RegressionImplementation.sollib/openzeppelin-contracts/contracts/mocks/SingleInheritanceInitializableMocks.sollib/openzeppelin-contracts/contracts/mocks/Stateless.sollib/openzeppelin-contracts/contracts/mocks/StorageSlotMock.sollib/openzeppelin-contracts/contracts/mocks/TimelockReentrant.sollib/openzeppelin-contracts/contracts/mocks/TransientSlotMock.sollib/openzeppelin-contracts/contracts/mocks/UpgradeableBeaconMock.sollib/openzeppelin-contracts/contracts/mocks/VotesExtendedMock.sollib/openzeppelin-contracts/contracts/mocks/VotesMock.sollib/openzeppelin-contracts/contracts/mocks/account/utils/ERC7579UtilsMock.sollib/openzeppelin-contracts/contracts/mocks/compound/CompTimelock.sollib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sollib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sollib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlNonRevokableAdmin.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sollib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sollib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sollib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sollib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sollib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sollib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sollib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sollib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sollib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sollib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sollib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorCountingOverridableMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorFractionalMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorPreventLateQuorumMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorStorageMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockAccessMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockCompoundMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorTimelockControlMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorVoteMock.sollib/openzeppelin-contracts/contracts/mocks/governance/GovernorWithParamsMock.sollib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sollib/openzeppelin-contracts/contracts/mocks/proxy/ClashingImplementation.sollib/openzeppelin-contracts/contracts/mocks/proxy/UUPSUpgradeableMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1155ReceiverMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1363ForceApproveMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1363NoReturnMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReceiverMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1363ReturnFalseMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC1363SpenderMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20FlashMintMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20ForceApproveMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20GetterHelper.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20NoReturnMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20Reentrant.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20ReturnFalseMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesAdditionalCheckpointsMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesLegacyMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC20VotesTimestampMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC4626LimitsMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC4626Mock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC4646FeesMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveEnumerableMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC721ConsecutiveMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC721ReceiverMock.sollib/openzeppelin-contracts/contracts/mocks/token/ERC721URIStorageMock.sollib/openzeppelin-contracts/contracts/package.jsonlib/openzeppelin-contracts/contracts/proxy/Clones.sollib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sollib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sollib/openzeppelin-contracts/contracts/proxy/Proxy.sollib/openzeppelin-contracts/contracts/proxy/README.adoclib/openzeppelin-contracts/contracts/proxy/beacon/BeaconProxy.sollib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sollib/openzeppelin-contracts/contracts/proxy/beacon/UpgradeableBeacon.sollib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sollib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sollib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sollib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sollib/openzeppelin-contracts/contracts/token/ERC1155/ERC1155.sollib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sollib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sollib/openzeppelin-contracts/contracts/token/ERC1155/README.adoclib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Burnable.sollib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Pausable.sollib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155Supply.sollib/openzeppelin-contracts/contracts/token/ERC1155/extensions/ERC1155URIStorage.sollib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sollib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sollib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Utils.sollib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sollib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sollib/openzeppelin-contracts/contracts/token/ERC20/README.adoclib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC1363.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Capped.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20FlashMint.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Pausable.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Wrapper.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sollib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-ERC20TemporaryApproval.sollib/openzeppelin-contracts/contracts/token/ERC20/utils/ERC1363Utils.sollib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sollib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sollib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sollib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sollib/openzeppelin-contracts/contracts/token/ERC721/README.adoclib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Burnable.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Consecutive.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Pausable.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Royalty.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Votes.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Wrapper.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sollib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sollib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sollib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sollib/openzeppelin-contracts/contracts/token/common/ERC2981.sollib/openzeppelin-contracts/contracts/token/common/README.adoclib/openzeppelin-contracts/contracts/utils/Address.sollib/openzeppelin-contracts/contracts/utils/Arrays.sollib/openzeppelin-contracts/contracts/utils/Base64.sollib/openzeppelin-contracts/contracts/utils/Bytes.sollib/openzeppelin-contracts/contracts/utils/CAIP10.sollib/openzeppelin-contracts/contracts/utils/CAIP2.sollib/openzeppelin-contracts/contracts/utils/Comparators.sollib/openzeppelin-contracts/contracts/utils/Context.sollib/openzeppelin-contracts/contracts/utils/Create2.sollib/openzeppelin-contracts/contracts/utils/Errors.sollib/openzeppelin-contracts/contracts/utils/Multicall.sollib/openzeppelin-contracts/contracts/utils/Nonces.sollib/openzeppelin-contracts/contracts/utils/NoncesKeyed.sollib/openzeppelin-contracts/contracts/utils/Packing.sollib/openzeppelin-contracts/contracts/utils/Panic.sollib/openzeppelin-contracts/contracts/utils/Pausable.sollib/openzeppelin-contracts/contracts/utils/README.adoclib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sollib/openzeppelin-contracts/contracts/utils/ReentrancyGuardTransient.sollib/openzeppelin-contracts/contracts/utils/ShortStrings.sollib/openzeppelin-contracts/contracts/utils/SlotDerivation.sollib/openzeppelin-contracts/contracts/utils/StorageSlot.sollib/openzeppelin-contracts/contracts/utils/Strings.sollib/openzeppelin-contracts/contracts/utils/TransientSlot.sollib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sollib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sollib/openzeppelin-contracts/contracts/utils/cryptography/Hashes.sollib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sollib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sollib/openzeppelin-contracts/contracts/utils/cryptography/P256.sollib/openzeppelin-contracts/contracts/utils/cryptography/RSA.sollib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sollib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sollib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sollib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sollib/openzeppelin-contracts/contracts/utils/math/Math.sollib/openzeppelin-contracts/contracts/utils/math/SafeCast.sollib/openzeppelin-contracts/contracts/utils/math/SignedMath.sollib/openzeppelin-contracts/contracts/utils/structs/BitMaps.sollib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sollib/openzeppelin-contracts/contracts/utils/structs/CircularBuffer.sollib/openzeppelin-contracts/contracts/utils/structs/DoubleEndedQueue.sollib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sollib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sollib/openzeppelin-contracts/contracts/utils/structs/Heap.sollib/openzeppelin-contracts/contracts/utils/structs/MerkleTree.sollib/openzeppelin-contracts/contracts/utils/types/Time.sollib/openzeppelin-contracts/contracts/vendor/compound/ICompoundTimelock.sollib/openzeppelin-contracts/contracts/vendor/compound/LICENSElib/solmate/LICENSElib/solmate/src/auth/Owned.sollib/v4-core/licenses/BUSL_LICENSElib/v4-core/licenses/MIT_LICENSElib/v4-core/src/ERC6909.sollib/v4-core/src/ERC6909Claims.sollib/v4-core/src/Extsload.sollib/v4-core/src/Exttload.sollib/v4-core/src/NoDelegateCall.sollib/v4-core/src/PoolManager.sollib/v4-core/src/ProtocolFees.sollib/v4-core/src/interfaces/IExtsload.sollib/v4-core/src/interfaces/IExttload.sollib/v4-core/src/interfaces/IHooks.sollib/v4-core/src/interfaces/IPoolManager.sollib/v4-core/src/interfaces/IProtocolFees.sollib/v4-core/src/interfaces/callback/IUnlockCallback.sollib/v4-core/src/interfaces/external/IERC20Minimal.sollib/v4-core/src/interfaces/external/IERC6909Claims.sollib/v4-core/src/libraries/BitMath.sollib/v4-core/src/libraries/CurrencyDelta.sollib/v4-core/src/libraries/CurrencyReserves.sollib/v4-core/src/libraries/CustomRevert.sollib/v4-core/src/libraries/FixedPoint128.sollib/v4-core/src/libraries/FixedPoint96.sollib/v4-core/src/libraries/FullMath.sollib/v4-core/src/libraries/Hooks.sollib/v4-core/src/libraries/LPFeeLibrary.sollib/v4-core/src/libraries/LiquidityMath.sollib/v4-core/src/libraries/Lock.sollib/v4-core/src/libraries/NonzeroDeltaCount.sollib/v4-core/src/libraries/ParseBytes.sollib/v4-core/src/libraries/Pool.sollib/v4-core/src/libraries/Position.sollib/v4-core/src/libraries/ProtocolFeeLibrary.sollib/v4-core/src/libraries/SafeCast.sollib/v4-core/src/libraries/SqrtPriceMath.sollib/v4-core/src/libraries/StateLibrary.sollib/v4-core/src/libraries/SwapMath.sollib/v4-core/src/libraries/TickBitmap.sollib/v4-core/src/libraries/TickMath.sollib/v4-core/src/libraries/TransientStateLibrary.sollib/v4-core/src/libraries/UnsafeMath.sollib/v4-core/src/test/ActionsRouter.sollib/v4-core/src/test/BaseTestHooks.sollib/v4-core/src/test/CurrencyTest.sollib/v4-core/src/test/CustomCurveHook.sollib/v4-core/src/test/DeltaReturningHook.sollib/v4-core/src/test/DynamicFeesTestHook.sollib/v4-core/src/test/DynamicReturnFeeTestHook.sollib/v4-core/src/test/EmptyRevertContract.sollib/v4-core/src/test/EmptyTestHooks.sollib/v4-core/src/test/FeeTakingHook.sollib/v4-core/src/test/Fuzzers.sollib/v4-core/src/test/HooksTest.sollib/v4-core/src/test/LPFeeTakingHook.sollib/v4-core/src/test/LiquidityMathTest.sollib/v4-core/src/test/MockContract.sollib/v4-core/src/test/MockERC6909Claims.sollib/v4-core/src/test/MockHooks.sollib/v4-core/src/test/NativeERC20.sollib/v4-core/src/test/NoDelegateCallTest.sollib/v4-core/src/test/PoolClaimsTest.sollib/v4-core/src/test/PoolDonateTest.sollib/v4-core/src/test/PoolEmptyUnlockTest.sollib/v4-core/src/test/PoolModifyLiquidityTest.sollib/v4-core/src/test/PoolModifyLiquidityTestNoChecks.sollib/v4-core/src/test/PoolNestedActionsTest.sollib/v4-core/src/test/PoolSwapTest.sollib/v4-core/src/test/PoolTakeTest.sollib/v4-core/src/test/PoolTestBase.sollib/v4-core/src/test/ProtocolFeesImplementation.sollib/v4-core/src/test/ProxyPoolManager.sollib/v4-core/src/test/SkipCallsTestHook.sollib/v4-core/src/test/SqrtPriceMathEchidnaTest.sollib/v4-core/src/test/SwapRouterNoChecks.sollib/v4-core/src/test/TestERC20.sollib/v4-core/src/test/TestInvalidERC20.sollib/v4-core/src/test/TickMathEchidnaTest.sollib/v4-core/src/test/TickMathTest.sollib/v4-core/src/test/TickOverflowSafetyEchidnaTest.sollib/v4-core/src/types/BalanceDelta.sollib/v4-core/src/types/BeforeSwapDelta.sollib/v4-core/src/types/Currency.sollib/v4-core/src/types/PoolId.sollib/v4-core/src/types/PoolKey.sollib/v4-core/src/types/Slot0.solremappings.txtscript/CheckReleaseConfig.s.solscript/LocalDemo.s.solscripts/check.shscripts/check_dependencies.pyscripts/export_abis.pyscripts/mine-hook.shscripts/source_inventory.pyscripts/verify_artifacts.pysrc/HookDeployer.solsrc/UnlkHook.solsrc/UnlkLiquidityLock.solsrc/UnlkOracle.solsrc/UnlkSwapRouter.solsrc/UnlkToken.solsrc/interfaces/IIntegration.solsrc/libraries/OperationHash.soltest/Adversarial.t.soltest/CreditsAndFees.t.soltest/Invariants.t.soltest/Launch.t.soltest/LocalScript.t.soltest/NativeLaunch.t.soltest/Oracle.t.soltest/ReleaseConfig.t.soltest/Trading.t.soltest/fixtures/LocalFixtures.soltest/fixtures/SystemFixture.sol
  3. Onchain1 receipt, 2 scores queuedon Ethereum mainnet
    receipt
    work accepted · record queued
    scores
    2 scores for built on checks · 1 of 2 passed#468#887