js-databox
Version:
databox & metabox
53 lines (52 loc) • 2.6 kB
TypeScript
import { HttpAgent } from "@dfinity/agent";
import { FileExt, FileLocation, Result_1, Result_10, Result_2, Result_3, Result_7, Result_9 } from "./did/databox_type";
import { Principal } from "@dfinity/principal";
import { changePlainFilePermissionArg, shareFileArg } from "../types";
export declare class DataBox {
private readonly agent;
private readonly DataBoxActor;
constructor(canisterId: string, agent: HttpAgent);
boxState(): Promise<Result_10>;
cycleBalance(): Promise<Result_7>;
put_plain_files(files: File[], is_private: boolean, key_arr?: string[], fileTypes?: string[]): Promise<string[]>;
static FileRead(file: File | Blob): Promise<Uint8Array[]>;
static encryptFileData(data: Uint8Array, publicKey: string): Promise<{
encData: Uint8Array;
encryptedAesKey: string;
}>;
put_encrypt_files(files: File[], is_private: boolean, publicKey: string, key_arr?: string[]): Promise<string[]>;
static getFile(decodeArr: any, length: number): Promise<Uint8Array>;
private getData;
get_plain_file(file_key: string): Promise<Blob>;
get_encrypt_file(file_key: string, privatekey: string): Promise<Blob>;
delete_box_plain_file(file_key: string): Promise<Result_1>;
delete_box_encrypted_file(file_key: string): Promise<Result_1>;
clear_box(): Promise<Result_1>;
get_file_info(file_key: string): Promise<Result_2>;
getVersion(): Promise<bigint>;
get_all_files_info(): Promise<Result_9>;
transferOwner(to: Principal): Promise<Result_1>;
get_owner(): Promise<Principal>;
setPlainFilePubOrPri(changePlainFilePermissionArg: changePlainFilePermissionArg): Promise<Result_1>;
addPrivatePlainShare(shareFileArg: shareFileArg): Promise<Result_1>;
removePrivatePlainShare(shareFileArg: shareFileArg): Promise<Result_1>;
getShareFiles(): Promise<Result_3>;
is_need_upgrade(): Promise<boolean>;
is_enough_to_upload(total_size: number): Promise<boolean>;
/**
*
* @param {FileLocation} fileLocation 文件位置
* @return {Result_7} 数据个数
*/
getFileNums(fileLocation: FileLocation): Promise<Result_7>;
/**
* 分页get数据
*
* @param {FileLocation} fileLocation 文件位置
* @param {number} onePageFileNums 每一页的数据大小 不能超过5000
* @param {number} pageIndex 取哪一页
* @example
* getPageFiles({Plain:null},2,0) 取明文数据,每一页有两个数据,取第一页
*/
getPageFiles(fileLocation: FileLocation, onePageFileNums: number, pageIndex: number): Promise<FileExt[]>;
}