@silvana-one/coordination 1.0.24 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node/agent.d.ts +43 -15
- package/dist/node/agent.js +129 -31
- package/dist/node/agent.js.map +1 -1
- package/dist/node/app_instance.d.ts +58 -0
- package/dist/node/app_instance.js +203 -0
- package/dist/node/app_instance.js.map +1 -0
- package/dist/node/build.d.ts +5 -0
- package/dist/node/build.js +21 -0
- package/dist/node/build.js.map +1 -0
- package/dist/node/execute.d.ts +1 -0
- package/dist/node/execute.js +10 -2
- package/dist/node/execute.js.map +1 -1
- package/dist/node/faucet.d.ts +34 -0
- package/dist/node/faucet.js +91 -0
- package/dist/node/faucet.js.map +1 -0
- package/dist/node/index.cjs +1087 -31
- package/dist/node/index.d.ts +9 -0
- package/dist/node/index.js +9 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/ipfs.d.ts +13 -0
- package/dist/node/ipfs.js +88 -0
- package/dist/node/ipfs.js.map +1 -0
- package/dist/node/job.d.ts +57 -0
- package/dist/node/job.js +168 -0
- package/dist/node/job.js.map +1 -0
- package/dist/node/package.d.ts +1 -0
- package/dist/node/package.js +6 -0
- package/dist/node/package.js.map +1 -0
- package/dist/node/public-key.d.ts +24 -0
- package/dist/node/public-key.js +44 -0
- package/dist/node/public-key.js.map +1 -0
- package/dist/node/publish.js.map +1 -1
- package/dist/node/test.d.ts +48 -0
- package/dist/node/test.js +278 -0
- package/dist/node/test.js.map +1 -0
- package/dist/node/upgrade.js +1 -12
- package/dist/node/upgrade.js.map +1 -1
- package/dist/node/walrus.d.ts +12 -0
- package/dist/node/walrus.js +73 -0
- package/dist/node/walrus.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.web.tsbuildinfo +1 -1
- package/dist/web/agent.d.ts +43 -15
- package/dist/web/agent.js +129 -31
- package/dist/web/agent.js.map +1 -1
- package/dist/web/app_instance.d.ts +58 -0
- package/dist/web/app_instance.js +203 -0
- package/dist/web/app_instance.js.map +1 -0
- package/dist/web/build.d.ts +5 -0
- package/dist/web/build.js +21 -0
- package/dist/web/build.js.map +1 -0
- package/dist/web/execute.d.ts +1 -0
- package/dist/web/execute.js +10 -2
- package/dist/web/execute.js.map +1 -1
- package/dist/web/faucet.d.ts +34 -0
- package/dist/web/faucet.js +91 -0
- package/dist/web/faucet.js.map +1 -0
- package/dist/web/index.d.ts +9 -0
- package/dist/web/index.js +9 -0
- package/dist/web/index.js.map +1 -1
- package/dist/web/ipfs.d.ts +13 -0
- package/dist/web/ipfs.js +88 -0
- package/dist/web/ipfs.js.map +1 -0
- package/dist/web/job.d.ts +57 -0
- package/dist/web/job.js +168 -0
- package/dist/web/job.js.map +1 -0
- package/dist/web/package.d.ts +1 -0
- package/dist/web/package.js +6 -0
- package/dist/web/package.js.map +1 -0
- package/dist/web/public-key.d.ts +24 -0
- package/dist/web/public-key.js +44 -0
- package/dist/web/public-key.js.map +1 -0
- package/dist/web/publish.js.map +1 -1
- package/dist/web/test.d.ts +48 -0
- package/dist/web/test.js +278 -0
- package/dist/web/test.js.map +1 -0
- package/dist/web/upgrade.js +1 -12
- package/dist/web/upgrade.js.map +1 -1
- package/dist/web/walrus.d.ts +12 -0
- package/dist/web/walrus.js +73 -0
- package/dist/web/walrus.js.map +1 -0
- package/package.json +7 -4
- package/src/agent.ts +204 -56
- package/src/app_instance.ts +264 -0
- package/src/build.ts +33 -0
- package/src/execute.ts +11 -2
- package/src/faucet.ts +145 -0
- package/src/index.ts +9 -0
- package/src/ipfs.ts +105 -0
- package/src/job.ts +223 -0
- package/src/package.ts +6 -0
- package/src/public-key.ts +66 -0
- package/src/publish.ts +0 -2
- package/src/test.ts +383 -0
- package/src/upgrade.ts +1 -18
- package/src/walrus.ts +96 -0
package/dist/node/index.d.ts
CHANGED
|
@@ -7,3 +7,12 @@ export * from "./upgrade.js";
|
|
|
7
7
|
export * from "./mvr.js";
|
|
8
8
|
export * from "./agent.js";
|
|
9
9
|
export * from "./fetch.js";
|
|
10
|
+
export * from "./build.js";
|
|
11
|
+
export * from "./walrus.js";
|
|
12
|
+
export * from "./faucet.js";
|
|
13
|
+
export * from "./ipfs.js";
|
|
14
|
+
export * from "./public-key.js";
|
|
15
|
+
export * from "./job.js";
|
|
16
|
+
export * from "./app_instance.js";
|
|
17
|
+
export * from "./package.js";
|
|
18
|
+
export * from "./test.js";
|
package/dist/node/index.js
CHANGED
|
@@ -7,4 +7,13 @@ export * from "./upgrade.js";
|
|
|
7
7
|
export * from "./mvr.js";
|
|
8
8
|
export * from "./agent.js";
|
|
9
9
|
export * from "./fetch.js";
|
|
10
|
+
export * from "./build.js";
|
|
11
|
+
export * from "./walrus.js";
|
|
12
|
+
export * from "./faucet.js";
|
|
13
|
+
export * from "./ipfs.js";
|
|
14
|
+
export * from "./public-key.js";
|
|
15
|
+
export * from "./job.js";
|
|
16
|
+
export * from "./app_instance.js";
|
|
17
|
+
export * from "./package.js";
|
|
18
|
+
export * from "./test.js";
|
|
10
19
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function saveToIPFS(params: {
|
|
2
|
+
data: string;
|
|
3
|
+
filename?: string;
|
|
4
|
+
owner?: string;
|
|
5
|
+
days?: number;
|
|
6
|
+
description?: string;
|
|
7
|
+
}): Promise<string | undefined>;
|
|
8
|
+
export declare function readFromIPFS(params: {
|
|
9
|
+
blobId: string;
|
|
10
|
+
}): Promise<string | undefined>;
|
|
11
|
+
export declare function getIPFSUrl(params: {
|
|
12
|
+
blobId: string;
|
|
13
|
+
}): Promise<string>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { PinataSDK } from "pinata";
|
|
2
|
+
// IPFS
|
|
3
|
+
const pinataJwt = process.env.PINATA_JWT;
|
|
4
|
+
const pinataGateway = process.env.PINATA_GATEWAY_URL;
|
|
5
|
+
const pinataGatewayKey = process.env.PINATA_GATEWAY_API_KEY;
|
|
6
|
+
const pinata = new PinataSDK({
|
|
7
|
+
pinataJwt,
|
|
8
|
+
pinataGateway,
|
|
9
|
+
pinataGatewayKey,
|
|
10
|
+
});
|
|
11
|
+
export async function saveToIPFS(params) {
|
|
12
|
+
try {
|
|
13
|
+
if (!pinataJwt || !pinataGateway || !pinataGatewayKey) {
|
|
14
|
+
throw new Error("PINATA_JWT, PINATA_GATEWAY_URL, or PINATA_GATEWAY_API_KEY is not set");
|
|
15
|
+
}
|
|
16
|
+
const { data, filename, owner, days, description } = params;
|
|
17
|
+
if (data === undefined || data === null)
|
|
18
|
+
throw new Error("data is not set");
|
|
19
|
+
if (typeof data !== "string")
|
|
20
|
+
throw new Error("data is not a string");
|
|
21
|
+
if (data.length === 0)
|
|
22
|
+
throw new Error("data is empty");
|
|
23
|
+
const file = new File([data], filename ?? "da", {
|
|
24
|
+
type: "text/plain",
|
|
25
|
+
});
|
|
26
|
+
const expiry = days ? Date.now() + days * 24 * 60 * 60 * 1000 : undefined;
|
|
27
|
+
const keyvalues = {
|
|
28
|
+
app: "dex:devnet",
|
|
29
|
+
owner: owner ?? "",
|
|
30
|
+
expires: expiry ? new Date(expiry).toISOString() : "never",
|
|
31
|
+
expiry: expiry ? expiry.toString() : "0",
|
|
32
|
+
description: description ?? "",
|
|
33
|
+
type: "text/plain",
|
|
34
|
+
mime_type: "text/plain",
|
|
35
|
+
};
|
|
36
|
+
const upload = await pinata.upload.public
|
|
37
|
+
.file(file, {
|
|
38
|
+
metadata: {
|
|
39
|
+
name: filename ?? "da",
|
|
40
|
+
keyvalues,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
.name(filename ?? "da");
|
|
44
|
+
console.log("IPFS: ", upload.cid);
|
|
45
|
+
return upload.cid;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error("Save to IPFS failed", error.message);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export async function readFromIPFS(params) {
|
|
53
|
+
const { blobId } = params;
|
|
54
|
+
if (!blobId) {
|
|
55
|
+
throw new Error("blobId is not set");
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
if (!pinataJwt || !pinataGateway || !pinataGatewayKey) {
|
|
59
|
+
throw new Error("PINATA_JWT, PINATA_GATEWAY_URL, or PINATA_GATEWAY_API_KEY is not set");
|
|
60
|
+
}
|
|
61
|
+
const url = await getIPFSUrl({ blobId });
|
|
62
|
+
const response = await fetch(url);
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
throw new Error("Failed to fetch from IPFS");
|
|
65
|
+
}
|
|
66
|
+
const data = await response.text();
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error("Read from IPFS failed", error);
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export async function getIPFSUrl(params) {
|
|
75
|
+
const { blobId } = params;
|
|
76
|
+
if (!blobId) {
|
|
77
|
+
throw new Error("blobId is not set");
|
|
78
|
+
}
|
|
79
|
+
const gateway = process.env.PINATA_GATEWAY_URL ?? "https://gateway.pinata.cloud/ipfs/";
|
|
80
|
+
const apiToken = process.env.PINATA_GATEWAY_API_KEY;
|
|
81
|
+
const url = "https://" +
|
|
82
|
+
gateway +
|
|
83
|
+
"/ipfs/" +
|
|
84
|
+
blobId +
|
|
85
|
+
(apiToken ? "?pinataGatewayToken=" + apiToken : "");
|
|
86
|
+
return url;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=ipfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../src/ipfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
export type JobStatus = {
|
|
3
|
+
type: "Pending";
|
|
4
|
+
} | {
|
|
5
|
+
type: "Running";
|
|
6
|
+
} | {
|
|
7
|
+
type: "Failed";
|
|
8
|
+
error: string;
|
|
9
|
+
};
|
|
10
|
+
export interface Job {
|
|
11
|
+
id: string;
|
|
12
|
+
jobId: number;
|
|
13
|
+
description?: string;
|
|
14
|
+
developer: string;
|
|
15
|
+
agent: string;
|
|
16
|
+
agentMethod: string;
|
|
17
|
+
app: string;
|
|
18
|
+
appInstance: string;
|
|
19
|
+
appInstanceMethod: string;
|
|
20
|
+
sequences?: number[];
|
|
21
|
+
data: Uint8Array;
|
|
22
|
+
status: JobStatus;
|
|
23
|
+
attempts: number;
|
|
24
|
+
createdAt: number;
|
|
25
|
+
updatedAt: number;
|
|
26
|
+
}
|
|
27
|
+
export interface CreateJobParams {
|
|
28
|
+
jobs: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
developer: string;
|
|
31
|
+
agent: string;
|
|
32
|
+
agentMethod: string;
|
|
33
|
+
app: string;
|
|
34
|
+
appInstance: string;
|
|
35
|
+
appInstanceMethod: string;
|
|
36
|
+
sequences?: number[];
|
|
37
|
+
data: Uint8Array;
|
|
38
|
+
}
|
|
39
|
+
export declare class JobManager {
|
|
40
|
+
private readonly jobs;
|
|
41
|
+
constructor(params: {
|
|
42
|
+
jobs: string;
|
|
43
|
+
});
|
|
44
|
+
static createJobs(maxAttempts?: number): Transaction;
|
|
45
|
+
createJob(params: CreateJobParams): Transaction;
|
|
46
|
+
startJob(jobId: number): Transaction;
|
|
47
|
+
completeJob(jobId: number): Transaction;
|
|
48
|
+
failJob(params: {
|
|
49
|
+
jobId: number;
|
|
50
|
+
error: string;
|
|
51
|
+
}): Transaction;
|
|
52
|
+
updateMaxAttempts(maxAttempts: number): Transaction;
|
|
53
|
+
getJob(jobId: number): Promise<Job | undefined>;
|
|
54
|
+
getPendingJobs(): Promise<number[]>;
|
|
55
|
+
getNextPendingJob(): Promise<number | undefined>;
|
|
56
|
+
getMaxAttempts(): Promise<number>;
|
|
57
|
+
}
|
package/dist/node/job.js
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
|
|
3
|
+
import { silvanaRegistryPackage } from "./package.js";
|
|
4
|
+
import { fetchSuiDynamicField, fetchSuiObject } from "./fetch.js";
|
|
5
|
+
export class JobManager {
|
|
6
|
+
constructor(params) {
|
|
7
|
+
this.jobs = params.jobs;
|
|
8
|
+
}
|
|
9
|
+
static createJobs(maxAttempts) {
|
|
10
|
+
const tx = new Transaction();
|
|
11
|
+
tx.moveCall({
|
|
12
|
+
target: `${silvanaRegistryPackage}::jobs::create_jobs`,
|
|
13
|
+
arguments: [
|
|
14
|
+
tx.pure.option("u8", maxAttempts ?? null),
|
|
15
|
+
],
|
|
16
|
+
});
|
|
17
|
+
return tx;
|
|
18
|
+
}
|
|
19
|
+
createJob(params) {
|
|
20
|
+
const { description, developer, agent, agentMethod, app, appInstance, appInstanceMethod, sequences, data, } = params;
|
|
21
|
+
const tx = new Transaction();
|
|
22
|
+
tx.moveCall({
|
|
23
|
+
target: `${silvanaRegistryPackage}::jobs::create_job`,
|
|
24
|
+
arguments: [
|
|
25
|
+
tx.object(this.jobs),
|
|
26
|
+
tx.pure.option("string", description ?? null),
|
|
27
|
+
tx.pure.string(developer),
|
|
28
|
+
tx.pure.string(agent),
|
|
29
|
+
tx.pure.string(agentMethod),
|
|
30
|
+
tx.pure.string(app),
|
|
31
|
+
tx.pure.string(appInstance),
|
|
32
|
+
tx.pure.string(appInstanceMethod),
|
|
33
|
+
tx.pure.option("vector<u64>", sequences ?? null),
|
|
34
|
+
tx.pure.vector("u8", Array.from(data)),
|
|
35
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
return tx;
|
|
39
|
+
}
|
|
40
|
+
startJob(jobId) {
|
|
41
|
+
const tx = new Transaction();
|
|
42
|
+
tx.moveCall({
|
|
43
|
+
target: `${silvanaRegistryPackage}::jobs::start_job`,
|
|
44
|
+
arguments: [
|
|
45
|
+
tx.object(this.jobs),
|
|
46
|
+
tx.pure.u64(jobId),
|
|
47
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
48
|
+
],
|
|
49
|
+
});
|
|
50
|
+
return tx;
|
|
51
|
+
}
|
|
52
|
+
completeJob(jobId) {
|
|
53
|
+
const tx = new Transaction();
|
|
54
|
+
tx.moveCall({
|
|
55
|
+
target: `${silvanaRegistryPackage}::jobs::complete_job`,
|
|
56
|
+
arguments: [
|
|
57
|
+
tx.object(this.jobs),
|
|
58
|
+
tx.pure.u64(jobId),
|
|
59
|
+
],
|
|
60
|
+
});
|
|
61
|
+
return tx;
|
|
62
|
+
}
|
|
63
|
+
failJob(params) {
|
|
64
|
+
const { jobId, error } = params;
|
|
65
|
+
const tx = new Transaction();
|
|
66
|
+
tx.moveCall({
|
|
67
|
+
target: `${silvanaRegistryPackage}::jobs::fail_job`,
|
|
68
|
+
arguments: [
|
|
69
|
+
tx.object(this.jobs),
|
|
70
|
+
tx.pure.u64(jobId),
|
|
71
|
+
tx.pure.string(error),
|
|
72
|
+
tx.object(SUI_CLOCK_OBJECT_ID),
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
return tx;
|
|
76
|
+
}
|
|
77
|
+
updateMaxAttempts(maxAttempts) {
|
|
78
|
+
const tx = new Transaction();
|
|
79
|
+
tx.moveCall({
|
|
80
|
+
target: `${silvanaRegistryPackage}::jobs::update_max_attempts`,
|
|
81
|
+
arguments: [
|
|
82
|
+
tx.object(this.jobs),
|
|
83
|
+
tx.pure.u64(maxAttempts),
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
return tx;
|
|
87
|
+
}
|
|
88
|
+
async getJob(jobId) {
|
|
89
|
+
try {
|
|
90
|
+
const jobsObject = await fetchSuiObject(this.jobs);
|
|
91
|
+
if (!jobsObject)
|
|
92
|
+
return undefined;
|
|
93
|
+
const jobsTableId = jobsObject?.jobs?.fields?.id?.id;
|
|
94
|
+
if (!jobsTableId)
|
|
95
|
+
return undefined;
|
|
96
|
+
const job = await fetchSuiDynamicField({
|
|
97
|
+
parentID: jobsTableId,
|
|
98
|
+
fieldName: "jobs",
|
|
99
|
+
type: "u64",
|
|
100
|
+
key: String(jobId),
|
|
101
|
+
});
|
|
102
|
+
if (!job)
|
|
103
|
+
return undefined;
|
|
104
|
+
const parseStatus = (status) => {
|
|
105
|
+
if (status?.Pending !== undefined)
|
|
106
|
+
return { type: "Pending" };
|
|
107
|
+
if (status?.Running !== undefined)
|
|
108
|
+
return { type: "Running" };
|
|
109
|
+
if (status?.Failed !== undefined)
|
|
110
|
+
return { type: "Failed", error: status.Failed };
|
|
111
|
+
return { type: "Pending" };
|
|
112
|
+
};
|
|
113
|
+
return {
|
|
114
|
+
id: job?.id?.id,
|
|
115
|
+
jobId: Number(job.job_id),
|
|
116
|
+
description: job?.description ?? undefined,
|
|
117
|
+
developer: job.developer,
|
|
118
|
+
agent: job.agent,
|
|
119
|
+
agentMethod: job.agent_method,
|
|
120
|
+
app: job.app,
|
|
121
|
+
appInstance: job.app_instance,
|
|
122
|
+
appInstanceMethod: job.app_instance_method,
|
|
123
|
+
sequences: job?.sequences?.map((s) => Number(s)) ?? undefined,
|
|
124
|
+
data: new Uint8Array(job.data),
|
|
125
|
+
status: parseStatus(job.status),
|
|
126
|
+
attempts: Number(job.attempts),
|
|
127
|
+
createdAt: Number(job.created_at),
|
|
128
|
+
updatedAt: Number(job.updated_at),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error("Error fetching job:", error);
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async getPendingJobs() {
|
|
137
|
+
try {
|
|
138
|
+
const jobsObject = await fetchSuiObject(this.jobs);
|
|
139
|
+
if (!jobsObject)
|
|
140
|
+
return [];
|
|
141
|
+
const pendingJobs = jobsObject?.pending_jobs?.fields?.contents;
|
|
142
|
+
if (!Array.isArray(pendingJobs))
|
|
143
|
+
return [];
|
|
144
|
+
return pendingJobs.map((id) => Number(id));
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.error("Error fetching pending jobs:", error);
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async getNextPendingJob() {
|
|
152
|
+
const pendingJobs = await this.getPendingJobs();
|
|
153
|
+
return pendingJobs.length > 0 ? pendingJobs[0] : undefined;
|
|
154
|
+
}
|
|
155
|
+
async getMaxAttempts() {
|
|
156
|
+
try {
|
|
157
|
+
const jobsObject = await fetchSuiObject(this.jobs);
|
|
158
|
+
if (!jobsObject)
|
|
159
|
+
return 3; // default value
|
|
160
|
+
return Number(jobsObject?.max_attempts ?? 3);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
console.error("Error fetching max attempts:", error);
|
|
164
|
+
return 3;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=job.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const silvanaRegistryPackage: string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Get Silvana registry package address from environment variables
|
|
2
|
+
// Compatible with both Node.js and Next.js environments
|
|
3
|
+
export const silvanaRegistryPackage = process.env.SILVANA_REGISTRY_PACKAGE ??
|
|
4
|
+
process.env.NEXT_PUBLIC_SILVANA_REGISTRY_PACKAGE ??
|
|
5
|
+
"@silvana/agent";
|
|
6
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,wDAAwD;AACxD,MAAM,CAAC,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,wBAAwB;IACpC,OAAO,CAAC,GAAG,CAAC,oCAAoC;IAChD,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare function publicKeyToU256(publicKey: string): bigint;
|
|
2
|
+
export declare function u256ToFields(u256: bigint): {
|
|
3
|
+
x: bigint;
|
|
4
|
+
isOdd: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function u256ToPublicKey(u256: bigint): string;
|
|
7
|
+
export declare function convertMinaPublicKey(publicKey: string): {
|
|
8
|
+
x: bigint;
|
|
9
|
+
isOdd: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function convertMinaPublicKeyToFields(publicKey?: string): bigint[];
|
|
12
|
+
export declare function signFields(params: {
|
|
13
|
+
privateKey: string;
|
|
14
|
+
fields: bigint[];
|
|
15
|
+
}): {
|
|
16
|
+
signature: string;
|
|
17
|
+
data: bigint[];
|
|
18
|
+
publicKey: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function verifyFields(params: {
|
|
21
|
+
publicKey: string;
|
|
22
|
+
fields: bigint[];
|
|
23
|
+
signature: string;
|
|
24
|
+
}): boolean;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import Client from "mina-signer";
|
|
2
|
+
import { convertFieldsToPublicKey } from "./base58/public-key.js";
|
|
3
|
+
const client = new Client({
|
|
4
|
+
network: "testnet",
|
|
5
|
+
});
|
|
6
|
+
export function publicKeyToU256(publicKey) {
|
|
7
|
+
const raw = client.publicKeyToRaw(publicKey);
|
|
8
|
+
const swappedRaw = raw
|
|
9
|
+
.match(/.{1,2}/g)
|
|
10
|
+
?.reverse()
|
|
11
|
+
.join("") || "";
|
|
12
|
+
const u256 = BigInt("0x" + swappedRaw);
|
|
13
|
+
return u256;
|
|
14
|
+
}
|
|
15
|
+
const MAX_BIT = 2n ** 255n;
|
|
16
|
+
export function u256ToFields(u256) {
|
|
17
|
+
const isOdd = (u256 & MAX_BIT) != 0n;
|
|
18
|
+
const x = u256 - (isOdd ? MAX_BIT : 0n);
|
|
19
|
+
return { x, isOdd };
|
|
20
|
+
}
|
|
21
|
+
export function u256ToPublicKey(u256) {
|
|
22
|
+
const { x, isOdd } = u256ToFields(u256);
|
|
23
|
+
return convertFieldsToPublicKey({ x, isOdd });
|
|
24
|
+
}
|
|
25
|
+
export function convertMinaPublicKey(publicKey) {
|
|
26
|
+
const u256 = publicKeyToU256(publicKey);
|
|
27
|
+
return u256ToFields(u256);
|
|
28
|
+
}
|
|
29
|
+
export function convertMinaPublicKeyToFields(publicKey) {
|
|
30
|
+
if (!publicKey)
|
|
31
|
+
return [];
|
|
32
|
+
const { x, isOdd } = convertMinaPublicKey(publicKey);
|
|
33
|
+
return [x, isOdd ? 1n : 0n];
|
|
34
|
+
}
|
|
35
|
+
export function signFields(params) {
|
|
36
|
+
const { privateKey, fields } = params;
|
|
37
|
+
const signedData = client.signFields(fields.map(BigInt), privateKey);
|
|
38
|
+
return signedData;
|
|
39
|
+
}
|
|
40
|
+
export function verifyFields(params) {
|
|
41
|
+
const { publicKey, fields, signature } = params;
|
|
42
|
+
return client.verifyFields({ data: fields, publicKey, signature });
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=public-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-key.js","sourceRoot":"","sources":["../../src/public-key.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;IACxB,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,UAAU,GACd,GAAG;SACA,KAAK,CAAC,SAAS,CAAC;QACjB,EAAE,OAAO,EAAE;SACV,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,GAAW,EAAE,IAAI,IAAI,CAAC;AAEnC,MAAM,UAAU,YAAY,CAAC,IAAY;IAIvC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,wBAAwB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IAIpD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,SAAkB;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAgD;IAKzE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IACrE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAI5B;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAChD,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/node/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAIpC;IAGC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;QAC1C,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,CACxC;QACE;YACE,MAAM,EAAE,YAAY;SACrB;KACF,EACD,OAAO,CACR,CAAC;IACF,oDAAoD;IACpD,oBAAoB;IACpB,MAAM;IACN,oDAAoD;IACpD,aAAa;IACb,mCAAmC;IACnC,6BAA6B;IAC7B,2BAA2B;IAC3B,OAAO;IACP,MAAM;IACN,+BAA+B;IAE/B,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtB,2BAA2B;IAC3B,2BAA2B;IAC3B,uCAAuC;IACvC,gCAAgC;IAEhC,uCAAuC;IACvC,uBAAuB;IACvB,mCAAmC;IACnC,qBAAqB;IACrB,uBAAuB;IACvB,MAAM;IACN,0BAA0B;IAC1B,OAAO,EAAE,EAAE,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AgentRegistry } from "./agent.js";
|
|
2
|
+
import { AppInstanceManager } from "./app_instance.js";
|
|
3
|
+
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
|
|
4
|
+
export interface TestRegistryConfig {
|
|
5
|
+
registryName?: string;
|
|
6
|
+
developerName?: string;
|
|
7
|
+
developerGithub?: string;
|
|
8
|
+
developerImage?: string;
|
|
9
|
+
developerDescription?: string;
|
|
10
|
+
developerSite?: string;
|
|
11
|
+
appName?: string;
|
|
12
|
+
appDescription?: string;
|
|
13
|
+
appImage?: string;
|
|
14
|
+
appSite?: string;
|
|
15
|
+
testAgentName?: string;
|
|
16
|
+
testAgentImage?: string;
|
|
17
|
+
testAgentChains?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface TestRegistryResult {
|
|
20
|
+
registryAddress: string;
|
|
21
|
+
developerName: string;
|
|
22
|
+
appName: string;
|
|
23
|
+
agentName?: string;
|
|
24
|
+
registry: AgentRegistry;
|
|
25
|
+
appInstanceManager: AppInstanceManager;
|
|
26
|
+
keyPair: Ed25519Keypair;
|
|
27
|
+
address: string;
|
|
28
|
+
}
|
|
29
|
+
export interface TestAppResult {
|
|
30
|
+
testAppAddress: string;
|
|
31
|
+
appInstanceAddress: string;
|
|
32
|
+
appInstanceCapAddress: string;
|
|
33
|
+
registryAddress: string;
|
|
34
|
+
appName: string;
|
|
35
|
+
keyPair: Ed25519Keypair;
|
|
36
|
+
address: string;
|
|
37
|
+
appInstanceManager: AppInstanceManager;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a test Silvana Registry with a test developer, app, and optionally an agent
|
|
41
|
+
* This is a helper function for testing that sets up a complete test environment
|
|
42
|
+
*/
|
|
43
|
+
export declare function createTestRegistry(config?: TestRegistryConfig): Promise<TestRegistryResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a TestApp with an initialized AppInstance using the new TestApp module
|
|
46
|
+
* This uses the create_test_app function from the Move contract
|
|
47
|
+
*/
|
|
48
|
+
export declare function createTestApp(registryAddress: string, appName?: string): Promise<TestAppResult>;
|