Skip to main content

starkzap_rs/
lib.rs

1//! # starkzap-rs
2//!
3//! A Rust SDK for seamless Starknet wallet integration — the faithful Rust mirror
4//! of the [`starkzap`](https://github.com/keep-starknet-strange/starkzap) TypeScript SDK.
5//!
6//! Built for the Starknet community.
7//!
8//! ## Quick start
9//!
10//! ```rust,no_run
11//! use starkzap_rs::{
12//!     StarkZap, StarkZapConfig, OnboardConfig,
13//!     signer::StarkSigner,
14//!     tokens::sepolia,
15//!     Amount,
16//!     wallet::Recipient,
17//! };
18//!
19//! #[tokio::main]
20//! async fn main() -> starkzap_rs::error::Result<()> {
21//!     let sdk = StarkZap::new(StarkZapConfig::sepolia());
22//!
23//!     let signer = StarkSigner::new(
24//!         &std::env::var("PRIVATE_KEY").unwrap(),
25//!         &std::env::var("ACCOUNT_ADDRESS").unwrap(),
26//!     )?;
27//!
28//!     let wallet = sdk.onboard(OnboardConfig::Signer(signer)).await?;
29//!
30//!     let strk = sepolia::strk();
31//!     let balance = wallet.balance_of(&strk).await?;
32//!     println!("Balance: {}", balance);
33//!
34//!     Ok(())
35//! }
36//! ```
37//!
38//! ## Features
39//!
40//! | Feature | Description |
41//! |---|---|
42//! | *(default)* | Core SDK: StarkSigner, tokens, transfers, staking |
43//! | `privy` | Privy server-side signer |
44//! | `cartridge` | Cartridge session-key signer |
45//! | `full` | All optional signers |
46//! | `wasm` | WebAssembly target support |
47//!
48//! ## Targets
49//!
50//! - **Server / CLI** (tokio) — always available, no feature flags needed
51//! - **WASM / browser** — compile with `--features wasm --target wasm32-unknown-unknown`
52
53// ── Modules ───────────────────────────────────────────────────────────────────
54
55pub mod account;
56pub mod amount;
57pub mod error;
58pub mod network;
59pub mod paymaster;
60pub mod sdk;
61pub mod signer;
62pub mod staking;
63pub mod tokens;
64pub mod tx;
65pub mod wallet;
66
67// ── Re-exports: primary public API ───────────────────────────────────────────
68
69pub use account::AccountPreset;
70pub use amount::Amount;
71pub use error::{Result, StarkzapError};
72pub use network::Network;
73pub use sdk::{OnboardConfig, StarkZap, StarkZapConfig};
74pub use tx::{Tx, TxStatus};
75pub use wallet::{
76    DeployMode, DeployPolicy, EnsureReadyOptions, ExecuteOptions, PreflightOptions,
77    PreflightResult, ProgressEvent, ProgressStep, Recipient, Wallet,
78};