Skip to content

Deprecate Botanix to keys-only mode on July 9, 2026#6044

Open
j0ntz wants to merge 1 commit into
developfrom
jon/deprecate-botanix-keysonly
Open

Deprecate Botanix to keys-only mode on July 9, 2026#6044
j0ntz wants to merge 1 commit into
developfrom
jon/deprecate-botanix-keysonly

Conversation

@j0ntz

@j0ntz j0ntz commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

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 keysOnlyMode becomes true for botanix: 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-keysOnlyMode precedent (zcash uses keysOnlyMode: isZecBroken()). A new isBotanixDeprecated() helper compares the current time against the deprecation date; the date is built inside the function rather than referenced from a module-level constant because SPECIAL_CURRENCY_INFO is evaluated at module load, before a later const would initialize.

Changes:

  • keysOnlyMode: isBotanixDeprecated() on the botanix entry in SPECIAL_CURRENCY_INFO.
  • isBotanixDeprecated() helper next to isZecBroken().
  • Unit test covering the gate before, on, and after the deprecation date.

Once active, the flag flows through the existing getCreateWalletList filter (if (isKeysOnlyPlugin(pluginId)) continue), which removes keys-only assets from the create-wallet list.

Testing

  • tsc --noEmit: clean.
  • verify-repo.sh full suite: passed (eslint on changed files + jest, 398 tests).
  • Added unit test isBotanixDeprecated: asserts false before 2026-07-09 and true on/after. Passing.
  • iOS simulator: built, installed, and ran the app with this change in the bundle. Verified the keys-only create-wallet exclusion mechanism this change feeds: a normal asset (Bitcoin Cash) appears in "Choose Wallets to Add" while a keysOnlyMode asset (Bitcoin SV) is excluded. Screenshots attached.
  • Note: the gate is not active until 2026-07-09, so Botanix is unaffected on the sim today. Botanix's own plugin is disabled by default in the app build (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 / getCreateWalletList path.

The PR adds isBotanixDeprecated() and wires SPECIAL_CURRENCY_INFO.botanix.keysOnlyMode as a getter (not a fixed boolean at load) so the cutover can flip during a running session without restart—same idea as other date-gated keysOnlyMode assets.

WalletListModal no longer builds the keys-only exclude asset list once at import; it recomputes in useMemo each 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.

@j0ntz

j0ntz commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence

agent proof 1215599238343239 01 app running

agent proof 1215599238343239 01 app running

agent proof 1215599238343239 02 normal asset creatable

agent proof 1215599238343239 02 normal asset creatable

agent proof 1215599238343239 03 keysonly asset excluded

agent proof 1215599238343239 03 keysonly asset excluded

Captured by the agent's in-app test run (build-and-test).

Comment thread src/constants/WalletAndCurrencyConstants.ts Outdated
@j0ntz j0ntz force-pushed the jon/deprecate-botanix-keysonly branch from e82ad4e to 859156d Compare June 19, 2026 00:35
Comment thread src/constants/WalletAndCurrencyConstants.ts
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.
@j0ntz j0ntz force-pushed the jon/deprecate-botanix-keysonly branch from 859156d to 1e96df5 Compare June 19, 2026 00:47

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread src/components/modals/WalletListModal.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant