Skip to main content

ic_query/subnet_catalog/
mod.rs

1mod error;
2#[cfg(feature = "host")]
3mod host;
4mod json;
5mod model;
6mod principal;
7#[cfg(feature = "host")]
8mod report;
9mod resolver;
10#[cfg(feature = "host")]
11mod text;
12#[cfg(feature = "host")]
13mod time;
14
15pub use error::CatalogError;
16#[cfg(feature = "host")]
17pub use host::{
18    CachedSubnetCatalog, LiveNnsRegistryRefreshSource, SubnetCatalogCacheRequest,
19    SubnetCatalogHostError, SubnetCatalogRefreshRequest, SubnetCatalogSource,
20    SubnetCatalogSourceRequest, load_cached_subnet_catalog, load_or_refresh_subnet_catalog,
21    load_or_refresh_subnet_catalog_with_source, refresh_subnet_catalog,
22    refresh_subnet_catalog_with_source, subnet_catalog_path, subnet_catalog_refresh_lock_path,
23};
24pub use json::{catalog_to_pretty_json, parse_catalog_json};
25pub use model::{
26    ClassificationSource, GeographicScope, RoutingRange, SubnetCatalog, SubnetInfo, SubnetKind,
27    SubnetSpecialization,
28};
29pub use principal::canonical_principal_text;
30pub(crate) use principal::{parse_principal, principal_bytes};
31#[cfg(feature = "host")]
32pub(crate) use report::CatalogStaleStatus;
33#[cfg(feature = "host")]
34pub use report::{
35    SubnetCatalogFilters, SubnetCatalogInfoReport, SubnetCatalogInfoRequest,
36    SubnetCatalogListReport, SubnetCatalogListRequest, SubnetCatalogRefreshReport,
37    SubnetCatalogSubnetRow, build_subnet_catalog_info_report,
38    build_subnet_catalog_info_report_with_source, build_subnet_catalog_list_report,
39    build_subnet_catalog_list_report_with_source,
40};
41pub use resolver::{ResolveAs, ResolvedSubnet, ResolvedSubnetSubject};
42#[cfg(all(test, feature = "host"))]
43pub(crate) use text::compact_principal;
44#[cfg(feature = "host")]
45pub use text::{
46    subnet_catalog_info_report_text, subnet_catalog_list_report_text,
47    subnet_catalog_list_report_verbose_text, subnet_catalog_refresh_report_text,
48};
49#[cfg(all(test, feature = "host"))]
50pub(crate) use time::parse_stale_after_duration;
51#[cfg(feature = "host")]
52pub(crate) use time::{catalog_stale_status, format_utc_timestamp_secs};
53
54pub const CATALOG_SCHEMA_VERSION: u32 = 1;
55pub const MAINNET_NETWORK: &str = "ic";
56pub const MAINNET_REGISTRY_CANISTER_ID: &str = "rwlgt-iiaaa-aaaaa-aaaaa-cai";
57#[cfg(feature = "host")]
58pub const DEFAULT_STALE_AFTER_SECONDS: u64 = 7 * 24 * 60 * 60;
59#[cfg(feature = "host")]
60pub const DEFAULT_REFRESH_LOCK_STALE_SECONDS: u64 = 30 * 60;
61#[cfg(feature = "host")]
62pub const DEFAULT_SUBNET_CATALOG_SOURCE_ENDPOINT: &str = "https://icp-api.io";
63#[cfg(feature = "host")]
64pub(crate) const SUBNET_CATALOG_LIST_REPORT_SCHEMA_VERSION: u32 = 1;
65#[cfg(feature = "host")]
66pub(crate) const SUBNET_CATALOG_INFO_REPORT_SCHEMA_VERSION: u32 = 1;
67#[cfg(feature = "host")]
68pub(crate) const SUBNET_CATALOG_REFRESH_REPORT_SCHEMA_VERSION: u32 = 1;
69
70#[cfg(test)]
71mod core_tests;
72#[cfg(all(test, feature = "host"))]
73mod tests;