docs(fees): step the Terms and FAQ resale fee copy from 5% to 7.5% - #270
Conversation
feeRate is owner-settable on chain and is being stepped 500 -> 750 bps. Terms section 6 and the two FAQ answers hardcode the old rate; this brings them to 7.5% so the copy changes in lockstep with the admin call, and rewrites the FAQ header note so it says the fee is settable rather than a constructor value. The FAQ facts test now pins 7.5% and rejects a bare 5%. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Merge gate met.
Verified from the receipts: status Live
|
GigaHierz
left a comment
There was a problem hiding this comment.
APPROVE — reviewed at head 985a344 (= da3caaf + merge of main; content diff unchanged).
Verified:
- Diff touches exactly the three flagged strings (Terms §6, FAQ
who-pays-whom, FAQsniped) plus the two source comments; Terms wording is "up to seven and a half percent (7.5%)". faq.test.tspins7.5%and rejects a bare5%(regex excludes7.5%andx.5%), so a partial revert goes red.- Runtime code does not hardcode the fee:
lib/resaleFee.tsreadsfeeRate()per map; analytics and PnL routes go through it. Remaining500literals are pure-function test fixtures. - On-chain: World and Africa at 750 bps, both
setFeeRatetxs decoded and linked in the comment above; production reveals[0,1], so the copy matches every visible map. ci / cigreen on985a344; merge-tree against main clean.
Legal sign-off on §6 is being handled by the product owner outside this PR. Follow-up (maps revealed at a different rate) noted on #265.
Merge gate: not before the
setFeeRate(750)call lands.feeRate()on all three live maps (world0xA8cF…5C49, africa0x8e70…79b7, asia0x9b8D…0661) still returns 500 bps at block 77490520 (2026-09-14 13:07Z). Merge this the same day the admin call is mined and paste the tx hash here — the copy is meant to change in lockstep, and merged early it would state a fee players are not yet paying.Player-facing copy hardcodes the resale fee at 5% in three places — Terms §6 (
terms/page.tsx:61), and the FAQ'swho-pays-whomandsnipedanswers (faq/content.ts:117,:122). The rate is owner-settable on chain (setFeeRate, capped atMAX_FEE_RATE2000 bps), and the plan steps it 500 → 750. Nothing ties the copy to the live value, so the moment the call lands, a legal document and two money answers are wrong. This changes the three strings to 7.5% ("up to seven and a half percent (7.5%)" in the Terms), updates the two source comments that repeat the number (terms/page.tsx:11,faq/content.ts:15-19), and rewrites the FAQ header note so it says the fee is settable and was stepped by a tx rather than being a constructor value. The FAQ facts test now pins7.5%and rejects a bare5%, so a partial revert of one answer fails CI.Two things a reviewer should know. The Terms file's own header says any further edit to that text needs legal sign-off, so §6 wants counsel's OK before merge even though the change is one number — routing that is outside this PR. And the
faq/content.tsnote says the tx is "referenced by the PR that landed this line": that is this PR, and the hash goes into the first comment when it exists; the "re-confirmed" box on #265 gets ticked by acast callagainst all three maps that day, not by this diff.Verified:
tsc --noEmitclean,vitest run src/__tests__/app/faq.test.ts11 passed. Mutation control: reverting one FAQ answer to 5% turns the facts test red. Not verified: nothing here executes — it is static copy, so the check that matters is the on-chain one above, on the day.Closes #265
🤖 Generated with Claude Code