diff --git a/.changeset/slimy-pigs-rest.md b/.changeset/slimy-pigs-rest.md new file mode 100644 index 00000000000..c265c7fa557 --- /dev/null +++ b/.changeset/slimy-pigs-rest.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Fix ecosystem wallet connection with default chains diff --git a/packages/thirdweb/src/wallets/in-app/core/wallet/in-app-core.ts b/packages/thirdweb/src/wallets/in-app/core/wallet/in-app-core.ts index 57ebeed15da..a9aff42e5b7 100644 --- a/packages/thirdweb/src/wallets/in-app/core/wallet/in-app-core.ts +++ b/packages/thirdweb/src/wallets/in-app/core/wallet/in-app-core.ts @@ -57,7 +57,7 @@ export function createInAppWallet(args: { let client: ThirdwebClient | undefined; let authToken: string | null = null; - const resolveSmartAccountOptionsFromEcosystem = async (options: { + const resolveSmartAccountOptionsFromEcosystem = async (options?: { chain?: Chain; }) => { if (ecosystem) { @@ -78,7 +78,7 @@ export function createInAppWallet(args: { // default to 4337 const { defaultChainId } = ecosystemOptions.smartAccountOptions; const preferredChain = - options.chain ?? + options?.chain ?? (defaultChainId ? getCachedChain(defaultChainId) : undefined); if (!preferredChain) { throw new Error( @@ -108,7 +108,7 @@ export function createInAppWallet(args: { ecosystem, ); - await resolveSmartAccountOptionsFromEcosystem(options); + await resolveSmartAccountOptionsFromEcosystem(); const { account: connectedAccount, @@ -145,7 +145,7 @@ export function createInAppWallet(args: { ecosystem, ); - await resolveSmartAccountOptionsFromEcosystem(options); + await resolveSmartAccountOptionsFromEcosystem(); const { account: connectedAccount, diff --git a/packages/thirdweb/src/wallets/smart/index.ts b/packages/thirdweb/src/wallets/smart/index.ts index 993a96d663f..53b080e88ca 100644 --- a/packages/thirdweb/src/wallets/smart/index.ts +++ b/packages/thirdweb/src/wallets/smart/index.ts @@ -80,7 +80,7 @@ export async function connectSmartAccount( connectionOptions: SmartWalletConnectionOptions, creationOptions: SmartWalletOptions, ): Promise<[Account, Chain]> { - const { personalAccount, client, chain: connectChain } = connectionOptions; + const { personalAccount, client } = connectionOptions; if (!personalAccount) { throw new Error( @@ -89,7 +89,7 @@ export async function connectSmartAccount( } const options = creationOptions; - const chain = connectChain ?? options.chain; + const chain = creationOptions.chain; const sponsorGas = "gasless" in options ? options.gasless : options.sponsorGas; if (await isZkSyncChain(chain)) { diff --git a/packages/thirdweb/src/wallets/smart/smart-wallet.ts b/packages/thirdweb/src/wallets/smart/smart-wallet.ts index 2faf124d494..d34d70eb03e 100644 --- a/packages/thirdweb/src/wallets/smart/smart-wallet.ts +++ b/packages/thirdweb/src/wallets/smart/smart-wallet.ts @@ -229,7 +229,7 @@ export function smartWallet( const { connectSmartAccount } = await import("./index.js"); const [connectedAccount, connectedChain] = await connectSmartAccount( { ...lastConnectOptions, chain: newChain }, - createOptions, + { ...createOptions, chain: newChain }, ); // set the states account = connectedAccount;