@hinkal/common 0.2.33 → 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 (125) 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 +1 -1
  112. package/webworker/{logError-fCJ4HXQz.js → logError-DZiJbbaT.js} +1 -1
  113. package/webworker/package.json +1 -1
  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/{workerProxy-BNBqYien.js → workerProxy-DQJE57Ye.js} +1 -1
  123. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  124. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  125. package/webworker/zkProofWorkerNode.cjs +1 -1
@@ -17,24 +17,23 @@ import { constructAdminData as y } from "../../functions/pre-transaction/constru
17
17
  import { fetchSolanaTransaction as b } from "../../functions/pre-transaction/sendV0Transaction.mjs";
18
18
  import { getFeeStructure as x } from "../../functions/pre-transaction/getFeeStructure.mjs";
19
19
  import { waitForDepositedUtxosInMerkleTree as S } from "../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs";
20
- import { buildCommitmentValidationData as C } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
21
20
  import "../../functions/pre-transaction/index.mjs";
22
- import { getOnChainUtxosFromReceiptSolana as w } from "../../functions/utils/getUtxosFromReceiptSolana.mjs";
23
- import { calculateModifiedFeeStructure as T, calculateTotalFee as E } from "../../functions/utils/fees.utils.mjs";
21
+ import { getOnChainUtxosFromReceiptSolana as C } from "../../functions/utils/getUtxosFromReceiptSolana.mjs";
22
+ import { calculateModifiedFeeStructure as w, calculateTotalFee as T } from "../../functions/utils/fees.utils.mjs";
24
23
  import "../../functions/web3/index.mjs";
25
- import { constructSolanaZkProof as D } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
26
- import { solanaTransactCallRelayerBatch as O } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
27
- import { safeUpdateDepositAndWithdrawStatus as k, updateDepositAndWithdrawStatus as A } from "../../API/deposit-and-withdraw-status-calls.mjs";
24
+ import { constructSolanaZkProof as E } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
25
+ import { solanaTransactCallRelayerBatch as D } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
26
+ import { safeUpdateDepositAndWithdrawStatus as O, updateDepositAndWithdrawStatus as k } from "../../API/deposit-and-withdraw-status-calls.mjs";
28
27
  import "../../functions/index.mjs";
