Skip to main content

privy_rs/
lib.rs

1//! Privy SDK for Rust
2
3#![deny(clippy::unwrap_used)]
4// #![warn(clippy::pedantic)]
5#![warn(missing_docs)]
6
7use base64::{Engine, engine::general_purpose::STANDARD};
8
9pub mod client;
10pub mod ethereum;
11pub mod privy_hpke;
12pub mod solana;
13
14/// Generated types from privy's openapi spec
15pub mod generated {
16    pub use privy_openapi::*;
17}
18
19pub mod subclients;
20
21#[cfg(feature = "alloy")]
22pub mod alloy;
23
24pub(crate) mod errors;
25pub(crate) mod import;
26pub(crate) mod jwt_exchange;
27pub(crate) mod keys;
28pub(crate) mod utils;
29
30pub use client::PrivyClient;
31pub use errors::*;
32pub use ethereum::SendTransactionOptions;
33pub use keys::*;
34pub use privy_hpke::PrivyHpke;
35pub use solana::SignAndSendTransactionOptions;
36pub use utils::{
37    Method, Utils, WalletApiRequestSignatureInput, format_request_for_authorization_signature,
38    generate_authorization_signatures,
39};
40
41#[cfg(feature = "alloy")]
42pub use alloy::PrivyAlloyWallet;
43
44pub(crate) fn get_auth_header(app_id: &str, app_secret: &str) -> String {
45    let credentials = format!("{app_id}:{app_secret}");
46    format!("Basic {}", STANDARD.encode(credentials))
47}