Skip to main content

light_sdk_types/interface/
mod.rs

1//! Framework-agnostic interface for Light Protocol compressible accounts.
2
3pub mod account;
4pub mod accounts;
5pub mod create_accounts_proof;
6pub mod program;
7
8// LightCpi trait + CPI builder (no runtime dep)
9pub mod cpi;
10
11// --- Re-exports from light-compressible ---
12// =============================================================================
13// FLAT RE-EXPORTS
14// =============================================================================
15
16// --- account/ ---
17#[cfg(all(not(target_os = "solana"), feature = "std"))]
18pub use account::pack::Pack;
19// --- program/ ---
20#[cfg(feature = "token")]
21pub use account::token_seeds::{PackedTokenData, TokenDataWithPackedSeeds, TokenDataWithSeeds};
22pub use account::{
23    compression_info::{
24        claim_completed_epoch_rent, CompressAs, CompressedAccountData, CompressedInitSpace,
25        CompressionInfo, CompressionInfoField, CompressionState, HasCompressionInfo, Space,
26        COMPRESSION_INFO_SIZE, OPTION_COMPRESSION_INFO_SPACE,
27    },
28    light_account::{AccountType, LightAccount},
29    pack::Unpack,
30    pda_seeds::{HasTokenVariant, PdaSeedDerivation},
31};
32// --- accounts/ ---
33pub use accounts::{
34    finalize::{LightFinalize, LightPreInit},
35    init_compressed_account::{prepare_compressed_account_on_init, reimburse_rent},
36};
37// --- cpi/ ---
38pub use cpi::{
39    account::CpiAccountsTrait,
40    invoke::{invoke_light_system_program, InvokeLightSystemProgram},
41    LightCpi,
42};
43// --- Re-exports ---
44pub use create_accounts_proof::CreateAccountsProof;
45pub use light_compressible::rent;
46#[cfg(feature = "token")]
47pub use program::decompression::processor::process_decompress_accounts_idempotent;
48#[cfg(feature = "token")]
49pub use program::decompression::token::prepare_token_account_for_decompression;
50#[cfg(feature = "token")]
51pub use program::variant::{PackedTokenSeeds, UnpackedTokenSeeds};
52pub use program::{
53    compression::{
54        pda::prepare_account_for_compression,
55        processor::{
56            process_compress_pda_accounts_idempotent, CompressAndCloseParams, CompressCtx,
57            CompressDispatchFn,
58        },
59    },
60    config::{
61        process_initialize_light_config_checked, process_update_light_config,
62        InitializeLightConfigParams, LightConfig, UpdateLightConfigParams, LIGHT_CONFIG_SEED,
63        MAX_ADDRESS_TREES_PER_SPACE,
64    },
65    decompression::{
66        pda::prepare_account_for_decompression,
67        processor::{
68            process_decompress_pda_accounts_idempotent, DecompressCtx, DecompressIdempotentParams,
69            DecompressVariant,
70        },
71    },
72    validation::{
73        extract_tail_accounts, is_pda_initialized, should_skip_compression,
74        split_at_system_accounts_offset, validate_compress_accounts, validate_decompress_accounts,
75        ValidatedPdaContext,
76    },
77    variant::{IntoVariant, LightAccountVariantTrait, PackedLightAccountVariantTrait},
78};