@sabaaa1/common 0.1.1 → 0.1.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 (48) hide show
  1. package/assets/snarkjsWorkerLauncher-B7rmy0gx.js +1176 -0
  2. package/assets/snarkjsWorkerLogic-C3GGRlcw.js +13682 -0
  3. package/assets/utxoWorkerLauncher-BP1uNzSU.js +1205 -0
  4. package/assets/{utxoWorkerLauncher-CXiTBW4B.js → utxoWorkerLogic-KxVg3qs6.js} +15583 -16710
  5. package/assets/zkProofWorkerLauncher-D-WqUrAW.js +1205 -0
  6. package/assets/{zkProofWorkerLauncher-bnNs2laX.js → zkProofWorkerLogic-CenLarOM.js} +14890 -16017
  7. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  8. package/data-structures/Hinkal/Hinkal.mjs +2 -5
  9. package/data-structures/IndexedDB/activity-db.cjs +1 -1
  10. package/data-structures/IndexedDB/activity-db.mjs +22 -25
  11. package/data-structures/IndexedDB/contact-db.cjs +1 -1
  12. package/data-structures/IndexedDB/contact-db.mjs +21 -24
  13. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  14. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +13 -16
  15. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  16. package/functions/web3/functionCalls/transactCallRelayer.mjs +2 -5
  17. package/package.json +1 -1
  18. package/providers/EthersProviderAdapter.cjs +1 -1
  19. package/providers/EthersProviderAdapter.mjs +16 -19
  20. package/providers/prepareEthersHinkal.cjs +1 -1
  21. package/providers/prepareEthersHinkal.mjs +2 -5
  22. package/providers/prepareWagmiHinkal.cjs +1 -1
  23. package/providers/prepareWagmiHinkal.mjs +2 -5
  24. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  25. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  26. package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -1
  27. package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +38 -6
  28. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
  29. package/webworker/utxoWorker/utxoWorkerLauncher.d.ts +0 -1
  30. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
  31. package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -1
  32. package/webworker/utxoWorker/utxoWorkerLogic.mjs +74 -10
  33. package/webworker/viteWorkerURL.constant.cjs +1 -1
  34. package/webworker/viteWorkerURL.constant.d.ts +5 -2
  35. package/webworker/viteWorkerURL.constant.mjs +2 -2
  36. package/webworker/workerErrorHandler.d.ts +0 -1
  37. package/webworker/workerFactory.cjs +1 -1
  38. package/webworker/workerFactory.d.ts +2 -1
  39. package/webworker/workerFactory.mjs +35 -25
  40. package/webworker/workerProxy.cjs +1 -1
  41. package/webworker/workerProxy.d.ts +13 -1
  42. package/webworker/workerProxy.mjs +71 -12
  43. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  44. package/webworker/zkProofWorker/zkProofWorkerLauncher.d.ts +0 -1
  45. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
  46. package/webworker/zkProofWorker/zkProofWorkerLogic.cjs +1 -1
  47. package/webworker/zkProofWorker/zkProofWorkerLogic.mjs +50 -12
  48. package/assets/snarkjsWorkerLauncher-ACamUSPf.js +0 -14792
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("ethers");require("circomlibjs-hinkal-fork");require("../error-handling/error-codes.constants.cjs");require("../data-structures/crypto-keys/keys.cjs");require("libsodium-wrappers");const q=require("../data-structures/Hinkal/Hinkal.cjs");require("../constants/chains.constants.cjs");require("../constants/vite.constants.cjs");require("../webworker/snarkjsWorker/snarkjsWorkerLogic.cjs");require("../webworker/zkProofWorker/zkProofWorkerLogic.cjs");require("../webworker/utxoWorker/utxoWorkerLogic.cjs");require("../types/circom-data.types.cjs");require("node-forge");require("axios");require("../constants/token-data/index.cjs");require("idb-keyval");require("../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../types/transactions.types.cjs");require("../types/activities.types.cjs");require("../constants/server.constants.cjs");require("../API/getServerURL.cjs");require("../constants/reorg-depths.constants.cjs");require("../functions/utils/mutexes.utils.cjs");const t=require("../crypto/preProcessing.cjs");require("../constants/save-depths.cjs");require("../constants/contracts.constants.cjs");require("../constants/kyc.constants.cjs");require("../constants/coingecko.constants.cjs");require("../constants/addresses.constants.cjs");require("../constants/token.limits.constants.cjs");require("../constants/presale.constants.cjs");require("../constants/mystery-boxes.constants.cjs");require("../constants/activity.constants.cjs");require("../constants/tasks.constants.cjs");require("../constants/events.constants.cjs");require("../functions/utils/userAgent.cjs");require("multiformats");require("../API/tenderly.api.cjs");require("ethers-v6h");require("../functions/web3/events/getApprovedBalance.cjs");require("../functions/web3/getTokenHolder.cjs");require("async-mutex");const a=require("./EthersProviderAdapter.cjs"),n=async(i,u)=>{await t.preProcessing();const e=new q.Hinkal(u),r=a.default();return r.initSigner?.(i),await e.initProviderAdapter(void 0,r),await e.initUserKeys(),await e.resetMerkle(),e};exports.prepareEthersHinkal=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("ethers");require("circomlibjs-hinkal-fork");require("../error-handling/error-codes.constants.cjs");require("../data-structures/crypto-keys/keys.cjs");require("libsodium-wrappers");const q=require("../data-structures/Hinkal/Hinkal.cjs");require("../constants/chains.constants.cjs");require("../constants/vite.constants.cjs");require("../types/circom-data.types.cjs");require("node-forge");require("axios");require("../constants/token-data/index.cjs");require("idb-keyval");require("../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../types/transactions.types.cjs");require("../types/activities.types.cjs");require("../constants/server.constants.cjs");require("../API/getServerURL.cjs");require("../constants/reorg-depths.constants.cjs");require("../functions/utils/mutexes.utils.cjs");const t=require("../crypto/preProcessing.cjs");require("../constants/save-depths.cjs");require("../constants/contracts.constants.cjs");require("../constants/kyc.constants.cjs");require("../constants/coingecko.constants.cjs");require("../constants/addresses.constants.cjs");require("../constants/token.limits.constants.cjs");require("../constants/presale.constants.cjs");require("../constants/mystery-boxes.constants.cjs");require("../constants/activity.constants.cjs");require("../constants/tasks.constants.cjs");require("../constants/events.constants.cjs");require("../functions/utils/userAgent.cjs");require("multiformats");require("../API/tenderly.api.cjs");require("ethers-v6h");require("../functions/web3/events/getApprovedBalance.cjs");require("../functions/web3/getTokenHolder.cjs");require("async-mutex");const a=require("./EthersProviderAdapter.cjs"),n=async(i,u)=>{await t.preProcessing();const e=new q.Hinkal(u),r=a.default();return r.initSigner?.(i),await e.initProviderAdapter(void 0,r),await e.initUserKeys(),await e.resetMerkle(),e};exports.prepareEthersHinkal=n;
@@ -6,9 +6,6 @@ import "libsodium-wrappers";
6
6
  import { Hinkal as p } from "../data-structures/Hinkal/Hinkal.mjs";
