dfx-core 0.3.0

dfx core library
Documentation
use crate::{
    config::model::network_descriptor::NetworkDescriptor, error::root_key::FetchRootKeyError,
};
use ic_agent::Agent;

#[deprecated(note = "use fetch_root_key_when_non_mainnet() instead")]
pub async fn fetch_root_key_when_local(
    agent: &Agent,
    network: &NetworkDescriptor,
) -> Result<(), FetchRootKeyError> {
    fetch_root_key_when_non_mainnet(agent, network).await
}

pub async fn fetch_root_key_when_non_mainnet(
    agent: &Agent,
    network: &NetworkDescriptor,
) -> Result<(), FetchRootKeyError> {
    if !network.is_ic {
        agent
            .fetch_root_key()
            .await
            .map_err(FetchRootKeyError::AgentError)?;
    }
    Ok(())
}

#[deprecated(note = "use fetch_root_key_when_non_mainnet_or_error() instead")]
pub async fn fetch_root_key_when_local_or_error(
    agent: &Agent,
    network: &NetworkDescriptor,
) -> Result<(), FetchRootKeyError> {
    fetch_root_key_when_non_mainnet_or_error(agent, network).await
}

pub async fn fetch_root_key_when_non_mainnet_or_error(
    agent: &Agent,
    network: &NetworkDescriptor,
) -> Result<(), FetchRootKeyError> {
    if !network.is_ic {
        agent
            .fetch_root_key()
            .await
            .map_err(FetchRootKeyError::AgentError)
    } else {
        Err(FetchRootKeyError::MustNotFetchRootKeyOnMainnet)
    }
}