@@ -84,43 +84,44 @@ export const signTransaction = async (
8484 let relayers = 1
8585 // if (!fromChain.startsWith('evm.')) throw Error(`Relayer ${relayerIndex} Bad arguments`)
8686 if ( process . env . IS_PUBLIC_RELAYER === 'true' ) {
87- const dbTransaction = await transactionRepo . findOne ( { id : transactionId } )
88- if ( ! dbTransaction ) throw Error ( 'Transaction not found' )
87+ const dbTransaction = await transactionRepo . findOne ( { id : transactionId } )
88+ if ( ! dbTransaction ) throw Error ( 'Transaction not found' )
8989 }
9090 const _fromChain = fromChain . replace ( 'evm.' , '' ) as ChainId
9191 const _provider = await _getProvider ( _fromChain )
9292 const contract = anyBridgeAssist ( fromBridgeAddress , _provider )
9393 const transactionPromise = contract . transactions ( fromUser , index )
94- const relayerLengthPromise = contract . relayersLength ( )
95- const res = await Promise . all ( [ transactionPromise , relayerLengthPromise ] )
96- tx = res [ 0 ]
94+ // const relayerLengthPromise = contract.relayersLength()
95+ tx = await transactionPromise
9796 if ( ! tx || tx . block . toNumber ( ) === 0 ) throw Error ( 'Transaction not found' )
9897 if (
9998 _fromChain === '42161' ||
10099 ( _fromChain === '421614' && process . env . IS_PUBLIC_RELAYER === 'true' )
101100 )
102101 await checkToken ( fromUser , contract , _fromChain , tx )
103102
104- relayers = + res [ 1 ] . toNumber ( )
105-
106103 // const provider = getProvider(fromChain.slice(4) as ChainId)
107104 const currentBlock = await safeRead ( _provider . getBlockNumber ( ) , 0 )
108105 if ( currentBlock === 0 || tx . block . gt ( currentBlock ) )
109106 throw Error ( `Relayer ${ relayerIndex } waiting for confirmations` )
110107
111108 if ( ! tx . toChain . startsWith ( 'evm.' ) )
112109 throw Error ( `Relayer ${ relayerIndex } bad contract params` )
113- const { isFulfilled } = await fulfilledInfo ( tx , toBridgeAddress )
110+
111+ const chainId = tx . toChain . replace ( 'evm.' , '' )
112+ const toProvider = await _getProvider ( chainId as ChainId )
113+ const toBridgeAddressContract = anyBridgeAssist ( toBridgeAddress , toProvider )
114+ const { isFulfilled } = await fulfilledInfo ( toBridgeAddressContract , tx )
114115 if ( isFulfilled ) {
115116 if ( process . env . IS_PUBLIC_RELAYER === 'true' ) {
116117 await transactionRepo . update ( transactionId , { fulfilled : true } )
117118 }
118119 throw new Error ( 'Token has already claimed' )
119120 }
120121
121- // if (tx.toChain.startsWith('evm.')) {
122- const chainId = tx . toChain . replace ( 'evm.' , '' )
123- // const { bridgeAssist } = useContracts(undefined, chainId as ChainId)
122+ const relayersLength = await toBridgeAddressContract . relayersLength ( )
123+ relayers = relayersLength . toNumber ( )
124+
124125 let signatures : string [ ] = [ ]
125126 const allowedIps = process . env . ALLOWED_IPS ?. split ( ',' )
126127 const clientIp = getClientIp ( req )
@@ -342,9 +343,10 @@ async function checkWNTRestriction(
342343 if ( + transaction . timestamp . toString ( ) < timeStamp ) return
343344 const toChain = transaction . toChain . replace ( 'evm.' , '' )
344345 const toBridgeAddress = ( chainBridgeAssit as any ) [ toChain ]
345- console . log ( toBridgeAddress , 'toBridgeAddress' )
346346 if ( ! toBridgeAddress ) throw new Error ( `Failed to get to bridge Assist address` )
347- const { isFulfilled } = await fulfilledInfo ( transaction , toBridgeAddress )
347+ const toProvider = await _getProvider ( toChain as ChainId )
348+ const toBridgeAddressContract = anyBridgeAssist ( toBridgeAddress , toProvider )
349+ const { isFulfilled } = await fulfilledInfo ( toBridgeAddressContract , transaction )
348350 if ( ! isFulfilled ) return
349351 const amount = + utils . formatUnits ( transaction . amount , 18 )
350352 totalBridged += amount
@@ -364,11 +366,18 @@ async function checkWNTRestriction(
364366 }
365367}
366368
367- async function fulfilledInfo ( tx : TransactionContract , bridgeAddress : string ) {
368- const toChain = tx . toChain . replace ( 'evm.' , '' ) as ChainId
369- const provider = await _getProvider ( toChain )
370- const bridgeAssist = anyBridgeAssist ( bridgeAddress , provider )
371- const fulfilledAt = await bridgeAssist . fulfilledAt ( tx . fromChain , tx . fromUser , tx . nonce )
369+ async function fulfilledInfo (
370+ toBridgeAddressContract : BridgeAssist ,
371+ tx : TransactionContract
372+ ) {
373+ // const toChain = tx.toChain.replace('evm.', '') as ChainId
374+ // const provider = await _getProvider(toChain)
375+ // const bridgeAssist = anyBridgeAssist(bridgeAddress, provider)
376+ const fulfilledAt = await toBridgeAddressContract . fulfilledAt (
377+ tx . fromChain ,
378+ tx . fromUser ,
379+ tx . nonce
380+ )
372381
373382 return {
374383 isFulfilled : Number ( fulfilledAt ) > 0 ,
@@ -379,18 +388,20 @@ async function fulfilledInfo(tx: TransactionContract, bridgeAddress: string) {
379388
380389// get block number by chainId, param is list of chainIds should be in promise.all
381390export const getBlockNumber = async ( chainIds : ChainId [ ] ) => {
382- const blockNumbers : any = { }
383- await Promise . all ( chainIds . map ( async ( chainId ) => {
384- if ( isSolChain ( chainId ) ) {
385- const connection = getSolanaConnection ( chainId )
386- const blockNumber = await connection . getSlot ( )
391+ const blockNumbers : any = { }
392+ await Promise . all (
393+ chainIds . map ( async ( chainId ) => {
394+ if ( isSolChain ( chainId ) ) {
395+ const connection = getSolanaConnection ( chainId )
396+ const blockNumber = await connection . getSlot ( )
397+ blockNumbers [ chainId ] = + blockNumber . toString ( )
398+ return
399+ }
400+ const provider = await _getProvider ( chainId )
401+ const blockNumber = await provider . getBlockNumber ( )
387402 blockNumbers [ chainId ] = + blockNumber . toString ( )
388- return
389- }
390- const provider = await _getProvider ( chainId )
391- const blockNumber = await provider . getBlockNumber ( )
392- blockNumbers [ chainId ] = + blockNumber . toString ( )
393- } ) )
403+ } )
404+ )
394405 return blockNumbers
395406}
396407
0 commit comments