zkcloudworker 0.3.6 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/ts/src/api/api.d.ts +14 -2
- package/lib/ts/src/api/api.js +27 -2
- package/lib/ts/src/cloud/cloud.d.ts +1 -0
- package/lib/ts/src/cloud/job.d.ts +3 -0
- package/lib/ts/src/cloud/local.d.ts +1 -0
- package/lib/ts/src/cloud/local.js +2 -0
- package/lib/ts/src/cloud/task.d.ts +1 -1
- package/lib/ts/src/mina.d.ts +3 -2
- package/lib/ts/src/mina.js +16 -38
- package/lib/ts/src/networks.d.ts +2 -4
- package/lib/ts/src/networks.js +31 -34
- package/lib/ts/tsconfig.tsbuildinfo +1 -1
- package/lib/web/src/api/api.d.ts +14 -2
- package/lib/web/src/api/api.js +29 -2
- package/lib/web/src/api/api.js.map +1 -1
- package/lib/web/src/cloud/cloud.d.ts +1 -0
- package/lib/web/src/cloud/cloud.js.map +1 -1
- package/lib/web/src/cloud/job.d.ts +3 -0
- package/lib/web/src/cloud/local.d.ts +1 -0
- package/lib/web/src/cloud/local.js +2 -0
- package/lib/web/src/cloud/local.js.map +1 -1
- package/lib/web/src/cloud/task.d.ts +1 -1
- package/lib/web/src/mina.d.ts +3 -2
- package/lib/web/src/mina.js +57 -78
- package/lib/web/src/mina.js.map +1 -1
- package/lib/web/src/networks.d.ts +2 -4
- package/lib/web/src/networks.js +31 -32
- package/lib/web/src/networks.js.map +1 -1
- package/lib/web/tsconfig.web.tsbuildinfo +1 -1
- package/package.json +1 -1
package/lib/ts/src/api/api.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { zkCloudWorker, Cloud } from "../cloud/cloud";
|
2
2
|
import { blockchain } from "../networks";
|
3
|
-
export type ApiCommand = "recursiveProof" | "execute" | "sendTransaction" | "jobResult" | "deploy" | "queryBilling";
|
3
|
+
export type ApiCommand = "recursiveProof" | "execute" | "sendTransaction" | "jobResult" | "deploy" | "getBalance" | "queryBilling";
|
4
4
|
/**
|
5
5
|
* API class for interacting with the zkCloudWorker
|
6
6
|
* @property jwt The jwt token for authentication, get it at https://t.me/minanft_bot?start=auth
|
@@ -128,7 +128,9 @@ export declare class zkCloudWorkerClient {
|
|
128
128
|
* if the job is not found, the result will be undefined and error will be set
|
129
129
|
*/
|
130
130
|
deploy(data: {
|
131
|
-
|
131
|
+
repo: string;
|
132
|
+
developer: string;
|
133
|
+
packageManager: string;
|
132
134
|
}): Promise<{
|
133
135
|
success: boolean;
|
134
136
|
error?: string;
|
@@ -144,6 +146,16 @@ export declare class zkCloudWorkerClient {
|
|
144
146
|
error?: string;
|
145
147
|
result?: any;
|
146
148
|
}>;
|
149
|
+
/**
|
150
|
+
* Gets the remaining balance
|
151
|
+
* @returns { success: boolean, error?: string, result?: any }
|
152
|
+
* where result is the billing report
|
153
|
+
*/
|
154
|
+
getBalance(): Promise<{
|
155
|
+
success: boolean;
|
156
|
+
error?: string;
|
157
|
+
result?: any;
|
158
|
+
}>;
|
147
159
|
/**
|
148
160
|
* Waits for the job to finish
|
149
161
|
* @param data the data for the waitForJobResult call
|
package/lib/ts/src/api/api.js
CHANGED
@@ -23,7 +23,7 @@ class zkCloudWorkerClient {
|
|
23
23
|
const { jwt, zkcloudworker, chain, webhook } = params;
|
24
24
|
this.jwt = jwt;
|
25
25
|
this.endpoint = ZKCLOUDWORKER_API;
|
26
|
-
this.chain = chain ?? "
|
26
|
+
this.chain = chain ?? "devnet";
|
27
27
|
this.webhook = webhook;
|
28
28
|
if (jwt === "local") {
|
29
29
|
if (zkcloudworker === undefined)
|
@@ -152,7 +152,12 @@ class zkCloudWorkerClient {
|
|
152
152
|
*/
|
153
153
|
async deploy(data) {
|
154
154
|
// TODO: encrypt env.json
|
155
|
-
const
|
155
|
+
const { repo, developer, packageManager } = data;
|
156
|
+
const result = await this.apiHub("deploy", {
|
157
|
+
developer,
|
158
|
+
repo,
|
159
|
+
args: packageManager,
|
160
|
+
});
|
156
161
|
if (result.data === "error")
|
157
162
|
return {
|
158
163
|
success: false,
|
@@ -185,6 +190,26 @@ class zkCloudWorkerClient {
|
|
185
190
|
result: result.data,
|
186
191
|
};
|
187
192
|
}
|
193
|
+
/**
|
194
|
+
* Gets the remaining balance
|
195
|
+
* @returns { success: boolean, error?: string, result?: any }
|
196
|
+
* where result is the billing report
|
197
|
+
*/
|
198
|
+
async getBalance() {
|
199
|
+
const result = await this.apiHub("getBalance", {});
|
200
|
+
if (this.isError(result.data))
|
201
|
+
return {
|
202
|
+
success: false,
|
203
|
+
error: result.error,
|
204
|
+
result: result.data,
|
205
|
+
};
|
206
|
+
else
|
207
|
+
return {
|
208
|
+
success: result.success,
|
209
|
+
error: result.error,
|
210
|
+
result: result.data,
|
211
|
+
};
|
212
|
+
}
|
188
213
|
/**
|
189
214
|
* Waits for the job to finish
|
190
215
|
* @param data the data for the waitForJobResult call
|
@@ -196,6 +196,8 @@ class LocalCloud extends cloud_1.Cloud {
|
|
196
196
|
const data = LocalStorage.tasks[taskId];
|
197
197
|
const jobId = LocalCloud.generateId();
|
198
198
|
const timeCreated = Date.now();
|
199
|
+
if (data.startTime !== undefined && data.startTime < timeCreated)
|
200
|
+
continue;
|
199
201
|
const job = {
|
200
202
|
id: "local",
|
201
203
|
jobId: jobId,
|
@@ -2,6 +2,7 @@ import { blockchain } from "../networks";
|
|
2
2
|
export interface TaskData {
|
3
3
|
id: string;
|
4
4
|
taskId: string;
|
5
|
+
startTime?: number;
|
5
6
|
timeCreated: number;
|
6
7
|
developer: string;
|
7
8
|
repo: string;
|
@@ -10,5 +11,4 @@ export interface TaskData {
|
|
10
11
|
args?: string;
|
11
12
|
metadata?: string;
|
12
13
|
chain: blockchain;
|
13
|
-
webhook?: string;
|
14
14
|
}
|
package/lib/ts/src/mina.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export { initBlockchain, Memory, makeString, sleep, accountBalance, accountBalanceMina, formatTime, MinaNetworkInstance, currentNetwork, getNetworkIdHash, getDeployer, };
|
1
|
+
export { initBlockchain, Memory, makeString, sleep, accountBalance, accountBalanceMina, formatTime, MinaNetworkInstance, currentNetwork, getNetworkIdHash, getCurrentNetwork, getDeployer, };
|
2
2
|
import { PublicKey, PrivateKey, UInt64, Field } from "o1js";
|
3
3
|
import { blockchain, MinaNetwork } from "./networks";
|
4
4
|
interface MinaNetworkInstance {
|
@@ -11,8 +11,9 @@ interface MinaNetworkInstance {
|
|
11
11
|
}
|
12
12
|
declare let currentNetwork: MinaNetworkInstance | undefined;
|
13
13
|
declare function getNetworkIdHash(): Field;
|
14
|
+
declare function getCurrentNetwork(): MinaNetworkInstance;
|
14
15
|
declare function getDeployer(): PrivateKey | undefined;
|
15
|
-
declare function initBlockchain(instance: blockchain, deployersNumber?: number): MinaNetworkInstance
|
16
|
+
declare function initBlockchain(instance: blockchain, deployersNumber?: number): Promise<MinaNetworkInstance>;
|
16
17
|
declare function accountBalance(address: PublicKey): Promise<UInt64>;
|
17
18
|
declare function accountBalanceMina(address: PublicKey): Promise<number>;
|
18
19
|
declare function sleep(ms: number): Promise<unknown>;
|
package/lib/ts/src/mina.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getDeployer = exports.getNetworkIdHash = exports.currentNetwork = exports.formatTime = exports.accountBalanceMina = exports.accountBalance = exports.sleep = exports.makeString = exports.Memory = exports.initBlockchain = void 0;
|
3
|
+
exports.getDeployer = exports.getCurrentNetwork = exports.getNetworkIdHash = exports.currentNetwork = exports.formatTime = exports.accountBalanceMina = exports.accountBalance = exports.sleep = exports.makeString = exports.Memory = exports.initBlockchain = void 0;
|
4
4
|
const o1js_1 = require("o1js");
|
5
5
|
const networks_1 = require("./networks");
|
6
6
|
let currentNetwork = undefined;
|
@@ -12,6 +12,13 @@ function getNetworkIdHash() {
|
|
12
12
|
return currentNetwork.networkIdHash;
|
13
13
|
}
|
14
14
|
exports.getNetworkIdHash = getNetworkIdHash;
|
15
|
+
function getCurrentNetwork() {
|
16
|
+
if (currentNetwork === undefined) {
|
17
|
+
throw new Error("Network is not initialized");
|
18
|
+
}
|
19
|
+
return currentNetwork;
|
20
|
+
}
|
21
|
+
exports.getCurrentNetwork = getCurrentNetwork;
|
15
22
|
function getDeployer() {
|
16
23
|
if (currentNetwork === undefined) {
|
17
24
|
throw new Error("Network is not initialized");
|
@@ -19,50 +26,21 @@ function getDeployer() {
|
|
19
26
|
return currentNetwork.keys[0]?.privateKey;
|
20
27
|
}
|
21
28
|
exports.getDeployer = getDeployer;
|
22
|
-
|
23
|
-
chainId?: blockchain;
|
24
|
-
verbose?: boolean;
|
25
|
-
}): Field {
|
26
|
-
const { chainId, verbose } = params;
|
27
|
-
if (chainId !== undefined) {
|
28
|
-
if (verbose) console.log(`Chain ID: ${chainId}`);
|
29
|
-
return CircuitString.fromString(chainId).hash();
|
30
|
-
}
|
31
|
-
const networkId = Mina.getNetworkId();
|
32
|
-
if (verbose) console.log(`Network ID: ${networkId}`);
|
33
|
-
if (networkId === "testnet")
|
34
|
-
throw new Error(
|
35
|
-
"Network ID is not set, please call initBlockchain() first"
|
36
|
-
);
|
37
|
-
|
38
|
-
if (networkId === "mainnet")
|
39
|
-
return CircuitString.fromString("mainnet").hash();
|
40
|
-
else {
|
41
|
-
if (
|
42
|
-
networkId.custom === undefined ||
|
43
|
-
typeof networkId.custom !== "string"
|
44
|
-
) {
|
45
|
-
throw new Error(
|
46
|
-
"Network ID is not set, please call initBlockchain() first"
|
47
|
-
);
|
48
|
-
}
|
49
|
-
return CircuitString.fromString(networkId.custom).hash();
|
50
|
-
}
|
51
|
-
}
|
52
|
-
*/
|
53
|
-
function initBlockchain(instance, deployersNumber = 0) {
|
29
|
+
async function initBlockchain(instance, deployersNumber = 0) {
|
54
30
|
if (instance === "mainnet") {
|
55
31
|
throw new Error("Mainnet is not supported yet by zkApps");
|
56
32
|
}
|
33
|
+
const networkIdHash = o1js_1.Poseidon.hash(o1js_1.Encoding.stringToFields(instance));
|
34
|
+
// await used for compatibility with future versions of o1js
|
57
35
|
if (instance === "local") {
|
58
|
-
const local = o1js_1.Mina.LocalBlockchain({
|
36
|
+
const local = await o1js_1.Mina.LocalBlockchain({
|
59
37
|
proofsEnabled: true,
|
60
38
|
});
|
61
|
-
o1js_1.Mina.setActiveInstance(local);
|
39
|
+
await o1js_1.Mina.setActiveInstance(local);
|
62
40
|
exports.currentNetwork = currentNetwork = {
|
63
41
|
keys: local.testAccounts,
|
64
42
|
network: networks_1.Local,
|
65
|
-
networkIdHash
|
43
|
+
networkIdHash,
|
66
44
|
};
|
67
45
|
return currentNetwork;
|
68
46
|
}
|
@@ -75,7 +53,7 @@ function initBlockchain(instance, deployersNumber = 0) {
|
|
75
53
|
archive: network.archive,
|
76
54
|
lightnetAccountManager: network.accountManager,
|
77
55
|
});
|
78
|
-
o1js_1.Mina.setActiveInstance(networkInstance);
|
56
|
+
await o1js_1.Mina.setActiveInstance(networkInstance);
|
79
57
|
const keys = [];
|
80
58
|
if (deployersNumber > 0) {
|
81
59
|
if (instance === "lighnet") {
|
@@ -97,7 +75,7 @@ function initBlockchain(instance, deployersNumber = 0) {
|
|
97
75
|
exports.currentNetwork = currentNetwork = {
|
98
76
|
keys,
|
99
77
|
network,
|
100
|
-
networkIdHash
|
78
|
+
networkIdHash,
|
101
79
|
};
|
102
80
|
return currentNetwork;
|
103
81
|
}
|
package/lib/ts/src/networks.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
export { blockchain, MinaNetwork, networks, Mainnet,
|
2
|
-
type blockchain = "local" | "
|
1
|
+
export { blockchain, MinaNetwork, networks, Mainnet, Devnet, Zeko, Lightnet, Local, };
|
2
|
+
type blockchain = "local" | "devnet" | "lighnet" | "mainnet" | "zeko" | "mainnet";
|
3
3
|
interface MinaNetwork {
|
4
4
|
mina: string[];
|
5
5
|
archive: string[];
|
@@ -11,9 +11,7 @@ interface MinaNetwork {
|
|
11
11
|
}
|
12
12
|
declare const Mainnet: MinaNetwork;
|
13
13
|
declare const Local: MinaNetwork;
|
14
|
-
declare const Berkeley: MinaNetwork;
|
15
14
|
declare const Devnet: MinaNetwork;
|
16
15
|
declare const Zeko: MinaNetwork;
|
17
|
-
declare const TestWorld2: MinaNetwork;
|
18
16
|
declare const Lightnet: MinaNetwork;
|
19
17
|
declare const networks: MinaNetwork[];
|
package/lib/ts/src/networks.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.Local = exports.Lightnet = exports.
|
3
|
+
exports.Local = exports.Lightnet = exports.Zeko = exports.Devnet = exports.Mainnet = exports.networks = void 0;
|
4
4
|
const Mainnet = {
|
5
5
|
mina: [],
|
6
6
|
archive: [],
|
@@ -13,21 +13,6 @@ const Local = {
|
|
13
13
|
chainId: "local",
|
14
14
|
};
|
15
15
|
exports.Local = Local;
|
16
|
-
const Berkeley = {
|
17
|
-
mina: [
|
18
|
-
"https://api.minascan.io/node/berkeley/v1/graphql",
|
19
|
-
"https://proxy.berkeley.minaexplorer.com/graphql",
|
20
|
-
],
|
21
|
-
archive: [
|
22
|
-
"https://api.minascan.io/archive/berkeley/v1/graphql",
|
23
|
-
"https://archive.berkeley.minaexplorer.com",
|
24
|
-
],
|
25
|
-
explorerAccountUrl: "https://minascan.io/berkeley/account/",
|
26
|
-
explorerTransactionUrl: "https://minascan.io/berkeley/tx/",
|
27
|
-
chainId: "berkeley",
|
28
|
-
name: "Berkeley",
|
29
|
-
};
|
30
|
-
exports.Berkeley = Berkeley;
|
31
16
|
const Devnet = {
|
32
17
|
mina: [
|
33
18
|
"https://api.minascan.io/node/devnet/v1/graphql",
|
@@ -49,15 +34,6 @@ const Zeko = {
|
|
49
34
|
chainId: "zeko",
|
50
35
|
};
|
51
36
|
exports.Zeko = Zeko;
|
52
|
-
const TestWorld2 = {
|
53
|
-
mina: ["https://api.minascan.io/node/testworld/v1/graphql"],
|
54
|
-
archive: ["https://archive.testworld.minaexplorer.com"],
|
55
|
-
explorerAccountUrl: "https://minascan.io/testworld/account/",
|
56
|
-
explorerTransactionUrl: "https://minascan.io/testworld/tx/",
|
57
|
-
chainId: "testworld2",
|
58
|
-
name: "TestWorld2",
|
59
|
-
};
|
60
|
-
exports.TestWorld2 = TestWorld2;
|
61
37
|
const Lightnet = {
|
62
38
|
mina: ["http://localhost:8080/graphql"],
|
63
39
|
archive: ["http://localhost:8282"],
|
@@ -66,13 +42,34 @@ const Lightnet = {
|
|
66
42
|
name: "Lightnet",
|
67
43
|
};
|
68
44
|
exports.Lightnet = Lightnet;
|
69
|
-
const networks = [
|
70
|
-
Mainnet,
|
71
|
-
Local,
|
72
|
-
Berkeley,
|
73
|
-
Devnet,
|
74
|
-
Zeko,
|
75
|
-
TestWorld2,
|
76
|
-
Lightnet,
|
77
|
-
];
|
45
|
+
const networks = [Mainnet, Local, Devnet, Zeko, Lightnet];
|
78
46
|
exports.networks = networks;
|
47
|
+
/*
|
48
|
+
|
49
|
+
// not supported by o1js 0.18.0
|
50
|
+
|
51
|
+
const Berkeley: MinaNetwork = {
|
52
|
+
mina: [
|
53
|
+
"https://api.minascan.io/node/berkeley/v1/graphql",
|
54
|
+
"https://proxy.berkeley.minaexplorer.com/graphql",
|
55
|
+
],
|
56
|
+
archive: [
|
57
|
+
"https://api.minascan.io/archive/berkeley/v1/graphql",
|
58
|
+
"https://archive.berkeley.minaexplorer.com",
|
59
|
+
],
|
60
|
+
explorerAccountUrl: "https://minascan.io/berkeley/account/",
|
61
|
+
explorerTransactionUrl: "https://minascan.io/berkeley/tx/",
|
62
|
+
chainId: "berkeley",
|
63
|
+
name: "Berkeley",
|
64
|
+
};
|
65
|
+
|
66
|
+
const TestWorld2: MinaNetwork = {
|
67
|
+
mina: ["https://api.minascan.io/node/testworld/v1/graphql"],
|
68
|
+
archive: ["https://archive.testworld.minaexplorer.com"],
|
69
|
+
explorerAccountUrl: "https://minascan.io/testworld/account/",
|
70
|
+
explorerTransactionUrl: "https://minascan.io/testworld/tx/",
|
71
|
+
chainId: "testworld2",
|
72
|
+
name: "TestWorld2",
|
73
|
+
};
|
74
|
+
|
75
|
+
*/
|