Deprecate Botanix to keys-only mode on July 9, 2026#6044
Open
j0ntz wants to merge 1 commit into
Open
Conversation
Contributor
Author
e82ad4e to
859156d
Compare
Gate the botanix keysOnlyMode flag on a deprecation date so existing wallets stay accessible (keys-only) while new wallet creation is blocked on and after the date. Add a unit test for the date gate.
859156d to
1e96df5
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1e96df5. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
none
Requirements
If you have made any visual changes to the GUI. Make sure you have:
Description
Asana: https://app.asana.com/0/1215088146871429/1215599238343239
Deprecate the Botanix asset by making it keys-only, date-gated to take effect on July 9, 2026. On and after that date
keysOnlyModebecomes true forbotanix: existing Botanix wallets remain accessible (keys-only, view/export) but new Botanix wallets can no longer be created. Before the date the asset is unaffected.The gate follows the existing computed-
keysOnlyModeprecedent (zcashuseskeysOnlyMode: isZecBroken()). A newisBotanixDeprecated()helper compares the current time against the deprecation date; the date is built inside the function rather than referenced from a module-level constant becauseSPECIAL_CURRENCY_INFOis evaluated at module load, before a laterconstwould initialize.Changes:
keysOnlyMode: isBotanixDeprecated()on thebotanixentry inSPECIAL_CURRENCY_INFO.isBotanixDeprecated()helper next toisZecBroken().Once active, the flag flows through the existing
getCreateWalletListfilter (if (isKeysOnlyPlugin(pluginId)) continue), which removes keys-only assets from the create-wallet list.Testing
tsc --noEmit: clean.verify-repo.shfull suite: passed (eslint on changed files + jest, 398 tests).isBotanixDeprecated: asserts false before 2026-07-09 and true on/after. Passing.keysOnlyModeasset (Bitcoin SV) is excluded. Screenshots attached.BOTANIX_INIT: false) and enabling it crashes the debug build, so Botanix-specific in-app exercise is not runnable in the simulator; the date logic is covered by the unit test and the keys-only exclusion behavior is demonstrated above against the shared mechanism.Note
Low Risk
Localized currency-metadata and wallet-picker filtering with unit-tested date logic; no auth or payment changes.
Overview
Botanix is scheduled to become keys-only on July 9, 2026: existing wallets stay usable for view/export, but new Botanix wallets drop out of the create-wallet flow via the existing
keysOnlyMode/getCreateWalletListpath.The PR adds
isBotanixDeprecated()and wiresSPECIAL_CURRENCY_INFO.botanix.keysOnlyModeas a getter (not a fixed boolean at load) so the cutover can flip during a running session without restart—same idea as other date-gatedkeysOnlyModeassets.WalletListModalno longer builds the keys-only exclude asset list once at import; it recomputes inuseMemoeach render so wallet pickers respect the gate when the clock crosses the deprecation date. CHANGELOG and Jest coverage for before/on/after the date and getter re-evaluation are included.Reviewed by Cursor Bugbot for commit 1e96df5. Bugbot is set up for automated code reviews on this repo. Configure here.