diff --git a/src/declarations/satellite/satellite.did.d.ts b/src/declarations/satellite/satellite.did.d.ts index 977d36051..bc58541f6 100644 --- a/src/declarations/satellite/satellite.did.d.ts +++ b/src/declarations/satellite/satellite.did.d.ts @@ -117,6 +117,10 @@ export interface ListResults_1 { items_length: bigint; } export type Memory = { Heap: null } | { Stable: null }; +export interface MemorySize { + stable: bigint; + heap: bigint; +} export type Permission = | { Controllers: null } | { Private: null } @@ -218,6 +222,7 @@ export interface _SERVICE { list_custom_domains: ActorMethod<[], Array<[string, CustomDomain]>>; list_docs: ActorMethod<[string, ListParams], ListResults_1>; list_rules: ActorMethod<[RulesType], Array<[string, Rule]>>; + memory_size: ActorMethod<[], MemorySize>; set_config: ActorMethod<[Config], undefined>; set_controllers: ActorMethod<[SetControllersArgs], Array<[Principal, Controller]>>; set_custom_domain: ActorMethod<[string, [] | [string]], undefined>; diff --git a/src/declarations/satellite/satellite.factory.did.js b/src/declarations/satellite/satellite.factory.did.js index 7b06593c4..eea419bc5 100644 --- a/src/declarations/satellite/satellite.factory.did.js +++ b/src/declarations/satellite/satellite.factory.did.js @@ -164,6 +164,7 @@ export const idlFactory = ({ IDL }) => { mutable_permissions: IDL.Opt(IDL.Bool), write: Permission }); + const MemorySize = IDL.Record({ stable: IDL.Nat64, heap: IDL.Nat64 }); const SetController = IDL.Record({ metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)), scope: ControllerScope, @@ -227,6 +228,7 @@ export const idlFactory = ({ IDL }) => { list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']), list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']), list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']), + memory_size: IDL.Func([], [MemorySize], ['query']), set_config: IDL.Func([Config], [], []), set_controllers: IDL.Func( [SetControllersArgs], diff --git a/src/declarations/satellite/satellite.factory.did.mjs b/src/declarations/satellite/satellite.factory.did.mjs index 7b06593c4..eea419bc5 100644 --- a/src/declarations/satellite/satellite.factory.did.mjs +++ b/src/declarations/satellite/satellite.factory.did.mjs @@ -164,6 +164,7 @@ export const idlFactory = ({ IDL }) => { mutable_permissions: IDL.Opt(IDL.Bool), write: Permission }); + const MemorySize = IDL.Record({ stable: IDL.Nat64, heap: IDL.Nat64 }); const SetController = IDL.Record({ metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)), scope: ControllerScope, @@ -227,6 +228,7 @@ export const idlFactory = ({ IDL }) => { list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']), list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']), list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']), + memory_size: IDL.Func([], [MemorySize], ['query']), set_config: IDL.Func([Config], [], []), set_controllers: IDL.Func( [SetControllersArgs], diff --git a/src/satellite/satellite.did b/src/satellite/satellite.did index eae9ebdb5..d53790205 100644 --- a/src/satellite/satellite.did +++ b/src/satellite/satellite.did @@ -94,6 +94,7 @@ type ListResults_1 = record { items_length : nat64; }; type Memory = variant { Heap; Stable }; +type MemorySize = record { stable : nat64; heap : nat64 }; type Permission = variant { Controllers; Private; Public; Managed }; type Rule = record { memory : opt Memory; @@ -189,6 +190,7 @@ service : () -> { list_custom_domains : () -> (vec record { text; CustomDomain }) query; list_docs : (text, ListParams) -> (ListResults_1) query; list_rules : (RulesType) -> (vec record { text; Rule }) query; + memory_size : () -> (MemorySize) query; set_config : (Config) -> (); set_controllers : (SetControllersArgs) -> ( vec record { principal; Controller }, diff --git a/src/satellite/src/lib.rs b/src/satellite/src/lib.rs index 8b9084bbd..4f5793943 100644 --- a/src/satellite/src/lib.rs +++ b/src/satellite/src/lib.rs @@ -51,7 +51,7 @@ use controllers::store::{ delete_controllers as delete_controllers_store, get_controllers, set_controllers as set_controllers_store, }; -use core::arch::wasm32::memory_size; +use core::arch::wasm32::memory_size as wasm_memory_size; use ic_cdk::api::call::arg_data; use ic_cdk::api::stable::{stable_size, WASM_PAGE_SIZE_IN_BYTES}; use ic_cdk::api::{caller, trap}; @@ -512,9 +512,9 @@ fn version() -> String { } #[query(guard = "caller_is_admin_controller")] -fn memory() -> MemorySize { +fn memory_size() -> MemorySize { MemorySize { - heap: memory_size(0) * WASM_PAGE_SIZE_IN_BYTES, + heap: wasm_memory_size(0) * WASM_PAGE_SIZE_IN_BYTES, stable: stable_size() as usize * WASM_PAGE_SIZE_IN_BYTES, } }