@@ -262,19 +262,18 @@ export class SessionManager implements SapientSigner {
262262 if ( ! Address . isEqual ( wallet , this . wallet . address ) ) {
263263 throw new Error ( 'Wallet address mismatch' )
264264 }
265+ if ( this . _provider ) {
266+ const providerChainId = await this . _provider . request ( {
267+ method : 'eth_chainId' ,
268+ } )
269+ if ( providerChainId !== Hex . fromNumber ( chainId ) ) {
270+ throw new Error ( `Provider chain id mismatch, expected ${ Hex . fromNumber ( chainId ) } but got ${ providerChainId } ` )
271+ }
272+ }
265273 if ( ( await this . imageHash ) !== imageHash ) {
266274 throw new Error ( 'Unexpected image hash' )
267275 }
268276 const topology = await this . _getTopologyForImageHash ( imageHash )
269- //FIXME Test chain id
270- // if (this._provider) {
271- // const providerChainId = await this._provider.request({
272- // method: 'eth_chainId',
273- // })
274- // if (providerChainId !== Hex.fromNumber(chainId)) {
275- // throw new Error(`Provider chain id mismatch, expected ${Hex.fromNumber(chainId)} but got ${providerChainId}`)
276- // }
277- // }
278277 if ( ! Payload . isCalls ( payload ) || payload . calls . length === 0 ) {
279278 throw new Error ( 'Only calls are supported' )
280279 }
@@ -363,22 +362,20 @@ export class SessionManager implements SapientSigner {
363362 if ( ! Address . isEqual ( wallet , this . wallet . address ) ) {
364363 throw new Error ( 'Wallet address mismatch' )
365364 }
366- if ( ! Payload . isCalls ( payload ) ) {
365+ if ( ! Payload . isCalls ( payload ) || payload . calls . length === 0 ) {
367366 // Only calls are supported
368367 return false
369368 }
370369 if ( ! this . _provider ) {
371370 throw new Error ( 'Provider not set' )
372371 }
373- //FIXME Test chain id
374- // const providerChainId = await this._provider.request({
375- // method: 'eth_chainId',
376- // })
377- // if (providerChainId !== Hex.fromNumber(chainId)) {
378- // throw new Error(
379- // `Provider chain id mismatch, expected ${Hex.fromNumber(chainId)} but got ${providerChainId}`,
380- // )
381- // }
372+ // Test chain id
373+ const providerChainId = await this . _provider . request ( {
374+ method : 'eth_chainId' ,
375+ } )
376+ if ( providerChainId !== Hex . fromNumber ( chainId ) ) {
377+ throw new Error ( `Provider chain id mismatch, expected ${ Hex . fromNumber ( chainId ) } but got ${ providerChainId } ` )
378+ }
382379
383380 const encodedPayload = Payload . encodeSapient ( chainId , payload )
384381 const encodedCallData = AbiFunction . encodeData ( Constants . RECOVER_SAPIENT_SIGNATURE , [
0 commit comments