1#![deny(clippy::unwrap_used)]
4#![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
14pub 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}