zkcloudworker 0.20.4 → 0.21.0

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.
@@ -1888,32 +1888,20 @@ var TokenAPI = class {
1888
1888
  zkcloudworker
1889
1889
  });
1890
1890
  }
1891
- async sendDeployTransaction(params) {
1892
- const { symbol } = params;
1893
- const transaction = JSON.stringify(params, null, 2);
1894
- const answer = await this.client.execute({
1895
- developer: "DFST",
1896
- repo: "token-launchpad",
1897
- transactions: [transaction],
1898
- task: "launch",
1899
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
1900
- metadata: `launch token ${symbol}`
1901
- });
1902
- const jobId = answer.jobId;
1903
- if (jobId === void 0)
1904
- console.error("Deploy Job ID is undefined", { answer, symbol });
1905
- return jobId;
1906
- }
1907
- async sendTransaction(params) {
1908
- const { txType, symbol } = params;
1909
- const transaction = JSON.stringify(params, null, 2);
1891
+ async proveTransactions(params) {
1892
+ const transactions = [];
1893
+ for (const tx of params) {
1894
+ const transaction = JSON.stringify(tx, null, 2);
1895
+ transactions.push(transaction);
1896
+ }
1897
+ const { txType, symbol } = params[0];
1910
1898
  const answer = await this.client.execute({
1911
1899
  developer: "DFST",
1912
1900
  repo: "token-launchpad",
1913
- transactions: [transaction],
1914
- task: txType,
1915
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
1916
- metadata: `${txType} token${symbol ? ` ${symbol}` : ""}`
1901
+ transactions,
1902
+ task: "prove",
1903
+ args: JSON.stringify({ tokenAddress: params[0].tokenAddress }),
1904
+ metadata: `${txType} token${symbol ? ` ${symbol}` : ""}${params.length > 1 ? ` (${params.length} txs)` : ""}`
1917
1905
  });
1918
1906
  const jobId = answer.jobId;
1919
1907
  if (jobId === void 0)
@@ -1921,13 +1909,13 @@ var TokenAPI = class {
1921
1909
  return jobId;
1922
1910
  }
1923
1911
  // Warning: this function will block the thread until the job is done and will print logs to the console
1924
- // Do not use it in "use server" functions, use getResult instead
1925
- async waitForJobResult(params) {
1912
+ // Do not use it in "use server" functions, use getResults instead
1913
+ async waitForJobResults(params) {
1926
1914
  const deployResult = await this.client.waitForJobResult(params);
1927
1915
  console.log("waitForJobResult result:", deployResult?.result?.result?.slice(0, 50));
1928
1916
  return deployResult?.result?.result ?? "error";
1929
1917
  }
1930
- async getResult(jobId) {
1918
+ async getResults(jobId) {
1931
1919
  try {
1932
1920
  const callResult = await this.client.jobResult({ jobId });
1933
1921
  const jobStatus = typeof callResult?.result === "string" ? void 0 : callResult?.result?.jobStatus;
@@ -1954,16 +1942,13 @@ var TokenAPI = class {
1954
1942
  jobStatus
1955
1943
  };
1956
1944
  try {
1957
- const { success, tx, hash, error } = JSON.parse(jobResult);
1958
- if (success === void 0)
1959
- return {
1960
- success: false,
1961
- tx,
1962
- hash,
1963
- error,
1964
- jobStatus
1965
- };
1966
- return { success, tx, hash, error, jobStatus };
1945
+ const { proofs } = JSON.parse(jobResult);
1946
+ const results = [];
1947
+ for (const proof of proofs) {
1948
+ const { success, tx, hash, error } = JSON.parse(jobResult);
1949
+ results.push({ success, tx, hash, error, jobStatus });
1950
+ }
1951
+ return { success: true, results, jobStatus };
1967
1952
  } catch (e) {
1968
1953
  return {
1969
1954
  success: false,
@@ -1,4 +1,4 @@
1
- import { blockchain, Cloud } from "../../cloud/index.js";
1
+ import { blockchain, Cloud, JobStatus } from "../../cloud/index.js";
2
2
  import { zkCloudWorkerClient } from "../api/api.js";
3
3
  import { zkCloudWorker } from "../../cloud/worker/index.js";
4
4
  import { TokenTransaction, DeployTransaction, JobResult } from "@minatokens/api";
@@ -9,14 +9,21 @@ export declare class TokenAPI {
9
9
  zkcloudworker?: (cloud: Cloud) => Promise<zkCloudWorker>;
10
10
  chain: blockchain;
11
11
  });
12
- sendDeployTransaction(params: DeployTransaction): Promise<string | undefined>;
13
- sendTransaction(params: TokenTransaction): Promise<string | undefined>;
14
- waitForJobResult(params: {
12
+ proveTransactions(params: (TokenTransaction | DeployTransaction)[]): Promise<string | undefined>;
13
+ waitForJobResults(params: {
15
14
  jobId: string;
16
15
  maxAttempts?: number;
17
16
  interval?: number;
18
17
  maxErrors?: number;
19
18
  printLogs?: boolean;
20
- }): Promise<string | undefined>;
21
- getResult(jobId: string): Promise<JobResult>;
19
+ }): Promise<(string | undefined)[]>;
20
+ getResults(jobId: string): Promise<{
21
+ success: true;
22
+ results?: JobResult[];
23
+ jobStatus?: JobStatus;
24
+ } | {
25
+ success: false;
26
+ error?: string;
27
+ jobStatus?: JobStatus;
28
+ }>;
22
29
  }
@@ -10,32 +10,20 @@ export class TokenAPI {
10
10
  zkcloudworker,
11
11
  });
12
12
  }
13
- async sendDeployTransaction(params) {
14
- const { symbol } = params;
15
- const transaction = JSON.stringify(params, null, 2);
16
- const answer = await this.client.execute({
17
- developer: "DFST",
18
- repo: "token-launchpad",
19
- transactions: [transaction],
20
- task: "launch",
21
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
22
- metadata: `launch token ${symbol}`,
23
- });
24
- const jobId = answer.jobId;
25
- if (jobId === undefined)
26
- console.error("Deploy Job ID is undefined", { answer, symbol });
27
- return jobId;
28
- }
29
- async sendTransaction(params) {
30
- const { txType, symbol } = params;
31
- const transaction = JSON.stringify(params, null, 2);
13
+ async proveTransactions(params) {
14
+ const transactions = [];
15
+ for (const tx of params) {
16
+ const transaction = JSON.stringify(tx, null, 2);
17
+ transactions.push(transaction);
18
+ }
19
+ const { txType, symbol } = params[0];
32
20
  const answer = await this.client.execute({
33
21
  developer: "DFST",
34
22
  repo: "token-launchpad",
35
- transactions: [transaction],
36
- task: txType,
37
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
38
- metadata: `${txType} token${symbol ? ` ${symbol}` : ""}`,
23
+ transactions,
24
+ task: "prove",
25
+ args: JSON.stringify({ tokenAddress: params[0].tokenAddress }),
26
+ metadata: `${txType} token${symbol ? ` ${symbol}` : ""}${params.length > 1 ? ` (${params.length} txs)` : ""}`,
39
27
  });
40
28
  const jobId = answer.jobId;
41
29
  if (jobId === undefined)
@@ -43,13 +31,13 @@ export class TokenAPI {
43
31
  return jobId;
44
32
  }
45
33
  // Warning: this function will block the thread until the job is done and will print logs to the console
46
- // Do not use it in "use server" functions, use getResult instead
47
- async waitForJobResult(params) {
34
+ // Do not use it in "use server" functions, use getResults instead
35
+ async waitForJobResults(params) {
48
36
  const deployResult = await this.client.waitForJobResult(params);
49
37
  console.log("waitForJobResult result:", deployResult?.result?.result?.slice(0, 50));
50
38
  return deployResult?.result?.result ?? "error";
51
39
  }
52
- async getResult(jobId) {
40
+ async getResults(jobId) {
53
41
  try {
54
42
  const callResult = await this.client.jobResult({ jobId });
55
43
  // TODO: filter the repo and developer
@@ -79,16 +67,21 @@ export class TokenAPI {
79
67
  jobStatus,
80
68
  };
81
69
  try {
82
- const { success, tx, hash, error } = JSON.parse(jobResult);
83
- if (success === undefined)
84
- return {
85
- success: false,
86
- tx,
87
- hash,
88
- error,
89
- jobStatus,
90
- };
91
- return { success, tx, hash, error, jobStatus };
70
+ const { proofs } = JSON.parse(jobResult);
71
+ const results = [];
72
+ for (const proof of proofs) {
73
+ const { success, tx, hash, error } = JSON.parse(jobResult);
74
+ // if (success === undefined)
75
+ // return {
76
+ // success: false,
77
+ // tx,
78
+ // hash,
79
+ // error,
80
+ // jobStatus,
81
+ // };
82
+ results.push({ success, tx, hash, error, jobStatus });
83
+ }
84
+ return { success: true, results, jobStatus };
92
85
  }
93
86
  catch (e) {
94
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/mina/token/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/mina/token/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { blockchain, Cloud } from "../../cloud/index.js";
1
+ import { blockchain, Cloud, JobStatus } from "../../cloud/index.js";
2
2
  import { zkCloudWorkerClient } from "../api/api.js";
3
3
  import { zkCloudWorker } from "../../cloud/worker/index.js";
4
4
  import { TokenTransaction, DeployTransaction, JobResult } from "@minatokens/api";
@@ -9,14 +9,21 @@ export declare class TokenAPI {
9
9
  zkcloudworker?: (cloud: Cloud) => Promise<zkCloudWorker>;
10
10
  chain: blockchain;
11
11
  });
12
- sendDeployTransaction(params: DeployTransaction): Promise<string | undefined>;
13
- sendTransaction(params: TokenTransaction): Promise<string | undefined>;
14
- waitForJobResult(params: {
12
+ proveTransactions(params: (TokenTransaction | DeployTransaction)[]): Promise<string | undefined>;
13
+ waitForJobResults(params: {
15
14
  jobId: string;
16
15
  maxAttempts?: number;
17
16
  interval?: number;
18
17
  maxErrors?: number;
19
18
  printLogs?: boolean;
20
- }): Promise<string | undefined>;
21
- getResult(jobId: string): Promise<JobResult>;
19
+ }): Promise<(string | undefined)[]>;
20
+ getResults(jobId: string): Promise<{
21
+ success: true;
22
+ results?: JobResult[];
23
+ jobStatus?: JobStatus;
24
+ } | {
25
+ success: false;
26
+ error?: string;
27
+ jobStatus?: JobStatus;
28
+ }>;
22
29
  }
@@ -10,32 +10,20 @@ export class TokenAPI {
10
10
  zkcloudworker,
11
11
  });
12
12
  }
13
- async sendDeployTransaction(params) {
14
- const { symbol } = params;
15
- const transaction = JSON.stringify(params, null, 2);
16
- const answer = await this.client.execute({
17
- developer: "DFST",
18
- repo: "token-launchpad",
19
- transactions: [transaction],
20
- task: "launch",
21
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
22
- metadata: `launch token ${symbol}`,
23
- });
24
- const jobId = answer.jobId;
25
- if (jobId === undefined)
26
- console.error("Deploy Job ID is undefined", { answer, symbol });
27
- return jobId;
28
- }
29
- async sendTransaction(params) {
30
- const { txType, symbol } = params;
31
- const transaction = JSON.stringify(params, null, 2);
13
+ async proveTransactions(params) {
14
+ const transactions = [];
15
+ for (const tx of params) {
16
+ const transaction = JSON.stringify(tx, null, 2);
17
+ transactions.push(transaction);
18
+ }
19
+ const { txType, symbol } = params[0];
32
20
  const answer = await this.client.execute({
33
21
  developer: "DFST",
34
22
  repo: "token-launchpad",
35
- transactions: [transaction],
36
- task: txType,
37
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
38
- metadata: `${txType} token${symbol ? ` ${symbol}` : ""}`,
23
+ transactions,
24
+ task: "prove",
25
+ args: JSON.stringify({ tokenAddress: params[0].tokenAddress }),
26
+ metadata: `${txType} token${symbol ? ` ${symbol}` : ""}${params.length > 1 ? ` (${params.length} txs)` : ""}`,
39
27
  });
40
28
  const jobId = answer.jobId;
41
29
  if (jobId === undefined)
@@ -43,13 +31,13 @@ export class TokenAPI {
43
31
  return jobId;
44
32
  }
45
33
  // Warning: this function will block the thread until the job is done and will print logs to the console
46
- // Do not use it in "use server" functions, use getResult instead
47
- async waitForJobResult(params) {
34
+ // Do not use it in "use server" functions, use getResults instead
35
+ async waitForJobResults(params) {
48
36
  const deployResult = await this.client.waitForJobResult(params);
49
37
  console.log("waitForJobResult result:", deployResult?.result?.result?.slice(0, 50));
50
38
  return deployResult?.result?.result ?? "error";
51
39
  }
52
- async getResult(jobId) {
40
+ async getResults(jobId) {
53
41
  try {
54
42
  const callResult = await this.client.jobResult({ jobId });
55
43
  // TODO: filter the repo and developer
@@ -79,16 +67,21 @@ export class TokenAPI {
79
67
  jobStatus,
80
68
  };
81
69
  try {
82
- const { success, tx, hash, error } = JSON.parse(jobResult);
83
- if (success === undefined)
84
- return {
85
- success: false,
86
- tx,
87
- hash,
88
- error,
89
- jobStatus,
90
- };
91
- return { success, tx, hash, error, jobStatus };
70
+ const { proofs } = JSON.parse(jobResult);
71
+ const results = [];
72
+ for (const proof of proofs) {
73
+ const { success, tx, hash, error } = JSON.parse(jobResult);
74
+ // if (success === undefined)
75
+ // return {
76
+ // success: false,
77
+ // tx,
78
+ // hash,
79
+ // error,
80
+ // jobStatus,
81
+ // };
82
+ results.push({ success, tx, hash, error, jobStatus });
83
+ }
84
+ return { success: true, results, jobStatus };
92
85
  }
93
86
  catch (e) {
94
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/mina/token/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/mina/token/api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zkcloudworker",
3
- "version": "0.20.4",
3
+ "version": "0.21.0",
4
4
  "type": "module",
5
5
  "description": "zkCloudWorker library",
6
6
  "author": "zkCloudWorker",
@@ -49,7 +49,7 @@
49
49
  "node": ">=20.0.0"
50
50
  },
51
51
  "dependencies": {
52
- "@minatokens/api": "^0.3.1",
52
+ "@minatokens/api": "^0.3.3",
53
53
  "chalk": "^4.1.2"
54
54
  },
55
55
  "peerDependencies": {
@@ -5,7 +5,6 @@ import {
5
5
  TokenTransaction,
6
6
  DeployTransaction,
7
7
  JobResult,
8
- FungibleTokenTransactionType,
9
8
  } from "@minatokens/api";
10
9
 
11
10
  export class TokenAPI {
@@ -26,40 +25,25 @@ export class TokenAPI {
26
25
  });
27
26
  }
28
27
 
29
- async sendDeployTransaction(
30
- params: DeployTransaction
28
+ async proveTransactions(
29
+ params: (TokenTransaction | DeployTransaction)[]
31
30
  ): Promise<string | undefined> {
32
- const { symbol } = params;
33
-
34
- const transaction = JSON.stringify(params, null, 2);
35
-
36
- const answer = await this.client.execute({
37
- developer: "DFST",
38
- repo: "token-launchpad",
39
- transactions: [transaction],
40
- task: "launch",
41
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
42
- metadata: `launch token ${symbol}`,
43
- });
44
-
45
- const jobId = answer.jobId;
46
- if (jobId === undefined)
47
- console.error("Deploy Job ID is undefined", { answer, symbol });
48
- return jobId;
49
- }
50
-
51
- async sendTransaction(params: TokenTransaction): Promise<string | undefined> {
52
- const { txType, symbol } = params;
53
-
54
- const transaction = JSON.stringify(params, null, 2);
31
+ const transactions: string[] = [];
32
+ for (const tx of params) {
33
+ const transaction = JSON.stringify(tx, null, 2);
34
+ transactions.push(transaction);
35
+ }
36
+ const { txType, symbol } = params[0];
55
37
 
56
38
  const answer = await this.client.execute({
57
39
  developer: "DFST",
58
40
  repo: "token-launchpad",
59
- transactions: [transaction],
60
- task: txType,
61
- args: JSON.stringify({ tokenAddress: params.tokenAddress }),
62
- metadata: `${txType} token${symbol ? ` ${symbol}` : ""}`,
41
+ transactions,
42
+ task: "prove",
43
+ args: JSON.stringify({ tokenAddress: params[0].tokenAddress }),
44
+ metadata: `${txType} token${symbol ? ` ${symbol}` : ""}${
45
+ params.length > 1 ? ` (${params.length} txs)` : ""
46
+ }`,
63
47
  });
64
48
  const jobId = answer.jobId;
65
49
  if (jobId === undefined)
@@ -68,14 +52,14 @@ export class TokenAPI {
68
52
  }
69
53
 
70
54
  // Warning: this function will block the thread until the job is done and will print logs to the console
71
- // Do not use it in "use server" functions, use getResult instead
72
- async waitForJobResult(params: {
55
+ // Do not use it in "use server" functions, use getResults instead
56
+ async waitForJobResults(params: {
73
57
  jobId: string;
74
58
  maxAttempts?: number;
75
59
  interval?: number;
76
60
  maxErrors?: number;
77
61
  printLogs?: boolean;
78
- }): Promise<string | undefined> {
62
+ }): Promise<(string | undefined)[]> {
79
63
  const deployResult = await this.client.waitForJobResult(params);
80
64
  console.log(
81
65
  "waitForJobResult result:",
@@ -84,7 +68,12 @@ export class TokenAPI {
84
68
  return deployResult?.result?.result ?? "error";
85
69
  }
86
70
 
87
- async getResult(jobId: string): Promise<JobResult> {
71
+ async getResults(
72
+ jobId: string
73
+ ): Promise<
74
+ | { success: true; results?: JobResult[]; jobStatus?: JobStatus }
75
+ | { success: false; error?: string; jobStatus?: JobStatus }
76
+ > {
88
77
  try {
89
78
  const callResult = await this.client.jobResult({ jobId });
90
79
 
@@ -117,16 +106,21 @@ export class TokenAPI {
117
106
  };
118
107
 
119
108
  try {
120
- const { success, tx, hash, error } = JSON.parse(jobResult);
121
- if (success === undefined)
122
- return {
123
- success: false,
124
- tx,
125
- hash,
126
- error,
127
- jobStatus,
128
- };
129
- return { success, tx, hash, error, jobStatus };
109
+ const { proofs } = JSON.parse(jobResult);
110
+ const results: JobResult[] = [];
111
+ for (const proof of proofs) {
112
+ const { success, tx, hash, error } = JSON.parse(jobResult);
113
+ // if (success === undefined)
114
+ // return {
115
+ // success: false,
116
+ // tx,
117
+ // hash,
118
+ // error,
119
+ // jobStatus,
120
+ // };
121
+ results.push({ success, tx, hash, error, jobStatus });
122
+ }
123
+ return { success: true, results, jobStatus };
130
124
  } catch (e: any) {
131
125
  return {
132
126
  success: false,