Hardcoded eventIndex just for testing.
This commit is contained in:
parent
3f73362589
commit
352d2ffc18
|
@ -109,7 +109,12 @@ export function handleOrderStarted(event: OrderStarted): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function handlerOrderReused(event: OrderReused): void {
|
export function handlerOrderReused(event: OrderReused): void {
|
||||||
const order = searchOrderForEvent(event)
|
const order = searchOrderForEvent(
|
||||||
|
event.transaction.hash.toHex(),
|
||||||
|
event.address.toHex(),
|
||||||
|
event.transaction.from.toHex(),
|
||||||
|
event.logIndex.toI32()
|
||||||
|
)
|
||||||
|
|
||||||
if (!order) return
|
if (!order) return
|
||||||
|
|
||||||
|
@ -245,15 +250,26 @@ export function handleProviderFee(event: ProviderFee): void {
|
||||||
}", "r": "${event.params.r.toHexString()}", "s": "${event.params.s.toHexString()}", "validUntil": "${
|
}", "r": "${event.params.r.toHexString()}", "s": "${event.params.s.toHexString()}", "validUntil": "${
|
||||||
event.params.validUntil
|
event.params.validUntil
|
||||||
}"}`
|
}"}`
|
||||||
|
log.info('provider fee: {}', [providerFee])
|
||||||
|
log.info('event address: {}', [event.address.toHexString()])
|
||||||
|
|
||||||
const order = searchOrderForEvent(event)
|
const order = searchOrderForEvent(
|
||||||
|
event.transaction.hash.toHex(),
|
||||||
|
event.address.toHex(),
|
||||||
|
event.transaction.from.toHex(),
|
||||||
|
event.logIndex.toI32()
|
||||||
|
)
|
||||||
|
|
||||||
if (order) {
|
if (order) {
|
||||||
order.providerFee = providerFee
|
order.providerFee = providerFee
|
||||||
order.providerFeeValidUntil = event.params.validUntil
|
order.providerFeeValidUntil = event.params.validUntil
|
||||||
order.save()
|
order.save()
|
||||||
} else {
|
} else {
|
||||||
const orderReuse = searchOrderResusedForEvent(event)
|
const orderReuse = searchOrderResusedForEvent(
|
||||||
|
event.transaction.hash.toHex(),
|
||||||
|
event.address.toHex(),
|
||||||
|
event.logIndex.toI32()
|
||||||
|
)
|
||||||
if (orderReuse) {
|
if (orderReuse) {
|
||||||
orderReuse.providerFee = providerFee
|
orderReuse.providerFee = providerFee
|
||||||
orderReuse.providerFeeValidUntil = event.params.validUntil
|
orderReuse.providerFeeValidUntil = event.params.validUntil
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Order, OrderReuse } from '../../@types/schema'
|
import { Order, OrderReuse } from '../../@types/schema'
|
||||||
import { ethereum, log } from '@graphprotocol/graph-ts'
|
import { log } from '@graphprotocol/graph-ts'
|
||||||
|
|
||||||
export function getOrderId(
|
export function getOrderId(
|
||||||
tx: string,
|
tx: string,
|
||||||
|
@ -34,49 +34,65 @@ export function getOrder(
|
||||||
return newOrder
|
return newOrder
|
||||||
}
|
}
|
||||||
|
|
||||||
export function searchOrderForEvent(event: ethereum.Event): Order {
|
export function searchOrderForEvent(
|
||||||
let firstEventIndex = event.logIndex.toI32() - 1
|
transactionHash: string,
|
||||||
log.info('firstEventIndex on simple order: ', [firstEventIndex.toString()])
|
address: string,
|
||||||
while (true) {
|
transactionFrom: string,
|
||||||
|
eventIndex: number
|
||||||
|
): Order {
|
||||||
|
let firstEventIndex = eventIndex - 1
|
||||||
|
|
||||||
|
log.info('firstEventIndex on simple order: {}', [
|
||||||
|
firstEventIndex.toString().replace('0.0', '0')
|
||||||
|
])
|
||||||
|
while (firstEventIndex >= 0) {
|
||||||
const orderId = getOrderId(
|
const orderId = getOrderId(
|
||||||
event.transaction.hash.toHex(),
|
transactionHash,
|
||||||
event.address.toHex(),
|
address,
|
||||||
event.transaction.from.toHex(),
|
transactionFrom,
|
||||||
firstEventIndex.toString()
|
firstEventIndex.toString().replace('0.0', '0')
|
||||||
)
|
)
|
||||||
log.info('orderId as trial: ', [orderId])
|
log.info('orderId as trial: {}', [orderId])
|
||||||
const order = Order.load(orderId)
|
const order = Order.load(orderId)
|
||||||
if (order !== null) {
|
if (order !== null) {
|
||||||
log.info('order datatoken: ', [order.datatoken])
|
log.info('order datatoken: {}', [order.datatoken])
|
||||||
}
|
}
|
||||||
log.info('event address: ', [event.address.toString()])
|
log.info('event address: {}', [address])
|
||||||
if (order !== null && order.datatoken === event.address.toString()) {
|
if (order !== null && order.datatoken === address) {
|
||||||
return order
|
return order
|
||||||
}
|
}
|
||||||
firstEventIndex--
|
firstEventIndex--
|
||||||
}
|
}
|
||||||
|
return getOrder(
|
||||||
|
transactionHash,
|
||||||
|
address,
|
||||||
|
transactionFrom,
|
||||||
|
firstEventIndex.toString().replace('0.0', '0')
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function searchOrderResusedForEvent(event: ethereum.Event): OrderReuse {
|
export function searchOrderResusedForEvent(
|
||||||
let firstEventIndex = event.logIndex.toI32() - 1
|
transactionHash: string,
|
||||||
log.info('firstEventIndex on simple order: ', [firstEventIndex.toString()])
|
eventAddress: string,
|
||||||
while (true) {
|
eventIndex: number
|
||||||
const orderReused = OrderReuse.load(
|
): OrderReuse {
|
||||||
`${event.transaction.hash.toHex()}-${firstEventIndex}`
|
let firstEventIndex = eventIndex - 1
|
||||||
)
|
log.info('firstEventIndex on simple order: {}', [firstEventIndex.toString()])
|
||||||
|
while (firstEventIndex >= 0) {
|
||||||
|
const orderReused = OrderReuse.load(`${transactionHash}-${firstEventIndex}`)
|
||||||
|
|
||||||
if (orderReused !== null) {
|
if (orderReused !== null) {
|
||||||
log.info('order reused order: ', [orderReused.order])
|
log.info('order reused order: {}', [orderReused.order])
|
||||||
const order = Order.load(orderReused.order)
|
const order = Order.load(orderReused.order)
|
||||||
if (order !== null) {
|
if (order !== null) {
|
||||||
log.info('order datatoken: ', [order.datatoken])
|
log.info('order datatoken: ', [order.datatoken])
|
||||||
}
|
}
|
||||||
log.info('event address: ', [event.address.toString()])
|
log.info('event address: {}', [eventAddress])
|
||||||
|
|
||||||
if (
|
if (
|
||||||
orderReused !== null &&
|
orderReused !== null &&
|
||||||
order !== null &&
|
order !== null &&
|
||||||
order.datatoken === event.address.toString()
|
order.datatoken === eventAddress
|
||||||
) {
|
) {
|
||||||
return orderReused
|
return orderReused
|
||||||
}
|
}
|
||||||
|
@ -84,4 +100,5 @@ export function searchOrderResusedForEvent(event: ethereum.Event): OrderReuse {
|
||||||
|
|
||||||
firstEventIndex--
|
firstEventIndex--
|
||||||
}
|
}
|
||||||
|
return new OrderReuse(`${transactionHash}-${eventIndex.toString()}`)
|
||||||
}
|
}
|
||||||
|
|
|
@ -320,7 +320,7 @@ describe('Simple Publish & consume test', async () => {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify(query)
|
body: JSON.stringify(query)
|
||||||
})
|
})
|
||||||
await sleep(6000)
|
await sleep(3000)
|
||||||
const queryResult = await response.json()
|
const queryResult = await response.json()
|
||||||
console.log('queryResult: ', queryResult)
|
console.log('queryResult: ', queryResult)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue