ic_cdk/api/management_canister/
provisional.rs1use crate::api::call::{call, CallResult};
4use candid::{CandidType, Nat, Principal};
5use serde::{Deserialize, Serialize};
6
7pub use super::main::{CanisterId, CanisterIdRecord, CanisterSettings};
8
9#[derive(
11 CandidType, Serialize, Deserialize, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Default,
12)]
13pub struct ProvisionalCreateCanisterWithCyclesArgument {
14 pub amount: Option<Nat>,
16 pub settings: Option<CanisterSettings>,
18}
19
20#[derive(
22 CandidType, Serialize, Deserialize, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone,
23)]
24pub struct ProvisionalTopUpCanisterArgument {
25 pub canister_id: CanisterId,
27 pub amount: Nat,
29}
30
31pub async fn provisional_create_canister_with_cycles(
37 arg: ProvisionalCreateCanisterWithCyclesArgument,
38) -> CallResult<(CanisterIdRecord,)> {
39 call(
40 Principal::management_canister(),
41 "provisional_create_canister_with_cycles",
42 (arg,),
43 )
44 .await
45}
46
47pub async fn provisional_top_up_canister(arg: ProvisionalTopUpCanisterArgument) -> CallResult<()> {
53 call(
54 Principal::management_canister(),
55 "provisional_top_up_canister",
56 (arg,),
57 )
58 .await
59}