@@ -210,7 +210,7 @@ async function createSmartAccount(
210210 }
211211 }
212212
213- const { accountContract } = options ;
213+ let accountContract = options . accountContract ;
214214 const account : Account = {
215215 address : getAddress ( accountContract . address ) ,
216216 async sendTransaction ( transaction : SendTransactionOption ) {
@@ -237,21 +237,17 @@ async function createSmartAccount(
237237 paymasterOverride = options . overrides ?. paymaster ;
238238 }
239239
240- const accountContractForTransaction = ( ( ) => {
241- // If this transaction is for a different chain than the initial one, get the account contract for that chain
242- if ( transaction . chainId !== accountContract . chain . id ) {
243- return getContract ( {
244- address : account . address ,
245- chain : getCachedChain ( transaction . chainId ) ,
246- client : options . client ,
247- } ) ;
248- }
249- // Default to the existing account contract
250- return accountContract ;
251- } ) ( ) ;
240+ // If this transaction is for a different chain than the initial one, get the account contract for that chain
241+ if ( transaction . chainId !== accountContract . chain . id ) {
242+ accountContract = getContract ( {
243+ address : account . address ,
244+ chain : getCachedChain ( transaction . chainId ) ,
245+ client : options . client ,
246+ } ) ;
247+ }
252248
253249 const executeTx = prepareExecute ( {
254- accountContract : accountContractForTransaction ,
250+ accountContract : accountContract ,
255251 transaction,
256252 executeOverride : options . overrides ?. execute ,
257253 } ) ;
@@ -260,6 +256,7 @@ async function createSmartAccount(
260256 options : {
261257 ...options ,
262258 chain : getCachedChain ( transaction . chainId ) ,
259+ accountContract,
263260 overrides : {
264261 ...options . overrides ,
265262 paymaster : paymasterOverride ,
@@ -275,7 +272,11 @@ async function createSmartAccount(
275272 } ) ;
276273 return _sendUserOp ( {
277274 executeTx,
278- options,
275+ options : {
276+ ...options ,
277+ chain : getCachedChain ( transactions [ 0 ] ?. chainId ?? options . chain . id ) ,
278+ accountContract,
279+ } ,
279280 } ) ;
280281 } ,
281282 async signMessage ( { message } : { message : SignableMessage } ) {
@@ -288,8 +289,8 @@ async function createSmartAccount(
288289 } ) ;
289290 }
290291
291- const { deployAndSignMessage } = await import ( "./lib/signing.js" ) ;
292- return deployAndSignMessage ( {
292+ const { smartAccountSignMessage } = await import ( "./lib/signing.js" ) ;
293+ return smartAccountSignMessage ( {
293294 accountContract,
294295 factoryContract : options . factoryContract ,
295296 options,
@@ -309,8 +310,8 @@ async function createSmartAccount(
309310 } ) ;
310311 }
311312
312- const { deployAndSignTypedData } = await import ( "./lib/signing.js" ) ;
313- return deployAndSignTypedData ( {
313+ const { smartAccountSignTypedData } = await import ( "./lib/signing.js" ) ;
314+ return smartAccountSignTypedData ( {
314315 accountContract,
315316 factoryContract : options . factoryContract ,
316317 options,
0 commit comments