subscribe("pendingTransactions") allows developers to subscribe to real-time updates about pending transactions on the Avalanche blockchain; the application will receive notifications whenever a pending transaction appears on the blockchain.
Get your own node endpoint today
Start for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.Parameters
string— a keyword identifying the type of event to subscribe to,pendingTransactionsin this case.function— (optional) a callback function that will be called every time a new event of the specified type is received. This function takes two parameters:errorandresult. The error parameter contains any error that occurred while subscribing to the event, and the result parameter contains the data for the event that was received.
Response
string— the hash identifying the pending transaction.
subscribe("pendingTransactions") code example
Note that ethers.js subscriptions require a WebSocket connection.
provider.on method with the "pending" event to attach a listener to the WebSocket provider:
"pending"— fires for each new pending transaction hash received by the connected node."error"— fires if an error is detected on the provider connection.provider.removeAllListeners— removes the listeners so the program can stop receiving updates.
Use case
A practical use case forsubscribe("pendingTransactions") is a DApp that continuously listens for new pending transactions, then isolates the from, to, and value fields for analytics purposes. This is useful, for example, to only track transactions that move at least a certain amount of AVAX.
The following is an implementation of this concept using ethers.js subscriptions:
pending event using the provider.on method on a WebSocketProvider. This method attaches a listener that the provider calls every time a new pending transaction hash arrives.
The code defines two event listener functions that are attached to the provider: handleNewPending and handleError. The handleNewPending function is called when a new pending transaction is received; it runs the eth_getTransactionByHash method through provider.getTransaction and extracts the from, to, and value fields. If the value transferred is above 100 AVAX, the data is logged.
The code includes the unsubscribe function that can be implemented in the logic to remove the listeners and exit the program when a condition is met.
The handleError function is called when an error occurs, and it logs an error message.
Finally, the code calls the subscribeTopendingTransactions function, which creates the subscription and attaches the event listeners. When a new pending transaction is received, the handleNewPending function is called to extract the data and log it to the console.