ic-query 0.12.1

Internet Computer query library for NNS, SNS, ICRC, and related public network metadata
Documentation
use super::relation_inventory::fetch_mainnet_registry_relation_snapshot;
use crate::ic_registry::{
    MainnetDataCenterList, MainnetNodeList, MainnetNodeOperatorList, MainnetRegistryFetchRequest,
    RegistryFetchError,
    projection::{
        data_center_list_from_inventory, node_list_from_inventory,
        node_operator_list_from_inventory,
    },
    relations::RegistryRelationInventoryScope,
};

pub(in crate::ic_registry) async fn fetch_mainnet_node_operator_list_async(
    request: &MainnetRegistryFetchRequest,
) -> Result<MainnetNodeOperatorList, RegistryFetchError> {
    let snapshot = fetch_mainnet_registry_relation_snapshot(
        request,
        RegistryRelationInventoryScope::BaseRelations,
    )
    .await?;
    node_operator_list_from_inventory(request, snapshot.inventory, snapshot.registry_version)
}

pub(in crate::ic_registry) async fn fetch_mainnet_node_list_async(
    request: &MainnetRegistryFetchRequest,
) -> Result<MainnetNodeList, RegistryFetchError> {
    let snapshot = fetch_mainnet_registry_relation_snapshot(
        request,
        RegistryRelationInventoryScope::BaseRelations,
    )
    .await?;
    node_list_from_inventory(request, snapshot.inventory, snapshot.registry_version)
}

pub(in crate::ic_registry) async fn fetch_mainnet_data_center_list_async(
    request: &MainnetRegistryFetchRequest,
) -> Result<MainnetDataCenterList, RegistryFetchError> {
    let snapshot = fetch_mainnet_registry_relation_snapshot(
        request,
        RegistryRelationInventoryScope::WithDataCenters,
    )
    .await?;
    data_center_list_from_inventory(request, snapshot.inventory, snapshot.registry_version)
}