Ux touchups#10
Open
Corantin wants to merge 202 commits into
Open
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CSP: add vercel.live to script-src to unblock Vercel feedback widget - views: guard against empty message to stop /api/views 400 errors - reactions: fix GET endpoint to scan all reactions:v2:* keys when no markeeAddress supplied — hook was always getting empty array on load - detail page: remove Names tab, rename Funding→Funds Added and Messages→Message History, merge message+name events into single time-sorted combined history without strikethrough old values Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Markee Cooperative, Gardens, Clawchemy, and Superfluid are in the legacy OI factory's getLeaderboards() list but had no KV meta, so they were landing in Unverified with status:pending. Hardcode their verified status, URLs, and logos directly in the OI leaderboards API so they always appear in the Verified section without a KV write. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The SF migration leaderboard (0xb6CC...) is a partner leaderboard migrated from v0.1, not a new Superfluid project. It comes through the SF API, but the ecosystem aggregator strips status from all SF entries, so it landed in Unverified. Override that one address to platform:website + status:verified so it joins Cooperative, Gardens, and Clawchemy in the Verified section. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- reactions: replace kv.scan (unreliable in @vercel/kv v2) with a set-index approach — POST writes sadd reactions:markees, GET reads smembers + hgetall per markee; no more 500 on page load - CSP: add vercel.live to frame-src to stop iframe violation warning - detail page: wrap history tabs in ModeratedContent so flagged markees blur the full message history for non-admin users Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TokenBalance gated on wagmi isConnected which lags behind Privy's authenticated state. Adding the Privy authenticated check means the balance hides as soon as Privy logs out, matching ConnectButton behaviour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- New /api/eth-price endpoint (CoinGecko + 5-min KV cache) - useEthPrice hook for client-side price lookups - formatUsd utility for consistent dollar formatting - EthBalance component in header showing ETH balance + USD value - FixedPriceModal: USD-primary price + balance, Fund with card button - TopDawgModal: USD-primary preset buttons + balance, Fund with card button - Home page and create-a-markee stats show USD primary with ETH secondary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Superfluid points: - Add legacy TopDawg (FundsAddedToMarkee) scan from block 41984295 - Add dedicated SF migration leaderboard scan with own KV block key - Give each address family its own last-processed block so late additions don't silently skip historical events - uniqueId (txHash-logIndex) deduplication makes all scans safe to re-run GitHub delimiter grandfathering: - Add GITHUB_NEW_TO_OLD map in linkedFiles.ts covering all 11 v1.0→v1.1 GitHub leaderboard migrations from markee-migrations.csv - verify-markee-file and register-markee now accept old-address delimiters as verified when the new-address delimiter is absent - update-markee-file uses migrate-on-write: if only old delimiters are found it replaces them with the new-address markee block on next update Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The hardcoded v1.0→v1.1 map doesn't cover files from before the v1.0
migration (e.g. delimiter address 0x56c5f6ce... in honeyswap-interface).
verify-markee-file and register-markee now accept any
<!-- MARKEE:START:0x{40} --> / <!-- MARKEE:END:0x{40} --> pair as valid,
regardless of which address is embedded. Push access to the repo was
already verified on registration so this doesn't weaken the security model.
update-markee-file gains a matching last-resort regex pass: it finds any
address-shaped delimiter pair and replaces the block with the current
leaderboard's content + new-address delimiters (migrate-on-write).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Partners with leaderboardAddress=null (Bread Cooperative, RevNets, Juicebox, Giveth, Flow State) had their old TopDawg strategy addresses fall through as strategyAddress in TopDawgModal. Those old strategies route to RevNet v5 (project 119, compromised terminal) so any purchase would send a portion of ETH there. Changes: - Hide "Buy a Message" and "Be the First!" buttons when leaderboardAddress is null, showing "Purchases coming soon" instead - Remove the strategyAddress fallback to partner.strategyAddress in TopDawgModal (now passes undefined when no leaderboard, preventing any purchase call) Completing migration for these 5 partners requires deploying new v1.1 leaderboards via the OpenInternet factory and setting leaderboardAddress in PARTNERS. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Superfluid factory deployed early leaderboards from a v1.0 Leaderboard implementation that hardcodes the deprecated RevNet v5 terminal (0x2dB6d704...) — routing 38% of every purchase to it. Read VERSION() on each individual leaderboard page and gate all purchase buttons behind isLegacyContract check (VERSION !== '1.1.0'). Legacy leaderboards show a warning banner instead of Buy a Message. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rboards Deploys a new v1.1 Superfluid LeaderboardFactory and migrates all 96 existing v1.0 leaderboards from the old factory (0x45Ce642d...). Per-leaderboard: creates v1.1 clone via new factory, removes automation seed, runs migrateFromLegacy() for each markee, transfers admin back to original creator. Resolves original admins from old factory's LeaderboardCreated event logs rather than admin() (which returns zero on the deployed pre-v1.0 bytecode). Outputs JSON and CSV rows for follow-up frontend updates. Fund automation wallet 0x000D356bB4D1E81CAb7cFA47D8707cdBDfEDE5af with ~0.05 ETH before running live. After running, update FACTORIES.SUPERFLUID and the two API routes per the script's NEXT STEPS output. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deploys new v1.1 LeaderboardFactory for Superfluid (0x1E1b0C22e2C6C7b46ABb0F25231c7eecD4f0A2d8) and migrates all 96 v1.0 leaderboards to v1.1 counterparts with correct RevNet routing. - Update SUPERFLUID_FACTORY_ADDRESS and FACTORY_DEPLOY_BLOCK across leaderboards API and points cron to point at new factory - Add old→new redirect map in [address]/page.tsx so legacy URLs transparently redirect to v1.1 leaderboard addresses - Update addresses.ts and CLAUDE.md with new factory address - Record new factory address in migrations CSV Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces hardcoded MIGRATIONS array with auto-loading from /tmp/migration-sf-factory-results.json so all 149 markee address pairs from the v1.0→v1.1 factory migration are migrated in one run. Switches SET → INCRBY so re-runs accumulate safely. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…Superfluid markee addresses Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…views route Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion, and health endpoint - Add topMarkeeAddress to API fields docs - Add view tracking section: proxy route + useRef-gated POST on first display - Add moderation section: proxy route + flagged Set + per-tab filtering behavior - Add optional health endpoint route for integration dashboard verification - Update platform/moderation banner copy (no longer mentions @vercel/kv) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…factory SUPERFLUID_FACTORY_ADDRESS now points to FACTORIES.SUPERFLUID (v1.1, 0x1E1b0C22e2C6C7b46ABb0F25231c7eecD4f0A2d8) instead of the old 0x45Ce642d factory. Both the writeContract call and the receipt log parser use the same constant, so both are fixed. GitHub and create-a-markee factories were already correct. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- FACTORIES.GITHUB: 0xb1E2dC95b50b4Ee3b1BD4F4F87e6B07b41bE4e07 was wrong, corrected to 0xb1E2dC9582810124Fed3Cdb4B8Bb944A5495D85a (matches GitHub platform page and user-confirmed address) - Fixed-price CSV rows: old addresses moved to v10_address column, current addresses.ts values added to v11_address column Note: Superfluid factory row (line 4) was already correct in the CSV. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- addresses.ts: populate REVNET_V6_CONFIG (terminal 0x27da30..., project 152); correct OI factory labels (0x3f9f7C = v1.0, 0xb9922E = v1.1) - abis.ts: expand LeaderboardV11ABI with full admin write surface (setRevNetTerminal, setRevNetProjectId, setPercentToBeneficiary, setRevNetEnabled, setPlatformFeeReceiver, setBeneficiaryAddress, setAdmin) and routing view getters - scripts/enable-revnet.mjs: generates Safe Transaction Builder batch JSONs for all 20 v1.1 leaderboards — Coop multisig batch (4) and Paul's wallet batch (16 OI + GitHub). Run: node scripts/enable-revnet.mjs - MIGRATION.md: fix factory version labels, fill in real terminal/projectId in checklist, mark completed Superfluid work, scope v1.0 exclusions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… enabled BuyMessageModal and TopDawgModal now conditionally show a MARKEE token count card when revNetEnabled is true on the leaderboard contract. Revenue split updates from 100% to 62%/38% (beneficiary / Markee Cooperative) accordingly. Token count uses the live phase schedule (50k/ETH through 2026-06-21). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The initial enable-revnet batch used the wrong JB terminal address. The correct terminal for RevNet project 152 on Base is 0x2dB6d704... (confirmed from a successful on-chain pay tx to the same project). Coop multisig needs to run the fix-terminal-coop.json Safe batch to correct the 4 already-enabled leaderboards. Paul's 16 leaderboards have not yet been enabled so they are unaffected. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Multicall3 from EOA doesn't preserve msg.sender, so onlyAdmin calls would revert. This script sends 64 sequential cast send transactions (4 per leaderboard) directly from the EOA private key instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ACCOUNT=revnet-admin is now preferred over raw PRIVATE_KEY. Create keystore once with: cast wallet import revnet-admin --interactive Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds 3s sleep between cast send calls to avoid replacement-tx-underpriced errors. Adds revNetEnabled check before each leaderboard so re-runs are safe and idempotent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.2 fixes a governance hole where individual leaderboard admins could redirect the 38% RevNet cut to any project. Terminal and project ID are now stored on the factory (Coop-only setter) and read by all leaderboards at pay-time — one tx updates every leaderboard simultaneously. - New contracts: Leaderboard v1.2, LeaderboardFactory v1.2, Markee v1.2 - 3 factories deployed (OI, GitHub, Superfluid) with RevNet v6 baked in - 21 leaderboards migrated, 107 Markees cloned, 4 handed to Coop multisig - All frontend address references updated to v1.2 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.