diff --git a/src/mappings/erc20Templates.ts b/src/mappings/erc20Templates.ts index 3234034..28f6e11 100644 --- a/src/mappings/erc20Templates.ts +++ b/src/mappings/erc20Templates.ts @@ -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() diff --git a/src/mappings/utils/orderUtils.ts b/src/mappings/utils/orderUtils.ts index c26c646..b882819 100644 --- a/src/mappings/utils/orderUtils.ts +++ b/src/mappings/utils/orderUtils.ts @@ -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