1pub mod crypto_helpers;
5pub mod identity;
6pub mod key_repository;
7pub mod merkle_tree;
8pub mod note_factory;
9pub mod note_processor;
10pub mod persistence;
11pub mod proof_inputs;
12pub mod scan_engine;
13pub mod utxo_store;
14
15pub mod builder;
16pub mod economics;
17pub mod prover;
18
19pub mod privacy_client;
20
21pub mod config;
22
23pub use identity::{BjjKeypair, ClientIdentity, DarkAccount, X25519Keypair};
24pub use key_repository::{KeyRepository, DEFAULT_LOOKAHEAD};
25
26pub use note_factory::{
27 ChangeNoteResult, DepositNoteResult, NoteFactory, NoteFactoryError, SpendingInputs,
28 TransferNoteResult,
29};
30pub use note_processor::{EventType, NoteProcessor, UnprocessedEvent, WalletNote};
31
32pub use merkle_tree::{LocalMerkleTree, MerklePath, TREE_DEPTH};
33pub use persistence::{load_wallet_state, save_wallet_state, PersistenceError, WalletState};
34pub use scan_engine::{DarkPoolEvent, PublicMemoInfo, ScanEngine, ScanError, ScanResult};
35pub use utxo_store::{IUtxoRepository, OwnedNote, UtxoStore};
36
37pub use crypto_helpers::{
38 address_to_field, aes128_decrypt, aes128_encrypt, bjj_scalar_mul, calculate_public_memo_id,
39 decrypt_note_from_fields, derive_nullifier_path_a, derive_nullifier_path_b,
40 derive_shared_secret_bjj, encrypt_note_for_deposit_aes, field_to_address, fr_to_u256,
41 from_noir_hex, generate_dleq_proof, kdf_to_aes_key_iv, pack_ciphertext_to_fields,
42 pack_note_plaintext, poseidon_hash, random_field, recipient_decrypt_3party, to_noir_decimal,
43 to_noir_hex, u256_to_fr, unpack_ciphertext_from_fields, unpack_note_plaintext, CryptoError,
44 DleqResult,
45};
46pub use proof_inputs::{
47 DLEQProof, DepositInputs, GasPaymentInputs, JoinInputs, NotePlaintext, ProverInput,
48 PublicClaimInputs, SplitInputs, TransferInputs, WithdrawInputs,
49};
50
51pub use economics::{FeeConfig, FeeEstimate, FeeManager, PriceData};
52pub use prover::{circuits, ClientProver};
53
54pub use builder::{
55 compute_execution_hash, convert_public_inputs_to_bytes32, encode_multicall,
56 format_proof_for_solidity, format_public_inputs_for_solidity, BuilderConfig, BuilderError,
57 DepositProofBundle, GasPaymentBundle, JoinProofBundle, MulticallBundle, PublicClaimProofBundle,
58 SplitProofBundle, TransactionBuilder, TransferProofBundle, WithdrawProofBundle,
59};
60
61pub use config::{DarkPoolConfig, GasLimits, PrivacyTxResult};
62pub use privacy_client::{PrivacyClient, PrivacyClientError, Transport};