@gurge/sdk 0.3.26 → 0.3.27

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 (80) hide show
  1. package/common/src/crypto/rnUtxoCrypto.cjs +1 -1
  2. package/common/src/crypto/rnUtxoCrypto.d.ts +11 -0
  3. package/common/src/crypto/rnUtxoCrypto.mjs +46 -12
  4. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  5. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +9 -9
  6. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  7. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +6 -6
  8. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  9. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +18 -18
  10. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  11. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +17 -17
  12. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  13. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +13 -13
  14. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  15. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +11 -11
  16. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  17. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +14 -14
  18. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  19. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +51 -51
  20. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  21. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +51 -51
  22. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  23. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +20 -20
  24. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  25. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +19 -19
  26. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  27. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +9 -9
  28. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  29. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +12 -12
  30. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  31. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +33 -33
  32. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  33. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +7 -7
  34. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  35. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +1 -1
  36. package/common/src/functions/index.cjs +1 -1
  37. package/common/src/functions/index.mjs +3 -3
  38. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  39. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +13 -13
  40. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  41. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +14 -14
  42. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  43. package/common/src/functions/snarkjs/common.snarkjs.mjs +7 -7
  44. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  45. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +77 -76
  46. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  47. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +60 -60
  48. package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  49. package/common/src/functions/snarkjs/verifyCommitmentValidationData.mjs +1 -1
  50. package/common/src/functions/utils/buildClaimableDepositPlan.cjs +1 -1
  51. package/common/src/functions/utils/buildClaimableDepositPlan.mjs +1 -1
  52. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  53. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +1 -1
  54. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  55. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +4 -4
  56. package/common/src/functions/utils/index.cjs +1 -1
  57. package/common/src/functions/utils/index.mjs +2 -2
  58. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  59. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +81 -80
  60. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  61. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +42 -42
  62. package/common/src/types/index.cjs +1 -1
  63. package/common/src/types/index.mjs +1 -1
  64. package/common/src/webworker/cryptoWorker/cryptoWorker.types.cjs +1 -1
  65. package/common/src/webworker/cryptoWorker/cryptoWorker.types.d.ts +3 -1
  66. package/common/src/webworker/cryptoWorker/cryptoWorker.types.mjs +1 -1
  67. package/common/src/webworker/logError-Dy_GXEF5.js +2 -0
  68. package/common/src/webworker/package.json +1 -1
  69. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  70. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  71. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  72. package/common/src/webworker/viteWorkerURL.constant.cjs +4 -4
  73. package/common/src/webworker/viteWorkerURL.constant.mjs +4 -4
  74. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  75. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  76. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  77. package/package.json +1 -1
  78. package/sdk/package.json.cjs +1 -1
  79. package/sdk/package.json.mjs +1 -1
  80. package/common/src/webworker/logError-DFS-H2t0.js +0 -2
@@ -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(`../../crypto/rnUtxoCrypto.cjs`),o=require(`../utils/solanaMint.utils.cjs`),s=require(`../utils/hinkalTiming.utils.cjs`),c=require(`../snarkjs/common.snarkjs.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=s.createRnDeltaTiming(`mainThread.commitmentValidation`);if(c.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=>c.getUtxoCircuitInRandomization(e))),x=h.map(e=>e.map(e=>e.getConstructableParams()));g.log(`serializeInputs`);let S=s.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 a.getSpendingPublicKeyForRn(p),D=_?m.map(e=>{let{compressedAddress:t}=o.formatMintAddress(e);return BigInt(t).toString()}):m.map(e=>BigInt(e).toString()),O=s.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=>c.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:h.map(e=>e.map(e=>c.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/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;
@@ -3,20 +3,20 @@ import { isSolanaLike as t } from "../../constants/chains.constants.mjs";
3
3
  import { getRnCryptoBridge as n } from "../../crypto/rnCryptoBridge.mjs";
4
4
  import { UserKeys as r } from "../../data-structures/crypto-keys/keys.mjs";
5
5
  import { CryptoWorkerOp as i } from "../../webworker/cryptoWorker/cryptoWorker.types.mjs";
6
- import { getSpendingPublicKeyForRn as a } from "../../crypto/rnUtxoCrypto.mjs";
7
- import { formatMintAddress as o } from "../utils/solanaMint.utils.mjs";
8
- import { createRnDeltaTiming as s } from "../utils/hinkalTiming.utils.mjs";
9
- import { getUtxoCircuitH0Coords as c, getUtxoCircuitInRandomization as l, hasOnlyZeroAmounts as u } from "../snarkjs/common.snarkjs.mjs";
6
+ import { getUtxoCircuitH0Coords as a, getUtxoCircuitInRandomization as o, hasOnlyZeroAmounts as s } from "../snarkjs/common.snarkjs.mjs";
7
+ import { getSpendingPublicKeyForRn as c } from "../../crypto/rnUtxoCrypto.mjs";
8
+ import { formatMintAddress as l } from "../utils/solanaMint.utils.mjs";
9
+ import { createRnDeltaTiming as u } from "../utils/hinkalTiming.utils.mjs";
10
10
  import { WorkerVariant as d } from "../../webworker/worker.registry.mjs";
11
11
  import { performTaskWithWorker as f } from "../../webworker/performTaskWithWorker.mjs";
12
12
  import { ZKProofWorkerActionType as p } from "../../webworker/zkProofWorker/zkProofWorker.types.mjs";
13
13
  //#region libs/shared/common/src/functions/pre-transaction/buildCommitmentValidationData.ts
14
14
  var m = async (m, h, g, _) => {
15
- let v = s("mainThread.commitmentValidation");
16
- if (u(_)) return;
17
- let y = t(m), b = _.map((e) => e.map((e) => e.amount.toString())), x = _.map((e) => e.map((e) => e.timeStamp)), S = _.map((e) => e.map((e) => l(e))), C = _.map((e) => e.map((e) => e.getConstructableParams()));
15
+ let v = u("mainThread.commitmentValidation");
16
+ if (s(_)) return;
17
+ let y = t(m), b = _.map((e) => e.map((e) => e.amount.toString())), x = _.map((e) => e.map((e) => e.timeStamp)), S = _.map((e) => e.map((e) => o(e))), C = _.map((e) => e.map((e) => e.getConstructableParams()));
18
18
  v.log("serializeInputs");
19
- let w = s("mainThread.getCommitment"), T = _.map((e) => e.map((e) => e.amount === 0n ? "0" : BigInt(e.getCommitment()).toString()));
19
+ let w = u("mainThread.getCommitment"), T = _.map((e) => e.map((e) => e.amount === 0n ? "0" : BigInt(e.getCommitment()).toString()));
20
20
  w.log("all-utxos", { count: _.reduce((e, t) => e + t.length, 0) });
21
21
  let E = await f({
22
22
  type: d.ZKProof,
@@ -26,10 +26,10 @@ var m = async (m, h, g, _) => {
26
26
  }
27
27
  });
28
28
  v.log("buildInNullifiers-worker-done");
29
- let D = h.getShieldedPrivateKey(), O = await a(h), k = y ? g.map((e) => {
30
- let { compressedAddress: t } = o(e);
29
+ let D = h.getShieldedPrivateKey(), O = await c(h), k = y ? g.map((e) => {
30
+ let { compressedAddress: t } = l(e);
31
31
  return BigInt(t).toString();
32
- }) : g.map((e) => BigInt(e).toString()), A = s("mainThread.stealthValidation"), j = 0;
32
+ }) : g.map((e) => BigInt(e).toString()), A = u("mainThread.stealthValidation"), j = 0;
33
33
  if (e) {
34
34
  let e = [];
35
35
  _.forEach((t, n) => {
@@ -71,8 +71,8 @@ var m = async (m, h, g, _) => {
71
71
  erc20TokenAddresses: k,
72
72
  inAmounts: b,
73
73
  inRandomizations: S,
74
- inH0Ax: _.map((e) => e.map((e) => c(e)[0].toString())),
75
- inH0Ay: _.map((e) => e.map((e) => c(e)[1].toString())),
74
+ inH0Ax: _.map((e) => e.map((e) => a(e)[0].toString())),
75
+ inH0Ay: _.map((e) => e.map((e) => a(e)[1].toString())),
76
76
  isNewStyle: _.map((e) => e.map((e) => !!e.isNewStyle)),
77
77
  inTimeStamps: x,
78
78
  inCommitments: T,
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../../constants/addresses.constants.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../pre-transaction/getExternalSwapAddress.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,a,o=!1)=>{let s={tokenIn:t,tokenOut:r,fee:BigInt(a),recipient:i,amountIn:n,amountOutMinimum:0,sqrtPriceLimitX96:0};return l.emporiumOp({contract:new d.ethers.Contract(e,[`function exactInputSingle(tuple(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)`]),func:`exactInputSingle`,args:[s],invokeWallet:o})},p=(e,t,n,r,i,o,s=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,u.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:s}),m=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},h=async(e,t,n,r,a,o)=>{if(await m(c.getContractAddress(n),e))try{await n.allowance(r,a)>0n&&t.push(l.createApproveEmporiumOp(n,a,0n,o))}catch(e){i.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},g=async(t,r,i,a,o,c,u,f)=>{if(i!==e.zeroAddress){let f=s.SWAP_FEE_TAKER_ADDRESSES[r],p=t.getContractWithFetcher(r,n.ContractType.ERC20Contract,i),m=await p.balanceOf(a);await h(r,c,p,a,f,u),c.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,u));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;c.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,m,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:u}))}else{let t=o;c.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:u}))}},_=async(t,i,a,o,c,u,m,_,v,y,b,x,S=!1)=>{let C=m<0n?-1n*m:m,w=[],T=s.NATIVE_TOKEN_WRAPPER_ADDRESSES[i],E=!1,D;if(a===r.ExternalActionId.OneInch||a===r.ExternalActionId.Lifi){if(u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);w.push(l.createApproveEmporiumOp(e,o,C,S))}let s=0n;return u===e.zeroAddress&&(s+=C),_&&v===e.zeroAddress&&_<0n&&(s+=-1n*_),D=p(i,a,o,c,b,s>0n?s:void 0,S),w.push(D),(a===r.ExternalActionId.OneInch||y&&a===r.ExternalActionId.Lifi)&&v&&_!==void 0&&await g(t,i,v,b,x,w,S,_),w}if(!v||!_)throw Error(`There should be output token for UniSwap and Odos`);if(u===e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.emporiumOp({contract:e,func:`deposit`,value:C,invokeWallet:S})),u=T}let O=0n;if(v===e.zeroAddress&&(v=T,E=!0,O=await t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T).balanceOf(b)),u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);await h(i,w,e,b,o,S),w.push(l.createApproveEmporiumOp(e,o,C,S))}if(D=a===r.ExternalActionId.Uniswap?f(o,u,C,v,b,c,S):p(i,a,o,c,b,void 0,S),w.push(D),await g(t,i,v,b,x,w,S,_),E){let e=s.WRAPPER_TOKEN_EXCHANGE_ADDRESSES[i],r=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.createApproveEmporiumOp(r,e,2n**256n-1n,S));let a=new d.ethers.Contract(e,[`function withdrawBalanceDifference(uint256 beforeBalance) external`]);w.push(l.emporiumOp({contract:a,func:`withdrawBalanceDifference`,args:[O],invokeWallet:S}))}return w};exports.createSwapToEmporiumOpForUniswap=f,exports.createSwapToEmporiumOps=_;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../types/external-action.types.cjs`),r=require(`../../types/ethereum-network.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../../constants/addresses.constants.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../pre-transaction/getExternalSwapAddress.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,a,o=!1)=>{let s={tokenIn:t,tokenOut:r,fee:BigInt(a),recipient:i,amountIn:n,amountOutMinimum:0,sqrtPriceLimitX96:0};return l.emporiumOp({contract:new d.ethers.Contract(e,[`function exactInputSingle(tuple(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)`]),func:`exactInputSingle`,args:[s],invokeWallet:o})},p=(e,t,n,r,i,o,s=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,u.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:s}),m=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},h=async(e,t,n,r,a,o)=>{if(await m(c.getContractAddress(n),e))try{await n.allowance(r,a)>0n&&t.push(l.createApproveEmporiumOp(n,a,0n,o))}catch(e){i.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},g=async(t,n,i,a,o,c,u,f)=>{if(i!==e.zeroAddress){let f=s.SWAP_FEE_TAKER_ADDRESSES[n],p=t.getContractWithFetcher(n,r.ContractType.ERC20Contract,i),m=await p.balanceOf(a);await h(n,c,p,a,f,u),c.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,u));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;c.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,m,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:u}))}else{let t=o;c.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:u}))}},_=async(t,i,a,o,c,u,m,_,v,y,b,x,S=!1)=>{let C=m<0n?-1n*m:m,w=[],T=s.NATIVE_TOKEN_WRAPPER_ADDRESSES[i],E=!1,D;if(a===n.ExternalActionId.OneInch||a===n.ExternalActionId.Lifi){if(u!==e.zeroAddress){let e=t.getContractWithFetcher(i,r.ContractType.ERC20Contract,u);w.push(l.createApproveEmporiumOp(e,o,C,S))}let s=0n;return u===e.zeroAddress&&(s+=C),_&&v===e.zeroAddress&&_<0n&&(s+=-1n*_),D=p(i,a,o,c,b,s>0n?s:void 0,S),w.push(D),(a===n.ExternalActionId.OneInch||y&&a===n.ExternalActionId.Lifi)&&v&&_!==void 0&&await g(t,i,v,b,x,w,S,_),w}if(!v||!_)throw Error(`There should be output token for UniSwap and Odos`);if(u===e.zeroAddress){let e=t.getContractWithFetcher(i,r.ContractType.ERC20Contract,T);w.push(l.emporiumOp({contract:e,func:`deposit`,value:C,invokeWallet:S})),u=T}let O=0n;if(v===e.zeroAddress&&(v=T,E=!0,O=await t.getContractWithFetcher(i,r.ContractType.ERC20Contract,T).balanceOf(b)),u!==e.zeroAddress){let e=t.getContractWithFetcher(i,r.ContractType.ERC20Contract,u);await h(i,w,e,b,o,S),w.push(l.createApproveEmporiumOp(e,o,C,S))}if(D=a===n.ExternalActionId.Uniswap?f(o,u,C,v,b,c,S):p(i,a,o,c,b,void 0,S),w.push(D),await g(t,i,v,b,x,w,S,_),E){let e=s.WRAPPER_TOKEN_EXCHANGE_ADDRESSES[i],n=t.getContractWithFetcher(i,r.ContractType.ERC20Contract,T);w.push(l.createApproveEmporiumOp(n,e,2n**256n-1n,S));let a=new d.ethers.Contract(e,[`function withdrawBalanceDifference(uint256 beforeBalance) external`]);w.push(l.emporiumOp({contract:a,func:`withdrawBalanceDifference`,args:[O],invokeWallet:S}))}return w};exports.createSwapToEmporiumOpForUniswap=f,exports.createSwapToEmporiumOps=_;
@@ -1,7 +1,7 @@
1
1
  import { HINKAL_SWAP_VARIABLE_RATE as e, zeroAddress as t } from "../../constants/protocol.constants.mjs";
2
2
  import { caseInsensitiveEqual as n } from "../utils/caseInsensitive.utils.mjs";
3
- import { ContractType as r } from "../../types/ethereum-network.types.mjs";
4
- import { ExternalActionId as i } from "../../types/external-action.types.mjs";
3
+ import { ExternalActionId as r } from "../../types/external-action.types.mjs";
4
+ import { ContractType as i } from "../../types/ethereum-network.types.mjs";
5
5
  import { Logger as a } from "../../error-handling/logger.mjs";
6
6
  import { replaceAllInstances as o } from "../utils/string.utils.mjs";
7
7
  import { getErc20TokensForChainAPI as s } from "../utils/erc20tokenFunctions.mjs";
@@ -41,10 +41,10 @@ var g = (e, t, n, r, i, a, o = !1) => {
41
41
  } catch (e) {
42
42
  a.error("Error in nullifyUsdtApprovalIfNeeded", e);
43
43
  }
44
- }, b = async (n, i, a, o, s, c, u, d) => {
44
+ }, b = async (n, r, a, o, s, c, u, d) => {
45
45
  if (a !== t) {
46
- let t = l[i], d = n.getContractWithFetcher(i, r.ERC20Contract, a), m = await d.balanceOf(o);
47
- await y(i, c, d, o, t, u), c.push(f(d, t, 2n ** 256n - 1n, u));
46
+ let t = l[r], d = n.getContractWithFetcher(r, i.ERC20Contract, a), m = await d.balanceOf(o);
47
+ await y(r, c, d, o, t, u), c.push(f(d, t, 2n ** 256n - 1n, u));
48
48
  let g = new h.Contract(t, ["function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable"]), _ = s;
49
49
  c.push(p({
50
50
  contract: g,
@@ -67,17 +67,17 @@ var g = (e, t, n, r, i, a, o = !1) => {
67
67
  }
68
68
  }, x = async (e, n, a, o, s, l, d, m, v, x, S, C, w = !1) => {
69
69
  let T = d < 0n ? -1n * d : d, E = [], D = c[n], O = !1, k;
70
- if (a === i.OneInch || a === i.Lifi) {
70
+ if (a === r.OneInch || a === r.Lifi) {
71
71
  if (l !== t) {
72
- let t = e.getContractWithFetcher(n, r.ERC20Contract, l);
72
+ let t = e.getContractWithFetcher(n, i.ERC20Contract, l);
73
73
  E.push(f(t, o, T, w));
74
74
  }
75
75
  let c = 0n;
76
- return l === t && (c += T), m && v === t && m < 0n && (c += -1n * m), k = _(n, a, o, s, S, c > 0n ? c : void 0, w), E.push(k), (a === i.OneInch || x && a === i.Lifi) && v && m !== void 0 && await b(e, n, v, S, C, E, w, m), E;
76
+ return l === t && (c += T), m && v === t && m < 0n && (c += -1n * m), k = _(n, a, o, s, S, c > 0n ? c : void 0, w), E.push(k), (a === r.OneInch || x && a === r.Lifi) && v && m !== void 0 && await b(e, n, v, S, C, E, w, m), E;
77
77
  }
78
78
  if (!v || !m) throw Error("There should be output token for UniSwap and Odos");
79
79
  if (l === t) {
80
- let t = e.getContractWithFetcher(n, r.ERC20Contract, D);
80
+ let t = e.getContractWithFetcher(n, i.ERC20Contract, D);
81
81
  E.push(p({
82
82
  contract: t,
83
83
  func: "deposit",
@@ -86,13 +86,13 @@ var g = (e, t, n, r, i, a, o = !1) => {
86
86
  })), l = D;
87
87
  }
88
88
  let A = 0n;
89
- if (v === t && (v = D, O = !0, A = await e.getContractWithFetcher(n, r.ERC20Contract, D).balanceOf(S)), l !== t) {
90
- let t = e.getContractWithFetcher(n, r.ERC20Contract, l);
89
+ if (v === t && (v = D, O = !0, A = await e.getContractWithFetcher(n, i.ERC20Contract, D).balanceOf(S)), l !== t) {
90
+ let t = e.getContractWithFetcher(n, i.ERC20Contract, l);
91
91
  await y(n, E, t, S, o, w), E.push(f(t, o, T, w));
92
92
  }
93
- if (k = a === i.Uniswap ? g(o, l, T, v, S, s, w) : _(n, a, o, s, S, void 0, w), E.push(k), await b(e, n, v, S, C, E, w, m), O) {
94
- let t = u[n], i = e.getContractWithFetcher(n, r.ERC20Contract, D);
95
- E.push(f(i, t, 2n ** 256n - 1n, w));
93
+ if (k = a === r.Uniswap ? g(o, l, T, v, S, s, w) : _(n, a, o, s, S, void 0, w), E.push(k), await b(e, n, v, S, C, E, w, m), O) {
94
+ let t = u[n], r = e.getContractWithFetcher(n, i.ERC20Contract, D);
95
+ E.push(f(r, t, 2n ** 256n - 1n, w));
96
96
  let a = new h.Contract(t, ["function withdrawBalanceDifference(uint256 beforeBalance) external"]);
97
97
  E.push(p({
98
98
  contract: a,
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../../types/circom-data.types.cjs`),r=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),i=require(`../utils/external-action.utils.cjs`),a=require(`./getOriginalSender.cjs`),o=require(`../utils/bit.operations.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return t.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=Array.from({length:25},()=>`0`),d=e=>e.length>0&&e.every(e=>e.every(e=>BigInt(e.amount)===0n)),f=e=>({inCommitmentSiblings:e.map(e=>e.map(()=>[...u])),inCommitmentSiblingSides:e.map(e=>e.map(()=>[...u])),inNullifiers:e.map(e=>e.map(()=>`0`))}),p=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),m=(t,n,r=!1)=>{let i=[];for(let a=0;a<t.length;a+=1){let o=0n,s=0n;for(let e=0;e<t[a].length;e+=1)o+=t[a][e].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(e.CIRCOM_P+(s-o)):i.push(s-o)}return i},h=e=>e.map(e=>e>=0n?0n:e),g=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,i)=>{t[n][i]=`0x${Buffer.from(r.encryptUtxo(e)).toString(`hex`)}`});return t},_=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},v=(t,r,o,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||n.defaultHookData),v=g??a.getOriginalSender(o??e.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[t,r,o,typeof c==`bigint`?c:i.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%e.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,n,r)=>{let{H0:i}=t.UserKeys.getRandomizedStealthPair(e,n),a=t.UserKeys.getH1FromH0(i,n),s=BigInt(t.UserKeys.getStealthAddressNewStyle(i,n,r));return{extraRandomization:o.addHighestBitToNumber(i[0]),H0:i[1],H1:a[1],stealthAddress:s}},x=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildOutCommitments=p,exports.buildZeroInputMerkleDataFromSerialized=f,exports.calcAmountChanges=m,exports.calcEncryptedOutputs=g,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=b,exports.createCallDataHash=v,exports.getSlippageValues=h,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=x,exports.hasOnlyZeroAmounts=d,exports.serializeCircomData=_;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),r=require(`../../types/circom-data.types.cjs`),i=require(`../utils/external-action.utils.cjs`),a=require(`./getOriginalSender.cjs`),o=require(`../utils/bit.operations.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return t.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=Array.from({length:25},()=>`0`),d=e=>e.length>0&&e.every(e=>e.every(e=>BigInt(e.amount)===0n)),f=e=>({inCommitmentSiblings:e.map(e=>e.map(()=>[...u])),inCommitmentSiblingSides:e.map(e=>e.map(()=>[...u])),inNullifiers:e.map(e=>e.map(()=>`0`))}),p=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),m=(t,n,r=!1)=>{let i=[];for(let a=0;a<t.length;a+=1){let o=0n,s=0n;for(let e=0;e<t[a].length;e+=1)o+=t[a][e].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(e.CIRCOM_P+(s-o)):i.push(s-o)}return i},h=e=>e.map(e=>e>=0n?0n:e),g=e=>{if(e.length===0)return[];let t=[[``]];for(let r=0;r<e.length;r+=1)r>0&&t.push([``]),e[r].forEach((e,i)=>{t[r][i]=`0x${Buffer.from(n.encryptUtxo(e)).toString(`hex`)}`});return t},_=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},v=(t,n,o,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||r.defaultHookData),v=g??a.getOriginalSender(o??e.zeroAddress,n),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[t,n,o,typeof c==`bigint`?c:i.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%e.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,n,r)=>{let{H0:i}=t.UserKeys.getRandomizedStealthPair(e,n),a=t.UserKeys.getH1FromH0(i,n),s=BigInt(t.UserKeys.getStealthAddressNewStyle(i,n,r));return{extraRandomization:o.addHighestBitToNumber(i[0]),H0:i[1],H1:a[1],stealthAddress:s}},x=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildOutCommitments=p,exports.buildZeroInputMerkleDataFromSerialized=f,exports.calcAmountChanges=m,exports.calcEncryptedOutputs=g,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=b,exports.createCallDataHash=v,exports.getSlippageValues=h,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=x,exports.hasOnlyZeroAmounts=d,exports.serializeCircomData=_;
@@ -1,7 +1,7 @@
1
1
  import { CIRCOM_P as e, zeroAddress as t } from "../../constants/protocol.constants.mjs";
2
2
  import { UserKeys as n } from "../../data-structures/crypto-keys/keys.mjs";
3
- import { defaultHookData as r } from "../../types/circom-data.types.mjs";
4
- import { encryptUtxo as i } from "../../data-structures/crypto-keys/encryptDecryptUtxo.mjs";
3
+ import { encryptUtxo as r } from "../../data-structures/crypto-keys/encryptDecryptUtxo.mjs";
4
+ import { defaultHookData as i } from "../../types/circom-data.types.mjs";
5
5
  import { getExternalActionIdHash as a } from "../utils/external-action.utils.mjs";
6
6
  import { getOriginalSender as o } from "./getOriginalSender.mjs";
7
7
  import { addHighestBitToNumber as s } from "../utils/bit.operations.mjs";
@@ -31,8 +31,8 @@ var l = (e) => {
31
31
  }, g = (e) => e.map((e) => e >= 0n ? 0n : e), _ = (e) => {
32
32
  if (e.length === 0) return [];
33
33
  let t = [[""]];
34
- for (let n = 0; n < e.length; n += 1) n > 0 && t.push([""]), e[n].forEach((e, r) => {
35
- t[n][r] = `0x${Buffer.from(i(e)).toString("hex")}`;
34
+ for (let n = 0; n < e.length; n += 1) n > 0 && t.push([""]), e[n].forEach((e, i) => {
35
+ t[n][i] = `0x${Buffer.from(r(e)).toString("hex")}`;
36
36
  });
37
37
  return t;
38
38
  }, v = (e) => {
@@ -42,8 +42,8 @@ var l = (e) => {
42
42
  externalApprovalAddresses: e.externalApprovalAddresses,
43
43
  conversionInHinkalAddress: e.conversionInHinkalAddress.map((e) => e.toString())
44
44
  })), t.feeStructure.flatFee = e.feeStructure.flatFee.toString(), t.feeStructure.variableRate = e.feeStructure.variableRate.toString(), t;
45
- }, y = (n, i, s, l, u, d, f, p, m, h, g, _) => {
46
- let v = Object.values(f || r), y = _ ?? o(s ?? t, i), b = c.AbiCoder.defaultAbiCoder().encode([
45
+ }, y = (n, r, s, l, u, d, f, p, m, h, g, _) => {
46
+ let v = Object.values(f || i), y = _ ?? o(s ?? t, r), b = c.AbiCoder.defaultAbiCoder().encode([
47
47
  "uint16",
48
48
  "address",
49
49
  "address",
@@ -51,7 +51,7 @@ var l = (e) => {
51
51
  "bytes"
52
52
  ], [
53
53
  n,
54
- i,
54
+ r,
55
55
  s,
56
56
  typeof l == "bigint" ? l : a(l),
57
57
  u
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),a=require(`../utils/time.utils.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../utils/hinkalTiming.utils.cjs`),l=require(`../utils/bit.operations.cjs`),u=require(`./common.snarkjs.cjs`),d=require(`./signedMessageHash.cjs`),ee=require(`./generateCircomData.cjs`),te=require(`../../data-structures/AccountActions/AccountActions.cjs`),f=require(`./generateMainAndCommitmentZkProof.cjs`),p=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),m=require(`../private-wallet/emporium.helpers.cjs`);var h=async(h,g,_,v,y,b,x,ne,S,C=t.zeroAddress,w=e.chainIds.localhost,T=g.map(()=>!1),E=void 0,D,O)=>{let k=c.createRnDeltaTiming(`webView.getDataFromWorkers`),A=u.getZkProofVerifierName(g,_),j=u.calcAmountChanges(g,_),M=g.map(e=>e[0].erc20TokenAddress),N=u.calcEncryptedOutputs(_),P=t.defaultSignatureData,F=v.getShieldedPrivateKey(),{pubSpendingBJJPoint:I}=v.getSpendingKeyPair(),L=u.calcStealthAddressStructure(i.UserKeys.findCorrectRandomization(r.randomBigInt(31),F),F,v.getSpendingKeyPair().pubSpendingBJJPoint),{inCommitmentSiblings:re,inCommitmentSiblingSides:R,rootHashHinkal:z,inNullifiers:B}=await p.getDataFromWorkers(w,h,g.map(e=>e.map(e=>e.getConstructableParams())));k.log(`done`,{verifierName:A,chainId:w});let V=u.buildOutCommitments(_),H=r.randomBigInt(31),U=n.poseidonFunction(H),W=BigInt(_.length>0?_[0][0].timeStamp:a.getCurrentTimeInSeconds()),G={rootHashHinkal:z,spendingPublicKey:I,nullifyingPrivateKey:F,erc20TokenAddresses:M,amountChanges:j,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>u.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>u.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>u.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:B,inCommitmentSiblings:re,inCommitmentSiblingSides:R,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:W,outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:V,calldataHash:0n,messageSeed:H,H0Ax:l.takeOffHighestBit(L.extraRandomization),H0Ay:L.H0},K=u.calcPublicSignalCount(A,G.erc20TokenAddresses,G.amountChanges,G.inNullifiers,G.outCommitments),q=u.calcAmountChanges(g,_,!0),J=u.getSlippageValues(q);s.Logger.log({publicSignalCount:K});let Y=Array.isArray(x)?x:[x],ie=e.getOnchainChainId(w),ae=O?te.AccountActions.getSignerAddressFromPrivateKey(ie,O):void 0,X=y===o.ExternalActionId.Emporium?await m.encodeEmporiumMetadata(w,b??t.zeroAddress,O,Y,U,ae):await m.encodeEmporiumMetadata(w,t.zeroAddress,void 0,y===0n?[]:Y,U,t.zeroAddress);G.calldataHash=u.createCallDataHash(K,C,b,y,X,N,E,J,T,S,P,D);let Z=d.computeSignedMessageHashEvm({rootHashHinkal:z,erc20TokenAddresses:M,amountChanges:j,outTimeStamp:W,inNullifiers:B,outCommitments:V,calldataHash:G.calldataHash,message:U,outH1Ay:L.H1,H0Ax:G.H0Ax,H0Ay:L.H0}),{R8:Q,S:oe}=v.signEddsa(Z);G.eddsaSignature=[Q[0],Q[1],oe],G.signedMessageHash=Z;let $=A.startsWith(`mainEVMCircuitMin0`),se={outTimeStamp:W,calldataHash:G.calldataHash,messageSeed:H},{zkCallData:ce,commitmentValidationData:le}=await f.generateMainAndCommitmentZkProof(w,v,M,g,A,$?se:G,ne);return{zkCallData:ce,circomData:ee.generateCircomData(V,B,z,q,M,_,N,K,y,b,X,C,G.calldataHash,L,T,E,$?Number(W):void 0,J,S,P,D),dimData:{tokenNumber:g.length,nullifierAmount:g.length>0?g[0].length:0,outputAmount:_.length>0?_[0].length:0},encryptedOutputs:N,commitmentValidationData:le}};exports.constructZkProof=h;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../crypto/poseidon.cjs`),r=require(`../web3/etherFunctions.cjs`),i=require(`../../data-structures/crypto-keys/keys.cjs`),ee=require(`../../types/external-action.types.cjs`),a=require(`../utils/bit.operations.cjs`),o=require(`./common.snarkjs.cjs`),s=require(`../../crypto/rnUtxoCrypto.cjs`),c=require(`../utils/time.utils.cjs`),l=require(`../../error-handling/logger.cjs`),te=require(`../utils/hinkalTiming.utils.cjs`),u=require(`./signedMessageHash.cjs`),d=require(`./generateCircomData.cjs`),ne=require(`../../data-structures/AccountActions/AccountActions.cjs`),f=require(`./generateMainAndCommitmentZkProof.cjs`),p=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),m=require(`../private-wallet/emporium.helpers.cjs`);var h=async(h,g,_,v,y,b,x,re,S,C=t.zeroAddress,w=e.chainIds.localhost,T=g.map(()=>!1),E=void 0,D,O)=>{let k=te.createRnDeltaTiming(`webView.getDataFromWorkers`),A=o.getZkProofVerifierName(g,_),j=o.calcAmountChanges(g,_),M=g.map(e=>e[0].erc20TokenAddress),N=o.calcEncryptedOutputs(_),P=t.defaultSignatureData,F=v.getShieldedPrivateKey(),{pubSpendingBJJPoint:I}=await s.getSpendingKeyPairForRn(v),L=await s.calcStealthAddressStructureForRn(i.UserKeys.findCorrectRandomization(r.randomBigInt(31),F),F,I),{inCommitmentSiblings:ie,inCommitmentSiblingSides:ae,rootHashHinkal:R,inNullifiers:z}=await p.getDataFromWorkers(w,h,g.map(e=>e.map(e=>e.getConstructableParams())));k.log(`done`,{verifierName:A,chainId:w});let B=o.buildOutCommitments(_),V=r.randomBigInt(31),H=n.poseidonFunction(V),U=BigInt(_.length>0?_[0][0].timeStamp:c.getCurrentTimeInSeconds()),W={rootHashHinkal:R,spendingPublicKey:I,nullifyingPrivateKey:F,erc20TokenAddresses:M,amountChanges:j,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>o.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>o.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:z,inCommitmentSiblings:ie,inCommitmentSiblingSides:ae,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:U,outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:B,calldataHash:0n,messageSeed:V,H0Ax:a.takeOffHighestBit(L.extraRandomization),H0Ay:L.H0},G=o.calcPublicSignalCount(A,W.erc20TokenAddresses,W.amountChanges,W.inNullifiers,W.outCommitments),K=o.calcAmountChanges(g,_,!0),q=o.getSlippageValues(K);l.Logger.log({publicSignalCount:G});let J=Array.isArray(x)?x:[x],oe=e.getOnchainChainId(w),Y=O?ne.AccountActions.getSignerAddressFromPrivateKey(oe,O):void 0,X=y===ee.ExternalActionId.Emporium?await m.encodeEmporiumMetadata(w,b??t.zeroAddress,O,J,H,Y):await m.encodeEmporiumMetadata(w,t.zeroAddress,void 0,y===0n?[]:J,H,t.zeroAddress);W.calldataHash=o.createCallDataHash(G,C,b,y,X,N,E,q,T,S,P,D);let Z=u.computeSignedMessageHashEvm({rootHashHinkal:R,erc20TokenAddresses:M,amountChanges:j,outTimeStamp:U,inNullifiers:z,outCommitments:B,calldataHash:W.calldataHash,message:H,outH1Ay:L.H1,H0Ax:W.H0Ax,H0Ay:L.H0}),{R8:Q,S:se}=await s.signEddsaForRn(v,Z);W.eddsaSignature=[Q[0],Q[1],se],W.signedMessageHash=Z;let $=A.startsWith(`mainEVMCircuitMin0`),ce={outTimeStamp:U,calldataHash:W.calldataHash,messageSeed:V},{zkCallData:le,commitmentValidationData:ue}=await f.generateMainAndCommitmentZkProof(w,v,M,g,A,$?ce:W,re);return{zkCallData:le,circomData:d.generateCircomData(B,z,R,K,M,_,N,G,y,b,X,C,W.calldataHash,L,T,E,$?Number(U):void 0,q,S,P,D),dimData:{tokenNumber:g.length,nullifierAmount:g.length>0?g[0].length:0,outputAmount:_.length>0?_[0].length:0},encryptedOutputs:N,commitmentValidationData:ue}};exports.constructZkProof=h;
@@ -1,88 +1,89 @@
1
- import { chainIds as e, getOnchainChainId as ee } from "../../constants/chains.constants.mjs";
2
- import { defaultSignatureData as te, zeroAddress as t } from "../../constants/protocol.constants.mjs";
3
- import { poseidonFunction as ne } from "../../crypto/poseidon.mjs";
4
- import { randomBigInt as n } from "../web3/etherFunctions.mjs";
5
- import { UserKeys as re } from "../../data-structures/crypto-keys/keys.mjs";
6
- import { getCurrentTimeInSeconds as r } from "../utils/time.utils.mjs";
1
+ import { chainIds as e, getOnchainChainId as t } from "../../constants/chains.constants.mjs";
2
+ import { defaultSignatureData as ee, zeroAddress as n } from "../../constants/protocol.constants.mjs";
3
+ import { poseidonFunction as te } from "../../crypto/poseidon.mjs";
4
+ import { randomBigInt as r } from "../web3/etherFunctions.mjs";
5
+ import { UserKeys as ne } from "../../data-structures/crypto-keys/keys.mjs";
7
6
  import { ExternalActionId as i } from "../../types/external-action.types.mjs";
8
- import { Logger as ie } from "../../error-handling/logger.mjs";
9
- import { createRnDeltaTiming as ae } from "../utils/hinkalTiming.utils.mjs";
10
- import { takeOffHighestBit as oe } from "../utils/bit.operations.mjs";
11
- import { buildOutCommitments as a, calcAmountChanges as o, calcEncryptedOutputs as s, calcPublicSignalCount as c, calcStealthAddressStructure as l, createCallDataHash as se, getSlippageValues as ce, getUtxoCircuitH0Coords as u, getUtxoCircuitInRandomization as le, getZkProofVerifierName as ue } from "./common.snarkjs.mjs";
12
- import { computeSignedMessageHashEvm as de } from "./signedMessageHash.mjs";
13
- import { generateCircomData as fe } from "./generateCircomData.mjs";
14
- import { AccountActions as pe } from "../../data-structures/AccountActions/AccountActions.mjs";
15
- import { generateMainAndCommitmentZkProof as d } from "./generateMainAndCommitmentZkProof.mjs";
16
- import { getDataFromWorkers as me } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
17
- import { encodeEmporiumMetadata as f } from "../private-wallet/emporium.helpers.mjs";
7
+ import { takeOffHighestBit as a } from "../utils/bit.operations.mjs";
8
+ import { buildOutCommitments as re, calcAmountChanges as o, calcEncryptedOutputs as s, calcPublicSignalCount as c, createCallDataHash as l, getSlippageValues as u, getUtxoCircuitH0Coords as d, getUtxoCircuitInRandomization as ie, getZkProofVerifierName as ae } from "./common.snarkjs.mjs";
9
+ import { calcStealthAddressStructureForRn as oe, getSpendingKeyPairForRn as se, signEddsaForRn as ce } from "../../crypto/rnUtxoCrypto.mjs";
10
+ import { getCurrentTimeInSeconds as le } from "../utils/time.utils.mjs";
11
+ import { Logger as ue } from "../../error-handling/logger.mjs";
12
+ import { createRnDeltaTiming as de } from "../utils/hinkalTiming.utils.mjs";
13
+ import { computeSignedMessageHashEvm as fe } from "./signedMessageHash.mjs";
14
+ import { generateCircomData as pe } from "./generateCircomData.mjs";
15
+ import { AccountActions as f } from "../../data-structures/AccountActions/AccountActions.mjs";
16
+ import { generateMainAndCommitmentZkProof as me } from "./generateMainAndCommitmentZkProof.mjs";
17
+ import { getDataFromWorkers as he } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
18
+ import { encodeEmporiumMetadata as p } from "../private-wallet/emporium.helpers.mjs";
18
19
  //#region libs/shared/common/src/functions/snarkjs/constructGeneralZkProof.ts
19
- var p = async (p, m, h, g, _, v, y, b, x, S = t, C = e.localhost, w = m.map(() => !1), T = void 0, E, D) => {
20
- let he = ae("webView.getDataFromWorkers"), O = ue(m, h), k = o(m, h), A = m.map((e) => e[0].erc20TokenAddress), j = s(h), M = te, N = g.getShieldedPrivateKey(), { pubSpendingBJJPoint: P } = g.getSpendingKeyPair(), F = l(re.findCorrectRandomization(n(31), N), N, g.getSpendingKeyPair().pubSpendingBJJPoint), { inCommitmentSiblings: I, inCommitmentSiblingSides: L, rootHashHinkal: R, inNullifiers: z } = await me(C, p, m.map((e) => e.map((e) => e.getConstructableParams())));
21
- he.log("done", {
22
- verifierName: O,
23
- chainId: C
20
+ var m = async (m, h, g, _, v, y, b, x, S, C = n, w = e.localhost, T = h.map(() => !1), E = void 0, D, O) => {
21
+ let k = de("webView.getDataFromWorkers"), A = ae(h, g), j = o(h, g), M = h.map((e) => e[0].erc20TokenAddress), N = s(g), P = ee, F = _.getShieldedPrivateKey(), { pubSpendingBJJPoint: I } = await se(_), L = await oe(ne.findCorrectRandomization(r(31), F), F, I), { inCommitmentSiblings: R, inCommitmentSiblingSides: ge, rootHashHinkal: z, inNullifiers: B } = await he(w, m, h.map((e) => e.map((e) => e.getConstructableParams())));
22
+ k.log("done", {
23
+ verifierName: A,
24
+ chainId: w
24
25
  });
25
- let B = a(h), V = n(31), H = ne(V), U = BigInt(h.length > 0 ? h[0][0].timeStamp : r()), W = {
26
- rootHashHinkal: R,
27
- spendingPublicKey: P,
28
- nullifyingPrivateKey: N,
29
- erc20TokenAddresses: A,
30
- amountChanges: k,
31
- inAmounts: m.map((e) => e.map((e) => e.amount.toString())),
32
- inRandomizations: m.map((e) => e.map((e) => le(e))),
33
- inH0Ax: m.map((e) => e.map((e) => u(e)[0].toString())),
34
- inH0Ay: m.map((e) => e.map((e) => u(e)[1].toString())),
35
- isNewStyle: m.map((e) => e.map((e) => !!e.isNewStyle)),
36
- inTimeStamps: m.map((e) => e.map((e) => e.timeStamp)),
37
- inNullifiers: z,
38
- inCommitmentSiblings: I,
39
- inCommitmentSiblingSides: L,
40
- outAmounts: h.map((e) => e.map((e) => e.amount.toString())),
41
- outTimeStamp: U,
42
- outPublicKeys: h.map((e) => e.map((e) => e.getStealthAddress())),
43
- outCommitments: B,
26
+ let V = re(g), H = r(31), U = te(H), W = BigInt(g.length > 0 ? g[0][0].timeStamp : le()), G = {
27
+ rootHashHinkal: z,
28
+ spendingPublicKey: I,
29
+ nullifyingPrivateKey: F,
30
+ erc20TokenAddresses: M,
31
+ amountChanges: j,
32
+ inAmounts: h.map((e) => e.map((e) => e.amount.toString())),
33
+ inRandomizations: h.map((e) => e.map((e) => ie(e))),
34
+ inH0Ax: h.map((e) => e.map((e) => d(e)[0].toString())),
35
+ inH0Ay: h.map((e) => e.map((e) => d(e)[1].toString())),
36
+ isNewStyle: h.map((e) => e.map((e) => !!e.isNewStyle)),
37
+ inTimeStamps: h.map((e) => e.map((e) => e.timeStamp)),
38
+ inNullifiers: B,
39
+ inCommitmentSiblings: R,
40
+ inCommitmentSiblingSides: ge,
41
+ outAmounts: g.map((e) => e.map((e) => e.amount.toString())),
42
+ outTimeStamp: W,
43
+ outPublicKeys: g.map((e) => e.map((e) => e.getStealthAddress())),
44
+ outCommitments: V,
44
45
  calldataHash: 0n,
45
- messageSeed: V,
46
- H0Ax: oe(F.extraRandomization),
47
- H0Ay: F.H0
48
- }, G = c(O, W.erc20TokenAddresses, W.amountChanges, W.inNullifiers, W.outCommitments), K = o(m, h, !0), q = ce(K);
49
- ie.log({ publicSignalCount: G });
50
- let J = Array.isArray(y) ? y : [y], ge = ee(C), Y = D ? pe.getSignerAddressFromPrivateKey(ge, D) : void 0, X = _ === i.Emporium ? await f(C, v ?? t, D, J, H, Y) : await f(C, t, void 0, _ === 0n ? [] : J, H, t);
51
- W.calldataHash = se(G, S, v, _, X, j, T, q, w, x, M, E);
52
- let Z = de({
53
- rootHashHinkal: R,
54
- erc20TokenAddresses: A,
55
- amountChanges: k,
56
- outTimeStamp: U,
57
- inNullifiers: z,
58
- outCommitments: B,
59
- calldataHash: W.calldataHash,
60
- message: H,
61
- outH1Ay: F.H1,
62
- H0Ax: W.H0Ax,
63
- H0Ay: F.H0
64
- }), { R8: Q, S: _e } = g.signEddsa(Z);
65
- W.eddsaSignature = [
46
+ messageSeed: H,
47
+ H0Ax: a(L.extraRandomization),
48
+ H0Ay: L.H0
49
+ }, K = c(A, G.erc20TokenAddresses, G.amountChanges, G.inNullifiers, G.outCommitments), q = o(h, g, !0), J = u(q);
50
+ ue.log({ publicSignalCount: K });
51
+ let Y = Array.isArray(b) ? b : [b], _e = t(w), ve = O ? f.getSignerAddressFromPrivateKey(_e, O) : void 0, X = v === i.Emporium ? await p(w, y ?? n, O, Y, U, ve) : await p(w, n, void 0, v === 0n ? [] : Y, U, n);
52
+ G.calldataHash = l(K, C, y, v, X, N, E, J, T, S, P, D);
53
+ let Z = fe({
54
+ rootHashHinkal: z,
55
+ erc20TokenAddresses: M,
56
+ amountChanges: j,
57
+ outTimeStamp: W,
58
+ inNullifiers: B,
59
+ outCommitments: V,
60
+ calldataHash: G.calldataHash,
61
+ message: U,
62
+ outH1Ay: L.H1,
63
+ H0Ax: G.H0Ax,
64
+ H0Ay: L.H0
65
+ }), { R8: Q, S: ye } = await ce(_, Z);
66
+ G.eddsaSignature = [
66
67
  Q[0],
67
68
  Q[1],
68
- _e
69
- ], W.signedMessageHash = Z;
70
- let $ = O.startsWith("mainEVMCircuitMin0"), ve = {
71
- outTimeStamp: U,
72
- calldataHash: W.calldataHash,
73
- messageSeed: V
74
- }, { zkCallData: ye, commitmentValidationData: be } = await d(C, g, A, m, O, $ ? ve : W, b);
69
+ ye
70
+ ], G.signedMessageHash = Z;
71
+ let $ = A.startsWith("mainEVMCircuitMin0"), be = {
72
+ outTimeStamp: W,
73
+ calldataHash: G.calldataHash,
74
+ messageSeed: H
75
+ }, { zkCallData: xe, commitmentValidationData: Se } = await me(w, _, M, h, A, $ ? be : G, x);
75
76
  return {
76
- zkCallData: ye,
77
- circomData: fe(B, z, R, K, A, h, j, G, _, v, X, S, W.calldataHash, F, w, T, $ ? Number(U) : void 0, q, x, M, E),
77
+ zkCallData: xe,
78
+ circomData: pe(V, B, z, q, M, g, N, K, v, y, X, C, G.calldataHash, L, T, E, $ ? Number(W) : void 0, J, S, P, D),
78
79
  dimData: {
79
- tokenNumber: m.length,
80
- nullifierAmount: m.length > 0 ? m[0].length : 0,
81
- outputAmount: h.length > 0 ? h[0].length : 0
80
+ tokenNumber: h.length,
81
+ nullifierAmount: h.length > 0 ? h[0].length : 0,
82
+ outputAmount: g.length > 0 ? g[0].length : 0
82
83
  },
83
- encryptedOutputs: j,
84
- commitmentValidationData: be
84
+ encryptedOutputs: N,
85
+ commitmentValidationData: Se
85
86
  };
86
87
  };
87
88
  //#endregion
88
- export { p as constructZkProof };
89
+ export { m as constructZkProof };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../utils/solanaMint.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=a.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=n.randomBigInt(31),F=t.poseidonFunction(P),I=t.poseidonFunction(O),L=h.map(e=>r.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=a.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=a.buildOutCommitments(_),J=i.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../utils/bit.operations.cjs`),i=require(`./common.snarkjs.cjs`),a=require(`../utils/solanaMint.utils.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=i.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=n.randomBigInt(31),F=t.poseidonFunction(P),I=t.poseidonFunction(O),L=h.map(e=>a.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=i.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=i.buildOutCommitments(_),J=r.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>i.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>i.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>i.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
@@ -1,73 +1,73 @@
1
1
  import { chainIds as e } from "../../constants/chains.constants.mjs";
2
2
  import { poseidonFunction as t } from "../../crypto/poseidon.mjs";
3
3
  import { randomBigInt as n } from "../web3/etherFunctions.mjs";
4
- import { formatMintAddress as r } from "../utils/solanaMint.utils.mjs";
5
- import { takeOffHighestBit as i } from "../utils/bit.operations.mjs";
6
- import { buildOutCommitments as a, calcAmountChanges as o, calcStealthAddressStructure as s, getUtxoCircuitH0Coords as c, getUtxoCircuitInRandomization as l } from "./common.snarkjs.mjs";
7
- import { encodeToByte32Array as u } from "../pre-transaction/solana.mjs";
8
- import { computeSignedMessageHashSolana as d } from "./signedMessageHash.mjs";
4
+ import { takeOffHighestBit as ee } from "../utils/bit.operations.mjs";
5
+ import { buildOutCommitments as r, calcAmountChanges as i, calcStealthAddressStructure as a, getUtxoCircuitH0Coords as o, getUtxoCircuitInRandomization as s } from "./common.snarkjs.mjs";
6
+ import { formatMintAddress as c } from "../utils/solanaMint.utils.mjs";
7
+ import { encodeToByte32Array as l } from "../pre-transaction/solana.mjs";
8
+ import { computeSignedMessageHashSolana as u } from "./signedMessageHash.mjs";
9
9
  import "../pre-transaction/index.mjs";
10
- import { generateMainAndCommitmentZkProof as f } from "./generateMainAndCommitmentZkProof.mjs";
10
+ import { generateMainAndCommitmentZkProof as d } from "./generateMainAndCommitmentZkProof.mjs";
11
11
  import "../utils/index.mjs";
12
- import { getDataFromWorkers as p } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
13
- import { getSolanaCalldataHash as m } from "../pre-transaction/getSolanaCalldataHash.mjs";
12
+ import { getDataFromWorkers as f } from "./getMerkleTreeSiblingsAndRootHashes.mjs";
13
+ import { getSolanaCalldataHash as p } from "../pre-transaction/getSolanaCalldataHash.mjs";
14
14
  import "../web3/index.mjs";
15
- import { PublicKey as h } from "@solana/web3.js";
15
+ import { PublicKey as m } from "@solana/web3.js";
16
16
  //#region libs/shared/common/src/functions/snarkjs/constructSolanaZkProof.ts
17
- var g = async (g, _, v, y, b, x, S, C, w, T, E, D, ee, O = e.solanaLocalnet, k = [], A = [], j = 0n) => {
18
- let M = new h(T), N = new h(E), P = v.getShieldedPrivateKey(), { pubSpendingBJJPoint: F } = v.getSpendingKeyPair(), I = s(S, P, v.getSpendingKeyPair().pubSpendingBJJPoint), L = n(31), R = t(L), z = t(j), B = y.map((e) => r(e)), V = B.map((e) => e.mintAccountPart1), H = B.map((e) => e.mintAccountPart2), U = m(D, M, N, ee, C, w, k, A), te = `${D.tokenNumber}x${D.nullifierAmount}x${D.outputAmount}`, W = o(b, x), { inCommitmentSiblings: G, inCommitmentSiblingSides: K, rootHashHinkal: q, inNullifiers: J } = await p(O, _, b.map((e) => e.map((e) => e.getConstructableParams()))), Y = a(x), X = i(I.extraRandomization), Z = I.H0, Q = d({
19
- rootHashHinkal: q,
20
- mintAccountPart1: V,
21
- mintAccountPart2: H,
22
- amountChanges: W,
23
- outTimeStamp: BigInt(x[0][0].timeStamp),
24
- inNullifiers: J,
25
- outCommitments: Y,
26
- calldataHash: U,
27
- message: R,
28
- swapperAccountAdditionalSeed: z,
29
- outH1Ay: I.H1,
30
- H0Ax: X,
31
- H0Ay: Z
32
- }), { R8: $, S: ne } = v.signEddsa(Q), re = {
33
- rootHashHinkal: q,
34
- spendingPublicKey: F,
17
+ var h = async (h, g, _, v, y, b, x, S, C, w, T, E, te, D = e.solanaLocalnet, O = [], k = [], A = 0n) => {
18
+ let j = new m(w), M = new m(T), N = _.getShieldedPrivateKey(), { pubSpendingBJJPoint: P } = _.getSpendingKeyPair(), F = a(x, N, _.getSpendingKeyPair().pubSpendingBJJPoint), I = n(31), L = t(I), R = t(A), z = v.map((e) => c(e)), B = z.map((e) => e.mintAccountPart1), V = z.map((e) => e.mintAccountPart2), H = p(E, j, M, te, S, C, O, k), ne = `${E.tokenNumber}x${E.nullifierAmount}x${E.outputAmount}`, U = i(y, b), { inCommitmentSiblings: W, inCommitmentSiblingSides: G, rootHashHinkal: K, inNullifiers: q } = await f(D, g, y.map((e) => e.map((e) => e.getConstructableParams()))), J = r(b), Y = ee(F.extraRandomization), X = F.H0, Z = u({
19
+ rootHashHinkal: K,
20
+ mintAccountPart1: B,
21
+ mintAccountPart2: V,
22
+ amountChanges: U,
23
+ outTimeStamp: BigInt(b[0][0].timeStamp),
24
+ inNullifiers: q,
25
+ outCommitments: J,
26
+ calldataHash: H,
27
+ message: L,
28
+ swapperAccountAdditionalSeed: R,
29
+ outH1Ay: F.H1,
30
+ H0Ax: Y,
31
+ H0Ay: X
32
+ }), { R8: Q, S: re } = _.signEddsa(Z), ie = {
33
+ rootHashHinkal: K,
34
+ spendingPublicKey: P,
35
35
  eddsaSignature: [
36
- $[0],
37
- $[1],
38
- ne
36
+ Q[0],
37
+ Q[1],
38
+ re
39
39
  ],
40
- signedMessageHash: Q,
41
- nullifyingPrivateKey: P,
42
- mintAccountPart1: V,
43
- mintAccountPart2: H,
44
- amountChanges: W,
45
- inAmounts: b.map((e) => e.map((e) => e.amount.toString())),
46
- inRandomizations: b.map((e) => e.map((e) => l(e))),
47
- inH0Ax: b.map((e) => e.map((e) => c(e)[0].toString())),
48
- inH0Ay: b.map((e) => e.map((e) => c(e)[1].toString())),
49
- isNewStyle: b.map((e) => e.map((e) => !!e.isNewStyle)),
50
- inTimeStamps: b.map((e) => e.map((e) => e.timeStamp)),
51
- inNullifiers: J,
52
- inCommitmentSiblings: G,
53
- inCommitmentSiblingSides: K,
54
- outAmounts: x.map((e) => e.map((e) => e.amount.toString())),
55
- outTimeStamp: BigInt(x[0][0].timeStamp),
56
- outPublicKeys: x.map((e) => e.map((e) => e.getStealthAddress())),
57
- outCommitments: Y,
58
- calldataHash: U,
59
- messageSeed: L,
60
- swapperAccountSalt: j,
61
- H0Ax: X,
62
- H0Ay: Z
63
- }, { zkCallData: ie, publicSignals: ae, commitmentValidationData: oe } = await f(O, v, y, b, `mainSolanaCircuit${te}`, re, g), [se, ce, le] = ie;
40
+ signedMessageHash: Z,
41
+ nullifyingPrivateKey: N,
42
+ mintAccountPart1: B,
43
+ mintAccountPart2: V,
44
+ amountChanges: U,
45
+ inAmounts: y.map((e) => e.map((e) => e.amount.toString())),
46
+ inRandomizations: y.map((e) => e.map((e) => s(e))),
47
+ inH0Ax: y.map((e) => e.map((e) => o(e)[0].toString())),
48
+ inH0Ay: y.map((e) => e.map((e) => o(e)[1].toString())),
49
+ isNewStyle: y.map((e) => e.map((e) => !!e.isNewStyle)),
50
+ inTimeStamps: y.map((e) => e.map((e) => e.timeStamp)),
51
+ inNullifiers: q,
52
+ inCommitmentSiblings: W,
53
+ inCommitmentSiblingSides: G,
54
+ outAmounts: b.map((e) => e.map((e) => e.amount.toString())),
55
+ outTimeStamp: BigInt(b[0][0].timeStamp),
56
+ outPublicKeys: b.map((e) => e.map((e) => e.getStealthAddress())),
57
+ outCommitments: J,
58
+ calldataHash: H,
59
+ messageSeed: I,
60
+ swapperAccountSalt: A,
61
+ H0Ax: Y,
62
+ H0Ay: X
63
+ }, { zkCallData: ae, publicSignals: oe, commitmentValidationData: $ } = await d(D, _, v, y, `mainSolanaCircuit${ne}`, ie, h), [se, ce, le] = ae;
64
64
  return {
65
- proofAArr: se.map(BigInt).map(u).flat(),
66
- proofBArr: ce.flat().map(BigInt).map(u).flat(),
67
- proofCArr: le.map(BigInt).map(u).flat(),
68
- publicInputsArr: ae.map(BigInt).map(u),
69
- commitmentValidationData: oe
65
+ proofAArr: se.map(BigInt).map(l).flat(),
66
+ proofBArr: ce.flat().map(BigInt).map(l).flat(),
67
+ proofCArr: le.map(BigInt).map(l).flat(),
68
+ publicInputsArr: oe.map(BigInt).map(l),
69
+ commitmentValidationData: $
70
70
  };
71
71
  };
72
72
  //#endregion
73
- export { g as constructSolanaZkProof };
73
+ export { h as constructSolanaZkProof };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`),require(`ethers`),require(`snarkjs`);
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`./common.snarkjs.cjs`),require(`../../data-structures/http/HttpClient.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`),require(`ethers`),require(`snarkjs`);
@@ -1,5 +1,5 @@
1
- import "../../data-structures/http/HttpClient.mjs";
2
1
  import "./common.snarkjs.mjs";
2
+ import "../../data-structures/http/HttpClient.mjs";
3
3
  import "../utils/bytes32.utils.mjs";
4
4
  import "./getZKFiles.mjs";
5
5
  import "ethers";
@@ -1 +1 @@
1
- require(`../web3/etherFunctions.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`../../data-structures/utxo/Utxo.cjs`),require(`./addresses.cjs`),require(`../snarkjs/common.snarkjs.cjs`);
1
+ require(`../web3/etherFunctions.cjs`),require(`../../data-structures/crypto-keys/keys.cjs`),require(`../snarkjs/common.snarkjs.cjs`),require(`../../data-structures/utxo/Utxo.cjs`),require(`./addresses.cjs`);