diff --git a/src/mappings/erc20Templates.ts b/src/mappings/erc20Templates.ts index 9009578..86b8242 100644 --- a/src/mappings/erc20Templates.ts +++ b/src/mappings/erc20Templates.ts @@ -117,16 +117,18 @@ export function handleOrderStarted(event: OrderStarted): void { } export function handlerOrderReused(event: OrderReused): void { + log.info('searched order tx: {}', [event.params.orderTxId.toHexString()]) const order = searchOrderForEvent( - event.transaction.hash.toHex(), + event.params.orderTxId.toHexString(), event.address.toHex(), - event.transaction.from.toHex(), + event.params.caller.toHex(), event.logIndex.toI32() ) - // log.info('searched order id: {}', [order.id]) if (!order) return + log.info('found order id after searching: {}', [order.id]) + const reuseOrder = new OrderReuse( `${event.transaction.hash.toHex()}-${event.logIndex.toI32()}` ) @@ -271,21 +273,61 @@ export function handleProviderFee(event: ProviderFee): void { event.logIndex.toI32() ) - const orderReuse = searchOrderReusedForEvent( - event.transaction.hash.toHex(), - event.address.toHex(), - event.logIndex.toI32() - ) + // const orderReuse = searchOrderReusedForEvent( + // event.transaction.hash.toHex(), + // event.address.toHex(), + // event.logIndex.toI32() + // ) if (order) { log.info('order id in provider fee handler: {}', [order.id]) order.providerFee = providerFee order.providerFeeValidUntil = event.params.validUntil order.save() - } else if (orderReuse) { + return + } + const orderReuse = searchOrderReusedForEvent( + event.transaction.hash.toHex(), + event.address.toHex(), + event.logIndex.toI32() + ) + if (orderReuse) { log.info('order reuse id in provider fee handler: {}', [orderReuse.id]) orderReuse.providerFee = providerFee orderReuse.providerFeeValidUntil = event.params.validUntil orderReuse.save() } + // if (order) { + // order.providerFee = providerFee + // order.providerFeeValidUntil = event.params.validUntil + // order.save() + // return + // } + + // let orderReuse = searchOrderReusedForEvent( + // event.transaction.hash.toHex(), + // event.address.toHex(), + // event.logIndex.toI32() + // ) + // if (orderReuse) { + // orderReuse.providerFee = providerFee + // orderReuse.providerFeeValidUntil = event.params.validUntil + // orderReuse.save() + // } else { + // orderReuse = new OrderReuse(event.transaction.hash.toHex()) + // orderReuse.providerFee = providerFee + // orderReuse.providerFeeValidUntil = event.params.validUntil + // orderReuse.order = order!.id + // orderReuse.createdTimestamp = event.block.timestamp.toI32() + // orderReuse.tx = event.transaction.hash.toHex() + // orderReuse.block = event.block.number.toI32() + // orderReuse.caller = event.transaction.from.toHex() + // if (event.transaction.gasPrice) + // orderReuse.gasPrice = event.transaction.gasPrice + // else orderReuse.gasPrice = BigInt.zero() + // if (event.receipt !== null && event.receipt!.gasUsed) { + // orderReuse.gasUsed = event.receipt!.gasUsed.toBigDecimal() + // } else orderReuse.gasUsed = BigDecimal.zero() + // orderReuse.save() + // } } diff --git a/src/mappings/utils/orderUtils.ts b/src/mappings/utils/orderUtils.ts index 3440891..242e055 100644 --- a/src/mappings/utils/orderUtils.ts +++ b/src/mappings/utils/orderUtils.ts @@ -60,11 +60,8 @@ export function searchOrderForEvent( ]) log.info('found order, exit searching: {}', [order.id]) return order - } else { - continue } } - // return an Order just for compilation schema return null } @@ -75,12 +72,20 @@ export function searchOrderReusedForEvent( ): OrderReuse | null { for (let i = eventIndex - 1; i >= 0; i--) { log.info('i in order reused: {}', [i.toString()]) + log.info('transactionHash in order reused: {}', [ + transactionHash.toString() + ]) const orderReused = OrderReuse.load(`${transactionHash}-${i}`) + log.info('loaded order reused with this id: {}', [ + `${transactionHash}-${i}` + ]) if (!orderReused) { continue } log.info('found reused order: {} ', [orderReused.id]) + log.info('loaded reused order with this orderId: {}', [orderReused.order]) const order = Order.load(orderReused.order) + if (order && order.datatoken == eventAddress) { log.info('found order: {} ', [order.id]) log.info('found reused order datatoken: {} and event address: {}', [ @@ -88,10 +93,7 @@ export function searchOrderReusedForEvent( eventAddress ]) return orderReused - } else { - continue } } - // return an OrderReuse just for compilation schema return null }