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}