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