Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added backend-all/.DS_Store
Binary file not shown.
153 changes: 79 additions & 74 deletions backend-all/src/services/bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down