InterfaceSpec

InterfaceSpec - The IC Management Canister Interface Spec

type CanisterSettings = { controllers : ?[Principal]; compute_allocation : ?Nat; memory_allocation : ?Nat; freezing_threshold : ?Nat }

type DefiniteCanisterSettings = { controllers : [Principal]; compute_allocation : Nat; memory_allocation : Nat; freezing_threshold : Nat }

type IC = actor { create_canister : shared { settings : ?CanisterSettings } -> async { canister_id : Principal }; update_settings : shared { canister_id : Principal; settings : CanisterSettings } -> async (); install_code : shared { mode : {#install; #reinstall; #upgrade}; canister_id : Principal; wasm_module : Blob; arg : Blob } -> async (); uninstall_code : shared { canister_id : Principal } -> async (); start_canister : shared { canister_id : Principal } -> async (); stop_canister : shared { canister_id : Principal } -> async (); canister_status : shared { canister_id : Principal } -> async { status : {#running; #stopping; #stopped}; settings : DefiniteCanisterSettings; module_hash : ?Blob; memory_size : Nat; freezing_threshold : Nat; cycles : Nat }; delete_canister : shared { canister_id : Principal } -> async (); deposit_cycles : shared { canister_id : Principal } -> async (); raw_rand : shared () -> async Blob; provisional_create_canister_with_cycles : shared { amount : ?Nat; settings : ?CanisterSettings } -> async { canister_id : Principal }; provisional_top_up_canister : shared { canister_id : Principal; amount : Nat } -> async () }