@sabaaa1/common 0.0.27 → 0.0.29

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 (34) hide show
  1. package/assets/snarkjs.worker-IfEWh7KB.js +14803 -0
  2. package/assets/{zkProofWorkerLogic-DB9cbXu-.js → utxo.worker-CmpqHMqD.js} +16093 -14906
  3. package/assets/{utxoWorkerLogic-DEqWaadT.js → zkProof.worker-CmpqHMqD.js} +16723 -16044
  4. package/index.cjs +1 -1
  5. package/index.d.ts +2 -0
  6. package/index.mjs +115 -111
  7. package/package.json +1 -1
  8. package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -0
  9. package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +40 -0
  10. package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -0
  11. package/webworker/utxoWorker/utxoWorkerLogic.mjs +76 -0
  12. package/webworker/workerFactory.cjs +1 -1
  13. package/webworker/workerFactory.d.ts +3 -3
  14. package/webworker/workerFactory.mjs +30 -16
  15. package/webworker/workerProxy.cjs +1 -0
  16. package/webworker/workerProxy.mjs +54 -0
  17. package/webworker/workers/snarkjs.worker.d.ts +0 -0
  18. package/webworker/workers/utxo.worker.d.ts +0 -0
  19. package/webworker/workers/zkProof.worker.d.ts +0 -0
  20. package/webworker/zkProofWorker/zkProofWorkerLogic.cjs +1 -0
  21. package/webworker/zkProofWorker/zkProofWorkerLogic.mjs +52 -0
  22. package/assets/snarkjsWorkerLauncher-Dsmwcy9L.js +0 -1176
  23. package/assets/snarkjsWorkerLogic-B9NbAQYW.js +0 -13634
  24. package/assets/utxoWorkerLauncher-BUSzpnDL.js +0 -1205
  25. package/assets/zkProofWorkerLauncher-CoKmCKjC.js +0 -1205
  26. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +0 -1
  27. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +0 -4
  28. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +0 -1
  29. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +0 -4
  30. package/webworker/viteWorkerURL.constant.cjs +0 -1
  31. package/webworker/viteWorkerURL.constant.d.ts +0 -9
  32. package/webworker/viteWorkerURL.constant.mjs +0 -12
  33. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +0 -1
  34. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +0 -4
