Skip to main content

ic_query/icrc/
mod.rs

1//! Module: icrc
2//!
3//! Responsibility: expose generic ICRC ledger request and report APIs.
4//! Does not own: SNS lookup, NNS registry cache behavior, or release flow.
5//! Boundary: exposes live read-only token metadata, account balance, allowance,
6//! index discovery, account and ledger transaction history, block type, and archive reports.
7
8#[cfg(feature = "host")]
9mod account_transaction_cache;
10#[cfg(feature = "host")]
11pub(crate) mod ledger;
12#[cfg(feature = "host")]
13mod live;
14mod model;
15mod text;
16
17pub const DEFAULT_ICRC_SOURCE_ENDPOINT: &str = "https://icp-api.io";
18
19#[cfg(feature = "host")]
20pub use account_transaction_cache::{
21    DEFAULT_ICRC_ACCOUNT_TRANSACTION_REFRESH_LOCK_STALE_SECONDS,
22    build_icrc_account_transaction_cache_status_report, build_icrc_account_transaction_list_report,
23    icrc_account_transaction_cache_path, icrc_account_transaction_refresh_attempt_path,
24    icrc_account_transaction_refresh_lock_path, load_cached_icrc_account_transactions,
25    load_or_refresh_missing_icrc_account_transactions,
26    load_or_refresh_missing_icrc_account_transactions_with_source,
27    load_or_refresh_stale_icrc_account_transactions,
28    load_or_refresh_stale_icrc_account_transactions_with_source,
29    refresh_icrc_account_transaction_cache, refresh_icrc_account_transaction_cache_with_progress,
30    refresh_icrc_account_transaction_cache_with_source,
31};
32#[cfg(feature = "host")]
33pub use live::{
34    ICRC_ACCOUNT_TRANSACTION_MAX_PAGE_SIZE, IcrcAccountTransactionCollectionSource,
35    IcrcAccountTransactionPageSource, IcrcSource, LiveIcrcSource,
36    build_icrc_account_transaction_page_report,
37    build_icrc_account_transaction_page_report_with_source, build_icrc_allowance_report,
38    build_icrc_allowance_report_with_source, build_icrc_archives_report,
39    build_icrc_archives_report_with_source, build_icrc_balance_report,
40    build_icrc_balance_report_with_source, build_icrc_block_types_report,
41    build_icrc_block_types_report_with_source, build_icrc_capabilities_report,
42    build_icrc_capabilities_report_with_source, build_icrc_index_report,
43    build_icrc_index_report_with_source, build_icrc_tip_certificate_report,
44    build_icrc_tip_certificate_report_with_source, build_icrc_token_report,
45    build_icrc_token_report_with_source, build_icrc_transactions_report,
46    build_icrc_transactions_report_with_source,
47};
48pub use model::normalize_subaccount_hex;
49#[cfg(feature = "host")]
50pub use model::{
51    CachedIcrcAccountTransactionSnapshot, IcrcAccountTransactionCollectionData,
52    IcrcAccountTransactionPageData, IcrcAllowanceData, IcrcArchivesData, IcrcBalanceData,
53    IcrcBlockTypesData, IcrcCapabilitiesData, IcrcIndexData, IcrcTipCertificateData, IcrcTokenData,
54    IcrcTransactionsData,
55};
56pub use model::{
57    IcrcAccountRow, IcrcAccountTransactionCacheRequest, IcrcAccountTransactionCacheStatusReport,
58    IcrcAccountTransactionCacheSummary, IcrcAccountTransactionCompleteness,
59    IcrcAccountTransactionError, IcrcAccountTransactionListReport,
60    IcrcAccountTransactionListRequest, IcrcAccountTransactionPageReport,
61    IcrcAccountTransactionPageRequest, IcrcAccountTransactionRefreshAttemptStatus,
62    IcrcAccountTransactionRefreshReport, IcrcAccountTransactionRefreshRequest,
63    IcrcAccountTransactionRow, IcrcAccountTransactionSnapshot, IcrcAccountTransactionSort,
64    IcrcAllowanceReport, IcrcAllowanceRequest, IcrcArchiveFollowErrorRow, IcrcArchiveRow,
65    IcrcArchivedBlocksRow, IcrcArchivedRangeRow, IcrcArchivesReport, IcrcArchivesRequest,
66    IcrcBalanceReport, IcrcBalanceRequest, IcrcBlockTypeRow, IcrcBlockTypesReport,
67    IcrcBlockTypesRequest, IcrcCapabilitiesReport, IcrcCapabilitiesRequest, IcrcCapabilityRow,
68    IcrcError, IcrcFollowedArchiveBlockRow, IcrcIndexReport, IcrcIndexRequest,
69    IcrcTipCertificateReport, IcrcTipCertificateRequest, IcrcTokenMetadataRow, IcrcTokenReport,
70    IcrcTokenRequest, IcrcTokenStandardRow, IcrcTransactionBlockRow, IcrcTransactionsReport,
71    IcrcTransactionsRequest,
72};
73pub use text::{
74    icrc_account_transaction_cache_status_report_text, icrc_account_transaction_list_report_text,
75    icrc_account_transaction_page_report_text, icrc_account_transaction_refresh_report_text,
76    icrc_allowance_report_text, icrc_archives_report_text, icrc_balance_report_text,
77    icrc_block_types_report_text, icrc_capabilities_report_text, icrc_index_report_text,
78    icrc_tip_certificate_report_text, icrc_token_report_text, icrc_transactions_report_text,
79};
80
81#[cfg(all(test, feature = "host"))]
82mod tests;