@gurge/sdk 0.3.27 → 0.3.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 (140) hide show
  1. package/common/src/crypto/BabyJubRN.cjs +1 -0
  2. package/common/src/crypto/BabyJubRN.d.ts +2 -0
  3. package/common/src/crypto/BabyJubRN.mjs +66 -0
  4. package/common/src/crypto/EddsaRN.cjs +1 -0
  5. package/common/src/crypto/EddsaRN.mjs +41 -0
  6. package/common/src/crypto/babyJub.cjs +1 -1
  7. package/common/src/crypto/babyJub.mjs +6 -12
  8. package/common/src/crypto/eddsa.cjs +1 -1
  9. package/common/src/crypto/eddsa.mjs +6 -12
  10. package/common/src/crypto/poseidon.cjs +1 -1
  11. package/common/src/crypto/poseidon.mjs +6 -12
  12. package/common/src/crypto/preProcessing.cjs +1 -1
  13. package/common/src/crypto/preProcessing.mjs +13 -23
  14. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  15. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +9 -9
  16. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  17. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +6 -6
  18. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  19. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +1 -1
  20. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  21. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +18 -18
  22. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  23. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +17 -17
  24. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  25. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +13 -13
  26. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  27. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +11 -11
  28. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  29. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +14 -14
  30. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  31. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +51 -51
  32. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  33. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +51 -51
  34. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  35. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +20 -20
  36. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  37. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +19 -19
  38. package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  39. package/common/src/data-structures/Hinkal/hinkalSwap.mjs +1 -1
  40. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  41. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +9 -9
  42. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  43. package/common/src/data-structures/Hinkal/hinkalWithdraw.d.ts +3 -1
  44. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +29 -34
  45. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  46. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +33 -33
  47. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -1
  48. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.mjs +1 -1
  49. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  50. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +26 -42
  51. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  52. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +7 -7
  53. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  54. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +1 -1
  55. package/common/src/data-structures/utxo/Utxo.cjs +1 -1
  56. package/common/src/data-structures/utxo/Utxo.d.ts +0 -1
  57. package/common/src/data-structures/utxo/Utxo.mjs +6 -19
  58. package/common/src/functions/index.cjs +1 -1
  59. package/common/src/functions/index.mjs +4 -3
  60. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  61. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +46 -87
  62. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  63. package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +2 -2
  64. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +23 -28
  65. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  66. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +14 -14
  67. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  68. package/common/src/functions/snarkjs/common.snarkjs.mjs +7 -7
  69. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  70. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +57 -61
  71. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  72. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +60 -60
  73. package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  74. package/common/src/functions/snarkjs/verifyCommitmentValidationData.mjs +1 -1
  75. package/common/src/functions/utils/bigint-math.utils.cjs +1 -1
  76. package/common/src/functions/utils/bigint-math.utils.d.ts +2 -0
  77. package/common/src/functions/utils/bigint-math.utils.mjs +18 -1
  78. package/common/src/functions/utils/buildClaimableDepositPlan.cjs +1 -1
  79. package/common/src/functions/utils/buildClaimableDepositPlan.mjs +1 -1
  80. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  81. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +1 -1
  82. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  83. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +4 -4
  84. package/common/src/functions/utils/hinkalTiming.utils.cjs +1 -1
  85. package/common/src/functions/utils/hinkalTiming.utils.d.ts +3 -9
  86. package/common/src/functions/utils/hinkalTiming.utils.mjs +13 -18
  87. package/common/src/functions/utils/index.cjs +1 -1
  88. package/common/src/functions/utils/index.mjs +3 -3
  89. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  90. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +71 -122
  91. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  92. package/common/src/functions/web3/events/getShieldedBalance.mjs +64 -64
  93. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  94. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +42 -42
  95. package/common/src/types/index.cjs +1 -1
  96. package/common/src/types/index.mjs +1 -1
  97. package/common/src/webworker/logError-D8yBaP96.js +2 -0
  98. package/common/src/webworker/package.json +1 -1
  99. package/common/src/webworker/performTaskWithWorker.cjs +1 -1
  100. package/common/src/webworker/performTaskWithWorker.mjs +17 -18
  101. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  102. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  103. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  104. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -4
  105. package/common/src/webworker/viteWorkerURL.constant.d.ts +0 -1
  106. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -4
  107. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  108. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  109. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  110. package/package.json +1 -1
  111. package/react-native/HinkalWebViewWorker.cjs +4 -76
  112. package/react-native/HinkalWebViewWorker.mjs +49 -152
  113. package/react-native/bridge/HinkalRNWorker.cjs +1 -1
  114. package/react-native/bridge/HinkalRNWorker.d.ts +0 -1
  115. package/react-native/bridge/HinkalRNWorker.mjs +11 -16
  116. package/react-native/shims/circomlibjs-hinkal-fork.js +2 -2
  117. package/react-native/shims/circomlibjs.js +2 -2
  118. package/react-native/workerCDNUrls.cjs +1 -1
  119. package/react-native/workerCDNUrls.d.ts +0 -1
  120. package/react-native/workerCDNUrls.mjs +2 -2
  121. package/sdk/package.json.cjs +1 -1
  122. package/sdk/package.json.mjs +1 -1
  123. package/common/src/crypto/rnCryptoBridge.cjs +0 -1
  124. package/common/src/crypto/rnCryptoBridge.d.ts +0 -8
  125. package/common/src/crypto/rnCryptoBridge.mjs +0 -10
  126. package/common/src/crypto/rnUtxoCrypto.cjs +0 -1
  127. package/common/src/crypto/rnUtxoCrypto.d.ts +0 -25
  128. package/common/src/crypto/rnUtxoCrypto.mjs +0 -74
  129. package/common/src/functions/utils/utxoPadding.utils.cjs +0 -1
  130. package/common/src/functions/utils/utxoPadding.utils.d.ts +0 -2
  131. package/common/src/functions/utils/utxoPadding.utils.mjs +0 -14
  132. package/common/src/webworker/cryptoWorker/cryptoWorker.types.cjs +0 -1
  133. package/common/src/webworker/cryptoWorker/cryptoWorker.types.d.ts +0 -51
  134. package/common/src/webworker/cryptoWorker/cryptoWorker.types.mjs +0 -6
  135. package/common/src/webworker/cryptoWorker/cryptoWorkerLauncher.d.ts +0 -1
  136. package/common/src/webworker/cryptoWorker/cryptoWorkerLogic.d.ts +0 -2
  137. package/common/src/webworker/logError-Dy_GXEF5.js +0 -2
  138. package/react-native/bridge/RnWebViewCryptoBridge.cjs +0 -1
  139. package/react-native/bridge/RnWebViewCryptoBridge.d.ts +0 -7
  140. package/react-native/bridge/RnWebViewCryptoBridge.mjs +0 -49
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1 +1 @@
1
- const e=require(`../constants/vite.constants.cjs`),t=require(`../constants/chains.constants.cjs`),n=require(`../functions/utils/hinkalTiming.utils.cjs`),r=require(`./workerFactory.cjs`);var i=async i=>{let a=i.payload?.type??`unknown`,o=n.createRnDeltaTiming(`webView.task:${i.type}:${a}`),s=await r.WorkerFactory.getWebWorker(i.type);return o.log(`rn-worker-created`),new Promise((n,r)=>{let a={};if(typeof window<`u`&&window.location){let{origin:e,protocol:t,host:n,port:r,hostname:i,href:o}=window.location;a={origin:e,protocol:t,host:n,port:r,hostname:i,href:o}}s.onMessage(e=>{o.log(`rn-result-received`),n(e),s.terminate()}),s.onError(e=>{o.log(`rn-error`),r(e),s.terminate()});let c={payload:i.payload,metadata:{hostLocation:a,constants:{chains:{chainIds:t.chainIds},isDevelopment:e.isDevelopment}}};s.postMessage(c),o.log(`rn-postMessage-sent`)})};exports.performTaskWithWorker=i;
1
+ const e=require(`../constants/vite.constants.cjs`),t=require(`../constants/chains.constants.cjs`),n=require(`./workerFactory.cjs`);var r=async r=>{let i=await n.WorkerFactory.getWebWorker(r.type);return new Promise((n,a)=>{let o={};if(typeof window<`u`&&window.location){let{origin:e,protocol:t,host:n,port:r,hostname:i,href:a}=window.location;o={origin:e,protocol:t,host:n,port:r,hostname:i,href:a}}i.onMessage(e=>{n(e),i.terminate()}),i.onError(e=>{a(e),i.terminate()});let s={payload:r.payload,metadata:{hostLocation:o,constants:{chains:{chainIds:t.chainIds},isDevelopment:e.isDevelopment}}};i.postMessage(s)})};exports.performTaskWithWorker=r;
@@ -1,40 +1,39 @@
1
1
  import { isDevelopment as e } from "../constants/vite.constants.mjs";
