drift-labs / keeper-bots-v2

Apache License 2.0
88 stars 65 forks source link

do tx sending in subprocess #250

Closed wphan closed 1 month ago

wphan commented 1 month ago

Add a base class TxThreaded that Bots can extend to get tx sending and land rate tracking in a separate process. The spawned process handles signing and sending transactions via generally recommended practices, retrying on a 1s interval, and listening to logSubscribe for transactions mentioning pubkeys registered via TxThreaded.sendSignerToTxThread

If metrics are enabled, the following metrics are added via TxThreaded:

# HELP tx_sender_metrics TxSender thread metrics
# TYPE tx_sender_metrics gauge
tx_sender_metrics{metric="txMetricsLastTs"} 1724718213292 1724718222738
tx_sender_metrics{metric="txLanded"} 243 1724718222738
tx_sender_metrics{metric="txRetried"} 0 1724718222738
tx_sender_metrics{metric="txAttempted"} 278 1724718222738
tx_sender_metrics{metric="txDroppedBlockhashExpired"} 0 1724718222738
tx_sender_metrics{metric="txEnabled"} 1 1724718222738
tx_sender_metrics{metric="lruEvictedTxs"} 0 1724718222738
tx_sender_metrics{metric="pendingQueueSize"} 0 1724718222738
tx_sender_metrics{metric="confirmQueueSize"} 20 1724718222738
tx_sender_metrics{metric="txFailedSimulation"} 0 1724718222738
tx_sender_metrics{metric="txConfirmedFromWs"} 243 1724718222738