Added eventIndex for NFT Update events.

This commit is contained in:
Maria Carmina 2023-03-17 14:57:15 +02:00
parent 7b49cf8e4b
commit b7b42440c4
3 changed files with 28 additions and 1 deletions

View File

@ -385,6 +385,7 @@ type NftUpdate @entity {
block: Int!
timestamp: Int!
tx: String!
eventIndex: Int!
}
type Template @entity{
@ -588,6 +589,7 @@ type NftTransferHistory @entity {
oldOwner: User!
newOwner: User!
txId: String
eventIndex: Int!
timestamp: Int!
block: Int!
}

View File

@ -47,6 +47,7 @@ export function handleMetadataCreated(event: MetadataCreated): void {
nftUpdate.timestamp = event.block.timestamp.toI32()
nftUpdate.tx = event.transaction.hash.toHex()
nftUpdate.eventIndex = event.logIndex.toI32()
nftUpdate.block = event.block.number.toI32()
nftUpdate.save()
@ -71,6 +72,7 @@ export function handleMetadataUpdated(event: MetadataUpdated): void {
nftUpdate.timestamp = event.block.timestamp.toI32()
nftUpdate.tx = event.transaction.hash.toHex()
nftUpdate.eventIndex = event.logIndex.toI32()
nftUpdate.block = event.block.number.toI32()
nftUpdate.save()
@ -95,6 +97,7 @@ export function handleMetadataState(event: MetadataState): void {
nftUpdate.timestamp = event.block.timestamp.toI32()
nftUpdate.tx = event.transaction.hash.toHex()
nftUpdate.eventIndex = event.logIndex.toI32()
nftUpdate.block = event.block.number.toI32()
nftUpdate.save()
@ -118,6 +121,7 @@ export function handleTokenUriUpdate(event: TokenURIUpdate): void {
nftUpdate.tokenUri = nft.tokenUri
nftUpdate.timestamp = event.block.timestamp.toI32()
nftUpdate.tx = event.transaction.hash.toHex()
nftUpdate.eventIndex = event.logIndex.toI32()
nftUpdate.block = event.block.number.toI32()
nftUpdate.assetState = nft.assetState
nftUpdate.save()
@ -133,6 +137,7 @@ export function handleAddedManager(event: AddedManager): void {
if (!existingRoles.includes(event.params.user.toHexString()))
existingRoles.push(event.params.user.toHexString())
nft.managerRole = existingRoles
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
export function handleRemovedManager(event: RemovedManager): void {
@ -148,6 +153,7 @@ export function handleRemovedManager(event: RemovedManager): void {
if (role !== event.params.user.toHexString()) newList.push(role)
}
nft.managerRole = newList
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -160,6 +166,7 @@ export function handleAddedTo725StoreList(event: AddedTo725StoreList): void {
if (!existingRoles.includes(event.params.user.toHexString()))
existingRoles.push(event.params.user.toHexString())
nft.storeUpdateRole = existingRoles
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -178,6 +185,7 @@ export function handleRemovedFrom725StoreList(
if (role !== event.params.user.toHexString()) newList.push(role)
}
nft.storeUpdateRole = newList
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -192,6 +200,7 @@ export function handleAddedToCreateERC20List(
if (!existingRoles.includes(event.params.user.toHexString()))
existingRoles.push(event.params.user.toHexString())
nft.erc20DeployerRole = existingRoles
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -210,6 +219,7 @@ export function handleRemovedFromCreateERC20List(
if (role !== event.params.user.toHexString()) newList.push(role)
}
nft.erc20DeployerRole = newList
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -222,6 +232,7 @@ export function handleAddedToMetadataList(event: AddedToMetadataList): void {
if (!existingRoles.includes(event.params.user.toHexString()))
existingRoles.push(event.params.user.toHexString())
nft.metadataRole = existingRoles
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -240,6 +251,7 @@ export function handleRemovedFromMetadataList(
if (role !== event.params.user.toHexString()) newList.push(role)
}
nft.metadataRole = newList
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -250,6 +262,7 @@ export function handleCleanedPermissions(event: CleanedPermissions): void {
nft.erc20DeployerRole = newList
nft.storeUpdateRole = newList
nft.managerRole = newList
nft.eventIndex = event.logIndex.toI32()
nft.save()
}
@ -269,6 +282,7 @@ export function handleNftTransferred(event: Transfer): void {
newTransfer.nft = nft.id
newTransfer.newOwner = newOwner.id
newTransfer.txId = event.transaction.hash.toHex()
newTransfer.eventIndex = event.logIndex.toI32()
newTransfer.timestamp = event.block.timestamp.toI32()
newTransfer.block = event.block.number.toI32()
newTransfer.save()

View File

@ -216,7 +216,7 @@ describe('NFT tests', async () => {
)
// graph tests here
await sleep(2000)
await sleep(3000)
const query = {
query: `query {
nft(id:"${nftAddress}"){
@ -237,6 +237,7 @@ describe('NFT tests', async () => {
transferable,
createdTimestamp,
tx,
eventIndex,
block,
orderCount}}`
}
@ -244,6 +245,7 @@ describe('NFT tests', async () => {
method: 'POST',
body: JSON.stringify(query)
})
await sleep(3000)
const updatedNft = (await response.json()).data.nft
const tx: TransactionReceipt = await web3.eth.getTransactionReceipt(
updatedNft.tx
@ -289,6 +291,10 @@ describe('NFT tests', async () => {
assert(updatedNft.block >= blockNumber, 'incorrect value for: block')
assert(updatedNft.block < blockNumber + 50, 'incorrect value for: block')
assert(updatedNft.orderCount === '0', 'incorrect value for: orderCount')
assert(
updatedNft.eventIndex !== null && updatedNft.eventIndex > 0,
'Invalid eventIndex for NFT update'
)
})
it('Set a key/value in erc725 store', async () => {
@ -302,6 +308,7 @@ describe('NFT tests', async () => {
key
value
}
eventIndex
}
}`
}
@ -311,5 +318,9 @@ describe('NFT tests', async () => {
})
const updatedNft = (await response.json()).data.nft
assert(updatedNft.nftData.key !== null, 'incorrect value for key')
assert(
updatedNft.eventIndex !== null && updatedNft.eventIndex > 0,
'Invalid eventIndex for NFT update'
)
})
})