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, transaction history, block type, and archive reports.
7
8#[cfg(feature = "host")]
9pub(crate) mod ledger;
10#[cfg(feature = "host")]
11mod live;
12mod model;
13mod text;
14
15pub const DEFAULT_ICRC_SOURCE_ENDPOINT: &str = "https://icp-api.io";
16
17#[cfg(feature = "host")]
18pub use live::{
19    IcrcSource, LiveIcrcSource, build_icrc_allowance_report,
20    build_icrc_allowance_report_with_source, build_icrc_archives_report,
21    build_icrc_archives_report_with_source, build_icrc_balance_report,
22    build_icrc_balance_report_with_source, build_icrc_block_types_report,
23    build_icrc_block_types_report_with_source, build_icrc_capabilities_report,
24    build_icrc_capabilities_report_with_source, build_icrc_index_report,
25    build_icrc_index_report_with_source, build_icrc_tip_certificate_report,
26    build_icrc_tip_certificate_report_with_source, build_icrc_token_report,
27    build_icrc_token_report_with_source, build_icrc_transactions_report,
28    build_icrc_transactions_report_with_source,
29};
30pub use model::normalize_subaccount_hex;
31#[cfg(feature = "host")]
32pub use model::{
33    IcrcAllowanceData, IcrcArchivesData, IcrcBalanceData, IcrcBlockTypesData, IcrcCapabilitiesData,
34    IcrcIndexData, IcrcTipCertificateData, IcrcTokenData, IcrcTransactionsData,
35};
36pub use model::{
37    IcrcAllowanceReport, IcrcAllowanceRequest, IcrcArchiveFollowErrorRow, IcrcArchiveRow,
38    IcrcArchivedBlocksRow, IcrcArchivedRangeRow, IcrcArchivesReport, IcrcArchivesRequest,
39    IcrcBalanceReport, IcrcBalanceRequest, IcrcBlockTypeRow, IcrcBlockTypesReport,
40    IcrcBlockTypesRequest, IcrcCapabilitiesReport, IcrcCapabilitiesRequest, IcrcCapabilityRow,
41    IcrcError, IcrcFollowedArchiveBlockRow, IcrcIndexReport, IcrcIndexRequest,
42    IcrcTipCertificateReport, IcrcTipCertificateRequest, IcrcTokenMetadataRow, IcrcTokenReport,
43    IcrcTokenRequest, IcrcTokenStandardRow, IcrcTransactionBlockRow, IcrcTransactionsReport,
44    IcrcTransactionsRequest,
45};
46pub use text::{
47    icrc_allowance_report_text, icrc_archives_report_text, icrc_balance_report_text,
48    icrc_block_types_report_text, icrc_capabilities_report_text, icrc_index_report_text,
49    icrc_tip_certificate_report_text, icrc_token_report_text, icrc_transactions_report_text,
50};
51
52#[cfg(all(test, feature = "host"))]
53mod tests;