@hinkal/common 0.2.32 → 0.2.34

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 (127) hide show
  1. package/constants/bridging.constants.cjs +1 -1
  2. package/constants/bridging.constants.d.ts +1 -1
  3. package/constants/bridging.constants.mjs +6 -5
  4. package/constants/chains.constants.cjs +1 -1
  5. package/constants/chains.constants.d.ts +11 -1
  6. package/constants/chains.constants.mjs +86 -18
  7. package/constants/protocol.constants.cjs +1 -1
  8. package/constants/protocol.constants.d.ts +1 -0
  9. package/constants/protocol.constants.mjs +2 -2
  10. package/constants/token-data/ERC20Registry.cjs +1 -1
  11. package/constants/token-data/ERC20Registry.mjs +49 -14
  12. package/constants/token-data/avalancheRegistry.json.cjs +1 -0
  13. package/constants/token-data/avalancheRegistry.json.mjs +44 -0
  14. package/constants/token-data/bnbMainnetRegistry.json.cjs +1 -0
  15. package/constants/token-data/bnbMainnetRegistry.json.mjs +44 -0
  16. package/constants/token-data/cronosRegistry.json.cjs +1 -0
  17. package/constants/token-data/cronosRegistry.json.mjs +44 -0
  18. package/constants/token-data/hyperEvmRegistry.json.cjs +1 -0
  19. package/constants/token-data/hyperEvmRegistry.json.mjs +36 -0
  20. package/constants/token-data/index.cjs +1 -1
  21. package/constants/token-data/index.d.ts +57 -1
  22. package/constants/token-data/index.mjs +9 -2
  23. package/constants/token-data/inkRegistry.json.cjs +1 -0
  24. package/constants/token-data/inkRegistry.json.mjs +28 -0
  25. package/constants/token-data/monadRegistry.json.cjs +1 -0
  26. package/constants/token-data/monadRegistry.json.mjs +36 -0
  27. package/constants/token-data/plasmaRegistry.json.cjs +1 -0
  28. package/constants/token-data/plasmaRegistry.json.mjs +28 -0
  29. package/constants/tokens.constants.cjs +1 -1
  30. package/constants/tokens.constants.mjs +8 -1
  31. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  32. package/data-structures/Hinkal/Hinkal.d.ts +1 -1
  33. package/data-structures/Hinkal/Hinkal.mjs +1 -1
  34. package/data-structures/Hinkal/IHinkal.d.ts +1 -1
  35. package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  36. package/data-structures/Hinkal/handleAutoDepositBack.mjs +15 -15
  37. package/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  38. package/data-structures/Hinkal/hinkalClaimUtxo.mjs +33 -35
  39. package/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  40. package/data-structures/Hinkal/hinkalDepositAndBridge.mjs +43 -49
  41. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  42. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +38 -40
  43. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  44. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +21 -26
  45. package/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  46. package/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +62 -64
  47. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  48. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +49 -50
  49. package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
  50. package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +7 -7
  51. package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  52. package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +9 -9
  53. package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  54. package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +8 -8
  55. package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  56. package/data-structures/Hinkal/hinkalSolanaSwap.mjs +50 -51
  57. package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  58. package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +45 -46
  59. package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  60. package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +38 -39
  61. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  62. package/data-structures/Hinkal/hinkalSwap.mjs +18 -19
  63. package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  64. package/data-structures/Hinkal/hinkalTransfer.mjs +21 -22
  65. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  66. package/data-structures/Hinkal/hinkalWithdraw.mjs +24 -25
  67. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  68. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +39 -41
  69. package/error-handling/error-codes.constants.cjs +1 -1
  70. package/error-handling/error-codes.constants.d.ts +2 -0
  71. package/error-handling/error-codes.constants.mjs +2 -0
  72. package/error-handling/get-error.message.cjs +1 -1
  73. package/error-handling/get-error.message.mjs +2 -1
  74. package/functions/index.cjs +1 -1
  75. package/functions/index.mjs +7 -6
  76. package/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  77. package/functions/pre-transaction/buildCommitmentValidationData.d.ts +12 -2
  78. package/functions/pre-transaction/buildCommitmentValidationData.mjs +43 -36
  79. package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
  80. package/functions/pre-transaction/sendV0Transaction.d.ts +2 -2
  81. package/functions/pre-transaction/sendV0Transaction.mjs +63 -58
  82. package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  83. package/functions/snarkjs/constructGeneralZkProof.d.ts +1 -0
  84. package/functions/snarkjs/constructGeneralZkProof.mjs +6 -5
  85. package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  86. package/functions/snarkjs/constructSolanaZkProof.d.ts +1 -0
  87. package/functions/snarkjs/constructSolanaZkProof.mjs +35 -34
  88. package/functions/snarkjs/generateMainAndCommitmentZkProof.cjs +1 -0
  89. package/functions/snarkjs/generateMainAndCommitmentZkProof.d.ts +11 -0
  90. package/functions/snarkjs/generateMainAndCommitmentZkProof.mjs +16 -0
  91. package/functions/snarkjs/generateZkProof.cjs +1 -1
  92. package/functions/snarkjs/generateZkProof.d.ts +3 -3
  93. package/functions/snarkjs/generateZkProof.mjs +5 -9
  94. package/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
  95. package/functions/snarkjs/generateZkProofEnclave.d.ts +2 -2
  96. package/functions/snarkjs/generateZkProofEnclave.mjs +8 -8
  97. package/functions/snarkjs/generateZkProofSelf.cjs +1 -1
  98. package/functions/snarkjs/generateZkProofSelf.mjs +5 -5
  99. package/functions/snarkjs/index.cjs +1 -1
  100. package/functions/snarkjs/index.d.ts +1 -0
  101. package/functions/snarkjs/index.mjs +1 -0
  102. package/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  103. package/functions/snarkjs/verifyCommitmentValidationData.mjs +5 -5
  104. package/functions/utils/customEnclaveFunctionsRegister.d.ts +3 -3
  105. package/functions/utils/index.cjs +1 -1
  106. package/functions/utils/index.mjs +5 -5
  107. package/functions/web3/oneInchAPI.cjs +1 -1
  108. package/functions/web3/oneInchAPI.mjs +1 -1
  109. package/index.cjs +1 -1
  110. package/index.mjs +316 -315
  111. package/package.json +2 -2
  112. package/webworker/{logError-fCJ4HXQz.js → logError-DZiJbbaT.js} +1 -1
  113. package/webworker/package.json +2 -2
  114. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
  115. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
  116. package/webworker/snarkjsWorkerNode.cjs +1 -1
  117. package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  118. package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  119. package/webworker/utxoWorkerNode.cjs +1 -1
  120. package/webworker/viteWorkerURL.constant.cjs +3 -3
  121. package/webworker/viteWorkerURL.constant.mjs +3 -3
  122. package/webworker/workerFactory.cjs +1 -1
  123. package/webworker/workerFactory.mjs +2 -2
  124. package/webworker/{workerProxy-BNBqYien.js → workerProxy-DQJE57Ye.js} +1 -1
  125. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  126. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  127. package/webworker/zkProofWorkerNode.cjs +1 -1
@@ -14,67 +14,66 @@ import { calcEncryptedOutputs as f } from "../../functions/snarkjs/common.snarkj
14
14
  import { constructAdminData as p } from "../../functions/pre-transaction/constructAdminData.mjs";
15
15
  import { ensureAmountChanges as m } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
16
16
  import { getFeeStructure as h } from "../../functions/pre-transaction/getFeeStructure.mjs";
