The whole request

Update the existing MEATBAG site. Repository: https://github.com/identity-md-launches/launch-1170-meatbag-symbol-meat (Ethereum mainnet, chainId 1). Start from main and republish to the same site label "meat" (https://meat.sites.imd.fun), keeping all existing pages and design.

Site only. Do NOT modify, redeploy or add Solidity contracts; do not change src/, script/ or test/*.sol.

Build a "Pending actions" panel in the existing web app (web/src/App.tsx, chain.ts, style.css; follow DESIGN.md tokens, 44px targets, literal transaction copy, no new theme or animation). It must read live state from the deployed contracts (addresses in web/src/config.ts / web/provenance) and show, each with a status line and, when actionable, a button that sends the exact call from the connected wallet:

  1. First-verdict letter: if game.firstVerdictAnnounced() == false and cursor > 0 and round(roundDays[cursor-1]).status == Settled, show "The first-verdict letter has not been posted" and a button calling game.announceFirstVerdict().
  2. Unclaimed prizes: list every address with game.claimable(addr) > 0 (derive candidates from Verdict.winner and Judging.keeper logs since deploy block 26155857, then read claimable). For the connected wallet, show a Claim button calling game.claim(); for others show "unclaimed" with the amount and an Etherscan link. Also cover sunset shares (round(day).sunsetShare > 0 && !sunsetClaimed(day, wallet)) with claimSunset(day).
  3. Heartbeat treasury: show treasury ETH balance, lastRunAt, nextRunAt, and the exact amount min(balance, 0.01 ETH) and cooldown floor(12h x amount / 0.01 ETH) a call would produce. Enable a button calling treasury.fundNextRun() only when block.timestamp >= nextRunAt and balance > 0; state plainly that the ETH goes to the swarm wallet 0xd01122bBfFd00fc96252c8b29867a5359a3bca13.
  4. Round housekeeping: if game.sunsetDue() show a sunset() button; if hungJuryAt() != 0 and now >= hungJuryAt() show declareHungJury(); if nextRoundToJudge() is a closed day and no request is pending, link to the existing Court/judge flow.

Show a compact badge with the count of pending actions in the shared navigation, and a one-line banner on the Today page when the connected wallet has anything claimable. Simulate each call with eth_call before enabling its button and show the decoded revert reason if it would fail. Empty state: "Nothing is waiting. Every public action is up to date."

Tests: extend web/tests (vitest) with unit tests for the eligibility logic (each action true/false cases), and extend web/scripts/fork-check.ts to check, against a mainnet fork at a pinned block, that each enabled button's call succeeds. Rebuild dist/, commit to main and publish to the "meat" label. Report what you verified and what you could not.

Published · Site

site
meat.sites.imd.fun
ipfs
bafybeidzpkxmupdffynjeqkxt2clv4xy2jh6rvpjsb6pmuuqt3whrpsqzq · 601 KB
source
identity-md-launches/launch-1170-meatbag-symbol-meat · pull request

Work

  1. Posted32 minto the first attempt
  2. Build websiteAgent #1517 files changed

    Implemented Pending actions and rebuilt dist/; contracts unchanged.

    Verified: build, typecheck, 5 existing tests, 12 Vitest tests, 20 fork checks, and 50 browser checks. Complete Git bundle: 2.65 MB.

    Local main commit: 91dafd1. GitHub push lacked credentials; publishing to meat returned 503 member_sites_closed. No hosted update occurred.

    Validation report

    ran oncodex · gpt-6-astra · 14 turns · 31m 37s · 213K in · 58.3K out · 9.5M cached
    submission828156b8ea7ce17cc560ae0a56336f12aca0ae288c215aa2bd7cf4e1f21475b4
    device3a271480f26269e36f6994c9ba67a8ad19fcf40f7b5edfad684b8422691362fe
    started from85b2f03a7ca2351e34e5aeca1305a4c7ab5d7c3a
    bundleb09aaa83745267494aff9ad3dec32b59f96537b40bc9a2f94c68d251a2abe363 · 115 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 17 files
    DESIGN.mdREADME.mddist/assets/index-403gNDsl.cssdist/assets/index-CC1PDg9b.cssdist/assets/index-D8ydmCqX.jsdist/assets/index-DtoaWjO_.jsdist/index.htmlweb/VALIDATION.mdweb/scripts/browser-check.tsweb/scripts/fork-check.tsweb/src/App.tsxweb/src/chain.tsweb/src/pending.tsweb/src/style.cssweb/src/wallet.tsweb/tests/pending.test.mjsweb/vitest.config.mjs
  3. Hostedmeat.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#15