29
- import { ethers as j } from "ethers";
30
- import { PublicKey as M } from "@solana/web3.js";
31
- import { BN as N } from "@coral-xyz/anchor";
28
+ import { ethers as A } from "ethers";
29
+ import { PublicKey as j } from "@solana/web3.js";
30
+ import { BN as M } from "@coral-xyz/anchor";
32
31
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.ts
33
- var P = (e, r, i, a) => {
32
+ var N = (e, r, i, a) => {
34
33
  let { hinkalIdl: o, hinkalAddress: l, originalDeployer: u } = t[r].contractData;
35
34
  if (!o) throw Error("No IDL configured for Solana program on this network");
36
35
  if (!u) throw Error("missing original deployer");
37
- let f = e.userKeys.getShieldedPrivateKey(), p = e.getSolanaProgram(o), y = e.getSolanaPublicKey(), b = new M(u), x = new M(l), { mintPublicKey: S } = d(i.erc20TokenAddress), C = S.toString(), w = _(x, b), T = v(x, b), E = g(x, b), D = a.map(() => h(m(c.findCorrectRandomization(s(31), f), f, e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint))), O = C === n;
36
+ let f = e.userKeys.getShieldedPrivateKey(), p = e.getSolanaProgram(o), y = e.getSolanaPublicKey(), b = new j(u), x = new j(l), { mintPublicKey: S } = d(i.erc20TokenAddress), C = S.toString(), w = _(x, b), T = v(x, b), E = g(x, b), D = a.map(() => h(m(c.findCorrectRandomization(s(31), f), f, e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint))), O = C === n;
38
37
  return {
39
38
  program: p,
40
39
  publicKey: y,
@@ -47,7 +46,7 @@ var P = (e, r, i, a) => {
47
46
  amounts: a,
48
47
  anchorStealthStructures: D
49
48
  };
50
- }, F = (e) => e.program.methods.multiPaymentDeposit(e.amounts.map((e) => new N(e.toString())), e.anchorStealthStructures, !0).accounts({
49
+ }, P = (e) => e.program.methods.multiPaymentDeposit(e.amounts.map((e) => new M(e.toString())), e.anchorStealthStructures, !0).accounts({
51
50
  mint: e.mint,
52
51
  signer: e.publicKey,
53
52
  signerAta: e.atasValue,
@@ -56,12 +55,12 @@ var P = (e, r, i, a) => {
56
55
  storageVault: e.storageVault,
57
56
  merkleAccount: e.merkleAccount,
58
57
  storageVaultAta: e.atasValue
59
- }), I = async (e, t, n, i, a, o, s) => {
60
- let c = i.map((e) => e + E(e, o)), l = P(e, t, n, c), u = (await A({
58
+ }), F = async (e, t, n, i, a, o, s) => {
59
+ let c = i.map((e) => e + T(e, o)), l = N(e, t, n, c), u = (await k({
61
60
  chainId: t,
62
61
  hashedEthereumAddress: s,
63
62
  phase: r.BEFORE_DEPOSIT
64
- })).id ?? void 0, f = await F(l).rpc(), p = await l.program.provider.connection.getLatestBlockhash();
63
+ })).id ?? void 0, f = await P(l).rpc(), p = await l.program.provider.connection.getLatestBlockhash();
65
64
  await l.program.provider.connection.confirmTransaction({
66
65
  blockhash: p.blockhash,
67
66
  lastValidBlockHeight: p.lastValidBlockHeight,
@@ -69,14 +68,14 @@ var P = (e, r, i, a) => {
69
68
  }, "finalized");
70
69
  let m = await b(l.program.provider.connection, f, "finalized");
71
70
  if (!m) throw Error("Transaction missing");
72
- await k({
71
+ await O({
73
72
  id: u,
74
73
  chainId: t,
75
74
  hashedEthereumAddress: s,
76
75
  phase: r.AFTER_DEPOSIT,
77
76
  depositTxHash: f
78
77
  });
79
- let { compressedAddress: h } = d(n.erc20TokenAddress), g = w(m, l.program, e.userKeys, h), _ = [], v = [...g];
78
+ let { compressedAddress: h } = d(n.erc20TokenAddress), g = C(m, l.program, e.userKeys, h), _ = [], v = [...g];
80
79
  return a.forEach((e, t) => {
81
80
  let n = c[t], r = v.find((e) => e.amount === n);
82
81
  if (!r) throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);
@@ -89,22 +88,22 @@ var P = (e, r, i, a) => {
89
88
  depositTxHash: f,
90
89
  statusId: u
91
90
  };
92
- }, L = async (e, i, a, f, m, h, g, _, v, b, x, S) => {
93
- let w = a.erc20TokenAddress;
91
+ }, I = async (e, i, a, f, m, h, g, _, v, b, x, S) => {
92
+ let C = a.erc20TokenAddress;
94
93
  if (f.length === 0) throw Error("userDepositedUtxos must not be empty");
95
- let { originalDeployer: E } = t[i].contractData;
96
- if (!E) throw Error("missing data");
97
- let A = await e.getRandomRelay(i, !0);
98
- if (!A) throw Error(o.RELAYER_NOT_AVAILABLE);
99
- let M = l().toString(), N = e.generateProofRemotely ? 5 : 1, P = [];
100
- for (let t = 0; t < f.length; t += N) {
101
- let r = f.slice(t, t + N), o = await Promise.all(r.map(async ({ recipientAddress: t, utxo: r }, o) => {
94
+ let { originalDeployer: T } = t[i].contractData;
95
+ if (!T) throw Error("missing data");
96
+ let k = await e.getRandomRelay(i, !0);
97
+ if (!k) throw Error(o.RELAYER_NOT_AVAILABLE);
98
+ let j = l().toString(), M = e.generateProofRemotely ? 5 : 1, N = [];
99
+ for (let t = 0; t < f.length; t += M) {
100
+ let r = f.slice(t, t + M), o = await Promise.all(r.map(async ({ recipientAddress: t, utxo: r }, o) => {
102
101
  let { compressedAddress: l } = d(n), f = new u({
103
102
  amount: 0n,
104
- mintAddress: w,
103
+ mintAddress: C,
105
104
  erc20TokenAddress: l,
106
105
  nullifyingKey: e.userKeys.getShieldedPrivateKey(),
107
- timeStamp: M,
106
+ timeStamp: j,
108
107
  ...r.isNewStyle ? {
109
108
  spendingPublicKey: e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
110
109
  isNewStyle: !0
@@ -113,48 +112,48 @@ var P = (e, r, i, a) => {
113
112
  tokenNumber: 1,
114
113
  nullifierAmount: h.length,
115
114
  outputAmount: _.length
116
- }, S = p([_])[0][0], E = Array.from(j.getBytes(S)), O = await T(i, a, g[o], m), k = y(x, i, [w], [g[o]], await e.getEthereumAddress()), [{ proofAArr: N, proofBArr: P, proofCArr: F, publicInputsArr: I }, L] = await Promise.all([D(e.generateProofRemotely, e.merkleTreeHinkalByChain[i], e.userKeys, [w], [h], [_], v, O.flatFee, O.variableRate, t, A, b, [E], i), C(i, e.userKeys, [w], [h])]), R = {
115
+ }, S = p([_])[0][0], T = Array.from(A.getBytes(S)), D = await w(i, a, g[o], m), O = y(x, i, [C], [g[o]], await e.getEthereumAddress()), { proofAArr: M, proofBArr: N, proofCArr: P, publicInputsArr: F, commitmentValidationData: I } = await E(e.generateProofRemotely, e.merkleTreeHinkalByChain[i], e.userKeys, [C], [h], [_], v, D.flatFee, D.variableRate, t, k, b, [T], i), L = {
117
116
  recipient: t,
118
- mint: w === "11111111111111111111111111111111" ? void 0 : w
117
+ mint: C === "11111111111111111111111111111111" ? void 0 : C
119
118
  };
120
119
  return {
121
- relayAddress: A,
120
+ relayAddress: k,
122
121
  functionName: "transact",
123
122
  chainId: i,
124
123
  recipientAmount: g[o].toString(),
125
124
  args: {
126
- proofAArr: N,
127
- proofBArr: P,
128
- proofCArr: F,
129
- publicInputsArr: I,
130
- encryptedOutputs: [E],
131
- relayerFee: O.flatFee.toString(),
125
+ proofAArr: M,
126
+ proofBArr: N,
127
+ proofCArr: P,
128
+ publicInputsArr: F,
129
+ encryptedOutputs: [T],
130
+ relayerFee: D.flatFee.toString(),
132
131
  dimensions: b
133
132
  },
134
- accounts: R,
135
- adminData: k,
136
- commitmentValidationData: L
133
+ accounts: L,
134
+ adminData: O,
135
+ commitmentValidationData: I
137
136
  };
138
137
  }));
139
- P.push(...o);
138
+ N.push(...o);
140
139
  }
141
- await k({
140
+ await O({
142
141
  id: _,
143
142
  chainId: i,
144
143
  hashedEthereumAddress: h,
145
144
  phase: r.BEFORE_SCHEDULE_WITHDRAW
146
145
  });
147
- let F = await O(i, P, h, v, b, S);
148
- return await k({
146
+ let P = await D(i, N, h, v, b, S);
147
+ return await O({
149
148
  id: _,
150
149
  chainId: i,
151
150
  hashedEthereumAddress: h,
152
151
  phase: r.AFTER_SCHEDULE_WITHDRAW,
153
- scheduleId: F
154
- }), F;
155
- }, R = async (t, n, r, o, s, c, l, u, d) => {
156
- let p = f([n]), m = n.erc20TokenAddress, h = i(await t.getEthereumAddressByChain(p)), g = d ? a(d) : void 0, _ = c ?? await x(p, m, [m], e.Transact, [], 5n), { userDepositedUtxos: v, depositTxHash: y, statusId: b } = await I(t, p, n, r, o, _, h);
157
- return await S(t, p, v), await L(t, p, n, v, _, h, r, b, s, l, u, g), y;
152
+ scheduleId: P
153
+ }), P;
154
+ }, L = async (t, n, r, o, s, c, l, u, d) => {
155
+ let p = f([n]), m = n.erc20TokenAddress, h = i(await t.getEthereumAddressByChain(p)), g = d ? a(d) : void 0, _ = c ?? await x(p, m, [m], e.Transact, [], 5n), { userDepositedUtxos: v, depositTxHash: y, statusId: b } = await F(t, p, n, r, o, _, h);
156
+ return await S(t, p, v), await I(t, p, n, v, _, h, r, b, s, l, u, g), y;
158
157
  };
159
158
  //#endregion
160
- export { F as buildMultiPaymentDepositBuilder, P as buildMultiPaymentDepositSetup, R as hinkalSolanaDepositAndWithdraw, L as hinkalSolanaWithdrawBatch };
159
+ export { P as buildMultiPaymentDepositBuilder, N as buildMultiPaymentDepositSetup, L as hinkalSolanaDepositAndWithdraw, I as hinkalSolanaWithdrawBatch };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../API/admin-calls.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`),r=require(`../../functions/utils/create-provider.cjs`),i=require(`../../functions/pre-transaction/constructAdminData.cjs`),a=require(`../AccountActions/AccountActions.cjs`),o=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),s=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);let c=require(`@solana/web3.js`);var l=async(t,i,o,l)=>{let u=n.validateAndGetChainId([t]),d=a.AccountActions.getAddressFromSubAccount(u,o);if(!d)throw Error(`Public account address is not available`);let{fetchRpcUrl:f}=e.networkRegistry[u];if(!f)throw Error(`RPC URL not found for the specified chain ID`);let p=r.createCustomSolanaConnection(f),m=new c.PublicKey(d),{instructions:h,programId:g}=await s.buildSolanaTransferInstructions(p,m,new c.PublicKey(l),t,i);return{connection:p,chainId:u,senderAddress:d,senderPublickey:m,programId:g,instructions:h}},u=async(e,n,r,a,s,c)=>{let[{connection:u,chainId:d,senderPublickey:f,instructions:p},m]=await Promise.all([l(n,r,a,s),e.getEthereumAddress()]),h=await o.sendProxyV0Transaction({connection:u,chainId:d,subAccount:a,payerPublicKey:f,instructions:p});return t.emitTxPublicData(i.constructAdminData(c,d,[n.erc20TokenAddress],[r],m)),h},d=async(e,t,n,r)=>{let{connection:i,senderPublickey:a,instructions:s}=await l(e,t,n,r);return o.serializeProxyV0Transaction(i,a,s)};exports.getSolanaProxySendSerializedTransaction=d,exports.hinkalSolanaProxySend=u;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../API/admin-calls.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`),r=require(`../../functions/pre-transaction/constructAdminData.cjs`),i=require(`../../functions/utils/create-provider.cjs`),a=require(`../AccountActions/AccountActions.cjs`),o=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),s=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);let c=require(`@solana/web3.js`);var l=async(t,r,o,l)=>{let u=n.validateAndGetChainId([t]),d=a.AccountActions.getAddressFromSubAccount(u,o);if(!d)throw Error(`Public account address is not available`);let{fetchRpcUrl:f}=e.networkRegistry[u];if(!f)throw Error(`RPC URL not found for the specified chain ID`);let p=i.createCustomSolanaConnection(f),m=new c.PublicKey(d),{instructions:h,programId:g}=await s.buildSolanaTransferInstructions(p,m,new c.PublicKey(l),t,r);return{connection:p,chainId:u,senderAddress:d,senderPublickey:m,programId:g,instructions:h}},u=async(e,n,i,a,s,c)=>{let[{connection:u,chainId:d,senderPublickey:f,instructions:p},m]=await Promise.all([l(n,i,a,s),e.getEthereumAddress()]),h=await o.sendProxyV0Transaction({connection:u,chainId:d,subAccount:a,payerPublicKey:f,instructions:p});return t.emitTxPublicData(r.constructAdminData(c,d,[n.erc20TokenAddress],[i],m)),h},d=async(e,t,n,r)=>{let{connection:i,senderPublickey:a,instructions:s}=await l(e,t,n,r);return o.serializeProxyV0Transaction(i,a,s)};exports.getSolanaProxySendSerializedTransaction=d,exports.hinkalSolanaProxySend=u;
@@ -1,19 +1,19 @@
1
1
  import { networkRegistry as e } from "../../constants/chains.constants.mjs";
2
2
  import { emitTxPublicData as t } from "../../API/admin-calls.mjs";
3
3
  import { validateAndGetChainId as n } from "../../functions/utils/token-check.utils.mjs";
4
- import { createCustomSolanaConnection as r } from "../../functions/utils/create-provider.mjs";
5
- import { constructAdminData as i } from "../../functions/pre-transaction/constructAdminData.mjs";
4
+ import { constructAdminData as r } from "../../functions/pre-transaction/constructAdminData.mjs";
5
+ import { createCustomSolanaConnection as i } from "../../functions/utils/create-provider.mjs";
6
6
  import { AccountActions as a } from "../AccountActions/AccountActions.mjs";
7
7
  import { sendProxyV0Transaction as o, serializeProxyV0Transaction as s } from "../../functions/pre-transaction/sendV0Transaction.mjs";
8
8
  import { buildSolanaTransferInstructions as c } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
9
9
  import { PublicKey as l } from "@solana/web3.js";
10
10
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaProxySend.ts
11
- var u = async (t, i, o, s) => {
11
+ var u = async (t, r, o, s) => {
12
12
  let u = n([t]), d = a.getAddressFromSubAccount(u, o);
13
13
  if (!d) throw Error("Public account address is not available");
14
14
  let { fetchRpcUrl: f } = e[u];
15
15
  if (!f) throw Error("RPC URL not found for the specified chain ID");
16
- let p = r(f), m = new l(d), { instructions: h, programId: g } = await c(p, m, new l(s), t, i);
16
+ let p = i(f), m = new l(d), { instructions: h, programId: g } = await c(p, m, new l(s), t, r);
17
17
  return {
18
18
  connection: p,
19
19
  chainId: u,
@@ -22,15 +22,15 @@ var u = async (t, i, o, s) => {
22
22
  programId: g,
23
23
  instructions: h
24
24
  };
25
- }, d = async (e, n, r, a, s, c) => {
26
- let [{ connection: l, chainId: d, senderPublickey: f, instructions: p }, m] = await Promise.all([u(n, r, a, s), e.getEthereumAddress()]), h = await o({
25
+ }, d = async (e, n, i, a, s, c) => {
26
+ let [{ connection: l, chainId: d, senderPublickey: f, instructions: p }, m] = await Promise.all([u(n, i, a, s), e.getEthereumAddress()]), h = await o({
27
27
  connection: l,
28
28
  chainId: d,
29
29
  subAccount: a,
30
30
  payerPublicKey: f,
31
31
  instructions: p
32
32
  });
33
- return t(i(c, d, [n.erc20TokenAddress], [r], m)), h;
33
+ return t(r(c, d, [n.erc20TokenAddress], [i], m)), h;
34
34
  }, f = async (e, t, n, r) => {
35
35
  let { connection: i, senderPublickey: a, instructions: o } = await u(e, t, n, r);
36
36
  return s(i, a, o);
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/addresses.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../API/admin-calls.cjs`),i=require(`../../functions/utils/solanaMint.utils.cjs`),a=require(`../../functions/utils/token-check.utils.cjs`),o=require(`../../functions/pre-transaction/solana.cjs`),s=require(`../../functions/utils/create-provider.cjs`),c=require(`../../functions/pre-transaction/constructAdminData.cjs`),l=require(`../AccountActions/AccountActions.cjs`),u=require(`../../functions/pre-transaction/sendV0Transaction.cjs`);let d=require(`@solana/web3.js`),f=require(`@coral-xyz/anchor`),p=require(`@solana/spl-token`);var m=async({program:e,mintPublicKey:t,mintAddressString:n,tokenAmount:r,anchorStealthStructure:i,senderPublickey:a,originalDeployer:o,storageAccount:s,storageVault:c})=>{let l=new f.BN(r.toString()),u=n===`11111111111111111111111111111111`?null:t,d=n===`11111111111111111111111111111111`?null:void 0;return e.methods.prooflessDeposit(l,i).accounts({mint:u,signer:a,signerAta:d,originalDeployer:o,storageAccount:s,storageVault:c,storageVaultAta:d}).instruction()},h=async(r,a,c,u,f,h)=>{let g=h??r.getRecipientInfo();if(!t.isValidPrivateAddress(g))throw Error(n.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let _=l.AccountActions.getAddressFromSubAccount(a,f);if(!_)throw Error(`Public account address is not available`);let{hinkalIdl:v,hinkalAddress:y,originalDeployer:b}=e.networkRegistry[a].contractData;if(!v)throw Error(`No IDL configured for Solana program on this network`);if(!b)throw Error(`missing original deployer`);let x=r.getSolanaProgram(v),S=new d.PublicKey(b),C=new d.PublicKey(y),w=new d.PublicKey(_),{erc20TokenAddress:T}=c,{fetchRpcUrl:E}=e.networkRegistry[a];if(!E)throw Error(`RPC URL not found for the specified chain ID`);let D=s.createCustomSolanaConnection(E),{mintPublicKey:O}=i.formatMintAddress(T),k=O.toString(),A=o.getStorageAccountPublicKey(C,S),j=o.getStorageVaultPublicKey(C,S),M=await m({program:x,mintPublicKey:O,mintAddressString:k,tokenAmount:u,anchorStealthStructure:o.buildAnchorStealthAddressStructure(t.constructStealthAddressStructure(g)),senderPublickey:w,originalDeployer:S,storageAccount:A,storageVault:j}),N=c.is2022Program?p.TOKEN_2022_PROGRAM_ID:p.TOKEN_PROGRAM_ID;return{connection:D,senderAddress:_,senderPublickey:w,instructions:[M],storageAccount:A,programId:N}},g=async(e,t,n,i,o,s)=>{if(!i)throw Error(`subAccount is required`);let l=a.validateAndGetChainId([t]),[{connection:d,senderPublickey:f,instructions:p},m]=await Promise.all([h(e,l,t,n,i,o),e.getEthereumAddress()]),g=await u.sendProxyV0Transaction({connection:d,chainId:l,subAccount:i,payerPublicKey:f,instructions:p});return r.emitTxPublicData(c.constructAdminData(s,l,[t.erc20TokenAddress],[n],m)),g},_=async(e,t,n,r,i)=>{let{connection:o,senderPublickey:s,instructions:c}=await h(e,a.validateAndGetChainId([t]),t,n,r,i);return u.serializeProxyV0Transaction(o,s,c)};exports.getSolanaProxyShieldSerializedTransaction=_,exports.hinkalSolanaProxyShield=g;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../functions/utils/addresses.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`../../API/admin-calls.cjs`),i=require(`../../functions/utils/solanaMint.utils.cjs`),a=require(`../../functions/utils/token-check.utils.cjs`),o=require(`../../functions/pre-transaction/solana.cjs`),s=require(`../../functions/pre-transaction/constructAdminData.cjs`),c=require(`../../functions/utils/create-provider.cjs`),l=require(`../AccountActions/AccountActions.cjs`),u=require(`../../functions/pre-transaction/sendV0Transaction.cjs`);let d=require(`@solana/web3.js`),f=require(`@coral-xyz/anchor`),p=require(`@solana/spl-token`);var m=async({program:e,mintPublicKey:t,mintAddressString:n,tokenAmount:r,anchorStealthStructure:i,senderPublickey:a,originalDeployer:o,storageAccount:s,storageVault:c})=>{let l=new f.BN(r.toString()),u=n===`11111111111111111111111111111111`?null:t,d=n===`11111111111111111111111111111111`?null:void 0;return e.methods.prooflessDeposit(l,i).accounts({mint:u,signer:a,signerAta:d,originalDeployer:o,storageAccount:s,storageVault:c,storageVaultAta:d}).instruction()},h=async(r,a,s,u,f,h)=>{let g=h??r.getRecipientInfo();if(!t.isValidPrivateAddress(g))throw Error(n.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let _=l.AccountActions.getAddressFromSubAccount(a,f);if(!_)throw Error(`Public account address is not available`);let{hinkalIdl:v,hinkalAddress:y,originalDeployer:b}=e.networkRegistry[a].contractData;if(!v)throw Error(`No IDL configured for Solana program on this network`);if(!b)throw Error(`missing original deployer`);let x=r.getSolanaProgram(v),S=new d.PublicKey(b),C=new d.PublicKey(y),w=new d.PublicKey(_),{erc20TokenAddress:T}=s,{fetchRpcUrl:E}=e.networkRegistry[a];if(!E)throw Error(`RPC URL not found for the specified chain ID`);let D=c.createCustomSolanaConnection(E),{mintPublicKey:O}=i.formatMintAddress(T),k=O.toString(),A=o.getStorageAccountPublicKey(C,S),j=o.getStorageVaultPublicKey(C,S),M=await m({program:x,mintPublicKey:O,mintAddressString:k,tokenAmount:u,anchorStealthStructure:o.buildAnchorStealthAddressStructure(t.constructStealthAddressStructure(g)),senderPublickey:w,originalDeployer:S,storageAccount:A,storageVault:j}),N=s.is2022Program?p.TOKEN_2022_PROGRAM_ID:p.TOKEN_PROGRAM_ID;return{connection:D,senderAddress:_,senderPublickey:w,instructions:[M],storageAccount:A,programId:N}},g=async(e,t,n,i,o,c)=>{if(!i)throw Error(`subAccount is required`);let l=a.validateAndGetChainId([t]),[{connection:d,senderPublickey:f,instructions:p},m]=await Promise.all([h(e,l,t,n,i,o),e.getEthereumAddress()]),g=await u.sendProxyV0Transaction({connection:d,chainId:l,subAccount:i,payerPublicKey:f,instructions:p});return r.emitTxPublicData(s.constructAdminData(c,l,[t.erc20TokenAddress],[n],m)),g},_=async(e,t,n,r,i)=>{let{connection:o,senderPublickey:s,instructions:c}=await h(e,a.validateAndGetChainId([t]),t,n,r,i);return u.serializeProxyV0Transaction(o,s,c)};exports.getSolanaProxyShieldSerializedTransaction=_,exports.hinkalSolanaProxyShield=g;
@@ -6,8 +6,8 @@ import { emitTxPublicData as i } from "../../API/admin-calls.mjs";
6
6
  import { formatMintAddress as a } from "../../functions/utils/solanaMint.utils.mjs";
7
7
  import { validateAndGetChainId as o } from "../../functions/utils/token-check.utils.mjs";
8
8
  import { buildAnchorStealthAddressStructure as s, getStorageAccountPublicKey as c, getStorageVaultPublicKey as l } from "../../functions/pre-transaction/solana.mjs";
9
- import { createCustomSolanaConnection as u } from "../../functions/utils/create-provider.mjs";
10
- import { constructAdminData as d } from "../../functions/pre-transaction/constructAdminData.mjs";
9
+ import { constructAdminData as u } from "../../functions/pre-transaction/constructAdminData.mjs";
10
+ import { createCustomSolanaConnection as d } from "../../functions/utils/create-provider.mjs";
11
11
  import { AccountActions as f } from "../AccountActions/AccountActions.mjs";
12
12
  import { sendProxyV0Transaction as p, serializeProxyV0Transaction as m } from "../../functions/pre-transaction/sendV0Transaction.mjs";
13
13
  import { PublicKey as h } from "@solana/web3.js";
@@ -25,7 +25,7 @@ var y = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
25
25
  storageVault: c,
26
26
  storageVaultAta: d
27
27
  }).instruction();
28
- }, b = async (i, o, d, p, m, g) => {
28
+ }, b = async (i, o, u, p, m, g) => {
29
29
  let b = g ?? i.getRecipientInfo();
30
30
  if (!n(b)) throw Error(r.RECIPIENT_FORMAT_INCORRECT);
31
31
  let x = f.getAddressFromSubAccount(o, m);
@@ -33,9 +33,9 @@ var y = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
33
33
  let { hinkalIdl: S, hinkalAddress: C, originalDeployer: w } = e[o].contractData;
34
34
  if (!S) throw Error("No IDL configured for Solana program on this network");
35
35
  if (!w) throw Error("missing original deployer");
36
- let T = i.getSolanaProgram(S), E = new h(w), D = new h(C), O = new h(x), { erc20TokenAddress: k } = d, { fetchRpcUrl: A } = e[o];
36
+ let T = i.getSolanaProgram(S), E = new h(w), D = new h(C), O = new h(x), { erc20TokenAddress: k } = u, { fetchRpcUrl: A } = e[o];
37
37
  if (!A) throw Error("RPC URL not found for the specified chain ID");
38
- let j = u(A), { mintPublicKey: M } = a(k), N = M.toString(), P = c(D, E), F = l(D, E), I = await y({
38
+ let j = d(A), { mintPublicKey: M } = a(k), N = M.toString(), P = c(D, E), F = l(D, E), I = await y({
39
39
  program: T,
40
40
  mintPublicKey: M,
41
41
  mintAddressString: N,
@@ -45,7 +45,7 @@ var y = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
45
45
  originalDeployer: E,
46
46
  storageAccount: P,
47
47
  storageVault: F
48
- }), L = d.is2022Program ? _ : v;
48
+ }), L = u.is2022Program ? _ : v;
49
49
  return {
50
50
  connection: j,
51
51
  senderAddress: x,
@@ -56,14 +56,14 @@ var y = async ({ program: e, mintPublicKey: t, mintAddressString: n, tokenAmount
56
56
  };
57
57
  }, x = async (e, t, n, r, a, s) => {
58
58
  if (!r) throw Error("subAccount is required");
59
- let c = o([t]), [{ connection: l, senderPublickey: u, instructions: f }, m] = await Promise.all([b(e, c, t, n, r, a), e.getEthereumAddress()]), h = await p({
59
+ let c = o([t]), [{ connection: l, senderPublickey: d, instructions: f }, m] = await Promise.all([b(e, c, t, n, r, a), e.getEthereumAddress()]), h = await p({
60
60
  connection: l,
61
61
  chainId: c,
62
62
  subAccount: r,
63
- payerPublicKey: u,
63
+ payerPublicKey: d,
64
64
  instructions: f
65
65
  });
66
- return i(d(s, c, [t.erc20TokenAddress], [n], m)), h;
66
+ return i(u(s, c, [t.erc20TokenAddress], [n], m)), h;
67
67
  }, S = async (e, t, n, r, i) => {
68
68
  let { connection: a, senderPublickey: s, instructions: c } = await b(e, o([t]), t, n, r, i);
69
69
  return m(a, s, c);
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`);require(`../../constants/index.cjs`);const r=require(`../../API/admin-calls.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/utils/create-provider.cjs`),o=require(`../../functions/pre-transaction/constructAdminData.cjs`),s=require(`../AccountActions/AccountActions.cjs`),c=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`),u=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);require(`../AccountActions/index.cjs`);let d=require(`@solana/web3.js`);var f=async(e,t)=>{let{addressLookupTableAccount:n,instructionLists:r}=JSON.parse(t).data,i=await Promise.all(n.map(async t=>{let n=await e.getAddressLookupTable(new d.PublicKey(t));if(!n.value)throw Error(`Failed to fetch lookup table: ${t}`);return n.value}));if(r.length===0)throw Error(`No instructions found`);return{instructions:r.map(e=>new d.TransactionInstruction({keys:e.accounts.map(e=>({pubkey:new d.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable})),programId:new d.PublicKey(e.programId),data:Buffer.from(e.data,`base64`)})),lookupTableAccounts:i}},p=async(e,t)=>{let n=d.VersionedTransaction.deserialize(Buffer.from(t,`base64`)),r=await Promise.all(n.message.addressTableLookups.map(async({accountKey:t})=>{let n=await e.getAddressLookupTable(t);if(!n.value)throw Error(`Failed to fetch lookup table: ${t.toBase58()}`);return n.value})),{instructions:i}=d.TransactionMessage.decompile(n.message,{addressLookupTableAccounts:r});return{instructions:i,lookupTableAccounts:r}},m=async(n,r,i,o)=>{let c=s.AccountActions.getAddressFromSubAccount(n,i);if(!c)throw Error(`Public account address is not available`);let{fetchRpcUrl:l}=t.networkRegistry[n];if(!l)throw Error(`RPC URL not found for the specified chain ID`);let u=a.createCustomSolanaConnection(l),m=new d.PublicKey(c),{instructions:h,lookupTableAccounts:g}=o===e.ExternalActionId.Lifi?await p(u,r):await f(u,r);return{connection:u,walletPublicKey:m,instructions:h,lookupTableAccounts:g}},h=async(t,a,s,f,p,h,g,_,v)=>{let y=i.validateAndGetChainId(a),b=h===e.ExternalActionId.Lifi,[{connection:x,walletPublicKey:S,instructions:C,lookupTableAccounts:w},T,E]=await Promise.all([m(y,f,p,h),b?Promise.resolve(null):t.getRandomRelay(y),t.getEthereumAddressByChain(y)]),D=C;if(!b){if(!T)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let t=a[1],r=s[1]*(_??await l.getFeeStructure(y,g,a.map(e=>e.erc20TokenAddress),e.ExternalActionId.Emporium)).variableRate/10000n,{instructions:i}=await u.buildSolanaTransferInstructions(x,S,new d.PublicKey(T),t,r);D=[...C,...i]}let O=await c.sendProxyV0Transaction({connection:x,chainId:y,subAccount:p,payerPublicKey:S,instructions:D,lookupTableAccounts:w});return r.emitTxPublicData(o.constructAdminData(v,y,a.map(e=>e.erc20TokenAddress),s,E,a)),O},g=async(t,n,r,i)=>{if(i===e.ExternalActionId.Lifi)return n;let{connection:a,walletPublicKey:o,instructions:s,lookupTableAccounts:l}=await m(t,n,r,i);return c.serializeProxyV0Transaction(a,o,s,l)};exports.getSolanaProxySwapSerializedTransaction=g,exports.hinkalSolanaProxySwap=h;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`);require(`../../constants/index.cjs`);const r=require(`../../API/admin-calls.cjs`),i=require(`../../functions/utils/token-check.utils.cjs`),a=require(`../../functions/pre-transaction/constructAdminData.cjs`),o=require(`../../functions/utils/create-provider.cjs`),s=require(`../AccountActions/AccountActions.cjs`),c=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),l=require(`../../functions/pre-transaction/getFeeStructure.cjs`),u=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`);require(`../AccountActions/index.cjs`);let d=require(`@solana/web3.js`);var f=async(e,t)=>{let{addressLookupTableAccount:n,instructionLists:r}=JSON.parse(t).data,i=await Promise.all(n.map(async t=>{let n=await e.getAddressLookupTable(new d.PublicKey(t));if(!n.value)throw Error(`Failed to fetch lookup table: ${t}`);return n.value}));if(r.length===0)throw Error(`No instructions found`);return{instructions:r.map(e=>new d.TransactionInstruction({keys:e.accounts.map(e=>({pubkey:new d.PublicKey(e.pubkey),isSigner:e.isSigner,isWritable:e.isWritable})),programId:new d.PublicKey(e.programId),data:Buffer.from(e.data,`base64`)})),lookupTableAccounts:i}},p=async(e,t)=>{let n=d.VersionedTransaction.deserialize(Buffer.from(t,`base64`)),r=await Promise.all(n.message.addressTableLookups.map(async({accountKey:t})=>{let n=await e.getAddressLookupTable(t);if(!n.value)throw Error(`Failed to fetch lookup table: ${t.toBase58()}`);return n.value})),{instructions:i}=d.TransactionMessage.decompile(n.message,{addressLookupTableAccounts:r});return{instructions:i,lookupTableAccounts:r}},m=async(n,r,i,a)=>{let c=s.AccountActions.getAddressFromSubAccount(n,i);if(!c)throw Error(`Public account address is not available`);let{fetchRpcUrl:l}=t.networkRegistry[n];if(!l)throw Error(`RPC URL not found for the specified chain ID`);let u=o.createCustomSolanaConnection(l),m=new d.PublicKey(c),{instructions:h,lookupTableAccounts:g}=a===e.ExternalActionId.Lifi?await p(u,r):await f(u,r);return{connection:u,walletPublicKey:m,instructions:h,lookupTableAccounts:g}},h=async(t,o,s,f,p,h,g,_,v)=>{let y=i.validateAndGetChainId(o),b=h===e.ExternalActionId.Lifi,[{connection:x,walletPublicKey:S,instructions:C,lookupTableAccounts:w},T,E]=await Promise.all([m(y,f,p,h),b?Promise.resolve(null):t.getRandomRelay(y),t.getEthereumAddressByChain(y)]),D=C;if(!b){if(!T)throw Error(n.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let t=o[1],r=s[1]*(_??await l.getFeeStructure(y,g,o.map(e=>e.erc20TokenAddress),e.ExternalActionId.Emporium)).variableRate/10000n,{instructions:i}=await u.buildSolanaTransferInstructions(x,S,new d.PublicKey(T),t,r);D=[...C,...i]}let O=await c.sendProxyV0Transaction({connection:x,chainId:y,subAccount:p,payerPublicKey:S,instructions:D,lookupTableAccounts:w});return r.emitTxPublicData(a.constructAdminData(v,y,o.map(e=>e.erc20TokenAddress),s,E,o)),O},g=async(t,n,r,i)=>{if(i===e.ExternalActionId.Lifi)return n;let{connection:a,walletPublicKey:o,instructions:s,lookupTableAccounts:l}=await m(t,n,r,i);return c.serializeProxyV0Transaction(a,o,s,l)};exports.getSolanaProxySwapSerializedTransaction=g,exports.hinkalSolanaProxySwap=h;
@@ -4,8 +4,8 @@ import { transactionErrorCodes as n } from "../../error-handling/error-codes.con
4
4
  import "../../constants/index.mjs";
5
5
  import { emitTxPublicData as r } from "../../API/admin-calls.mjs";
6
6
  import { validateAndGetChainId as i } from "../../functions/utils/token-check.utils.mjs";
7
- import { createCustomSolanaConnection as a } from "../../functions/utils/create-provider.mjs";
8
- import { constructAdminData as o } from "../../functions/pre-transaction/constructAdminData.mjs";
7
+ import { constructAdminData as a } from "../../functions/pre-transaction/constructAdminData.mjs";
8
+ import { createCustomSolanaConnection as o } from "../../functions/utils/create-provider.mjs";
9
9
  import { AccountActions as s } from "../AccountActions/AccountActions.mjs";
10
10
  import { sendProxyV0Transaction as c, serializeProxyV0Transaction as l } from "../../functions/pre-transaction/sendV0Transaction.mjs";
11
11
  import { getFeeStructure as u } from "../../functions/pre-transaction/getFeeStructure.mjs";
@@ -42,27 +42,27 @@ var g = async (e, t) => {
42
42
  instructions: i,
43
43
  lookupTableAccounts: r
44
44
  };
45
- }, v = async (n, r, i, o) => {
45
+ }, v = async (n, r, i, a) => {
46
46
  let c = s.getAddressFromSubAccount(n, i);
47
47
  if (!c) throw Error("Public account address is not available");
48
48
  let { fetchRpcUrl: l } = t[n];
49
49
  if (!l) throw Error("RPC URL not found for the specified chain ID");
50
- let u = a(l), d = new f(c), { instructions: p, lookupTableAccounts: m } = o === e.Lifi ? await _(u, r) : await g(u, r);
50
+ let u = o(l), d = new f(c), { instructions: p, lookupTableAccounts: m } = a === e.Lifi ? await _(u, r) : await g(u, r);
51
51
  return {
52
52
  connection: u,
53
53
  walletPublicKey: d,
54
54
  instructions: p,
55
55
  lookupTableAccounts: m
56
56
  };
57
- }, y = async (t, a, s, l, p, m, h, g, _) => {
58
- let y = i(a), b = m === e.Lifi, [{ connection: x, walletPublicKey: S, instructions: C, lookupTableAccounts: w }, T, E] = await Promise.all([
57
+ }, y = async (t, o, s, l, p, m, h, g, _) => {
58
+ let y = i(o), b = m === e.Lifi, [{ connection: x, walletPublicKey: S, instructions: C, lookupTableAccounts: w }, T, E] = await Promise.all([
59
59
  v(y, l, p, m),
60
60
  b ? Promise.resolve(null) : t.getRandomRelay(y),
61
61
  t.getEthereumAddressByChain(y)
62
62
  ]), D = C;
63
63
  if (!b) {
64
64
  if (!T) throw Error(n.RELAYER_NOT_AVAILABLE);
65
- let t = a[1], r = s[1] * (g ?? await u(y, h, a.map((e) => e.erc20TokenAddress), e.Emporium)).variableRate / 10000n, { instructions: i } = await d(x, S, new f(T), t, r);
65
+ let t = o[1], r = s[1] * (g ?? await u(y, h, o.map((e) => e.erc20TokenAddress), e.Emporium)).variableRate / 10000n, { instructions: i } = await d(x, S, new f(T), t, r);
66
66
  D = [...C, ...i];
67
67
  }
68
68
  let O = await c({
@@ -73,7 +73,7 @@ var g = async (e, t) => {
73
73
  instructions: D,
74
74
  lookupTableAccounts: w
75
75
  });
76
- return r(o(_, y, a.map((e) => e.erc20TokenAddress), s, E, a)), O;
76
+ return r(a(_, y, o.map((e) => e.erc20TokenAddress), s, E, o)), O;
77
77
  }, b = async (t, n, r, i) => {
78
78
  if (i === e.Lifi) return n;
79
79
  let { connection: a, walletPublicKey: o, instructions: s, lookupTableAccounts: c } = await v(t, n, r, i);
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/cache.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),ee=require(`../../functions/snarkjs/common.snarkjs.cjs`),d=require(`../../functions/pre-transaction/solana.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/convert-okx-instructions.cjs`),m=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.cjs`),g=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`),_=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let y=require(`ethers`),b=require(`@solana/web3.js`);var x=async(e,t,n,r)=>{let i=[...await l.addPaddingToUtxos(e,t,n,r,6)],a=s.getCurrentTimeInSeconds().toString(),o=[];for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,i[t],r[t],a);o.push([n[0]])}return{inputUtxosArray:i,outputUtxosArray:o}},S=async(s,l,u,S,C,w,te,T,E)=>{let D=c.validateAndGetChainId(l),O=new b.PublicKey(n.solanaNativeAddress),{hinkalAddress:ne,originalDeployer:k}=t.networkRegistry[D].contractData;if(!k)throw Error(`No IDL configured for Solana program on this network`);let A=new b.PublicKey(k),j=new b.PublicKey(ne),M=l.map(e=>e.erc20TokenAddress),{userKeys:N,merkleTreeHinkalByChain:P}=s,F=T??await h.getFeeStructure(D,te,M,e.ExternalActionId.Transact),I=u[1],L=Number(s.cacheDevice.get(r.StorageKeys.SLIPPAGE_PERCENTAGE)??0),R=l[1],z=a.getAmountInToken(R,I),B=Number(z)*L/100;u[1]-=a.getAmountInWei(R,B.toFixed(R.decimals));let V=I*BigInt(F.variableRate??0)/10000n+F.flatFee;if(u[1]-=V,u[1]<0)throw Error(i.transactionErrorCodes.LOW_OUTPUT_AMOUNT);let H=F.variableRate.toString(),[U,W,{inputUtxosArray:G,outputUtxosArray:K}]=await Promise.all([s.getRandomRelay(D,!0),s.getEthereumAddressByChain(D),x(s,D,M,u)]);if(!U)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let q=s.userKeys.getShieldedPrivateKey(),J=o.UserKeys.findCorrectRandomization(a.randomBigInt(31),q),Y={tokenNumber:2,nullifierAmount:G[0].length,outputAmount:1},X=ee.calcEncryptedOutputs(K).map(e=>[...y.ethers.getBytes(e[0])]),Z=d.getSwapperAccountPublicKeyFromSalt(j,A,S),{remainingAccounts:Q,hinkalInstructions:$}=p.convertOKXToHinkalInstructions(C,Z);m.ensureAmountChanges(G,K,u);let[{proofAArr:re,proofBArr:ie,proofCArr:ae,publicInputsArr:oe},se]=await Promise.all([_.constructSolanaZkProof(s.generateProofRemotely,P[D],N,M,G,K,J,F.flatFee,F.variableRate,O.toString(),U,Y,X,D,$,Q,S),g.buildCommitmentValidationData(D,N,M,G)]),ce=d.getStorageAccountPublicKey(j,A),le=d.getStorageVaultPublicKey(j,A),ue=l[0].erc20TokenAddress===`11111111111111111111111111111111`?null:new b.PublicKey(l[0].erc20TokenAddress),de=l[1].erc20TokenAddress===`11111111111111111111111111111111`?null:new b.PublicKey(l[1].erc20TokenAddress),fe={recipient:O.toString(),storageAccount:ce.toString(),storageVault:le.toString(),swapperAccount:Z.toString(),mintFrom:ue?.toString()??null,mintTo:de?.toString()??null,remainingAccounts:Q.map(e=>({pubkey:e.pubkey.toString(),isSigner:e.isSigner,isWritable:e.isWritable})),addressLookupTableAccount:w};return v.solanaTransactCallRelayer({chainId:D,relayAddress:U,functionName:`swap`,args:{encryptedOutputs:X,proofAArr:re,proofBArr:ie,proofCArr:ae,publicInputsArr:oe,relayerFee:F.flatFee.toString(),variableRate:H,dimensions:Y,hinkalInstructions:$.map(e=>({accountIndexes:[...e.accountIndexes],data:[...e.data],programIndex:e.programIndex}))},accounts:fe,commitmentValidationData:se,adminData:f.constructAdminData(E,D,M,u,W,l)})};exports.hinkalSolanaSwap=S;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../types/cache.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/solana.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),ee=require(`../../functions/pre-transaction/convert-okx-instructions.cjs`),m=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),h=require(`../../functions/pre-transaction/getFeeStructure.cjs`),g=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let v=require(`ethers`),y=require(`@solana/web3.js`);var b=async(e,t,n,r)=>{let i=[...await l.addPaddingToUtxos(e,t,n,r,6)],a=s.getCurrentTimeInSeconds().toString(),o=[];for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,i[t],r[t],a);o.push([n[0]])}return{inputUtxosArray:i,outputUtxosArray:o}},x=async(s,l,u,x,te,S,C,w,T)=>{let E=c.validateAndGetChainId(l),D=new y.PublicKey(n.solanaNativeAddress),{hinkalAddress:ne,originalDeployer:O}=t.networkRegistry[E].contractData;if(!O)throw Error(`No IDL configured for Solana program on this network`);let k=new y.PublicKey(O),A=new y.PublicKey(ne),j=l.map(e=>e.erc20TokenAddress),{userKeys:M,merkleTreeHinkalByChain:N}=s,P=w??await h.getFeeStructure(E,C,j,e.ExternalActionId.Transact),F=u[1],I=Number(s.cacheDevice.get(r.StorageKeys.SLIPPAGE_PERCENTAGE)??0),L=l[1],R=a.getAmountInToken(L,F),z=Number(R)*I/100;u[1]-=a.getAmountInWei(L,z.toFixed(L.decimals));let B=F*BigInt(P.variableRate??0)/10000n+P.flatFee;if(u[1]-=B,u[1]<0)throw Error(i.transactionErrorCodes.LOW_OUTPUT_AMOUNT);let V=P.variableRate.toString(),[H,U,{inputUtxosArray:W,outputUtxosArray:G}]=await Promise.all([s.getRandomRelay(E,!0),s.getEthereumAddressByChain(E),b(s,E,j,u)]);if(!H)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let K=s.userKeys.getShieldedPrivateKey(),q=o.UserKeys.findCorrectRandomization(a.randomBigInt(31),K),J={tokenNumber:2,nullifierAmount:W[0].length,outputAmount:1},Y=d.calcEncryptedOutputs(G).map(e=>[...v.ethers.getBytes(e[0])]),X=f.getSwapperAccountPublicKeyFromSalt(A,k,x),{remainingAccounts:Z,hinkalInstructions:Q}=ee.convertOKXToHinkalInstructions(te,X);m.ensureAmountChanges(W,G,u);let{proofAArr:re,proofBArr:ie,proofCArr:ae,publicInputsArr:oe,commitmentValidationData:$}=await g.constructSolanaZkProof(s.generateProofRemotely,N[E],M,j,W,G,q,P.flatFee,P.variableRate,D.toString(),H,J,Y,E,Q,Z,x),se=f.getStorageAccountPublicKey(A,k),ce=f.getStorageVaultPublicKey(A,k),le=l[0].erc20TokenAddress===`11111111111111111111111111111111`?null:new y.PublicKey(l[0].erc20TokenAddress),ue=l[1].erc20TokenAddress===`11111111111111111111111111111111`?null:new y.PublicKey(l[1].erc20TokenAddress),de={recipient:D.toString(),storageAccount:se.toString(),storageVault:ce.toString(),swapperAccount:X.toString(),mintFrom:le?.toString()??null,mintTo:ue?.toString()??null,remainingAccounts:Z.map(e=>({pubkey:e.pubkey.toString(),isSigner:e.isSigner,isWritable:e.isWritable})),addressLookupTableAccount:S};return _.solanaTransactCallRelayer({chainId:E,relayAddress:H,functionName:`swap`,args:{encryptedOutputs:Y,proofAArr:re,proofBArr:ie,proofCArr:ae,publicInputsArr:oe,relayerFee:P.flatFee.toString(),variableRate:V,dimensions:J,hinkalInstructions:Q.map(e=>({accountIndexes:[...e.accountIndexes],data:[...e.data],programIndex:e.programIndex}))},accounts:de,commitmentValidationData:$,adminData:p.constructAdminData(T,E,j,u,U,l)})};exports.hinkalSolanaSwap=x;
@@ -11,18 +11,17 @@ import { validateAndGetChainId as u } from "../../functions/utils/token-check.ut
11
11
  import { addPaddingToUtxos as d } from "../../functions/web3/events/getShieldedBalance.mjs";
12
12
  import { outputUtxoProcessing as f } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
13
13
  import { calcEncryptedOutputs as p } from "../../functions/snarkjs/common.snarkjs.mjs";
14
- import { getStorageAccountPublicKey as m, getStorageVaultPublicKey as h, getSwapperAccountPublicKeyFromSalt as g } from "../../functions/pre-transaction/solana.mjs";
15
- import { constructAdminData as _ } from "../../functions/pre-transaction/constructAdminData.mjs";
16
- import { convertOKXToHinkalInstructions as v } from "../../functions/pre-transaction/convert-okx-instructions.mjs";
17
- import { ensureAmountChanges as y } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
18
- import { getFeeStructure as ee } from "../../functions/pre-transaction/getFeeStructure.mjs";
19
- import { buildCommitmentValidationData as b } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
20
- import { constructSolanaZkProof as x } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
21
- import { solanaTransactCallRelayer as S } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
22
- import { ethers as C } from "ethers";
23
- import { PublicKey as w } from "@solana/web3.js";
14
+ import { getStorageAccountPublicKey as ee, getStorageVaultPublicKey as m, getSwapperAccountPublicKeyFromSalt as h } from "../../functions/pre-transaction/solana.mjs";
15
+ import { constructAdminData as g } from "../../functions/pre-transaction/constructAdminData.mjs";
16
+ import { convertOKXToHinkalInstructions as _ } from "../../functions/pre-transaction/convert-okx-instructions.mjs";
17
+ import { ensureAmountChanges as v } from "../../functions/pre-transaction/ensureAmountChanges.mjs";
18
+ import { getFeeStructure as y } from "../../functions/pre-transaction/getFeeStructure.mjs";
19
+ import { constructSolanaZkProof as b } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
20
+ import { solanaTransactCallRelayer as x } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
21
+ import { ethers as S } from "ethers";
22
+ import { PublicKey as C } from "@solana/web3.js";
24
23
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaSwap.ts
25
- var T = async (e, t, n, r) => {
24
+ var te = async (e, t, n, r) => {
26
25
  let i = [...await d(e, t, n, r, 6)], a = l().toString(), o = [];
27
26
  for (let t = 0; t < n.length; t += 1) {
28
27
  let { outputUtxos: n } = f(e.userKeys, i[t], r[t], a);
@@ -32,62 +31,62 @@ var T = async (e, t, n, r) => {
32
31
  inputUtxosArray: i,
33
32
  outputUtxosArray: o
34
33
  };
35
- }, E = async (l, d, f, E, te, ne, re, ie, D) => {
36
- let O = u(d), k = new w(n), { hinkalAddress: A, originalDeployer: j } = t[O].contractData;
37
- if (!j) throw Error("No IDL configured for Solana program on this network");
38
- let M = new w(j), N = new w(A), P = d.map((e) => e.erc20TokenAddress), { userKeys: F, merkleTreeHinkalByChain: I } = l, L = ie ?? await ee(O, re, P, e.Transact), R = f[1], z = Number(l.cacheDevice.get(r.SLIPPAGE_PERCENTAGE) ?? 0), B = d[1], V = a(B, R), H = Number(V) * z / 100;
39
- f[1] -= o(B, H.toFixed(B.decimals));
40
- let U = R * BigInt(L.variableRate ?? 0) / 10000n + L.flatFee;
41
- if (f[1] -= U, f[1] < 0) throw Error(i.LOW_OUTPUT_AMOUNT);
42
- let W = L.variableRate.toString(), [G, ae, { inputUtxosArray: K, outputUtxosArray: q }] = await Promise.all([
43
- l.getRandomRelay(O, !0),
44
- l.getEthereumAddressByChain(O),
45
- T(l, O, P, f)
34
+ }, w = async (l, d, f, w, ne, re, ie, ae, T) => {
35
+ let E = u(d), D = new C(n), { hinkalAddress: O, originalDeployer: k } = t[E].contractData;
36
+ if (!k) throw Error("No IDL configured for Solana program on this network");
37
+ let A = new C(k), j = new C(O), M = d.map((e) => e.erc20TokenAddress), { userKeys: N, merkleTreeHinkalByChain: P } = l, F = ae ?? await y(E, ie, M, e.Transact), I = f[1], L = Number(l.cacheDevice.get(r.SLIPPAGE_PERCENTAGE) ?? 0), R = d[1], z = a(R, I), B = Number(z) * L / 100;
38
+ f[1] -= o(R, B.toFixed(R.decimals));
39
+ let V = I * BigInt(F.variableRate ?? 0) / 10000n + F.flatFee;
40
+ if (f[1] -= V, f[1] < 0) throw Error(i.LOW_OUTPUT_AMOUNT);
41
+ let H = F.variableRate.toString(), [U, oe, { inputUtxosArray: W, outputUtxosArray: G }] = await Promise.all([
42
+ l.getRandomRelay(E, !0),
43
+ l.getEthereumAddressByChain(E),
44
+ te(l, E, M, f)
46
45
  ]);
47
- if (!G) throw Error(i.RELAYER_NOT_AVAILABLE);
48
- let J = l.userKeys.getShieldedPrivateKey(), oe = c.findCorrectRandomization(s(31), J), Y = {
46
+ if (!U) throw Error(i.RELAYER_NOT_AVAILABLE);
47
+ let K = l.userKeys.getShieldedPrivateKey(), q = c.findCorrectRandomization(s(31), K), J = {
49
48
  tokenNumber: 2,
50
- nullifierAmount: K[0].length,
49
+ nullifierAmount: W[0].length,
51
50
  outputAmount: 1
52
- }, X = p(q).map((e) => [...C.getBytes(e[0])]), Z = g(N, M, E), { remainingAccounts: Q, hinkalInstructions: $ } = v(te, Z);
53
- y(K, q, f);
54
- let [{ proofAArr: se, proofBArr: ce, proofCArr: le, publicInputsArr: ue }, de] = await Promise.all([x(l.generateProofRemotely, I[O], F, P, K, q, oe, L.flatFee, L.variableRate, k.toString(), G, Y, X, O, $, Q, E), b(O, F, P, K)]), fe = m(N, M), pe = h(N, M), me = d[0].erc20TokenAddress === "11111111111111111111111111111111" ? null : new w(d[0].erc20TokenAddress), he = d[1].erc20TokenAddress === "11111111111111111111111111111111" ? null : new w(d[1].erc20TokenAddress), ge = {
55
- recipient: k.toString(),
56
- storageAccount: fe.toString(),
57
- storageVault: pe.toString(),
58
- swapperAccount: Z.toString(),
59
- mintFrom: me?.toString() ?? null,
60
- mintTo: he?.toString() ?? null,
61
- remainingAccounts: Q.map((e) => ({
51
+ }, Y = p(G).map((e) => [...S.getBytes(e[0])]), X = h(j, A, w), { remainingAccounts: Z, hinkalInstructions: Q } = _(ne, X);
52
+ v(W, G, f);
53
+ let { proofAArr: se, proofBArr: $, proofCArr: ce, publicInputsArr: le, commitmentValidationData: ue } = await b(l.generateProofRemotely, P[E], N, M, W, G, q, F.flatFee, F.variableRate, D.toString(), U, J, Y, E, Q, Z, w), de = ee(j, A), fe = m(j, A), pe = d[0].erc20TokenAddress === "11111111111111111111111111111111" ? null : new C(d[0].erc20TokenAddress), me = d[1].erc20TokenAddress === "11111111111111111111111111111111" ? null : new C(d[1].erc20TokenAddress), he = {
54
+ recipient: D.toString(),
55
+ storageAccount: de.toString(),
56
+ storageVault: fe.toString(),
57
+ swapperAccount: X.toString(),
58
+ mintFrom: pe?.toString() ?? null,
59
+ mintTo: me?.toString() ?? null,
60
+ remainingAccounts: Z.map((e) => ({
62
61
  pubkey: e.pubkey.toString(),
63
62
  isSigner: e.isSigner,
64
63
  isWritable: e.isWritable
65
64
  })),
66
- addressLookupTableAccount: ne
65
+ addressLookupTableAccount: re
67
66
  };
68
- return S({
69
- chainId: O,
70
- relayAddress: G,
67
+ return x({
68
+ chainId: E,
69
+ relayAddress: U,
71
70
  functionName: "swap",
72
71
  args: {
73
- encryptedOutputs: X,
72
+ encryptedOutputs: Y,
74
73
  proofAArr: se,
75
- proofBArr: ce,
76
- proofCArr: le,
77
- publicInputsArr: ue,
78
- relayerFee: L.flatFee.toString(),
79
- variableRate: W,
80
- dimensions: Y,
81
- hinkalInstructions: $.map((e) => ({
74
+ proofBArr: $,
75
+ proofCArr: ce,
76
+ publicInputsArr: le,
77
+ relayerFee: F.flatFee.toString(),
78
+ variableRate: H,
79
+ dimensions: J,
80
+ hinkalInstructions: Q.map((e) => ({
82
81
  accountIndexes: [...e.accountIndexes],
83
82
  data: [...e.data],
84
83
  programIndex: e.programIndex
85
84
  }))
86
85
  },
87
- accounts: ge,
88
- commitmentValidationData: de,
89
- adminData: _(D, O, P, f, ae, d)
86
+ accounts: he,
87
+ commitmentValidationData: ue,
88
+ adminData: g(T, E, M, f, oe, d)
90
89
  });
91
90
  };
92
91
  //#endregion
93
- export { E as hinkalSolanaSwap };
92
+ export { w as hinkalSolanaSwap };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`);require(`../../types/index.cjs`);const r=require(`../../functions/utils/addresses.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`),h=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const g=require(`../../functions/utils/fees.utils.cjs`),_=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),v=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let y=require(`ethers`);var b=async(e,t,n,r,i,a)=>{let o=(await l.addPaddingToUtxos(e,t,n,r,6))[0],c=s.getCurrentTimeInSeconds().toString(),{outputUtxos:d}=u.outputUtxoProcessing(e.userKeys,o,r[0],c,!0,i,a);return{inputUtxos:o,senderUtxo:d[0],recipientUtxo:d[1]}},x=async(s,l,u,v,x,S,C)=>{if(!r.isValidPrivateAddress(v))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let w=c.validateAndGetChainId(l),T=[...u],{originalDeployer:E}=t.networkRegistry[w].contractData;if(!E)throw Error(`missing data`);let{userKeys:D,merkleTreeHinkalByChain:O}=s,k=l.map(e=>e.erc20TokenAddress);if(k.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);let A=S??await m.getFeeStructure(w,x,k,e.ExternalActionId.Transact,[],5n);A.variableRate||=n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let j=g.calculateTotalFee(-T[0],A),M=-T[0];T[0]-=j;let[N,P,{inputUtxos:F,senderUtxo:I,recipientUtxo:L}]=await Promise.all([s.getRandomRelay(w,!0),s.getEthereumAddressByChain(w),b(s,w,k,T,v,M)]);if(!N)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let R=o.UserKeys.findCorrectRandomization(a.randomBigInt(31),s.userKeys.getShieldedPrivateKey()),z={tokenNumber:k.length,nullifierAmount:F.length,outputAmount:2},B=d.calcEncryptedOutputs([[I,L]])[0].map(e=>Array.from(y.ethers.getBytes(e)));p.ensureAmountChanges([F],[[I]],T);let[{proofAArr:V,proofBArr:H,proofCArr:U,publicInputsArr:W},G]=await Promise.all([_.constructSolanaZkProof(s.generateProofRemotely,O[w],D,[k[0]],[F],[[I,L]],R,j,0n,n.solanaNativeAddress,N,z,B,w),h.buildCommitmentValidationData(w,D,k,[F])]),K={recipient:N,mint:k[0]===`11111111111111111111111111111111`?void 0:k[0]};return{chainId:w,relay:N,args:{proofAArr:V,proofBArr:H,proofCArr:U,publicInputsArr:W,encryptedOutputs:B,relayerFee:j.toString(),dimensions:z},accounts:K,adminData:f.constructAdminData(C,w,k,T,P),commitmentValidationData:G,recipientUtxo:L}},S=async(e,t,n,r,i,a,o,s=!1)=>{if(s)throw Error(`onlyGasEstimate is not supported for Solana transfer`);let c=await x(e,t,n,r,i,a,o);return v.solanaTransactCallRelayer({chainId:c.chainId,relayAddress:c.relay,functionName:`transfer`,args:c.args,accounts:c.accounts,adminData:c.adminData,commitmentValidationData:c.commitmentValidationData})};exports.buildSolanaTransferPlan=x,exports.hinkalSolanaTransfer=S;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/external-action.types.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`);require(`../../types/index.cjs`);const r=require(`../../functions/utils/addresses.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../functions/utils/time.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/snarkjs/common.snarkjs.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/ensureAmountChanges.cjs`),m=require(`../../functions/pre-transaction/getFeeStructure.cjs`);require(`../../functions/pre-transaction/index.cjs`);const h=require(`../../functions/utils/fees.utils.cjs`),g=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),_=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let v=require(`ethers`);var y=async(e,t,n,r,i,a)=>{let o=(await l.addPaddingToUtxos(e,t,n,r,6))[0],c=s.getCurrentTimeInSeconds().toString(),{outputUtxos:d}=u.outputUtxoProcessing(e.userKeys,o,r[0],c,!0,i,a);return{inputUtxos:o,senderUtxo:d[0],recipientUtxo:d[1]}},b=async(s,l,u,_,b,x,S)=>{if(!r.isValidPrivateAddress(_))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let C=c.validateAndGetChainId(l),w=[...u],{originalDeployer:T}=t.networkRegistry[C].contractData;if(!T)throw Error(`missing data`);let{userKeys:E,merkleTreeHinkalByChain:D}=s,O=l.map(e=>e.erc20TokenAddress);if(O.length>1)throw Error(`Solana Transfer: Only one mint address is supported`);let k=x??await m.getFeeStructure(C,b,O,e.ExternalActionId.Transact,[],5n);k.variableRate||=n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;let A=h.calculateTotalFee(-w[0],k),j=-w[0];w[0]-=A;let[M,N,{inputUtxos:P,senderUtxo:F,recipientUtxo:I}]=await Promise.all([s.getRandomRelay(C,!0),s.getEthereumAddressByChain(C),y(s,C,O,w,_,j)]);if(!M)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let L=o.UserKeys.findCorrectRandomization(a.randomBigInt(31),s.userKeys.getShieldedPrivateKey()),R={tokenNumber:O.length,nullifierAmount:P.length,outputAmount:2},z=d.calcEncryptedOutputs([[F,I]])[0].map(e=>Array.from(v.ethers.getBytes(e)));p.ensureAmountChanges([P],[[F]],w);let{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,commitmentValidationData:W}=await g.constructSolanaZkProof(s.generateProofRemotely,D[C],E,[O[0]],[P],[[F,I]],L,A,0n,n.solanaNativeAddress,M,R,z,C),G={recipient:M,mint:O[0]===`11111111111111111111111111111111`?void 0:O[0]};return{chainId:C,relay:M,args:{proofAArr:B,proofBArr:V,proofCArr:H,publicInputsArr:U,encryptedOutputs:z,relayerFee:A.toString(),dimensions:R},accounts:G,adminData:f.constructAdminData(S,C,O,w,N),commitmentValidationData:W,recipientUtxo:I}},x=async(e,t,n,r,i,a,o,s=!1)=>{if(s)throw Error(`onlyGasEstimate is not supported for Solana transfer`);let c=await b(e,t,n,r,i,a,o);return _.solanaTransactCallRelayer({chainId:c.chainId,relayAddress:c.relay,functionName:`transfer`,args:c.args,accounts:c.accounts,adminData:c.adminData,commitmentValidationData:c.commitmentValidationData})};exports.buildSolanaTransferPlan=b,exports.hinkalSolanaTransfer=x;