You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(stake): count toward the next milestone, not just the 100k ladder (#252)
* feat(stake): count toward the next milestone, not just the 100k ladder
The campaign tells people to "track progress toward the 10,000 MOR milestone",
but the only progress on the page measured against SUBNET_GOAL_MOR (100,000).
At 7,453 MOR staked it answered 7% to a reader who arrived expecting 74% — a
tenth of what the announcement had promised, from a page that was not wrong,
just answering a different question.
Lead with the active tier: "7,453 / 10,000 MOR — 74%" plus what it unlocks. The
100k bar stays underneath as macro context, demoted to micro type and a neutral
fill so green marks the figure that matters now.
Derived, never pinned to 10k. `nextMilestone()` returns the lowest tier the
subnet has not reached, so the day 10k lands the page starts counting toward
15k on its own; once every tier is behind us it returns null and the block says
so instead of dividing by a milestone that no longer exists.
`floor` rather than `round` on both percentages: at 9,999 of 10,000 rounding
prints "100%" next to a milestone that has not been reached, which is the same
kind of misreport this change exists to remove.
Same on-chain figure as before — one read, two framings, no second source.
useGnarsSubnet now reports loading/ready/error because `totalStaked` starts at
0, and rendering that 0 as fact claims "nobody has staked" while the RPC is in
flight. A failed refetch after a good read keeps the last good figure.
`milestones.<id>` now holds only the deliverable, with `milestoneRow` composing
"{n} MOR staked: {what}" for the ladder, so the indicator and the checklist
share one copy source instead of duplicating twelve strings across two locales.
Drops `goal` and `morStaked`, dead once the old header went. EN and pt-BR stay
at 287 keys each, same order.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(stake): keep the tier figure and its percentage on one line at 390px
At 390px the pair needed 252px of a 254px column — two pixels short — so the
percentage wrapped onto its own line, left-aligned under the figure, where it
read as a separate statistic rather than the share OF the number above it, and
pushed the progress bar down.
One step down the type scale at base, full size from `sm`. The pair now needs
217px, leaving 37px of headroom — which also covers the wider labels the ladder
produces later ("10,000 / 15,000 MOR" is longer than today's). Desktop is
untouched: still 24px, still one line.
No structural change — three utility classes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: messages/en/stake.json
+15-8Lines changed: 15 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -278,22 +278,29 @@
278
278
"subnet": {
279
279
"title": "Co-sponsor the Gnars Builder subnet",
280
280
"desc": "This one pays you nothing. Staked MOR powers the Gnars Builder subnet, which funds what the DAO ships. Your MOR stays yours and unlocks 7 days after you stake.",
281
-
"morStaked": "MOR staked",
282
-
"goal": "goal {n, number}",
283
281
"cta": "Back the subnet",
284
282
"milestonesTitle": "Amplification milestones",
285
283
"milestonesNote": "As staked MOR grows, Gnars amplifies Morpheus — Gnars's own commitment, building on Morpheus's open protocol.",
284
+
"milestoneRow": "{n, number} MOR staked: {what}",
285
+
"nextMilestone": {
286
+
"label": "Next milestone",
287
+
"unlocks": "Unlocks: {what}",
288
+
"loading": "Reading the subnet…",
289
+
"error": "Can't reach the subnet right now",
290
+
"allDone": "Every milestone reached",
291
+
"macro": "{staked, number} of {target, number} MOR toward the full ladder"
292
+
},
286
293
"firmness": {
287
294
"committed": "committed",
288
295
"proposed": "proposed"
289
296
},
290
297
"milestones": {
291
-
"10k": "{n, number} MOR staked: Morpheus ad on Gnars TV",
292
-
"15k": "{n, number} MOR staked: Morpheus on the Gnars banner + a pinned post",
293
-
"25k": "{n, number} MOR staked: Morpheus featured in a Gnars edit",
294
-
"30k": "{n, number} MOR staked: Morpheus swag in the Skater Vaults",
295
-
"50k": "{n, number} MOR staked: Morpheus at an IRL Gnars activation",
296
-
"100k": "{n, number} MOR staked: Morpheus flagship spotlight"
298
+
"10k": "Morpheus ad on Gnars TV",
299
+
"15k": "Morpheus on the Gnars banner + a pinned post",
Copy file name to clipboardExpand all lines: messages/pt-br/stake.json
+15-8Lines changed: 15 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -278,22 +278,29 @@
278
278
"subnet": {
279
279
"title": "Co-patrocine a subnet Gnars Builder",
280
280
"desc": "Esse aqui não te paga nada. O MOR em stake sustenta a subnet Gnars Builder, que financia o que a DAO entrega. Seu MOR continua seu e libera 7 dias depois do stake.",
281
-
"morStaked": "MOR em stake",
282
-
"goal": "meta {n, number}",
283
281
"cta": "Apoiar a subnet",
284
282
"milestonesTitle": "Metas de amplificação",
285
283
"milestonesNote": "Conforme o MOR em stake cresce, a Gnars amplifica a Morpheus — compromisso unilateral da Gnars, construindo sobre o protocolo aberto da Morpheus.",
284
+
"milestoneRow": "{n, number} MOR em stake: {what}",
285
+
"nextMilestone": {
286
+
"label": "Próximo marco",
287
+
"unlocks": "Destrava: {what}",
288
+
"loading": "Lendo a subnet…",
289
+
"error": "Não dá pra ler a subnet agora",
290
+
"allDone": "Todos os marcos atingidos",
291
+
"macro": "{staked, number} de {target, number} MOR rumo à escada completa"
292
+
},
286
293
"firmness": {
287
294
"committed": "confirmado",
288
295
"proposed": "proposto"
289
296
},
290
297
"milestones": {
291
-
"10k": "{n, number} MOR em stake: anúncio da Morpheus na Gnars TV",
292
-
"15k": "{n, number} MOR em stake: Morpheus no banner da Gnars + post fixado",
293
-
"25k": "{n, number} MOR em stake: Morpheus em destaque num edit da Gnars",
294
-
"30k": "{n, number} MOR em stake: swag da Morpheus nos Skater Vaults",
295
-
"50k": "{n, number} MOR em stake: Morpheus numa ativação IRL da Gnars",
296
-
"100k": "{n, number} MOR em stake: spotlight principal da Morpheus"
298
+
"10k": "anúncio da Morpheus na Gnars TV",
299
+
"15k": "Morpheus no banner da Gnars + post fixado",
0 commit comments