Skip to content

Error: Failed to connect to wallet using CreateWallet Connect on Safari mobile device #8641

@JameHome

Description

@JameHome

Issue Summary
Environment:

Framework: Nuxt 3
Language: TypeScript
SDK: thirdweb v5
Target: Mobile Safari (iOS)

My Wallet

export const allWalletMeta: WalletMetaItem[] = [
  {
    id: "walletConnect",
    key: "walletConnect",
    name: "WalletConnect",
    icon: "i-token-branded-wc",
  },
  {
    id: "io.metamask",
    key: "metamask",
    name: "MetaMask",
    icon: "i-token-branded-metamask",
  },
  {
    id: "com.coinbase.wallet",
    key: "coinbase",
    name: "Coinbase",
    icon: "i-token-branded-coinbase",
  },
  {
    id: "com.okex.wallet",
    key: "okx",
    name: "OKX Wallet",
    icon: "i-custom-okx",
  },
  {
    id: "com.trustwallet.app",
    key: "trust",
    name: "Trust Wallet",
    icon: "i-token-branded-trust",
  },
  {
    id: "io.rabby",
    key: "rabby",
    name: "Rabby",
    icon: "i-token-branded-rabby",
  },
  {
    id: "me.rainbow",
    key: "rainbow",
    name: "Rainbow",
    icon: "i-token-branded-rainbow",
  },
  {
    id: "app.phantom",
    key: "phantom",
    name: "Phantom",
    icon: "i-token-branded-phantom",
  },
  {
    id: "io.zerion.wallet",
    key: "zerion",
    name: "Zerion",
    icon: "i-token-branded-zerion",
  },
  {
    id: "com.brave.wallet",
    key: "brave",
    name: "Brave Wallet",
    icon: "i-simple-icons-brave",
  },
  {
    id: "com.crypto.wallet",
    key: "crypto",
    name: "Crypto.com",
    icon: "i-token-branded-cro",
  },
  {
    id: "im.token",
    key: "imtoken",
    name: "imToken",
    icon: "i-token-branded-imx",
  },
  {
    id: "org.uniswap",
    key: "uniswap",
    name: "Uniswap",
    icon: "i-token-branded-uni",
  },
  {
    id: "com.binance",
    key: "binance",
    name: "Binance",
    icon: "i-token-branded-bnb",
  },
  {
    id: "com.safepal",
    key: "safepal",
    name: "SafePal",
    icon: "i-heroicons-shield-check",
  },
];

// pseudocode
const metamaskWallet = createWallet(walletId);
 
const account = await metamaskWallet.connect({
  client,
chain: baseSepolia
});

Problem:

  1. When connecting to baseSepolia, a corresponding test chain needs to be added to the wallet. Trust wallets cannot be added or tested.

  2. When some wallets such as Phantom and Rabby are present on the phone, using createWallet connect invokes Metamask.

  3. How to capture the "wallet not found" return information if the invoked wallet does not exist, or does connect handle the return message? Clicking on a non-existent wallet has no effect, sometimes displaying a "pop" message.

  4. Not only with createWallet connect, but also in the official connectButton demo, if the first connection attempt is rejected, clicking the connection again will display "The browser cannot open the webpage because the URL is invalid."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions