@gurge/sdk 0.3.27 → 0.3.28

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 +35 -46
  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 +43 -86
  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 +22 -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 +60 -67
  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/index.cjs +1 -1
  85. package/common/src/functions/utils/index.mjs +3 -3
  86. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  87. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +71 -122
  88. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  89. package/common/src/functions/web3/events/getShieldedBalance.mjs +64 -64
  90. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  91. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +42 -42
  92. package/common/src/types/index.cjs +1 -1
  93. package/common/src/types/index.mjs +1 -1
  94. package/common/src/webworker/logError-D8yBaP96.js +2 -0
  95. package/common/src/webworker/package.json +1 -1
  96. package/common/src/webworker/performTaskWithWorker.cjs +1 -1
  97. package/common/src/webworker/performTaskWithWorker.mjs +17 -18
  98. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  99. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  100. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  101. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -4
  102. package/common/src/webworker/viteWorkerURL.constant.d.ts +0 -1
  103. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -4
  104. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  105. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  106. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  107. package/package.json +1 -1
  108. package/react-native/HinkalWebViewWorker.cjs +4 -76
  109. package/react-native/HinkalWebViewWorker.mjs +49 -152
  110. package/react-native/bridge/HinkalRNWorker.cjs +1 -1
  111. package/react-native/bridge/HinkalRNWorker.d.ts +0 -1
  112. package/react-native/bridge/HinkalRNWorker.mjs +11 -16
  113. package/react-native/shims/circomlibjs-hinkal-fork.js +2 -2
  114. package/react-native/shims/circomlibjs.js +2 -2
  115. package/react-native/workerCDNUrls.cjs +1 -1
  116. package/react-native/workerCDNUrls.d.ts +0 -1
  117. package/react-native/workerCDNUrls.mjs +2 -2
  118. package/sdk/package.json.cjs +1 -1
  119. package/sdk/package.json.mjs +1 -1
  120. package/common/src/crypto/rnCryptoBridge.cjs +0 -1
  121. package/common/src/crypto/rnCryptoBridge.d.ts +0 -8
  122. package/common/src/crypto/rnCryptoBridge.mjs +0 -10
  123. package/common/src/crypto/rnUtxoCrypto.cjs +0 -1
  124. package/common/src/crypto/rnUtxoCrypto.d.ts +0 -25
  125. package/common/src/crypto/rnUtxoCrypto.mjs +0 -74
  126. package/common/src/functions/utils/hinkalTiming.utils.cjs +0 -1
  127. package/common/src/functions/utils/hinkalTiming.utils.d.ts +0 -11
  128. package/common/src/functions/utils/hinkalTiming.utils.mjs +0 -21
  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 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/amounts.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../types/external-action.types.cjs`),o=require(`../../functions/snarkjs/common.snarkjs.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../../functions/utils/encodeTokenWithId.cjs`),l=require(`../../functions/utils/tron.utils.cjs`),u=require(`../../functions/web3/events/getInputUtxoAndBalance.cjs`),d=require(`../../functions/utils/token-check.utils.cjs`),f=require(`../../functions/web3/events/getShieldedBalance.cjs`),p=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../constants/tx-confirmation.constants.cjs`),g=require(`../../functions/utils/tx-confirmation.utils.cjs`),_=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),y=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),b=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);let x=require(`ethers`);var S=async(e,t,n,r)=>{let i=[...await f.addPaddingToUtxos(e,t,n,r,void 0,void 0,!1,!0)],a=[],o=s.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=await p.outputUtxoProcessing(e.userKeys,i[t],r[t],o);a.push(n)}return{inputUtxosArray:i,outputUtxosArray:a}},C=async(e,t,n,r)=>{let i=[...await f.addPaddingToUtxos(e,t,n,r,6,void 0,!1,!0)][0],a=s.getCurrentTimeInSeconds().toString(),{outputUtxos:o}=await p.outputUtxoProcessing(e.userKeys,i,r[0],a);return{inputUtxos:i,outputUtxos:o}},w=async(t,r,i,o,s)=>{let c=e.isTronLike(r),u=[i.erc20TokenAddress],d=i.erc20TokenAddress,[f,p]=await Promise.all([m.getFeeStructure(r,d,u,a.ExternalActionId.Transact),t.getRandomRelay(r,!0)]);if(!p)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let h=l.addressToHexFormat(s),g=o-f.flatFee;if(g<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${o}, Fee: ${f.flatFee}`);let v=[-g];await b.mergeWithFeeStructure(r,u,v,f);let x={externalActionId:0n,externalAddress:h,externalActionMetadata:`0x00`},{inputUtxosArray:C,outputUtxosArray:w}=await S(t,r,u,v),{zkCallData:T,circomData:E,dimData:D,commitmentValidationData:O}=await _.constructZkProof(t.merkleTreeHinkalByChain[r],C,w,t.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,t.generateProofRemotely,f,p,r);return{tx:await y.transactCallRelayer(r,T,D,E,O,void 0,void 0,void 0,await l.reorderZkCallData(c,T,D,E)),amountToRecipient:g}},T=async(t,s,c,l,u,d)=>{let f=[c.erc20TokenAddress],{originalDeployer:p}=e.networkRegistry[s].contractData;if(!p)throw Error(`missing data`);let{userKeys:h,merkleTreeHinkalByChain:g}=t,_=c.erc20TokenAddress,[b,S]=await Promise.all([m.getFeeStructure(s,_,f,a.ExternalActionId.Transact,void 0,void 0,{mintTo:f[0],recipient:u,nullifierCount:d}),t.getRandomRelay(s,!0)]);if(!S)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let w=l-b.flatFee;if(w<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${l}, Fee: ${b.flatFee}`);let T=[-w];T[0]-=b.flatFee;let{inputUtxos:E,outputUtxos:D}=await C(t,s,f,T),O=i.UserKeys.findCorrectRandomization(r.randomBigInt(31),t.userKeys.getShieldedPrivateKey()),k={tokenNumber:f.length,nullifierAmount:E.length,outputAmount:D.length},A=o.calcEncryptedOutputs([D])[0][0],j=Array.from(x.ethers.getBytes(A)),{proofAArr:M,proofBArr:N,proofCArr:P,publicInputsArr:F,commitmentValidationData:I}=await v.constructSolanaZkProof(t.generateProofRemotely,g[s],h,[f[0]],[E],[D],O,b.flatFee,b.variableRate,u,S,k,[j],s),L={recipient:u,mint:f[0]===`11111111111111111111111111111111`?void 0:f[0]};return{tx:await y.solanaTransactCallRelayer({chainId:s,relayAddress:S,functionName:`transact`,args:{proofAArr:M,proofBArr:N,proofCArr:P,publicInputsArr:F,encryptedOutputs:[j],relayerFee:b.flatFee.toString(),dimensions:k},accounts:L,commitmentValidationData:I}),amountToRecipient:w}},E=async(t,n,r,i,a,o)=>e.isSolanaLike(n)?T(t,n,r,i,a,o):w(t,n,r,i,a),D=async(e,n,r)=>{let i=[],a=d.validateAndGetChainId([n]),o=c.encodeTokenWithId(a,{erc20TokenAddress:n.erc20TokenAddress,tokenId:0});for(;;){await e.resetMerkleTreesIfNecessary([a]);let s=((await u.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:a,allowRemoteDecryption:e.generateProofRemotely}))?.get(o)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount)).slice(0,6),c=t.countTotalAmountInUtxos(s);if(!c)break;let{tx:l}=await E(e,a,n,c,r,s.length);await g.waitForTransactionConfirmation(a,l,{solanaCommitment:`finalized`,evmTimeoutMs:h.RELAYER_TX_CONFIRMATION_TIMEOUT}),i.push(l)}return i};exports.hinkalWithdrawStuckUtxos=D;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/amounts.utils.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/encodeTokenWithId.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../functions/web3/events/getInputUtxoAndBalance.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/web3/events/getShieldedBalance.cjs`),f=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),p=require(`../../functions/snarkjs/common.snarkjs.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../constants/tx-confirmation.constants.cjs`),g=require(`../../functions/utils/tx-confirmation.utils.cjs`),_=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),v=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),y=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),b=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);let x=require(`ethers`);var S=async(e,t,n,r)=>{let i=[...await d.addPaddingToUtxos(e,t,n,r,void 0,void 0,!1,!0)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=f.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},C=async(e,t,n,r)=>{let i=[...await d.addPaddingToUtxos(e,t,n,r,6,void 0,!1,!0)][0],o=a.getCurrentTimeInSeconds().toString(),{outputUtxos:s}=f.outputUtxoProcessing(e.userKeys,i,r[0],o);return{inputUtxos:i,outputUtxos:s}},w=async(t,r,i,a,o)=>{let l=e.isTronLike(r),u=[i.erc20TokenAddress],d=i.erc20TokenAddress,[f,p]=await Promise.all([m.getFeeStructure(r,d,u,s.ExternalActionId.Transact),t.getRandomRelay(r,!0)]);if(!p)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let h=c.addressToHexFormat(o),g=a-f.flatFee;if(g<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${a}, Fee: ${f.flatFee}`);let v=[-g];await b.mergeWithFeeStructure(r,u,v,f);let x={externalActionId:0n,externalAddress:h,externalActionMetadata:`0x00`},{inputUtxosArray:C,outputUtxosArray:w}=await S(t,r,u,v),{zkCallData:T,circomData:E,dimData:D,commitmentValidationData:O}=await _.constructZkProof(t.merkleTreeHinkalByChain[r],C,w,t.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,t.generateProofRemotely,f,p,r);return{tx:await y.transactCallRelayer(r,T,D,E,O,void 0,void 0,void 0,await c.reorderZkCallData(l,T,D,E)),amountToRecipient:g}},T=async(t,a,o,c,l,u)=>{let d=[o.erc20TokenAddress],{originalDeployer:f}=e.networkRegistry[a].contractData;if(!f)throw Error(`missing data`);let{userKeys:h,merkleTreeHinkalByChain:g}=t,_=o.erc20TokenAddress,[b,S]=await Promise.all([m.getFeeStructure(a,_,d,s.ExternalActionId.Transact,void 0,void 0,{mintTo:d[0],recipient:l,nullifierCount:u}),t.getRandomRelay(a,!0)]);if(!S)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let w=c-b.flatFee;if(w<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${c}, Fee: ${b.flatFee}`);let T=[-w];T[0]-=b.flatFee;let{inputUtxos:E,outputUtxos:D}=await C(t,a,d,T),O=i.UserKeys.findCorrectRandomization(r.randomBigInt(31),t.userKeys.getShieldedPrivateKey()),k={tokenNumber:d.length,nullifierAmount:E.length,outputAmount:D.length},A=p.calcEncryptedOutputs([D])[0][0],j=Array.from(x.ethers.getBytes(A)),{proofAArr:M,proofBArr:N,proofCArr:P,publicInputsArr:F,commitmentValidationData:I}=await v.constructSolanaZkProof(t.generateProofRemotely,g[a],h,[d[0]],[E],[D],O,b.flatFee,b.variableRate,l,S,k,[j],a),L={recipient:l,mint:d[0]===`11111111111111111111111111111111`?void 0:d[0]};return{tx:await y.solanaTransactCallRelayer({chainId:a,relayAddress:S,functionName:`transact`,args:{proofAArr:M,proofBArr:N,proofCArr:P,publicInputsArr:F,encryptedOutputs:[j],relayerFee:b.flatFee.toString(),dimensions:k},accounts:L,commitmentValidationData:I}),amountToRecipient:w}},E=async(t,n,r,i,a,o)=>e.isSolanaLike(n)?T(t,n,r,i,a,o):w(t,n,r,i,a),D=async(e,n,r)=>{let i=[],a=u.validateAndGetChainId([n]),s=o.encodeTokenWithId(a,{erc20TokenAddress:n.erc20TokenAddress,tokenId:0});for(;;){await e.resetMerkleTreesIfNecessary([a]);let o=((await l.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:a,allowRemoteDecryption:e.generateProofRemotely}))?.get(s)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount)).slice(0,6),c=t.countTotalAmountInUtxos(o);if(!c)break;let{tx:u}=await E(e,a,n,c,r,o.length);await g.waitForTransactionConfirmation(a,u,{solanaCommitment:`finalized`,evmTimeoutMs:h.RELAYER_TX_CONFIRMATION_TIMEOUT}),i.push(u)}return i};exports.hinkalWithdrawStuckUtxos=D;
@@ -4,15 +4,15 @@ import { countTotalAmountInUtxos as r } from "../../functions/utils/amounts.util
4
4
  import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
5
5
  import { randomBigInt as a } from "../../functions/web3/etherFunctions.mjs";
6
6
  import { UserKeys as o } from "../crypto-keys/keys.mjs";
7
- import { ExternalActionId as s } from "../../types/external-action.types.mjs";
8
- import { calcEncryptedOutputs as c } from "../../functions/snarkjs/common.snarkjs.mjs";
9
- import { getCurrentTimeInSeconds as l } from "../../functions/utils/time.utils.mjs";
10
- import { encodeTokenWithId as u } from "../../functions/utils/encodeTokenWithId.mjs";
11
- import { addressToHexFormat as d, reorderZkCallData as f } from "../../functions/utils/tron.utils.mjs";
12
- import { getInputUtxoAndBalancePerToken as p } from "../../functions/web3/events/getInputUtxoAndBalance.mjs";
13
- import { validateAndGetChainId as m } from "../../functions/utils/token-check.utils.mjs";
14
- import { addPaddingToUtxos as h } from "../../functions/web3/events/getShieldedBalance.mjs";
15
- import { outputUtxoProcessing as g } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
7
+ import { getCurrentTimeInSeconds as s } from "../../functions/utils/time.utils.mjs";
8
+ import { encodeTokenWithId as c } from "../../functions/utils/encodeTokenWithId.mjs";
9
+ import { ExternalActionId as l } from "../../types/external-action.types.mjs";
10
+ import { addressToHexFormat as u, reorderZkCallData as d } from "../../functions/utils/tron.utils.mjs";
11
+ import { getInputUtxoAndBalancePerToken as f } from "../../functions/web3/events/getInputUtxoAndBalance.mjs";
12
+ import { validateAndGetChainId as p } from "../../functions/utils/token-check.utils.mjs";
13
+ import { addPaddingToUtxos as m } from "../../functions/web3/events/getShieldedBalance.mjs";
14
+ import { outputUtxoProcessing as h } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
15
+ import { calcEncryptedOutputs as g } from "../../functions/snarkjs/common.snarkjs.mjs";
16
16
  import { getFeeStructure as _ } from "../../functions/pre-transaction/getFeeStructure.mjs";
17
17
  import { RELAYER_TX_CONFIRMATION_TIMEOUT as v } from "../../constants/tx-confirmation.constants.mjs";
18
18
  import { waitForTransactionConfirmation as y } from "../../functions/utils/tx-confirmation.utils.mjs";
@@ -23,9 +23,9 @@ import { mergeWithFeeStructure as w } from "../../functions/pre-transaction/merg
23
23
  import { ethers as T } from "ethers";
24
24
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.ts
25
25
  var E = async (e, t, n, r) => {
26
- let i = [...await h(e, t, n, r, void 0, void 0, !1, !0)], a = [], o = l().toString();
26
+ let i = [...await m(e, t, n, r, void 0, void 0, !1, !0)], a = [], o = s().toString();
27
27
  for (let t = 0; t < n.length; t += 1) {
28
- let { outputUtxos: n } = await g(e.userKeys, i[t], r[t], o);
28
+ let { outputUtxos: n } = h(e.userKeys, i[t], r[t], o);
29
29
  a.push(n);
30
30
  }
31
31
  return {
@@ -33,47 +33,47 @@ var E = async (e, t, n, r) => {
33
33
  outputUtxosArray: a
34
34
  };
35
35
  }, D = async (e, t, n, r) => {
36
- let i = [...await h(e, t, n, r, 6, void 0, !1, !0)][0], a = l().toString(), { outputUtxos: o } = await g(e.userKeys, i, r[0], a);
36
+ let i = [...await m(e, t, n, r, 6, void 0, !1, !0)][0], a = s().toString(), { outputUtxos: o } = h(e.userKeys, i, r[0], a);
37
37
  return {
38
38
  inputUtxos: i,
39
39
  outputUtxos: o
40
40
  };
41
41
  }, O = async (e, n, r, a, o) => {
42
- let c = t(n), l = [r.erc20TokenAddress], u = r.erc20TokenAddress, [p, m] = await Promise.all([_(n, u, l, s.Transact), e.getRandomRelay(n, !0)]);
42
+ let s = t(n), c = [r.erc20TokenAddress], f = r.erc20TokenAddress, [p, m] = await Promise.all([_(n, f, c, l.Transact), e.getRandomRelay(n, !0)]);
43
43
  if (!m) throw Error(i.RELAYER_NOT_AVAILABLE);
44
- let h = d(o), g = a - p.flatFee;
44
+ let h = u(o), g = a - p.flatFee;
45
45
  if (g <= 0n) throw Error(`Insufficient balance to cover fee. Balance: ${a}, Fee: ${p.flatFee}`);
46
46
  let v = [-g];
47
- await w(n, l, v, p);
47
+ await w(n, c, v, p);
48
48
  let y = {
49
49
  externalActionId: 0n,
50
50
  externalAddress: h,
51
51
  externalActionMetadata: "0x00"
52
- }, { inputUtxosArray: x, outputUtxosArray: S } = await E(e, n, l, v), { zkCallData: T, circomData: D, dimData: O, commitmentValidationData: k } = await b(e.merkleTreeHinkalByChain[n], x, S, e.userKeys, y.externalActionId, y.externalAddress, y.externalActionMetadata, e.generateProofRemotely, p, m, n);
52
+ }, { inputUtxosArray: x, outputUtxosArray: S } = await E(e, n, c, v), { zkCallData: T, circomData: D, dimData: O, commitmentValidationData: k } = await b(e.merkleTreeHinkalByChain[n], x, S, e.userKeys, y.externalActionId, y.externalAddress, y.externalActionMetadata, e.generateProofRemotely, p, m, n);
53
53
  return {
54
- tx: await C(n, T, O, D, k, void 0, void 0, void 0, await f(c, T, O, D)),
54
+ tx: await C(n, T, O, D, k, void 0, void 0, void 0, await d(s, T, O, D)),
55
55
  amountToRecipient: g
56
56
  };
57
- }, k = async (e, t, r, l, u, d) => {
58
- let f = [r.erc20TokenAddress], { originalDeployer: p } = n[t].contractData;
59
- if (!p) throw Error("missing data");
60
- let { userKeys: m, merkleTreeHinkalByChain: h } = e, g = r.erc20TokenAddress, [v, y] = await Promise.all([_(t, g, f, s.Transact, void 0, void 0, {
61
- mintTo: f[0],
62
- recipient: u,
63
- nullifierCount: d
57
+ }, k = async (e, t, r, s, c, u) => {
58
+ let d = [r.erc20TokenAddress], { originalDeployer: f } = n[t].contractData;
59
+ if (!f) throw Error("missing data");
60
+ let { userKeys: p, merkleTreeHinkalByChain: m } = e, h = r.erc20TokenAddress, [v, y] = await Promise.all([_(t, h, d, l.Transact, void 0, void 0, {
61
+ mintTo: d[0],
62
+ recipient: c,
63
+ nullifierCount: u
64
64
  }), e.getRandomRelay(t, !0)]);
65
65
  if (!y) throw Error(i.RELAYER_NOT_AVAILABLE);
66
- let b = l - v.flatFee;
67
- if (b <= 0n) throw Error(`Insufficient balance to cover fee. Balance: ${l}, Fee: ${v.flatFee}`);
66
+ let b = s - v.flatFee;
67
+ if (b <= 0n) throw Error(`Insufficient balance to cover fee. Balance: ${s}, Fee: ${v.flatFee}`);
68
68
  let C = [-b];
69
69
  C[0] -= v.flatFee;
70
- let { inputUtxos: w, outputUtxos: E } = await D(e, t, f, C), O = o.findCorrectRandomization(a(31), e.userKeys.getShieldedPrivateKey()), k = {
71
- tokenNumber: f.length,
70
+ let { inputUtxos: w, outputUtxos: E } = await D(e, t, d, C), O = o.findCorrectRandomization(a(31), e.userKeys.getShieldedPrivateKey()), k = {
71
+ tokenNumber: d.length,
72
72
  nullifierAmount: w.length,
73
73
  outputAmount: E.length
74
- }, A = c([E])[0][0], j = Array.from(T.getBytes(A)), { proofAArr: M, proofBArr: N, proofCArr: P, publicInputsArr: F, commitmentValidationData: I } = await x(e.generateProofRemotely, h[t], m, [f[0]], [w], [E], O, v.flatFee, v.variableRate, u, y, k, [j], t), L = {
75
- recipient: u,
76
- mint: f[0] === "11111111111111111111111111111111" ? void 0 : f[0]
74
+ }, A = g([E])[0][0], j = Array.from(T.getBytes(A)), { proofAArr: M, proofBArr: N, proofCArr: P, publicInputsArr: F, commitmentValidationData: I } = await x(e.generateProofRemotely, m[t], p, [d[0]], [w], [E], O, v.flatFee, v.variableRate, c, y, k, [j], t), L = {
75
+ recipient: c,
76
+ mint: d[0] === "11111111111111111111111111111111" ? void 0 : d[0]
77
77
  };
78
78
  return {
79
79
  tx: await S({
@@ -95,13 +95,13 @@ var E = async (e, t, n, r) => {
95
95
  amountToRecipient: b
96
96
  };
97
97
  }, A = async (t, n, r, i, a, o) => e(n) ? k(t, n, r, i, a, o) : O(t, n, r, i, a), j = async (e, t, n) => {
98
- let i = [], a = m([t]), o = u(a, {
98
+ let i = [], a = p([t]), o = c(a, {
99
99
  erc20TokenAddress: t.erc20TokenAddress,
100
100
  tokenId: 0
101
101
  });
102
102
  for (;;) {
103
103
  await e.resetMerkleTreesIfNecessary([a]);
104
- let s = ((await p({
104
+ let s = ((await f({
105
105
  hinkal: e,
106
106
  sliceIfMore6: !1,
107
107
  useBlockedUtxos: !0,
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/utils/fees.utils.cjs`),s=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`);let c=require(`ethers`);var l=async(l,u,d,f,p,m={})=>{let h=d.erc20TokenAddress,g=f.map(e=>e+o.calculateTotalFee(e,p)),_=g.reduce((e,t)=>e+t,0n),v=[h],y=[0n],b=[!0],x=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint256[]`],[g]),{hinkalWrapperAddress:S,hinkalWrapperABI:C,depositOnChainUtxosExternalActionAddress:w,depositOnChainUtxosExternalActionABI:T}=e.networkRegistry[u].contractData;if(!S||!C||!w||!T)throw Error(`contract data not set in networkRegistry`);let E=[...await i.addPaddingToUtxos(l,u,v,y,2,void 0,!0)],D=[];for(let e=0;e<E.length;e+=1){let{outputUtxos:t}=await a.outputUtxoProcessing(l.userKeys,E[e],y[e]);D.push(t)}let{zkCallData:O,circomData:k,dimData:A}=await s.constructZkProof(l.merkleTreeHinkalByChain[u],E,D,l.userKeys,r.ExternalActionId.DepositOnChainUtxos,w,x,l.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,u,b,m.hookData,S);return{zkCallData:O,circomData:k,dimData:A,utxoAmounts:g,totalAmount:_,hinkalWrapperAddress:S,depositOnChainUtxosExternalActionAddress:w,hinkalWrapperABI:C,depositOnChainUtxosExternalActionABI:T,inputUtxosArray:E}};exports.prepareDepositOnChainUtxosZkProof=l;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../functions/web3/events/getShieldedBalance.cjs`),a=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),o=require(`../../functions/utils/fees.utils.cjs`),s=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`);let c=require(`ethers`);var l=async(l,u,d,f,p,m={})=>{let h=d.erc20TokenAddress,g=f.map(e=>e+o.calculateTotalFee(e,p)),_=g.reduce((e,t)=>e+t,0n),v=[h],y=[0n],b=[!0],x=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint256[]`],[g]),{hinkalWrapperAddress:S,hinkalWrapperABI:C,depositOnChainUtxosExternalActionAddress:w,depositOnChainUtxosExternalActionABI:T}=e.networkRegistry[u].contractData;if(!S||!C||!w||!T)throw Error(`contract data not set in networkRegistry`);let E=[...await i.addPaddingToUtxos(l,u,v,y,2,void 0,!0)],D=[];for(let e=0;e<E.length;e+=1){let{outputUtxos:t}=a.outputUtxoProcessing(l.userKeys,E[e],y[e]);D.push(t)}let{zkCallData:O,circomData:k,dimData:A}=await s.constructZkProof(l.merkleTreeHinkalByChain[u],E,D,l.userKeys,r.ExternalActionId.DepositOnChainUtxos,w,x,l.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,u,b,m.hookData,S);return{zkCallData:O,circomData:k,dimData:A,utxoAmounts:g,totalAmount:_,hinkalWrapperAddress:S,depositOnChainUtxosExternalActionAddress:w,hinkalWrapperABI:C,depositOnChainUtxosExternalActionABI:T,inputUtxosArray:E}};exports.prepareDepositOnChainUtxosZkProof=l;
@@ -13,7 +13,7 @@ var l = async (l, u, d, f, p, m = {}) => {
13
13
  if (!S || !C || !w || !T) throw Error("contract data not set in networkRegistry");
14
14
  let E = [...await i(l, u, v, y, 2, void 0, !0)], D = [];
15
15
  for (let e = 0; e < E.length; e += 1) {
16
- let { outputUtxos: t } = await a(l.userKeys, E[e], y[e]);
16
+ let { outputUtxos: t } = a(l.userKeys, E[e], y[e]);
17
17
  D.push(t);
18
18
  }
19
19
  let { zkCallData: O, circomData: k, dimData: A } = await s(l.merkleTreeHinkalByChain[u], E, D, l.userKeys, r.DepositOnChainUtxos, w, x, l.generateProofRemotely, n, t, u, b, m.hookData, S);
@@ -1 +1 @@
1
- const e=require(`../../constants/vite.constants.cjs`),t=require(`../crypto-keys/keys.cjs`),n=require(`../utxo/Utxo.cjs`),r=require(`../../functions/utils/hinkalTiming.utils.cjs`),i=require(`../../webworker/worker.registry.cjs`),a=require(`../../webworker/performTaskWithWorker.cjs`),o=require(`../../webworker/utxoWorker/utxoWorker.types.cjs`);var s=16,c=class{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){e.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.min(s,Math.ceil(navigator.deviceMemory??4)))}async createUtxoPromise(e){return await a.performTaskWithWorker({type:i.WorkerVariant.UTXO,payload:e})}async batchFilterUtxosWithNullifier(e,i){let a=r.createRnDeltaTiming(`webView.utxoBatchFilter`),s=this.sliceArrayIntoParts(e,this.NUM_WORKERS);a.log(`start`,{utxoCount:e.length,workers:s.length});let c=s.map(e=>this.createUtxoPromise({type:o.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:e.map(e=>e.getConstructableParams()),nullifiers:i}})),l=await Promise.all(c);return l.forEach(e=>{t.stealthPairCacheDevice.mergeWithSerialized(e.stealthPairCache),t.stealthAddressCacheDevice.mergeWithSerialized(e.stealthAddressCache)}),a.log(`done`),l.flatMap(e=>e.utxoConstructors).map(e=>new n.Utxo(e))}async buildBatchProcess(e,t,i){let a=r.createRnDeltaTiming(`webView.utxoBuildBatch`),s=this.sliceArrayIntoParts(e,this.NUM_WORKERS);a.log(`start`,{encryptedOutputs:e.length,workers:s.length});let c=s.map(e=>this.createUtxoPromise({type:o.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:t.getSignature(),encryptedOutputs:e,chainId:i}})),l=(await Promise.all(c)).flat().map(e=>new n.Utxo(e));return a.log(`done`,{utxoCount:l.length}),l}sliceArrayIntoParts(e,t){let n=Math.ceil(e.length/t);return Array.from({length:t},(t,r)=>e.slice(n*r,n*(r+1))).filter(e=>e.length>0)}findLastOutput(e,t){let n=t;return e.forEach(e=>{e!==t&&(n=e)}),n}async batchProcess(e,t,n,i){let a=r.createRnDeltaTiming(`webView.utxoBatchProcess`),s=this.sliceArrayIntoParts(e,this.NUM_WORKERS_BATCH_PROCESS);a.log(`start`,{encryptedOutputs:e.length,workers:s.length});let c=n.getSignature(),l=s.map(e=>{let n={type:o.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:e,lastOutput:t,signature:c,chainId:i}};return this.createUtxoPromise(n)}),u=await Promise.all(l),d=u.map(({additionalEncryptedOutputs:e})=>e).flat(),f=new Set,p=d.reduce((e,t)=>f.has(t.value)?e:(f.add(t.value),[...e,t]),[]),m={additionalEncryptedOutputs:p,lastOutput:this.findLastOutput(u.map(e=>e.lastOutput),t)??t};return a.log(`done`,{additionalEncryptedOutputs:p.length}),m}};exports.MultiThreadedUtxoUtils=c;
1
+ const e=require(`../../constants/vite.constants.cjs`),t=require(`../crypto-keys/keys.cjs`),n=require(`../utxo/Utxo.cjs`),r=require(`../../webworker/worker.registry.cjs`),i=require(`../../webworker/performTaskWithWorker.cjs`),a=require(`../../webworker/utxoWorker/utxoWorker.types.cjs`);var o=16,s=class{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){e.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.min(o,Math.ceil(navigator.deviceMemory??4)))}async createUtxoPromise(e){return await i.performTaskWithWorker({type:r.WorkerVariant.UTXO,payload:e})}async batchFilterUtxosWithNullifier(e,r){let i=this.sliceArrayIntoParts(e,this.NUM_WORKERS).map(e=>this.createUtxoPromise({type:a.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:e.map(e=>e.getConstructableParams()),nullifiers:r}})),o=await Promise.all(i);return o.forEach(e=>{t.stealthPairCacheDevice.mergeWithSerialized(e.stealthPairCache),t.stealthAddressCacheDevice.mergeWithSerialized(e.stealthAddressCache)}),o.flatMap(e=>e.utxoConstructors).map(e=>new n.Utxo(e))}async buildBatchProcess(e,t,r){let i=this.sliceArrayIntoParts(e,this.NUM_WORKERS).map(e=>this.createUtxoPromise({type:a.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:t.getSignature(),encryptedOutputs:e,chainId:r}}));return(await Promise.all(i)).flat().map(e=>new n.Utxo(e))}sliceArrayIntoParts(e,t){let n=Math.ceil(e.length/t);return Array.from({length:t},(t,r)=>e.slice(n*r,n*(r+1))).filter(e=>e.length>0)}findLastOutput(e,t){let n=t;return e.forEach(e=>{e!==t&&(n=e)}),n}async batchProcess(e,t,n,r){let i=this.sliceArrayIntoParts(e,this.NUM_WORKERS_BATCH_PROCESS),o=n.getSignature(),s=i.map(e=>{let n={type:a.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:e,lastOutput:t,signature:o,chainId:r}};return this.createUtxoPromise(n)}),c=await Promise.all(s),l=c.map(({additionalEncryptedOutputs:e})=>e).flat(),u=new Set;return{additionalEncryptedOutputs:l.reduce((e,t)=>u.has(t.value)?e:(u.add(t.value),[...e,t]),[]),lastOutput:this.findLastOutput(c.map(e=>e.lastOutput),t)??t}}};exports.MultiThreadedUtxoUtils=s;
@@ -1,55 +1,44 @@
1
1
  import { isNode as e } from "../../constants/vite.constants.mjs";
2
2
  import { stealthAddressCacheDevice as t, stealthPairCacheDevice as n } from "../crypto-keys/keys.mjs";
3
3
  import { Utxo as r } from "../utxo/Utxo.mjs";
4
- import { createRnDeltaTiming as i } from "../../functions/utils/hinkalTiming.utils.mjs";
5
- import { WorkerVariant as a } from "../../webworker/worker.registry.mjs";
6
- import { performTaskWithWorker as o } from "../../webworker/performTaskWithWorker.mjs";
7
- import { UtxoWorkerActionType as s } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
4
+ import { WorkerVariant as i } from "../../webworker/worker.registry.mjs";
5
+ import { performTaskWithWorker as a } from "../../webworker/performTaskWithWorker.mjs";
6
+ import { UtxoWorkerActionType as o } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
8
7
  //#region libs/shared/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.ts
9
- var c = 16, l = class {
8
+ var s = 16, c = class {
10
9
  NUM_WORKERS;
11
10
  NUM_WORKERS_BATCH_PROCESS;
12
11
  constructor() {
13
- e ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.min(c, Math.ceil(navigator.deviceMemory ?? 4)));
12
+ e ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.min(s, Math.ceil(navigator.deviceMemory ?? 4)));
14
13
  }
15
14
  async createUtxoPromise(e) {
16
- return await o({
17
- type: a.UTXO,
15
+ return await a({
16
+ type: i.UTXO,
18
17
  payload: e
19
18
  });
20
19
  }
21
- async batchFilterUtxosWithNullifier(e, a) {
22
- let o = i("webView.utxoBatchFilter"), c = this.sliceArrayIntoParts(e, this.NUM_WORKERS);
23
- o.log("start", {
24
- utxoCount: e.length,
25
- workers: c.length
26
- });
27
- let l = c.map((e) => this.createUtxoPromise({
28
- type: s.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
20
+ async batchFilterUtxosWithNullifier(e, i) {
21
+ let a = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map((e) => this.createUtxoPromise({
22
+ type: o.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
29
23
  data: {
30
24
  utxos: e.map((e) => e.getConstructableParams()),
31
- nullifiers: a
25
+ nullifiers: i
32
26
  }
33
- })), u = await Promise.all(l);
34
- return u.forEach((e) => {
27
+ })), s = await Promise.all(a);
28
+ return s.forEach((e) => {
35
29
  n.mergeWithSerialized(e.stealthPairCache), t.mergeWithSerialized(e.stealthAddressCache);
36
- }), o.log("done"), u.flatMap((e) => e.utxoConstructors).map((e) => new r(e));
30
+ }), s.flatMap((e) => e.utxoConstructors).map((e) => new r(e));
37
31
  }
38
32
  async buildBatchProcess(e, t, n) {
39
- let a = i("webView.utxoBuildBatch"), o = this.sliceArrayIntoParts(e, this.NUM_WORKERS);
40
- a.log("start", {
41
- encryptedOutputs: e.length,
42
- workers: o.length
43
- });
44
- let c = o.map((e) => this.createUtxoPromise({
45
- type: s.BUILD_UTXOS,
33
+ let i = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map((e) => this.createUtxoPromise({
34
+ type: o.BUILD_UTXOS,
46
35
  data: {
47
36
  signature: t.getSignature(),
48
37
  encryptedOutputs: e,
49
38
  chainId: n
50
39
  }
51
- })), l = (await Promise.all(c)).flat().map((e) => new r(e));
52
- return a.log("done", { utxoCount: l.length }), l;
40
+ }));
41
+ return (await Promise.all(i)).flat().map((e) => new r(e));
53
42
  }
54
43
  sliceArrayIntoParts(e, t) {
55
44
  let n = Math.ceil(e.length / t);
@@ -62,28 +51,23 @@ var c = 16, l = class {
62
51
  }), n;
63
52
  }
64
53
  async batchProcess(e, t, n, r) {
65
- let a = i("webView.utxoBatchProcess"), o = this.sliceArrayIntoParts(e, this.NUM_WORKERS_BATCH_PROCESS);
66
- a.log("start", {
67
- encryptedOutputs: e.length,
68
- workers: o.length
69
- });
70
- let c = n.getSignature(), l = o.map((e) => {
54
+ let i = this.sliceArrayIntoParts(e, this.NUM_WORKERS_BATCH_PROCESS), a = n.getSignature(), s = i.map((e) => {
71
55
  let n = {
72
- type: s.DECIPHER_OUTPUTS,
56
+ type: o.DECIPHER_OUTPUTS,
73
57
  data: {
74
58
  encryptedOutputs: e,
75
59
  lastOutput: t,
76
- signature: c,
60
+ signature: a,
77
61
  chainId: r
78
62
  }
79
63
  };
80
64
  return this.createUtxoPromise(n);
81
- }), u = await Promise.all(l), d = u.map(({ additionalEncryptedOutputs: e }) => e).flat(), f = /* @__PURE__ */ new Set(), p = d.reduce((e, t) => f.has(t.value) ? e : (f.add(t.value), [...e, t]), []), m = {
82
- additionalEncryptedOutputs: p,
83
- lastOutput: this.findLastOutput(u.map((e) => e.lastOutput), t) ?? t
65
+ }), c = await Promise.all(s), l = c.map(({ additionalEncryptedOutputs: e }) => e).flat(), u = /* @__PURE__ */ new Set();
66
+ return {
67
+ additionalEncryptedOutputs: l.reduce((e, t) => u.has(t.value) ? e : (u.add(t.value), [...e, t]), []),
68
+ lastOutput: this.findLastOutput(c.map((e) => e.lastOutput), t) ?? t
84
69
  };
85
- return a.log("done", { additionalEncryptedOutputs: p.length }), m;
86
70
  }
87
71
  };
88
72
  //#endregion
89
- export { l as MultiThreadedUtxoUtils };
73
+ export { c as MultiThreadedUtxoUtils };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`);require(`./keys.cjs`);const n=require(`../../functions/utils/bit.operations.cjs`),r=require(`../utxo/Utxo.cjs`);let i=require(`ethers`),a=require(`@solana/web3.js`);var o=`solana-on-chain-utxo:`,s=8,c=e=>{if(e.length!==s)throw Error(`Expected ${s} on-chain fields, received ${e.length}`);let t=e.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${o}${i.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[8]`],[t])}`},l=e=>e.startsWith(o),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[r]=i.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),o=r;if(!Array.isArray(o)||o.length!==s)throw Error(`Malformed encoded Solana UTXO payload`);let[c,u,d,f,p,m,h,g]=o,_=BigInt(c),v=BigInt(f),y=n.extractHighestBit(v)===1n,b=n.takeOffHighestBit(v),x=i.ethers.toBeHex(BigInt(p)),S=BigInt(m),C=BigInt(h),w=BigInt(g).toString(),T=Array.from(i.ethers.getBytes(u)),E=Array.from(i.ethers.getBytes(d)),D=new a.PublicKey(Uint8Array.from([...T.slice(16),...E.slice(16)])).toBase58();return{amount:_,erc20TokenAddress:t.poseidonHash(BigInt(u),BigInt(d)),mintAddress:D,randomization:b,stealthAddress:x,H0:S,H1:C,timeStamp:w,isNewStyle:y}},d=e=>{let t=i.ethers.AbiCoder.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e),r=BigInt(t[0]),a=t[1],o=BigInt(t[2][0]),s=n.extractHighestBit(o),c=n.takeOffHighestBit(o),l=i.ethers.toBeHex(BigInt(t[2][1])),u=BigInt(t[2][2]),d=BigInt(t[2][3]),f=BigInt(t[3]).toString(),p=Number(t[4]);return{amount:r,erc20TokenAddress:a,randomization:c,isNewStyle:s===1n,stealthAddress:l,H0:u,H1:d,timeStamp:f,tokenId:p}},f=(t,n,r)=>{if(e.isSolanaLike(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}}},p=(e,t,n)=>new r.Utxo(f(e,t,n));exports.decodeEvmUtxo=d,exports.decodeSolanaUtxo=u,exports.decodeUtxo=p,exports.decodeUtxoConstructorArgs=f,exports.encodeSolanaOnChainUtxo=c,exports.isSolanaOnChainUtxo=l;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`);require(`./keys.cjs`);const n=require(`../utxo/Utxo.cjs`),r=require(`../../functions/utils/bit.operations.cjs`);let i=require(`ethers`),a=require(`@solana/web3.js`);var o=`solana-on-chain-utxo:`,s=8,c=e=>{if(e.length!==s)throw Error(`Expected ${s} on-chain fields, received ${e.length}`);let t=e.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${o}${i.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[8]`],[t])}`},l=e=>e.startsWith(o),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=i.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[8]`],e.slice(21)),o=n;if(!Array.isArray(o)||o.length!==s)throw Error(`Malformed encoded Solana UTXO payload`);let[c,u,d,f,p,m,h,g]=o,_=BigInt(c),v=BigInt(f),y=r.extractHighestBit(v)===1n,b=r.takeOffHighestBit(v),x=i.ethers.toBeHex(BigInt(p)),S=BigInt(m),C=BigInt(h),w=BigInt(g).toString(),T=Array.from(i.ethers.getBytes(u)),E=Array.from(i.ethers.getBytes(d)),D=new a.PublicKey(Uint8Array.from([...T.slice(16),...E.slice(16)])).toBase58();return{amount:_,erc20TokenAddress:t.poseidonHash(BigInt(u),BigInt(d)),mintAddress:D,randomization:b,stealthAddress:x,H0:S,H1:C,timeStamp:w,isNewStyle:y}},d=e=>{let t=i.ethers.AbiCoder.defaultAbiCoder().decode([`uint256`,`address`,`tuple(uint256, uint256, uint256, uint256)`,`uint256`,`uint256`],e),n=BigInt(t[0]),a=t[1],o=BigInt(t[2][0]),s=r.extractHighestBit(o),c=r.takeOffHighestBit(o),l=i.ethers.toBeHex(BigInt(t[2][1])),u=BigInt(t[2][2]),d=BigInt(t[2][3]),f=BigInt(t[3]).toString(),p=Number(t[4]);return{amount:n,erc20TokenAddress:a,randomization:c,isNewStyle:s===1n,stealthAddress:l,H0:u,H1:d,timeStamp:f,tokenId:p}},f=(t,n,r)=>{if(e.isSolanaLike(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}}},p=(e,t,r)=>new n.Utxo(f(e,t,r));exports.decodeEvmUtxo=d,exports.decodeSolanaUtxo=u,exports.decodeUtxo=p,exports.decodeUtxoConstructorArgs=f,exports.encodeSolanaOnChainUtxo=c,exports.isSolanaOnChainUtxo=l;
@@ -1,8 +1,8 @@
1
1
  import { isSolanaLike as e } from "../../constants/chains.constants.mjs";
