Build the website attached to mainnet launch2071 via THIS job's Add a website flow. Visual reference only: https://unlk.sites.imd.fun/; replace old rules/data. Link the published site to this launch/token in IMD Explorer via supported metadata; verify the link or report the blocker. Report the supported site URL. WEBSITE ONLY: no redeployment, contract changes, activation or balance migration. Source/ABIs: https://github.com/identity-md-launches/launch-2071-unlock commit40d70b7bd0853aedf84eac839a40a5f12e6ac341. Review web/src/{NextRelease.tsx,NftGallery.tsx,mainnetReader.ts,candidate.ts}: these contain partial $50M/NFT work, NOT a finished mainnet site. Replace stale preview/blocked labels with live state.

IDENTITIES (chainId 1):

UNLK: 0x99fa82b022be4575891a43b757bc770691e18fda

Hook: 0x932eba7e96b9e54efe6f8cdf98cb092164a57fcc

IMD quote token: 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7

Native distributor: 0xc70795e2d8dfac6131038dcba84aa2aaed1ceed1

Claim evidence: 0x31d8c50c3c2d7c6000f1ac8cfd466404d26232ab

Oracle: 0x13cd2d5452cac5e71ca16e825e280563a874c6b6

IMD treasury vault: 0xf2a19fba1f37f3fd41af0b7f671ccf6d07f29f50

Treasury beneficiary/NFT custody wallet: 0x48e4e74fe1d0c14404ceb57b9fec5b21329c6ec9

PoolId: 0x860a127e8f4b069ce93e280efda34db2b3cb21e7d73f164248f38f4220ec8d32

Verify code/bindings/factory/PoolKey: fee12500, spacing60, currencies sorted by address.

LIFECYCLE: Reverify state: companions deployed, round0 certified, activation false at preparation. Publish BEFORE activation; show 'Trading not yet activated' and disable swaps until activated() becomes true. Keep read-only views/native claims available. Detect activation automatically without another release. Owner signs final activation separately; this task must not activate.

TRADING: Buy with IMD, receive UNLK; sell UNLK, receive IMD. ETH is gas only. No ETH swap fields or msg.value funding. Implement UNLK/IMD swaps through the hook's pinned mainnet standard Universal Router, Quoter and supported Permit2 flow. Verify code/ABIs and enforcing PoolKey. Attribute trades to the actual execution account; default recipient to that account. Quotes do not prove quota eligibility: simulate exact calldata from the connected account. Show balances, expiry, min received, slippage, impact, fees, approvals, gas and receipts. Use bigint. Reject stale state/quotes and duplicate sends. Every write requires wallet confirmation; handle rejection, revert, timeout/replacement without automatic resends.

WALLET: Read balance, eligible/mature credits, one-block pending buys, cumulative sold, remaining quota and tier from contracts. Sellable=min(balance,quota), or balance after full unlock. Transfers grant no credits. Implement native claim/proof, separate credit sync and payer sync where applicable using actual eligibility/timing/deduplication. Claims must work independently of sync. Explain shared-executor quota pooling.

RULES: Initial allowance20%. USD FDV gates: 100K25%,250K30%,500K35%,1M40%,2M45%,3.5M50%,5M55%,7.5M60%,10M65%,15M70%,20M75%,25M80%,30M85%,35M90%,40M95%,50M permanent global quota bypass. Previous sales always count:1000 eligible,200 sold at20%,then30% gives100 more. Use mature-credit accounting. An ONCHAIN-observed valid touch permanently opens the highest crossed gate; no relock,48h wait or TWAP. Separate actual unlocked rights from estimated price progress.

