diff --git a/backend-all/.DS_Store b/backend-all/.DS_Store new file mode 100644 index 0000000..70998d3 Binary files /dev/null and b/backend-all/.DS_Store differ diff --git a/backend-all/src/services/bridge.ts b/backend-all/src/services/bridge.ts index 1fe3234..6f4b265 100644 --- a/backend-all/src/services/bridge.ts +++ b/backend-all/src/services/bridge.ts @@ -166,95 +166,100 @@ export class BridgeService { const provider = providers[chainId as ChainId] const contract = anyBridgeAssist(bridgeAssist.bridgeAddress, provider) const transactions = await contract.getUserTransactions(userAddress) - await Promise.all( - transactions.map(async (transaction, index) => { - // console.log(transaction.nonce.toString(), 'dkdkdkdkd') - // console.log(+transaction.nonce.toString(), '043489') - let existingTransaction = await transactionRepo.findOne({ - userAddress, - index: index, - bridgeInfo: { - id: bridgeAssist.id, - }, - }) - if (existingTransaction) { - if (existingTransaction.fulfilled) { - return - } - if (isSolChain(existingTransaction.toChain)) { - const isFulfilled = await this.processSolanaIsFulfilled( - _bridgeAssists, - chainId as ChainId, - transaction, - bridgeAssist - ) - existingTransaction.fulfilled = isFulfilled - await transactionRepo.save(existingTransaction) - return - } else { - const isFulfilled = await this.processEvmIsFulfilled( - _bridgeAssists, - providers, - transaction, - bridgeAssist - ) - existingTransaction.fulfilled = isFulfilled - await transactionRepo.save(existingTransaction) - return - } + for (let index = 0; index < transactions.length; index++) { + const transaction = transactions[index] + console.log(transaction, 'transaction') + let existingTransaction = await transactionRepo.findOne({ + userAddress, + index: index, + bridgeInfo: { + id: bridgeAssist.id, + }, + }) + if (existingTransaction) { + if (existingTransaction.fulfilled) { + return } - const toChainId = transaction.toChain.replace('evm.', '') as ChainId - let isFulfilled = false - if (isSolChain(toChainId)) { - isFulfilled = await this.processSolanaIsFulfilled( + if (isSolChain(existingTransaction.toChain)) { + const isFulfilled = await this.processSolanaIsFulfilled( _bridgeAssists, chainId as ChainId, transaction, bridgeAssist ) + existingTransaction.fulfilled = isFulfilled + await transactionRepo.save(existingTransaction) + return } else { - isFulfilled = await this.processEvmIsFulfilled( + const isFulfilled = await this.processEvmIsFulfilled( _bridgeAssists, providers, transaction, bridgeAssist ) + existingTransaction.fulfilled = isFulfilled + await transactionRepo.save(existingTransaction) + return } - - const txBlock = transaction.block.toString() - const confirmations = CONFIRMATIONS[chainId as ChainId] - - const transactionDate = new Date(Number(transaction.timestamp) * 1000) - const transactionObject = transactionRepo.create({ - amount: transaction.amount.toString(), - timestamp: transaction.timestamp.toString(), - fromUser: transaction.fromUser, - toUser: transaction.toUser, - fromChain: transaction.fromChain.replace('evm.', ''), - toChain: transaction.toChain.replace('evm.', ''), - nonce: +transaction.nonce.toString(), - fulfillAmount: transaction.amount.toString(), - fulfilled: isFulfilled, - fulfillToUser: transaction.toUser, - fulfillFromChain: transaction.fromChain.replace('evm.', ''), - fulfillNonce: +transaction.nonce.toString(), - txBlock, - confirmations, - transactionDate, - bridgeInfo: bridgeAssist, - chainId, - fulfillFromUser: transaction.fromUser, - index: index, - userAddress: userAddress, - symbol: bridgeAssist.token.symbol, - }) - - EventLogger.info( - `Created transaction: ${transactionObject.index} on ${chainId}` + } + const toChainId = transaction.toChain.replace('evm.', '') as ChainId + let isFulfilled = false + if (isSolChain(toChainId)) { + isFulfilled = await this.processSolanaIsFulfilled( + _bridgeAssists, + chainId as ChainId, + transaction, + bridgeAssist ) - dbtransactions.push(transactionObject) + } else { + isFulfilled = await this.processEvmIsFulfilled( + _bridgeAssists, + providers, + transaction, + bridgeAssist + ) + } + + const txBlock = transaction.block.toString() + const confirmations = CONFIRMATIONS[chainId as ChainId] + + const transactionDate = new Date(Number(transaction.timestamp) * 1000) + const transactionObject = transactionRepo.create({ + amount: transaction.amount.toString(), + timestamp: transaction.timestamp.toString(), + fromUser: transaction.fromUser, + toUser: transaction.toUser, + fromChain: transaction.fromChain.replace('evm.', ''), + toChain: transaction.toChain.replace('evm.', ''), + nonce: +transaction.nonce.toString(), + fulfillAmount: transaction.amount.toString(), + fulfilled: isFulfilled, + fulfillToUser: transaction.toUser, + fulfillFromChain: transaction.fromChain.replace('evm.', ''), + fulfillNonce: +transaction.nonce.toString(), + txBlock, + confirmations, + transactionDate, + bridgeInfo: bridgeAssist, + chainId, + fulfillFromUser: transaction.fromUser, + index: index, + userAddress: userAddress, + symbol: bridgeAssist.token.symbol, }) - ) + + EventLogger.info( + `Created transaction: ${transactionObject.index} on ${chainId}` + ) + dbtransactions.push(transactionObject) + } + // await Promise.all( + // transactions.map(async (transaction, index) => { + // // console.log(transaction.nonce.toString(), 'dkdkdkdkd') + // // console.log(+transaction.nonce.toString(), '043489') + + // }) + // ) }) ) await transactionRepo.save(dbtransactions as any)