wowok
Version:
Wowok Blockchain TypeScript API
96 lines (95 loc) • 4.99 kB
TypeScript
import type { Transaction } from "../../transactions/index.js";
import type { ProgressObject, ProgressAddress, PassportObject, PermissionObject, MachineObject, RepositoryObject, CallEnv } from "../common.js";
import type { ManyAccountOrMark_Address } from "../local/index.js";
import type { ObjectMachine, MachineForward } from "../query/object.js";
import type { CallResult } from "./base.js";
import { CallBase } from "./base.js";
import type { GuardSubmissionToFill } from "./guard.js";
export type ProgressNext = {
next_node_name: string;
forward: string;
};
export interface CallProgress_Data {
object: string;
task?: string;
repository?: {
op: "add" | "set";
objects: string[];
} | {
op: "remove";
objects: string[];
} | {
op: "clear";
};
progress_namedOperator?: {
op: "add" | "set" | "remove";
name: string;
operators: ManyAccountOrMark_Address;
};
operate?: {
operation: ProgressNext;
hold: boolean;
adminUnhold?: boolean;
message?: string;
};
}
export declare class CallProgress extends CallBase {
data: CallProgress_Data;
object_address: string | undefined;
machine: ObjectMachine | undefined;
constructor(data: CallProgress_Data);
protected prepare(env: CallEnv): Promise<void>;
call(env: CallEnv): Promise<CallResult>;
operate(env: CallEnv, tx: Transaction, passport?: PassportObject, submission?: GuardSubmissionToFill[]): Promise<void>;
}
export declare function progressFn(name: string): string;
export declare const MAX_CONTEXT_REPOSITORY_COUNT = 30;
export declare const MAX_NAMED_OPERATOR_COUNT = 60;
export declare const MAX_NAMED_OPERATOR_ADDRESS_COUNT = 80;
export interface Holder {
forward: string;
who?: string;
retained_submission: any[];
msg: string;
accomplished: boolean;
time: number | bigint | string;
}
export interface Session {
next_node: string;
forwards: Holder[];
weights: number;
threshold: number;
}
export interface History {
node: string;
next_node: string;
session: Session[];
time: number | bigint | string;
}
export interface NamedOperator {
name: string;
operators: string[];
}
export interface ProgressEvent {
object: string;
machine: string;
task?: string;
node: string;
}
export declare function newProgress(tx: Transaction, machine: MachineObject, permission: PermissionObject, task: string | null, passport?: PassportObject): ProgressObject;
export declare function create(tx: Transaction, progress: ProgressObject): ProgressAddress;
export declare function namedOperator_add(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, name: string, operators: string[], passport?: PassportObject): void;
export declare function namedOperator_remove(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, name: string, operators: string[], passport?: PassportObject): void;
export declare function namedOperator_set(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, name: string, operators: string[], passport?: PassportObject): void;
export declare function task_set(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, task: string, passport?: PassportObject): void;
export declare function context_repository_add(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, repository: RepositoryObject, passport?: PassportObject): void;
export declare function context_repository_remove(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, repositories: string[], passport?: PassportObject): void;
export declare function context_repository_clear(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, passport?: PassportObject): void;
export declare function hold(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, next_node: string, forward: string, message: string, bHold: boolean, order?: string, passport?: PassportObject): void;
export declare function adminUnhold(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, next_node: string, forward: string, message: string, passport?: PassportObject): void;
export declare function accomplish(tx: Transaction, progress: ProgressObject, machine: MachineObject, permission: PermissionObject, next_node: string, forward: string, message: string, order?: string, passport?: PassportObject): void;
export interface MachineNodeForwardResult {
forward?: MachineForward;
error?: string;
}
export declare function getMachineNodeForward(env: CallEnv, machine: string, node: string, next_node: string, forward: string): Promise<MachineNodeForwardResult>;