use super::types::{ClearChunkStoreArgs, StoredChunksArgs, UploadChunkArgs};
use crate::identity::CanisterId;
pub use super::types::ChunkHash;
pub const MAX_CHUNK_SIZE_IN_BYTES: usize = 1024 * 1024;
pub type CanisterCodeChunk = Vec<u8>;
pub async fn upload_chunk(
canister_id: CanisterId,
chunk: CanisterCodeChunk,
) -> super::types::CanisterCallResult<ChunkHash> {
ic_cdk_management_canister::upload_chunk(&UploadChunkArgs { canister_id, chunk })
.await
.map_err(|err| super::types::CanisterCallError::new(canister_id, "ic#upload_chunk", err))
}
pub async fn clear_chunk_store(canister_id: CanisterId) -> super::types::CanisterCallResult<()> {
let call_result = ic_cdk_management_canister::clear_chunk_store(&ClearChunkStoreArgs { canister_id }).await;
super::wrap_call_result(canister_id, "ic#clear_chunk_store", call_result)
}
pub async fn stored_chunks(canister_id: CanisterId) -> super::types::CanisterCallResult<Vec<ChunkHash>> {
ic_cdk_management_canister::stored_chunks(&StoredChunksArgs { canister_id })
.await
.map_err(|err| super::types::CanisterCallError::new(canister_id, "ic#stored_chunks", err))
}