simplify grpc subscription option checks and add github ci workflow

Made-with: Cursor
This commit is contained in:
mooncitydev
2026-04-04 04:25:17 +09:00
parent 7f505f0da5
commit 01701e97fc
2 changed files with 34 additions and 10 deletions
+25
View File
@@ -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
+9 -10
View File
@@ -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();