import { createSolanaRpcSubscriptions } from '@solana/web3.js';
const rpcSubscriptions = createSolanaRpcSubscriptions('');
async function main() {
const abortController = new AbortController();
const subscription = await rpcSubscriptions
.rootNotifications()
.subscribe({ abortSignal: abortController.signal });
let counter = 0;
const maxCount = 3;
try {
for await (const notification of subscription) {
console.log("Updated root info: ", notification);
counter++;
if (counter >= maxCount) {
console.log(`Reached ${maxCount} notifications. Unsubscribing...`);
break;
}
}
} catch (e) {
console.error("Error in root subscription:", e);
} finally {
abortController.abort();
console.log('Unsubscribed from root changes');
}
}
main().catch(console.error);