Skip to content

Sui wallet list is a stale static array — Slush unsupported, any wallet not hardcoded is invisible #248

Description

@Kingvic300

Description

Depends on #247 (same root-cause shape: the wallet catalog is a static, hardcoded list rather than driven by live wallet detection, so real installed wallets go unrecognized or unconnectable).

For Sui specifically: Slush (Mysten Labs' official wallet, renamed from "Sui Wallet" in their 2024 rebrand) never appears in the connect modal, and more generally any Sui wallet-standard wallet that isn't already in the hardcoded descriptor list is invisible, even though the app already has the live wallet-standard detection data available and just doesn't use it to extend the list.

Verified

  • frontend/src/wallet/utils.ts:85-110matchSuiWalletId only recognizes suiet, ethos, and sui wallet/sui (mapped to the sui-wallet id). A live wallet reporting its name as "Slush" matches none of these branches and falls through to return null.
  • frontend/src/wallet/descriptors.tsWALLET_DESCRIPTORS has no slush entry at all (only sui-wallet, suiet, ethos for the sui chain family).
  • frontend/src/wallet/provider/WalletManagerProvider.tsx:943-972 — the wallets list rendered in the connect modal is built as WALLET_DESCRIPTORS.map(...), i.e. purely iterating the static descriptor array. The live wallet-standard list (suiWallets, from @mysten/dapp-kit's useWallets()) is only ever used to check whether an already-listed descriptor is detected (matchSuiWalletId against currentSuiIds, line ~950) — it's never used to add a card for a detected wallet that has no matching descriptor. So a user with Slush (or any other real Sui wallet-standard wallet not in the hardcoded list) installed gets no card, no detected badge, nothing.

Suggested fix

  • Add a slush entry to WALLET_DESCRIPTORS and a matching branch in matchSuiWalletId (normalized.includes('slush')), same shape as the existing suiet/ethos branches.
  • More durably: stop relying on a fully hardcoded list for Sui. Merge suiWallets (live wallet-standard detections) into the rendered catalog directly — for any live-detected wallet without a matching descriptor, synthesize a minimal card (name/icon from the wallet-standard metadata itself) instead of silently dropping it. This is the same fix direction as Stellar wallet connect hangs forever for xBull/Albedo/Rabet/Hana — silently calls Freighter's API instead #247's suggested fix (stop assuming a fixed enum of wallets covers everything a user might actually have installed).

Timeframe

48 hours from this issue being opened.

Community

Join the txio Telegram community for more open issues and discussion: https://t.me/txioCommunity

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions