wowok
Version:
Wowok Blockchain TypeScript API
203 lines (202 loc) • 8.91 kB
TypeScript
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[];