Skip to content

@reown/appkit-ui@1.8.23

Choose a tag to compare

@github-actions github-actions released this 22 Jul 08:23
a211396

Patch Changes

  • #5712 f2d2539 Thanks @enesozturk! - Recover Coinbase Wallet from the EIP-1193 4100 ("Must call 'eth_requestAccounts' before other methods") error that could dead-end signing after a session restore.

    On an AppKit auto-restore, the Coinbase Wallet SDK provider keeps its accounts but drops its internal authorization — unlike wagmi's own reconnect, AppKit's restore reads eth_accounts without re-issuing eth_requestAccounts. Consumers that call .request() directly on the provider (rather than through wagmi's hooks) then failed the first signing RPC with 4100.

    The provider registration seam (syncProvider) now wraps Coinbase eip155 providers — keyed on the connector id, which is stable across the wagmi, ethers, and ethers5 adapters (the provider "type" is remapped to 'EXTERNAL' on most paths, so it can't be used to detect Coinbase). A 4100 then triggers a one-shot recovery: a single eth_requestAccounts re-authorization, an active-chain re-assert before an eth_sendTransaction retry (so the transaction can't broadcast on the wrong network after the handshake resets the SDK's chain), then exactly one retry. Non-4100 errors, rejected re-auth prompts, and non-Coinbase providers are unaffected. The wrapper is cached per provider instance so consumers keep a stable reference.

  • #5665 e5ee43c Thanks @Khizr97! - Fix coinbasePreference option being ignored — 'all' and 'eoaOnly' now correctly use the coinbaseWallet connector (with QR code support) instead of always using baseAccount. 'smartWalletOnly' uses baseAccount. Regression introduced in PR #5269.

  • #5663 da65c78 Thanks @Khizr97! - fix(ethers,ethers5): resolve walletProvider after account switch in modal

    useAppKitProvider returned a stale provider when switching accounts inside the
    modal. In the early-return path of connect(), connector.provider was never
    initialised, causing the base-client's accountChanged handler to skip
    syncProvider(). The provider is now resolved from ethersProviders before the
    event is emitted.

  • #5706 ccf0dcb Thanks @ignaciosantise! - fix: persist the universal-link base as the WalletConnect deeplink choice when experimental_preferUniversalLinks is enabled, so session-request re-opens (handled by universal-provider) use the wallet's universal link instead of falling back to its native custom scheme

  • Updated dependencies [f2d2539, e5ee43c, da65c78, ccf0dcb]:

    • @reown/appkit-common@1.8.23
    • @reown/appkit-wallet@1.8.23
    • @reown/appkit-controllers@1.8.23