17
- import { buildCommitmentValidationData as g } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
18
17
  import "../../functions/pre-transaction/index.mjs";
19
- import { calculateTotalFee as _ } from "../../functions/utils/fees.utils.mjs";
20
- import { constructSolanaZkProof as v } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
21
- import { solanaTransactCallRelayer as y } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
22
- import { ethers as b } from "ethers";
18
+ import { calculateTotalFee as g } from "../../functions/utils/fees.utils.mjs";
19
+ import { constructSolanaZkProof as _ } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
20
+ import { solanaTransactCallRelayer as v } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
21
+ import { ethers as y } from "ethers";
23
22
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaTransfer.ts
24
- var x = async (e, t, n, r, i, a) => {
23
+ var b = async (e, t, n, r, i, a) => {
25
24
  let o = (await u(e, t, n, r, 6))[0], s = c().toString(), { outputUtxos: l } = d(e.userKeys, o, r[0], s, !0, i, a);
26
25
  return {
27
26
  inputUtxos: o,
28
27
  senderUtxo: l[0],
29
28
  recipientUtxo: l[1]
30
29
  };
31
- }, S = async (c, u, d, y, S, C, w) => {
32
- if (!i(y)) throw Error(a.RECIPIENT_FORMAT_INCORRECT);
33
- let T = l(u), E = [...d], { originalDeployer: D } = t[T].contractData;
34
- if (!D) throw Error("missing data");
35
- let { userKeys: O, merkleTreeHinkalByChain: k } = c, A = u.map((e) => e.erc20TokenAddress);
36
- if (A.length > 1) throw Error("Solana Transfer: Only one mint address is supported");
37
- let j = C ?? await h(T, S, A, e.Transact, [], 5n);
38
- j.variableRate ||= n;
39
- let M = _(-E[0], j), N = -E[0];
40
- E[0] -= M;
41
- let [P, F, { inputUtxos: I, senderUtxo: L, recipientUtxo: R }] = await Promise.all([
42
- c.getRandomRelay(T, !0),
43
- c.getEthereumAddressByChain(T),
44
- x(c, T, A, E, y, N)
30
+ }, x = async (c, u, d, v, x, S, C) => {
31
+ if (!i(v)) throw Error(a.RECIPIENT_FORMAT_INCORRECT);
32
+ let w = l(u), T = [...d], { originalDeployer: E } = t[w].contractData;
33
+ if (!E) throw Error("missing data");
34
+ let { userKeys: D, merkleTreeHinkalByChain: O } = c, k = u.map((e) => e.erc20TokenAddress);
35
+ if (k.length > 1) throw Error("Solana Transfer: Only one mint address is supported");
36
+ let A = S ?? await h(w, x, k, e.Transact, [], 5n);
37
+ A.variableRate ||= n;
38
+ let j = g(-T[0], A), M = -T[0];
39
+ T[0] -= j;
40
+ let [N, P, { inputUtxos: F, senderUtxo: I, recipientUtxo: L }] = await Promise.all([
41
+ c.getRandomRelay(w, !0),
42
+ c.getEthereumAddressByChain(w),
43
+ b(c, w, k, T, v, M)
45
44
  ]);
46
- if (!P) throw Error(a.RELAYER_NOT_AVAILABLE);
47
- let z = s.findCorrectRandomization(o(31), c.userKeys.getShieldedPrivateKey()), B = {
48
- tokenNumber: A.length,
49
- nullifierAmount: I.length,
45
+ if (!N) throw Error(a.RELAYER_NOT_AVAILABLE);
46
+ let R = s.findCorrectRandomization(o(31), c.userKeys.getShieldedPrivateKey()), z = {
47
+ tokenNumber: k.length,
48
+ nullifierAmount: F.length,
50
49
  outputAmount: 2
51
- }, V = f([[L, R]])[0].map((e) => Array.from(b.getBytes(e)));
52
- m([I], [[L]], E);
53
- let [{ proofAArr: H, proofBArr: U, proofCArr: W, publicInputsArr: G }, K] = await Promise.all([v(c.generateProofRemotely, k[T], O, [A[0]], [I], [[L, R]], z, M, 0n, r, P, B, V, T), g(T, O, A, [I])]), q = {
54
- recipient: P,
55
- mint: A[0] === "11111111111111111111111111111111" ? void 0 : A[0]
50
+ }, B = f([[I, L]])[0].map((e) => Array.from(y.getBytes(e)));
51
+ m([F], [[I]], T);
52
+ let { proofAArr: V, proofBArr: H, proofCArr: U, publicInputsArr: W, commitmentValidationData: G } = await _(c.generateProofRemotely, O[w], D, [k[0]], [F], [[I, L]], R, j, 0n, r, N, z, B, w), K = {
53
+ recipient: N,
54
+ mint: k[0] === "11111111111111111111111111111111" ? void 0 : k[0]
56
55
  };
57
56
  return {
58
- chainId: T,
59
- relay: P,
57
+ chainId: w,
58
+ relay: N,
60
59
  args: {
61
- proofAArr: H,
62
- proofBArr: U,
63
- proofCArr: W,
64
- publicInputsArr: G,
65
- encryptedOutputs: V,
66
- relayerFee: M.toString(),
67
- dimensions: B
60
+ proofAArr: V,
61
+ proofBArr: H,
62
+ proofCArr: U,
63
+ publicInputsArr: W,
64
+ encryptedOutputs: B,
65
+ relayerFee: j.toString(),
66
+ dimensions: z
68
67
  },
69
- accounts: q,
70
- adminData: p(w, T, A, E, F),
71
- commitmentValidationData: K,
72
- recipientUtxo: R
68
+ accounts: K,
69
+ adminData: p(C, w, k, T, P),
70
+ commitmentValidationData: G,
71
+ recipientUtxo: L
73
72
  };
74
- }, C = async (e, t, n, r, i, a, o, s = !1) => {
73
+ }, S = async (e, t, n, r, i, a, o, s = !1) => {
75
74
  if (s) throw Error("onlyGasEstimate is not supported for Solana transfer");
76
- let c = await S(e, t, n, r, i, a, o);
77
- return y({
75
+ let c = await x(e, t, n, r, i, a, o);
76
+ return v({
78
77
  chainId: c.chainId,
79
78
  relayAddress: c.relay,
80
79
  functionName: "transfer",
@@ -85,4 +84,4 @@ var x = async (e, t, n, r, i, a) => {
85
84
  });
86
85
  };
87
86
  //#endregion
88
- export { S as buildSolanaTransferPlan, C as hinkalSolanaTransfer };
87
+ export { x as buildSolanaTransferPlan, S as hinkalSolanaTransfer };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`),require(`../../types/index.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`);require(`../../constants/index.cjs`);const i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/web3/events/getShieldedBalance.cjs`),c=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),l=require(`../../functions/snarkjs/common.snarkjs.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let _=require(`ethers`);var v=async(e,t,n,r)=>{let i=[...await s.addPaddingToUtxos(e,t,n,r,6)][0],o=a.getCurrentTimeInSeconds().toString(),{outputUtxos:l}=c.outputUtxoProcessing(e.userKeys,i,r[0],o);return{inputUtxos:i,outputUtxos:l}},y=async(a,s,c,y,b,x,S)=>{let C=o.validateAndGetChainId(s),w=s.map(e=>e.erc20TokenAddress),T=s[0];if(!T)throw Error(`Solana Withdraw: No Token Found`);let{originalDeployer:E}=t.networkRegistry[C].contractData;if(!E)throw Error(`missing data`);let{userKeys:D,merkleTreeHinkalByChain:O}=a,k=x??await f.getFeeStructure(C,b,w,e.ExternalActionId.Transact),A=await m.calculateModifiedFeeStructure(C,T,-c[0],k);c[0]-=A.flatFee;let[j,{inputUtxos:M,outputUtxos:N}]=await Promise.all([a.getRandomRelay(C,!0),v(a,C,w,c)]);if(!j)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);if(w.length>1)throw Error(`Solana Withdraw: Only one mint address is supported`);let P=i.UserKeys.findCorrectRandomization(r.randomBigInt(31),a.userKeys.getShieldedPrivateKey()),F={tokenNumber:w.length,nullifierAmount:M.length,outputAmount:N.length},I=l.calcEncryptedOutputs([N])[0][0],L=Array.from(_.ethers.getBytes(I));d.ensureAmountChanges([M],[N],c);let[{proofAArr:R,proofBArr:z,proofCArr:B,publicInputsArr:V},H]=await Promise.all([h.constructSolanaZkProof(a.generateProofRemotely,O[C],D,[w[0]],[M],[N],P,A.flatFee,A.variableRate,y,j,F,[L],C),p.buildCommitmentValidationData(C,D,w,[M])]),U={recipient:y,mint:w[0]===`11111111111111111111111111111111`?void 0:w[0]};return g.solanaTransactCallRelayer({chainId:C,relayAddress:j,functionName:`transact`,args:{proofAArr:R,proofBArr:z,proofCArr:B,publicInputsArr:V,encryptedOutputs:[L],relayerFee:A.flatFee.toString(),dimensions:F},accounts:U,commitmentValidationData:H,adminData:u.constructAdminData(S,C,w,c,await a.getEthereumAddress())})};exports.hinkalSolanaWithdraw=y;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`),require(`../../types/index.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`);require(`../../constants/index.cjs`);const i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/token-check.utils.cjs`),s=require(`../../functions/web3/events/getShieldedBalance.cjs`),c=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),l=require(`../../functions/snarkjs/common.snarkjs.cjs`),u=require(`../../functions/pre-transaction/constructAdminData.cjs`),d=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const p=require(`../../functions/utils/fees.utils.cjs`),m=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),h=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let g=require(`ethers`);var _=async(e,t,n,r)=>{let i=[...await s.addPaddingToUtxos(e,t,n,r,6)][0],o=a.getCurrentTimeInSeconds().toString(),{outputUtxos:l}=c.outputUtxoProcessing(e.userKeys,i,r[0],o);return{inputUtxos:i,outputUtxos:l}},v=async(a,s,c,v,y,b,x)=>{let S=o.validateAndGetChainId(s),C=s.map(e=>e.erc20TokenAddress),w=s[0];if(!w)throw Error(`Solana Withdraw: No Token Found`);let{originalDeployer:T}=t.networkRegistry[S].contractData;if(!T)throw Error(`missing data`);let{userKeys:E,merkleTreeHinkalByChain:D}=a,O=b??await f.getFeeStructure(S,y,C,e.ExternalActionId.Transact),k=await p.calculateModifiedFeeStructure(S,w,-c[0],O);c[0]-=k.flatFee;let[A,{inputUtxos:j,outputUtxos:M}]=await Promise.all([a.getRandomRelay(S,!0),_(a,S,C,c)]);if(!A)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);if(C.length>1)throw Error(`Solana Withdraw: Only one mint address is supported`);let N=i.UserKeys.findCorrectRandomization(r.randomBigInt(31),a.userKeys.getShieldedPrivateKey()),P={tokenNumber:C.length,nullifierAmount:j.length,outputAmount:M.length},F=l.calcEncryptedOutputs([M])[0][0],I=Array.from(g.ethers.getBytes(F));d.ensureAmountChanges([j],[M],c);let{proofAArr:L,proofBArr:R,proofCArr:z,publicInputsArr:B,commitmentValidationData:V}=await m.constructSolanaZkProof(a.generateProofRemotely,D[S],E,[C[0]],[j],[M],N,k.flatFee,k.variableRate,v,A,P,[I],S),H={recipient:v,mint:C[0]===`11111111111111111111111111111111`?void 0:C[0]};return h.solanaTransactCallRelayer({chainId:S,relayAddress:A,functionName:`transact`,args:{proofAArr:L,proofBArr:R,proofCArr:z,publicInputsArr:B,encryptedOutputs:[I],relayerFee:k.flatFee.toString(),dimensions:P},accounts:H,commitmentValidationData:V,adminData:u.constructAdminData(x,S,C,c,await a.getEthereumAddress())})};exports.hinkalSolanaWithdraw=v;
@@ -14,56 +14,55 @@ import { calcEncryptedOutputs as l } from "../../functions/snarkjs/common.snarkj
14
14
  import { constructAdminData as u } from "../../functions/pre-transaction/constructAdminData.mjs";
15
15
  import { ensureAmountChanges as d } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
16
16
  import { getFeeStructure as f } from "../../functions/pre-transaction/getFeeStructure.mjs";
17
- import { buildCommitmentValidationData as p } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
18
17
  import "../../functions/pre-transaction/index.mjs";
19
- import { calculateModifiedFeeStructure as m } from "../../functions/utils/fees.utils.mjs";
20
- import { constructSolanaZkProof as h } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
21
- import { solanaTransactCallRelayer as g } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
22
- import { ethers as _ } from "ethers";
18
+ import { calculateModifiedFeeStructure as p } from "../../functions/utils/fees.utils.mjs";
19
+ import { constructSolanaZkProof as m } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
20
+ import { solanaTransactCallRelayer as h } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
21
+ import { ethers as g } from "ethers";
23
22
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.ts
24
- var v = async (e, t, n, r) => {
23
+ var _ = async (e, t, n, r) => {
25
24
  let i = [...await s(e, t, n, r, 6)][0], o = a().toString(), { outputUtxos: l } = c(e.userKeys, i, r[0], o);
26
25
  return {
27
26
  inputUtxos: i,
28
27
  outputUtxos: l
29
28
  };
30
- }, y = async (a, s, c, y, b, x, S) => {
31
- let C = o(s), w = s.map((e) => e.erc20TokenAddress), T = s[0];
32
- if (!T) throw Error("Solana Withdraw: No Token Found");
33
- let { originalDeployer: E } = t[C].contractData;
34
- if (!E) throw Error("missing data");
35
- let { userKeys: D, merkleTreeHinkalByChain: O } = a, k = x ?? await f(C, b, w, e.Transact), A = await m(C, T, -c[0], k);
36
- c[0] -= A.flatFee;
37
- let [j, { inputUtxos: M, outputUtxos: N }] = await Promise.all([a.getRandomRelay(C, !0), v(a, C, w, c)]);
38
- if (!j) throw Error(n.RELAYER_NOT_AVAILABLE);
39
- if (w.length > 1) throw Error("Solana Withdraw: Only one mint address is supported");
40
- let P = i.findCorrectRandomization(r(31), a.userKeys.getShieldedPrivateKey()), F = {
41
- tokenNumber: w.length,
42
- nullifierAmount: M.length,
43
- outputAmount: N.length
44
- }, I = l([N])[0][0], L = Array.from(_.getBytes(I));
45
- d([M], [N], c);
46
- let [{ proofAArr: R, proofBArr: z, proofCArr: B, publicInputsArr: V }, H] = await Promise.all([h(a.generateProofRemotely, O[C], D, [w[0]], [M], [N], P, A.flatFee, A.variableRate, y, j, F, [L], C), p(C, D, w, [M])]), U = {
47
- recipient: y,
48
- mint: w[0] === "11111111111111111111111111111111" ? void 0 : w[0]
29
+ }, v = async (a, s, c, v, y, b, x) => {
30
+ let S = o(s), C = s.map((e) => e.erc20TokenAddress), w = s[0];
31
+ if (!w) throw Error("Solana Withdraw: No Token Found");
32
+ let { originalDeployer: T } = t[S].contractData;
33
+ if (!T) throw Error("missing data");
34
+ let { userKeys: E, merkleTreeHinkalByChain: D } = a, O = b ?? await f(S, y, C, e.Transact), k = await p(S, w, -c[0], O);
35
+ c[0] -= k.flatFee;
36
+ let [A, { inputUtxos: j, outputUtxos: M }] = await Promise.all([a.getRandomRelay(S, !0), _(a, S, C, c)]);
37
+ if (!A) throw Error(n.RELAYER_NOT_AVAILABLE);
38
+ if (C.length > 1) throw Error("Solana Withdraw: Only one mint address is supported");
39
+ let N = i.findCorrectRandomization(r(31), a.userKeys.getShieldedPrivateKey()), P = {
40
+ tokenNumber: C.length,
41
+ nullifierAmount: j.length,
42
+ outputAmount: M.length
43
+ }, F = l([M])[0][0], I = Array.from(g.getBytes(F));
44
+ d([j], [M], c);
45
+ let { proofAArr: L, proofBArr: R, proofCArr: z, publicInputsArr: B, commitmentValidationData: V } = await m(a.generateProofRemotely, D[S], E, [C[0]], [j], [M], N, k.flatFee, k.variableRate, v, A, P, [I], S), H = {
46
+ recipient: v,
47
+ mint: C[0] === "11111111111111111111111111111111" ? void 0 : C[0]
49
48
  };
50
- return g({
51
- chainId: C,
52
- relayAddress: j,
49
+ return h({
50
+ chainId: S,
51
+ relayAddress: A,
53
52
  functionName: "transact",
54
53
  args: {
55
- proofAArr: R,
56
- proofBArr: z,
57
- proofCArr: B,
58
- publicInputsArr: V,
59
- encryptedOutputs: [L],
60
- relayerFee: A.flatFee.toString(),
61
- dimensions: F
54
+ proofAArr: L,
55
+ proofBArr: R,
56
+ proofCArr: z,
57
+ publicInputsArr: B,
58
+ encryptedOutputs: [I],
59
+ relayerFee: k.flatFee.toString(),
60
+ dimensions: P
62
61
  },
63
- accounts: U,
64
- commitmentValidationData: H,
65
- adminData: u(S, C, w, c, await a.getEthereumAddress())
62
+ accounts: H,
63
+ commitmentValidationData: V,
64
+ adminData: u(x, S, C, c, await a.getEthereumAddress())
66
65
  });
67
66
  };
68
67
  //#endregion
69
- export { y as hinkalSolanaWithdraw };
68
+ export { v as hinkalSolanaWithdraw };
@@ -1 +1 @@
1
- require(`../../constants/protocol.constants.cjs`);const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../functions/utils/time.utils.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`),r=require(`../../functions/web3/events/getShieldedBalance.cjs`),i=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),a=require(`../../functions/pre-transaction/constructAdminData.cjs`),o=require(`../../functions/pre-transaction/getFeeStructure.cjs`),s=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const c=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),l=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),u=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),d=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var f=async(e,n,a,o)=>{let s=[...await r.addPaddingToUtxos(e,n,a,o)],c=[],l=t.getCurrentTimeInSeconds().toString();for(let t=0;t<a.length;t+=1){let{outputUtxos:n}=i.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},p=async(t,r,i,p,m,h,g,_)=>{let v=n.validateAndGetChainId(r),y=r.map(e=>e.erc20TokenAddress),b=await t.getEthereumAddressByChain(v),x=g??await o.getFeeStructure(v,h,y,p,void 0,35n);d.mergeWithFeeStructure(v,y,i,x);let S={externalActionId:p,externalAddress:u.getExternalSwapAddress(v,p),externalActionMetadata:m},[C,{inputUtxosArray:w,outputUtxosArray:T}]=await Promise.all([t.getRandomRelay(v,!0),f(t,v,y,i)]);if(!C)throw Error(e.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let E=[!1,!0,!1].slice(0,i.length),[{zkCallData:D,circomData:O,dimData:k},A]=await Promise.all([c.constructZkProof(t.merkleTreeHinkalByChain[v],w,T,t.userKeys,S.externalActionId,S.externalAddress,S.externalActionMetadata,t.generateProofRemotely,x,C,v,E),s.buildCommitmentValidationData(v,t.userKeys,y,w)]);return await l.transactCallRelayer(v,D,k,O,A,void 0,void 0,a.constructAdminData(_,v,y,i,b,r))};exports.hinkalSwap=p;
1
+ require(`../../constants/protocol.constants.cjs`);const e=require(`../../error-handling/error-codes.constants.cjs`),t=require(`../../functions/utils/time.utils.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`),r=require(`../../functions/web3/events/getShieldedBalance.cjs`),i=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),a=require(`../../functions/pre-transaction/constructAdminData.cjs`),o=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const s=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),c=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),l=require(`../../functions/pre-transaction/getExternalSwapAddress.cjs`),u=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var d=async(e,n,a,o)=>{let s=[...await r.addPaddingToUtxos(e,n,a,o)],c=[],l=t.getCurrentTimeInSeconds().toString();for(let t=0;t<a.length;t+=1){let{outputUtxos:n}=i.outputUtxoProcessing(e.userKeys,s[t],o[t],l);c.push(n)}return{inputUtxosArray:s,outputUtxosArray:c}},f=async(t,r,i,f,p,m,h,g)=>{let _=n.validateAndGetChainId(r),v=r.map(e=>e.erc20TokenAddress),y=await t.getEthereumAddressByChain(_),b=h??await o.getFeeStructure(_,m,v,f,void 0,35n);u.mergeWithFeeStructure(_,v,i,b);let x={externalActionId:f,externalAddress:l.getExternalSwapAddress(_,f),externalActionMetadata:p},[S,{inputUtxosArray:C,outputUtxosArray:w}]=await Promise.all([t.getRandomRelay(_,!0),d(t,_,v,i)]);if(!S)throw Error(e.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let T=[!1,!0,!1].slice(0,i.length),{zkCallData:E,circomData:D,dimData:O,commitmentValidationData:k}=await s.constructZkProof(t.merkleTreeHinkalByChain[_],C,w,t.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,t.generateProofRemotely,b,S,_,T);return await c.transactCallRelayer(_,E,O,D,k,void 0,void 0,a.constructAdminData(g,_,v,i,y,r))};exports.hinkalSwap=f;
@@ -6,14 +6,13 @@ import { addPaddingToUtxos as r } from "../../functions/web3/events/getShieldedB
6
6
  import { outputUtxoProcessing as i } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
7
7
  import { constructAdminData as a } from "../../functions/pre-transaction/constructAdminData.mjs";
8
8
  import { getFeeStructure as o } from "../../functions/pre-transaction/getFeeStructure.mjs";
9
- import { buildCommitmentValidationData as s } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
10
9
  import "../../functions/pre-transaction/index.mjs";
11
- import { constructZkProof as c } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
12
- import { transactCallRelayer as l } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
13
- import { getExternalSwapAddress as u } from "../../functions/pre-transaction/getExternalSwapAddress.mjs";
14
- import { mergeWithFeeStructure as d } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
10
+ import { constructZkProof as s } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
11
+ import { transactCallRelayer as c } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
12
+ import { getExternalSwapAddress as l } from "../../functions/pre-transaction/getExternalSwapAddress.mjs";
13
+ import { mergeWithFeeStructure as u } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
15
14
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSwap.ts
16
- var f = async (e, n, a, o) => {
15
+ var d = async (e, n, a, o) => {
17
16
  let s = [...await r(e, n, a, o)], c = [], l = t().toString();
18
17
  for (let t = 0; t < a.length; t += 1) {
19
18
  let { outputUtxos: n } = i(e.userKeys, s[t], o[t], l);
@@ -23,21 +22,21 @@ var f = async (e, n, a, o) => {
23
22
  inputUtxosArray: s,
24
23
  outputUtxosArray: c
25
24
  };
26
- }, p = async (t, r, i, p, m, h, g, _) => {
27
- let v = n(r), y = r.map((e) => e.erc20TokenAddress), b = await t.getEthereumAddressByChain(v), x = g ?? await o(v, h, y, p, void 0, 35n);
28
- d(v, y, i, x);
29
- let S = {
30
- externalActionId: p,
31
- externalAddress: u(v, p),
32
- externalActionMetadata: m
33
- }, [C, { inputUtxosArray: w, outputUtxosArray: T }] = await Promise.all([t.getRandomRelay(v, !0), f(t, v, y, i)]);
34
- if (!C) throw Error(e.RELAYER_NOT_AVAILABLE);
35
- let E = [
25
+ }, f = async (t, r, i, f, p, m, h, g) => {
26
+ let _ = n(r), v = r.map((e) => e.erc20TokenAddress), y = await t.getEthereumAddressByChain(_), b = h ?? await o(_, m, v, f, void 0, 35n);
27
+ u(_, v, i, b);
28
+ let x = {
29
+ externalActionId: f,
30
+ externalAddress: l(_, f),
31
+ externalActionMetadata: p
32
+ }, [S, { inputUtxosArray: C, outputUtxosArray: w }] = await Promise.all([t.getRandomRelay(_, !0), d(t, _, v, i)]);
33
+ if (!S) throw Error(e.RELAYER_NOT_AVAILABLE);
34
+ let T = [
36
35
  !1,
37
36
  !0,
38
37
  !1
39
- ].slice(0, i.length), [{ zkCallData: D, circomData: O, dimData: k }, A] = await Promise.all([c(t.merkleTreeHinkalByChain[v], w, T, t.userKeys, S.externalActionId, S.externalAddress, S.externalActionMetadata, t.generateProofRemotely, x, C, v, E), s(v, t.userKeys, y, w)]);
40
- return await l(v, D, k, O, A, void 0, void 0, a(_, v, y, i, b, r));
38
+ ].slice(0, i.length), { zkCallData: E, circomData: D, dimData: O, commitmentValidationData: k } = await s(t.merkleTreeHinkalByChain[_], C, w, t.userKeys, x.externalActionId, x.externalAddress, x.externalActionMetadata, t.generateProofRemotely, b, S, _, T);
39
+ return await c(_, E, O, D, k, void 0, void 0, a(g, _, v, i, y, r));
41
40
  };
42
41
  //#endregion
43
- export { p as hinkalSwap };
42
+ export { f as hinkalSwap };
@@ -1 +1 @@
1
- const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var v=async(e,t,n,r,i,o)=>{let s=[...await c.addPaddingToUtxos(e,t,n,r)],u=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,s[t],r[t],d,!0,i,t===0?o:0n);u.push(n)}return{inputUtxosArray:s,outputUtxosArray:u}},y=async(a,c,l,y,b,x,S)=>{let C=s.validateAndGetChainId(c),w=t.isTronLike(C);if(!r.isValidPrivateAddress(y))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let T=o.addressToHexFormat(await a.getEthereumAddressByChain(C)),E=c.map(e=>e.erc20TokenAddress),D=await u.modifyVolatileTokenAmountChanges(C,c,l),O=x??await f.getFeeStructure(C,b,E,e.ExternalActionId.Transact,[],5n);O.variableRate||=n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let k=c[0];if(!k)throw Error(`Transfer Action: No Token Found`);let A=-D[0],j=await m.calculateModifiedFeeStructure(C,k,A,O);_.mergeWithFeeStructure(C,E,D,j);let[M,{inputUtxosArray:N,outputUtxosArray:P}]=await Promise.all([a.getRandomRelay(C,!0),v(a,C,E,D,y,A)]);if(!M)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let F={externalActionId:0n,externalAddress:M,externalActionMetadata:`0x00`},[{zkCallData:I,circomData:L,dimData:R},z]=await Promise.all([h.constructZkProof(a.merkleTreeHinkalByChain[C],N,P,a.userKeys,F.externalActionId,F.externalAddress,F.externalActionMetadata,a.generateProofRemotely,j,M,C),p.buildCommitmentValidationData(C,a.userKeys,E,N)]),B=await o.reorderZkCallData(w,I,R,L);return await g.transactCallRelayer(C,I,R,L,z,void 0,void 0,d.constructAdminData(S,C,E,D,T),B)};exports.hinkalTransfer=y;
1
+ const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/addresses.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const p=require(`../../functions/utils/fees.utils.cjs`),m=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),h=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),g=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var _=async(e,t,n,r,i,o)=>{let s=[...await c.addPaddingToUtxos(e,t,n,r)],u=[],d=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,s[t],r[t],d,!0,i,t===0?o:0n);u.push(n)}return{inputUtxosArray:s,outputUtxosArray:u}},v=async(a,c,l,v,y,b,x)=>{let S=s.validateAndGetChainId(c),C=t.isTronLike(S);if(!r.isValidPrivateAddress(v))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let w=o.addressToHexFormat(await a.getEthereumAddressByChain(S)),T=c.map(e=>e.erc20TokenAddress),E=await u.modifyVolatileTokenAmountChanges(S,c,l),D=b??await f.getFeeStructure(S,y,T,e.ExternalActionId.Transact,[],5n);D.variableRate||=n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let O=c[0];if(!O)throw Error(`Transfer Action: No Token Found`);let k=-E[0],A=await p.calculateModifiedFeeStructure(S,O,k,D);g.mergeWithFeeStructure(S,T,E,A);let[j,{inputUtxosArray:M,outputUtxosArray:N}]=await Promise.all([a.getRandomRelay(S,!0),_(a,S,T,E,v,k)]);if(!j)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let P={externalActionId:0n,externalAddress:j,externalActionMetadata:`0x00`},{zkCallData:F,circomData:I,dimData:L,commitmentValidationData:R}=await m.constructZkProof(a.merkleTreeHinkalByChain[S],M,N,a.userKeys,P.externalActionId,P.externalAddress,P.externalActionMetadata,a.generateProofRemotely,A,j,S),z=await o.reorderZkCallData(C,F,L,I);return await h.transactCallRelayer(S,F,L,I,R,void 0,void 0,d.constructAdminData(x,S,T,E,w),z)};exports.hinkalTransfer=v;
@@ -11,14 +11,13 @@ import { outputUtxoProcessing as u } from "../../functions/pre-transaction/outpu
11
11
  import { modifyVolatileTokenAmountChanges as d } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
