From ce9c50e822f48470e1ab1b339922957db53bffe9 Mon Sep 17 00:00:00 2001 From: chrisli30 Date: Wed, 28 Oct 2026 22:20:47 -0700 Subject: [PATCH] fix: release the xSolvBTC rename as minor, not major The rename keeps the same contract, address and decimals and only corrects the label to match Solv's on-chain rebrand. No AvaProtocol repo reads Tokens["SolvBTC.BBN"]. Token lists treat a symbol change on an existing token as a minor-or-smaller change, and a rule that every issuer rebrand is a major release would hold back unrelated fixes. The catalog policy now says so: following an on-chain rename is a minor changeset that names the old key; removing a row or changing its address stays major. The pending release becomes 1.2.0 instead of 2.0.0. Co-Authored-By: Claude Opus 5.5 --- .changeset/rename-solvbtc-bbn-xsolvbtc.md | 6 +++--- docs/TOKEN_CATALOG.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.changeset/rename-solvbtc-bbn-xsolvbtc.md b/.changeset/rename-solvbtc-bbn-xsolvbtc.md index 0724807..5273a55 100644 --- a/.changeset/rename-solvbtc-bbn-xsolvbtc.md +++ b/.changeset/rename-solvbtc-bbn-xsolvbtc.md @@ -1,7 +1,7 @@ --- -"@avaprotocol/protocols": major +"@avaprotocol/protocols": minor --- -Rename Ethereum `Tokens["SolvBTC.BBN"]` to `Tokens.xSolvBTC` (`0xd9D920AA40f578ab794426F5C90F6C731D159DEf`). Solv rebranded the token: the contract's `name()` and `symbol()` both return `xSolvBTC`. The address and decimals are unchanged, and `lookupToken` now returns symbol and name `xSolvBTC` for it. +Rename Ethereum `Tokens["SolvBTC.BBN"]` to `Tokens.xSolvBTC` (`0xd9D920AA40f578ab794426F5C90F6C731D159DEf`). Solv rebranded the token: the contract's `name()` and `symbol()` both return `xSolvBTC`. The address and decimals are unchanged; `lookupToken` and the Ethereum sidecar (`dist/tokens/ethereum.json`) now return `xSolvBTC` for it. -BREAKING CHANGE: `Tokens["SolvBTC.BBN"]` no longer exists, and the Ethereum sidecar (`dist/tokens/ethereum.json`) carries `xSolvBTC` for this address. Callers keying on the old symbol must switch to `xSolvBTC`. +Code that reads `Tokens["SolvBTC.BBN"]` must switch to `Tokens.xSolvBTC`. diff --git a/docs/TOKEN_CATALOG.md b/docs/TOKEN_CATALOG.md index aa76b20..e89b56c 100644 --- a/docs/TOKEN_CATALOG.md +++ b/docs/TOKEN_CATALOG.md @@ -34,7 +34,7 @@ Assets outside the target may still be listed — the catalog also carries rows Symbols follow the issuer's on-chain casing (`stETH`, `Cake`, `cbBTC`). A symbol appears once per chain. An address names one asset on every chain where it appears, because `lookupToken` falls back across chains; the test enforces this. -Symbol keys are API: consumers index `Tokens` by them, and the sidecar carries them. When an issuer rebrands on-chain, follow it (Ethereum `SolvBTC.BBN` became `xSolvBTC`), ship the rename as a major changeset, and record the old symbol in the provenance notes. +Symbol keys are API: consumers index `Tokens` by them, and the sidecar carries them. When an issuer renames a token on-chain, follow it (Ethereum `SolvBTC.BBN` became `xSolvBTC`) in a minor changeset that names the old key, and record the old symbol in the provenance notes. The token is the same contract under a corrected label, as token lists treat a symbol change; issuers rebrand often enough (MKR→SKY, RNDR→RENDER, MATIC→POL) that a major release each time would hold back every other fix. ## Maintenance @@ -42,7 +42,7 @@ Symbol keys are API: consumers index `Tokens` by them, and the sidecar carries t - **After regenerating Aave reserves** (`yarn generate:aave-reserves`), the coverage test lists any new Core reserve. Add it, or record a known gap with a reason. - **`KNOWN_GAPS`** in `scripts/token-catalog/coverage.ts` is the explicit list of target assets not yet listed. The test fails when a gap is filled but still listed. - **`PROVENANCE_PENDING`** lists rows that predate provenance tracking. It may only shrink: a new row needs a provenance row, and a pending row that gains provenance must leave the list. -- **Removing a row** breaks consumers that key on it. Prefer marking it `legacy` in provenance; remove only addresses that are wrong. +- **Removing a row, or changing a row's address,** is a major changeset: the token consumers recognized is gone. Prefer marking it `legacy` in provenance; remove only addresses that are wrong. ## Transfer constraints