Skip to main content

csv_adapter_sui/
lib.rs

1//! Sui Adapter for CSV (Client-Side Validation)
2//!
3//! This adapter implements the AnchorLayer trait for Sui,
4//! using owned objects with one_time attributes as seals.
5//!
6//! ## Architecture
7//!
8//! - **Seals**: Sui objects that can be transferred and consumed once
9//! - **Anchors**: Dynamic fields created when seal objects are consumed
10//! - **Finality**: Narwhal consensus provides deterministic finality via checkpoint certification
11//!
12//! ## Usage
13//!
14//! ```no_run
15//! use csv_adapter_sui::{SuiAnchorLayer, SuiConfig, SuiNetwork};
16//!
17//! // Create adapter with mock RPC for testing
18//! let adapter = SuiAnchorLayer::with_mock().unwrap();
19//!
20//! // Or with configuration
21//! let config = SuiConfig::new(SuiNetwork::Testnet);
22//! // let rpc = ...;
23//! // let adapter = SuiAnchorLayer::from_config(config, rpc).unwrap();
24//! ```
25//!
26//! ## Production
27//!
28//! Enable the `rpc` feature to use real Sui RPC calls:
29//! ```toml
30//! [dependencies]
31//! csv-adapter-sui = { version = "0.1", features = ["rpc"] }
32//! ```
33
34#![warn(missing_docs)]
35#![allow(missing_docs)]
36#![allow(dead_code)]
37
38pub mod adapter;
39pub mod checkpoint;
40pub mod config;
41pub mod error;
42pub mod proofs;
43pub mod rpc;
44pub mod seal;
45pub mod signatures;
46pub mod types;
47
48#[cfg(feature = "rpc")]
49pub mod real_rpc;
50
51pub use adapter::SuiAnchorLayer;
52pub use checkpoint::CheckpointVerifier;
53pub use config::{CheckpointConfig, SealContractConfig, SuiConfig, SuiNetwork, TransactionConfig};
54pub use error::SuiError;
55pub use proofs::{
56    CommitmentEventBuilder, EventProof, EventProofVerifier, StateProof, StateProofVerifier,
57    TransactionProof,
58};
59#[cfg(feature = "rpc")]
60pub use real_rpc::SuiRpcClient;
61#[cfg(debug_assertions)]
62pub use rpc::MockSuiRpc;
63pub use rpc::{SuiCheckpoint, SuiEvent, SuiLedgerInfo, SuiObject, SuiRpc, SuiTransactionBlock};
64pub use seal::{SealRecord, SealRegistry, SealStore};
65pub use types::{SuiAnchorRef, SuiFinalityProof, SuiInclusionProof, SuiSealRef};