zkcloudworker 0.5.1 → 0.5.3

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.
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":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe;IAC1C,yDAAyD;IACzD,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAE1B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAE3D,2BAA2B;IAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IAEhD,sDAAsD;IACtD,CAAC,KAAK,IAAI,EAAE;QACV,+DAA+D;QAC/D,0GAA0G;QAC1G,8DAA8D;QAC9D,MAAM,kBAAkB,EAAE,CAAC;QAE3B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAQ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzC,+DAA+D;gBAE/D,gCAAgC;gBAChC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBAC9B,uCAAuC;gBAEvC,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,OAAO;wBACV,CAAC;4BACC,oCAAoC;4BACpC,wCAAwC;4BACxC,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;4BACjC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;4BACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;4BAE7C,6CAA6C;4BAC7C,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CACzC,IAAI,CAAC,SAAS,CAAC;gCACb,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE;6BACjD,CAAC,EACF,SAAS,CACV,CAAC;4BACF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;4BAErD,0DAA0D;4BAC1D,iCAAiC;4BACjC,GAAG,CAAC,OAAO,CACT,KAAK,CAAC,MAAM,CAAC;gCACX,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE;oCACJ,OAAO,EAAE,SAAS;oCAClB,SAAS,EAAE,gBAAgB;iCAC5B;gCACD,KAAK,EAAE,SAAS;6BACjB,CAAC,CACH,CAAC;wBACJ,CAAC;wBACD,MAAM;oBAER,KAAK,MAAM;wBACT,CAAC;4BACC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;4BACjC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;4BACnD,GAAG,CAAC,OAAO,CACT,KAAK,CAAC,MAAM,CAAC;gCACX,OAAO,EAAE,IAAI;gCACb,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;gCAC1B,KAAK,EAAE,SAAS;6BACjB,CAAC,CACH,CAAC;4BAEF,qDAAqD;4BACrD,8CAA8C;4BAC9C,oDAAoD;4BACpD,4CAA4C;4BAC5C,yDAAyD;4BACzD,yBAAyB;4BACzB,UAAU,CAAC,KAAK,IAAI,EAAE;gCACpB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;4BAC3B,CAAC,EAAE,IAAI,CAAC,CAAC;wBACX,CAAC;wBACD,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -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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"}