2
2
  import { poseidonHash as t } from "../../crypto/poseidon.mjs";
3
3
  import "./keys.mjs";
4
- import { extractHighestBit as n, takeOffHighestBit as r } from "../../functions/utils/bit.operations.mjs";
5
- import { Utxo as i } from "../utxo/Utxo.mjs";
4
+ import { Utxo as n } from "../utxo/Utxo.mjs";
5
+ import { extractHighestBit as r, takeOffHighestBit as i } from "../../functions/utils/bit.operations.mjs";
6
6
  import { ethers as a } from "ethers";
7
7
  import { PublicKey as o } from "@solana/web3.js";
8
8
  //#region libs/shared/common/src/data-structures/crypto-keys/decodeUTXO.ts
@@ -16,9 +16,9 @@ var s = "solana-on-chain-utxo:", c = 8, l = (e) => {
16
16
  return `${s}${a.AbiCoder.defaultAbiCoder().encode(["bytes32[8]"], [t])}`;
17
17
  }, u = (e) => e.startsWith(s), d = (e) => {
18
18
  if (!u(e)) throw Error("Invalid encoded Solana UTXO payload");
19
- let [i] = a.AbiCoder.defaultAbiCoder().decode(["bytes32[8]"], e.slice(21)), s = i;
19
+ let [n] = a.AbiCoder.defaultAbiCoder().decode(["bytes32[8]"], e.slice(21)), s = n;
20
20
  if (!Array.isArray(s) || s.length !== c) throw Error("Malformed encoded Solana UTXO payload");
21
- let [l, d, f, p, m, h, g, _] = s, v = BigInt(l), y = BigInt(p), b = n(y) === 1n, x = r(y), S = a.toBeHex(BigInt(m)), C = BigInt(h), w = BigInt(g), T = BigInt(_).toString(), E = Array.from(a.getBytes(d)), D = Array.from(a.getBytes(f)), O = new o(Uint8Array.from([...E.slice(16), ...D.slice(16)])).toBase58();
21
+ let [l, d, f, p, m, h, g, _] = s, v = BigInt(l), y = BigInt(p), b = r(y) === 1n, x = i(y), S = a.toBeHex(BigInt(m)), C = BigInt(h), w = BigInt(g), T = BigInt(_).toString(), E = Array.from(a.getBytes(d)), D = Array.from(a.getBytes(f)), O = new o(Uint8Array.from([...E.slice(16), ...D.slice(16)])).toBase58();
22
22
  return {
23
23
  amount: v,
24
24
  erc20TokenAddress: t(BigInt(d), BigInt(f)),
@@ -37,9 +37,9 @@ var s = "solana-on-chain-utxo:", c = 8, l = (e) => {
37
37
  "tuple(uint256, uint256, uint256, uint256)",
38
38
  "uint256",
39
39
  "uint256"
40
- ], e), i = BigInt(t[0]), o = t[1], s = BigInt(t[2][0]), c = n(s), l = r(s), u = a.toBeHex(BigInt(t[2][1])), d = BigInt(t[2][2]), f = BigInt(t[2][3]), p = BigInt(t[3]).toString(), m = Number(t[4]);
40
+ ], e), n = BigInt(t[0]), o = t[1], s = BigInt(t[2][0]), c = r(s), l = i(s), u = a.toBeHex(BigInt(t[2][1])), d = BigInt(t[2][2]), f = BigInt(t[2][3]), p = BigInt(t[3]).toString(), m = Number(t[4]);
41
41
  return {
42
- amount: i,
42
+ amount: n,
43
43
  erc20TokenAddress: o,
44
44
  randomization: l,
45
45
  isNewStyle: c === 1n,
@@ -73,6 +73,6 @@ var s = "solana-on-chain-utxo:", c = 8, l = (e) => {
73
73
  isNewStyle: c,
74
74
  ...c ? { H0: [s, u] } : { randomization: s }
75
75
  };
76
- }, m = (e, t, n) => new i(p(e, t, n));
76
+ }, m = (e, t, r) => new n(p(e, t, r));
77
77
  //#endregion
