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); +}