// eth_subscribe_pendingTx.js
import dotenv from 'dotenv';
dotenv.config();
import Web3 from 'web3';
import WSProvider from 'web3-providers-ws';
const WS_URL = process.env.PEAQ_WS_URL;
const provider = new WSProvider(WS_URL);
const web3 = new Web3(provider);
let pendingSubscription;
(async () => {
try {
pendingSubscription = await web3.eth.subscribe('pendingTransactions');
pendingSubscription.on("data", (txHash) => {
console.log("Pending Transaction Hash received:");
console.log(txHash);
});
pendingSubscription.on("error", (error) => {
console.error("Error in pendingTransactions subscription:", error);
});
} catch (err) {
console.error("Error subscribing to pendingTransactions:", err);
}
})();
// Graceful shutdown
process.on('SIGINT', async () => {
console.log("\nGracefully shutting down...");
try {
if (pendingSubscription) {
await pendingSubscription.unsubscribe();
console.log("Unsubscribed from pendingTransactions.");
}
} catch (err) {
console.error("Error unsubscribing from pendingTransactions:", err);
}
provider.disconnect();
process.exit();
});
console.log("Listening for pending transactions on the peaq network (eth_subscribe)...");