Skip to main content

lichen_client_sdk/
lib.rs

1//! # Lichen Rust SDK
2//!
3//! Official Rust SDK for interacting with Lichen blockchain.
4//!
5//! ## Features
6//!
7//! - **Type-safe RPC client** - Interact with validators via JSON-RPC
8//! - **Transaction building** - Create and sign transactions
9//! - **Keypair management** - Native PQ keypair generation and signing
10//! - **Async/await** - Built on Tokio for async operations
11//! - **PQ-native wire format** - Matches the core `PqSignature` transaction model
12//!
13//! ## Quick Start
14//!
15//! ```rust,no_run
16//! use lichen_client_sdk::{Client, Keypair};
17//!
18//! #[tokio::main]
19//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
20//!     // Connect to validator
21//!     let client = Client::new("http://localhost:8899");
22//!     
23//!     // Generate keypair
24//!     let keypair = Keypair::new();
25//!     
26//!     // Get balance
27//!     let balance = client.get_balance(&keypair.pubkey()).await?;
28//!     println!("Balance: {} LICN", balance.licn());
29//!     
30//!     Ok(())
31//! }
32//! ```
33
34pub mod bountyboard;
35pub mod client;
36pub mod error;
37pub mod keypair;
38pub mod lichenid;
39pub mod lichenswap;
40pub mod restrictions;
41pub mod sporepay;
42pub mod sporevault;
43pub mod thalllend;
44pub mod transaction;
45pub mod types;
46
47// Re-exports for convenience
48pub use bountyboard::{
49    ApproveWorkParams, BountyBoardBountyInfo, BountyBoardClient, BountyBoardPlatformStats,
50    BountyBoardStats, CreateBountyParams, SubmitWorkParams, BOUNTY_STATUS_CANCELLED,
51    BOUNTY_STATUS_COMPLETED, BOUNTY_STATUS_OPEN,
52};
53pub use client::{Client, ClientBuilder, ReadonlyContractResult};
54pub use error::{Error, Result};
55pub use keypair::{Address, Keypair, PqPublicKey, PqSignature, Pubkey};
56pub use lichenid::{
57    estimate_lichenid_name_registration_cost, AddSkillParams, ApproveRecoveryParams,
58    AttestSkillParams, BidNameAuctionParams, CreateNameAuctionParams, ExecuteRecoveryParams,
59    FinalizeNameAuctionParams, LichenIdAchievement, LichenIdAgentConfig, LichenIdAgentDirectory,
60    LichenIdAgentDirectoryEntry, LichenIdAgentDirectoryOptions, LichenIdAvailability,
61    LichenIdClient, LichenIdContributions, LichenIdDelegateRecord, LichenIdGivenVouch,
62    LichenIdIdentitySummary, LichenIdNameAuction, LichenIdNameResolution, LichenIdProfile,
63    LichenIdReceivedVouch, LichenIdReputation, LichenIdReputationSummary, LichenIdSkill,
64    LichenIdStats, LichenIdVouches, RegisterIdentityParams, RegisterNameParams,
65    RevokeAttestationParams, SetAvailabilityAsParams, SetAvailabilityParams, SetDelegateParams,
66    SetEndpointAsParams, SetEndpointParams, SetMetadataAsParams, SetMetadataParams,
67    SetRateAsParams, SetRateParams, SetRecoveryGuardiansParams, UpdateAgentTypeAsParams,
68    LICHENID_DELEGATE_PERM_AGENT_TYPE, LICHENID_DELEGATE_PERM_NAMING,
69    LICHENID_DELEGATE_PERM_PROFILE, LICHENID_DELEGATE_PERM_SKILLS,
70};
71pub use lichenswap::{
72    AddLiquidityParams, CreatePoolParams, LichenSwapClient, LichenSwapPoolInfo,
73    LichenSwapProtocolFees, LichenSwapStats, LichenSwapSwapStats, LichenSwapTwapCumulatives,
74    LichenSwapVolumeTotals, SwapParams, SwapWithDeadlineParams,
75};
76pub use restrictions::{
77    BridgeAsset, BridgeChain, BridgeRouteRestrictionParams, BridgeRouteRestrictionStatus,
78    CodeHashRestrictionParams, CodeHashRestrictionStatus, ContractLifecycleRestrictionStatus,
79    ContractRestrictionParams, EffectiveRestrictionRecord, ExtendRestrictionParams,
80    GetRestrictionResponse, LiftRestrictionParams, MovementRestrictionParams,
81    MovementRestrictionStatus, RestrictAccountAssetParams, RestrictAccountParams,
82    RestrictCommonParams, RestrictionAddress, RestrictionAsset, RestrictionBuilderBaseParams,
83    RestrictionBuilderInstruction, RestrictionGovernanceClient, RestrictionLiftReasonInput,
84    RestrictionListParams, RestrictionListResponse, RestrictionModeDetails, RestrictionModeInput,
85    RestrictionReasonInput, RestrictionRecord, RestrictionStringOrU64, RestrictionTargetDetails,
86    RestrictionTargetInput, RestrictionTargetStatus, ResumeBridgeRouteParams, ResumeContractParams,
87    SetFrozenAssetAmountParams, TransferRestrictionParams, TransferRestrictionStatus,
88    UnbanCodeHashParams, UnrestrictAccountAssetParams, UnrestrictAccountParams,
89    UnsignedRestrictionGovernanceTx,
90};
91pub use sporepay::{
92    CreateStreamParams, CreateStreamWithCliffParams, SporePayClient, SporePayStats, SporePayStream,
93    SporePayStreamInfo, TransferStreamParams, WithdrawFromStreamParams,
94};
95pub use sporevault::{
96    SporeVaultClient, SporeVaultStats, SporeVaultStrategyInfo, SporeVaultUserPosition,
97    SporeVaultVaultStats,
98};
99pub use thalllend::{
100    LiquidateParams, ThallLendAccountInfo, ThallLendClient, ThallLendInterestRate,
101    ThallLendProtocolStats, ThallLendStats,
102};
103pub use transaction::TransactionBuilder;
104pub use types::{Balance, Block, NetworkInfo, Transaction};
105
106// Re-export core types
107pub use lichen_core::{
108    Account, ContractInstruction, Hash, Instruction, Message, BASE_FEE, CONTRACT_PROGRAM_ID,
109    SYSTEM_PROGRAM_ID,
110};
111
112/// SDK version
113pub const VERSION: &str = env!("CARGO_PKG_VERSION");