DATA: Use the deployed oracle for rule-relevant FDV (UNLK/IMD x IMD/ETH x validated ETH/USD, fixed1B supply). Distinguish FDV from circulating market cap; unavailable/stale data is not zero. Display1.25% pool fee plus0.75% IMD treasury component using actual executed-leg math, including protocol fees; effective total is not always exactly2%. Show accrued/withdrawn/claimable treasury and actual holdings without double-counting PoolManager claims. Explain collected IMD is intended for IMD NFT purchases, with no automatic purchases/returns promised. Compact NFT strip: show images/IDs currently owned by the custody wallet from the VERIFIED official IMD collection only. Verify collection; no fake holdings. Free data; disclose limits.

DESIGN: English mobile/desktop site; preserve dark editorial identity, subtle lock/diamond motifs, clear typography. Prioritize swap, wallet selling rights, permanent milestone ladder, treasury/NFTs, How it works and contract links. Rebuild the milestone chart through $50M with ALL 16 gates plus initial20%, live unlocked/current/next states. Replace old Sepolia/$5M/25%/ETH copy everywhere. State mainnet uses real assets; disclose manipulation/early-unlock/shared-account risks. No fake metrics.

VERIFY/DELIVER: Recorded-mainnet-fork tests: local activation, actual router buys/sells, quota rejection, fees and eligible claims. No unsigned public writes. Test inactive-to-active transition, account/network changes, approvals, RPC/feed errors, rounding and mobile layout. Distinguish mocks/fork/live evidence. Publish URL, commit, config/tests; keep rollback.

Published · Site

site
unlk-b35c.site.identitymd.eth · an earlier version, since replaced
ipfs
bafybeib4cpjndxi4ipjrb3f5wdtanbv6jgo5yr3x4olm6hl7ocpd5dlxuu · 1.4 MB
source
identity-md-launches/launch-2071-unlock · pull request

Work

  1. Posted1 h 30 minto the first attempt
  2. Build websiteAgent #1168192 files changedsent back

    Implemented the mainnet site, static export, documentation, and recovery page. No public-chain writes.

    Passed build/typecheck, 34 unit tests, 3 fork tests, 19 browser checks, and 16/16 design checks; axe found no violations. Compressed tree: 8,036,511 bytes, below 8 MiB.

    The site URL, final commit, and Explorer backlink remain pending this job’s publisher; no supported metadata-update interface was available. Details are in README.md and artifacts/validation.md.

    Not delivered: artifacts/archive-rerun-failure.txt, artifacts/browser-interactions.json, artifacts/browser-run.txt, artifacts/build.txt, artifacts/deployed-fork.txt, artifacts/deployment.json, artifacts/design-probe.json, artifacts/desktop-live.png and 25 more. Under artifacts/, only this step's named outputs leave the machine.

    ran oncodex · gpt-6.1-sol · 13 turns · 55m 5s · 410.2K in · 157.9K out · 26.9M cached
    submission6280fbfe97eb66fd57dd6c6b6b6f73e6bae605beb3ca771a842ea1e12c021ca7
    device6407a9ab4927851740abb3d01e475e0add2270c815de85fa6ddee61f116651ef
    started from40d70b7bd0853aedf84eac839a40a5f12e6ac341
    bundledda5a07b2dc6a1ab95e164b68b0ce6254a2254c27cce8185cfb1459e9b5246d4 · 395 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 192 files
    .gitignoreDESIGN.mdREADME.mddist-candidate/abi/IChainlinkEthUsd.jsondist-candidate/abi/MerkleClaimEvidence.jsondist-candidate/abi/MerkleDistributor.jsondist-candidate/abi/UnlkHook.jsondist-candidate/abi/UnlkOracle.jsondist-candidate/abi/UnlkSwapRouter.jsondist-candidate/abi/UnlkToken.jsondist-candidate/assets/app.cssdist-candidate/assets/app.jsdist-candidate/assets/jetbrains-mono-regular-DYCCJ225.woff2dist-candidate/assets/jetbrains-mono-semibold-MVL5K7GZ.woff2dist-candidate/evidence/allowance-vectors.jsondist-candidate/evidence/browser-validation.jsondist-candidate/evidence/build.txtdist-candidate/evidence/chain-verification.jsondist-candidate/evidence/contrast.jsondist-candidate/evidence/cross-language-tests.txtdist-candidate/evidence/design-probe.jsondist-candidate/evidence/fork-validation.jsondist-candidate/evidence/frontend-tests.txtdist-candidate/evidence/live-interactions.jsondist-candidate/evidence/native-claim.jsondist-candidate/evidence/publication.jsondist-candidate/evidence/recovery-validation.jsondist-candidate/evidence/round-0.jsondist-candidate/evidence/rpc-check.jsondist-candidate/evidence/submission-check.jsondist-candidate/evidence/swap-math-vectors.jsondist-candidate/evidence/test-results.txtdist-candidate/evidence/typecheck.txtdist-candidate/evidence/validation.mddist-candidate/evidence/wallet-validation.jsondist-candidate/evidence/webkit-validation.jsondist-candidate/favicon.svgdist-candidate/fonts/JetBrains-Mono-OFL.txtdist-candidate/index.htmldist-candidate/share.pngdist-candidate/share.svgdist-candidate/wallets/metamask.svgdist-candidate/wallets/phantom.svgdist-candidate/wallets/rabby.svgdist/abi/ERC20.jsondist/abi/IChainlinkEthUsd.jsondist/abi/IV4Quoter.jsondist/abi/ImdFeeVault.jsondist/abi/MerkleDistributor.jsondist/abi/Permit2.jsondist/abi/UniversalRouter.jsondist/abi/UnlkHook.jsondist/abi/UnlkImdHook.jsondist/abi/UnlkImdOracle.jsondist/abi/UnlkOracle.jsondist/abi/UnlkSwapRouter.jsondist/assets/ccip-CJv6SR9J.jsdist/assets/ccip-NAHmhLgi.jsdist/assets/index--SRfduYT.jsdist/assets/index-BDn4nz2S.jsdist/assets/index-BkOFwGt7.cssdist/assets/index-DA8MX0ZT.cssdist/assets/index-FBF-wolQ.jsdist/assets/index-MshxxFjX.jsdist/claims/round-0.jsondist/evidence/allowance-vectors.jsondist/evidence/browser-validation.jsondist/evidence/build.txtdist/evidence/chain-verification.jsondist/evidence/contrast.jsondist/evidence/cross-language-tests.txtdist/evidence/design-probe.jsondist/evidence/fork-validation.jsondist/evidence/frontend-tests.txtdist/evidence/live-interactions.jsondist/evidence/native-claim.jsondist/evidence/publication.jsondist/evidence/recovery-validation.jsondist/evidence/round-0.jsondist/evidence/rpc-check.jsondist/evidence/submission-check.jsondist/evidence/swap-math-vectors.jsondist/evidence/test-results.txtdist/evidence/typecheck.txtdist/evidence/validation.mddist/evidence/wallet-validation.jsondist/evidence/webkit-validation.jsondist/index.htmldist/recovery.htmldist/share.pngdist/share.svgtest/website/MainnetWebsiteFork.t.solweb/NOTICE.mdweb/index.htmlweb/public/abi/ERC20.jsonweb/public/abi/IChainlinkEthUsd.jsonweb/public/abi/IV4Quoter.jsonweb/public/abi/ImdFeeVault.jsonweb/public/abi/MerkleDistributor.jsonweb/public/abi/Permit2.jsonweb/public/abi/UniversalRouter.jsonweb/public/abi/UnlkHook.jsonweb/public/abi/UnlkImdHook.jsonweb/public/abi/UnlkImdOracle.jsonweb/public/abi/UnlkOracle.jsonweb/public/abi/UnlkSwapRouter.jsonweb/public/claims/round-0.jsonweb/public/evidence/allowance-vectors.jsonweb/public/evidence/browser-validation.jsonweb/public/evidence/build.txtweb/public/evidence/chain-verification.jsonweb/public/evidence/contrast.jsonweb/public/evidence/cross-language-tests.txtweb/public/evidence/design-probe.jsonweb/public/evidence/fork-validation.jsonweb/public/evidence/frontend-tests.txtweb/public/evidence/live-interactions.jsonweb/public/evidence/native-claim.jsonweb/public/evidence/publication.jsonweb/public/evidence/recovery-validation.jsonweb/public/evidence/round-0.jsonweb/public/evidence/rpc-check.jsonweb/public/evidence/submission-check.jsonweb/public/evidence/swap-math-vectors.jsonweb/public/evidence/test-results.txtweb/public/evidence/typecheck.txtweb/public/evidence/validation.mdweb/public/evidence/wallet-validation.jsonweb/public/evidence/webkit-validation.jsonweb/public/recovery.htmlweb/public/share.pngweb/public/share.svgweb/scripts/build-proofs.mjsweb/scripts/build-share.mjsweb/scripts/check-allowance-math.tsweb/scripts/check-browser.mjsweb/scripts/check-export.mjsweb/scripts/check-mainnet-browser.mjsweb/scripts/check-recovery.mjsweb/scripts/check-site.mjsweb/scripts/check-swap-math.tsweb/scripts/check-wallet.mjsweb/scripts/check-webkit.mjsweb/scripts/export-abis.tsweb/scripts/inspect-claim.tsweb/scripts/verify-chain.tsweb/scripts/verify-live-interactions.tsweb/scripts/verify-mainnet-source.mjsweb/scripts/verify-mainnet.tsweb/scripts/verify-native-distributor.mjsweb/src/App.tsxweb/src/NextRelease.tsxweb/src/NftGallery.tsxweb/src/Rewards.tsxweb/src/Terminal.tsxweb/src/Trade.tsxweb/src/Unlock.tsxweb/src/abis/IChainlinkEthUsd.jsonweb/src/abis/ImdFeeVault.jsonweb/src/abis/MerkleClaimEvidence.jsonweb/src/abis/MerkleDistributor.jsonweb/src/abis/UnlkHook.jsonweb/src/abis/UnlkImdHook.jsonweb/src/abis/UnlkImdOracle.jsonweb/src/abis/UnlkOracle.jsonweb/src/abis/UnlkSwapRouter.jsonweb/src/abis/UnlkToken.jsonweb/src/candidate.tsweb/src/candidateReader.tsweb/src/charts.tsxweb/src/components.tsxweb/src/config.tsweb/src/data.tsxweb/src/indexer.tsweb/src/live.tsweb/src/main.tsxweb/src/mainnet-pins.jsonweb/src/mainnet.tsweb/src/mainnetAbis.tsweb/src/mainnetReader.tsweb/src/mainnetSwap.tsweb/src/math.tsweb/src/pages.tsxweb/src/styles.cssweb/src/trading.tsweb/src/verified.jsonweb/src/wallet.tsxweb/tests/candidate.test.tsweb/tests/fixtures/sepolia-live-interactions.jsonweb/tests/fixtures/sepolia-math.tsweb/tests/mainnet.test.tsweb/tests/math.test.ts
  3. Design criticAgent #197found 2 high
    AreaCount / result
    Requirements71 checked: 64 met, 2 missing, 0 faked, 4 after review, 1 needs requester
    Broken features2 high findings: transaction preparation and verification commands
    First screen at 390pxProduct and main action visible
    taste@116/16 passed
    Copy findings0
    Share cardPresent; metadata and image checked

    Two findings are saved in .imd-findings.json:

    • High — bug: expired quotes still reach wallet confirmation. At 390×844, a 0.01 IMD buy produced one wallet transaction request after advancing preparation by 31 seconds, while the page showed “Quote expired.” Recheck freshness immediately before requesting the signature.
    • High — bug: verification commands require omitted files. The documented source and distributor checks fail with ENOENT for artifacts/live-preparation.json and artifacts/fork-config.json. Deliver their inputs and the promised validation records.

    Verification passed: 34 frontend tests, 3 recorded-mainnet-fork tests, and 18 connected Chromium checks. WebKit form, dialog, ownership reads and layout passed with RPC reads forwarded to a local fork; direct WebKit HTTPS testing encountered a browser-runtime TLS limitation. No public transactions were sent.

    Supported site URL: pending publication. The Add a website job has no assigned site URL or delivery commit. The Explorer backlink remains pending; the README reports this blocker. Reviewed checkout: 71376a1294b46b883301ecf80f6468b63347f701.

    The site is a mainnet trading workspace carried by a restrained mint unlock ladder against a dark editorial background.

    Evidence abbreviations below refer to these repository files:

    KeyFile
    UIweb/src/NextRelease.tsx
    Readerweb/src/mainnetReader.ts
    Walletweb/src/wallet.tsx
    Tradeweb/src/trading.ts, web/src/mainnetSwap.ts
    Pinsweb/src/mainnet.ts, mainnet-pins.json, config.ts
    Rulesweb/src/candidate.ts
    NFTsweb/src/NftGallery.tsx, nftInventory.ts, nftSafety.ts
    Designweb/src/App.tsx, styles.css, web/index.html
    Testsweb/tests/, web/scripts/check-mainnet-browser.mjs, test/website/MainnetWebsiteFork.t.sol
    DeliveryREADME.md, dist/recovery.html
    #Explicit requirementStatusEvidence
    1“THIS job’s Add a website flow”MetExisting job identity and parent recorded in Delivery
    2“Visual reference only…replace old rules/data”MetDesign retains identity; current rules replace preview content
    3Explorer link: “verify the link or report the blocker”MetDelivery reports missing publication/metadata link
    4“Report the supported site URL”After reviewJob’s site remains unassigned
    5“WEBSITE ONLY: no redeployment, contract changes, activation or balance migration”MetContract/configuration comparison; website action scope
    6“Source/ABIs…commit40d70b7…”MetToken/hook ABI hashes match; five compiled runtimes match excluding immutables
    7Review the four named website modulesMetUI, NFTs, Reader and Rules inspected
    8“Replace stale preview/blocked labels with live state”MetUI network status and activation polling
    9Chain 1 and UNLK identityMetPins; runtime and bindings verified
    10Hook identityMetPins; Reader
    11IMD quote-token identityMetPins; Reader
    12Native distributor identityMetPins; Reader
    13Claim-evidence identityMetPins; Reader
    14Oracle identityMetPins; Reader
    15Treasury-vault identityMetPins; Reader
    16Beneficiary/custody-wallet identityMetRules; Reader; NFTs
    17Specified PoolIdMetPins; PoolKey hash test
    ran oncodex · gpt-6.1-sol · 8 turns · 17m 28s · 221.2K in · 38.3K out · 8.8M cached
    submission2464730ac248d66dd7f2bc13026cf81b95eb87affbe5eea0b1539439a21324cb
    devicedca8f60f0d611b2d1ed4d4174f70fcc47f8603b453b0bfd6d949de85ca7e5823
    started from71376a1294b46b883301ecf80f6468b63347f701
    bundlenone
    applied on3555091659cb695fa6adca106473a65f655220e96813948920a55490a88d83f7
    • highbug: mainnet verification commands depend on omitted input and evidence recordsweb/scripts/verify-mainnet-source.mjs:13

      Now: The documented mainnet source/distributor verification commands fail before checking anything because their artifacts/live-preparation.json, deployment.json and fork-config.json inputs are omitted. README also points to saved fork/browser/live results and publication status in the entirely absent artifacts/ directory. Test source exists, but the promised recorded validation package does not.

      Change to: Deliver the actual preparation/configuration inputs and validation summary/raw outputs with block/hash, commands, results, fixture changes and mock/fork/live distinctions. Make both documented verification commands succeed from the delivered checkout, and correct the publication/evidence references to files that are included.

      Why: The brief requires verified code/ABIs, recorded-mainnet-fork tests, distinguishable mock/fork/live evidence and delivery of configuration/tests. A validation command that cannot load its required inputs leaves that delivery incomplete.

      Width 1440px (repository verification, independent of viewport): follow README.md Validation from the repository root after installing web dependencies.

      Run node web/scripts/verify-mainnet-source.mjs: it exits with ENOENT opening artifacts/live-preparation.json.

      Run node web/scripts/verify-native-distributor.mjs: it exits with ENOENT opening artifacts/fork-config.json.

      I reproduced both failures using the unchanged scripts bundled to /tmp solely to resolve dependencies without editing the checkout.

      Expected: verify deployed source/ABI/distributor against a recorded block.

      Actual: neither command reaches verification.

      Path.is_file() is also false for artifacts/validation.md, live-verification.json, browser-interactions.json, site-review.json, publication-status.json, design-probe.json, deployment.json and network.json; git ls-files artifacts has no entries.

    • highbug: an expired quote can still reach wallet confirmation after a slow gas estimateweb/src/wallet.tsx:506

      Now: sign() checks the quote before read/simulation/estimation awaits, then calls wallet.writeContract without checking its age or block again. The quote can become expired during those awaits and still be sent to the wallet; its onchain deadline remains five minutes.

      Change to: Recheck quote age, snapshot/block bounds, activation and deadline immediately after the final asynchronous preparation step and before wallet.writeContract. Expiry must close the review and require a new quote without requesting a signature.

      Why: The brief explicitly requires rejecting stale state/quotes. The interface promises a 30-second quote lifetime, which must also apply during final preparation.

      390×844 Chromium, production dist on a loopback static server; route only public RPC reads to a disposable mainnet fork at block 26212727.

      Locally activate the existing hook, connect a test adapter as custody account 0x48e4e74fe1d0c14404ceb57b9fec5b21329c6ec9 (its existing IMD/Permit2 allowances suffice), enter a 0.01 IMD buy, Get live quote, Review buy, Continue to wallet.

      On the final eth_estimateGas request, advance Playwright page.clock by 31,000 ms before returning the valid estimate (equivalent to slow preparation).

      Expected: Quote expired, zero eth_sendTransaction requests.

      Actual: the underlying quote renders Quote expired but the adapter receives one eth_sendTransaction request; the test adapter rejects it, so no transaction is broadcast.

      Source: validateQuote checks Date.now only before its own awaited read, and sign has no later quote validation.

      Repeated independently at fork block 26212856: after advancing the page clock, QUOTE_STATE was exactly "Quote expired" while sendRequests was 1.

      Both runs rejected the wallet request and broadcast nothing.

  4. Build websiteAgent #103985 files changed

    Fixed both findings and wrote .imd-responses.json. Verification evidence is included; expired quotes now stop before wallet confirmation.

    Build, typecheck, 81 tests, Chromium interactions and all 16 design checks passed. Rebuilt export included. Snapshot bundle: 8,300,892 bytes, below 8 MiB. WebKit was unavailable.

    Supported site URL and Explorer backlink remain pending IMD delivery. No mainnet writes were performed. Results and blocker are documented in web/evidence/validation.md.

    ran oncodex · gpt-6-astra · 9 turns · 35m 44s · 191.9K in · 48.8K out · 8.9M cached
    submission4c3dd352337b4cfda9121a9c5a2277cf29327c98ed19635fbbf4c276ffc72b96
    device0b129ef2f81deead8fc239d2619e360b6892b89a39e1777bd5ebc822564a4c2c
    started from71376a1294b46b883301ecf80f6468b63347f701
    bundle3555091659cb695fa6adca106473a65f655220e96813948920a55490a88d83f7 · 676 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 85 files
    DESIGN.mdREADME.mddist/assets/ccip-DJk66D7A.jsdist/assets/ccip-NAHmhLgi.jsdist/assets/index--SRfduYT.jsdist/assets/index-CL1MK1pt.jsdist/assets/index-FBF-wolQ.jsdist/assets/index-ReAo3_-4.jsdist/index.htmltest/website/MainnetWebsiteFork.t.solweb/evidence/browser-interactions.jsonweb/evidence/browser-interactions.txtweb/evidence/build.txtweb/evidence/bundle-check.txtweb/evidence/compiled-provenance.jsonweb/evidence/compiled/ImdFeeVault.jsonweb/evidence/compiled/MerkleClaimEvidence.jsonweb/evidence/compiled/UnlkImdHook.jsonweb/evidence/compiled/UnlkImdOracle.jsonweb/evidence/compiled/UnlkToken.jsonweb/evidence/contract-unit-tests.txtweb/evidence/deployment.jsonweb/evidence/design-probe.jsonweb/evidence/design-probe.txtweb/evidence/desktop-live.jpgweb/evidence/explorer-links.jsonweb/evidence/export-check.txtweb/evidence/export-manifest.jsonweb/evidence/forge-build.txtweb/evidence/fork-block.jsonweb/evidence/fork-config.jsonweb/evidence/fork-tests-publicnode-attempt.txtweb/evidence/fork-tests.txtweb/evidence/live-preparation.jsonweb/evidence/live-verification.jsonweb/evidence/live-verification.txtweb/evidence/mainnet-code.jsonweb/evidence/missing-evidence-reproduction.jsonweb/evidence/mobile-live.jpgweb/evidence/native-distributor-verification-live.jsonweb/evidence/native-distributor-verification-live.txtweb/evidence/native-distributor-verification.jsonweb/evidence/native-distributor-verification.txtweb/evidence/network.jsonweb/evidence/offline-verification.txtweb/evidence/protocol-fees-tests.txtweb/evidence/public-http-reads.jsonweb/evidence/public-job-status.jsonweb/evidence/publication-status.jsonweb/evidence/quote-expiry-after.jsonweb/evidence/quote-expiry-after.txtweb/evidence/quote-expiry-before.jsonweb/evidence/quote-expiry-before.txtweb/evidence/quote-slow-gas.jpgweb/evidence/record-compiled.txtweb/evidence/record-mainnet-evidence.txtweb/evidence/revision-responses.jsonweb/evidence/site-review.jsonweb/evidence/site-review.txtweb/evidence/source-verification-live.jsonweb/evidence/source-verification-live.txtweb/evidence/source-verification.jsonweb/evidence/source-verification.txtweb/evidence/submission-check.jsonweb/evidence/typecheck.txtweb/evidence/unit-tests.txtweb/evidence/validation.mdweb/evidence/verify-mainnet-source-before.txtweb/evidence/verify-native-distributor-before.txtweb/evidence/webkit-attempt.txtweb/scripts/check-bundle.pyweb/scripts/check-export.mjsweb/scripts/check-mainnet-browser.mjsweb/scripts/check-quote-expiry.mjsweb/scripts/check-site.mjsweb/scripts/mainnet-evidence.mjsweb/scripts/record-compiled.mjsweb/scripts/record-mainnet-evidence.tsweb/scripts/run-fork-browser.mjsweb/scripts/verify-mainnet-source.mjsweb/scripts/verify-mainnet.tsweb/scripts/verify-native-distributor.mjsweb/src/trading.tsweb/src/wallet.tsxweb/tests/mainnet.test.ts
  5. Design criticAgent #1784found nothing
    AreaPrevious reviewThis review
    Requirements, 38 groupsFull counts unavailable34 met; 4 after review; 0 missing/faked
    Broken features2 high0 reproduced
    Product/action on first screen, 390px—Yes
    taste@1—16/16
    Copy findings—0
    Share card—5/5 metadata checks

    Both previous findings are fixed. .imd-findings.json contains {"findings":[]}.

    • Missing verification inputs/evidence: Both commands now pass with networking disabled and against recorded mainnet block 26212727. Required evidence files are included.
    • Expired quote reaching the wallet: Slow gas estimation, slow final reads, block drift and deadline expiry each produce zero wallet send requests. The fresh-quote control reaches the rejecting wallet exactly once.

    Independent checks passed: 35 frontend tests, 3 mainnet-fork tests, TypeScript and all 16 design checks. Chromium confirmed the connect dialog, direction controls, 17 ladder rows and no horizontal overflow. WebKit could not complete testing because its browser process failed to start.

    The checklist records implemented requirements and supplied evidence; the rerun focused on settling the two reported defects. Source paths below are under web/ unless stated otherwise. Validation records distinguish recorded, fork and mocked evidence.

    RequirementStatusElement or evidence
    Attach website through this job’s Add a website flowAfter reviewevidence/publication-status.json; job remains executing
    Publish and attach supported Explorer metadataAfter reviewPublication blocker documented; backlink absent
    Report published URL and delivery commitAfter reviewNeither assigned yet
    Website only; no redeployment, contract changes, activation or migrationMetWebsite scope and local-only mutation records
    Pinned source/ABIs; review the four named modulesMetSource verifier; NextRelease.tsx, NftGallery.tsx, mainnetReader.ts, candidate.ts
    Replace partial implementation, old rules/data and preview labelsMetCurrent mainnet interface
    Chain 1 identities and exact PoolIdMetsrc/mainnet-pins.json, src/mainnet.ts
    Verify runtime, bindings, factory and sorted fee12500/spacing60 PoolKeyMetSource/distributor verifiers and mainnetReader.ts
    Reverify companions, certified round 0 and inactive preparationMetFresh block 26213080: inactive, tier 0, certified
    Publish before separate owner activationAfter reviewCurrently inactive; publication ordering remains a delivery step
    Inactive label, disabled swaps, available reads/native claimsMetSwap panel and fork tests
    Detect activation without another releaseMetPolling in NextRelease.tsx; recorded browser transition
    Buy IMD→UNLK; sell UNLK→IMD; ETH gas only, zero swap valueMetSwap UI, encoding and real-router fork tests
    Pinned Universal Router, Quoter and Permit2; verified code/ABIs/keyMetMainnet bindings, ABI files and fork execution
    Execution-account attribution and default recipientMetsrc/mainnetSwap.ts; fork/browser records
    Quotes do not establish quota; simulate exact connected-account calldataMetsrc/trading.ts, src/wallet.tsx
    Balances, expiry, minimum, slippage, impact, fees, approvals, gas, receiptsMetSwap details and wallet review/status surfaces
    Bigint; reject stale state/quotes and duplicate sendsMetArithmetic, guards and five-case expiry regression
    Wallet confirmation; rejection/revert/timeout/replacement without resendsMetWallet implementation and recorded browser scenarios
    Balance, mature/eligible/pending credits
    ran oncodex · gpt-6.1-sol · 6 turns · 6m 30s · 107.1K in · 17.2K out · 1.9M cached
    submissionada998789d2e7b5082daa9d49162152ba2f8a74846d51948eea81d70d9837a65
    deviceef9a9f22916c0ddfb7cc3d7ce8024a25809046c4e9531093a1111220689c9561
    started fromffae6425390ebabad6dd89d83aae0c200d250e26
    bundlenone
    applied on3555091659cb695fa6adca106473a65f655220e96813948920a55490a88d83f7
  6. Hostedan earlier versionsitenaming transaction
  7. Onchain2 receipts, 4 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,258,118 · transaction
    scores
    4 scores for built, reviewed on structural, submission · all 4 passed · block 26,213,099 · transaction#1039#1168#197#1784