Remove: Rabbit Treasury, Burrow math, vault sinks, treasury UX #242

Closed
opened 2026-05-27 07:06:58 +00:00 by PlasticDigits · 7 comments
PlasticDigits commented 2026-05-27 07:06:58 +00:00 (Migrated from gitlab.com)

Context

Remove Rabbit Treasury / Burrow from Arena v2. Parent epic: #238.

Relevant files

  • contracts/src/RabbitTreasury.sol, contracts/src/libraries/BurrowMath.sol
  • contracts/src/sinks/RabbitTreasuryVault.sol
  • docs/product/rabbit-treasury.md, docs/onchain/treasury-contracts.md
  • skills/play-rabbit-treasury/SKILL.md
  • frontend/src/pages/RabbitTreasuryPage.tsx
  • Indexer: idx_rabbit_* tables, GET /v1/rabbit/*

Acceptance criteria

  • No FeeRouter 10% Rabbit sink in v2 deploy
  • Doubloon.mint minter role repointed (TimeArena or governance only)
  • All Burrow indexer endpoints removed

Verification checklist

  • rg -i "rabbit.?treasury|burrow" clean in contracts, indexer, frontend, docs, skills
  • DeployDev succeeds without RabbitTreasury
## Context Remove Rabbit Treasury / Burrow from Arena v2. Parent epic: #238. ## Relevant files - `contracts/src/RabbitTreasury.sol`, `contracts/src/libraries/BurrowMath.sol` - `contracts/src/sinks/RabbitTreasuryVault.sol` - `docs/product/rabbit-treasury.md`, `docs/onchain/treasury-contracts.md` - `skills/play-rabbit-treasury/SKILL.md` - `frontend/src/pages/RabbitTreasuryPage.tsx` - Indexer: `idx_rabbit_*` tables, `GET /v1/rabbit/*` ## Acceptance criteria - [ ] No FeeRouter 10% Rabbit sink in v2 deploy - [ ] `Doubloon.mint` minter role repointed (TimeArena or governance only) - [ ] All Burrow indexer endpoints removed ## Verification checklist - [ ] `rg -i "rabbit.?treasury|burrow"` clean in contracts, indexer, frontend, docs, skills - [ ] DeployDev succeeds without RabbitTreasury
PlasticDigits commented 2026-05-27 07:06:59 +00:00 (Migrated from gitlab.com)

marked as related to #238

marked as related to #238
PlasticDigits commented 2026-05-27 07:07:59 +00:00 (Migrated from gitlab.com)

mentioned in issue #238

mentioned in issue #238
PlasticDigits commented 2026-05-28 12:43:12 +00:00 (Migrated from gitlab.com)

Implementation complete

What we did

  • Removed RabbitTreasury, BurrowMath, RabbitTreasuryVault, and all related Forge tests
  • Deleted docs/product/rabbit-treasury.md, docs/onchain/treasury-contracts.md, skills/play-rabbit-treasury/SKILL.md
  • Indexer: removed all GET /v1/rabbit/* routes; migration 20260528120000_arena_v2_drop_legacy drops idx_rabbit_* tables
  • Frontend: removed RabbitTreasuryPage, route, home card, rabbit API helpers in indexerApi.ts
  • Doubloon MINTER_ROLE granted to deployer/governance only in DeployDev (no Rabbit minter)
  • FeeRouter Rabbit sink removed with #244

Acceptance criteria for closing

  • No FeeRouter 10% Rabbit sink in v2 deploy
  • Doubloon.mint minter repointed (governance/deployer, not Rabbit)
  • All Burrow indexer endpoints removed

Verification checklist

  • rg -i 'rabbit.?treasury|burrow' clean in active source (Doubloon may still say "Burrow receipt" as token name)
  • DeployDev.s.sol deploys without RabbitTreasury
  • Indexer integration tests updated (GET /v1/rabbit/deposits → 404)
## Implementation complete ### What we did - Removed `RabbitTreasury`, `BurrowMath`, `RabbitTreasuryVault`, and all related Forge tests - Deleted `docs/product/rabbit-treasury.md`, `docs/onchain/treasury-contracts.md`, `skills/play-rabbit-treasury/SKILL.md` - Indexer: removed all `GET /v1/rabbit/*` routes; migration `20260528120000_arena_v2_drop_legacy` drops `idx_rabbit_*` tables - Frontend: removed `RabbitTreasuryPage`, route, home card, rabbit API helpers in `indexerApi.ts` - `Doubloon` `MINTER_ROLE` granted to deployer/governance only in `DeployDev` (no Rabbit minter) - FeeRouter Rabbit sink removed with #244 ### Acceptance criteria for closing - [x] No FeeRouter 10% Rabbit sink in v2 deploy - [x] `Doubloon.mint` minter repointed (governance/deployer, not Rabbit) - [x] All Burrow indexer endpoints removed ### Verification checklist - [ ] `rg -i 'rabbit.?treasury|burrow'` clean in active source (`Doubloon` may still say "Burrow receipt" as token name) - [x] `DeployDev.s.sol` deploys without RabbitTreasury - [x] Indexer integration tests updated (`GET /v1/rabbit/deposits` → 404)
PlasticDigits commented 2026-05-29 08:10:04 +00:00 (Migrated from gitlab.com)

mentioned in issue #266

mentioned in issue #266
PlasticDigits commented 2026-05-30 13:33:24 +00:00 (Migrated from gitlab.com)

mentioned in commit 65c71dd988

mentioned in commit 65c71dd9884694bddcb316431a2dc83932213342
PlasticDigits commented 2026-05-30 13:33:24 +00:00 (Migrated from gitlab.com)

mentioned in commit 7add8360e8

mentioned in commit 7add8360e8bae18375b8a35e7e64cb54267cfa7b
PlasticDigits commented 2026-05-30 13:33:29 +00:00 (Migrated from gitlab.com)

Verification complete (issue #242)

Verified on worktree issue/242-verify-rabbit-removal, merged to main at 7add836.

What was done

  • Code hygiene: Removed dead rabbitTreasury* ABIs, reserved route segment, revert mapping, and OG copy; updated Doubloon NatSpec (kept “Burrow receipt” token notice per agreed exception).
  • Contracts/docs: Replaced contracts/README.md contract map with Arena v2 canonical list; retired anvil_rich_state.sh stub; rewrote docs/onchain/treasury-contracts.md for Arena v2 custody; scrubbed legacy player-reserve references across docs/skills/indexer README.
  • Invariants: Added INV-242-RABBIT-REMOVED, INV-242-INDEXER-NO-HTTP, INV-242-SOURCE-GREP in docs/testing/invariants-and-business-logic.md.
  • Indexer: Added api_legacy_player_reserve_routes_return_404 integration test; fixed RegistryContracts test initializers (time_arena_buy_router).
  • Merge: Rebased onto latest origin/main (time-arena spec #240) and resolved conflicts without reintroducing legacy names.

Automated evidence

  • FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration — 6/6 pass
  • forge script script/DeployDev.s.sol:DeployDev --rpc-url http://127.0.0.1:8545 --code-size-limit 524288 — simulation OK (no player-reserve deploy)
  • cargo test --test integration_stage2 api_legacy — 404 on /v1/rabbit/deposits and /v1/rabbit/health-epochs
  • rg -i 'rabbit.?treasury|burrow' contracts indexer frontend docs skills — clean except allowed Doubloon.sol notice

Manual verification checklist

  • DeployDev / DeployProduction broadcast logs contain no player-reserve contract
  • Doubloon.MINTER_ROLE granted only to deployer/governance (not a retired minter)
  • Indexer GET /v1/rabbit/* returns 404 on your stack
  • Frontend has no /rabbit-treasury route or treasury page
  • rg -i 'rabbit.?treasury|burrow' clean in active source (Doubloon notice OK)
  • Arena v2 play path /arena still mounts and reads /v1/arena/*

All acceptance criteria from the issue body and prior implementation comment pass — closing.

## Verification complete (issue #242) Verified on worktree `issue/242-verify-rabbit-removal`, merged to `main` at `7add836`. ### What was done - **Code hygiene:** Removed dead `rabbitTreasury*` ABIs, reserved route segment, revert mapping, and OG copy; updated `Doubloon` NatSpec (kept “Burrow receipt” token notice per agreed exception). - **Contracts/docs:** Replaced `contracts/README.md` contract map with Arena v2 canonical list; retired `anvil_rich_state.sh` stub; rewrote `docs/onchain/treasury-contracts.md` for Arena v2 custody; scrubbed legacy player-reserve references across docs/skills/indexer README. - **Invariants:** Added **`INV-242-RABBIT-REMOVED`**, **`INV-242-INDEXER-NO-HTTP`**, **`INV-242-SOURCE-GREP`** in [`docs/testing/invariants-and-business-logic.md`](docs/testing/invariants-and-business-logic.md#retired-v1-reserve-removal-gitlab-242). - **Indexer:** Added `api_legacy_player_reserve_routes_return_404` integration test; fixed `RegistryContracts` test initializers (`time_arena_buy_router`). - **Merge:** Rebased onto latest `origin/main` (time-arena spec #240) and resolved conflicts without reintroducing legacy names. ### Automated evidence - `FOUNDRY_PROFILE=ci forge test --match-contract DevStackIntegration` — 6/6 pass - `forge script script/DeployDev.s.sol:DeployDev --rpc-url http://127.0.0.1:8545 --code-size-limit 524288` — simulation OK (no player-reserve deploy) - `cargo test --test integration_stage2 api_legacy` — 404 on `/v1/rabbit/deposits` and `/v1/rabbit/health-epochs` - `rg -i 'rabbit.?treasury|burrow' contracts indexer frontend docs skills` — clean except allowed `Doubloon.sol` notice ### Manual verification checklist - [ ] `DeployDev` / `DeployProduction` broadcast logs contain **no** player-reserve contract - [ ] `Doubloon.MINTER_ROLE` granted only to deployer/governance (not a retired minter) - [ ] Indexer `GET /v1/rabbit/*` returns **404** on your stack - [ ] Frontend has **no** `/rabbit-treasury` route or treasury page - [ ] `rg -i 'rabbit.?treasury|burrow'` clean in active source (Doubloon notice OK) - [ ] Arena v2 play path `/arena` still mounts and reads `/v1/arena/*` All acceptance criteria from the issue body and prior implementation comment pass — closing.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-30 13:33:30 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega#242
No description provided.