mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-22 05:18:06 +00:00
feat: refactor subscription API with multi-filter support
- Support multiple transaction/account filters as vectors - Add Token2022 extended state parsing - Add pumpswap pool monitoring example - Enhance AccountFilter with memcmp filters BREAKING CHANGE: API signature changes for subscription methods
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
use crate::{
|
||||
common::AnyResult,
|
||||
streaming::{grpc::pool::factory, grpc::EventPretty, yellowstone_grpc::YellowstoneGrpc},
|
||||
streaming::{
|
||||
grpc::{pool::factory, EventPretty},
|
||||
yellowstone_grpc::{TransactionFilter, YellowstoneGrpc},
|
||||
},
|
||||
};
|
||||
use futures::{SinkExt, StreamExt};
|
||||
use log::error;
|
||||
@@ -39,12 +42,9 @@ impl YellowstoneGrpc {
|
||||
let addrs = vec![SYSTEM_PROGRAM_ID.to_string()];
|
||||
let account_include = account_include.unwrap_or_default();
|
||||
let account_exclude = account_exclude.unwrap_or_default();
|
||||
let transactions = self.subscription_manager.get_subscribe_request_filter(
|
||||
account_include,
|
||||
account_exclude,
|
||||
addrs,
|
||||
None,
|
||||
);
|
||||
let tx_filter =
|
||||
vec![TransactionFilter { account_include, account_exclude, account_required: addrs }];
|
||||
let transactions = self.subscription_manager.get_subscribe_request_filter(tx_filter, None);
|
||||
let (mut subscribe_tx, mut stream, _) = self
|
||||
.subscription_manager
|
||||
.subscribe_with_request(transactions, None, None, None)
|
||||
|
||||
Reference in New Issue
Block a user