UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

203 lines (202 loc) 8.91 kB
import type { Transaction } from "../../transactions/index.js"; import type { PermissionAddress, PermissionObject, PaymentObject, TxString, TxAddress, TxAddressVec, TxNumberVec, ReceivedObject, PassportObject, NormalObject, CallEnv } from "../common.js"; import type { TxNumber } from "../common.js"; import { CallBase } from "./base.js"; import type { CallResult } from "./base.js"; import { ObjectType } from "../query/object.js"; import type { ObjectPermission } from "../query/object.js"; import type { AccountOrMark_Address, ManyAccountOrMark_Address } from "../local/index.js"; import type { GuardSubmissionToFill } from "./guard.js"; import type { ReceivedObjectsOrRecently } from "../query/received.js"; export declare enum BuiltinPermissionIndex { REPOSITORY_NEW = 100, REPOSITORY_DESCRIPTION = 101, REPOSITORY_POLICY = 102, REPOSITORY_REWARD = 103, REPOSITORY_OWNER_RECEIVE = 104, REPOSITORY_UM = 105, REWARD_NEW = 150, REWARD_DESCRIPTION = 151, REWARD_GUARD = 152, REWARD_COIN_ADD = 153, REWARD_RECEIVE = 154, REWARD_GUARD_EXPIRATION_TIME_ADD = 155, REWARD_OWNER_RECEIVE = 156, REWARD_UM = 157, MACHINE_NEW = 200, MACHINE_DESCRIPTION = 201, MACHINE_CONSENSUS_REPOSITORIES = 203, MACHINE_PAUSE = 204, MACHINE_PUBLISH = 205, MACHINE_NODE = 206, MACHINE_OWNER_RECEIVE = 207, MACHINE_UM = 208, PROGRESS_NEW = 220, PROGRESS_NAMED_OPERATOR = 221, PROGRESS_TASK = 222, PROGRESS_CONTEXT_REPOSITORY = 223, PROGRESS_UNHOLD = 224, PROGRESS_OWNER_RECEIVE = 225, TREASURY_NEW = 250, TREASURY_DESCRIPTION = 251, TREASURY_DEPOSIT = 252, TREASURY_RECEIVE = 253, TREASURY_WITHDRAW = 254, TREASURY_EXTERNAL_DEPOSIT = 255, TREASURY_EXTERNAL_WITHDRAW = 256, TREASURY_EXTERNAL_DEPOSIT_GUARD = 257, TREASURY_EXTERNAL_WITHDRAW_GUARD = 258, TREASURY_OWNER_RECEIVE = 259, TREASURY_UM = 260, SERVICE_NEW = 300, SERVICE_DESCRIPTION = 301, SERVICE_LOCATION = 303, SERVICE_REPOSITORY = 304, SERVICE_SALES = 305, SERVICE_MACHINE = 306, SERVICE_BUY_GUARD = 307, SERVICE_ARBITRATION = 308, SERVICE_CUSTOMER_INFO_REQUIRED = 309, SERVICE_PAUSE = 310, SERVICE_PUBLISH = 311, SERVICE_DISCOUNT = 312, SERVICE_ORDER_ALLOCATOR = 313, SERVICE_COMPENSATION_FUND_WITHDRAW = 314, SERVICE_COMPENSATION_FUND_DEPOSIT = 315, SERVICE_COMPENSATION_FUND_RECEIVE = 316, SERVICE_COMPENSATION_LOCKED_TIME_ADD = 317, SERVICE_REWARD = 318, SERVICE_OWNER_RECEIVE = 319, SERVICE_UM = 320, ARBITRATION_NEW = 350, ARBITRATION_DESCRIPTION = 351, ARBITRATION_LOCATION = 353, ARBITRATION_VOTING_GUARD = 354, ARBITRATION_USAGE_GUARD = 355, ARBITRATION_PAUSE = 356, ARBITRATION_FEE = 357, ARBITRATION_VOTE = 358, ARBITRATION_ARBITRATION = 359, ARBITRATION_FEEDBACK = 360, ARBITRATION_CONFIRM = 361, ARBITRATION_VOTING_DEADLINE_CHANGE = 362, ARBITRATION_RESET = 363, ARBITRATION_ARB_WITHDRAW = 364, ARBITRATION_FEES_ALLOC = 365, ARBITRATION_FEES_TRANSFER = 366, ARBITRATION_OWNER_RECEIVE = 367, ARBITRATION_UM = 368, DEMAND_NEW = 400, DEMAND_DESCRIPTION = 401, DEMAND_LOCATION = 402, DEMAND_GUARD = 404, DEMAND_REWARD = 405, DEMAND_FEEDBACK = 406, DEMAND_OWNER_RECEIVE = 407, DEMAND_UM = 408, MESSNGER_NEW = 450, MESSNGER_DESCRIPTION = 451, MESSNGER_LOCATION = 452, MESSNGER_IM = 453, MESSNGER_OWNER_RECEIVE = 454 } export type PermissionIndexType = BuiltinPermissionIndex | number; export interface PermissionInfoType { index: PermissionIndexType; name: string; description: string; object_type: ObjectType; } export declare const PermissionInfo: PermissionInfoType[]; export interface Permission_Index_Entity { address: AccountOrMark_Address; guard?: string; } export interface Permission_Index { index: PermissionIndexType; entities: Permission_Index_Entity[]; } export interface CallPermission_Data { object?: NormalObject; description?: string; remark?: { op: "set"; index: PermissionIndexType; remark: string; } | { op: "remove"; index: PermissionIndexType; } | { op: "clear"; }; table?: { op: "add perm by index" | "set perm by index" | "remove perm by index"; index: PermissionIndexType; entity: ManyAccountOrMark_Address; } | { op: "add perm by entity" | "remove perm by entity" | "set perm by entity"; entity: AccountOrMark_Address; index: PermissionIndexType[]; }; entity?: { op: "swap" | "replace" | "copy"; entity1: AccountOrMark_Address; entity2: AccountOrMark_Address; } | { op: "del"; entity: AccountOrMark_Address; }; admin?: { op: "add" | "remove" | "set"; addresses: ManyAccountOrMark_Address; }; apply?: string[]; builder?: AccountOrMark_Address; owner_receive?: ReceivedObjectsOrRecently; um?: string | null; } export declare class CallPermission extends CallBase { data: CallPermission_Data; object_address: string | undefined; object_data: ObjectPermission | undefined; constructor(data: CallPermission_Data); protected prepare(env: CallEnv): Promise<void>; call(env: CallEnv): Promise<CallResult>; protected operate(env: CallEnv, tx: Transaction, _passport?: PassportObject, _submission?: GuardSubmissionToFill[]): Promise<void>; } export declare function permissionFn(name: string): string; export declare const MAX_ENTITY_COUNT = 1000; export declare const MAX_PERM_FOR_ENTITY = 1000; export declare const MAX_ADMIN_COUNT = 500; export declare const USER_DEFINED_PERM_INDEX_START = 1000; export declare function isBizPermIndex(permIndex: number): boolean; export declare function newPermission(tx: Transaction, description: TxString): PermissionObject; export declare function create(tx: Transaction, permission: PermissionObject): PermissionAddress; export declare function descriptionSet(tx: Transaction, permission: PermissionObject, description: TxString): void; export declare function remarkSet(tx: Transaction, permission: PermissionObject, index: TxNumber, remark: TxString): void; export declare function remarkRemove(tx: Transaction, permission: PermissionObject, index: TxNumber): void; export declare function remarkClear(tx: Transaction, permission: PermissionObject): void; export declare function permAdd(tx: Transaction, permission: PermissionObject, permIndex: TxNumber, entities: TxAddressVec): void; export declare function permRemove(tx: Transaction, permission: PermissionObject, permIndex: TxNumber, entities: TxAddressVec): void; export declare function permSet(tx: Transaction, permission: PermissionObject, permIndex: TxNumber, userOrGuard: TxAddressVec): void; export declare function entityAdd(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, perm: TxNumberVec): void; export declare function entityRemove(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, perm: TxNumberVec): void; export declare function entitySet(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, perm: TxNumberVec): void; export declare function entitySwap(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, otherUserOrGuard: TxAddress): void; export declare function entityReplace(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, newUserOrGuard: TxAddress): void; export declare function entityDel(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress): void; export declare function entityCopy(tx: Transaction, permission: PermissionObject, userOrGuard: TxAddress, newUserOrGuard: TxAddress): void; export declare function adminAdd(tx: Transaction, permission: PermissionObject, admin: TxAddressVec): void; export declare function adminRemove(tx: Transaction, permission: PermissionObject, admin: TxAddressVec): void; export declare function adminSet(tx: Transaction, permission: PermissionObject, admin: TxAddressVec): void; export declare function transferPermission(tx: Transaction, permission: PermissionObject, owner: TxAddress): void; export declare function um_set(tx: Transaction, permission: PermissionObject, um: string | null): void; export declare function ownerReceiveObject(tx: Transaction, permission: PermissionObject, received: ReceivedObject, type: string): void; export declare function ownerReceive(tx: Transaction, permission: PermissionObject, received: ReceivedObject, payment: PaymentObject, type: string): void; export interface PermissionFilter { objectType?: ObjectType; name?: string; index?: PermissionIndexType; description?: string; } export declare function query_permissions(filter?: PermissionFilter): PermissionInfoType[];