use super::query_no_arg;
use crate::icp::IcpCli;
use candid::Principal;
use canic_core::{
dto::fleet_registry::{FleetRegistry, FleetRegistryManifest, FleetRegistryVersion},
protocol,
};
pub(in crate::install_root) struct LiveRegistryEvidence {
pub(in crate::install_root) registry: FleetRegistry,
pub(in crate::install_root) manifest: FleetRegistryManifest,
pub(in crate::install_root) version: FleetRegistryVersion,
}
pub(in crate::install_root) fn query_live_registry(
icp: &IcpCli,
coordinator: Principal,
) -> Result<LiveRegistryEvidence, Box<dyn std::error::Error>> {
Ok(LiveRegistryEvidence {
registry: query_no_arg(icp, coordinator, protocol::CANIC_FLEET_REGISTRY)?,
manifest: query_no_arg(icp, coordinator, protocol::CANIC_FLEET_REGISTRY_MANIFEST)?,
version: query_no_arg(icp, coordinator, protocol::CANIC_FLEET_REGISTRY_VERSION)?,
})
}