mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-07-27 17:37:45 +00:00
simplify grpc subscription option checks and add github ci workflow
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
name: ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
rust:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: rustfmt, clippy
|
||||
- name: fmt
|
||||
run: cargo fmt --all -- --check
|
||||
- name: clippy
|
||||
run: cargo clippy --all-targets --all-features
|
||||
- name: test
|
||||
run: cargo test --all-features
|
||||
@@ -52,14 +52,13 @@ impl SubscriptionManager {
|
||||
impl Stream<Item = Result<SubscribeUpdate, Status>>,
|
||||
SubscribeRequest,
|
||||
)> {
|
||||
let blocks_meta =
|
||||
if event_type_filter.is_some() && event_type_filter.unwrap().include_block_event() {
|
||||
HashMap::from([("".to_owned(), SubscribeRequestFilterBlocksMeta {})])
|
||||
} else if event_type_filter.is_none() {
|
||||
HashMap::from([("".to_owned(), SubscribeRequestFilterBlocksMeta {})])
|
||||
} else {
|
||||
HashMap::new()
|
||||
};
|
||||
// When no filter is set, subscribe to block meta like before; if a filter exists,
|
||||
// only keep block meta when the filter includes block-related event types.
|
||||
let blocks_meta = if event_type_filter.map_or(true, |f| f.include_block_event()) {
|
||||
HashMap::from([("".to_owned(), SubscribeRequestFilterBlocksMeta {})])
|
||||
} else {
|
||||
HashMap::new()
|
||||
};
|
||||
let subscribe_request = SubscribeRequest {
|
||||
accounts: accounts.unwrap_or_default(),
|
||||
transactions: transactions.unwrap_or_default(),
|
||||
@@ -82,7 +81,7 @@ impl SubscriptionManager {
|
||||
account_filter: Vec<AccountFilter>,
|
||||
event_type_filter: Option<&EventTypeFilter>,
|
||||
) -> Option<AccountsFilterMap> {
|
||||
if event_type_filter.is_some() && !event_type_filter.unwrap().include_account_event() {
|
||||
if event_type_filter.is_some_and(|f| !f.include_account_event()) {
|
||||
return None;
|
||||
}
|
||||
if account_filter.is_empty() {
|
||||
@@ -109,7 +108,7 @@ impl SubscriptionManager {
|
||||
transaction_filter: Vec<TransactionFilter>,
|
||||
event_type_filter: Option<&EventTypeFilter>,
|
||||
) -> Option<TransactionsFilterMap> {
|
||||
if event_type_filter.is_some() && !event_type_filter.unwrap().include_transaction_event() {
|
||||
if event_type_filter.is_some_and(|f| !f.include_transaction_event()) {
|
||||
return None;
|
||||
}
|
||||
let mut transactions = HashMap::new();
|
||||
|
||||
Reference in New Issue
Block a user