zkcloudworker 0.5.1 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/lib/ts/src/api/api.js +14 -6
  2. package/lib/ts/src/index.d.ts +3 -2
  3. package/lib/ts/src/index.js +3 -2
  4. package/lib/ts/src/utils/base64.d.ts +5 -0
  5. package/lib/ts/src/utils/base64.js +90 -0
  6. package/lib/ts/src/{fetch.js → utils/fetch.js} +24 -6
  7. package/lib/ts/src/utils/fields.d.ts +3 -0
  8. package/lib/ts/src/utils/fields.js +33 -0
  9. package/lib/ts/tsconfig.tsbuildinfo +1 -1
  10. package/lib/web/src/api/api.js +260 -275
  11. package/lib/web/src/api/api.js.map +1 -1
  12. package/lib/web/src/cloud/cloud.js +12 -25
  13. package/lib/web/src/cloud/cloud.js.map +1 -1
  14. package/lib/web/src/cloud/files.js +59 -68
  15. package/lib/web/src/cloud/files.js.map +1 -1
  16. package/lib/web/src/cloud/local.js +221 -259
  17. package/lib/web/src/cloud/local.js.map +1 -1
  18. package/lib/web/src/encryption/encryption.js +2 -5
  19. package/lib/web/src/encryption/encryption.js.map +1 -1
  20. package/lib/web/src/encryption/messages.js +24 -29
  21. package/lib/web/src/encryption/messages.js.map +1 -1
  22. package/lib/web/src/encryption/nats-client.js +67 -83
  23. package/lib/web/src/encryption/nats-client.js.map +1 -1
  24. package/lib/web/src/fee.js +3 -6
  25. package/lib/web/src/fee.js.map +1 -1
  26. package/lib/web/src/index.d.ts +3 -2
  27. package/lib/web/src/index.js +3 -2
  28. package/lib/web/src/index.js.map +1 -1
  29. package/lib/web/src/mina.js +60 -67
  30. package/lib/web/src/mina.js.map +1 -1
  31. package/lib/web/src/utils/base64.d.ts +5 -0
  32. package/lib/web/src/utils/base64.js +84 -0
  33. package/lib/web/src/utils/base64.js.map +1 -0
  34. package/lib/web/src/utils/fetch.js +79 -0
  35. package/lib/web/src/utils/fetch.js.map +1 -0
  36. package/lib/web/src/utils/fields.d.ts +3 -0
  37. package/lib/web/src/utils/fields.js +29 -0
  38. package/lib/web/src/utils/fields.js.map +1 -0
  39. package/lib/web/tsconfig.web.tsbuildinfo +1 -1
  40. package/package.json +1 -1
  41. package/lib/ts/src/api/client-api.d.ts +0 -147
  42. package/lib/ts/src/api/client-api.js +0 -122
  43. package/lib/web/src/api/client-api.d.ts +0 -147
  44. package/lib/web/src/api/client-api.js +0 -134
  45. package/lib/web/src/api/client-api.js.map +0 -1
  46. package/lib/web/src/fetch.js +0 -68
  47. package/lib/web/src/fetch.js.map +0 -1
  48. /package/lib/ts/src/{fetch.d.ts → utils/fetch.d.ts} +0 -0
  49. /package/lib/web/src/{fetch.d.ts → utils/fetch.d.ts} +0 -0
@@ -1,36 +1,31 @@
1
- import { __awaiter } from "tslib";
2
1
  import { connect, JSONCodec } from "nats";
3
2
  import config from "../config";
4
3
  const { NATS_SERVER } = config;
5
4
  const codec = JSONCodec();
6
- export function postReadyMessage(clientAddress, workerAddress) {
7
- return __awaiter(this, void 0, void 0, function* () {
8
- // connect to the NATS server and send a 'ready' request
9
- const nc = yield connect({ servers: NATS_SERVER });
10
- const msg = yield nc.request(`zkcw:${clientAddress}`, codec.encode({
11
- post: "ready",
12
- params: { key: workerAddress },
13
- }));
14
- const response = codec.decode(msg.data);
15
- console.log("Response: ", response);
16
- // disconnect and clean all pending
17
- yield nc.drain();
18
- return response;
19
- });
5
+ export async function postReadyMessage(clientAddress, workerAddress) {
6
+ // connect to the NATS server and send a 'ready' request
7
+ const nc = await connect({ servers: NATS_SERVER });
8
+ const msg = await nc.request(`zkcw:${clientAddress}`, codec.encode({
9
+ post: "ready",
10
+ params: { key: workerAddress },
11
+ }));
12
+ const response = codec.decode(msg.data);
13
+ console.log("Response: ", response);
14
+ // disconnect and clean all pending
15
+ await nc.drain();
16
+ return response;
20
17
  }
21
- export function postDoneMessage(clientAddress, encrypted) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- // connect to the NATS server and send a 'ready' request
24
- const nc = yield connect({ servers: NATS_SERVER });
25
- const msg = yield nc.request(`zkcw:${clientAddress}`, codec.encode({
26
- post: "done",
27
- params: { result: encrypted },
28
- }));
29
- const response = codec.decode(msg.data);
30
- console.log("Response: ", response);
31
- // disconnect and clean all pending
32
- yield nc.drain();
33
- return response;
34
- });
18
+ export async function postDoneMessage(clientAddress, encrypted) {
19
+ // connect to the NATS server and send a 'ready' request
20
+ const nc = await connect({ servers: NATS_SERVER });
21
+ const msg = await nc.request(`zkcw:${clientAddress}`, codec.encode({
22
+ post: "done",
23
+ params: { result: encrypted },
24
+ }));
25
+ const response = codec.decode(msg.data);
26
+ console.log("Response: ", response);
27
+ // disconnect and clean all pending
28
+ await nc.drain();
29
+ return response;
35
30
  }
36
31
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../src/encryption/messages.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AAE/B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;AAE1B,MAAM,UAAgB,gBAAgB,CACpC,aAAqB,EACrB,aAAqB;;QAErB,wDAAwD;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAQ,MAAM,EAAE,CAAC,OAAO,CAC/B,QAAQ,aAAa,EAAE,EACvB,KAAK,CAAC,MAAM,CAAC;YACX,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;SAC/B,CAAC,CACH,CAAC;QACF,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAEpC,mCAAmC;QACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAEjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AAED,MAAM,UAAgB,eAAe,CACnC,aAAqB,EACrB,SAAiB;;QAEjB,wDAAwD;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAQ,MAAM,EAAE,CAAC,OAAO,CAC/B,QAAQ,aAAa,EAAE,EACvB,KAAK,CAAC,MAAM,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC9B,CAAC,CACH,CAAC;QACF,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAEpC,mCAAmC;QACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAEjB,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../../src/encryption/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AAE/B,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,aAAqB;IAErB,wDAAwD;IACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAQ,MAAM,EAAE,CAAC,OAAO,CAC/B,QAAQ,aAAa,EAAE,EACvB,KAAK,CAAC,MAAM,CAAC;QACX,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;KAC/B,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpC,mCAAmC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAEjB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,SAAiB;IAEjB,wDAAwD;IACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAQ,MAAM,EAAE,CAAC,OAAO,CAC/B,QAAQ,aAAa,EAAE,EACvB,KAAK,CAAC,MAAM,CAAC;QACX,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9B,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpC,mCAAmC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAEjB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,95 +1,79 @@
1
- import { __asyncValues, __awaiter } from "tslib";
2
1
  import { connect, JSONCodec } from "nats";
3
2
  import { initializeBindings } from "o1js";
4
3
  import { CipherText } from "./encryption";
5
4
  import config from "../config";
6
5
  const { NATS_SERVER } = config;