2
2
  import { chainIds as t } from "../constants/chains.constants.mjs";
3
- import { createRnDeltaTiming as n } from "../functions/utils/hinkalTiming.utils.mjs";
4
- import { WorkerFactory as r } from "./workerFactory.mjs";
3
+ import { WorkerFactory as n } from "./workerFactory.mjs";
5
4
  //#region libs/shared/common/src/webworker/performTaskWithWorker.ts
6
- var i = async (i) => {
7
- let a = i.payload?.type ?? "unknown", o = n(`webView.task:${i.type}:${a}`), s = await r.getWebWorker(i.type);
8
- return o.log("rn-worker-created"), new Promise((n, r) => {
9
- let a = {};
5
+ var r = async (r) => {
6
+ let i = await n.getWebWorker(r.type);
7
+ return new Promise((n, a) => {
8
+ let o = {};
10
9
  if (typeof window < "u" && window.location) {
11
- let { origin: e, protocol: t, host: n, port: r, hostname: i, href: o } = window.location;
12
- a = {
10
+ let { origin: e, protocol: t, host: n, port: r, hostname: i, href: a } = window.location;
11
+ o = {
13
12
  origin: e,
14
13
  protocol: t,
15
14
  host: n,
16
15
  port: r,
17
16
  hostname: i,
18
- href: o
17
+ href: a
19
18
  };
20
19
  }
21
- s.onMessage((e) => {
22
- o.log("rn-result-received"), n(e), s.terminate();
23
- }), s.onError((e) => {
24
- o.log("rn-error"), r(e), s.terminate();
20
+ i.onMessage((e) => {
21
+ n(e), i.terminate();
22
+ }), i.onError((e) => {
23
+ a(e), i.terminate();
25
24
  });
26
- let c = {
27
- payload: i.payload,
25
+ let s = {
26
+ payload: r.payload,
28
27
  metadata: {
29
- hostLocation: a,
28
+ hostLocation: o,
30
29
  constants: {
31
30
  chains: { chainIds: t },
32
31
  isDevelopment: e
33
32
  }
34
33
  }
35
34
  };
36
- s.postMessage(c), o.log("rn-postMessage-sent");
35
+ i.postMessage(s);
37
36
  });
38
37
  };
39
38
  //#endregion
40
- export { i as performTaskWithWorker };
39
+ export { r as performTaskWithWorker };
@@ -1 +1 @@
1
- var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/utxoWorkerLauncher-DrByvCnS.js`).href:new URL(`../../../../assets/utxoWorkerLauncher-DrByvCnS.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
1
+ var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/utxoWorkerLauncher-kZ10ZLfi.js`).href:new URL(`../../../../assets/utxoWorkerLauncher-kZ10ZLfi.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
@@ -1,4 +1,4 @@
1
1
  //#region libs/shared/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url
2
- var e = "" + new URL("../../../../assets/utxoWorkerLauncher-DrByvCnS.js", import.meta.url).href;
2
+ var e = "" + new URL("../../../../assets/utxoWorkerLauncher-kZ10ZLfi.js", import.meta.url).href;
3
3
  //#endregion
4
4
  export { e as default };
@@ -1 +1 @@
1
- const e=require(`./workerProxy-DPeuP2Mg.js`),t=require(`./logError-Dy_GXEF5.js`);let n=require(`buffer`),r=require(`process`);r=e.u(r);let i=require(`worker_threads`),a=require(`ethers`),o=require(`@solana/web3.js`);var s=`solana-on-chain-utxo:`,c=8,l=e=>e.startsWith(s),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=a.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),r=n;if(!Array.isArray(r)||r.length!==c)throw Error(`Malformed encoded Solana UTXO payload`);let[i,s,u,d,f,p,m,h]=r,g=BigInt(i),_=BigInt(d),v=t.i(_)===1n,y=t.a(_),b=a.ethers.toBeHex(BigInt(f)),x=BigInt(p),S=BigInt(m),C=BigInt(h).toString(),w=Array.from(a.ethers.getBytes(s)),T=Array.from(a.ethers.getBytes(u)),E=new o.PublicKey(Uint8Array.from([...w.slice(16),...T.slice(16)])).toBase58();return{amount:g,erc20TokenAddress:t.m(BigInt(s),BigInt(u)),mintAddress:E,randomization:y,stealthAddress:b,H0:x,H1:S,timeStamp:C,isNewStyle:v}},d=e=>{let n=a.ethers.AbiCoder.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e),r=BigInt(n[0]),i=n[1],o=BigInt(n[2][0]),s=t.i(o),c=t.a(o),l=a.ethers.toBeHex(BigInt(n[2][1])),u=BigInt(n[2][2]),d=BigInt(n[2][3]),f=BigInt(n[3]).toString(),p=Number(n[4]);return{amount:r,erc20TokenAddress:i,randomization:c,isNewStyle:s===1n,stealthAddress:l,H0:u,H1:d,timeStamp:f,tokenId:p}},f=(n,r,i)=>{let{randomization:a,H0:o,H1:s,isNewStyle:c}=e.r(i)?u(n):d(n),l=c?t.c.verifyStealthPair([a,o],[0n,s],r):t.c.checkSignature(a,o,s,r);if(!l)throw Error(`UTXO doesn't belong to user`);return l},p=(t,n,r)=>{if(e.r(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,randomization:a,stealthAddress:o,timeStamp:s,isNewStyle:c,H0:l}=u(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:s,nullifyingKey:n,stealthAddress:o,isNewStyle:c,...c?{H0:[a,l]}:{randomization:a}}}let{amount:i,erc20TokenAddress:a,timeStamp:o,randomization:s,isNewStyle:c,stealthAddress:l,H0:f}=d(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,nullifyingKey:n,stealthAddress:l,isNewStyle:c,...c?{H0:[s,f]}:{randomization:s}}},m=class{static log(...t){e.a&&console.log(...t)}static logObject(t){e.a&&console.dir(t,{depth:null,colors:!0})}static error(...e){t.t(e)}},h=function(e){return e[e.BATCH_FILTER_UTXOS_WITH_NULLIFIER=0]=`BATCH_FILTER_UTXOS_WITH_NULLIFIER`,e[e.BUILD_UTXOS=1]=`BUILD_UTXOS`,e[e.DECIPHER_OUTPUTS=2]=`DECIPHER_OUTPUTS`,e}({}),g=new e.t,_=async({data:e})=>{let{utxos:n,nullifiers:r}=e,i=n.filter(e=>{let n=new t.n(e);return!r.has(n.getNullifier())});g.postMessageToMainThread({utxoConstructors:i,stealthPairCache:t.u.serialize(),stealthAddressCache:t.l.serialize()})},v=async({data:e})=>{let n=new t.c(e.signature),r=n.getShieldedPrivateKey(),i=e.encryptedOutputs.map(i=>{try{let a=i.isPositive?t.s(Buffer.from(i.value.slice(2),`hex`),n):p(i.value,r,e.chainId);return a.isBlocked=i.isBlocked,a}catch{return}}).filter(e=>e!==void 0&&e.amount!==0n);g.postMessageToMainThread(i)},y=async({data:e})=>{let n=new t.c(e.signature),r=[],{encryptedOutputs:i}=e,{lastOutput:a}=e,o=n.getShieldedPrivateKey();for(let s=0;s<i.length;s+=1){let c=i[s];if(a=c.value,c.isPositive)try{let e=t.o(Buffer.from(a.slice(2),`hex`),n);if(e.isBlocked=c.isBlocked,!e.erc20TokenAddress||!e.amount||!e.stealthAddress)throw Error(`bruh`);r.push(c)}catch{}else try{f(a,o,e.chainId)&&r.push(c)}catch{}}g.postMessageToMainThread({additionalEncryptedOutputs:r,lastOutput:a})},b=async e=>{try{await t.f(!0);let{type:n}=e.payload;switch(n){case h.BATCH_FILTER_UTXOS_WITH_NULLIFIER:await _(e.payload);return;case h.BUILD_UTXOS:await v(e.payload);return;case h.DECIPHER_OUTPUTS:await y(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){m.error(`utxo worker message failed`,e),g.postErrorToMainThread(e)}};globalThis.process=r.default,globalThis.Buffer=n.Buffer,i.parentPort.on(`message`,async e=>{await b(e)});
1
+ const e=require(`./workerProxy-DPeuP2Mg.js`),t=require(`./logError-D8yBaP96.js`);let n=require(`buffer`),r=require(`process`);r=e.u(r);let i=require(`worker_threads`),a=require(`ethers`),o=require(`@solana/web3.js`);var s=`solana-on-chain-utxo:`,c=8,l=e=>e.startsWith(s),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=a.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),r=n;if(!Array.isArray(r)||r.length!==c)throw Error(`Malformed encoded Solana UTXO payload`);let[i,s,u,d,f,p,m,h]=r,g=BigInt(i),_=BigInt(d),v=t.n(_)===1n,y=t.r(_),b=a.ethers.toBeHex(BigInt(f)),x=BigInt(p),S=BigInt(m),C=BigInt(h).toString(),w=Array.from(a.ethers.getBytes(s)),T=Array.from(a.ethers.getBytes(u)),E=new o.PublicKey(Uint8Array.from([...w.slice(16),...T.slice(16)])).toBase58();return{amount:g,erc20TokenAddress:t.f(BigInt(s),BigInt(u)),mintAddress:E,randomization:y,stealthAddress:b,H0:x,H1:S,timeStamp:C,isNewStyle:v}},d=e=>{let n=a.ethers.AbiCoder.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e),r=BigInt(n[0]),i=n[1],o=BigInt(n[2][0]),s=t.n(o),c=t.r(o),l=a.ethers.toBeHex(BigInt(n[2][1])),u=BigInt(n[2][2]),d=BigInt(n[2][3]),f=BigInt(n[3]).toString(),p=Number(n[4]);return{amount:r,erc20TokenAddress:i,randomization:c,isNewStyle:s===1n,stealthAddress:l,H0:u,H1:d,timeStamp:f,tokenId:p}},f=(n,r,i)=>{let{randomization:a,H0:o,H1:s,isNewStyle:c}=e.r(i)?u(n):d(n),l=c?t.s.verifyStealthPair([a,o],[0n,s],r):t.s.checkSignature(a,o,s,r);if(!l)throw Error(`UTXO doesn't belong to user`);return l},p=(t,n,r)=>{if(e.r(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,randomization:a,stealthAddress:o,timeStamp:s,isNewStyle:c,H0:l}=u(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:s,nullifyingKey:n,stealthAddress:o,isNewStyle:c,...c?{H0:[a,l]}:{randomization:a}}}let{amount:i,erc20TokenAddress:a,timeStamp:o,randomization:s,isNewStyle:c,stealthAddress:l,H0:f}=d(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,nullifyingKey:n,stealthAddress:l,isNewStyle:c,...c?{H0:[s,f]}:{randomization:s}}},m=class{static log(...t){e.a&&console.log(...t)}static logObject(t){e.a&&console.dir(t,{depth:null,colors:!0})}static error(...e){t.t(e)}},h=function(e){return e[e.BATCH_FILTER_UTXOS_WITH_NULLIFIER=0]=`BATCH_FILTER_UTXOS_WITH_NULLIFIER`,e[e.BUILD_UTXOS=1]=`BUILD_UTXOS`,e[e.DECIPHER_OUTPUTS=2]=`DECIPHER_OUTPUTS`,e}({}),g=new e.t,_=async({data:e})=>{let{utxos:n,nullifiers:r}=e,i=n.filter(e=>{let n=new t.o(e);return!r.has(n.getNullifier())});g.postMessageToMainThread({utxoConstructors:i,stealthPairCache:t.l.serialize(),stealthAddressCache:t.c.serialize()})},v=async({data:e})=>{let n=new t.s(e.signature),r=n.getShieldedPrivateKey(),i=e.encryptedOutputs.map(i=>{try{let a=i.isPositive?t.a(Buffer.from(i.value.slice(2),`hex`),n):p(i.value,r,e.chainId);return a.isBlocked=i.isBlocked,a}catch{return}}).filter(e=>e!==void 0&&e.amount!==0n);g.postMessageToMainThread(i)},y=async({data:e})=>{let n=new t.s(e.signature),r=[],{encryptedOutputs:i}=e,{lastOutput:a}=e,o=n.getShieldedPrivateKey();for(let s=0;s<i.length;s+=1){let c=i[s];if(a=c.value,c.isPositive)try{let e=t.i(Buffer.from(a.slice(2),`hex`),n);if(e.isBlocked=c.isBlocked,!e.erc20TokenAddress||!e.amount||!e.stealthAddress)throw Error(`bruh`);r.push(c)}catch{}else try{f(a,o,e.chainId)&&r.push(c)}catch{}}g.postMessageToMainThread({additionalEncryptedOutputs:r,lastOutput:a})},b=async e=>{try{await t.u(!0);let{type:n}=e.payload;switch(n){case h.BATCH_FILTER_UTXOS_WITH_NULLIFIER:await _(e.payload);return;case h.BUILD_UTXOS:await v(e.payload);return;case h.DECIPHER_OUTPUTS:await y(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){m.error(`utxo worker message failed`,e),g.postErrorToMainThread(e)}};globalThis.process=r.default,globalThis.Buffer=n.Buffer,i.parentPort.on(`message`,async e=>{await b(e)});
@@ -14,9 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.3.27/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.27/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.27/' + 'utxoWorkerLauncher.js'),
20
- cryptoEngine: await getWorkerURL(domain + '/0.3.27/' + 'cryptoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.29/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.29/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.29/' + 'utxoWorkerLauncher.js'),
21
20
  });
22
21
  exports.getWorkerViteURL = n;
@@ -2,7 +2,6 @@
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
- export declare const getCryptoWorkerBuildURL: () => Promise<any>;
6
5
  export declare const getWorkerViteURL: () => Promise<{
7
6
  ZKProof: any;
8
7
  SnarkJS: any;
@@ -14,9 +14,8 @@
14
14
  var e = /* @__PURE__ */ ((r) => (r.ZKProof = "ZKProof", r.SnarkJS = "SnarkJS", r.UTXO = "UTXO", r))(e || {});
15
15
 
16
16
  const n = async () => ({
17
- [e.ZKProof]: await getWorkerURL(domain + '/0.3.27/' + 'zkProofWorkerLauncher.js'),
18
- [e.SnarkJS]: await getWorkerURL(domain + '/0.3.27/' + 'snarkjsWorkerLauncher.js'),
19
- [e.UTXO]: await getWorkerURL(domain + '/0.3.27/' + 'utxoWorkerLauncher.js'),
20
- cryptoEngine: await getWorkerURL(domain + '/0.3.27/' + 'cryptoWorkerLauncher.js'),
17
+ [e.ZKProof]: await getWorkerURL(domain + '/0.3.29/' + 'zkProofWorkerLauncher.js'),
18
+ [e.SnarkJS]: await getWorkerURL(domain + '/0.3.29/' + 'snarkjsWorkerLauncher.js'),
19
+ [e.UTXO]: await getWorkerURL(domain + '/0.3.29/' + 'utxoWorkerLauncher.js'),
21
20
  });
22
21
  export { n as getWorkerViteURL };
@@ -1 +1 @@
1
- var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/zkProofWorkerLauncher-C657AxMN.js`).href:new URL(`../../../../assets/zkProofWorkerLauncher-C657AxMN.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
1
+ var e=``+(typeof document>`u`?require(`url`).pathToFileURL(__dirname+`/../../../../assets/zkProofWorkerLauncher-DxuIa0r1.js`).href:new URL(`../../../../assets/zkProofWorkerLauncher-DxuIa0r1.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href);exports.default=e;
@@ -1,4 +1,4 @@
1
1
  //#region libs/shared/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url
2
- var e = "" + new URL("../../../../assets/zkProofWorkerLauncher-C657AxMN.js", import.meta.url).href;
2
+ var e = "" + new URL("../../../../assets/zkProofWorkerLauncher-DxuIa0r1.js", import.meta.url).href;
3
3
  //#endregion
4
4
  export { e as default };
@@ -1 +1 @@
1
- const e=require(`./workerProxy-DPeuP2Mg.js`),t=require(`./logError-Dy_GXEF5.js`);let n=require(`buffer`),r=require(`process`);r=e.u(r);let i=require(`worker_threads`);var a=function(e){return e[e.CALC_COMMITMENTS_SIBLING_AND_SIDES=0]=`CALC_COMMITMENTS_SIBLING_AND_SIDES`,e[e.BUILD_IN_NULLIFIERS=1]=`BUILD_IN_NULLIFIERS`,e}({}),o=class extends Error{constructor(){super(`Merkle tree is incomplete`),this.name=`MerkleTreeIncompleteError`}},s=class e{tree;count;index;reverseTree;static createWithData(t,n,r,i,a,o,s){return new e(a,o,s,t,n,r,i)}static create(n,r,i=t.d){return new e(n,i,r)}createReverseTree(){let e=new Map;for(let t=this.getStartIndex();t<this.getStartIndex()+this.count;t+=1n){let n=this.tree.get(t);n!==void 0&&e.set(n,t)}return e}constructor(e,t,n,r,i,a,o){this.hashFunction=e,this.levels=t,this.defaultNodeValue=n,this.tree=r??new Map,this.count=o??0n,this.index=a??2n**(t-1n),i?this.reverseTree=i:this.reverseTree=this.createReverseTree()}getStartIndex(){return 2n**(this.levels-1n)}logarithm2(e){let t=0n;for(;2n**t<e;)t+=1n;return t}bigIntMax(e,t){return e>t?e:t}forceInsert(e,t){if(t<this.getStartIndex())throw RangeError();this.tree.set(t,e),this.reverseTree.set(e,t);let n=this.index-this.getStartIndex(),r=this.logarithm2(n),i=t;for(let e=1n;e<=r;e+=1n){i/=2n;let e=this.hashFunction(this.tree.get(i*2n)||this.defaultNodeValue,this.tree.get(i*2n+1n)||this.defaultNodeValue);this.tree.set(i,e)}}insert(e,n){let r=!1;this.tree.has(n)&&(r=!0,t.t(`Editing commitment index: ${n} `)),r||(this.count+=1n),this.index=this.bigIntMax(this.index,n+1n),this.forceInsert(e,n)}remove(e){this.forceInsert(this.defaultNodeValue,e)}completenessCheck(){if(this.count!==this.index-this.getStartIndex())throw new o}getRootHash(){this.completenessCheck();for(let e=1n;e<2n**this.levels;e*=2n)if(this.tree.get(e))return this.tree.get(e);return this.defaultNodeValue}getMerkleData(){return this.completenessCheck(),new Map(this.tree)}getValue(e){return this.tree.get(e)}getSiblingIndex(e){return e===1n?1n:e%2n==1n?e-1n:e+1n}getSiblingHashesForVerification(e){this.completenessCheck();let t=this.reverseTree.get(e);if(t===void 0)return Array(25).fill(0n);let n=[];for(;t!==0n;)n.push(this.tree.get(this.getSiblingIndex(t))||this.defaultNodeValue),t/=2n;return n.slice(0,25)}getSiblingSides(e){this.completenessCheck();let t=this.reverseTree.get(e);if(t===void 0)return Array(25).fill(0n);let n=[];for(;t!==0n;){let e=t%2n==0n?0n:1n;n.push(e),t/=2n}return n.slice(0,25)}toJSON(){let{tree:e,reverseTree:t,count:n,index:r}=this;return{tree:Object.fromEntries(e),reverseTree:Object.fromEntries(t),count:n.toString(),index:r.toString()}}toJSONLite(){let{tree:e,count:t,index:n}=this;return{tree:Object.fromEntries(e),count:t.toString(),index:n.toString()}}clone(){return e.createWithData(new Map(this.tree),new Map(this.reverseTree),this.index,this.count,this.hashFunction,this.levels,this.defaultNodeValue)}getIndex(){return this.index}},c=e=>new Map(Object.entries(e).map(([e,t])=>[BigInt(e),BigInt(t)])),l=e=>{let n=c(e.tree),r=e.reverseTree?c(e.reverseTree):void 0;return s.createWithData(n,r,BigInt(e.index),BigInt(e.count),t.p,t.d,0n)},u=new e.t,d=e=>{let{inputUtxosSerialized:n,merkleTreeSerialized:r}=e.data,i=l(r),{inCommitmentSiblings:a,inCommitmentSiblingSides:o}=t.r(n.map(e=>e.map(e=>new t.n(e))),i);u.postMessageToMainThread({inCommitmentSiblings:a,inCommitmentSiblingSides:o})},f=e=>{let{inputUtxosSerialized:n}=e.data,r=n.map(e=>e.map(e=>new t.n(e))).map(e=>e.map(e=>e.amount===0n?`0`:e.getNullifier()));u.postMessageToMainThread(r)},p=async e=>{try{await t.f(!0);let{type:n}=e.payload;switch(n){case a.CALC_COMMITMENTS_SIBLING_AND_SIDES:d(e.payload);return;case a.BUILD_IN_NULLIFIERS:f(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){console.error(`zk proof worker message failed`,e),u.postErrorToMainThread(e)}};globalThis.process=r.default,globalThis.Buffer=n.Buffer,i.parentPort.on(`message`,async e=>{await p(e)});
1
+ const e=require(`./workerProxy-DPeuP2Mg.js`),t=require(`./logError-D8yBaP96.js`);let n=require(`buffer`),r=require(`process`);r=e.u(r);let i=require(`worker_threads`);require(`ethers`),Object.values({preHookContract:`0x0000000000000000000000000000000000000000`,hookContract:`0x0000000000000000000000000000000000000000`,preHookMetadata:`0x00`,postHookMetadata:`0x00`}),Array.from({length:25},()=>`0`);var a=(e,t)=>{let n=[];for(let r=0;r<e.length;r+=1){n.push([]);for(let i=0;i<e[r].length;i+=1)n[r][i]=t.getSiblingHashesForVerification(BigInt(e[r][i].getCommitment())).map(e=>e.toString())}let r=[];for(let n=0;n<e.length;n+=1){r.push([]);for(let i=0;i<e[n].length;i+=1)r[n][i]=t.getSiblingSides(BigInt(e[n][i].getCommitment())).map(e=>e.toString())}return{inCommitmentSiblings:n,inCommitmentSiblingSides:r}},o=function(e){return e[e.CALC_COMMITMENTS_SIBLING_AND_SIDES=0]=`CALC_COMMITMENTS_SIBLING_AND_SIDES`,e[e.BUILD_IN_NULLIFIERS=1]=`BUILD_IN_NULLIFIERS`,e}({}),s=class extends Error{constructor(){super(`Merkle tree is incomplete`),this.name=`MerkleTreeIncompleteError`}},c=class e{tree;count;index;reverseTree;static createWithData(t,n,r,i,a,o,s){return new e(a,o,s,t,n,r,i)}static create(n,r,i=t.p){return new e(n,i,r)}createReverseTree(){let e=new Map;for(let t=this.getStartIndex();t<this.getStartIndex()+this.count;t+=1n){let n=this.tree.get(t);n!==void 0&&e.set(n,t)}return e}constructor(e,t,n,r,i,a,o){this.hashFunction=e,this.levels=t,this.defaultNodeValue=n,this.tree=r??new Map,this.count=o??0n,this.index=a??2n**(t-1n),i?this.reverseTree=i:this.reverseTree=this.createReverseTree()}getStartIndex(){return 2n**(this.levels-1n)}logarithm2(e){let t=0n;for(;2n**t<e;)t+=1n;return t}bigIntMax(e,t){return e>t?e:t}forceInsert(e,t){if(t<this.getStartIndex())throw RangeError();this.tree.set(t,e),this.reverseTree.set(e,t);let n=this.index-this.getStartIndex(),r=this.logarithm2(n),i=t;for(let e=1n;e<=r;e+=1n){i/=2n;let e=this.hashFunction(this.tree.get(i*2n)||this.defaultNodeValue,this.tree.get(i*2n+1n)||this.defaultNodeValue);this.tree.set(i,e)}}insert(e,n){let r=!1;this.tree.has(n)&&(r=!0,t.t(`Editing commitment index: ${n} `)),r||(this.count+=1n),this.index=this.bigIntMax(this.index,n+1n),this.forceInsert(e,n)}remove(e){this.forceInsert(this.defaultNodeValue,e)}completenessCheck(){if(this.count!==this.index-this.getStartIndex())throw new s}getRootHash(){this.completenessCheck();for(let e=1n;e<2n**this.levels;e*=2n)if(this.tree.get(e))return this.tree.get(e);return this.defaultNodeValue}getMerkleData(){return this.completenessCheck(),new Map(this.tree)}getValue(e){return this.tree.get(e)}getSiblingIndex(e){return e===1n?1n:e%2n==1n?e-1n:e+1n}getSiblingHashesForVerification(e){this.completenessCheck();let t=this.reverseTree.get(e);if(t===void 0)return Array(25).fill(0n);let n=[];for(;t!==0n;)n.push(this.tree.get(this.getSiblingIndex(t))||this.defaultNodeValue),t/=2n;return n.slice(0,25)}getSiblingSides(e){this.completenessCheck();let t=this.reverseTree.get(e);if(t===void 0)return Array(25).fill(0n);let n=[];for(;t!==0n;){let e=t%2n==0n?0n:1n;n.push(e),t/=2n}return n.slice(0,25)}toJSON(){let{tree:e,reverseTree:t,count:n,index:r}=this;return{tree:Object.fromEntries(e),reverseTree:Object.fromEntries(t),count:n.toString(),index:r.toString()}}toJSONLite(){let{tree:e,count:t,index:n}=this;return{tree:Object.fromEntries(e),count:t.toString(),index:n.toString()}}clone(){return e.createWithData(new Map(this.tree),new Map(this.reverseTree),this.index,this.count,this.hashFunction,this.levels,this.defaultNodeValue)}getIndex(){return this.index}},l=e=>new Map(Object.entries(e).map(([e,t])=>[BigInt(e),BigInt(t)])),u=e=>{let n=l(e.tree),r=e.reverseTree?l(e.reverseTree):void 0;return c.createWithData(n,r,BigInt(e.index),BigInt(e.count),t.d,t.p,0n)},d=new e.t,f=e=>{let{inputUtxosSerialized:n,merkleTreeSerialized:r}=e.data,i=u(r),{inCommitmentSiblings:o,inCommitmentSiblingSides:s}=a(n.map(e=>e.map(e=>new t.o(e))),i);d.postMessageToMainThread({inCommitmentSiblings:o,inCommitmentSiblingSides:s})},p=e=>{let{inputUtxosSerialized:n}=e.data,r=n.map(e=>e.map(e=>new t.o(e))).map(e=>e.map(e=>e.amount===0n?`0`:e.getNullifier()));d.postMessageToMainThread(r)},m=async e=>{try{await t.u(!0);let{type:n}=e.payload;switch(n){case o.CALC_COMMITMENTS_SIBLING_AND_SIDES:f(e.payload);return;case o.BUILD_IN_NULLIFIERS:p(e.payload);return;default:throw Error(`Unknown worker message type ${n}`)}}catch(e){console.error(`zk proof worker message failed`,e),d.postErrorToMainThread(e)}};globalThis.process=r.default,globalThis.Buffer=n.Buffer,i.parentPort.on(`message`,async e=>{await m(e)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk",
3
- "version": "0.3.27",
3
+ "version": "0.3.29",
4
4
  "homepage": "hinkal.io",
5
5
  "author": {
6
6
  "name": "Hinkal Protocol"
@@ -1,13 +1,8 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../common/src/crypto/rnCryptoBridge.cjs`),t=require(`../common/src/functions/utils/hinkalTiming.utils.cjs`),n=require(`../common/src/webworker/workerFactory.cjs`),r=require(`./workerCDNUrls.cjs`),i=require(`./bridge/serialization.utils.cjs`),a=require(`./bridge/HinkalRNWorker.cjs`),o=require(`./bridge/RnWebViewCryptoBridge.cjs`);let s=require(`react`),c=require(`react-native`),l=require(`react-native-webview`),u=require(`react/jsx-runtime`);var d=`${new URL(Object.values(r.WORKER_CDN_URLS)[0]).origin}/`;n.WorkerFactory.rnWorkerFactory=e=>new a.HinkalRNWorker(e);var f=`
1
+ require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../common/src/webworker/workerFactory.cjs`),t=require(`./workerCDNUrls.cjs`),n=require(`./bridge/serialization.utils.cjs`),r=require(`./bridge/HinkalRNWorker.cjs`);let i=require(`react`),a=require(`react-native`),o=require(`react-native-webview`),s=require(`react/jsx-runtime`);var c=`${new URL(Object.values(t.WORKER_CDN_URLS)[0]).origin}/`;e.WorkerFactory.rnWorkerFactory=e=>new r.HinkalRNWorker(e);var l=`
2
2
  if (!window.__hinkalPageBoot) (function(){
3
3
  window.__hinkalPageBoot = true;
4
- var URLS = ${JSON.stringify(r.WORKER_CDN_URLS)};
5
- var CRYPTO_URL = ${JSON.stringify(r.CRYPTO_ENGINE_CDN_URL)};
4
+ var URLS = ${JSON.stringify(t.WORKER_CDN_URLS)};
6
5
  var BLOBS = {};
7
- var cryptoWorker = null;
8
- var cryptoReady = false;
9
- var cryptoInitPromise = null;
10
- var cryptoPending = {};
11
6
 
12
7
  function replacer(_key, value){
13
8
  if (typeof value === 'bigint') return { __bigint: value.toString() };
@@ -27,9 +22,6 @@ if (!window.__hinkalPageBoot) (function(){
27
22
  var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
28
23
  }
29
24
  function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
30
- function postPhase(requestId, variant, phase, t0){
31
- post({ type: 'TIMING', requestId: requestId, variant: variant, phase: phase, ms: Date.now() - t0 });
32
- }
33
25
  function describe(error){
34
26
  if (!error) return 'worker error';
35
27
  if (error.message) return error.message;
@@ -63,77 +55,15 @@ if (!window.__hinkalPageBoot) (function(){
63
55
  try { return new Worker(url, { type: 'module' }); } catch(_){ return new Worker(url); }
64
56
  }
65
57
 
66
- function postCrypto(payload){ post(Object.assign({ channel: 'crypto' }, payload)); }
67
-
68
- async function ensureCryptoWorker(){
69
- if (cryptoReady) return cryptoWorker;
70
- if (cryptoInitPromise) return cryptoInitPromise;
71
- cryptoInitPromise = new Promise(function(resolve, reject){
72
- blobUrl(CRYPTO_URL).then(function(url){
73
- cryptoWorker = spawn(url);
74
- cryptoWorker.onmessage = function(event){
75
- var data = event && event.data;
76
- if (!data || typeof data !== 'object') return;
77
- if (data.type === 'ready') {
78
- cryptoReady = true;
79
- resolve(cryptoWorker);
80
- return;
81
- }
82
- if (data.requestId && cryptoPending[data.requestId]) {
83
- cryptoPending[data.requestId](data);
84
- delete cryptoPending[data.requestId];
85
- }
86
- };
87
- cryptoWorker.onerror = function(event){ reject(new Error(describe(event))); };
88
- cryptoWorker.postMessage({ op: 'init' });
89
- }).catch(reject);
90
- });
91
- return cryptoInitPromise;
92
- }
93
-
94
- function cryptoCall(requestId, op, payload){
95
- ensureCryptoWorker().then(function(worker){
96
- cryptoPending[requestId] = function(response){
97
- if (response.type === 'result') postCrypto({ requestId: requestId, type: 'RESULT', data: response.data });
98
- else postCrypto({ requestId: requestId, type: 'ERROR', error: response.error || 'crypto worker error' });
99
- };
100
- worker.postMessage({ requestId: requestId, op: op, payload: payload });
101
- }).catch(function(error){
102
- postCrypto({ requestId: requestId, type: 'ERROR', error: describe(error) });
103
- });
104
- }
105
-
106
- window.handleCryptoMessage = function(envelope){
107
- if (!envelope || typeof envelope !== 'object') return;
108
- if (envelope.type === 'INIT') {
109
- ensureCryptoWorker().then(function(){
110
- postCrypto({ type: 'CRYPTO_READY', requestId: envelope.requestId });
111
- }).catch(function(error){
112
- postCrypto({ type: 'ERROR', requestId: envelope.requestId, error: describe(error) });
113
- });
114
- return;
115
- }
116
- if (envelope.type === 'CALL') {
117
- cryptoCall(envelope.requestId, envelope.op, revive(envelope.payload));
118
- }
119
- };
120
-
121
58
  window.handleMessage = async function(envelope){
122
59
  var requestId = envelope && envelope.requestId;
123
60
  var variant = envelope && envelope.variant;
124
61
  var message = revive(envelope && envelope.message);
125
62
  var url = URLS[variant];
126
- var t0 = Date.now();
127
- postPhase(requestId, variant, 'handleMessage-start', t0);
128
63
  if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
129
64
 
130
65
  var worker;
131
- try {
132
- var blob = await blobUrl(url);
133
- postPhase(requestId, variant, 'cdn-blob-ready', t0);
134
- worker = spawn(blob);
135
- postPhase(requestId, variant, 'inner-worker-spawned', t0);
136
- }
66
+ try { worker = spawn(await blobUrl(url)); }
137
67
  catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
138
68
 
139
69
  var done = false, ready = false, pending = message;
@@ -144,7 +74,6 @@ if (!window.__hinkalPageBoot) (function(){
144
74
  if (data && typeof data === 'object') {
145
75
  if (data.__hinkalWorkerReady) {
146
76
  ready = true;
147
- postPhase(requestId, variant, 'inner-worker-ready', t0);
148
77
  try { worker.postMessage(pending); pending = null; }
149
78
  catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
150
79
  return;
@@ -156,7 +85,6 @@ if (!window.__hinkalPageBoot) (function(){
156
85
  }
157
86
  }
158
87
  post({ requestId: requestId, type: 'RESULT', data: data });
159
- postPhase(requestId, variant, 'inner-worker-done', t0);
160
88
  finish();
161
89
  };
162
90
  worker.onerror = function(event){
@@ -167,4 +95,4 @@ if (!window.__hinkalPageBoot) (function(){
167
95
 
168
96
  post({ type: 'READY' });
169
97
  })();
170
- true;`,p=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${f}<\/script></body></html>`,m=c.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),h=()=>{let n=(0,s.useRef)(null),r=(0,s.useRef)({ready:!1,queue:[]}),a=(0,s.useCallback)((e,t,r)=>{let a;try{a=JSON.stringify({requestId:e,variant:t,message:r},i.bigIntReplacer)}catch(t){c.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:e,type:`ERROR`,error:`serialize failed: ${t?.message??t}`});return}n.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${a}); true;`)},[]);(0,s.useEffect)(()=>(e.RnCryptoBridgeFactory.bridge=new o.RnWebViewCryptoBridge,()=>{e.RnCryptoBridgeFactory.bridge=null}),[]),(0,s.useEffect)(()=>{let e=c.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let t={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};r.current.ready?a(t.requestId,t.variant,t.message):r.current.queue.push(t)});return()=>e.remove()},[a]),(0,s.useEffect)(()=>{let e=c.DeviceEventEmitter.addListener(`TO_WEBVIEW_CRYPTO`,e=>{let t;try{t=JSON.stringify(e,i.bigIntReplacer)}catch(e){c.DeviceEventEmitter.emit(`FROM_WEBVIEW_CRYPTO`,{type:`ERROR`,error:`serialize failed: ${e?.message??e}`});return}n.current?.injectJavaScript(`window.handleCryptoMessage && window.handleCryptoMessage(${t}); true;`)});return()=>e.remove()},[]);let h=(0,s.useCallback)(e=>{let n;try{n=i.reviveBigInts(JSON.parse(e.nativeEvent.data))}catch(e){c.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(n?.type===`READY`){r.current.ready=!0;let e=r.current.queue;r.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>a(e,t,n));return}if(n?.type===`TIMING`){t.logRnDeltaEvent(`webView.${n.variant}`,n.phase,{requestId:n.requestId,ms:n.ms});return}if(n?.channel===`crypto`){c.DeviceEventEmitter.emit(`FROM_WEBVIEW_CRYPTO`,n);return}c.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,n)},[a]);return(0,u.jsx)(c.View,{pointerEvents:`none`,style:m.hiddenHost,children:(0,u.jsx)(l.WebView,{ref:n,source:{html:p,baseUrl:d},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:h,onLoad:()=>n.current?.injectJavaScript(f)})})};module.exports=h;
98
+ true;`,u=`<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${l}<\/script></body></html>`,d=a.StyleSheet.create({hiddenHost:{position:`absolute`,height:1,width:1,left:-9999,top:-9999,opacity:0}}),f=()=>{let e=(0,i.useRef)(null),t=(0,i.useRef)({ready:!1,queue:[]}),r=(0,i.useCallback)((t,r,i)=>{let o;try{o=JSON.stringify({requestId:t,variant:r,message:i},n.bigIntReplacer)}catch(e){a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{requestId:t,type:`ERROR`,error:`serialize failed: ${e?.message??e}`});return}e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${o}); true;`)},[]);(0,i.useEffect)(()=>{let e=a.DeviceEventEmitter.addListener(`TO_WEBVIEW_WORKER`,e=>{let n={requestId:e?.__requestId??``,variant:e?.variant??``,message:e?.message};t.current.ready?r(n.requestId,n.variant,n.message):t.current.queue.push(n)});return()=>e.remove()},[r]);let f=(0,i.useCallback)(e=>{let i;try{i=n.reviveBigInts(JSON.parse(e.nativeEvent.data))}catch(e){a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,{type:`ERROR`,error:e?.message??`parse error`});return}if(i?.type===`READY`){t.current.ready=!0;let e=t.current.queue;t.current.queue=[],e.forEach(({requestId:e,variant:t,message:n})=>r(e,t,n));return}a.DeviceEventEmitter.emit(`FROM_WEBVIEW_WORKER`,i)},[r]);return(0,s.jsx)(a.View,{pointerEvents:`none`,style:d.hiddenHost,children:(0,s.jsx)(o.WebView,{ref:e,source:{html:u,baseUrl:c},originWhitelist:[`*`],javaScriptEnabled:!0,domStorageEnabled:!0,androidLayerType:`hardware`,onMessage:f,onLoad:()=>e.current?.injectJavaScript(l)})})};module.exports=f;
@@ -1,27 +1,19 @@
1
- import { RnCryptoBridgeFactory as e } from "../common/src/crypto/rnCryptoBridge.mjs";
2
- import { logRnDeltaEvent as t } from "../common/src/functions/utils/hinkalTiming.utils.mjs";
3
- import { WorkerFactory as n } from "../common/src/webworker/workerFactory.mjs";
4
- import { CRYPTO_ENGINE_CDN_URL as r, WORKER_CDN_URLS as i } from "./workerCDNUrls.mjs";
5
- import { bigIntReplacer as a, reviveBigInts as o } from "./bridge/serialization.utils.mjs";
6
- import { HinkalRNWorker as s } from "./bridge/HinkalRNWorker.mjs";
7
- import { RnWebViewCryptoBridge as c } from "./bridge/RnWebViewCryptoBridge.mjs";
8
- import { useCallback as l, useEffect as u, useRef as d } from "react";
9
- import { DeviceEventEmitter as f, StyleSheet as p, View as m } from "react-native";
10
- import { WebView as h } from "react-native-webview";
11
- import { jsx as g } from "react/jsx-runtime";
1
+ import { WorkerFactory as e } from "../common/src/webworker/workerFactory.mjs";
2
+ import { WORKER_CDN_URLS as t } from "./workerCDNUrls.mjs";
3
+ import { bigIntReplacer as n, reviveBigInts as r } from "./bridge/serialization.utils.mjs";
4
+ import { HinkalRNWorker as i } from "./bridge/HinkalRNWorker.mjs";
5
+ import { useCallback as a, useEffect as o, useRef as s } from "react";
6
+ import { DeviceEventEmitter as c, StyleSheet as l, View as u } from "react-native";
7
+ import { WebView as d } from "react-native-webview";
8
+ import { jsx as f } from "react/jsx-runtime";
12
9
  //#region libs/shared/sdk/src/react-native/HinkalWebViewWorker.tsx
