@silvana-one/coordination
Version:
Silvana Coordination Client
64 lines (63 loc) • 1.75 kB
TypeScript
import { Transaction } from "@mysten/sui/transactions";
import { Job } from "./job.js";
export interface AppMethod {
description?: string;
developer: string;
agent: string;
agentMethod: string;
}
export interface AppInstance {
id: string;
silvanaAppName: string;
description?: string;
metadata: Record<string, string>;
kv: Record<string, string>;
methods: Record<string, AppMethod>;
admin: string;
sequence: number;
blockNumber: number;
previousBlockTimestamp: number;
previousBlockLastSequence: number;
lastProvedBlockNumber: number;
lastSettledBlockNumber: number;
lastSettledSequence: number;
lastPurgedSequence: number;
isPaused: boolean;
minTimeBetweenBlocks: number;
jobsId: string;
createdAt: number;
updatedAt: number;
}
export interface CreateAppJobParams {
appInstance: string;
description?: string;
method: string;
sequences?: number[];
data: Uint8Array;
}
export declare class AppInstanceManager {
private readonly registry;
constructor(params: {
registry: string;
});
createAppJob(params: CreateAppJobParams): Transaction;
startAppJob(params: {
appInstance: string;
jobId: number;
}): Transaction;
completeAppJob(params: {
appInstance: string;
jobId: number;
}): Transaction;
failAppJob(params: {
appInstance: string;
jobId: number;
error: string;
}): Transaction;
getAppInstance(appInstanceId: string): Promise<AppInstance | undefined>;
getAppJob(params: {
appInstance: string;
jobId: number;
}): Promise<Job | undefined>;
getAppPendingJobs(appInstance: string): Promise<number[]>;
}