7
- export function listen(subject) {
8
- return __awaiter(this, void 0, void 0, function* () {
9
- // Create a JSON codec for encoding and decoding messages
10
- const codec = JSONCodec();
11
- const connection = yield connect({ servers: NATS_SERVER });
12
- // Subscribe to the subject
13
- const subscription = connection.subscribe(subject);
14
- console.log(`Subscribed to subject ${subject}`);
15
- // Process messages received on the subscribed subject
16
- (() => __awaiter(this, void 0, void 0, function* () {
17
- var _a, e_1, _b, _c;
18
- // Error decoding message: Error: Could not encrypt message={}
19
- // Error: Poseidon.Sponge(): bindings are not initialized, try calling `await initializeBindings()` first.
20
- // This shouldn't have happened and indicates an internal bug.
21
- yield initializeBindings();
6
+ export async function listen(subject) {
7
+ // Create a JSON codec for encoding and decoding messages
8
+ const codec = JSONCodec();
9
+ const connection = await connect({ servers: NATS_SERVER });
10
+ // Subscribe to the subject
11
+ const subscription = connection.subscribe(subject);
12
+ console.log(`Subscribed to subject ${subject}`);
13
+ // Process messages received on the subscribed subject
14
+ (async () => {
15
+ // Error decoding message: Error: Could not encrypt message={}
16
+ // Error: Poseidon.Sponge(): bindings are not initialized, try calling `await initializeBindings()` first.
17
+ // This shouldn't have happened and indicates an internal bug.
18
+ await initializeBindings();
19
+ for await (const msg of subscription) {
22
20
  try {
23
- for (var _d = true, subscription_1 = __asyncValues(subscription), subscription_1_1; subscription_1_1 = yield subscription_1.next(), _a = subscription_1_1.done, !_a; _d = true) {
24
- _c = subscription_1_1.value;
25
- _d = false;
26
- const msg = _c;
27
- try {
28
- const data = codec.decode(msg.data);
29
- //console.log(`Received message on subject ${subject}:`, data);
30
- // Perform processing logic here
31
- const { post, params } = data;
32
- // console.log(`Post: `, post, params);
33
- switch (post) {
34
- case "ready":
35
- {
36
- // the workers announces it is ready
37
- // and we receive the worker's publicKey
38
- let workerKey = params.key || "";
39
- console.log("Received 'ready' message from worker");
40
- console.log("Worker publicKey: ", workerKey);
41
- // we will use its key to encrypt the message
42
- const encryptedPayload = CipherText.encrypt(JSON.stringify({
43
- value: Math.ceil(Math.random() * 100).toString(),
44
- }), workerKey);
45
- console.log("Encrypted payload: ", encryptedPayload);
46
- // we reply with the command we want the worker to execute
47
- // and with the encrypted payload
48
- msg.respond(codec.encode({
49
- success: true,
50
- data: {
51
- command: "execute",
52
- encrypted: encryptedPayload,
53
- },
54
- error: undefined,
55
- }));
56
- }
57
- break;
58
- case "done":
59
- {
60
- let result = params.result || "";
61
- console.log("Received 'done' message from worker");
62
- msg.respond(codec.encode({
63
- success: true,
64
- data: { status: "closed" },
65
- error: undefined,
66
- }));
67
- // we want to insure that messages that are in flight
68
- // get processed, so we are going to drain the
69
- // connection. Drain is the same as close, but makes
70
- // sure that all messages in flight get seen
71
- // by the iterator. After calling drain on the connection
72
- // the connection closes.
73
- setTimeout(() => __awaiter(this, void 0, void 0, function* () {
74
- yield connection.drain();
75
- }), 1000);
76
- }
77
- break;
21
+ const data = codec.decode(msg.data);
22
+ //console.log(`Received message on subject ${subject}:`, data);
23
+ // Perform processing logic here
24
+ const { post, params } = data;
25
+ // console.log(`Post: `, post, params);
26
+ switch (post) {
27
+ case "ready":
28
+ {
29
+ // the workers announces it is ready
30
+ // and we receive the worker's publicKey
31
+ let workerKey = params.key || "";
32
+ console.log("Received 'ready' message from worker");
33
+ console.log("Worker publicKey: ", workerKey);
34
+ // we will use its key to encrypt the message
35
+ const encryptedPayload = CipherText.encrypt(JSON.stringify({
36
+ value: Math.ceil(Math.random() * 100).toString(),
37
+ }), workerKey);
38
+ console.log("Encrypted payload: ", encryptedPayload);
39
+ // we reply with the command we want the worker to execute
40
+ // and with the encrypted payload
41
+ msg.respond(codec.encode({
42
+ success: true,
43
+ data: {
44
+ command: "execute",
45
+ encrypted: encryptedPayload,
46
+ },
47
+ error: undefined,
48
+ }));
78
49
  }
79
- }
80
- catch (err) {
81
- console.error("Error decoding message: ", err);
82
- }
50
+ break;
51
+ case "done":
52
+ {
53
+ let result = params.result || "";
54
+ console.log("Received 'done' message from worker");
55
+ msg.respond(codec.encode({
56
+ success: true,
57
+ data: { status: "closed" },
58
+ error: undefined,
59
+ }));
60
+ // we want to insure that messages that are in flight
61
+ // get processed, so we are going to drain the
62
+ // connection. Drain is the same as close, but makes
63
+ // sure that all messages in flight get seen
64
+ // by the iterator. After calling drain on the connection
65
+ // the connection closes.
66
+ setTimeout(async () => {
67
+ await connection.drain();
68
+ }, 1000);
69
+ }
70
+ break;
83
71
  }
84
72
  }
85
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
- finally {
87
- try {
88
- if (!_d && !_a && (_b = subscription_1.return)) yield _b.call(subscription_1);
89
- }
90
- finally { if (e_1) throw e_1.error; }
73
+ catch (err) {
74
+ console.error("Error decoding message: ", err);
91
75
  }
92
- }))();
93
- });
76
+ }
77
+ })();
94
78
  }
95
79
  //# sourceMappingURL=nats-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nats-client.js","sourceRoot":"","sources":["../../../../../src/encryption/nats-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nats-client.js","sourceRoot":"","sources":["../../../../../src/encryption/nats-client.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
- import { __awaiter } from "tslib";
2
1
  import { UInt64 } from "o1js";
3
2
  import config from "./config";
4
- export function fee() {
5
- return __awaiter(this, void 0, void 0, function* () {
6
- //TODO: update after mainnet launch
7
- return UInt64.fromJSON(config.MINAFEE);
8
- });
3
+ export async function fee() {
4
+ //TODO: update after mainnet launch
5
+ return UInt64.fromJSON(config.MINAFEE);
9
6
  }
10
7
  //# sourceMappingURL=fee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../src/fee.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,UAAgB,GAAG;;QACvB,mCAAmC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CAAA"}
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../src/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,mCAAmC;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
@@ -5,9 +5,10 @@ export * from "./cloud/job";
5
5
  export * from "./cloud/task";
6
6
  export * from "./mina";
7
7
  export * from "./fee";
8
- export * from "./fetch";
9
8
  export * from "./networks";
10
- export * from "./api/client-api";
11
9
  export * from "./encryption/encryption";
12
10
  export * from "./encryption/nats-client";
13
11
  export * from "./encryption/messages";
12
+ export * from "./utils/fields";
13
+ export * from "./utils/base64";
14
+ export * from "./utils/fetch";
@@ -5,10 +5,11 @@ export * from "./cloud/job";
5
5
  export * from "./cloud/task";
6
6
  export * from "./mina";
7
7
  export * from "./fee";
8
- export * from "./fetch";
9
8
  export * from "./networks";
10
- export * from "./api/client-api";
11
9
  export * from "./encryption/encryption";
12
10
  export * from "./encryption/nats-client";
13
11
  export * from "./encryption/messages";
12
+ export * from "./utils/fields";
13
+ export * from "./utils/base64";
14
+ export * from "./utils/fetch";
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -1,4 +1,3 @@
1
- import { __awaiter } from "tslib";
2
1
  export { initBlockchain, Memory, makeString, sleep, accountBalance, accountBalanceMina, formatTime, currentNetwork, getNetworkIdHash, getCurrentNetwork, getDeployer, };
3
2
  import { Mina, PrivateKey, UInt64, fetchAccount, Encoding, Poseidon, Lightnet, } from "o1js";
4
3
  import { networks, Local } from "./networks";
@@ -23,80 +22,74 @@ function getDeployer() {
23
22
  return undefined;
24
23
  return currentNetwork.keys[0];
25
24
  }
26
- function initBlockchain(instance_1) {
27
- return __awaiter(this, arguments, void 0, function* (instance, deployersNumber = 0) {
28
- if (instance === "mainnet") {
29
- throw new Error("Mainnet is not supported yet by zkApps");
30
- }
31
- const networkIdHash = Poseidon.hash(Encoding.stringToFields(instance));
32
- // await used for compatibility with future versions of o1js
33
- if (instance === "local") {
34
- const local = yield Mina.LocalBlockchain({
35
- proofsEnabled: true,
36
- });
37
- Mina.setActiveInstance(local);
38
- if (deployersNumber > local.testAccounts.length)
39
- throw new Error("Not enough test accounts");
40
- currentNetwork = {
41
- keys: local.testAccounts,
42
- network: Local,
43
- networkIdHash,
44
- };
45
- return currentNetwork;
46
- }
47
- const network = networks.find((n) => n.chainId === instance);
48
- if (network === undefined) {
49
- throw new Error("Unknown network");
50
- }
51
- const networkInstance = Mina.Network({
52
- mina: network.mina,
53
- archive: network.archive,
54
- lightnetAccountManager: network.accountManager,
25
+ async function initBlockchain(instance, deployersNumber = 0) {
26
+ if (instance === "mainnet") {
27
+ throw new Error("Mainnet is not supported yet by zkApps");
28
+ }
29
+ const networkIdHash = Poseidon.hash(Encoding.stringToFields(instance));
30
+ // await used for compatibility with future versions of o1js
31
+ if (instance === "local") {
32
+ const local = await Mina.LocalBlockchain({
33
+ proofsEnabled: true,
55
34
  });
56
- Mina.setActiveInstance(networkInstance);
57
- const keys = [];
58
- if (deployersNumber > 0) {
59
- if (instance === "lighnet") {
60
- for (let i = 0; i < deployersNumber; i++) {
61
- const keyPair = yield Lightnet.acquireKeyPair();
62
- const key = Mina.TestPublicKey(keyPair.privateKey);
63
- keys.push(key);
64
- }
65
- }
66
- else {
67
- const deployers = process.env.DEPLOYERS;
68
- if (deployers === undefined ||
69
- Array.isArray(deployers) === false ||
70
- deployers.length < deployersNumber)
71
- throw new Error("Deployers are not set");
72
- for (let i = 0; i < deployersNumber; i++) {
73
- const privateKey = PrivateKey.fromBase58(deployers[i]);
74
- const key = Mina.TestPublicKey(privateKey);
75
- keys.push(key);
76
- }
77
- }
78
- }
35
+ Mina.setActiveInstance(local);
36
+ if (deployersNumber > local.testAccounts.length)
37
+ throw new Error("Not enough test accounts");
79
38
  currentNetwork = {
80
- keys,
81
- network,
39
+ keys: local.testAccounts,
40
+ network: Local,
82
41
  networkIdHash,
83
42
  };
84
43
  return currentNetwork;
44
+ }
45
+ const network = networks.find((n) => n.chainId === instance);
46
+ if (network === undefined) {
47
+ throw new Error("Unknown network");
48
+ }
49
+ const networkInstance = Mina.Network({
50
+ mina: network.mina,
51
+ archive: network.archive,
52
+ lightnetAccountManager: network.accountManager,
85
53
  });
54
+ Mina.setActiveInstance(networkInstance);
55
+ const keys = [];
56
+ if (deployersNumber > 0) {
57
+ if (instance === "lighnet") {
58
+ for (let i = 0; i < deployersNumber; i++) {
59
+ const keyPair = await Lightnet.acquireKeyPair();
60
+ const key = Mina.TestPublicKey(keyPair.privateKey);
61
+ keys.push(key);
62
+ }
63
+ }
64
+ else {
65
+ const deployers = process.env.DEPLOYERS;
66
+ if (deployers === undefined ||
67
+ Array.isArray(deployers) === false ||
68
+ deployers.length < deployersNumber)
69
+ throw new Error("Deployers are not set");
70
+ for (let i = 0; i < deployersNumber; i++) {
71
+ const privateKey = PrivateKey.fromBase58(deployers[i]);
72
+ const key = Mina.TestPublicKey(privateKey);
73
+ keys.push(key);
74
+ }
75
+ }
76
+ }
77
+ currentNetwork = {
78
+ keys,
79
+ network,
80
+ networkIdHash,
81
+ };
82
+ return currentNetwork;
86
83
  }
87
- function accountBalance(address) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- yield fetchAccount({ publicKey: address });
90
- if (Mina.hasAccount(address))
91
- return Mina.getBalance(address);
92
- else
93
- return UInt64.from(0);
94
- });
84
+ async function accountBalance(address) {
85
+ await fetchAccount({ publicKey: address });
86
+ if (Mina.hasAccount(address))
87
+ return Mina.getBalance(address);
88
+ else
89
+ return UInt64.from(0);
95
90
  }
96
- function accountBalanceMina(address) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- return Number((yield accountBalance(address)).toBigInt()) / 1e9;
99
- });
91
+ async function accountBalanceMina(address) {
92
+ return Number((await accountBalance(address)).toBigInt()) / 1e9;
100
93
  }
101
94
  function sleep(ms) {
102
95
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -1 +1 @@
1
- {"version":3,"file":"mina.js","sourceRoot":"","sources":["../../../../src/mina.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mina.js","sourceRoot":"","sources":["../../../../src/mina.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Field } from "o1js";
2
+ export declare function fieldToBase64(field: Field): string;
3
+ export declare function bigintToBase64(value: bigint): string;
4
+ export declare function fieldFromBase64(str: string): Field;
5
+ export declare function bigintFromBase64(str: string): bigint;
@@ -0,0 +1,84 @@
1
+ import { Field } from "o1js";
2
+ // URL friendly base64 encoding
3
+ const TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
4
+ export function fieldToBase64(field) {
5
+ const digits = toBase(field.toBigInt(), 64n);
6
+ //console.log("digits:", digits);
7
+ const str = digits.map((x) => TABLE[Number(x)]).join("");
8
+ //console.log("str:", str);
9
+ return str;
10
+ }
11
+ export function bigintToBase64(value) {
12
+ const digits = toBase(value, 64n);
13
+ //console.log("digits:", digits);
14
+ const str = digits.map((x) => TABLE[Number(x)]).join("");
15
+ //console.log("str:", str);
16
+ return str;
17
+ }
18
+ export function fieldFromBase64(str) {
19
+ const base64Digits = str.split("").map((x) => BigInt(TABLE.indexOf(x)));
20
+ const x = fromBase(base64Digits, 64n);
21
+ return Field(x);
22
+ }
23
+ export function bigintFromBase64(str) {
24
+ const base64Digits = str.split("").map((x) => BigInt(TABLE.indexOf(x)));
25
+ const x = fromBase(base64Digits, 64n);
26
+ return x;
27
+ }
28
+ function fromBase(digits, base) {
29
+ if (base <= 0n)
30
+ throw Error("fromBase: base must be positive");
31
+ // compute powers base, base^2, base^4, ..., base^(2^k)
32
+ // with largest k s.t. n = 2^k < digits.length
33
+ let basePowers = [];
34
+ for (let power = base, n = 1; n < digits.length; power **= 2n, n *= 2) {
35
+ basePowers.push(power);
36
+ }
37
+ let k = basePowers.length;
38
+ // pad digits array with zeros s.t. digits.length === 2^k
39
+ digits = digits.concat(Array(2 ** k - digits.length).fill(0n));
40
+ // accumulate [x0, x1, x2, x3, ...] -> [x0 + base*x1, x2 + base*x3, ...] -> [x0 + base*x1 + base^2*(x2 + base*x3), ...] -> ...
41
+ // until we end up with a single element
42
+ for (let i = 0; i < k; i++) {
43
+ let newDigits = Array(digits.length >> 1);
44
+ let basePower = basePowers[i];
45
+ for (let j = 0; j < newDigits.length; j++) {
46
+ newDigits[j] = digits[2 * j] + basePower * digits[2 * j + 1];
47
+ }
48
+ digits = newDigits;
49
+ }
50
+ console.assert(digits.length === 1);
51
+ let [digit] = digits;
52
+ return digit;
53
+ }
54
+ function toBase(x, base) {
55
+ if (base <= 0n)
56
+ throw Error("toBase: base must be positive");
57
+ // compute powers base, base^2, base^4, ..., base^(2^k)
58
+ // with largest k s.t. base^(2^k) < x
59
+ let basePowers = [];
60
+ for (let power = base; power <= x; power **= 2n) {
61
+ basePowers.push(power);
62
+ }
63
+ let digits = [x]; // single digit w.r.t base^(2^(k+1))
64
+ // successively split digits w.r.t. base^(2^j) into digits w.r.t. base^(2^(j-1))
65
+ // until we arrive at digits w.r.t. base
66
+ let k = basePowers.length;
67
+ for (let i = 0; i < k; i++) {
68
+ let newDigits = Array(2 * digits.length);
69
+ let basePower = basePowers[k - 1 - i];
70
+ for (let j = 0; j < digits.length; j++) {
71
+ let x = digits[j];
72
+ let high = x / basePower;
73
+ newDigits[2 * j + 1] = high;
74
+ newDigits[2 * j] = x - high * basePower;
75
+ }
76
+ digits = newDigits;
77
+ }
78
+ // pop "leading" zero digits
79
+ while (digits[digits.length - 1] === 0n) {
80
+ digits.pop();
81
+ }
82
+ return digits;
83
+ }
84
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../../src/utils/base64.ts"],"names":[],"mappings":"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"}