7
7
  import "../constants/chains.constants.mjs";
8
8
  import "../constants/vite.constants.mjs";
9
- import "../webworker/snarkjsWorker/snarkjsWorkerLogic.mjs";
10
- import "../webworker/zkProofWorker/zkProofWorkerLogic.mjs";
11
- import "../webworker/utxoWorker/utxoWorkerLogic.mjs";
12
9
  import "../types/circom-data.types.mjs";
13
10
  import "node-forge";
14
11
  import "axios";
@@ -41,11 +38,11 @@ import "../functions/web3/events/getApprovedBalance.mjs";
41
38
  import "../functions/web3/getTokenHolder.mjs";
42
39
  import "async-mutex";
43
40
  import e from "./EthersProviderAdapter.mjs";
44
- const Y = async (t, o) => {
41
+ const V = async (t, o) => {
45
42
  await m();
46
43
  const r = new p(o), i = e();
47
44
  return i.initSigner?.(t), await r.initProviderAdapter(void 0, i), await r.initUserKeys(), await r.resetMerkle(), r;
48
45
  };
49
46
  export {
50
- Y as prepareEthersHinkal
47
+ V as prepareEthersHinkal
51
48
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("ethers");require("circomlibjs-hinkal-fork");require("../error-handling/error-codes.constants.cjs");require("../data-structures/crypto-keys/keys.cjs");require("libsodium-wrappers");const q=require("../data-structures/Hinkal/Hinkal.cjs");require("../constants/chains.constants.cjs");require("../constants/vite.constants.cjs");require("../webworker/snarkjsWorker/snarkjsWorkerLogic.cjs");require("../webworker/zkProofWorker/zkProofWorkerLogic.cjs");require("../webworker/utxoWorker/utxoWorkerLogic.cjs");require("../types/circom-data.types.cjs");require("node-forge");require("axios");require("../constants/token-data/index.cjs");require("idb-keyval");require("../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../types/transactions.types.cjs");require("../types/activities.types.cjs");require("../constants/server.constants.cjs");require("../API/getServerURL.cjs");require("../constants/reorg-depths.constants.cjs");require("../functions/utils/mutexes.utils.cjs");const a=require("../crypto/preProcessing.cjs");require("../constants/save-depths.cjs");require("../constants/contracts.constants.cjs");require("../constants/kyc.constants.cjs");require("../constants/coingecko.constants.cjs");require("../constants/addresses.constants.cjs");require("../constants/token.limits.constants.cjs");require("../constants/presale.constants.cjs");require("../constants/mystery-boxes.constants.cjs");require("../constants/activity.constants.cjs");require("../constants/tasks.constants.cjs");require("../constants/events.constants.cjs");require("../functions/utils/userAgent.cjs");require("multiformats");require("../API/tenderly.api.cjs");require("ethers-v6h");require("../functions/web3/events/getApprovedBalance.cjs");require("../functions/web3/getTokenHolder.cjs");require("async-mutex");const r=require("./WagmiProviderAdapter.cjs"),t=async(i,u)=>{await a.preProcessing();const e=new q.Hinkal;return r.wagmiProviderAdapter.initConfig(u),await e.initProviderAdapter(i,r.wagmiProviderAdapter),await e.initUserKeys(),await e.resetMerkle(),e};exports.prepareWagmiHinkal=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("ethers");require("circomlibjs-hinkal-fork");require("../error-handling/error-codes.constants.cjs");require("../data-structures/crypto-keys/keys.cjs");require("libsodium-wrappers");const q=require("../data-structures/Hinkal/Hinkal.cjs");require("../constants/chains.constants.cjs");require("../constants/vite.constants.cjs");require("../types/circom-data.types.cjs");require("node-forge");require("axios");require("../constants/token-data/index.cjs");require("idb-keyval");require("../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../types/transactions.types.cjs");require("../types/activities.types.cjs");require("../constants/server.constants.cjs");require("../API/getServerURL.cjs");require("../constants/reorg-depths.constants.cjs");require("../functions/utils/mutexes.utils.cjs");const a=require("../crypto/preProcessing.cjs");require("../constants/save-depths.cjs");require("../constants/contracts.constants.cjs");require("../constants/kyc.constants.cjs");require("../constants/coingecko.constants.cjs");require("../constants/addresses.constants.cjs");require("../constants/token.limits.constants.cjs");require("../constants/presale.constants.cjs");require("../constants/mystery-boxes.constants.cjs");require("../constants/activity.constants.cjs");require("../constants/tasks.constants.cjs");require("../constants/events.constants.cjs");require("../functions/utils/userAgent.cjs");require("multiformats");require("../API/tenderly.api.cjs");require("ethers-v6h");require("../functions/web3/events/getApprovedBalance.cjs");require("../functions/web3/getTokenHolder.cjs");require("async-mutex");const r=require("./WagmiProviderAdapter.cjs"),t=async(i,u)=>{await a.preProcessing();const e=new q.Hinkal;return r.wagmiProviderAdapter.initConfig(u),await e.initProviderAdapter(i,r.wagmiProviderAdapter),await e.initUserKeys(),await e.resetMerkle(),e};exports.prepareWagmiHinkal=t;
@@ -6,9 +6,6 @@ import "libsodium-wrappers";
6
6
  import { Hinkal as p } from "../data-structures/Hinkal/Hinkal.mjs";
7
7
  import "../constants/chains.constants.mjs";
8
8
  import "../constants/vite.constants.mjs";
9
- import "../webworker/snarkjsWorker/snarkjsWorkerLogic.mjs";
10
- import "../webworker/zkProofWorker/zkProofWorkerLogic.mjs";
11
- import "../webworker/utxoWorker/utxoWorkerLogic.mjs";
12
9
  import "../types/circom-data.types.mjs";
13
10
  import "node-forge";
14
11
  import "axios";
@@ -41,11 +38,11 @@ import "../functions/web3/events/getApprovedBalance.mjs";
41
38
  import "../functions/web3/getTokenHolder.mjs";
42
39
  import "async-mutex";
43
40
  import { wagmiProviderAdapter as r } from "./WagmiProviderAdapter.mjs";
44
- const X = async (t, o) => {
41
+ const S = async (t, o) => {
45
42
  await m();
46
43
  const i = new p();
47
44
  return r.initConfig(o), await i.initProviderAdapter(t, r), await i.initUserKeys(), await i.resetMerkle(), i;
48
45
  };
49
46
  export {
50
- X as prepareWagmiHinkal
47
+ S as prepareWagmiHinkal
51
48
  };
@@ -1 +1 @@
1
- "use strict";const e=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/snarkjsWorkerLauncher-ACamUSPf.js").href:new URL("../../assets/snarkjsWorkerLauncher-ACamUSPf.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=e;
1
+ "use strict";const r=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/snarkjsWorkerLauncher-B7rmy0gx.js").href:new URL("../../assets/snarkjsWorkerLauncher-B7rmy0gx.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=r;
@@ -1,4 +1,4 @@
1
- const r = "" + new URL("../../assets/snarkjsWorkerLauncher-ACamUSPf.js", import.meta.url).href;
1
+ const r = "" + new URL("../../assets/snarkjsWorkerLauncher-B7rmy0gx.js", import.meta.url).href;
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";const r=require("../workerProxy.cjs");require("../../constants/vite.constants.cjs");require("snarkjs");require("axios");const e=new r.WorkerProxy;module.exports=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const M=require("../workerProxy.cjs"),i=require("../../constants/vite.constants.cjs"),O=require("snarkjs"),v=require("axios");function F(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=F(O),n=new M.WorkerProxy,c=async e=>{const{data:t}=await v.get(e,{responseType:"arraybuffer"});return new Uint8Array(t)},b=async e=>{try{const{input:t,wasmFilePath:r,zKeyFilePath:s,chainId:w}=e.payload.data,{hostLocation:{origin:l},constants:{isDevelopment:k,chains:{chainIds:P}}}=e.metadata;let a=r,o=s,u,f;const h=a.startsWith("https://");if(i.isNode&&!h){i.isWebpack?(a=`libs/hardhat/test/circuits/${r}`,o=`libs/hardhat/test/circuits/${s}`):!i.isWebpack&&k&&(a=`test/circuits/${r}`,o=`test/circuits/${s}`);const y=require("path");a=y.resolve(a),o=y.resolve(o)}i.isNode&&h?(u=await c(a),f=await c(o)):w===P.localhost&&!i.isNode&&(a=`${l}/${r}`,o=`${l}/${s}`);const{proof:d,publicSignals:p}=await g.groth16.fullProve(t,u??a,f??o),m=await g.groth16.exportSolidityCallData(d,p),$=JSON.parse(`[${m}]`);n.postMessageToMainThread({zkCallData:$,proof:d,publicSignals:p})}catch(t){console.error(t),n.postErrorToMainThread(t)}};n.attachWorkerSideOnMessage(b);exports.default=n;exports.fetchUint8Array=c;exports.onWorkerMessage=b;
@@ -1,8 +1,40 @@
1
- import { WorkerProxy as r } from "../workerProxy.mjs";
2
- import "../../constants/vite.constants.mjs";
3
- import "snarkjs";
4
- import "axios";
5
- const p = new r();
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);
6
36
  export {
7
- p as default
37
+ l as default,
38
+ w as fetchUint8Array,
39
+ z as onWorkerMessage
8
40
  };
@@ -1 +1 @@
1
- "use strict";const e=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/utxoWorkerLauncher-CXiTBW4B.js").href:new URL("../../assets/utxoWorkerLauncher-CXiTBW4B.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=e;
1
+ "use strict";const e=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/utxoWorkerLauncher-BP1uNzSU.js").href:new URL("../../assets/utxoWorkerLauncher-BP1uNzSU.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=e;
@@ -1,2 +1 @@
1
- /// <reference lib="webworker" />
2
1
  export {};
@@ -1,4 +1,4 @@
1
- const e = "" + new URL("../../assets/utxoWorkerLauncher-CXiTBW4B.js", import.meta.url).href;
1
+ const e = "" + new URL("../../assets/utxoWorkerLauncher-BP1uNzSU.js", import.meta.url).href;
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";require("circomlibjs-hinkal-fork");require("ethers");require("libsodium-wrappers");require("process");require("buffer");require("../../data-structures/crypto-keys/keys.cjs");require("../../error-handling/error-codes.constants.cjs");const r=require("../workerProxy.cjs"),e=new r.WorkerProxy;module.exports=e;
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;
@@ -1,12 +1,76 @@
1
- import "circomlibjs-hinkal-fork";
2
- import "ethers";
3
- import "libsodium-wrappers";
4
- import "process";
5
- import "buffer";
6
- import "../../data-structures/crypto-keys/keys.mjs";
7
- import "../../error-handling/error-codes.constants.mjs";
8
- import { WorkerProxy as r } from "../workerProxy.mjs";
9
- const f = new r();
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);
10
70
  export {
11
- f as default
71
+ i as default,
72
+ P as handleBuildUtxosMessage,
73
+ v as handleDecipherMessage,
74
+ w as handleFilterUtxosWithNullifier,
75
+ k as onWorkerMessage
12
76
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./zkProofWorker/zkProofWorkerLauncher.cjs"),o=require("./snarkjsWorker/snarkjsWorkerLauncher.cjs"),t=require("./utxoWorker/utxoWorkerLauncher.cjs"),r=require("./worker.registry.cjs"),n=()=>({[r.WorkerVariant.ZKProof]:e,[r.WorkerVariant.SnarkJS]:o,[r.WorkerVariant.UTXO]:t});exports.getWorkerViteURL=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./zkProofWorker/zkProofWorkerLauncher.cjs"),o=require("./snarkjsWorker/snarkjsWorkerLauncher.cjs"),t=require("./utxoWorker/utxoWorkerLauncher.cjs"),r=require("./worker.registry.cjs"),n=async()=>({[r.WorkerVariant.ZKProof]:e,[r.WorkerVariant.SnarkJS]:o,[r.WorkerVariant.UTXO]:t});exports.getWorkerViteURL=n;
@@ -2,5 +2,8 @@
2
2
  * These imports tell vite to generate and bundle worker file.
3
3
  * These are import conditionally because we do not have vite when running on node.
4
4
  */
5
- import { WorkerVariant } from './worker.registry';
6
- export declare const getWorkerViteURL: () => Record<WorkerVariant, string>;
5
+ export declare const getWorkerViteURL: () => Promise<{
6
+ ZKProof: any;
7
+ SnarkJS: any;
8
+ UTXO: any;
9
+ }>;
@@ -2,11 +2,11 @@ import o from "./zkProofWorker/zkProofWorkerLauncher.mjs";
2
2
  import t from "./snarkjsWorker/snarkjsWorkerLauncher.mjs";
3
3
  import e from "./utxoWorker/utxoWorkerLauncher.mjs";
4
4
  import { WorkerVariant as r } from "./worker.registry.mjs";
5
- const p = () => ({
5
+ const a = async () => ({
6
6
  [r.ZKProof]: o,
7
7
  [r.SnarkJS]: t,
8
8
  [r.UTXO]: e
9
9
  });
10
10
  export {
11
- p as getWorkerViteURL
11
+ a as getWorkerViteURL
12
12
  };
@@ -1,2 +1 @@
1
- /// <reference lib="webworker" />
2
1
  export declare const addWorkerErrorHandler: () => void;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../constants/vite.constants.cjs"),o=require("./worker.registry.cjs"),s=require("./snarkjsWorker/snarkjsWorkerLogic.cjs"),i=require("./zkProofWorker/zkProofWorkerLogic.cjs"),c=require("./utxoWorker/utxoWorkerLogic.cjs"),k=require("./viteWorkerURL.constant.cjs");class e{static resolveWorkerURL(r){return k.getWorkerViteURL()[r]}static createWorker(r){if(n.isNode||n.isSandbox)switch(r){case o.WorkerVariant.SnarkJS:return s;case o.WorkerVariant.ZKProof:return i;case o.WorkerVariant.UTXO:return c;default:throw new Error(`Unknown worker type: ${r}`)}const t=e.resolveWorkerURL(r);return new Worker(t,{type:"module"})}static getWebWorker(r){return e.createWorker(r)}}exports.WorkerFactory=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../constants/vite.constants.cjs"),r=require("./worker.registry.cjs");class t{constructor(){}static resolveWorkerURL=async e=>{const{getWorkerViteURL:s}=await Promise.resolve().then(()=>require("./viteWorkerURL.constant.cjs"));return(await s())[e]};static createWorker=async e=>{if(i.isNode||i.isSandbox){let o;return e===r.WorkerVariant.SnarkJS?o=await Promise.resolve().then(()=>require("./snarkjsWorker/snarkjsWorkerLogic.cjs")):e===r.WorkerVariant.ZKProof?o=await Promise.resolve().then(()=>require("./zkProofWorker/zkProofWorkerLogic.cjs")):e===r.WorkerVariant.UTXO&&(o=await Promise.resolve().then(()=>require("./utxoWorker/utxoWorkerLogic.cjs"))),o.default}const s=await t.resolveWorkerURL(e);return new Worker(s,{type:"module"})};static getWebWorker(e){switch(e){case r.WorkerVariant.ZKProof:return t.createWorker(e);case r.WorkerVariant.SnarkJS:return t.createWorker(e);case r.WorkerVariant.UTXO:return t.createWorker(e);default:throw Error(`Unknown worker type: ${e}`)}}}exports.WorkerFactory=t;
@@ -1,6 +1,7 @@
1
1
  import { WorkerVariant } from './worker.registry';
2
2
  export declare class WorkerFactory {
3
+ private constructor();
3
4
  private static resolveWorkerURL;
4
5
  private static createWorker;
5
- static getWebWorker(workerVariant: WorkerVariant): import('./workerProxy').WorkerProxy | Worker;
6
+ static getWebWorker(workerVariant: WorkerVariant): Promise<any>;
6
7
  }
@@ -1,30 +1,40 @@
1
- import { isNode as i, isSandbox as s } from "../constants/vite.constants.mjs";
2
- import { WorkerVariant as e } from "./worker.registry.mjs";
3
- import k from "./snarkjsWorker/snarkjsWorkerLogic.mjs";
4
- import n from "./zkProofWorker/zkProofWorkerLogic.mjs";
5
- import m from "./utxoWorker/utxoWorkerLogic.mjs";
6
- import { getWorkerViteURL as c } from "./viteWorkerURL.constant.mjs";
1
+ import { isNode as i, isSandbox as c } from "../constants/vite.constants.mjs";
2
+ import { WorkerVariant as r } from "./worker.registry.mjs";
7
3
  class o {
8
- static resolveWorkerURL(r) {
9
- return c()[r];
4
+ constructor() {
10
5
  }
11
- static createWorker(r) {
12
- if (i || s)
13
- switch (r) {
14
- case e.SnarkJS:
15
- return k;
16
- case e.ZKProof:
17
- return n;
18
- case e.UTXO:
19
- return m;
20
- default:
21
- throw new Error(`Unknown worker type: ${r}`);
22
- }
23
- const t = o.resolveWorkerURL(r);
24
- return new Worker(t, { type: "module" });
25
- }
26
- static getWebWorker(r) {
27
- return o.createWorker(r);
6
+ static resolveWorkerURL = async (e) => {
7
+ const { getWorkerViteURL: s } = await import("./viteWorkerURL.constant.mjs");
8
+ return (await s())[e];
9
+ };
10
+ static createWorker = async (e) => {
11
+ if (i || c) {
12
+ let t;
13
+ return e === r.SnarkJS ? t = await import(
14
+ /* @vite-ignore */
15
+ "./snarkjsWorker/snarkjsWorkerLogic.mjs"
16
+ ) : e === r.ZKProof ? t = await import(
17
+ /* @vite-ignore */
18
+ "./zkProofWorker/zkProofWorkerLogic.mjs"
19
+ ) : e === r.UTXO && (t = await import(
20
+ /* @vite-ignore */
21
+ "./utxoWorker/utxoWorkerLogic.mjs"
22
+ )), t.default;
23
+ }
24
+ const s = await o.resolveWorkerURL(e);
25
+ return new Worker(s, { type: "module" });
26
+ };
27
+ static getWebWorker(e) {
28
+ switch (e) {
29
+ case r.ZKProof:
30
+ return o.createWorker(e);
31
+ case r.SnarkJS:
32
+ return o.createWorker(e);
33
+ case r.UTXO:
34
+ return o.createWorker(e);
35
+ default:
36
+ throw Error(`Unknown worker type: ${e}`);
37
+ }
28
38
  }
29
39
  }
30
40
  export {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class s{isNode=!1;isSandbox=!1;_eventEmitter;onmessage=null;onerror=null;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})):typeof postMessage=="function"&&postMessage(e)}postMessageToMainThread(e){const t={data:e};this.onmessage?setTimeout(()=>this.onmessage(t),0):typeof postMessage=="function"&&typeof self<"u"&&postMessage(e)}postErrorToMainThread(e){const t={data:{error:e}};this.onerror?setTimeout(()=>this.onerror(t),0):typeof postMessage=="function"&&typeof self<"u"&&postMessage({error: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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class o{isNode=!1;isSandbox=!1;errorCount=0;MAX_ERRORS=5;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 s={data:e};if(this.onmessage){this.onmessage(s);return}const t=typeof self<"u"?self:globalThis;t.postMessage&&t.postMessage(e)}postErrorToMainThread(e){if(this.errorCount++,this.errorCount>this.MAX_ERRORS){console.error("Too many errors, stopping error reporting"),typeof self<"u"&&self.close&&self.close();return}const s={data:{error:e}};if(this.onerror){try{this.onerror(s)}catch(r){console.error("Error in onerror handler:",r)}return}const t={error:!0,message:e instanceof Error?e.message:String(e),stack:e instanceof Error?e.stack:void 0};try{const r=typeof self<"u"?self:globalThis;r.postMessage&&r.postMessage(t)}catch(r){console.error("Failed to post error:",r)}}attachWorkerSideOnMessage(e){if(this.isNode){this.eventEmitter.on("message",t=>{e(t)});return}if(this.isSandbox){this.eventEmitter.addEventListener("worker-message",t=>{e(t.detail)});return}const s=typeof self<"u"?self:globalThis;s.addEventListener&&s.addEventListener("message",t=>{if(this.errorCount=0,!t||!t.data){console.warn("Worker received invalid message:",t);return}try{e(t.data)}catch(r){console.error("Error in message handler:",r),this.postErrorToMainThread(r)}})}}exports.WorkerProxy=o;
@@ -11,15 +11,27 @@
11
11
  export declare class WorkerProxy {
12
12
  private isNode;
13
13
  private isSandbox;
14
- private _eventEmitter;
14
+ private errorCount;
15
+ private readonly MAX_ERRORS;
16
+ /**
17
+ * This allow browser or main thread to listen for worker response message
18
+ * using the normal `worker.onmessage = () => {}` syntax. Is should only be side on the
19
+ * main thread side, not on worker side.
20
+ */
15
21
  onmessage: ((e: {
16
22
  data: any;
17
23
  }) => void) | null;
24
+ /**
25
+ * This allow browser or main thread to listen for worker response message
26
+ * using the normal `worker.onerror = () => {}` syntax. Is should only be side on the
27
+ * main thread side, not on worker side.
28
+ */
18
29
  onerror: ((e: {
19
30
  data: {
20
31
  error: unknown;
21
32
  };
22
33
  }) => void) | null;
34
+ private _eventEmitter;
23
35
  private get eventEmitter();
24
36
  constructor();
25
37
  terminate(): void;
@@ -1,9 +1,22 @@
1
- class i {
1
+ class n {
2
2
  isNode = !1;
3
3
  isSandbox = !1;
4
- _eventEmitter;
4
+ errorCount = 0;
5
+ MAX_ERRORS = 5;
6
+ /**
7
+ * This allow browser or main thread to listen for worker response message
8
+ * using the normal `worker.onmessage = () => {}` syntax. Is should only be side on the
9
+ * main thread side, not on worker side.
10
+ */
5
11
  onmessage = null;
12
+ /**
13
+ * This allow browser or main thread to listen for worker response message
14
+ * using the normal `worker.onerror = () => {}` syntax. Is should only be side on the
15
+ * main thread side, not on worker side.
16
+ */
6
17
  onerror = null;
18
+ _eventEmitter;
19
+ // node EventEmitter
7
20
  get eventEmitter() {
8
21
  if (this._eventEmitter)
9
22
  return this._eventEmitter;
@@ -20,24 +33,70 @@ class i {
20
33
  terminate() {
21
34
  }
22
35
  postMessage(e) {
23
- this.isNode ? this.eventEmitter.emit("message", e) : this.isSandbox ? this.eventEmitter.dispatchEvent(new CustomEvent("worker-message", { detail: e })) : typeof postMessage == "function" && postMessage(e);
36
+ this.isNode ? this.eventEmitter.emit("message", e) : this.isSandbox ? this.eventEmitter?.dispatchEvent(new CustomEvent("worker-message", { detail: e })) : postMessage(e);
24
37
  }
25
38
  postMessageToMainThread(e) {
26
- const t = { data: e };
27
- this.onmessage ? setTimeout(() => this.onmessage(t), 0) : typeof postMessage == "function" && typeof self < "u" && postMessage(e);
39
+ const r = { data: e };
40
+ if (this.onmessage) {
41
+ this.onmessage(r);
42
+ return;
43
+ }
44
+ const t = typeof self < "u" ? self : globalThis;
45
+ t.postMessage && t.postMessage(e);
28
46
  }
29
47
  postErrorToMainThread(e) {
30
- const t = { data: { error: e } };
31
- this.onerror ? setTimeout(() => this.onerror(t), 0) : typeof postMessage == "function" && typeof self < "u" && postMessage({ error: e });
48
+ if (this.errorCount++, this.errorCount > this.MAX_ERRORS) {
49
+ console.error("Too many errors, stopping error reporting"), typeof self < "u" && self.close && self.close();
50
+ return;
51
+ }
52
+ const r = { data: { error: e } };
53
+ if (this.onerror) {
54
+ try {
55
+ this.onerror(r);
56
+ } catch (s) {
57
+ console.error("Error in onerror handler:", s);
58
+ }
59
+ return;
60
+ }
61
+ const t = {
62
+ error: !0,
63
+ message: e instanceof Error ? e.message : String(e),
64
+ stack: e instanceof Error ? e.stack : void 0
65
+ };
66
+ try {
67
+ const s = typeof self < "u" ? self : globalThis;
68
+ s.postMessage && s.postMessage(t);
69
+ } catch (s) {
70
+ console.error("Failed to post error:", s);
71
+ }
32
72
  }
33
73
  attachWorkerSideOnMessage(e) {
34
- this.isNode ? this.eventEmitter.on("message", (t) => {
35
- e(t);
36
- }) : this.isSandbox && this.eventEmitter.addEventListener("worker-message", (t) => {
37
- e(t.detail);
74
+ if (this.isNode) {
75
+ this.eventEmitter.on("message", (t) => {
76
+ e(t);
77
+ });
78
+ return;
79
+ }
80
+ if (this.isSandbox) {
81
+ this.eventEmitter.addEventListener("worker-message", (t) => {
82
+ e(t.detail);
83
+ });
84
+ return;
85
+ }
86
+ const r = typeof self < "u" ? self : globalThis;
87
+ r.addEventListener && r.addEventListener("message", (t) => {
88
+ if (this.errorCount = 0, !t || !t.data) {
89
+ console.warn("Worker received invalid message:", t);
90
+ return;
91
+ }
92
+ try {
93
+ e(t.data);
94
+ } catch (s) {
95
+ console.error("Error in message handler:", s), this.postErrorToMainThread(s);
96
+ }
38
97
  });
39
98
  }
40
99
  }
41
100
  export {
42
- i as WorkerProxy
101
+ n as WorkerProxy
43
102
  };
@@ -1 +1 @@
1
- "use strict";const e=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/zkProofWorkerLauncher-bnNs2laX.js").href:new URL("../../assets/zkProofWorkerLauncher-bnNs2laX.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=e;
1
+ "use strict";const r=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/../../assets/zkProofWorkerLauncher-D-WqUrAW.js").href:new URL("../../assets/zkProofWorkerLauncher-D-WqUrAW.js",document.currentScript&&document.currentScript.src||document.baseURI).href);module.exports=r;
@@ -1,2 +1 @@
1
- /// <reference lib="webworker" />
2
1
  export {};
@@ -1,4 +1,4 @@
1
- const r = "" + new URL("../../assets/zkProofWorkerLauncher-bnNs2laX.js", import.meta.url).href;
1
+ const r = "" + new URL("../../assets/zkProofWorkerLauncher-D-WqUrAW.js", import.meta.url).href;
2
2
  export {
3
3
  r as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";require("circomlibjs-hinkal-fork");require("ethers");require("libsodium-wrappers");require("process");require("buffer");require("../../data-structures/crypto-keys/keys.cjs");require("../../error-handling/error-codes.constants.cjs");require("../../types/circom-data.types.cjs");const r=require("../workerProxy.cjs");require("../../constants/vite.constants.cjs");const e=new r.WorkerProxy;module.exports=e;
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;
@@ -1,14 +1,52 @@
1
- import "circomlibjs-hinkal-fork";
2
- import "ethers";
3
- import "libsodium-wrappers";
4
- import "process";
5
- import "buffer";
6
- import "../../data-structures/crypto-keys/keys.mjs";
7
- import "../../error-handling/error-codes.constants.mjs";
8
- import "../../types/circom-data.types.mjs";
9
- import { WorkerProxy as r } from "../workerProxy.mjs";
10
- import "../../constants/vite.constants.mjs";
11
- const n = new r();
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);
12
46
  export {
13
- n as default
47
+ c as default,
48
+ y as handleBuildInNullifiers,
49
+ f as handleCalcAccessTokenSiblingAndSides,
50
+ C as handleCalcCommitmentsSiblingAndSides,
51
+ A as onWorkerMessage
14
52
  };