feat: add handler for burns to the transfer handler [subgraph] (#162)

* feat: add handler for burns to the transfer handler

* fix: update transfer.ts to include the changes.
This commit is contained in:
Shredder 2023-03-14 00:22:37 +03:30 committed by GitHub
parent 3414a96c65
commit 5c43ebe0d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 30 deletions

View File

@ -16,18 +16,21 @@ import {
} from '../generated/schema'; } from '../generated/schema';
export function handleTransfer(event: TransferEvent): void { export function handleTransfer(event: TransferEvent): void {
let entity = new Transfer( let transfer = new Transfer(
event.transaction.hash.concatI32(event.logIndex.toI32()) event.transaction.hash.concatI32(event.logIndex.toI32())
); );
entity.from = event.params.from;
entity.to = event.params.to;
entity.tokenId = event.params.tokenId;
entity.blockNumber = event.block.number; const TokenId = event.params.tokenId;
entity.blockTimestamp = event.block.timestamp;
entity.transactionHash = event.transaction.hash;
entity.save(); transfer.from = event.params.from;
transfer.to = event.params.to;
transfer.tokenId = TokenId;
transfer.blockNumber = event.block.number;
transfer.blockTimestamp = event.block.timestamp;
transfer.transactionHash = event.transaction.hash;
transfer.save();
let token: Token | null; let token: Token | null;
@ -40,11 +43,16 @@ export function handleTransfer(event: TransferEvent): void {
} }
if (parseInt(event.params.from.toHexString()) !== 0) { if (parseInt(event.params.from.toHexString()) !== 0) {
if (parseInt(event.params.to.toHexString()) === 0) {
// Burn
// Remove the entity from storage
// Its controllers and owner will be affected.
store.remove('Token', TokenId.toString());
} else {
// Transfer // Transfer
// Load the Token by using its TokenId // Load the Token by using its TokenId
token = Token.load( token = Token.load(
Bytes.fromByteArray(Bytes.fromBigInt(event.params.tokenId)) Bytes.fromByteArray(Bytes.fromBigInt(TokenId))
); );
if (token) { if (token) {
@ -59,4 +67,6 @@ export function handleTransfer(event: TransferEvent): void {
log.error('Unknown token was transferred.', []); log.error('Unknown token was transferred.', []);
} }
} }
} }
}