@@ -0,0 +1,40 @@
1
+ import { WorkerProxy as b } from "../workerProxy.mjs";
2
+ import { isNode as i, isWebpack as d } from "../../constants/vite.constants.mjs";
3
+ import * as m from "snarkjs";
4
+ import x from "axios";
5
+ const l = new b(), w = async (r) => {
6
+ const { data: e } = await x.get(r, { responseType: "arraybuffer" });
7
+ return new Uint8Array(e);
8
+ }, z = async (r) => {
9
+ try {
10
+ const { input: e, wasmFilePath: s, zKeyFilePath: o, chainId: $ } = r.payload.data, {
11
+ hostLocation: { origin: n },
12
+ constants: {
13
+ isDevelopment: g,
14
+ chains: { chainIds: k }
15
+ }
16
+ } = r.metadata;
17
+ let t = s, a = o, c, h;
18
+ const f = t.startsWith("https://");
19
+ if (i && !f) {
20
+ d ? (t = `libs/hardhat/test/circuits/${s}`, a = `libs/hardhat/test/circuits/${o}`) : !d && g && (t = `test/circuits/${s}`, a = `test/circuits/${o}`);
21
+ const y = require("path");
22
+ t = y.resolve(t), a = y.resolve(a);
23
+ }
24
+ i && f ? (c = await w(t), h = await w(a)) : $ === k.localhost && !i && (t = `${n}/${s}`, a = `${n}/${o}`);
25
+ const { proof: p, publicSignals: u } = await m.groth16.fullProve(
26
+ e,
27
+ c ?? t,
28
+ h ?? a
29
+ ), F = await m.groth16.exportSolidityCallData(p, u), P = JSON.parse(`[${F}]`);
30
+ l.postMessageToMainThread({ zkCallData: P, proof: p, publicSignals: u });
31
+ } catch (e) {
32
+ console.error(e), l.postErrorToMainThread(e);
33
+ }
34
+ };
35
+ l.attachWorkerSideOnMessage(z);
36
+ export {
37
+ l as default,
38
+ w as fetchUint8Array,
39
+ z as onWorkerMessage
40
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("../../crypto/preProcessing.cjs"),a=require("../../data-structures/crypto-keys/keys.cjs"),T=require("../../data-structures/utxo/Utxo.cjs"),h=require("../../data-structures/crypto-keys/encryptDecryptUtxo.cjs"),y=require("../../data-structures/crypto-keys/decodeUTXO.cjs"),k=require("../workerProxy.cjs"),d=require("./utxoWorker.types.cjs"),c=new k.WorkerProxy,p=async({data:e})=>{const{utxos:r,nullifiers:s}=e,o=r.filter(t=>{const u=new T.Utxo(t);return!s.has(u.getNullifier())});c.postMessageToMainThread({utxoConstructors:o,stealthPairCache:a.stealthPairCacheDevice.serialize(),stealthAddressCache:a.stealthAddressCacheDevice.serialize()})},U=async({data:e})=>{const r=new a.UserKeys(e.signature),s=r.getShieldedPrivateKey(),o=e.encryptedOutputs.map(t=>{try{return t.isPositive?h.decryptUtxoConstructorArgs(Buffer.from(t.value.slice(2),"hex"),r):y.decodeUtxoConstructorArgs(t.value,s)}catch{return}}).filter(t=>t!==void 0&&t.amount!==0n);c.postMessageToMainThread(o)},x=async({data:e})=>{const r=new a.UserKeys(e.signature),s=[],{encryptedOutputs:o}=e;let{lastOutput:t}=e;const u=r.getShieldedPrivateKey();for(let l=0;l<o.length;l+=1){const n=o[l];if(t=n.value,n.isPositive)try{const i=h.decryptUtxo(Buffer.from(t.slice(2),"hex"),r);if(!i.erc20TokenAddress||!i.amount||!i.stealthAddress)throw Error("bruh");s.push(n)}catch{}else try{y.checkUtxoSignature(t,u)&&s.push(n)}catch{}}c.postMessageToMainThread({additionalEncryptedOutputs:s,lastOutput:t})},g=async e=>{try{await f.preProcessing();const{type:r}=e.payload;switch(r){case d.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER:await p(e.payload);return;case d.UtxoWorkerActionType.BUILD_UTXOS:await U(e.payload);return;case d.UtxoWorkerActionType.DECIPHER_OUTPUTS:await x(e.payload);return;default:throw Error(`Unknown worker message type ${r}`)}}catch(r){console.error(r),c.postErrorToMainThread(r)}};c.attachWorkerSideOnMessage(g);exports.default=c;exports.handleBuildUtxosMessage=U;exports.handleDecipherMessage=x;exports.handleFilterUtxosWithNullifier=p;exports.onWorkerMessage=g;
@@ -0,0 +1,76 @@
1
+ import { preProcessing as u } from "../../crypto/preProcessing.mjs";
2
+ import { stealthPairCacheDevice as p, stealthAddressCacheDevice as y, UserKeys as h } from "../../data-structures/crypto-keys/keys.mjs";
3
+ import { Utxo as f } from "../../data-structures/utxo/Utxo.mjs";
4
+ import { decryptUtxoConstructorArgs as m, decryptUtxo as g } from "../../data-structures/crypto-keys/encryptDecryptUtxo.mjs";
5
+ import { decodeUtxoConstructorArgs as x, checkUtxoSignature as U } from "../../data-structures/crypto-keys/decodeUTXO.mjs";
6
+ import { WorkerProxy as T } from "../workerProxy.mjs";
7
+ import { UtxoWorkerActionType as d } from "./utxoWorker.types.mjs";
8
+ const i = new T(), w = async ({ data: e }) => {
9
+ const { utxos: r, nullifiers: s } = e, o = r.filter((t) => {
10
+ const n = new f(t);
11
+ return !s.has(n.getNullifier());
12
+ });
13
+ i.postMessageToMainThread({
14
+ utxoConstructors: o,
15
+ stealthPairCache: p.serialize(),
16
+ stealthAddressCache: y.serialize()
17
+ });
18
+ }, P = async ({ data: e }) => {
19
+ const r = new h(e.signature), s = r.getShieldedPrivateKey(), o = e.encryptedOutputs.map((t) => {
20
+ try {
21
+ return t.isPositive ? m(Buffer.from(t.value.slice(2), "hex"), r) : x(t.value, s);
22
+ } catch {
23
+ return;
24
+ }
25
+ }).filter((t) => t !== void 0 && t.amount !== 0n);
26
+ i.postMessageToMainThread(o);
27
+ }, v = async ({ data: e }) => {
28
+ const r = new h(e.signature), s = [], { encryptedOutputs: o } = e;
29
+ let { lastOutput: t } = e;
30
+ const n = r.getShieldedPrivateKey();
31
+ for (let l = 0; l < o.length; l += 1) {
32
+ const c = o[l];
33
+ if (t = c.value, c.isPositive)
34
+ try {
35
+ const a = g(Buffer.from(t.slice(2), "hex"), r);
36
+ if (!a.erc20TokenAddress || !a.amount || !a.stealthAddress)
37
+ throw Error("bruh");
38
+ s.push(c);
39
+ } catch {
40
+ }
41
+ else
42
+ try {
43
+ U(t, n) && s.push(c);
44
+ } catch {
45
+ }
46
+ }
47
+ i.postMessageToMainThread({ additionalEncryptedOutputs: s, lastOutput: t });
48
+ }, k = async (e) => {
49
+ try {
50
+ await u();
51
+ const { type: r } = e.payload;
52
+ switch (r) {
53
+ case d.BATCH_FILTER_UTXOS_WITH_NULLIFIER:
54
+ await w(e.payload);
55
+ return;
56
+ case d.BUILD_UTXOS:
57
+ await P(e.payload);
58
+ return;
59
+ case d.DECIPHER_OUTPUTS:
60
+ await v(e.payload);
61
+ return;
62
+ default:
63
+ throw Error(`Unknown worker message type ${r}`);
64
+ }
65
+ } catch (r) {
66
+ console.error(r), i.postErrorToMainThread(r);
67
+ }
68
+ };
69
+ i.attachWorkerSideOnMessage(k);
70
+ export {
71
+ i as default,
72
+ P as handleBuildUtxosMessage,
73
+ v as handleDecipherMessage,
74
+ w as handleFilterUtxosWithNullifier,
75
+ k as onWorkerMessage
76
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../constants/vite.constants.cjs");const n=require("./viteWorkerURL.constant.cjs");class t{static workers=new Map;static createWorker=async e=>{if(typeof window>"u")throw new Error("WebWorker cannot be created outside browser environment");const o=(await n.getWorkerViteURL())[e];if(!o)throw new Error(`Worker URL not found for variant ${e}`);return new Worker(o,{type:"module"})};static getWebWorker(e){let r=this.workers.get(e);return r||(r=t.createWorker(e),this.workers.set(e,r)),r}}exports.WorkerFactory=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../constants/vite.constants.cjs"),r=require("./worker.registry.cjs");var t=typeof document<"u"?document.currentScript:null;class o{static async createNodeWorker(e){switch(e){case r.WorkerVariant.SnarkJS:return(await Promise.resolve().then(()=>require("./snarkjsWorker/snarkjsWorkerLogic.cjs"))).default;case r.WorkerVariant.ZKProof:return(await Promise.resolve().then(()=>require("./zkProofWorker/zkProofWorkerLogic.cjs"))).default;case r.WorkerVariant.UTXO:return(await Promise.resolve().then(()=>require("./utxoWorker/utxoWorkerLogic.cjs"))).default;default:throw new Error(`Unknown worker type: ${e}`)}}static createBrowserWorker(e){switch(e){case r.WorkerVariant.SnarkJS:return new Worker(new URL(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../assets/snarkjs.worker-IfEWh7KB.js").href:new URL("../assets/snarkjs.worker-IfEWh7KB.js",document.currentScript&&document.currentScript.src||document.baseURI).href),typeof document>"u"?require("url").pathToFileURL(__filename).href:t&&t.src||new URL("webworker/workerFactory.cjs",document.baseURI).href),{type:"module"});case r.WorkerVariant.ZKProof:return new Worker(new URL(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../assets/zkProof.worker-CmpqHMqD.js").href:new URL("../assets/zkProof.worker-CmpqHMqD.js",document.currentScript&&document.currentScript.src||document.baseURI).href),typeof document>"u"?require("url").pathToFileURL(__filename).href:t&&t.src||new URL("webworker/workerFactory.cjs",document.baseURI).href),{type:"module"});case r.WorkerVariant.UTXO:return new Worker(new URL(""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../assets/utxo.worker-CmpqHMqD.js").href:new URL("../assets/utxo.worker-CmpqHMqD.js",document.currentScript&&document.currentScript.src||document.baseURI).href),typeof document>"u"?require("url").pathToFileURL(__filename).href:t&&t.src||new URL("webworker/workerFactory.cjs",document.baseURI).href),{type:"module"});default:throw new Error(`Unknown worker type: ${e}`)}}static async getWebWorker(e){return n.isNode||n.isSandbox?o.createNodeWorker(e):o.createBrowserWorker(e)}}exports.WorkerFactory=o;
@@ -1,6 +1,6 @@
1
1
  import { WorkerVariant } from './worker.registry';
2
2
  export declare class WorkerFactory {
3
- private static workers;
4
- private static createWorker;
5
- static getWebWorker(workerVariant: WorkerVariant): Promise<any>;
3
+ private static createNodeWorker;
4
+ private static createBrowserWorker;
5
+ static getWebWorker(workerVariant: WorkerVariant): Promise<import('./workerProxy').WorkerProxy | Worker>;
6
6
  }
@@ -1,20 +1,34 @@
1
- import "../constants/vite.constants.mjs";
2
- import { getWorkerViteURL as s } from "./viteWorkerURL.constant.mjs";
3
- class o {
4
- static workers = /* @__PURE__ */ new Map();
5
- static createWorker = async (r) => {
6
- if (typeof window > "u")
7
- throw new Error("WebWorker cannot be created outside browser environment");
8
- const t = (await s())[r];
9
- if (!t)
10
- throw new Error(`Worker URL not found for variant ${r}`);
11
- return new Worker(t, { type: "module" });
12
- };
13
- static getWebWorker(r) {
14
- let e = this.workers.get(r);
15
- return e || (e = o.createWorker(r), this.workers.set(r, e)), e;
1
+ import { isNode as o, isSandbox as a } from "../constants/vite.constants.mjs";
2
+ import { WorkerVariant as e } from "./worker.registry.mjs";
3
+ class t {
4
+ static async createNodeWorker(r) {
5
+ switch (r) {
6
+ case e.SnarkJS:
7
+ return (await import("./snarkjsWorker/snarkjsWorkerLogic.mjs")).default;
8
+ case e.ZKProof:
9
+ return (await import("./zkProofWorker/zkProofWorkerLogic.mjs")).default;
10
+ case e.UTXO:
11
+ return (await import("./utxoWorker/utxoWorkerLogic.mjs")).default;
12
+ default:
13
+ throw new Error(`Unknown worker type: ${r}`);
14
+ }
15
+ }
16
+ static createBrowserWorker(r) {
17
+ switch (r) {
18
+ case e.SnarkJS:
19
+ return new Worker(new URL("" + new URL("../assets/snarkjs.worker-IfEWh7KB.js", import.meta.url).href, import.meta.url), { type: "module" });
20
+ case e.ZKProof:
21
+ return new Worker(new URL("" + new URL("../assets/zkProof.worker-CmpqHMqD.js", import.meta.url).href, import.meta.url), { type: "module" });
22
+ case e.UTXO:
23
+ return new Worker(new URL("" + new URL("../assets/utxo.worker-CmpqHMqD.js", import.meta.url).href, import.meta.url), { type: "module" });
24
+ default:
25
+ throw new Error(`Unknown worker type: ${r}`);
26
+ }
27
+ }
28
+ static async getWebWorker(r) {
29
+ return o || a ? t.createNodeWorker(r) : t.createBrowserWorker(r);
16
30
  }
17
31
  }
18
32
  export {
19
- o as WorkerFactory
33
+ t as WorkerFactory
20
34
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class s{isNode=!1;isSandbox=!1;onmessage=null;onerror=null;_eventEmitter;get eventEmitter(){if(this._eventEmitter)return this._eventEmitter;if(this.isNode){const e=require("events");this._eventEmitter=new e}else this._eventEmitter=new EventTarget;return this._eventEmitter}constructor(){this.isNode=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,this.isSandbox=typeof window<"u"&&window.origin==="null"}terminate(){}postMessage(e){this.isNode?this.eventEmitter.emit("message",e):this.isSandbox?this.eventEmitter?.dispatchEvent(new CustomEvent("worker-message",{detail:e})):postMessage(e)}postMessageToMainThread(e){const t={data:e};this.onmessage?this.onmessage(t):postMessage(e)}postErrorToMainThread(e){const t={data:{error:e}};this.onerror?this.onerror(t):postMessage(e)}attachWorkerSideOnMessage(e){this.isNode?this.eventEmitter.on("message",t=>{e(t)}):this.isSandbox&&this.eventEmitter.addEventListener("worker-message",t=>{e(t.detail)})}}exports.WorkerProxy=s;
@@ -0,0 +1,54 @@
1
+ class i {
2
+ isNode = !1;
3
+ isSandbox = !1;
4
+ /**
5
+ * This allow browser or main thread to listen for worker response message
6
+ * using the normal `worker.onmessage = () => {}` syntax. Is should only be side on the
7
+ * main thread side, not on worker side.
8
+ */
9
+ onmessage = null;
10
+ /**
11
+ * This allow browser or main thread to listen for worker response message
12
+ * using the normal `worker.onerror = () => {}` syntax. Is should only be side on the
13
+ * main thread side, not on worker side.
14
+ */
15
+ onerror = null;
16
+ _eventEmitter;
17
+ // node EventEmitter
18
+ get eventEmitter() {
19
+ if (this._eventEmitter)
20
+ return this._eventEmitter;
21
+ if (this.isNode) {
22
+ const e = require("events");
23
+ this._eventEmitter = new e();
24
+ } else
25
+ this._eventEmitter = new EventTarget();
26
+ return this._eventEmitter;
27
+ }
28
+ constructor() {
29
+ this.isNode = typeof process < "u" && process.versions != null && process.versions.node != null, this.isSandbox = typeof window < "u" && window.origin === "null";
30
+ }
31
+ terminate() {
32
+ }
33
+ postMessage(e) {
34
+ this.isNode ? this.eventEmitter.emit("message", e) : this.isSandbox ? this.eventEmitter?.dispatchEvent(new CustomEvent("worker-message", { detail: e })) : postMessage(e);
35
+ }
36
+ postMessageToMainThread(e) {
37
+ const t = { data: e };
38
+ this.onmessage ? this.onmessage(t) : postMessage(e);
39
+ }
40
+ postErrorToMainThread(e) {
41
+ const t = { data: { error: e } };
42
+ this.onerror ? this.onerror(t) : postMessage(e);
43
+ }
44
+ attachWorkerSideOnMessage(e) {
45
+ this.isNode ? this.eventEmitter.on("message", (t) => {
46
+ e(t);
47
+ }) : this.isSandbox && this.eventEmitter.addEventListener("worker-message", (t) => {
48
+ e(t.detail);
49
+ });
50
+ }
51
+ }
52
+ export {
53
+ i as WorkerProxy
54
+ };
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("../../crypto/preProcessing.cjs"),A=require("../../data-structures/crypto-keys/keys.cjs"),S=require("../../data-structures/utxo/Utxo.cjs"),m=require("../../functions/snarkjs/common.snarkjs.cjs"),C=require("../workerProxy.cjs"),d=require("./zkProofWorker.types.cjs"),u=require("../../functions/utils/merkleTree.utils.cjs"),t=new C.WorkerProxy,p=r=>{const{inputUtxosSerialized:e,merkleTreeSerialized:a}=r.data,c=u.contructMerkleTreeFromSerialized(a),i=e.map(n=>n.map(l=>new S.Utxo(l))),{inCommitmentSiblings:s,inCommitmentSiblingSides:o}=m.calcCommitmentsSiblingAndSides(i,c);t.postMessageToMainThread({inCommitmentSiblings:s,inCommitmentSiblingSides:o})},k=r=>{const{userSignature:e,merkleTreeAccessTokenSerialized:a}=r.data,c=new A.UserKeys(e),i=u.contructMerkleTreeFromSerialized(a),{accessTokenSiblings:s,accessTokenSiblingSides:o}=m.calcAccessTokenSiblingsAndSides(c,i);t.postMessageToMainThread({accessTokenSiblings:s,accessTokenSiblingSides:o})},T=r=>{const{inputUtxosSerialized:e,onChainCreation:a,proverVersion:c}=r.data,i=e.map(o=>o.map(n=>new S.Utxo(n)));let s=[];c==="v1x0"?s=i.map((o,n)=>o.map(l=>a[n]?"0":l.getNullifier())):s=i.map(o=>o.map(n=>n.amount===0n?"0":n.getNullifier())),t.postMessageToMainThread(s)},g=async r=>{try{await y.preProcessing();const{type:e}=r.payload;switch(e){case d.ZKProofWorkerActionType.CALC_COMMITMENTS_SIBLING_AND_SIDES:p(r.payload);return;case d.ZKProofWorkerActionType.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES:k(r.payload);return;case d.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS:T(r.payload);return;default:throw Error(`Unknown worker message type ${e}`)}}catch(e){console.error(e),t.postErrorToMainThread(e)}};t.attachWorkerSideOnMessage(g);exports.default=t;exports.handleBuildInNullifiers=T;exports.handleCalcAccessTokenSiblingAndSides=k;exports.handleCalcCommitmentsSiblingAndSides=p;exports.onWorkerMessage=g;
@@ -0,0 +1,52 @@
1
+ import { preProcessing as d } from "../../crypto/preProcessing.mjs";
2
+ import { UserKeys as T } from "../../data-structures/crypto-keys/keys.mjs";
3
+ import { Utxo as p } from "../../data-structures/utxo/Utxo.mjs";
4
+ import { calcCommitmentsSiblingAndSides as g, calcAccessTokenSiblingsAndSides as u } from "../../functions/snarkjs/common.snarkjs.mjs";
5
+ import { WorkerProxy as k } from "../workerProxy.mjs";
6
+ import { ZKProofWorkerActionType as m } from "./zkProofWorker.types.mjs";
7
+ import { contructMerkleTreeFromSerialized as S } from "../../functions/utils/merkleTree.utils.mjs";
8
+ const c = new k(), C = (r) => {
9
+ const { inputUtxosSerialized: e, merkleTreeSerialized: t } = r.data, a = S(t), i = e.map(
10
+ (n) => n.map((l) => new p(l))
11
+ ), { inCommitmentSiblings: s, inCommitmentSiblingSides: o } = g(i, a);
12
+ c.postMessageToMainThread({ inCommitmentSiblings: s, inCommitmentSiblingSides: o });
13
+ }, f = (r) => {
14
+ const { userSignature: e, merkleTreeAccessTokenSerialized: t } = r.data, a = new T(e), i = S(t), { accessTokenSiblings: s, accessTokenSiblingSides: o } = u(a, i);
15
+ c.postMessageToMainThread({ accessTokenSiblings: s, accessTokenSiblingSides: o });
16
+ }, y = (r) => {
17
+ const { inputUtxosSerialized: e, onChainCreation: t, proverVersion: a } = r.data, i = e.map(
18
+ (o) => o.map((n) => new p(n))
19
+ );
20
+ let s = [];
21
+ a === "v1x0" ? s = i.map(
22
+ (o, n) => o.map((l) => t[n] ? "0" : l.getNullifier())
23
+ ) : s = i.map((o) => o.map((n) => n.amount === 0n ? "0" : n.getNullifier())), c.postMessageToMainThread(s);
24
+ }, A = async (r) => {
25
+ try {
26
+ await d();
27
+ const { type: e } = r.payload;
28
+ switch (e) {
29
+ case m.CALC_COMMITMENTS_SIBLING_AND_SIDES:
30
+ C(r.payload);
31
+ return;
32
+ case m.CALC_ACCESS_TOKEN_SIBLING_AND_SIDES:
33
+ f(r.payload);
34
+ return;
35
+ case m.BUILD_IN_NULLIFIERS:
36
+ y(r.payload);
37
+ return;
38
+ default:
39
+ throw Error(`Unknown worker message type ${e}`);
40
+ }
41
+ } catch (e) {
42
+ console.error(e), c.postErrorToMainThread(e);
43
+ }
44
+ };
45
+ c.attachWorkerSideOnMessage(A);
46
+ export {
47
+ c as default,
48
+ y as handleBuildInNullifiers,
49
+ f as handleCalcAccessTokenSiblingAndSides,
50
+ C as handleCalcCommitmentsSiblingAndSides,
51
+ A as onWorkerMessage
52
+ };