const { ethers } = require("ethers");
const NODE_URL = "CHAINSTACK_WSS_URL";
const provider = new ethers.WebSocketProvider(NODE_URL);
async function subscribeToNewBlocks() {
try {
// Listen for the 'block' event, emitted on every new block
provider.on('block', handleNewBlock);
console.log("Subscribed to new blocks");
} catch (error) {
console.error(`Error subscribing to new blocks: ${error}`);
}
}
/* Fallback functions to react to the different events */
// Event listener that logs the received block number
async function handleNewBlock(blockNumber) {
const block = await provider.getBlock(blockNumber);
console.log(block);
}
async function clearSubscriptions() {
try {
await provider.removeAllListeners();
console.log("Subscriptions were canceled successfully");
return process.exit(1)
} catch (error) {
console.error("Failed to cancel subscriptions:", error);
return process.exit(1)
}
}
async function main() {
subscribeToNewBlocks();
// Run clearSubscriptions() once after 60 seconds
setTimeout(clearSubscriptions, 60000);
}
main()