From fae63123a8e3a1fffdad72afa3c64adecbcac9c9 Mon Sep 17 00:00:00 2001 From: Joaquim Verges Date: Mon, 14 Apr 2025 11:40:30 +1200 Subject: [PATCH] Don't retry on user connection rejection in EIP1193 connector --- .changeset/tall-terms-slide.md | 5 +++++ packages/thirdweb/src/wallets/injected/index.ts | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 .changeset/tall-terms-slide.md diff --git a/.changeset/tall-terms-slide.md b/.changeset/tall-terms-slide.md new file mode 100644 index 00000000000..596889a0410 --- /dev/null +++ b/.changeset/tall-terms-slide.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Dont retry on user connection rejection in eip1193 connector diff --git a/packages/thirdweb/src/wallets/injected/index.ts b/packages/thirdweb/src/wallets/injected/index.ts index bec8a854b12..5cfbdee203d 100644 --- a/packages/thirdweb/src/wallets/injected/index.ts +++ b/packages/thirdweb/src/wallets/injected/index.ts @@ -63,6 +63,9 @@ export async function connectEip1193Wallet({ }); } catch (e) { console.error(e); + if (extractErrorMessage(e)?.toLowerCase()?.includes("rejected")) { + throw e; + } await new Promise((resolve) => setTimeout(resolve, 500)); } attempts++; @@ -375,3 +378,16 @@ async function switchChain(provider: EIP1193Provider, chain: Chain) { }); } } + +function extractErrorMessage(e: unknown) { + if (e instanceof Error) { + return e.message; + } + if (typeof e === "string") { + return e; + } + if (typeof e === "object" && e !== null) { + return JSON.stringify(e); + } + return String(e); +}