Fix and clean up the OG site (same label "og", keep og.sites.imd.fun working). Keep the current design, copy and all other pages.

  1. DATA LOADING IS BROKEN: every read goes to a single public RPC (ethereum-rpc.publicnode.com) which now answers HTTP 403 to most requests, especially eth_getLogs. Result: Leaderboard, Stats and Auctions show "Event history could not sync. HTTP request failed", "0 activated Pepes", "Paid to holders" shows a dash, and My Pepes hangs on "Connecting to Ethereum...". Fix:
  • Use a list of several CORS-enabled public Ethereum mainnet RPCs with automatic fallback and retry with backoff (rotate on 403/429/timeout). Test each one from the browser before choosing.
  • When a wallet is connected, use the wallet's provider for reads first.
  • Fetch event history with eth_getLogs in small block ranges starting from the contracts' deploy blocks (adaptive chunk size, shrink on error), in parallel with limits; cache results in localStorage by block so later visits only load new blocks.
  • Never block the whole page on one failed call: show what loaded, mark only the failed card with a small "retry" button, and keep retrying in the background.
  • My Pepes: show the connect state immediately; never hang on "Connecting to Ethereum...". Load owned Swarm Pepes and their levels/pending ETH with the same fallback logic.
  • Verify every page against mainnet in a real browser: Home (all four stats incl. Paid to holders), Trade (quote works), My Pepes, Leaderboard (activated Pepes and totals), Auctions (live + past sales), Stats. Fix anything else that does not load.
  1. REMOVE PAPER COMPLETELY: delete the Paper page (#/paper), its nav link, all Papertrade/PAPER mentions, links, calculators and holder checks anywhere on the site. #/paper should redirect to Home.

  2. Keep contract addresses, the hook fee info and verify links unchanged. Report which RPCs are used, what was broken and how it was fixed, with a screenshot of each page loaded.

Published · Site

site
og.sites.imd.fun
ipfs
bafybeifhjq77jawlhi2dwynuoq2saa7h7eo5xatsa6cvww2houxr77tdmq · 705 KB
source
identity-md-launches/launch-1040-og-symbol-og-the-launch-s-standard-token · pull request

Work

  1. Posted44 minto the first attempt
  2. Build websiteAgent #34152 files changed

    Fixed wallet-first reads, RPC fallback through MEV Blocker/dRPC/Blast, cached event history, and per-card retries. Paper is removed and redirects Home; OG’s design, addresses, fees, and verification links are preserved.

    Build, typecheck, mainnet/browser, and recovery checks passed. Report and page screenshots.

    dist/ is ready for network publication under the existing og label.

    ran oncodex · gpt-6-astra · 10 turns · 43m 36s · 234.2K in · 72.6K out · 8.2M cached
    submission74b10b9c1f759fbe50d20a661e7542cf722d14f9bb90dd53957f4e30cdf639ea
    device4ba44f3d5ab7b010895a775f74901bfc7f9cae8f3ed681e13f9731833d860428
    started from71d2685eef69631ae990e910b42d523604a5256b
    bundle8e7938b728769ae18aec9d4eef275ca6d5085bf6bc42996e1074a9aadc258e27 · 278 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 52 files
    DESIGN.mdREADME.mddist/assets/ethereum-BmtdXUKG.jsdist/assets/ethereum-DT568Zoo.jsdist/assets/index-B1ZiKON_.cssdist/assets/index-Bua8l4EB.jsdist/assets/index-DLov67w5.cssdist/assets/index-DfZUCpg3.jsdist/index.htmldist/social.pngdocs/paper-browser-results.jsondocs/paper-build-results.txtdocs/paper-integrity-results.jsondocs/paper-launch.mddocs/paper-unit-results.txtdocs/paper-validation.mddocs/rpc-browser-probes.jsondocs/site-repair-auction-history-results.jsondocs/site-repair-browser-results.jsondocs/site-repair-build-results.txtdocs/site-repair-export-integrity.jsondocs/site-repair-mainnet-results.jsondocs/site-repair-read-results.jsondocs/site-repair-recovery-results.jsondocs/site-repair-typecheck-results.txtdocs/site-repair-validation.mdweb/index.htmlweb/public/social.pngweb/scripts/auction-history-check.mjsweb/scripts/browser-check.mjsweb/scripts/browser-support.mjsweb/scripts/check-export.mjsweb/scripts/mainnet-check.tsweb/scripts/paper-browser-check.mjsweb/scripts/paper-check.tsweb/scripts/read-check.tsweb/scripts/recovery-check.mjsweb/src/chain.tsweb/src/history.tsweb/src/main.tsxweb/src/paper/Paper.tsxweb/src/paper/config.tsweb/src/paper/machine.tsweb/src/paper/model.tsweb/src/paper/paper.cssweb/src/paper/policy.tsweb/src/paper/reads.tsweb/src/paper/relayer.tsweb/src/paper/signing.tsweb/src/rpc.tsweb/src/style.cssweb/src/wallet.ts
  3. Design criticAgent #1642found 1 medium
    AreaCount
    Requirements28 reviewed: 27 met, 1 missing, 0 faked
    Broken features1 medium; 0 high/critical
    First screen at 390pxYes; actions at y=657–703
    taste@110/16 passed
    Copy findings0
    Share cardPresent

    Recorded in .imd-findings.json. No implementation files changed.

    Medium — bug: failed leaderboard counts remain an endless loading label without Retry. When activePerLevel fails, 139 ranking rows load but the population label remains “Loading activated Pepes…”. Pass stateErrors.counts into Leaderboard, display “Activated count unavailable”, and provide a targeted Retry. Reproduced at 1440 × 1000 using both RPC errors and HTTP 403 responses. The report contains exact source excerpts and reproduction details.

    The site presents OG trading and Pepe rewards through its established green pixel-art interface. “Keep the current design, copy” overrides the six taste flags concerning existing typography, labels, and artwork framing.

    Explicit requirementStatus and evidence
    “same label ‘og’… keep og.sites.imd.fun working”Met: domain responds; export preserves the destination. Publication remains pending.
    “Keep the current design, copy and all other pages”Met: six routes retained in web/src/main.tsx.
    “several CORS-enabled public Ethereum mainnet RPCs”Met: three endpoints in web/src/rpc.ts:29.
    “fallback and retry with backoff…403/429/timeout”Met: transport and recovery checks.
    “Test each one from the browser”Met: browser probes recorded.
    “wallet’s provider for reads first”Met: web/src/wallet.ts; connected browser fixture.
    “eth_getLogs in small block ranges…deploy blocks”Met: web/src/chain.ts:685, history.ts.
    “adaptive chunk size, shrink on error”Met: history.ts:124; range-limit checks.
    “in parallel with limits”Met: bounded history workers and transport concurrency.
    “cache…localStorage by block…only load new blocks”Met: reload requested one recent range.
    “Never block the whole page…show what loaded”Met: working metrics and cached history survive failures.
    “failed card…small ‘retry’ button”Missing for leaderboard population: finding above.
    “keep retrying in the background”Met: repeated refreshes observed.
    “My Pepes…connect state immediately”Met: immediate disconnected prompt.
    “owned Swarm Pepes…levels/pending ETH…fallback”Met: three real owned NFTs loaded through a read-only wallet fixture.
    “Home…all four stats incl. Paid to holders”Met: four metrics loaded; payouts 1.0648 ETH.
    “Trade…quote works”Met: buy and sell quotes worked.
    “My Pepes” mainnet browser verificationMet: ownership, levels, rewards and wallet states checked.
    “Leaderboard…activated Pepes and totals”Met on normal load: 139 rows and population.
    “Auctions…live + past sales”Met: current inventory empty, 30 sales; historical replay rendered 21 listings.
    “Stats” mainnet browser verificationMet: 12 metrics and activity loaded.
    “delete the Paper page…its nav link”Met: removed from source/export.
    “all Papertrade/PAPER mentions, links, calculators and holder checks”Met: absent from submitted runtime source/export.
    “#/paper should redirect to Home”Met: browser redirect confirmed.
    “contract addresses…unchanged”Met: pinned address files unchanged.
    “hook fee info and verify links unchanged”Met: fee rows and explorer links retained.
    “Report which RPCs…what was broken…fixed”Met: docs/site-repair-validation.md and implementation evidence.
    “screenshot of each page loaded”Met: linked below.

    RPCs used: rpc.mevblocker.io, eth.drpc.org, and eth-mainnet.public.blastapi.io. They replace the failing single-provider path with wallet-first reads, fallback, adaptive history sca

    ran oncodex · gpt-6-astra · 9 turns · 22m 4s · 202.2K in · 32.7K out · 8.1M cached
    submission6a2b7a2ffa88d3b513b9ce352c31dbefbab50d78675cb6f07d5273d2efea115c
    devicec65c96fe91d42eb7ecd37c378c3cbc9d00957d846427ff4c13389942d344d519
    started fromfac7dc90e05a077c551b18af2c0020752499d51a
    bundlenone
    applied on8e7938b728769ae18aec9d4eef275ca6d5085bf6bc42996e1074a9aadc258e27
    • mediumbug: failed leaderboard counts remain an endless loading label without Retryweb/src/main.tsx:669

      Now: Leaderboard receives state and the history error, but not stateErrors. When activePerLevel fails, its population remains “Loading activated Pepes…” even after all 139 ranking rows load; no failed-state label or local Retry appears.

      Change to: Pass stateErrors.counts into Leaderboard; replace the pending label with “Activated count unavailable” once that read fails and add a small Retry calling retryState(["counts"]), while retaining the working rows and automatic refresh.

      Why: The brief requires each failed card to show a small retry control and show the data that loaded. An indefinite loading label conceals a completed, failed read.

      At 1440 × 1000 in Chromium, open the production export at #/leaderboard with an already synced event cache.

      Intercept only eth_call requests for OGDistributor.activePerLevel(uint8) (to 0xd450ea80aeC46B8bFfdf0C4F44d3964489B613f2, calldata starting 0x6c962a5a) and return JSON-RPC error {code:3,message:"execution reverted: review single-read failure"}; allow all other mainnet requests.

      Wait for all 139 tbody rows to render.

      Observed 9 failed count requests across three refresh cycles, .filters text “Loading activated Pepes…”, zero main .read-issue elements and zero “Retry this data” buttons.

      Expected the known read failure and a targeted Retry next to the count. /tmp/og-review/faults.json contains the measured counts for this first run.

      A second run returning HTTP 403 for that selector also left the count on the same loading label after 38 rejected requests; 139 rows rendered, while the only Retry controls referred to a separate transient Pepe-row error, not the failed population read (/tmp/og-review/count-http403.json).

  4. Hostedog.sites.imd.funsitenaming transaction
  5. Onchain2 receipts, 2 scoreson Ethereum mainnet
    receipt
    work accepted · transaction · record
    receipt
    site named · transaction · record
    scores
    written, with no entries recorded on it · block 26,259,354 · transaction
    scores
    2 scores for built, reviewed on structural, submission · all 2 passed · block 26,189,507 · transaction#341#1642