Added check for eventIndex == 0.

This commit is contained in:
Maria Carmina 2023-04-11 00:31:12 +03:00
parent 16b7660505
commit e1e3a390fd
2 changed files with 39 additions and 1 deletions

View File

@ -123,6 +123,7 @@ export function handlerOrderReused(event: OrderReused): void {
event.transaction.from.toHex(),
event.logIndex.toI32()
)
log.info('searched order id: {}', [order.id])
if (!order) return
@ -265,6 +266,7 @@ export function handleProviderFee(event: ProviderFee): void {
event.transaction.from.toHex(),
event.logIndex.toI32()
)
const orderId = order.id
if (order) {
order.providerFee = providerFee
@ -272,6 +274,7 @@ export function handleProviderFee(event: ProviderFee): void {
order.save()
return
}
let orderReuse = searchOrderReusedForEvent(
event.transaction.hash.toHex(),
event.address.toHex(),
@ -280,12 +283,13 @@ export function handleProviderFee(event: ProviderFee): void {
if (orderReuse) {
orderReuse.providerFee = providerFee
orderReuse.providerFeeValidUntil = event.params.validUntil
log.info('order reused id: {}', [orderReuse.id])
orderReuse.save()
} else {
orderReuse = new OrderReuse(event.transaction.hash.toHex())
orderReuse.providerFee = providerFee
orderReuse.providerFeeValidUntil = event.params.validUntil
orderReuse.order = order.id
orderReuse.order = orderId!
orderReuse.createdTimestamp = event.block.timestamp.toI32()
orderReuse.tx = event.transaction.hash.toHex()
orderReuse.block = event.block.number.toI32()

View File

@ -41,6 +41,23 @@ export function searchOrderForEvent(
eventIndex: number
): Order {
let firstEventIndex = eventIndex - 1
if (eventIndex === 0) {
const orderId = getOrderId(
transactionHash,
address,
transactionFrom,
eventIndex
)
log.info('trying with this orderId: {}', [orderId])
const order = Order.load(orderId)
if (order !== null && order.datatoken == address) {
log.info('found order datatoken: {} and event address: {}', [
order.datatoken,
address
])
return order
}
}
while (firstEventIndex >= 0) {
const orderId = getOrderId(
transactionHash,
@ -69,12 +86,29 @@ export function searchOrderReusedForEvent(
eventIndex: number
): OrderReuse {
let firstEventIndex = eventIndex - 1
if (eventIndex === 0) {
const orderReused = OrderReuse.load(`${transactionHash}-${eventIndex}`)
if (orderReused !== null) {
log.info('found reused order: {} ', [orderReused.id])
const order = Order.load(orderReused.order)
if (order !== null && order.datatoken == eventAddress) {
log.info('found order: {} ', [order.id])
log.info('found reused order datatoken: {} and event address: {}', [
order.datatoken,
eventAddress
])
return orderReused
}
}
}
while (firstEventIndex >= 0) {
const orderReused = OrderReuse.load(`${transactionHash}-${firstEventIndex}`)
if (orderReused !== null) {
log.info('found reused order: {} ', [orderReused.id])
const order = Order.load(orderReused.order)
if (order !== null && order.datatoken == eventAddress) {
log.info('found order: {} ', [order.id])
log.info('found reused order datatoken: {} and event address: {}', [
order.datatoken,
eventAddress