use crate::identity::CanisterId;
pub async fn canister_status(
canister_id: CanisterId,
) -> super::types::CanisterCallResult<ic_cdk::management_canister::CanisterStatusResult> {
let call_result = ic_cdk::management_canister::canister_status(
&ic_cdk::management_canister::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<ic_cdk::management_canister::CanisterInfoResult> {
let call_result = ic_cdk::management_canister::canister_info(
&ic_cdk::management_canister::CanisterInfoArgs {
canister_id,
num_requested_changes,
},
)
.await;
call_result.map_err(|err| {
crate::canister::types::CanisterCallError::new(canister_id, "ic#canister_status", err)
})
}
pub async fn call_canister_status(
canister_id: CanisterId,
) -> super::types::CanisterCallResult<ic_cdk::management_canister::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<ic_cdk::management_canister::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)
}