78
78
  export { f as decodeEvmUtxo, d as decodeSolanaUtxo, m as decodeUtxo, p as decodeUtxoConstructorArgs, l as encodeSolanaOnChainUtxo, u as isSolanaOnChainUtxo };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`./keys.cjs`);const e=require(`../../crypto/ecdh-sealed-keys.cjs`);require(`../../crypto/ecdh.cjs`),require(`../utxo/Utxo.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=e=>e.startsWith(`0x`)?e:`0x${e}`,i=54912,a=e=>Uint8Array.from([Math.floor(e/256),e%256]),o=o=>{let s=[Buffer.from(t.ethers.toBeHex(o.amount)),Buffer.from(r(o.erc20TokenAddress)),Buffer.from(t.ethers.toBeHex(o.randomization??0n)),Buffer.from(r(o.getStealthAddress())),Buffer.from(t.ethers.toBeHex(BigInt(o.timeStamp))),Buffer.from(t.ethers.toBeHex(o.isNewStyle?1n:0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[0]??0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[1]??0n))];if(o.mintAddress){let e=new n.PublicKey(o.mintAddress),r=t.ethers.hexlify(e.toBytes());s.push(Buffer.from(r))}let c=e.encryptSealedKeys(Buffer.concat(s),[o.getEncryptionKey()]);return Buffer.concat([Buffer.from(a(i)),Buffer.from(c)])};exports.encryptUtxo=o;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`./keys.cjs`),require(`../utxo/Utxo.cjs`);const e=require(`../../crypto/ecdh-sealed-keys.cjs`);require(`../../crypto/ecdh.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=e=>e.startsWith(`0x`)?e:`0x${e}`,i=54912,a=e=>Uint8Array.from([Math.floor(e/256),e%256]),o=o=>{let s=[Buffer.from(t.ethers.toBeHex(o.amount)),Buffer.from(r(o.erc20TokenAddress)),Buffer.from(t.ethers.toBeHex(o.randomization??0n)),Buffer.from(r(o.getStealthAddress())),Buffer.from(t.ethers.toBeHex(BigInt(o.timeStamp))),Buffer.from(t.ethers.toBeHex(o.isNewStyle?1n:0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[0]??0n)),Buffer.from(t.ethers.toBeHex(o.H0?.[1]??0n))];if(o.mintAddress){let e=new n.PublicKey(o.mintAddress),r=t.ethers.hexlify(e.toBytes());s.push(Buffer.from(r))}let c=e.encryptSealedKeys(Buffer.concat(s),[o.getEncryptionKey()]);return Buffer.concat([Buffer.from(a(i)),Buffer.from(c)])};exports.encryptUtxo=o;
@@ -1,7 +1,7 @@
1
1
  import "./keys.mjs";
2
+ import "../utxo/Utxo.mjs";
2
3
  import { encryptSealedKeys as e } from "../../crypto/ecdh-sealed-keys.mjs";
3
4
  import "../../crypto/ecdh.mjs";
4
- import "../utxo/Utxo.mjs";
5
5
  import { ethers as t } from "ethers";
6
6
  import { PublicKey as n } from "@solana/web3.js";
7
7
  //#region libs/shared/common/src/data-structures/crypto-keys/encryptDecryptUtxo.ts
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../../functions/web3/etherFunctions.cjs`),r=require(`../crypto-keys/keys.cjs`),i=require(`../../crypto/rnUtxoCrypto.cjs`),a=require(`../../functions/utils/time.utils.cjs`);var o=class o{amount;erc20TokenAddress;mintAddress;timeStamp;nullifyingKey;spendingPublicKey;randomization;H0;stealthAddress;encryptionKey;commitment;nullifier;isBlocked;isNewStyle;constructor({amount:e,erc20TokenAddress:t,mintAddress:i,timeStamp:o,nullifyingKey:s,spendingPublicKey:c,randomization:l,H0:u,stealthAddress:d,encryptionKey:f,commitment:p=void 0,nullifier:m=void 0,isBlocked:h=!1,isNewStyle:g=!1}){this.amount=e,this.erc20TokenAddress=t,this.mintAddress=i,this.timeStamp=o??a.getCurrentTimeInSeconds().toString(),this.nullifyingKey=s,this.spendingPublicKey=c,this.randomization=l??(s?r.UserKeys.findCorrectRandomization(n.randomBigInt(31),s):void 0),this.H0=u??(g&&this.randomization?r.UserKeys.findH0(this.randomization,s):void 0),this.stealthAddress=d,this.encryptionKey=f,this.commitment=p,this.nullifier=m,this.isBlocked=h,this.isNewStyle=g}static async createAsync(e){if(i.needsRnNewStyleCrypto(e)){let t=await i.prepareNewStyleUtxoFields(e.nullifyingKey,e.spendingPublicKey);return new o({...e,randomization:t.randomization,H0:t.H0,stealthAddress:t.stealthAddress})}return new o(e)}static createFrom(e,t){return new o({...e.getConstructableParams(),nullifier:void 0,commitment:void 0,...t})}getConstructableParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,nullifyingKey:this.nullifyingKey,spendingPublicKey:this.spendingPublicKey,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,encryptionKey:this.encryptionKey,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getBasicUtxoParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getCommitment(){if(!this.commitment){let e=[this.amount,this.erc20TokenAddress,BigInt(this.getStealthAddress()),this.timeStamp];this.commitment=t.poseidonHash(...e)}return this.commitment}getNullifier(){if(!this.nullifier){if(!this.nullifyingKey)throw Error(`No Nullifiers if private key is not provided`);let e=this.getCommitment(),n=t.poseidonHash(this.nullifyingKey,e);this.nullifier=t.poseidonHash(e,n)}return this.nullifier}getStealthAddress(){if(!this.stealthAddress){if(!this.nullifyingKey)throw Error(`No stealth address in UTXO if private key is not provided`);if(this.isNewStyle){if(!this.H0)throw Error(`No H0 point provided`);this.stealthAddress=r.UserKeys.getStealthAddressNewStyle(this.H0,this.nullifyingKey,this.spendingPublicKey)}else{if(!this.randomization)throw Error(`No randomization provided`);this.stealthAddress=r.UserKeys.getStealthAddress(this.randomization,this.nullifyingKey)}}return this.stealthAddress}getTokenAddress(t){let n=e.isSolanaLike(t)?this.mintAddress:this.erc20TokenAddress;if(!n)throw Error(`No token address provided`);return n}getEncryptionKey(){if(!this.nullifyingKey){if(!this.encryptionKey)throw Error(`No encryption key provided in UTXO`);return this.encryptionKey}return r.UserKeys.getEncryptionKeyPair(this.nullifyingKey).publicKey}};exports.Utxo=o;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../../functions/web3/etherFunctions.cjs`),r=require(`../crypto-keys/keys.cjs`),i=require(`../../functions/utils/time.utils.cjs`);var a=class a{amount;erc20TokenAddress;mintAddress;timeStamp;nullifyingKey;spendingPublicKey;randomization;H0;stealthAddress;encryptionKey;commitment;nullifier;isBlocked;isNewStyle;constructor({amount:e,erc20TokenAddress:t,mintAddress:a,timeStamp:o,nullifyingKey:s,spendingPublicKey:c,randomization:l,H0:u,stealthAddress:d,encryptionKey:f,commitment:p=void 0,nullifier:m=void 0,isBlocked:h=!1,isNewStyle:g=!1}){this.amount=e,this.erc20TokenAddress=t,this.mintAddress=a,this.timeStamp=o??i.getCurrentTimeInSeconds().toString(),this.nullifyingKey=s,this.spendingPublicKey=c,this.randomization=l??(s?r.UserKeys.findCorrectRandomization(n.randomBigInt(31),s):void 0),this.H0=u??(g&&this.randomization?r.UserKeys.findH0(this.randomization,s):void 0),this.stealthAddress=d,this.encryptionKey=f,this.commitment=p,this.nullifier=m,this.isBlocked=h,this.isNewStyle=g}static createFrom(e,t){return new a({...e.getConstructableParams(),nullifier:void 0,commitment:void 0,...t})}getConstructableParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,nullifyingKey:this.nullifyingKey,spendingPublicKey:this.spendingPublicKey,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,encryptionKey:this.encryptionKey,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getBasicUtxoParams(){return{amount:this.amount,erc20TokenAddress:this.erc20TokenAddress,mintAddress:this.mintAddress,timeStamp:this.timeStamp,randomization:this.randomization,H0:this.H0,stealthAddress:this.stealthAddress,commitment:this.commitment,nullifier:this.nullifier,isBlocked:this.isBlocked,isNewStyle:this.isNewStyle}}getCommitment(){if(!this.commitment){let e=[this.amount,this.erc20TokenAddress,BigInt(this.getStealthAddress()),this.timeStamp];this.commitment=t.poseidonHash(...e)}return this.commitment}getNullifier(){if(!this.nullifier){if(!this.nullifyingKey)throw Error(`No Nullifiers if private key is not provided`);let e=this.getCommitment(),n=t.poseidonHash(this.nullifyingKey,e);this.nullifier=t.poseidonHash(e,n)}return this.nullifier}getStealthAddress(){if(!this.stealthAddress){if(!this.nullifyingKey)throw Error(`No stealth address in UTXO if private key is not provided`);if(this.isNewStyle){if(!this.H0)throw Error(`No H0 point provided`);this.stealthAddress=r.UserKeys.getStealthAddressNewStyle(this.H0,this.nullifyingKey,this.spendingPublicKey)}else{if(!this.randomization)throw Error(`No randomization provided`);this.stealthAddress=r.UserKeys.getStealthAddress(this.randomization,this.nullifyingKey)}}return this.stealthAddress}getTokenAddress(t){let n=e.isSolanaLike(t)?this.mintAddress:this.erc20TokenAddress;if(!n)throw Error(`No token address provided`);return n}getEncryptionKey(){if(!this.nullifyingKey){if(!this.encryptionKey)throw Error(`No encryption key provided in UTXO`);return this.encryptionKey}return r.UserKeys.getEncryptionKeyPair(this.nullifyingKey).publicKey}};exports.Utxo=a;
@@ -49,7 +49,6 @@ export declare class Utxo {
49
49
  * @param isBlocked [optional] whether the UTXO is blocked
50
50
  */
51
51
  constructor({ amount, erc20TokenAddress, mintAddress, timeStamp, nullifyingKey, spendingPublicKey, randomization, H0, stealthAddress, encryptionKey, commitment, nullifier, isBlocked, isNewStyle, }: IUtxoConstructor);
52
- static createAsync(params: IUtxoConstructor): Promise<Utxo>;
53
52
  static createFrom(utxoToCreateFrom: Utxo, patch: Partial<IUtxoConstructor>): Utxo;
54
53
  getConstructableParams(): IUtxoConstructor;
55
54
  getBasicUtxoParams(): IUtxoConstructor;
@@ -2,10 +2,9 @@ import { isSolanaLike as e } from "../../constants/chains.constants.mjs";
2
2
  import { poseidonHash as t } from "../../crypto/poseidon.mjs";
3
3
  import { randomBigInt as n } from "../../functions/web3/etherFunctions.mjs";
4
4
  import { UserKeys as r } from "../crypto-keys/keys.mjs";
5
- import { needsRnNewStyleCrypto as i, prepareNewStyleUtxoFields as a } from "../../crypto/rnUtxoCrypto.mjs";
6
- import { getCurrentTimeInSeconds as o } from "../../functions/utils/time.utils.mjs";
5
+ import { getCurrentTimeInSeconds as i } from "../../functions/utils/time.utils.mjs";
7
6
  //#region libs/shared/common/src/data-structures/utxo/Utxo.ts
8
- var s = class s {
7
+ var a = class a {
9
8
  amount;
10
9
  erc20TokenAddress;
11
10
  mintAddress;
@@ -20,23 +19,11 @@ var s = class s {
20
19
  nullifier;
21
20
  isBlocked;
22
21
  isNewStyle;
23
- constructor({ amount: e, erc20TokenAddress: t, mintAddress: i, timeStamp: a, nullifyingKey: s, spendingPublicKey: c, randomization: l, H0: u, stealthAddress: d, encryptionKey: f, commitment: p = void 0, nullifier: m = void 0, isBlocked: h = !1, isNewStyle: g = !1 }) {
24
- this.amount = e, this.erc20TokenAddress = t, this.mintAddress = i, this.timeStamp = a ?? o().toString(), this.nullifyingKey = s, this.spendingPublicKey = c, this.randomization = l ?? (s ? r.findCorrectRandomization(n(31), s) : void 0), this.H0 = u ?? (g && this.randomization ? r.findH0(this.randomization, s) : void 0), this.stealthAddress = d, this.encryptionKey = f, this.commitment = p, this.nullifier = m, this.isBlocked = h, this.isNewStyle = g;
25
- }
26
- static async createAsync(e) {
27
- if (i(e)) {
28
- let t = await a(e.nullifyingKey, e.spendingPublicKey);
29
- return new s({
30
- ...e,
31
- randomization: t.randomization,
32
- H0: t.H0,
33
- stealthAddress: t.stealthAddress
34
- });
35
- }
36
- return new s(e);
22
+ constructor({ amount: e, erc20TokenAddress: t, mintAddress: a, timeStamp: o, nullifyingKey: s, spendingPublicKey: c, randomization: l, H0: u, stealthAddress: d, encryptionKey: f, commitment: p = void 0, nullifier: m = void 0, isBlocked: h = !1, isNewStyle: g = !1 }) {
23
+ this.amount = e, this.erc20TokenAddress = t, this.mintAddress = a, this.timeStamp = o ?? i().toString(), this.nullifyingKey = s, this.spendingPublicKey = c, this.randomization = l ?? (s ? r.findCorrectRandomization(n(31), s) : void 0), this.H0 = u ?? (g && this.randomization ? r.findH0(this.randomization, s) : void 0), this.stealthAddress = d, this.encryptionKey = f, this.commitment = p, this.nullifier = m, this.isBlocked = h, this.isNewStyle = g;
37
24
  }
38
25
  static createFrom(e, t) {
39
- return new s({
26
+ return new a({
40
27
  ...e.getConstructableParams(),
41
28
  nullifier: void 0,
42
29
  commitment: void 0,
@@ -123,4 +110,4 @@ var s = class s {
123
110
  }
124
111
  };
125
112
  //#endregion
126
- export { s as Utxo };
113
+ export { a as Utxo };
@@ -1 +1 @@
1
- require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/external-action.utils.cjs`),require(`./utils/bit.operations.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/addresses.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/map.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./web3/getSolanaPriorityFee.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/recipientUtxoProcessing.cjs`),require(`./pre-transaction/ensureAmountChanges.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/reloadPage.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/getContractAddress.cjs`),require(`./utils/getUtxosFromReceipt.utils.cjs`),require(`./utils/getUtxosFromReceiptSolana.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./web3/uniswapAPI.cjs`),require(`./web3/odosAPI.cjs`),require(`./web3/oneInchAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
1
+ require(`./utils/abi.utils.cjs`),require(`./utils/serialize.utils.cjs`),require(`./utils/caseInsensitive.utils.cjs`),require(`./utils/amounts.utils.cjs`),require(`./web3/etherFunctions.cjs`),require(`./utils/bigint-math.utils.cjs`),require(`./utils/time.utils.cjs`),require(`./utils/upToDateState.cjs`),require(`./utils/cacheFunctions.cjs`),require(`./utils/enclaveHandshakeService.cjs`),require(`./utils/encryptInputForEnclave.cjs`),require(`./utils/solanaMint.utils.cjs`),require(`./utils/customEnclaveFunctionsRegister.cjs`),require(`./utils/addresses.cjs`),require(`./utils/tron.utils.cjs`),require(`./web3/events/getInputUtxoAndBalance.cjs`),require(`./utils/get-signature-header.cjs`),require(`./utils/auth.utils.cjs`),require(`./utils/string.utils.cjs`),require(`./utils/token-check.utils.cjs`),require(`./utils/map.utils.cjs`),require(`./utils/mutexes.utils.cjs`),require(`./utils/erc20tokenFunctions.cjs`),require(`./web3/events/getShieldedBalance.cjs`),require(`./pre-transaction/outputUtxoProcessing.cjs`),require(`./utils/external-action.utils.cjs`),require(`./utils/bit.operations.cjs`),require(`./snarkjs/common.snarkjs.cjs`),require(`./pre-transaction/solana.cjs`),require(`./snarkjs/signedMessageHash.cjs`),require(`./pre-transaction/process-gas-estimates.cjs`),require(`./pre-transaction/getVolatileTransferAmount.cjs`),require(`./pre-transaction/constructAdminData.cjs`),require(`./utils/create-provider.cjs`),require(`./pre-transaction/convert-okx-instructions.cjs`),require(`./web3/getSolanaPriorityFee.cjs`),require(`./utils/process.utils.cjs`),require(`./pre-transaction/sendV0Transaction.cjs`),require(`./utils/bytes32.utils.cjs`),require(`./pre-transaction/recipientUtxoProcessing.cjs`),require(`./pre-transaction/ensureAmountChanges.cjs`),require(`./pre-transaction/getFeeStructure.cjs`),require(`./pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`./pre-transaction/buildCommitmentValidationData.cjs`),require(`./pre-transaction/index.cjs`),require(`./snarkjs/generateZkProof.cjs`),require(`./snarkjs/generateMainAndCommitmentZkProof.cjs`),require(`./utils/serialize-utxos.utils.cjs`),require(`./utils/resolve-sync.utils.cjs`),require(`./utils/reloadPage.cjs`),require(`./utils/cacheDevice.utils.cjs`),require(`./utils/involves-permit2-op.cjs`),require(`./utils/convertEmporiumOpToCallInfo.cjs`),require(`./utils/getRecipientInfoFromUserKeys.cjs`),require(`./utils/publicBalance.utils.cjs`),require(`./utils/postToOffscreen.cjs`),require(`./utils/getContractAddress.cjs`),require(`./utils/getUtxosFromReceipt.utils.cjs`),require(`./utils/getUtxosFromReceiptSolana.cjs`),require(`./utils/fees.utils.cjs`),require(`./utils/enclave-signature-storage.cjs`),require(`./utils/tx-confirmation.utils.cjs`),require(`./utils/tronSimulation.utils.cjs`),require(`./utils/getSignerFromContract.cjs`),require(`./utils/mnemonics.cjs`),require(`./utils/nearIntents.utils.cjs`),require(`./utils/index.cjs`),require(`./snarkjs/fetchOnChainRootHashes.cjs`),require(`./private-wallet/emporium.helpers.cjs`),require(`./snarkjs/constructGeneralZkProof.cjs`),require(`./web3/uniswapAPI.cjs`),require(`./web3/odosAPI.cjs`),require(`./web3/oneInchAPI.cjs`),require(`./web3/okxAPI.cjs`),require(`./web3/index.cjs`),require(`./snarkjs/constructSolanaZkProof.cjs`),require(`./snarkjs/index.cjs`),require(`./private-wallet/emporium.swap.helpers.cjs`),require(`./private-wallet/index.cjs`),require(`./auto-deposit-back-helpers/get-tokens-to-deposit-back.cjs`),require(`./auto-deposit-back-helpers/get-gas-token-records.cjs`),require(`./auto-deposit-back-helpers/select-gas-token.cjs`),require(`./auto-deposit-back-helpers/update-hinkal.cjs`),require(`./auto-deposit-back-helpers/index.cjs`);
@@ -3,9 +3,7 @@ import "./utils/serialize.utils.mjs";
3
3
  import "./utils/caseInsensitive.utils.mjs";
4
4
  import "./utils/amounts.utils.mjs";
5
5
  import "./web3/etherFunctions.mjs";
6
- import "./utils/external-action.utils.mjs";
7
- import "./utils/bit.operations.mjs";
8
- import "./snarkjs/common.snarkjs.mjs";
6
+ import "./utils/bigint-math.utils.mjs";
9
7
  import "./utils/time.utils.mjs";
10
8
  import "./utils/upToDateState.mjs";
11
9
  import "./utils/cacheFunctions.mjs";
@@ -25,6 +23,9 @@ import "./utils/mutexes.utils.mjs";
25
23
  import "./utils/erc20tokenFunctions.mjs";
26
24
  import "./web3/events/getShieldedBalance.mjs";
27
25
  import "./pre-transaction/outputUtxoProcessing.mjs";
26
+ import "./utils/external-action.utils.mjs";
27
+ import "./utils/bit.operations.mjs";
28
+ import "./snarkjs/common.snarkjs.mjs";
28
29
  import "./pre-transaction/solana.mjs";
29
30
  import "./snarkjs/signedMessageHash.mjs";
30
31
  import "./pre-transaction/process-gas-estimates.mjs";
@@ -1 +1 @@
1
- const e=require(`../../constants/vite.constants.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../crypto/rnCryptoBridge.cjs`),r=require(`../../data-structures/crypto-keys/keys.cjs`),i=require(`../../webworker/cryptoWorker/cryptoWorker.types.cjs`),a=require(`../snarkjs/common.snarkjs.cjs`),o=require(`../../crypto/rnUtxoCrypto.cjs`),s=require(`../utils/solanaMint.utils.cjs`),c=require(`../utils/hinkalTiming.utils.cjs`),l=require(`../../webworker/worker.registry.cjs`),u=require(`../../webworker/performTaskWithWorker.cjs`),d=require(`../../webworker/zkProofWorker/zkProofWorker.types.cjs`);var f=async(f,p,m,h)=>{let g=c.createRnDeltaTiming(`mainThread.commitmentValidation`);if(a.hasOnlyZeroAmounts(h))return;let _=t.isSolanaLike(f),v=h.map(e=>e.map(e=>e.amount.toString())),y=h.map(e=>e.map(e=>e.timeStamp)),b=h.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),x=h.map(e=>e.map(e=>e.getConstructableParams()));g.log(`serializeInputs`);let S=c.createRnDeltaTiming(`mainThread.getCommitment`),C=h.map(e=>e.map(e=>e.amount===0n?`0`:BigInt(e.getCommitment()).toString()));S.log(`all-utxos`,{count:h.reduce((e,t)=>e+t.length,0)});let w=await u.performTaskWithWorker({type:l.WorkerVariant.ZKProof,payload:{type:d.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:x}}});g.log(`buildInNullifiers-worker-done`);let T=p.getShieldedPrivateKey(),E=await o.getSpendingPublicKeyForRn(p),D=_?m.map(e=>{let{compressedAddress:t}=s.formatMintAddress(e);return BigInt(t).toString()}):m.map(e=>BigInt(e).toString()),O=c.createRnDeltaTiming(`mainThread.stealthValidation`),k=0;if(e.isReactNative){let e=[];h.forEach((t,n)=>{t.forEach((t,r)=>{k+=1;let i=t.spendingPublicKey??E;e.push({tokenIdx:n,utxoIdx:r,utxoStealthAddress:t.getStealthAddress(),isNewStyle:!!t.isNewStyle,randomization:t.randomization?.toString(),H0:t.H0?[t.H0[0].toString(),t.H0[1].toString()]:void 0,spendingPublicKey:[i[0].toString(),i[1].toString()]})})});let t=n.getRnCryptoBridge();await t.init(),(await t.call(i.CryptoWorkerOp.BATCH_STEALTH_VALIDATION,{nullifyingPrivateKey:T,defaultSpendingPublicKey:[E[0].toString(),E[1].toString()],checks:e})).forEach((t,n)=>{if(t.matches)return;let{tokenIdx:r,utxoIdx:i}=e[n];throw Error(`Commitment validation stealth mismatch at tokenIdx=${r}, utxoIdx=${i}`)})}else h.forEach((e,t)=>{e.forEach((e,n)=>{k+=1;let i=e.getStealthAddress(),a=e.spendingPublicKey??E,o=e.isNewStyle&&e.H0?r.UserKeys.getStealthAddressNewStyle(e.H0,T,a):r.UserKeys.getStealthAddress(BigInt(e.randomization),T);if(BigInt(i).toString()!==BigInt(o).toString())throw Error(`Commitment validation stealth mismatch at tokenIdx=${t}, utxoIdx=${n}`)})});O.log(`all-utxos`,{stealthChecks:k});let A={nullifyingPrivateKey:T,spendingPublicKey:E,erc20TokenAddresses:D,inAmounts:v,inRandomizations:b,inH0Ax:h.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:h.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:h.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:y,inCommitments:C,inNullifiers:w};if(!m.length||!h[0]?.length)return;let j=`commitmentCalculator${m.length}x${h[0].length}`;return g.log(`done`,{verifierName:j}),{tokenAddresses:D,inAmounts:v,inTimeStamps:y,inRandomizations:b,inCommitments:C,inNullifiers:w,verifierName:j,commitmentInput:A}},p=(e,t)=>{if(!(!e||!t))return{tokenAddresses:e.tokenAddresses,inAmounts:e.inAmounts,inTimeStamps:e.inTimeStamps,inRandomizations:e.inRandomizations,inCommitments:e.inCommitments,inNullifiers:e.inNullifiers,proof:{a:t.zkCallData[0],b:t.zkCallData[1],c:t.zkCallData[2]}}};exports.buildCommitmentValidationData=f,exports.buildCommitmentValidationDataFromProof=p;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../utils/solanaMint.utils.cjs`),r=require(`../snarkjs/common.snarkjs.cjs`),i=require(`../../webworker/worker.registry.cjs`),a=require(`../../webworker/performTaskWithWorker.cjs`),o=require(`../../webworker/zkProofWorker/zkProofWorker.types.cjs`);var s=async(s,c,l,u)=>{if(r.hasOnlyZeroAmounts(u))return;let d=e.isSolanaLike(s),f=u.map(e=>e.map(e=>e.amount.toString())),p=u.map(e=>e.map(e=>e.timeStamp)),m=u.map(e=>e.map(e=>r.getUtxoCircuitInRandomization(e))),h=u.map(e=>e.map(e=>e.getConstructableParams())),g=u.map(e=>e.map(e=>e.amount===0n?`0`:BigInt(e.getCommitment()).toString())),_=await a.performTaskWithWorker({type:i.WorkerVariant.ZKProof,payload:{type:o.ZKProofWorkerActionType.BUILD_IN_NULLIFIERS,data:{inputUtxosSerialized:h}}}),v=c.getShieldedPrivateKey(),y=c.getSpendingKeyPair().pubSpendingBJJPoint,b=d?l.map(e=>{let{compressedAddress:t}=n.formatMintAddress(e);return BigInt(t).toString()}):l.map(e=>BigInt(e).toString());u.forEach((e,n)=>{e.forEach((e,r)=>{let i=e.getStealthAddress(),a=e.spendingPublicKey??y,o=e.isNewStyle&&e.H0?t.UserKeys.getStealthAddressNewStyle(e.H0,v,a):t.UserKeys.getStealthAddress(BigInt(e.randomization),v);if(BigInt(i).toString()!==BigInt(o).toString())throw Error(`Commitment validation stealth mismatch at tokenIdx=${n}, utxoIdx=${r}`)})});let x={nullifyingPrivateKey:v,spendingPublicKey:y,erc20TokenAddresses:b,inAmounts:f,inRandomizations:m,inH0Ax:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:u.map(e=>e.map(e=>r.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:u.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:p,inCommitments:g,inNullifiers:_};if(!(!l.length||!u[0]?.length))return{tokenAddresses:b,inAmounts:f,inTimeStamps:p,inRandomizations:m,inCommitments:g,inNullifiers:_,verifierName:`commitmentCalculator${l.length}x${u[0].length}`,commitmentInput:x}},c=(e,t)=>{if(!(!e||!t))return{tokenAddresses:e.tokenAddresses,inAmounts:e.inAmounts,inTimeStamps:e.inTimeStamps,inRandomizations:e.inRandomizations,inCommitments:e.inCommitments,inNullifiers:e.inNullifiers,proof:{a:t.zkCallData[0],b:t.zkCallData[1],c:t.zkCallData[2]}}};exports.buildCommitmentValidationData=s,exports.buildCommitmentValidationDataFromProof=c;