diff --git a/packages/thirdweb/src/wallets/interfaces/wallet.ts b/packages/thirdweb/src/wallets/interfaces/wallet.ts index 9ba480cd75e..04863a43205 100644 --- a/packages/thirdweb/src/wallets/interfaces/wallet.ts +++ b/packages/thirdweb/src/wallets/interfaces/wallet.ts @@ -10,9 +10,11 @@ import type { TypedDataDefinition, } from "viem"; -export interface IWallet { +export interface IWallet { address: Address | null; - connect: (_opts: any) => Promise; + connect: + | ((opts: connectOpts) => Promise>) + | ((opts?: connectOpts) => Promise>); disconnect: () => Promise; // signMessage?: (_message: SignableMessage) => Promise; diff --git a/packages/thirdweb/src/wallets/metamask.ts b/packages/thirdweb/src/wallets/metamask.ts index 1202b4324c4..b6cbf5507c2 100644 --- a/packages/thirdweb/src/wallets/metamask.ts +++ b/packages/thirdweb/src/wallets/metamask.ts @@ -13,7 +13,7 @@ type MetamaskWalletConnectOptions = { chainId?: number; }; -class MetamaskWallet implements IWallet { +class MetamaskWallet implements IWallet { private provider?: Ethereum; private connectedChainId?: number; private connectdAddress?: Address | null; @@ -94,7 +94,7 @@ class MetamaskWallet implements IWallet { // this.client = client; } - public async connect(options: MetamaskWalletConnectOptions) { + public async connect(options?: MetamaskWalletConnectOptions) { if (hasInjectedProvider(globalThis.window)) { this.provider = globalThis.window.ethereum; } else { @@ -116,7 +116,7 @@ class MetamaskWallet implements IWallet { this.connectedChainId = chainId; // if chainId is provided, switch to that chain - if (options.chainId && this.connectedChainId !== options.chainId) { + if (options?.chainId && this.connectedChainId !== options.chainId) { await this.switchChain(options.chainId); this.connectedChainId = options.chainId; } diff --git a/packages/thirdweb/src/wallets/private-key.ts b/packages/thirdweb/src/wallets/private-key.ts index 4a50750dae1..85af77a9067 100644 --- a/packages/thirdweb/src/wallets/private-key.ts +++ b/packages/thirdweb/src/wallets/private-key.ts @@ -19,7 +19,7 @@ type PrivateKeyWalletConnectOptions = { pkey: string; }; -class PrivateKeyWallet implements IWallet { +class PrivateKeyWallet implements IWallet { private account: PrivateKeyAccount | null = null; get address() {