Skip to main content

quicknode_cascade/solana/
mod.rs

1//! Solana chain support.
2//!
3//! Implements structured extraction of Solana blocks, transactions, token
4//! transfers, and account activity from JSON-RPC `getBlock` responses.
5//!
6//! # Usage
7//!
8//! ```rust,no_run
9//! use quicknode_cascade::{CascadeRunner, solana};
10//!
11//! struct MyPlugin;
12//!
13//! impl solana::Plugin for MyPlugin {
14//!     fn name(&self) -> &'static str { "my-plugin" }
15//!
16//!     fn on_block<'a>(&'a self, block: &'a solana::BlockData) -> solana::PluginFuture<'a> {
17//!         Box::pin(async move {
18//!             println!("slot {}", block.slot);
19//!             Ok(())
20//!         })
21//!     }
22//! }
23//! ```
24
25mod plugin;
26mod types;
27pub(crate) mod extract;
28
29pub use plugin::{Plugin, PluginFuture};
30pub use types::{AccountActivityData, BlockData, TokenTransferData, TransactionData};
31
32/// Re-exports for convenience. `use quicknode_cascade::solana::prelude::*;`
33pub mod prelude {
34    pub use super::{
35        AccountActivityData, BlockData, Plugin, PluginFuture, TokenTransferData, TransactionData,
36    };
37    pub use crate::CascadeRunner;
38}