From a1e34e75758e80293c84475afe2ce7bbded20d3b Mon Sep 17 00:00:00 2001 From: joepegler <joepegler123@gmail.com> Date: Tue, 10 Dec 2024 15:55:01 +0000 Subject: [PATCH] chore: fix window.ethereum (#150) --- CHANGELOG.md | 6 ++++++ package.json | 2 +- src/sdk/account/utils/toSigner.ts | 11 +++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b015364b2..200eec3de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @biconomy/sdk +## 0.0.18 + +### Patch Changes + +- fix window.ethereum + ## 0.0.17 ### Patch Changes diff --git a/package.json b/package.json index ca571c409..dcb1bd7d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@biconomy/sdk", - "version": "0.0.17", + "version": "0.0.18", "author": "Biconomy", "repository": "github:bcnmy/sdk", "main": "./dist/_cjs/index.js", diff --git a/src/sdk/account/utils/toSigner.ts b/src/sdk/account/utils/toSigner.ts index 746be9a60..289e6b398 100644 --- a/src/sdk/account/utils/toSigner.ts +++ b/src/sdk/account/utils/toSigner.ts @@ -86,7 +86,7 @@ export async function toSigner< | WalletClient<Transport, Chain | undefined, Account> | undefined = undefined - if ("request" in signer && signer?.type !== "walletClient") { + if ("request" in signer) { if (!address) { try { ;[address] = await (signer as EthereumProvider).request({ @@ -112,8 +112,15 @@ export async function toSigner< walletClient = signer as WalletClient<Transport, Chain | undefined, Account> } + const addressFromWalletClient = + walletClient?.account?.address ?? (await walletClient?.getAddresses())?.[0] + + if (!addressFromWalletClient) { + throw new Error("address not found in wallet client") + } + return toAccount({ - address: walletClient.account.address, + address: addressFromWalletClient, async signMessage({ message }) { return walletClient.signMessage({ message }) },