12
12
  import { constructAdminData as f } from "../../functions/pre-transaction/constructAdminData.mjs";
13
13
  import { getFeeStructure as p } from "../../functions/pre-transaction/getFeeStructure.mjs";
14
- import { buildCommitmentValidationData as m } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
15
14
  import "../../functions/pre-transaction/index.mjs";
16
- import { calculateModifiedFeeStructure as h } from "../../functions/utils/fees.utils.mjs";
17
- import { constructZkProof as g } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
18
- import { transactCallRelayer as _ } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
19
- import { mergeWithFeeStructure as v } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
15
+ import { calculateModifiedFeeStructure as m } from "../../functions/utils/fees.utils.mjs";
16
+ import { constructZkProof as h } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
17
+ import { transactCallRelayer as g } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
18
+ import { mergeWithFeeStructure as _ } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
20
19
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalTransfer.ts
21
- var y = async (e, t, n, r, i, o) => {
20
+ var v = async (e, t, n, r, i, o) => {
22
21
  let s = [...await l(e, t, n, r)], c = [], d = a().toString();
23
22
  for (let t = 0; t < n.length; t += 1) {
24
23
  let { outputUtxos: n } = u(e.userKeys, s[t], r[t], d, !0, i, t === 0 ? o : 0n);
@@ -28,23 +27,23 @@ var y = async (e, t, n, r, i, o) => {
28
27
  inputUtxosArray: s,
29
28
  outputUtxosArray: c
30
29
  };
31
- }, b = async (a, l, u, b, x, S, C) => {
32
- let w = c(l), T = t(w);
33
- if (!r(b)) throw Error(i.RECIPIENT_FORMAT_INCORRECT);
34
- let E = o(await a.getEthereumAddressByChain(w)), D = l.map((e) => e.erc20TokenAddress), O = await d(w, l, u), k = S ?? await p(w, x, D, e.Transact, [], 5n);
35
- k.variableRate ||= n;
36
- let A = l[0];
37
- if (!A) throw Error("Transfer Action: No Token Found");
38
- let j = -O[0], M = await h(w, A, j, k);
39
- v(w, D, O, M);
40
- let [N, { inputUtxosArray: P, outputUtxosArray: F }] = await Promise.all([a.getRandomRelay(w, !0), y(a, w, D, O, b, j)]);
41
- if (!N) throw Error(i.RELAYER_NOT_AVAILABLE);
42
- let I = {
30
+ }, y = async (a, l, u, y, b, x, S) => {
31
+ let C = c(l), w = t(C);
32
+ if (!r(y)) throw Error(i.RECIPIENT_FORMAT_INCORRECT);
33
+ let T = o(await a.getEthereumAddressByChain(C)), E = l.map((e) => e.erc20TokenAddress), D = await d(C, l, u), O = x ?? await p(C, b, E, e.Transact, [], 5n);
34
+ O.variableRate ||= n;
35
+ let k = l[0];
36
+ if (!k) throw Error("Transfer Action: No Token Found");
37
+ let A = -D[0], j = await m(C, k, A, O);
38
+ _(C, E, D, j);
39
+ let [M, { inputUtxosArray: N, outputUtxosArray: P }] = await Promise.all([a.getRandomRelay(C, !0), v(a, C, E, D, y, A)]);
40
+ if (!M) throw Error(i.RELAYER_NOT_AVAILABLE);
41
+ let F = {
43
42
  externalActionId: 0n,
44
- externalAddress: N,
43
+ externalAddress: M,
45
44
  externalActionMetadata: "0x00"
46
- }, [{ zkCallData: L, circomData: R, dimData: z }, B] = await Promise.all([g(a.merkleTreeHinkalByChain[w], P, F, a.userKeys, I.externalActionId, I.externalAddress, I.externalActionMetadata, a.generateProofRemotely, M, N, w), m(w, a.userKeys, D, P)]), V = await s(T, L, z, R);
47
- return await _(w, L, z, R, B, void 0, void 0, f(C, w, D, O, E), V);
45
+ }, { zkCallData: I, circomData: L, dimData: R, commitmentValidationData: z } = await h(a.merkleTreeHinkalByChain[C], N, P, a.userKeys, F.externalActionId, F.externalAddress, F.externalActionMetadata, a.generateProofRemotely, j, M, C), B = await s(w, I, R, L);
46
+ return await g(C, I, R, L, z, void 0, void 0, f(S, C, E, D, T), B);
48
47
  };
49
48
  //#endregion
50
- export { b as hinkalTransfer };
49
+ export { y as hinkalTransfer };
@@ -1 +1 @@
1
- const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/hinkal.types.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),_=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),v=require(`../../functions/web3/functionCalls/transactCallDirectTron.cjs`),y=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var b=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(a,c,l,x,S,C,w,T)=>{let E=s.validateAndGetChainId(c),D=t.isTronLike(E),O=o.addressToHexFormat(await a.getEthereumAddressByChain(E)),k=c.map(e=>e.erc20TokenAddress),A=await u.modifyVolatileTokenAmountChanges(E,c,l),j=c[0];if(!j)throw Error(`Deposit Action: No Token Found`);let M;if(!S){let t=w??await f.getFeeStructure(E,C,k,e.ExternalActionId.Transact);M=await m.calculateModifiedFeeStructure(E,j,-A[0],t),y.mergeWithFeeStructure(E,k,A,M)}let N={externalActionId:0n,externalAddress:o.addressToHexFormat(x),externalActionMetadata:`0x00`},[P,{inputUtxosArray:F,outputUtxosArray:I}]=await Promise.all([a.getRandomRelay(E,!0),b(a,E,k,A)]);if(!S&&!P)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let[{zkCallData:L,circomData:R,dimData:z},B]=await Promise.all([h.constructZkProof(a.merkleTreeHinkalByChain[E],F,I,a.userKeys,N.externalActionId,N.externalAddress,N.externalActionMetadata,a.generateProofRemotely,M??r.zeroFeeStructure,S?n.zeroAddress:P,E,void 0,void 0,S?O:void 0),p.buildCommitmentValidationData(E,a.userKeys,k,F)]),V=D&&S?void 0:await o.reorderZkCallData(D,L,z,R);if(S){if(!j)throw Error(`Withdraw Action: No Token Found`);return D?await v.transactCallDirectTron(a,E,A[0],j,L,R,z):await g.transactCallDirect(a,E,A[0],j,L,R,z)}return await _.transactCallRelayer(E,L,z,R,B,void 0,void 0,d.constructAdminData(T,E,k,A,O),V)};exports.hinkalWithdraw=x;
1
+ const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/hinkal.types.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../../functions/utils/tron.utils.cjs`),s=require(`../../functions/utils/token-check.utils.cjs`),c=require(`../../functions/web3/events/getShieldedBalance.cjs`),l=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),u=require(`../../functions/pre-transaction/getVolatileTransferAmount.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const p=require(`../../functions/utils/fees.utils.cjs`),m=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../functions/web3/functionCalls/transactCallDirectTron.cjs`),v=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);var y=async(e,t,n,r)=>{let i=[...await c.addPaddingToUtxos(e,t,n,r)],o=[],s=a.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=l.outputUtxoProcessing(e.userKeys,i[t],r[t],s);o.push(n)}return{inputUtxosArray:i,outputUtxosArray:o}},b=async(a,c,l,b,x,S,C,w)=>{let T=s.validateAndGetChainId(c),E=t.isTronLike(T),D=o.addressToHexFormat(await a.getEthereumAddressByChain(T)),O=c.map(e=>e.erc20TokenAddress),k=await u.modifyVolatileTokenAmountChanges(T,c,l),A=c[0];if(!A)throw Error(`Deposit Action: No Token Found`);let j;if(!x){let t=C??await f.getFeeStructure(T,S,O,e.ExternalActionId.Transact);j=await p.calculateModifiedFeeStructure(T,A,-k[0],t),v.mergeWithFeeStructure(T,O,k,j)}let M={externalActionId:0n,externalAddress:o.addressToHexFormat(b),externalActionMetadata:`0x00`},[N,{inputUtxosArray:P,outputUtxosArray:F}]=await Promise.all([a.getRandomRelay(T,!0),y(a,T,O,k)]);if(!x&&!N)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let{zkCallData:I,circomData:L,dimData:R,commitmentValidationData:z}=await m.constructZkProof(a.merkleTreeHinkalByChain[T],P,F,a.userKeys,M.externalActionId,M.externalAddress,M.externalActionMetadata,a.generateProofRemotely,j??r.zeroFeeStructure,x?n.zeroAddress:N,T,void 0,void 0,x?D:void 0),B=E&&x?void 0:await o.reorderZkCallData(E,I,R,L);if(x){if(!A)throw Error(`Withdraw Action: No Token Found`);return E?await _.transactCallDirectTron(a,T,k[0],A,I,L,R):await h.transactCallDirect(a,T,k[0],A,I,L,R)}return await g.transactCallRelayer(T,I,R,L,z,void 0,void 0,d.constructAdminData(w,T,O,k,D),B)};exports.hinkalWithdraw=b;
@@ -11,16 +11,15 @@ import { outputUtxoProcessing as u } from "../../functions/pre-transaction/outpu
11
11
  import { modifyVolatileTokenAmountChanges as d } from "../../functions/pre-transaction/getVolatileTransferAmount.mjs";
12
12
  import { constructAdminData as f } from "../../functions/pre-transaction/constructAdminData.mjs";
13
13
  import { getFeeStructure as p } from "../../functions/pre-transaction/getFeeStructure.mjs";
14
- import { buildCommitmentValidationData as m } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
15
14
  import "../../functions/pre-transaction/index.mjs";
16
- import { calculateModifiedFeeStructure as h } from "../../functions/utils/fees.utils.mjs";
17
- import { constructZkProof as g } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
18
- import { transactCallDirect as _ } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
19
- import { transactCallRelayer as v } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
20
- import { transactCallDirectTron as y } from "../../functions/web3/functionCalls/transactCallDirectTron.mjs";
21
- import { mergeWithFeeStructure as b } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
15
+ import { calculateModifiedFeeStructure as m } from "../../functions/utils/fees.utils.mjs";
16
+ import { constructZkProof as h } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
17
+ import { transactCallDirect as g } from "../../functions/web3/functionCalls/transactCallDirect.mjs";
18
+ import { transactCallRelayer as _ } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
19
+ import { transactCallDirectTron as v } from "../../functions/web3/functionCalls/transactCallDirectTron.mjs";
20
+ import { mergeWithFeeStructure as y } from "../../functions/pre-transaction/merge-with-fee-structure.mjs";
22
21
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalWithdraw.ts
23
- var x = async (e, t, n, r) => {
22
+ var b = async (e, t, n, r) => {
24
23
  let i = [...await l(e, t, n, r)], o = [], s = a().toString();
25
24
  for (let t = 0; t < n.length; t += 1) {
26
25
  let { outputUtxos: n } = u(e.userKeys, i[t], r[t], s);
@@ -30,26 +29,26 @@ var x = async (e, t, n, r) => {
30
29
  inputUtxosArray: i,
31
30
  outputUtxosArray: o
32
31
  };
33
- }, S = async (a, l, u, S, C, w, T, E) => {
34
- let D = c(l), O = t(D), k = o(await a.getEthereumAddressByChain(D)), A = l.map((e) => e.erc20TokenAddress), j = await d(D, l, u), M = l[0];
35
- if (!M) throw Error("Deposit Action: No Token Found");
36
- let N;
37
- if (!C) {
38
- let t = T ?? await p(D, w, A, e.Transact);
39
- N = await h(D, M, -j[0], t), b(D, A, j, N);
32
+ }, x = async (a, l, u, x, S, C, w, T) => {
33
+ let E = c(l), D = t(E), O = o(await a.getEthereumAddressByChain(E)), k = l.map((e) => e.erc20TokenAddress), A = await d(E, l, u), j = l[0];
34
+ if (!j) throw Error("Deposit Action: No Token Found");
35
+ let M;
36
+ if (!S) {
37
+ let t = w ?? await p(E, C, k, e.Transact);
38
+ M = await m(E, j, -A[0], t), y(E, k, A, M);
40
39
  }
41
- let P = {
40
+ let N = {
42
41
  externalActionId: 0n,
43
- externalAddress: o(S),
42
+ externalAddress: o(x),
44
43
  externalActionMetadata: "0x00"
45
- }, [F, { inputUtxosArray: I, outputUtxosArray: L }] = await Promise.all([a.getRandomRelay(D, !0), x(a, D, A, j)]);
46
- if (!C && !F) throw Error(i.RELAYER_NOT_AVAILABLE);
47
- let [{ zkCallData: R, circomData: z, dimData: B }, V] = await Promise.all([g(a.merkleTreeHinkalByChain[D], I, L, a.userKeys, P.externalActionId, P.externalAddress, P.externalActionMetadata, a.generateProofRemotely, N ?? r, C ? n : F, D, void 0, void 0, C ? k : void 0), m(D, a.userKeys, A, I)]), H = O && C ? void 0 : await s(O, R, B, z);
48
- if (C) {
49
- if (!M) throw Error("Withdraw Action: No Token Found");
50
- return O ? await y(a, D, j[0], M, R, z, B) : await _(a, D, j[0], M, R, z, B);
44
+ }, [P, { inputUtxosArray: F, outputUtxosArray: I }] = await Promise.all([a.getRandomRelay(E, !0), b(a, E, k, A)]);
45
+ if (!S && !P) throw Error(i.RELAYER_NOT_AVAILABLE);
46
+ let { zkCallData: L, circomData: R, dimData: z, commitmentValidationData: B } = await h(a.merkleTreeHinkalByChain[E], F, I, a.userKeys, N.externalActionId, N.externalAddress, N.externalActionMetadata, a.generateProofRemotely, M ?? r, S ? n : P, E, void 0, void 0, S ? O : void 0), V = D && S ? void 0 : await s(D, L, z, R);
47
+ if (S) {
48
+ if (!j) throw Error("Withdraw Action: No Token Found");
49
+ return D ? await v(a, E, A[0], j, L, R, z) : await g(a, E, A[0], j, L, R, z);
51
50
  }
52
- return await v(D, R, B, z, V, void 0, void 0, f(E, D, A, j, k), H);
51
+ return await _(E, L, z, R, B, void 0, void 0, f(T, E, k, A, O), V);
53
52
  };
54
53
  //#endregion
55
- export { S as hinkalWithdraw };
54
+ export { x as hinkalWithdraw };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/amounts.utils.cjs`),a=require(`../../constants/tx-confirmation.constants.cjs`),o=require(`../crypto-keys/keys.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/snarkjs/common.snarkjs.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const _=require(`../../functions/utils/tx-confirmation.utils.cjs`),v=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),y=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),b=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),x=require(`../../functions/pre-transaction/merge-with-fee-structure.cjs`);let S=require(`ethers`);var C=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}=p.outputUtxoProcessing(e.userKeys,i[t],r[t],o);a.push(n)}return{inputUtxosArray:i,outputUtxosArray:a}},w=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}=p.outputUtxoProcessing(e.userKeys,i,r[0],a);return{inputUtxos:i,outputUtxos:o}},T=async(r,i,a,o,s)=>{let c=t.isTronLike(i),u=[a.erc20TokenAddress],d=a.erc20TokenAddress,[f,p]=await Promise.all([h.getFeeStructure(i,d,u,e.ExternalActionId.Transact),r.getRandomRelay(i,!0)]);if(!p)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let m=l.addressToHexFormat(s),_=o-f.flatFee;if(_<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${o}, Fee: ${f.flatFee}`);let y=[-_];x.mergeWithFeeStructure(i,u,y,f);let S={externalActionId:0n,externalAddress:m,externalActionMetadata:`0x00`},{inputUtxosArray:w,outputUtxosArray:T}=await C(r,i,u,y),[{zkCallData:E,circomData:D,dimData:O},k]=await Promise.all([v.constructZkProof(r.merkleTreeHinkalByChain[i],w,T,r.userKeys,S.externalActionId,S.externalAddress,S.externalActionMetadata,r.generateProofRemotely,f,p,i),g.buildCommitmentValidationData(i,r.userKeys,u,w)]);return{tx:await b.transactCallRelayer(i,E,O,D,k,void 0,void 0,void 0,await l.reorderZkCallData(c,E,O,D)),amountToRecipient:_}},E=async(i,a,s,c,l,u)=>{let d=[s.erc20TokenAddress],{originalDeployer:f}=t.networkRegistry[a].contractData;if(!f)throw Error(`missing data`);let{userKeys:p,merkleTreeHinkalByChain:_}=i,v=s.erc20TokenAddress,[x,C]=await Promise.all([h.getFeeStructure(a,v,d,e.ExternalActionId.Transact,void 0,void 0,{mintTo:d[0],recipient:l,nullifierCount:u}),i.getRandomRelay(a,!0)]);if(!C)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let T=c-x.flatFee;if(T<=0n)throw Error(`Insufficient balance to cover fee. Balance: ${c}, Fee: ${x.flatFee}`);let E=[-T];E[0]-=x.flatFee;let{inputUtxos:D,outputUtxos:O}=await w(i,a,d,E),k=o.UserKeys.findCorrectRandomization(r.randomBigInt(31),i.userKeys.getShieldedPrivateKey()),A={tokenNumber:d.length,nullifierAmount:D.length,outputAmount:O.length},j=m.calcEncryptedOutputs([O])[0][0],M=Array.from(S.ethers.getBytes(j)),[{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I},L]=await Promise.all([y.constructSolanaZkProof(i.generateProofRemotely,_[a],p,[d[0]],[D],[O],k,x.flatFee,x.variableRate,l,C,A,[M],a),g.buildCommitmentValidationData(a,p,d,[D])]),R={recipient:l,mint:d[0]===`11111111111111111111111111111111`?void 0:d[0]};return{tx:await b.solanaTransactCallRelayer({chainId:a,relayAddress:C,functionName:`transact`,args:{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I,encryptedOutputs:[M],relayerFee:x.flatFee.toString(),dimensions:A},accounts:R,commitmentValidationData:L}),amountToRecipient:T}},D=async(e,n,r,i,a,o)=>t.isSolanaLike(n)?E(e,n,r,i,a,o):T(e,n,r,i,a),O=async(e,t,n)=>{let r=[],o=d.validateAndGetChainId([t]),s=c.encodeTokenWithId(o,{erc20TokenAddress:t.erc20TokenAddress,tokenId:0});for(;;){await e.resetMerkleTreesIfNecessary([o]);let c=((await u.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:o,allowRemoteDecryption:e.generateProofRemotely}))?.get(s)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount)).slice(0,6),l=i.countTotalAmountInUtxos(c);if(!l)break;let{tx:d}=await D(e,o,t,l,n,c.length);await _.waitForTransactionConfirmation(o,d,{solanaCommitment:`finalized`,evmTimeoutMs:a.RELAYER_TX_CONFIRMATION_TIMEOUT}),r.push(d)}return r};exports.hinkalWithdrawStuckUtxos=O;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../functions/web3/etherFunctions.cjs`),i=require(`../../functions/utils/amounts.utils.cjs`),a=require(`../../constants/tx-confirmation.constants.cjs`),o=require(`../crypto-keys/keys.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/snarkjs/common.snarkjs.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.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}=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}=p.outputUtxoProcessing(e.userKeys,i,r[0],a);return{inputUtxos:i,outputUtxos:o}},w=async(r,i,a,o,s)=>{let c=t.isTronLike(i),u=[a.erc20TokenAddress],d=a.erc20TokenAddress,[f,p]=await Promise.all([h.getFeeStructure(i,d,u,e.ExternalActionId.Transact),r.getRandomRelay(i,!0)]);if(!p)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let m=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];b.mergeWithFeeStructure(i,u,v,f);let x={externalActionId:0n,externalAddress:m,externalActionMetadata:`0x00`},{inputUtxosArray:C,outputUtxosArray:w}=await S(r,i,u,v),{zkCallData:T,circomData:E,dimData:D,commitmentValidationData:O}=await _.constructZkProof(r.merkleTreeHinkalByChain[i],C,w,r.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,r.generateProofRemotely,f,p,i);return{tx:await y.transactCallRelayer(i,T,D,E,O,void 0,void 0,void 0,await l.reorderZkCallData(c,T,D,E)),amountToRecipient:g}},T=async(i,a,s,c,l,u)=>{let d=[s.erc20TokenAddress],{originalDeployer:f}=t.networkRegistry[a].contractData;if(!f)throw Error(`missing data`);let{userKeys:p,merkleTreeHinkalByChain:g}=i,_=s.erc20TokenAddress,[b,S]=await Promise.all([h.getFeeStructure(a,_,d,e.ExternalActionId.Transact,void 0,void 0,{mintTo:d[0],recipient:l,nullifierCount:u}),i.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(i,a,d,T),O=o.UserKeys.findCorrectRandomization(r.randomBigInt(31),i.userKeys.getShieldedPrivateKey()),k={tokenNumber:d.length,nullifierAmount:E.length,outputAmount:D.length},A=m.calcEncryptedOutputs([D])[0][0],j=Array.from(x.ethers.getBytes(A)),{proofAArr:M,proofBArr:N,proofCArr:P,publicInputsArr:F,commitmentValidationData:I}=await v.constructSolanaZkProof(i.generateProofRemotely,g[a],p,[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(e,n,r,i,a,o)=>t.isSolanaLike(n)?T(e,n,r,i,a,o):w(e,n,r,i,a),D=async(e,t,n)=>{let r=[],o=d.validateAndGetChainId([t]),s=c.encodeTokenWithId(o,{erc20TokenAddress:t.erc20TokenAddress,tokenId:0});for(;;){await e.resetMerkleTreesIfNecessary([o]);let c=((await u.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,useBlockedUtxos:!0,chainId:o,allowRemoteDecryption:e.generateProofRemotely}))?.get(s)??[]).filter(e=>e.amount>0n).sort((e,t)=>Number(t.amount-e.amount)).slice(0,6),l=i.countTotalAmountInUtxos(c);if(!l)break;let{tx:d}=await E(e,o,t,l,n,c.length);await g.waitForTransactionConfirmation(o,d,{solanaCommitment:`finalized`,evmTimeoutMs:a.RELAYER_TX_CONFIRMATION_TIMEOUT}),r.push(d)}return r};exports.hinkalWithdrawStuckUtxos=D;