import { EvmBatchProcessor } from '@subsquid/evm-processor';
import { TypeormDatabase } from '@subsquid/typeorm-store';
import { DataStoredEvent } from './model';
const DataStoredEventTopic = '0x9455957c3b77d1d4ed071e2b469dd77e37fc5dfd3b4d44dc8a997cc97c7b3d49';
const CONTRACT_ADDRESS = '0xdbdac2ef52681230f996624a5fa2624b06972671';
const processor = new EvmBatchProcessor()
.setRpcEndpoint({
url: 'https://rpcpc1-qa.agung.peaq.network',
})
.setFinalityConfirmation(5)
.setBlockRange({ from: 3564900 })
.addLog({
address: [CONTRACT_ADDRESS]
})
.setFields({
log: {
transactionHash: true,
},
});
const db = new TypeormDatabase();
processor.run(db, async (ctx) => {
const events: DataStoredEvent[] = [];
for (let block of ctx.blocks) {
for (let log of block.logs) {
if (log.topics[0] === DataStoredEventTopic) {
const data = BigInt(log.data);
console.log("ID: ", log.id);
console.log("DATA: ", data);
console.log("BLOCK_NUMBER: ", block.header.height);
console.log("TX_HASH: ", log.block.hash);
events.push(new DataStoredEvent({
id: log.id,
data: Number(data),
blockNumber: block.header.height,
transactionHash: log.block.hash,
}));
}
}
}
await ctx.store.insert(events);
});