TimeCurve: launch anchor 1.2× → 1.275× (27.5% boost) — docs, frontend, invariants #158
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega#158
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Follow-up to EcoStrategy audit M-05 (launch anchor is policy/UX) and product decision: raise the launch price boost from 20% (1.2×) to 27.5% (1.275×) everywhere it is used for CL8Y-at-launch / DOUB–CL8Y LP anchor messaging and math.
New canonical multiplier:
1.275= 27.5% above the final per-CHARM clearing price.Implementation note (fixed-point): prefer exact integer math, e.g.
clearingWad * 1275n / 1000n(verify equivalence if you simplify the fraction).Scope
1.2(e.g. SVGstrokeWidth, chart timing, min-buy "~20%/day" envelope, unrelated tests).Files / symbols to update (from repo search; verify with rg before merge)
Core math + tests
frontend/src/lib/timeCurvePodiumMath.ts—launchLiquidityAnchorWad,participantLaunchValueCl8yWei(replace12n/10nwith1275n/1000nor agreed fixed-point)frontend/src/lib/timeCurvePodiumMath.test.ts— describe + expectationsTimeCurve pages / session
frontend/src/pages/TimeCurveSimplePage.tsx(copy/comments; notstrokeWidthliterals)frontend/src/pages/timeCurveArena/TimeCurveArenaView.tsx(user-facing 1.2× line)frontend/src/pages/timecurve/useTimeCurveSaleSession.ts(JSDoc / comments)frontend/src/pages/timecurve/TimeCurveStakeAtLaunchSection.tsx(1.2×text,badgeLabel)frontend/src/pages/timecurve/TimeCurveSections.tsx— "Reserve routing and launch anchors" if it states 1.2×frontend/src/index.css— comment referencing 1.2× if presentDocs + parameters
docs/testing/invariants-and-business-logic.md— Launch-anchor row (rename 1.2× rule → 1.275×, update formula + example e.g.2 × 1.275 = 2.55CL8Y)docs/frontend/timecurve-views.mddocs/onchain/fee-routing-and-governance.md(LP 1.2× → 1.275× in DoubLPIncentives / launch anchor sentence)contracts/PARAMETERS.md— Launch anchor table rowlaunchplan-timecurve.md— 1.2× in DOUB/CL8Y LP notecontracts/src/sinks/DoubLPIncentives.sol— NatSpec "1.2× clearing anchor"Agent / play skills
.cursor/skills/yieldomega-guardrails/SKILL.md— launch-anchor bulletskills/play-timecurve-doubloon/SKILL.md— launch-anchor invariant (update example math)Optional
audits/audit_ecostrategy_1777969776.md— short note that product boost was raised to 1.275× after audit, or handle in a doc-only MR.Acceptance criteria
timeCurvePodiumMath(no drift between Simple and Arena).References
audits/audit_ecostrategy_1777969776.mdonmainmentioned in commit
f76454c44cmentioned in commit
9ff356526cShipped on
main(merge9ff3565)Implemented GitLab #158: canonical TimeCurve launch-liquidity anchor is now 1.275× (27.5% above final per-CHARM clearing), fixed-point
1275n / 1000ninfrontend/src/lib/timeCurvePodiumMath.ts(LAUNCH_LIQUIDITY_ANCHOR_NUM/DEN) so Simple + Arena + protocol page projections stay aligned. User-facing copy, PARAMETERS, fee routing (merged with #159 interim custody paragraph), launch plan, invariants row + anchor id#timecurve-launch-anchor-gitlab-158, play/guardrails skills,docs/agents/metadata-and-skills.md, and EcoStrategy audit M-05 wording were updated.Verify (checklist for @brouie)
npx vitest run src/lib/timeCurvePodiumMath.test.ts— 14 tests green (launch + Kumbaya lower band + consistency).participantLaunchValueCl8yWeispec math: 2 CL8Y/CHARM → 2.55 CL8Y at launch for 1 CHARM (and 25.5 for 10 CHARM).docs/testing/invariants-and-business-logic.md— Launch-anchor 1.275× rule row links#timecurve-launch-anchor-gitlab-158.docs/onchain/fee-routing-and-governance.md— 1.275× LP anchor sentence still followed by #159 RabbitTreasuryVault interim custody note.DoubLPIncentives.solNatSpec mentions 1.275× (onchain pairing remains operational/governed per M-05).Leaving issue open for your sign-off.
@PlasticDigits — verification PASS on
f76454c(merge9ff3565).checklist walked:
npx vitest run src/lib/timeCurvePodiumMath.test.ts→ 14/14 PASS in 258ms (launch anchor + Kumbaya lower band + consistency).live UX copy on /timecurve (Simple) and /timecurve/arena (Arena) at HEAD
390f9be:1.275× per-CHARM clearing price (locked DOUB/CL8Y LP). CL8Y projection only goes up.1.275× launch anchor, copyseeds at 1.275× the per-CHARM clearing price, footer1 CHARM ≈ 1.281 CL8Y at launch · enforced by DoubLPIncentives1.275× per-CHARM clearing priceline, same projection1 CHARM at launch · 1.280826 CL8Y(= 1.004569 × 1.275 ✓)1.004527 CL8Y → 1.280772 CL8Y at launchwhich matches1.004527 × 1275 / 1000 = 1.28077...to fixed-point precisionfrontend/src/lib/timeCurvePodiumMath.tsexportsLAUNCH_LIQUIDITY_ANCHOR_NUM = 1275n+_DEN = 1000n, applied via(clearingWad * NUM) / DEN1 CHARM redeems for 100 DOUB → those 100 DOUB are worth 2 × 1.275 = 2.55spec example: 1 CHARM at 2 CL8Y/CHARM final price ⇒ 2.55 CL8Y at launchandscales linearly in CHARM (10 CHARM → 25.5 CL8Y at launch)both pinnedinvariants doc row at
docs/testing/invariants-and-business-logic.mdline 725:Launch-anchor 1.275× rulewith anchor#timecurve-launch-anchor-gitlab-158, formula× 1275 / 1000, worked example2 × 1.275 = 2.55 CL8Y, links to helpers + tests + DoubLPIncentives + launchplan + #158.fee-routing doc at
docs/onchain/fee-routing-and-governance.md:30% slice lands at DoubLPIncentives for locked DOUB/CL8Y liquidity policy (paired at 1.275× the projected final reserve-per-DOUB clearing anchor; Kumbaya v3 uses a 0.8×–∞ band around the launch anchor)contracts/src/sinks/DoubLPIncentives.solline 7 NatSpec:Pairing and ticks follow launch policy (1.275× clearing anchor; ...)✓single canonical multiplier confirmed in
timeCurvePodiumMath.ts— no drift between Simple, Arena, or projection footers; all reads compute from the sameLAUNCH_LIQUIDITY_ANCHOR_NUM/DENpair.ready for close on your side.
mentioned in issue #161
mentioned in commit
f325d2896ementioned in commit
87da011b1dmentioned in issue #207
mentioned in issue #229