use super::types::{CanisterInfoArgs, CanisterInfoResult, CanisterStatusArgs, CanisterStatusResult};
use crate::identity::CanisterId;
pub async fn canister_status(canister_id: CanisterId) -> super::types::CanisterCallResult<CanisterStatusResult> {
let call_result = ic_cdk_management_canister::canister_status(&CanisterStatusArgs { canister_id }).await;
call_result.map_err(|err| crate::canister::types::CanisterCallError::new(canister_id, "ic#canister_status", err))
}
pub async fn canister_info(
canister_id: CanisterId,
num_requested_changes: Option<u64>,
) -> super::types::CanisterCallResult<CanisterInfoResult> {
let call_result = ic_cdk_management_canister::canister_info(&CanisterInfoArgs {
canister_id,
num_requested_changes,
})
.await;
call_result.map_err(|err| crate::canister::types::CanisterCallError::new(canister_id, "ic#canister_info", err))
}
pub async fn call_canister_status(canister_id: CanisterId) -> super::types::CanisterCallResult<CanisterStatusResult> {
let call_result = ic_cdk::call::Call::unbounded_wait(canister_id, "canister_status").await;
super::fetch_and_wrap_call_result(canister_id, "canister_status", call_result)
}
pub async fn call_canister_info(
canister_id: CanisterId,
num_requested_changes: Option<u64>,
) -> super::types::CanisterCallResult<CanisterInfoResult> {
let call_result = ic_cdk::call::Call::unbounded_wait(canister_id, "canister_info")
.with_arg(num_requested_changes)
.await;
super::fetch_and_wrap_call_result(canister_id, "canister_info", call_result)
}