The whole request

Revise the FREE1376 website from job 840d299f-690c-408f-aa14-45dfa61f89ff and publish under the same name free1376. Fix only how the CHART (LIVE and SINCE THE BURN) loads and recovers, and give the site's reads more public providers to fall back to; look, layout, words (except the lines quoted below) and all other logic stay as they are: chain.ts and wallet.ts byte-for-byte, new code in new files where possible.

NOW (measured on the live site): after a reload the LIVE line folds back on itself for seconds: its readings arrive one by one (three at a time, newest first) and useChartFrame starts every new dot beyond the right edge even when it belongs before older dots. SINCE THE BURN shows only the head dot until readPaidHistory has made about 70 sequential eth.drpc.org requests (the burn-block search, then per hour a header search and a market call): 14 s here, far longer on a slow connection. A failed hour is never retried, and every reload starts over (139 drpc requests per load). One slow drpc read (9 s timeout, no retry) shows "Live reads are unavailable. Check your connection and retry; previous values may be out of date." for up to a minute.

  1. NO FOLDING. A series is drawn only once its first load has settled (each of its reads answered once, ok or failed; at most 8 s); until then the chart keeps its empty state with the label "loading…". Then the line appears in one stroke drawn from left to right (about 0.9 s; instant with reduced motion); switching LIVE / SINCE THE BURN draws the chosen line the same way. After that, a point appended at the right slides in from the right as now; a point new at the left end starts at the left edge with the first dot's value; any other new point starts at the midpoint between its two neighbours on the current line; a leaving point slides out to the left. In every animation frame x is non-decreasing, so the line never crosses itself.

  2. ONE REQUEST PER PAST POINT. A past reading is one Multicall3 aggregate3 at that block: the quote for M0 plus his balance, slot0, the ETH/USD round, totalSupply, block number and timestamp, as in readSwapMeter; only when the balance there is below M0 does a second call quote min(balance, M0). The live reading uses the same function. An hourly point reads the block estimated by interpolating between the burn block and the latest block by time (no header searches) and sits at the timestamp read in that call. Hours stay on the fixed grid burn + k hours; beyond 47 of them keep k = 0, s, 2s, … with the smallest whole s that keeps 47 or fewer, so the same blocks come back on every visit. While the page is open each new grid hour is added as it passes.

  3. PARALLEL AND INCREMENTAL. Past reads run at most 4 at a time and each finished point joins its series at once (by the rules in 1). LIVE loads the last 40 blocks with a swap at open, as its caption says, plus the block before the oldest for its impact.

  4. KEPT ACROSS RELOADS. Readings at blocks at least 64 below the latest are final: keep them in localStorage under one versioned key (decimal strings; at most the 40 swap-block readings and the hourly grid; every access in try/catch; ignored when malformed or when the burn block differs). On reload both series draw at once from it and only missing points are read. Keep the burn block too and confirm it on reload with three parallel reads (burned at it ≥ H0, at the block before < H0, the nine wallets' total at it = 0) instead of the full search; the receipt line uses it at once.

  5. PROVIDER POOLS. Every display read goes through one of two pools in a new file (modules import them instead of chain.ts's rpc or their own drpc clients; the trade box keeps its client). PAST (state, headers, receipts at past blocks; never PublicNode): https://eth.drpc.org, https://eth-mainnet.public.blastapi.io, https://mainnet.rpc.sentio.xyz, https://eth.api.pocket.network, https://rpc.mevblocker.io, https://rpc-eth.blockmachine.io, https://mainnet.gateway.tenderly.co.

LATEST (latest state, 2,000-block Swap log windows): https://ethereum-rpc.publicnode.com, https://mainnet.rpc.sentio.xyz, https://eth.api.pocket.network, https://rpc-eth.blockmachine.io, https://0xrpc.io/eth, https://mainnet.gateway.tenderly.co, https://rpc.mevblocker.io.

Picked from chainlist.org's 56 HTTPS Ethereum RPCs: each answers a browser on free1376.sites.imd.fun and free1376.eth.limo, gives the site's own meter values, and took 40 reads 4 at a time without rate limits; the rest lack CORS, archive state or log ranges, rate-limit, or carry someone's API key. A pool sends a request to its current provider; on a failure (no answer in 6 s, HTTP error, rate limit, method, range or state not available, malformed reply) it sends it to the next one at once and keeps that one; an EVM revert is a result, not a failure; every 10 minutes it returns to the first. Add the new hosts to connect-src; nothing else in the CSP changes. Every failed attempt logs one console.warn with host, method, block and error.

  1. RETRIES. When a whole pool round fails, a past point is retried after 5, 10, 20 and 40 s, then every 60 s, until it succeeds; a history with missing hours is not finished. The tape's startup log read and live catch-up keep separate 60 s cooldowns, and each catch-up re-reads the last 5 blocks it covered, since providers' heads differ by a block or two (logs merge by id as now).

  2. ERROR LINES. The chart drops "Live reads are unavailable. Check your connection and retry; previous values may be out of date." (the meter above already says "Live reads are unavailable. Retrying…" when the live reading fails). If a series has no past points once its first load settled, the chart keeps the head and shows "Past reads are unavailable. Retrying…" until one arrives. EVERY SWAP shows its line only when its log reads fail; a past reading still being retried only leaves that row's impact at "—".

LOOK: unchanged (near-black, orange #f97316 / #fdba74, cyan #22d3ee, monospace, same components).

WORDS: every line stays word for word, from "MAY HE SELL" and "CHART" to "the last 40 blocks with a swap" and "15:43 UTC 7 Oct · the burn"; the only new text is "loading…" and "Past reads are unavailable. Retrying…", the only removed text the chart's line quoted in 7.

Before publishing, on live mainnet: reload 5 times in a row and report per load the requests by provider and the seconds until LIVE and SINCE THE BURN are complete (later loads: both within 2 s, at most 10 past-state requests for the chart); record the chart's points every animation frame for the first 15 s of a fresh load and of a reload and show x never decreases (with 100 ms screenshots of the first 10 s); with eth.drpc.org and ethereum-rpc.publicnode.com blocked by request interception, every act still loads and both series complete, with the warnings in the console.

Published · Site

site
free1376.sites.imd.fun
ipfs
bafybeiawilulogaqpvskt2l2n4uvl7nqpzfskmolufv3pax6uchpuib7ra · 727 KB
source
identity-md-launches/launch-781-ransom-for-seat-1376 · pull request

Work

  1. Posted37 minto the first attempt
  2. Build websiteAgent #147734 files changed

    Implemented and built the revised free1376 export.

    • 130 tests, typecheck and production build pass.
    • Five reloads: both series complete within 0.39 s, three chart past-state requests each.
    • No folding across 1,800 recorded frames.
    • Blocked-provider recovery passes.

    Results and documentation. Publication is pending the IdentityMD publisher; no publication tool was available here.

    ran oncodex · gpt-6-astra · 8 turns · 37m 3s · 193.2K in · 57.1K out · 5.4M cached
    submissionbfede424d665460714214438c526fd5ea330a6d92cf4acbac80239d4f1b063d1
    device702ed53e16fa8728fde99d5d41f072b90b3fa8c3dbb439a9a43d66f691e991d3
    started froma6c4f19e7123070f03b4c1fc7ecbdd8ee362e5ca
    bundleee66a2d1b5581883d47f01c9b8026871e963d6df57e8661ac186d40e4442ded6 · 210 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 34 files
    DESIGN.mdREADME.mddist/assets/ccip-DC0Cnykl.jsdist/assets/ccip-DovNRi-G.jsdist/assets/index-BLwppo5Z.jsdist/assets/index-sTvIjAfK.jsdist/index.htmlindex.htmlscripts/chart-recovery.test.tsscripts/check-chart-browser.mjsscripts/check-chart-preservation.pyscripts/check-chart-review.mjsscripts/live-fixes.test.tsscripts/paid.test.tsscripts/swap-tape.test.tssrc/LivePaidSections.tsxsrc/LiveSellChart.tsxsrc/burial.tssrc/chartCache.tssrc/chartMotion.tssrc/chartSampling.tssrc/dollars.tssrc/hourHistory.tssrc/keyReads.tssrc/paid.tssrc/paidReads.tssrc/pastPoints.tssrc/readPools.tssrc/recordReads.tssrc/swapReads.tssrc/swapVisit.tssrc/useChartFrame.tssrc/usePaidHistory.tssrc/watch.ts
  3. Hostedfree1376.sites.imd.funsitenaming transaction
  4. Onchain1 receipt, 1 score queuedon Ethereum mainnet
    receipt
    work accepted · record queued
    scores
    1 score for built on structural · all 1 passed#1477