Skip to main content

avail_rust_client/
lib.rs

1//! High-level Rust SDK for interacting with the Avail blockchain.
2//!
3//! This crate provides ergonomic helpers for connecting to Avail nodes, submitting transactions,
4//! querying blocks and events, and subscribing to chain updates.
5//!
6//! # Quick Start
7//!
8//! ```no_run
9//! use avail_rust_client::{Client, TURING_ENDPOINT};
10//!
11//! #[tokio::main]
12//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
13//!     let client = Client::new(TURING_ENDPOINT).await?;
14//!     let best = client.best().block_header().await?;
15//!     println!("Best block: {:?}", best.hash());
16//!     Ok(())
17//! }
18//! ```
19
20pub mod block;
21pub mod chain;
22pub mod client;
23pub mod clients;
24pub mod config;
25pub mod constants;
26pub mod conversions;
27pub mod error;
28pub mod extensions;
29pub mod platform;
30pub mod submission;
31pub mod subscription;
32pub mod transaction_api;
33pub mod transaction_options;
34pub mod utils;
35
36pub use client::Client;
37pub use constants::{
38	LOCAL_ENDPOINT, LOCAL_WS_ENDPOINT, MAINNET_ENDPOINT, MAINNET_WS_ENDPOINT, ONE_AVAIL, ONE_HUNDRED_AVAIL,
39	ONE_THOUSAND_AVAIL, TEN_AVAIL, TURING_ENDPOINT, TURING_WS_ENDPOINT,
40};
41pub use extensions::{AccountIdExt, H256Ext, KeypairExt, SecretUriExt};
42pub use submission::{BlockState, SubmittableTransaction, SubmittedTransaction, TransactionReceipt};
43pub use transaction_options::{MortalityOption, Options, RefinedMortality, RefinedOptions};
44
45pub use avail_rust_core::{
46	self, AccountId, AvailHeader, BlockInfo, CompactDataLookup, EncodeSelector, EncodedExtrinsic, Extrinsic,
47	ExtrinsicCall, ExtrinsicDecodable, ExtrinsicExtra, ExtrinsicSignature, HasHeader, HashNumber, HeaderExtension,
48	KateCommitment, MultiAddress, RpcError, StorageDoubleMap, StorageDoubleMapIterator, StorageHasher, StorageMap,
49	StorageMapIterator, StorageValue, TransactionEventDecodable, TransactionEventEncodable, V3HeaderExtension, avail,
50	ext::{codec, primitive_types, scale_info, subxt_core, subxt_rpcs, subxt_signer},
51	grandpa::GrandpaJustification,
52	multi_account_id,
53	rpc::LegacyBlock,
54};
55pub use constants::dev_accounts;
56pub use error::{Error, UserError};
57pub use primitive_types::{H256, U256};
58pub use subscription::Sub;
59pub use subxt_signer::{SecretUri, sr25519::Keypair};
60
61// External
62pub mod ext {
63	pub use avail_rust_core::{self, ext::*};
64
65	#[cfg(feature = "reqwest")]
66	pub use reqwest;
67}
68
69pub mod prelude {
70	pub use super::{config::*, constants::dev_accounts::*, *};
71}