13
- var _ = `${new URL(Object.values(i)[0]).origin}/`;
14
- n.rnWorkerFactory = (e) => new s(e);
15
- var v = `
10
+ var p = `${new URL(Object.values(t)[0]).origin}/`;
11
+ e.rnWorkerFactory = (e) => new i(e);
12
+ var m = `
16
13
  if (!window.__hinkalPageBoot) (function(){
17
14
  window.__hinkalPageBoot = true;
18
- var URLS = ${JSON.stringify(i)};
19
- var CRYPTO_URL = ${JSON.stringify(r)};
15
+ var URLS = ${JSON.stringify(t)};
20
16
  var BLOBS = {};
21
- var cryptoWorker = null;
22
- var cryptoReady = false;
23
- var cryptoInitPromise = null;
24
- var cryptoPending = {};
25
17
 
26
18
  function replacer(_key, value){
27
19
  if (typeof value === 'bigint') return { __bigint: value.toString() };
@@ -41,9 +33,6 @@ if (!window.__hinkalPageBoot) (function(){
41
33
  var out = {}; for (var i = 0; i < keys.length; i++) out[keys[i]] = revive(value[keys[i]]); return out;
42
34
  }
43
35
  function post(payload){ try { window.ReactNativeWebView.postMessage(JSON.stringify(payload, replacer)); } catch(_){} }
44
- function postPhase(requestId, variant, phase, t0){
45
- post({ type: 'TIMING', requestId: requestId, variant: variant, phase: phase, ms: Date.now() - t0 });
46
- }
47
36
  function describe(error){
48
37
  if (!error) return 'worker error';
49
38
  if (error.message) return error.message;
@@ -64,77 +53,15 @@ if (!window.__hinkalPageBoot) (function(){
64
53
  try { return new Worker(url, { type: 'module' }); } catch(_){ return new Worker(url); }
65
54
  }
66
55
 
67
- function postCrypto(payload){ post(Object.assign({ channel: 'crypto' }, payload)); }
68
-
69
- async function ensureCryptoWorker(){
70
- if (cryptoReady) return cryptoWorker;
71
- if (cryptoInitPromise) return cryptoInitPromise;
72
- cryptoInitPromise = new Promise(function(resolve, reject){
73
- blobUrl(CRYPTO_URL).then(function(url){
74
- cryptoWorker = spawn(url);
75
- cryptoWorker.onmessage = function(event){
76
- var data = event && event.data;
77
- if (!data || typeof data !== 'object') return;
78
- if (data.type === 'ready') {
79
- cryptoReady = true;
80
- resolve(cryptoWorker);
81
- return;
82
- }
83
- if (data.requestId && cryptoPending[data.requestId]) {
84
- cryptoPending[data.requestId](data);
85
- delete cryptoPending[data.requestId];
86
- }
87
- };
88
- cryptoWorker.onerror = function(event){ reject(new Error(describe(event))); };
89
- cryptoWorker.postMessage({ op: 'init' });
90
- }).catch(reject);
91
- });
92
- return cryptoInitPromise;
93
- }
94
-
95
- function cryptoCall(requestId, op, payload){
96
- ensureCryptoWorker().then(function(worker){
97
- cryptoPending[requestId] = function(response){
98
- if (response.type === 'result') postCrypto({ requestId: requestId, type: 'RESULT', data: response.data });
99
- else postCrypto({ requestId: requestId, type: 'ERROR', error: response.error || 'crypto worker error' });
100
- };
101
- worker.postMessage({ requestId: requestId, op: op, payload: payload });
102
- }).catch(function(error){
103
- postCrypto({ requestId: requestId, type: 'ERROR', error: describe(error) });
104
- });
105
- }
106
-
107
- window.handleCryptoMessage = function(envelope){
108
- if (!envelope || typeof envelope !== 'object') return;
109
- if (envelope.type === 'INIT') {
110
- ensureCryptoWorker().then(function(){
111
- postCrypto({ type: 'CRYPTO_READY', requestId: envelope.requestId });
112
- }).catch(function(error){
113
- postCrypto({ type: 'ERROR', requestId: envelope.requestId, error: describe(error) });
114
- });
115
- return;
116
- }
117
- if (envelope.type === 'CALL') {
118
- cryptoCall(envelope.requestId, envelope.op, revive(envelope.payload));
119
- }
120
- };
121
-
122
56
  window.handleMessage = async function(envelope){
123
57
  var requestId = envelope && envelope.requestId;
124
58
  var variant = envelope && envelope.variant;
125
59
  var message = revive(envelope && envelope.message);
126
60
  var url = URLS[variant];
127
- var t0 = Date.now();
128
- postPhase(requestId, variant, 'handleMessage-start', t0);
129
61
  if (!url) return post({ requestId: requestId, type: 'ERROR', error: 'Unknown variant: ' + variant });
130
62
 
131
63
  var worker;
132
- try {
133
- var blob = await blobUrl(url);
134
- postPhase(requestId, variant, 'cdn-blob-ready', t0);
135
- worker = spawn(blob);
136
- postPhase(requestId, variant, 'inner-worker-spawned', t0);
137
- }
64
+ try { worker = spawn(await blobUrl(url)); }
138
65
  catch (error) { return post({ requestId: requestId, type: 'ERROR', error: 'spawn failed: ' + describe(error) }); }
139
66
 
140
67
  var done = false, ready = false, pending = message;
@@ -145,7 +72,6 @@ if (!window.__hinkalPageBoot) (function(){
145
72
  if (data && typeof data === 'object') {
146
73
  if (data.__hinkalWorkerReady) {
147
74
  ready = true;
148
- postPhase(requestId, variant, 'inner-worker-ready', t0);
149
75
  try { worker.postMessage(pending); pending = null; }
150
76
  catch (error) { post({ requestId: requestId, type: 'ERROR', error: 'postMessage failed: ' + describe(error) }); finish(); }
151
77
  return;
@@ -157,7 +83,6 @@ if (!window.__hinkalPageBoot) (function(){
157
83
  }
158
84
  }
159
85
  post({ requestId: requestId, type: 'RESULT', data: data });
160
- postPhase(requestId, variant, 'inner-worker-done', t0);
161
86
  finish();
162
87
  };
163
88
  worker.onerror = function(event){
@@ -168,110 +93,82 @@ if (!window.__hinkalPageBoot) (function(){
168
93
 
169
94
  post({ type: 'READY' });
170
95
  })();
171
- true;`, y = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${v}<\/script></body></html>`, b = p.create({ hiddenHost: {
96
+ true;`, h = `<!DOCTYPE html><html><head><meta charset="utf-8"/></head><body><script>${m}<\/script></body></html>`, g = l.create({ hiddenHost: {
172
97
  position: "absolute",
173
98
  height: 1,
174
99
  width: 1,
175
100
  left: -9999,
176
101
  top: -9999,
177
102
  opacity: 0
178
- } }), x = () => {
179
- let n = d(null), r = d({
103
+ } }), _ = () => {
104
+ let e = s(null), t = s({
180
105
  ready: !1,
181
106
  queue: []
182
- }), i = l((e, t, r) => {
183
- let i;
107
+ }), i = a((t, r, i) => {
108
+ let a;
184
109
  try {
185
- i = JSON.stringify({
186
- requestId: e,
187
- variant: t,
188
- message: r
189
- }, a);
190
- } catch (t) {
191
- f.emit("FROM_WEBVIEW_WORKER", {
192
- requestId: e,
110
+ a = JSON.stringify({
111
+ requestId: t,
112
+ variant: r,
113
+ message: i
114
+ }, n);
115
+ } catch (e) {
116
+ c.emit("FROM_WEBVIEW_WORKER", {
117
+ requestId: t,
193
118
  type: "ERROR",
194
- error: `serialize failed: ${t?.message ?? t}`
119
+ error: `serialize failed: ${e?.message ?? e}`
195
120
  });
196
121
  return;
197
122
  }
198
- n.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${i}); true;`);
123
+ e.current?.injectJavaScript(`window.handleMessage && window.handleMessage(${a}); true;`);
199
124
  }, []);
200
- u(() => (e.bridge = new c(), () => {
201
- e.bridge = null;
202
- }), []), u(() => {
203
- let e = f.addListener("TO_WEBVIEW_WORKER", (e) => {
204
- let t = {
125
+ o(() => {
126
+ let e = c.addListener("TO_WEBVIEW_WORKER", (e) => {
127
+ let n = {
205
128
  requestId: e?.__requestId ?? "",
206
129
  variant: e?.variant ?? "",
207
130
  message: e?.message
208
131
  };
209
- r.current.ready ? i(t.requestId, t.variant, t.message) : r.current.queue.push(t);
210
- });
211
- return () => e.remove();
212
- }, [i]), u(() => {
213
- let e = f.addListener("TO_WEBVIEW_CRYPTO", (e) => {
214
- let t;
215
- try {
216
- t = JSON.stringify(e, a);
217
- } catch (e) {
218
- f.emit("FROM_WEBVIEW_CRYPTO", {
219
- type: "ERROR",
220
- error: `serialize failed: ${e?.message ?? e}`
221
- });
222
- return;
223
- }
224
- n.current?.injectJavaScript(`window.handleCryptoMessage && window.handleCryptoMessage(${t}); true;`);
132
+ t.current.ready ? i(n.requestId, n.variant, n.message) : t.current.queue.push(n);
225
133
  });
226
134
  return () => e.remove();
227
- }, []);
228
- let s = l((e) => {
135
+ }, [i]);
136
+ let l = a((e) => {
229
137
  let n;
230
138
  try {
231
- n = o(JSON.parse(e.nativeEvent.data));
139
+ n = r(JSON.parse(e.nativeEvent.data));
232
140
  } catch (e) {
233
- f.emit("FROM_WEBVIEW_WORKER", {
141
+ c.emit("FROM_WEBVIEW_WORKER", {
234
142
  type: "ERROR",
235
143
  error: e?.message ?? "parse error"
236
144
  });
237
145
  return;
238
146
  }
239
147
  if (n?.type === "READY") {
240
- r.current.ready = !0;
241
- let e = r.current.queue;
242
- r.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => i(e, t, n));
243
- return;
244
- }
245
- if (n?.type === "TIMING") {
246
- t(`webView.${n.variant}`, n.phase, {
247
- requestId: n.requestId,
248
- ms: n.ms
249
- });
250
- return;
251
- }
252
- if (n?.channel === "crypto") {
253
- f.emit("FROM_WEBVIEW_CRYPTO", n);
148
+ t.current.ready = !0;
149
+ let e = t.current.queue;
150
+ t.current.queue = [], e.forEach(({ requestId: e, variant: t, message: n }) => i(e, t, n));
254
151
  return;
255
152
  }
256
- f.emit("FROM_WEBVIEW_WORKER", n);
153
+ c.emit("FROM_WEBVIEW_WORKER", n);
257
154
  }, [i]);
258
- return /* @__PURE__ */ g(m, {
155
+ return /* @__PURE__ */ f(u, {
259
156
  pointerEvents: "none",
260
- style: b.hiddenHost,
261
- children: /* @__PURE__ */ g(h, {
262
- ref: n,
157
+ style: g.hiddenHost,
158
+ children: /* @__PURE__ */ f(d, {
159
+ ref: e,
263
160
  source: {
264
- html: y,
265
- baseUrl: _
161
+ html: h,
162
+ baseUrl: p
266
163
  },
267
164
  originWhitelist: ["*"],
268
165
  javaScriptEnabled: !0,
269
166
  domStorageEnabled: !0,
270
167
  androidLayerType: "hardware",
271
- onMessage: s,
272
- onLoad: () => n.current?.injectJavaScript(v)
168
+ onMessage: l,
169
+ onLoad: () => e.current?.injectJavaScript(m)
273
170
  })
274
171
  });
275
172
  };
276
173
  //#endregion
277
- export { x as default };
174
+ export { _ as default };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../common/src/functions/utils/hinkalTiming.utils.cjs`),t=require(`./serialization.utils.cjs`);let n=require(`react-native`);var r=class{onmessage=null;onerror=null;requestId=t.nextRequestId();sentAt=0;subscription;constructor(t){this.variant=t,this.subscription=n.DeviceEventEmitter.addListener(`FROM_WEBVIEW_WORKER`,t=>{!t||t.requestId!==this.requestId||(t.type===`RESULT`?(e.logRnDeltaEvent(`rnBridge.${this.variant}`,`round-trip`,{requestId:this.requestId,ms:Date.now()-this.sentAt}),this.onmessage?.({data:t.data})):t.type===`ERROR`&&this.onerror?.(Error(t.error??`WebView worker error`)))})}postMessage(t){this.sentAt=Date.now(),e.logRnDeltaEvent(`rnBridge.${this.variant}`,`postMessage-sent`,{requestId:this.requestId}),n.DeviceEventEmitter.emit(`TO_WEBVIEW_WORKER`,{__requestId:this.requestId,variant:this.variant,message:t})}terminate(){this.subscription?.remove?.(),this.subscription=null}};exports.HinkalRNWorker=r;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./serialization.utils.cjs`);let t=require(`react-native`);var n=class{onmessage=null;onerror=null;requestId=e.nextRequestId();subscription;constructor(e){this.variant=e,this.subscription=t.DeviceEventEmitter.addListener(`FROM_WEBVIEW_WORKER`,e=>{!e||e.requestId!==this.requestId||(e.type===`RESULT`?this.onmessage?.({data:e.data}):e.type===`ERROR`&&this.onerror?.(Error(e.error??`WebView worker error`)))})}postMessage(e){t.DeviceEventEmitter.emit(`TO_WEBVIEW_WORKER`,{__requestId:this.requestId,variant:this.variant,message:e})}terminate(){this.subscription?.remove?.(),this.subscription=null}};exports.HinkalRNWorker=n;
@@ -6,7 +6,6 @@ export declare class HinkalRNWorker {
6
6
  }) => void) | null;
7
7
  onerror: ((error: any) => void) | null;
8
8
  private requestId;
9
- private sentAt;
10
9
  private subscription;
11
10
  constructor(variant: WorkerVariant);
12
11
  postMessage(message: unknown): void;