UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

98 lines (97 loc) 5.14 kB
import type { Transaction, TransactionObjectArgument } from "../../transactions/index.js"; import type { RepositoryObject, TxString, ObjectResult, PassportObject, PermissionObject, RewardObject, CallEnv, WithPermissionObject, SupportedValue, RepositoryAddress } from "../common.js"; import type { AccountOrMark_Address } from "../local/index.js"; import type { CallResult } from "./base.js"; import { CallBase } from "./base.js"; import type { GuardSubmissionToFill } from "./guard.js"; import type { PolicyRule } from "../query/object.js"; import type { ReceivedObjectsOrRecently } from "../query/received.js"; export declare const MAX_POLICY_DESCRIPTION_LEN = 500; export declare const MAX_POLICY_COUNT = 50; export declare const MAX_POLICY_GUARD_COUNT = 10; export declare const MAX_DATA_SIZE = 40960; export declare const MAX_ID_COUNT_ONCE = 100; export declare const MAX_REWARD_COUNT = 20; export interface KeyData { id: AccountOrMark_Address | number | bigint | string; data: SupportedValue; } export interface RepDataItem { data: KeyData[]; write_guard?: string; } export interface SignerOrClockBase { name: string; write_guard?: string; } export interface SignerOrClock extends SignerOrClockBase { data: SupportedValue; } export interface DataRemoveItem { id: (AccountOrMark_Address | number | bigint | string)[]; write_guard?: string; } export type RemoveParam = { write_guard?: string; } | { items: DataRemoveItem[]; }; export interface CallRepository_Data { object: WithPermissionObject; description?: string; policies?: { op: "add" | "set"; policy: PolicyRule[]; } | { op: "remove"; policy: string[]; } | { op: "clear"; }; data_add?: SignerOrClock | { name: string; items: RepDataItem[]; }; data_remove?: SignerOrClockBase | { name: string; items: DataRemoveItem[]; }; rewards?: { op: "add" | "set"; objects: string[]; } | { op: "remove"; objects: string[]; } | { op: "clear"; }; owner_receive?: ReceivedObjectsOrRecently; um?: string | null; } export declare class CallRepository extends CallBase { data: CallRepository_Data; object_address: string | undefined; permission_address: string | undefined; new_permission_description: string | undefined; constructor(data: CallRepository_Data); protected prepare(env: CallEnv): Promise<void>; call(env: CallEnv): Promise<CallResult>; operate(env: CallEnv, tx: Transaction, passport?: PassportObject, submission?: GuardSubmissionToFill[]): Promise<void>; } export type RepositoryPolicyGuardObject = TransactionObjectArgument; export type RepositoryPolicyRuleObject = TransactionObjectArgument; export declare function create(tx: Transaction, repository: RepositoryObject): RepositoryAddress; export declare function policy(tx: Transaction, param: PolicyRule): RepositoryPolicyRuleObject; export declare function data_id_from(tx: Transaction, repository: RepositoryObject, policy: PolicyRule, data: SignerOrClock, passport?: PassportObject): Promise<void>; export declare function um_set(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, um: string | null, passport?: PassportObject): void; export declare function data(tx: Transaction, repository: RepositoryObject, policy: PolicyRule, data: RepDataItem[], passport?: PassportObject): Promise<void>; export declare function newRepository(tx: Transaction, permission: PermissionObject, description: TxString, passport?: PassportObject): ObjectResult; export declare function description_set(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, description: TxString, passport?: PassportObject): void; export declare function policy_add(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, policies: PolicyRule[], passport?: PassportObject): void; export declare function policy_set(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, policies: PolicyRule[], passport?: PassportObject): void; export declare function policy_remove(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, policies: string[], passport?: PassportObject): void; export declare function policy_clear(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, passport?: PassportObject): void; export declare function reward_add(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, reward: RewardObject, reward_type: string, passport?: PassportObject): void; export declare function reward_remove(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, rewards: string[], passport?: PassportObject): void; export declare function reward_clear(tx: Transaction, repository: RepositoryObject, permission: PermissionObject, passport?: PassportObject): void; export declare function data_remove(tx: Transaction, repository: RepositoryObject, policy: PolicyRule, param: RemoveParam, passport?: PassportObject): Promise<void>;