@hinkal/common 0.2.36 → 0.2.37

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 (70) hide show
  1. package/API/enclaveUtxoCalls.cjs +1 -1
  2. package/API/enclaveUtxoCalls.mjs +6 -7
  3. package/constants/events.constants.cjs +1 -1
  4. package/constants/events.constants.mjs +3 -1
  5. package/constants/server.constants.cjs +1 -1
  6. package/constants/server.constants.d.ts +1 -1
  7. package/constants/server.constants.mjs +1 -1
  8. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
  9. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +13 -13
  10. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  11. package/data-structures/Hinkal/Hinkal.d.ts +5 -0
  12. package/data-structures/Hinkal/Hinkal.mjs +114 -104
  13. package/data-structures/Hinkal/IHinkal.d.ts +5 -0
  14. package/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  15. package/data-structures/Hinkal/hinkalDepositAndBridge.d.ts +2 -2
  16. package/data-structures/Hinkal/hinkalDepositAndBridge.mjs +8 -5
  17. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  18. package/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +2 -2
  19. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +4 -1
  20. package/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
  21. package/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +1 -1
  22. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  23. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -2
  24. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +4 -1
  25. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  26. package/data-structures/Hinkal/resetMerkleTrees.mjs +12 -12
  27. package/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  28. package/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +3 -2
  29. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  30. package/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +0 -1
  31. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +27 -36
  32. package/data-structures/TokenDBs/PublicTokensDB.cjs +1 -1
  33. package/data-structures/TokenDBs/PublicTokensDB.mjs +22 -20
  34. package/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -0
  35. package/data-structures/TokenDBs/TronPublicTokensDB.d.ts +9 -0
  36. package/data-structures/TokenDBs/TronPublicTokensDB.mjs +47 -0
  37. package/data-structures/TokenDBs/index.cjs +1 -1
  38. package/data-structures/TokenDBs/index.d.ts +1 -0
  39. package/data-structures/TokenDBs/index.mjs +1 -0
  40. package/data-structures/index.cjs +1 -1
  41. package/data-structures/index.mjs +1 -0
  42. package/functions/index.cjs +1 -1
  43. package/functions/index.mjs +1 -0
  44. package/functions/pre-transaction/sendV0Transaction.cjs +2 -2
  45. package/functions/pre-transaction/sendV0Transaction.mjs +69 -57
  46. package/functions/snarkjs/common.snarkjs.cjs +1 -1
  47. package/functions/snarkjs/common.snarkjs.mjs +2 -2
  48. package/functions/snarkjs/constant.cjs +1 -1
  49. package/functions/snarkjs/constant.mjs +1 -1
  50. package/functions/utils/enclaveHandshakeService.cjs +1 -0
  51. package/functions/utils/enclaveHandshakeService.d.ts +10 -0
  52. package/functions/utils/enclaveHandshakeService.mjs +22 -0
  53. package/functions/utils/encryptInputForEnclave.cjs +1 -1
  54. package/functions/utils/encryptInputForEnclave.mjs +23 -25
  55. package/functions/utils/index.cjs +1 -1
  56. package/functions/utils/index.d.ts +1 -0
  57. package/functions/utils/index.mjs +1 -0
  58. package/functions/utils/tron.utils.cjs +1 -1
  59. package/functions/utils/tron.utils.d.ts +1 -0
  60. package/functions/utils/tron.utils.mjs +1 -1
  61. package/index.cjs +1 -1
  62. package/index.mjs +183 -181
  63. package/package.json +1 -1
  64. package/types/cache.types.cjs +1 -1
  65. package/types/cache.types.d.ts +1 -0
  66. package/types/cache.types.mjs +1 -1
  67. package/types/scheduled-transactions.types.d.ts +4 -0
  68. package/webworker/package.json +1 -1
  69. package/webworker/viteWorkerURL.constant.cjs +3 -3
  70. package/webworker/viteWorkerURL.constant.mjs +3 -3
@@ -1,40 +1,46 @@
1
1
  import { safeJsonStringify as e } from "../utils/serialize.utils.mjs";
2
2
  import { COMPUTE_UNIT_PADDING_PERCENTAGE as t, MAX_COMPUTE_UNIT_LIMIT as n, MAX_SOLANA_HEAP_FRAME_BYTES as r, MIN_COMPUTE_UNIT_LIMIT as i } from "../../constants/protocol.constants.mjs";
3
- import { AccountActions as a } from "../../data-structures/AccountActions/AccountActions.mjs";
4
- import { SolanaPriorityFeeMode as o } from "../../types/fee.types.mjs";
5
- import { getSolanaPriorityFee as s } from "../web3/getSolanaPriorityFee.mjs";
6
- import { pollForValue as c } from "../utils/process.utils.mjs";
7
- import { shouldRetryForSolanaError as l } from "../../error-handling/retrySolanaError.mjs";
8
- import { ComputeBudgetProgram as u, PublicKey as d, TransactionMessage as f, VersionedTransaction as p } from "@solana/web3.js";
9
- import { ASSOCIATED_TOKEN_PROGRAM_ID as m, TOKEN_PROGRAM_ID as h, createAssociatedTokenAccountInstruction as g, getAssociatedTokenAddress as _ } from "@solana/spl-token";
3
+ import { Logger as a } from "../../error-handling/logger.mjs";
4
+ import { AccountActions as o } from "../../data-structures/AccountActions/AccountActions.mjs";
5
+ import { SolanaPriorityFeeMode as s } from "../../types/fee.types.mjs";
6
+ import { getSolanaPriorityFee as c } from "../web3/getSolanaPriorityFee.mjs";
7
+ import { pollForValue as l } from "../utils/process.utils.mjs";
8
+ import { shouldRetryForSolanaError as u } from "../../error-handling/retrySolanaError.mjs";
9
+ import { ComputeBudgetProgram as d, PublicKey as f, TransactionMessage as p, VersionedTransaction as m } from "@solana/web3.js";
10
+ import { ASSOCIATED_TOKEN_PROGRAM_ID as h, TOKEN_PROGRAM_ID as g, createAssociatedTokenAccountInstruction as _, getAssociatedTokenAddress as v } from "@solana/spl-token";
10
11
  //#region libs/shared/common/src/functions/pre-transaction/sendV0Transaction.ts
11
- var v = 5e3, y = 6e4, b = 7, x = async (e, t, n = "confirmed") => await c(() => e.getTransaction(t, {
12
+ var y = 5e3, b = 6e4, x = 7, S = async (e, t, n = "confirmed") => await l(() => e.getTransaction(t, {
12
13
  commitment: n,
13
14
  maxSupportedTransactionVersion: 0
14
15
  }), {
15
- timeoutMs: y,
16
- intervalMs: v
17
- }) ?? null, S = async (e, a, o, s, c = !1) => {
16
+ timeoutMs: b,
17
+ intervalMs: y
18
+ }) ?? null, C = async (o, s, c, l, u = !1) => {
18
19
  try {
19
- let { blockhash: l } = await e.getLatestBlockhash(), d = new p(new f({
20
- payerKey: a,
21
- recentBlockhash: l,
20
+ let { blockhash: f } = await o.getLatestBlockhash(), h = new m(new p({
21
+ payerKey: s,
22
+ recentBlockhash: f,
22
23
  instructions: [
23
- u.setComputeUnitLimit({ units: n }),
24
- ...c ? [u.requestHeapFrame({ bytes: r })] : [],
25
- ...o
24
+ d.setComputeUnitLimit({ units: n }),
25
+ ...u ? [d.requestHeapFrame({ bytes: r })] : [],
26
+ ...c
26
27
  ]
27
- }).compileToV0Message(s)), { unitsConsumed: m } = (await e.simulateTransaction(d, {
28
+ }).compileToV0Message(l)), g = await o.simulateTransaction(h, {
28
29
  sigVerify: !1,
29
30
  replaceRecentBlockhash: !0
30
- })).value;
31
- if (!m) return n;
32
- let h = Math.ceil(m * (1 + t));
33
- return Math.max(i, Math.min(h, n));
34
- } catch {
35
- return n;
31
+ });
32
+ g.value.err && a.error("Solana compute-unit simulation failed:", {
33
+ error: e(g.value.err),
34
+ logs: g.value.logs
35
+ });
36
+ let { unitsConsumed: _ } = g.value;
37
+ if (!_) return n;
38
+ let v = Math.ceil(_ * (1 + t));
39
+ return Math.max(i, Math.min(v, n));
40
+ } catch (e) {
41
+ return a.error("Solana compute-unit estimation threw:", e), n;
36
42
  }
37
- }, C = (e, t, n, r) => {
43
+ }, w = (e, t, n, r) => {
38
44
  let i = /* @__PURE__ */ new Set();
39
45
  return t && i.add(t.toBase58()), n?.forEach((e) => i.add(e.toBase58())), e.forEach((e) => {
40
46
  i.add(e.programId.toBase58()), e.keys.forEach((e) => {
@@ -44,78 +50,84 @@ var v = 5e3, y = 6e4, b = 7, x = async (e, t, n = "confirmed") => await c(() =>
44
50
  i.add(e.key.toBase58()), e.state.addresses.forEach((e) => {
45
51
  i.add(e.toBase58());
46
52
  });
47
- }), [...i].map((e) => new d(e));
48
- }, w = (t) => {
49
- if (!t) throw Error("Failed to fetch Solana transaction details for signature");
53
+ }), [...i].map((e) => new f(e));
54
+ }, T = (t, n) => {
55
+ if (!t) throw Error(`Failed to fetch Solana transaction details for signature${n ? ` ${n}` : ""}`);
50
56
  if (t.meta?.err) {
51
- let n = e(t.meta.err), r = t.meta.logMessages?.join("\n");
52
- throw Error(r ? `Solana transaction failed on-chain: ${n}\n${r}` : `Solana transaction failed on-chain: ${n}`);
57
+ let r = e(t.meta.err), i = t.meta.logMessages?.join("\n");
58
+ a.error("Solana transaction failed on-chain", {
59
+ signature: n,
60
+ error: r,
61
+ logs: t.meta.logMessages
62
+ });
63
+ let o = n ? ` (signature: ${n})` : "";
64
+ throw Error(i ? `Solana transaction failed on-chain${o}: ${r}\n${i}` : `Solana transaction failed on-chain${o}: ${r}`);
53
65
  }
54
- }, T = async (e, t, i, a, o, c = !1) => {
55
- if (i.some((e) => e.programId.equals(u.programId))) return i.map((e) => e.programId.equals(u.programId) && e.data[0] === 2 ? u.setComputeUnitLimit({ units: n }) : e);
56
- let l = i.filter((e) => !e.programId.equals(u.programId)), d = await S(e, t, l, a, c), f = u.setComputeUnitLimit({ units: d }), p = e.rpcEndpoint.includes("helius") ? await s(C(l, t, [u.programId], a), o) : 0;
66
+ }, E = async (e, t, i, a, o, s = !1) => {
67
+ if (i.some((e) => e.programId.equals(d.programId))) return i.map((e) => e.programId.equals(d.programId) && e.data[0] === 2 ? d.setComputeUnitLimit({ units: n }) : e);
68
+ let l = i.filter((e) => !e.programId.equals(d.programId)), u = await C(e, t, l, a, s), f = d.setComputeUnitLimit({ units: u }), p = e.rpcEndpoint.includes("helius") ? await c(w(l, t, [d.programId], a), o) : 0;
57
69
  return [
58
70
  f,
59
- u.setComputeUnitPrice({ microLamports: p }),
60
- ...c ? [u.requestHeapFrame({ bytes: r })] : [],
71
+ d.setComputeUnitPrice({ microLamports: p }),
72
+ ...s ? [d.requestHeapFrame({ bytes: r })] : [],
61
73
  ...l
62
74
  ];
63
- }, E = async (e, t, n, r, i, a = !1) => {
75
+ }, D = async (e, t, n, r, i, a = !1) => {
64
76
  if (t.length === 0) return "";
65
- for (let s = 0; s < 10; s += 1) {
66
- let c = s === 9;
77
+ for (let o = 0; o < 10; o += 1) {
78
+ let c = o === 9;
67
79
  try {
68
- let c = await T(e, n.publicKey, t, i, s >= b ? o.HIGH : o.RECOMMENDED, a), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new p(new f({
80
+ let c = await E(e, n.publicKey, t, i, o >= x ? s.HIGH : s.RECOMMENDED, a), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new m(new p({
69
81
  payerKey: n.publicKey,
70
82
  instructions: c,
71
83
  recentBlockhash: l
72
84
  }).compileToV0Message(i));
73
85
  d.sign(r);
74
- let m = await e.sendTransaction(d);
86
+ let f = await e.sendTransaction(d);
75
87
  return await e.confirmTransaction({
76
- signature: m,
88
+ signature: f,
77
89
  blockhash: l,
78
90
  lastValidBlockHeight: u
79
- }, "confirmed"), w(await x(e, m)), m;
91
+ }, "confirmed"), T(await S(e, f), f), f;
80
92
  } catch (e) {
81
- if (l(e) && !c) continue;
93
+ if (u(e) && !c) continue;
82
94
  throw e;
83
95
  }
84
96
  }
85
97
  return "";
86
- }, D = async (e, t, n, r) => {
98
+ }, O = async (e, t, n, r) => {
87
99
  if (!n) return null;
88
- let i = await _(n, r, !0, h, m);
89
- return await e.getAccountInfo(i) || await E(e, [g(t.publicKey, i, r, n, h, m)], t, [t]), i;
90
- }, O = async ({ connection: e, chainId: t, subAccount: n, payerPublicKey: r, instructions: i, lookupTableAccounts: s }) => {
91
- let c = a.getPrivateKeyFromSubAccount(t, n);
100
+ let i = await v(n, r, !0, g, h);
101
+ return await e.getAccountInfo(i) || await D(e, [_(t.publicKey, i, r, n, g, h)], t, [t]), i;
102
+ }, k = async ({ connection: e, chainId: t, subAccount: n, payerPublicKey: r, instructions: i, lookupTableAccounts: a }) => {
103
+ let c = o.getPrivateKeyFromSubAccount(t, n);
92
104
  if (!c) throw Error("Private key is not available");
93
105
  for (let t = 0; t < 10; t += 1) {
94
106
  let n = t === 9;
95
107
  try {
96
- let t = await T(e, r, i, s, n ? o.HIGH : o.RECOMMENDED), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new p(new f({
108
+ let t = await E(e, r, i, a, n ? s.HIGH : s.RECOMMENDED), { blockhash: l, lastValidBlockHeight: u } = await e.getLatestBlockhash(), d = new m(new p({
97
109
  payerKey: r,
98
110
  recentBlockhash: l,
99
111
  instructions: t
100
- }).compileToV0Message(s)), m = await a.sendAndSignSolanaTransactionFromPrivateKey(e, c, d, !0);
112
+ }).compileToV0Message(a)), f = await o.sendAndSignSolanaTransactionFromPrivateKey(e, c, d, !0);
101
113
  return await e.confirmTransaction({
102
- signature: m,
114
+ signature: f,
103
115
  blockhash: l,
104
116
  lastValidBlockHeight: u
105
- }, "confirmed"), w(await x(e, m)), m;
117
+ }, "confirmed"), T(await S(e, f), f), f;
106
118
  } catch (e) {
107
- if (l(e) && !n) continue;
119
+ if (u(e) && !n) continue;
108
120
  throw e;
109
121
  }
110
122
  }
111
123
  throw Error("Failed to send proxy v0 transaction due to expired blockheight after all retries");
112
- }, k = async (e, t, n, r) => {
113
- let { blockhash: i } = await e.getLatestBlockhash(), a = new p(new f({
124
+ }, A = async (e, t, n, r) => {
125
+ let { blockhash: i } = await e.getLatestBlockhash(), a = new m(new p({
114
126
  payerKey: t,
115
127
  recentBlockhash: i,
116
- instructions: await T(e, t, n, r)
128
+ instructions: await E(e, t, n, r)
117
129
  }).compileToV0Message(r));
118
130
  return Buffer.from(a.serialize()).toString("base64");
119
131
  };
120
132
  //#endregion
121
- export { D as ensureAtaExists, S as estimateComputeUnitLimit, x as fetchSolanaTransaction, C as getAccountsFromInstructions, O as sendProxyV0Transaction, E as sendV0Transaction, k as serializeProxyV0Transaction };
133
+ export { O as ensureAtaExists, C as estimateComputeUnitLimit, S as fetchSolanaTransaction, w as getAccountsFromInstructions, k as sendProxyV0Transaction, D as sendV0Transaction, A as serializeProxyV0Transaction };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/circom-data.types.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/crypto-keys/keys.cjs`),r=require(`../utils/bit.operations.cjs`),i=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),a=require(`../utils/external-action.utils.cjs`),o=require(`./getOriginalSender.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return n.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.randomization!==void 0)return e.randomization.toString();if(!e.isNewStyle)throw Error(`UTXO missing randomization for old-style proof input`);return`0`},u=(e,t)=>e.map((e,n)=>e.map(e=>t[n]?`0`:e.getNullifier())),d=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),f=(e,n,r=!1)=>{let i=[];for(let a=0;a<e.length;a+=1){let o=0n,s=0n;for(let t=0;t<e[a].length;t+=1)o+=e[a][t].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(t.CIRCOM_P+(s-o)):i.push(s-o)}return i},p=e=>e.map(e=>e>=0n?0n:e),m=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,r)=>{t[n][r]=`0x${Buffer.from(i.encryptUtxo(e)).toString(`hex`)}`});return t},h=(e,t)=>{let n=[];for(let r=0;r<e.length;r+=1){n.push([]);for(let i=0;i<e[r].length;i+=1)n[r][i]=t.getSiblingHashesForVerification(BigInt(e[r][i].getCommitment())).map(e=>e.toString())}let r=[];for(let n=0;n<e.length;n+=1){r.push([]);for(let i=0;i<e[n].length;i+=1)r[n][i]=t.getSiblingSides(BigInt(e[n][i].getCommitment())).map(e=>e.toString())}return{inCommitmentSiblings:n,inCommitmentSiblingSides:r}},g=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},_=e=>{let t={...e.hinkalLogicArgs,inHinkalAddress:BigInt(e.hinkalLogicArgs.inHinkalAddress),executeApprovalChanges:e.hinkalLogicArgs.executeApprovalChanges.map(e=>BigInt(e)),useApprovalUtxoData:e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({...e,approvalChanges:e.approvalChanges.map(e=>BigInt(e)),conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>BigInt(e))}))};return{...e,amountChanges:e.amountChanges.map(e=>BigInt(e)),calldataHash:BigInt(e.calldataHash),rootHashAccessToken:BigInt(e.rootHashAccessToken),rootHashHinkal:BigInt(e.rootHashHinkal),externalActionId:BigInt(e.externalActionId),stealthAddressStructure:{extraRandomization:BigInt(e.stealthAddressStructure.extraRandomization),stealthAddress:BigInt(e.stealthAddressStructure.stealthAddress),H0:BigInt(e.stealthAddressStructure.H0),H1:BigInt(e.stealthAddressStructure.H1)},feeStructure:{...e.feeStructure,flatFee:BigInt(e.feeStructure.flatFee),variableRate:BigInt(e.feeStructure.variableRate)},slippageValues:e.slippageValues.map(e=>BigInt(e)),hinkalLogicArgs:t}},v=(n,r,i,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||e.defaultHookData),v=g??o.getOriginalSender(i??t.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[n,r,i,typeof c==`bigint`?c:a.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%t.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,t,i)=>{let{H0:a}=n.UserKeys.getRandomizedStealthPair(e,t),o=n.UserKeys.getH1FromH0(a,t),s=BigInt(n.UserKeys.getStealthAddressNewStyle(a,t,i));return{extraRandomization:r.addHighestBitToNumber(a[0]),H0:a[1],H1:o[1],stealthAddress:s}},x=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildInNullifiers=u,exports.buildOutCommitments=d,exports.calcAmountChanges=f,exports.calcCommitmentsSiblingAndSides=h,exports.calcEncryptedOutputs=m,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=b,exports.createCallDataHash=v,exports.deserializeCircomData=_,exports.getSlippageValues=p,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=x,exports.serializeCircomData=g;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../types/circom-data.types.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/crypto-keys/keys.cjs`),r=require(`../utils/bit.operations.cjs`),i=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),a=require(`../utils/external-action.utils.cjs`),o=require(`./getOriginalSender.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return n.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=(e,t)=>e.map((e,n)=>e.map(e=>t[n]?`0`:e.getNullifier())),d=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),f=(e,n,r=!1)=>{let i=[];for(let a=0;a<e.length;a+=1){let o=0n,s=0n;for(let t=0;t<e[a].length;t+=1)o+=e[a][t].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(t.CIRCOM_P+(s-o)):i.push(s-o)}return i},p=e=>e.map(e=>e>=0n?0n:e),m=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,r)=>{t[n][r]=`0x${Buffer.from(i.encryptUtxo(e)).toString(`hex`)}`});return t},h=(e,t)=>{let n=[];for(let r=0;r<e.length;r+=1){n.push([]);for(let i=0;i<e[r].length;i+=1)n[r][i]=t.getSiblingHashesForVerification(BigInt(e[r][i].getCommitment())).map(e=>e.toString())}let r=[];for(let n=0;n<e.length;n+=1){r.push([]);for(let i=0;i<e[n].length;i+=1)r[n][i]=t.getSiblingSides(BigInt(e[n][i].getCommitment())).map(e=>e.toString())}return{inCommitmentSiblings:n,inCommitmentSiblingSides:r}},g=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},_=e=>{let t={...e.hinkalLogicArgs,inHinkalAddress:BigInt(e.hinkalLogicArgs.inHinkalAddress),executeApprovalChanges:e.hinkalLogicArgs.executeApprovalChanges.map(e=>BigInt(e)),useApprovalUtxoData:e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({...e,approvalChanges:e.approvalChanges.map(e=>BigInt(e)),conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>BigInt(e))}))};return{...e,amountChanges:e.amountChanges.map(e=>BigInt(e)),calldataHash:BigInt(e.calldataHash),rootHashAccessToken:BigInt(e.rootHashAccessToken),rootHashHinkal:BigInt(e.rootHashHinkal),externalActionId:BigInt(e.externalActionId),stealthAddressStructure:{extraRandomization:BigInt(e.stealthAddressStructure.extraRandomization),stealthAddress:BigInt(e.stealthAddressStructure.stealthAddress),H0:BigInt(e.stealthAddressStructure.H0),H1:BigInt(e.stealthAddressStructure.H1)},feeStructure:{...e.feeStructure,flatFee:BigInt(e.feeStructure.flatFee),variableRate:BigInt(e.feeStructure.variableRate)},slippageValues:e.slippageValues.map(e=>BigInt(e)),hinkalLogicArgs:t}},v=(n,r,i,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||e.defaultHookData),v=g??o.getOriginalSender(i??t.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[n,r,i,typeof c==`bigint`?c:a.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%t.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,t,i)=>{let{H0:a}=n.UserKeys.getRandomizedStealthPair(e,t),o=n.UserKeys.getH1FromH0(a,t),s=BigInt(n.UserKeys.getStealthAddressNewStyle(a,t,i));return{extraRandomization:r.addHighestBitToNumber(a[0]),H0:a[1],H1:o[1],stealthAddress:s}},x=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildInNullifiers=u,exports.buildOutCommitments=d,exports.calcAmountChanges=f,exports.calcCommitmentsSiblingAndSides=h,exports.calcEncryptedOutputs=m,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=b,exports.createCallDataHash=v,exports.deserializeCircomData=_,exports.getSlippageValues=p,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=x,exports.serializeCircomData=g;
@@ -12,9 +12,9 @@ var l = (e) => {
12
12
  if (e.randomization !== void 0) return r.getH0FromRandomization(e.randomization);
13
13
  throw Error("UTXO missing H0 coordinates for proof input");
14
14
  }, u = (e) => {
15
+ if (e.isNewStyle) return "0";
15
16
  if (e.randomization !== void 0) return e.randomization.toString();
16
- if (!e.isNewStyle) throw Error("UTXO missing randomization for old-style proof input");
17
- return "0";
17
+ throw Error("UTXO missing randomization for old-style proof input");
18
18
  }, d = (e, t) => e.map((e, n) => e.map((e) => t[n] ? "0" : e.getNullifier())), f = (e) => e.map((e) => e.map((e) => e.amount === 0n ? "0" : e.getCommitment())), p = (e, n, r = !1) => {
19
19
  let i = [];
20
20
  for (let a = 0; a < e.length; a += 1) {
@@ -1 +1 @@
1
- const e=require(`../../constants/vite.constants.cjs`),t=require(`../../API/getServerURL.cjs`);var n=e.isNotProduction?`https://enclave-staging.hinkal.io`:`https://enclave-server.hinkal.io`,r=`${t.BACK_END_URL}/verifiers-v2/`,i={mainEVMCircuit1x2x1v1x1Wasm:`${r}mainEVMCircuit1x2x1-1.1.wasm`,mainEVMCircuit1x2x1v1x1Zkey:`${r}mainEVMCircuit1x2x1_final-1.1.zkey`,mainEVMCircuit1x6x1v1x1Wasm:`${r}mainEVMCircuit1x6x1-1.1.wasm`,mainEVMCircuit1x6x1v1x1Zkey:`${r}mainEVMCircuit1x6x1_final-1.1.zkey`,mainEVMCircuit2x2x1v1x1Wasm:`${r}mainEVMCircuit2x2x1-1.1.wasm`,mainEVMCircuit2x2x1v1x1Zkey:`${r}mainEVMCircuit2x2x1_final-1.1.zkey`,mainEVMCircuit2x6x1v1x1Wasm:`${r}mainEVMCircuit2x6x1-1.1.wasm`,mainEVMCircuit2x6x1v1x1Zkey:`${r}mainEVMCircuit2x6x1_final-1.1.zkey`,mainEVMCircuit3x2x1v1x1Wasm:`${r}mainEVMCircuit3x2x1-1.1.wasm`,mainEVMCircuit3x2x1v1x1Zkey:`${r}mainEVMCircuit3x2x1_final-1.1.zkey`,mainEVMCircuit3x6x1v1x1Wasm:`${r}mainEVMCircuit3x6x1-1.1.wasm`,mainEVMCircuit3x6x1v1x1Zkey:`${r}mainEVMCircuit3x6x1_final-1.1.zkey`,mainEVMCircuit4x2x1v1x1Wasm:`${r}mainEVMCircuit4x2x1-1.1.wasm`,mainEVMCircuit4x2x1v1x1Zkey:`${r}mainEVMCircuit4x2x1_final-1.1.zkey`,mainEVMCircuit4x6x1v1x1Wasm:`${r}mainEVMCircuit4x6x1-1.1.wasm`,mainEVMCircuit4x6x1v1x1Zkey:`${r}mainEVMCircuit4x6x1_final-1.1.zkey`,mainEVMCircuit5x2x1v1x1Wasm:`${r}mainEVMCircuit5x2x1-1.1.wasm`,mainEVMCircuit5x2x1v1x1Zkey:`${r}mainEVMCircuit5x2x1_final-1.1.zkey`,mainEVMCircuit5x6x1v1x1Wasm:`${r}mainEVMCircuit5x6x1-1.1.wasm`,mainEVMCircuit5x6x1v1x1Zkey:`${r}mainEVMCircuit5x6x1_final-1.1.zkey`,mainEVMCircuit1x2x2v1x1Wasm:`${r}mainEVMCircuit1x2x2-1.1.wasm`,mainEVMCircuit1x2x2v1x1Zkey:`${r}mainEVMCircuit1x2x2_final-1.1.zkey`,mainEVMCircuit1x6x2v1x1Wasm:`${r}mainEVMCircuit1x6x2-1.1.wasm`,mainEVMCircuit1x6x2v1x1Zkey:`${r}mainEVMCircuit1x6x2_final-1.1.zkey`,mainEVMCircuit2x2x2v1x1Wasm:`${r}mainEVMCircuit2x2x2-1.1.wasm`,mainEVMCircuit2x2x2v1x1Zkey:`${r}mainEVMCircuit2x2x2_final-1.1.zkey`,mainEVMCircuit2x6x2v1x1Wasm:`${r}mainEVMCircuit2x6x2-1.1.wasm`,mainEVMCircuit2x6x2v1x1Zkey:`${r}mainEVMCircuit2x6x2_final-1.1.zkey`,mainEVMCircuitMin0v1x1Wasm:`${r}mainEVMCircuitMin0-1.1.wasm`,mainEVMCircuitMin0v1x1Zkey:`${r}mainEVMCircuitMin0_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Zkey:`${r}mainSolanaCircuit1x2x1_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Wasm:`${r}mainSolanaCircuit1x2x1-1.1.wasm`,mainSolanaCircuit1x2x2v1x1Zkey:`${r}mainSolanaCircuit1x2x2_final-1.1.zkey`,mainSolanaCircuit1x2x2v1x1Wasm:`${r}mainSolanaCircuit1x2x2-1.1.wasm`,mainSolanaCircuit1x6x1v1x1Zkey:`${r}mainSolanaCircuit1x6x1_final-1.1.zkey`,mainSolanaCircuit1x6x1v1x1Wasm:`${r}mainSolanaCircuit1x6x1-1.1.wasm`,mainSolanaCircuit1x6x2v1x1Zkey:`${r}mainSolanaCircuit1x6x2_final-1.1.zkey`,mainSolanaCircuit1x6x2v1x1Wasm:`${r}mainSolanaCircuit1x6x2-1.1.wasm`,mainSolanaCircuit2x2x1v1x1Zkey:`${r}mainSolanaCircuit2x2x1_final-1.1.zkey`,mainSolanaCircuit2x2x1v1x1Wasm:`${r}mainSolanaCircuit2x2x1-1.1.wasm`,mainSolanaCircuit2x6x1v1x1Zkey:`${r}mainSolanaCircuit2x6x1_final-1.1.zkey`,mainSolanaCircuit2x6x1v1x1Wasm:`${r}mainSolanaCircuit2x6x1-1.1.wasm`,commitmentCalculator1x2v1x1Wasm:`${r}commitmentCalculator1x2-1.1.wasm`,commitmentCalculator1x2v1x1Zkey:`${r}commitmentCalculator1x2_final-1.1.zkey`,commitmentCalculator1x2v1x1VK:`${r}commitmentCalculator1x2_final-1.1_verification_key.json`,commitmentCalculator1x6v1x1Wasm:`${r}commitmentCalculator1x6-1.1.wasm`,commitmentCalculator1x6v1x1Zkey:`${r}commitmentCalculator1x6_final-1.1.zkey`,commitmentCalculator1x6v1x1VK:`${r}commitmentCalculator1x6_final-1.1_verification_key.json`,commitmentCalculator2x2v1x1Wasm:`${r}commitmentCalculator2x2-1.1.wasm`,commitmentCalculator2x2v1x1Zkey:`${r}commitmentCalculator2x2_final-1.1.zkey`,commitmentCalculator2x2v1x1VK:`${r}commitmentCalculator2x2_final-1.1_verification_key.json`,commitmentCalculator2x6v1x1Wasm:`${r}commitmentCalculator2x6-1.1.wasm`,commitmentCalculator2x6v1x1Zkey:`${r}commitmentCalculator2x6_final-1.1.zkey`,commitmentCalculator2x6v1x1VK:`${r}commitmentCalculator2x6_final-1.1_verification_key.json`,commitmentCalculator3x2v1x1Wasm:`${r}commitmentCalculator3x2-1.1.wasm`,commitmentCalculator3x2v1x1Zkey:`${r}commitmentCalculator3x2_final-1.1.zkey`,commitmentCalculator3x2v1x1VK:`${r}commitmentCalculator3x2_final-1.1_verification_key.json`,commitmentCalculator3x6v1x1Wasm:`${r}commitmentCalculator3x6-1.1.wasm`,commitmentCalculator3x6v1x1Zkey:`${r}commitmentCalculator3x6_final-1.1.zkey`,commitmentCalculator3x6v1x1VK:`${r}commitmentCalculator3x6_final-1.1_verification_key.json`,commitmentCalculator4x2v1x1Wasm:`${r}commitmentCalculator4x2-1.1.wasm`,commitmentCalculator4x2v1x1Zkey:`${r}commitmentCalculator4x2_final-1.1.zkey`,commitmentCalculator4x2v1x1VK:`${r}commitmentCalculator4x2_final-1.1_verification_key.json`,commitmentCalculator4x6v1x1Wasm:`${r}commitmentCalculator4x6-1.1.wasm`,commitmentCalculator4x6v1x1Zkey:`${r}commitmentCalculator4x6_final-1.1.zkey`,commitmentCalculator4x6v1x1VK:`${r}commitmentCalculator4x6_final-1.1_verification_key.json`,commitmentCalculator5x2v1x1Wasm:`${r}commitmentCalculator5x2-1.1.wasm`,commitmentCalculator5x2v1x1Zkey:`${r}commitmentCalculator5x2_final-1.1.zkey`,commitmentCalculator5x2v1x1VK:`${r}commitmentCalculator5x2_final-1.1_verification_key.json`,commitmentCalculator5x6v1x1Wasm:`${r}commitmentCalculator5x6-1.1.wasm`,commitmentCalculator5x6v1x1Zkey:`${r}commitmentCalculator5x6_final-1.1.zkey`,commitmentCalculator5x6v1x1VK:`${r}commitmentCalculator5x6_final-1.1_verification_key.json`},a={mainEVMCircuit1x2x1v1x1Wasm:`mainEVMCircuit1x2x1-1.1.wasm`,mainEVMCircuit1x2x1v1x1Zkey:`mainEVMCircuit1x2x1_final-1.1.zkey`,mainEVMCircuit1x6x1v1x1Wasm:`mainEVMCircuit1x6x1-1.1.wasm`,mainEVMCircuit1x6x1v1x1Zkey:`mainEVMCircuit1x6x1_final-1.1.zkey`,mainEVMCircuit2x2x1v1x1Wasm:`mainEVMCircuit2x2x1-1.1.wasm`,mainEVMCircuit2x2x1v1x1Zkey:`mainEVMCircuit2x2x1_final-1.1.zkey`,mainEVMCircuit2x6x1v1x1Wasm:`mainEVMCircuit2x6x1-1.1.wasm`,mainEVMCircuit2x6x1v1x1Zkey:`mainEVMCircuit2x6x1_final-1.1.zkey`,mainEVMCircuit3x2x1v1x1Wasm:`mainEVMCircuit3x2x1-1.1.wasm`,mainEVMCircuit3x2x1v1x1Zkey:`mainEVMCircuit3x2x1_final-1.1.zkey`,mainEVMCircuit3x6x1v1x1Wasm:`mainEVMCircuit3x6x1-1.1.wasm`,mainEVMCircuit3x6x1v1x1Zkey:`mainEVMCircuit3x6x1_final-1.1.zkey`,mainEVMCircuit4x2x1v1x1Wasm:`mainEVMCircuit4x2x1-1.1.wasm`,mainEVMCircuit4x2x1v1x1Zkey:`mainEVMCircuit4x2x1_final-1.1.zkey`,mainEVMCircuit4x6x1v1x1Wasm:`mainEVMCircuit4x6x1-1.1.wasm`,mainEVMCircuit4x6x1v1x1Zkey:`mainEVMCircuit4x6x1_final-1.1.zkey`,mainEVMCircuit5x2x1v1x1Wasm:`mainEVMCircuit5x2x1-1.1.wasm`,mainEVMCircuit5x2x1v1x1Zkey:`mainEVMCircuit5x2x1_final-1.1.zkey`,mainEVMCircuit5x6x1v1x1Wasm:`mainEVMCircuit5x6x1-1.1.wasm`,mainEVMCircuit5x6x1v1x1Zkey:`mainEVMCircuit5x6x1_final-1.1.zkey`,mainEVMCircuit1x2x2v1x1Wasm:`mainEVMCircuit1x2x2-1.1.wasm`,mainEVMCircuit1x2x2v1x1Zkey:`mainEVMCircuit1x2x2_final-1.1.zkey`,mainEVMCircuit1x6x2v1x1Wasm:`mainEVMCircuit1x6x2-1.1.wasm`,mainEVMCircuit1x6x2v1x1Zkey:`mainEVMCircuit1x6x2_final-1.1.zkey`,mainEVMCircuit2x2x2v1x1Wasm:`mainEVMCircuit2x2x2-1.1.wasm`,mainEVMCircuit2x2x2v1x1Zkey:`mainEVMCircuit2x2x2_final-1.1.zkey`,mainEVMCircuit2x6x2v1x1Wasm:`mainEVMCircuit2x6x2-1.1.wasm`,mainEVMCircuit2x6x2v1x1Zkey:`mainEVMCircuit2x6x2_final-1.1.zkey`,mainEVMCircuitMin0v1x1Wasm:`mainEVMCircuitMin0-1.1.wasm`,mainEVMCircuitMin0v1x1Zkey:`mainEVMCircuitMin0_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Zkey:`mainSolanaCircuit1x2x1_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Wasm:`mainSolanaCircuit1x2x1-1.1.wasm`,mainSolanaCircuit1x2x2v1x1Zkey:`mainSolanaCircuit1x2x2_final-1.1.zkey`,mainSolanaCircuit1x2x2v1x1Wasm:`mainSolanaCircuit1x2x2-1.1.wasm`,mainSolanaCircuit1x6x1v1x1Zkey:`mainSolanaCircuit1x6x1_final-1.1.zkey`,mainSolanaCircuit1x6x1v1x1Wasm:`mainSolanaCircuit1x6x1-1.1.wasm`,mainSolanaCircuit1x6x2v1x1Zkey:`mainSolanaCircuit1x6x2_final-1.1.zkey`,mainSolanaCircuit1x6x2v1x1Wasm:`mainSolanaCircuit1x6x2-1.1.wasm`,mainSolanaCircuit2x2x1v1x1Zkey:`mainSolanaCircuit2x2x1_final-1.1.zkey`,mainSolanaCircuit2x2x1v1x1Wasm:`mainSolanaCircuit2x2x1-1.1.wasm`,mainSolanaCircuit2x6x1v1x1Zkey:`mainSolanaCircuit2x6x1_final-1.1.zkey`,mainSolanaCircuit2x6x1v1x1Wasm:`mainSolanaCircuit2x6x1-1.1.wasm`,commitmentCalculator1x2v1x1Zkey:`commitmentCalculator1x2_final-1.1.zkey`,commitmentCalculator1x2v1x1Wasm:`commitmentCalculator1x2-1.1.wasm`,commitmentCalculator1x2v1x1VK:`commitmentCalculator1x2_final-1.1_verification_key.json`,commitmentCalculator1x6v1x1Zkey:`commitmentCalculator1x6_final-1.1.zkey`,commitmentCalculator1x6v1x1Wasm:`commitmentCalculator1x6-1.1.wasm`,commitmentCalculator1x6v1x1VK:`commitmentCalculator1x6_final-1.1_verification_key.json`,commitmentCalculator2x2v1x1Zkey:`commitmentCalculator2x2_final-1.1.zkey`,commitmentCalculator2x2v1x1Wasm:`commitmentCalculator2x2-1.1.wasm`,commitmentCalculator2x2v1x1VK:`commitmentCalculator2x2_final-1.1_verification_key.json`,commitmentCalculator2x6v1x1Zkey:`commitmentCalculator2x6_final-1.1.zkey`,commitmentCalculator2x6v1x1Wasm:`commitmentCalculator2x6-1.1.wasm`,commitmentCalculator2x6v1x1VK:`commitmentCalculator2x6_final-1.1_verification_key.json`,commitmentCalculator3x2v1x1Zkey:`commitmentCalculator3x2_final-1.1.zkey`,commitmentCalculator3x2v1x1Wasm:`commitmentCalculator3x2-1.1.wasm`,commitmentCalculator3x2v1x1VK:`commitmentCalculator3x2_final-1.1_verification_key.json`,commitmentCalculator3x6v1x1Zkey:`commitmentCalculator3x6_final-1.1.zkey`,commitmentCalculator3x6v1x1Wasm:`commitmentCalculator3x6-1.1.wasm`,commitmentCalculator3x6v1x1VK:`commitmentCalculator3x6_final-1.1_verification_key.json`,commitmentCalculator4x2v1x1Zkey:`commitmentCalculator4x2_final-1.1.zkey`,commitmentCalculator4x2v1x1Wasm:`commitmentCalculator4x2-1.1.wasm`,commitmentCalculator4x2v1x1VK:`commitmentCalculator4x2_final-1.1_verification_key.json`,commitmentCalculator4x6v1x1Zkey:`commitmentCalculator4x6_final-1.1.zkey`,commitmentCalculator4x6v1x1Wasm:`commitmentCalculator4x6-1.1.wasm`,commitmentCalculator4x6v1x1VK:`commitmentCalculator4x6_final-1.1_verification_key.json`,commitmentCalculator5x2v1x1Zkey:`commitmentCalculator5x2_final-1.1.zkey`,commitmentCalculator5x2v1x1Wasm:`commitmentCalculator5x2-1.1.wasm`,commitmentCalculator5x2v1x1VK:`commitmentCalculator5x2_final-1.1_verification_key.json`,commitmentCalculator5x6v1x1Zkey:`commitmentCalculator5x6_final-1.1.zkey`,commitmentCalculator5x6v1x1Wasm:`commitmentCalculator5x6-1.1.wasm`,commitmentCalculator5x6v1x1VK:`commitmentCalculator5x6_final-1.1_verification_key.json`};exports.ENCLAVE_URL=n,exports.localVerifiers=a,exports.prodVerifiers=i;
1
+ const e=require(`../../constants/vite.constants.cjs`),t=require(`../../API/getServerURL.cjs`);var n=e.isNotProduction?`https://enclave-staging-v2.hinkal.io`:`https://enclave-server.hinkal.io`,r=`${t.BACK_END_URL}/verifiers-v2/`,i={mainEVMCircuit1x2x1v1x1Wasm:`${r}mainEVMCircuit1x2x1-1.1.wasm`,mainEVMCircuit1x2x1v1x1Zkey:`${r}mainEVMCircuit1x2x1_final-1.1.zkey`,mainEVMCircuit1x6x1v1x1Wasm:`${r}mainEVMCircuit1x6x1-1.1.wasm`,mainEVMCircuit1x6x1v1x1Zkey:`${r}mainEVMCircuit1x6x1_final-1.1.zkey`,mainEVMCircuit2x2x1v1x1Wasm:`${r}mainEVMCircuit2x2x1-1.1.wasm`,mainEVMCircuit2x2x1v1x1Zkey:`${r}mainEVMCircuit2x2x1_final-1.1.zkey`,mainEVMCircuit2x6x1v1x1Wasm:`${r}mainEVMCircuit2x6x1-1.1.wasm`,mainEVMCircuit2x6x1v1x1Zkey:`${r}mainEVMCircuit2x6x1_final-1.1.zkey`,mainEVMCircuit3x2x1v1x1Wasm:`${r}mainEVMCircuit3x2x1-1.1.wasm`,mainEVMCircuit3x2x1v1x1Zkey:`${r}mainEVMCircuit3x2x1_final-1.1.zkey`,mainEVMCircuit3x6x1v1x1Wasm:`${r}mainEVMCircuit3x6x1-1.1.wasm`,mainEVMCircuit3x6x1v1x1Zkey:`${r}mainEVMCircuit3x6x1_final-1.1.zkey`,mainEVMCircuit4x2x1v1x1Wasm:`${r}mainEVMCircuit4x2x1-1.1.wasm`,mainEVMCircuit4x2x1v1x1Zkey:`${r}mainEVMCircuit4x2x1_final-1.1.zkey`,mainEVMCircuit4x6x1v1x1Wasm:`${r}mainEVMCircuit4x6x1-1.1.wasm`,mainEVMCircuit4x6x1v1x1Zkey:`${r}mainEVMCircuit4x6x1_final-1.1.zkey`,mainEVMCircuit5x2x1v1x1Wasm:`${r}mainEVMCircuit5x2x1-1.1.wasm`,mainEVMCircuit5x2x1v1x1Zkey:`${r}mainEVMCircuit5x2x1_final-1.1.zkey`,mainEVMCircuit5x6x1v1x1Wasm:`${r}mainEVMCircuit5x6x1-1.1.wasm`,mainEVMCircuit5x6x1v1x1Zkey:`${r}mainEVMCircuit5x6x1_final-1.1.zkey`,mainEVMCircuit1x2x2v1x1Wasm:`${r}mainEVMCircuit1x2x2-1.1.wasm`,mainEVMCircuit1x2x2v1x1Zkey:`${r}mainEVMCircuit1x2x2_final-1.1.zkey`,mainEVMCircuit1x6x2v1x1Wasm:`${r}mainEVMCircuit1x6x2-1.1.wasm`,mainEVMCircuit1x6x2v1x1Zkey:`${r}mainEVMCircuit1x6x2_final-1.1.zkey`,mainEVMCircuit2x2x2v1x1Wasm:`${r}mainEVMCircuit2x2x2-1.1.wasm`,mainEVMCircuit2x2x2v1x1Zkey:`${r}mainEVMCircuit2x2x2_final-1.1.zkey`,mainEVMCircuit2x6x2v1x1Wasm:`${r}mainEVMCircuit2x6x2-1.1.wasm`,mainEVMCircuit2x6x2v1x1Zkey:`${r}mainEVMCircuit2x6x2_final-1.1.zkey`,mainEVMCircuitMin0v1x1Wasm:`${r}mainEVMCircuitMin0-1.1.wasm`,mainEVMCircuitMin0v1x1Zkey:`${r}mainEVMCircuitMin0_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Zkey:`${r}mainSolanaCircuit1x2x1_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Wasm:`${r}mainSolanaCircuit1x2x1-1.1.wasm`,mainSolanaCircuit1x2x2v1x1Zkey:`${r}mainSolanaCircuit1x2x2_final-1.1.zkey`,mainSolanaCircuit1x2x2v1x1Wasm:`${r}mainSolanaCircuit1x2x2-1.1.wasm`,mainSolanaCircuit1x6x1v1x1Zkey:`${r}mainSolanaCircuit1x6x1_final-1.1.zkey`,mainSolanaCircuit1x6x1v1x1Wasm:`${r}mainSolanaCircuit1x6x1-1.1.wasm`,mainSolanaCircuit1x6x2v1x1Zkey:`${r}mainSolanaCircuit1x6x2_final-1.1.zkey`,mainSolanaCircuit1x6x2v1x1Wasm:`${r}mainSolanaCircuit1x6x2-1.1.wasm`,mainSolanaCircuit2x2x1v1x1Zkey:`${r}mainSolanaCircuit2x2x1_final-1.1.zkey`,mainSolanaCircuit2x2x1v1x1Wasm:`${r}mainSolanaCircuit2x2x1-1.1.wasm`,mainSolanaCircuit2x6x1v1x1Zkey:`${r}mainSolanaCircuit2x6x1_final-1.1.zkey`,mainSolanaCircuit2x6x1v1x1Wasm:`${r}mainSolanaCircuit2x6x1-1.1.wasm`,commitmentCalculator1x2v1x1Wasm:`${r}commitmentCalculator1x2-1.1.wasm`,commitmentCalculator1x2v1x1Zkey:`${r}commitmentCalculator1x2_final-1.1.zkey`,commitmentCalculator1x2v1x1VK:`${r}commitmentCalculator1x2_final-1.1_verification_key.json`,commitmentCalculator1x6v1x1Wasm:`${r}commitmentCalculator1x6-1.1.wasm`,commitmentCalculator1x6v1x1Zkey:`${r}commitmentCalculator1x6_final-1.1.zkey`,commitmentCalculator1x6v1x1VK:`${r}commitmentCalculator1x6_final-1.1_verification_key.json`,commitmentCalculator2x2v1x1Wasm:`${r}commitmentCalculator2x2-1.1.wasm`,commitmentCalculator2x2v1x1Zkey:`${r}commitmentCalculator2x2_final-1.1.zkey`,commitmentCalculator2x2v1x1VK:`${r}commitmentCalculator2x2_final-1.1_verification_key.json`,commitmentCalculator2x6v1x1Wasm:`${r}commitmentCalculator2x6-1.1.wasm`,commitmentCalculator2x6v1x1Zkey:`${r}commitmentCalculator2x6_final-1.1.zkey`,commitmentCalculator2x6v1x1VK:`${r}commitmentCalculator2x6_final-1.1_verification_key.json`,commitmentCalculator3x2v1x1Wasm:`${r}commitmentCalculator3x2-1.1.wasm`,commitmentCalculator3x2v1x1Zkey:`${r}commitmentCalculator3x2_final-1.1.zkey`,commitmentCalculator3x2v1x1VK:`${r}commitmentCalculator3x2_final-1.1_verification_key.json`,commitmentCalculator3x6v1x1Wasm:`${r}commitmentCalculator3x6-1.1.wasm`,commitmentCalculator3x6v1x1Zkey:`${r}commitmentCalculator3x6_final-1.1.zkey`,commitmentCalculator3x6v1x1VK:`${r}commitmentCalculator3x6_final-1.1_verification_key.json`,commitmentCalculator4x2v1x1Wasm:`${r}commitmentCalculator4x2-1.1.wasm`,commitmentCalculator4x2v1x1Zkey:`${r}commitmentCalculator4x2_final-1.1.zkey`,commitmentCalculator4x2v1x1VK:`${r}commitmentCalculator4x2_final-1.1_verification_key.json`,commitmentCalculator4x6v1x1Wasm:`${r}commitmentCalculator4x6-1.1.wasm`,commitmentCalculator4x6v1x1Zkey:`${r}commitmentCalculator4x6_final-1.1.zkey`,commitmentCalculator4x6v1x1VK:`${r}commitmentCalculator4x6_final-1.1_verification_key.json`,commitmentCalculator5x2v1x1Wasm:`${r}commitmentCalculator5x2-1.1.wasm`,commitmentCalculator5x2v1x1Zkey:`${r}commitmentCalculator5x2_final-1.1.zkey`,commitmentCalculator5x2v1x1VK:`${r}commitmentCalculator5x2_final-1.1_verification_key.json`,commitmentCalculator5x6v1x1Wasm:`${r}commitmentCalculator5x6-1.1.wasm`,commitmentCalculator5x6v1x1Zkey:`${r}commitmentCalculator5x6_final-1.1.zkey`,commitmentCalculator5x6v1x1VK:`${r}commitmentCalculator5x6_final-1.1_verification_key.json`},a={mainEVMCircuit1x2x1v1x1Wasm:`mainEVMCircuit1x2x1-1.1.wasm`,mainEVMCircuit1x2x1v1x1Zkey:`mainEVMCircuit1x2x1_final-1.1.zkey`,mainEVMCircuit1x6x1v1x1Wasm:`mainEVMCircuit1x6x1-1.1.wasm`,mainEVMCircuit1x6x1v1x1Zkey:`mainEVMCircuit1x6x1_final-1.1.zkey`,mainEVMCircuit2x2x1v1x1Wasm:`mainEVMCircuit2x2x1-1.1.wasm`,mainEVMCircuit2x2x1v1x1Zkey:`mainEVMCircuit2x2x1_final-1.1.zkey`,mainEVMCircuit2x6x1v1x1Wasm:`mainEVMCircuit2x6x1-1.1.wasm`,mainEVMCircuit2x6x1v1x1Zkey:`mainEVMCircuit2x6x1_final-1.1.zkey`,mainEVMCircuit3x2x1v1x1Wasm:`mainEVMCircuit3x2x1-1.1.wasm`,mainEVMCircuit3x2x1v1x1Zkey:`mainEVMCircuit3x2x1_final-1.1.zkey`,mainEVMCircuit3x6x1v1x1Wasm:`mainEVMCircuit3x6x1-1.1.wasm`,mainEVMCircuit3x6x1v1x1Zkey:`mainEVMCircuit3x6x1_final-1.1.zkey`,mainEVMCircuit4x2x1v1x1Wasm:`mainEVMCircuit4x2x1-1.1.wasm`,mainEVMCircuit4x2x1v1x1Zkey:`mainEVMCircuit4x2x1_final-1.1.zkey`,mainEVMCircuit4x6x1v1x1Wasm:`mainEVMCircuit4x6x1-1.1.wasm`,mainEVMCircuit4x6x1v1x1Zkey:`mainEVMCircuit4x6x1_final-1.1.zkey`,mainEVMCircuit5x2x1v1x1Wasm:`mainEVMCircuit5x2x1-1.1.wasm`,mainEVMCircuit5x2x1v1x1Zkey:`mainEVMCircuit5x2x1_final-1.1.zkey`,mainEVMCircuit5x6x1v1x1Wasm:`mainEVMCircuit5x6x1-1.1.wasm`,mainEVMCircuit5x6x1v1x1Zkey:`mainEVMCircuit5x6x1_final-1.1.zkey`,mainEVMCircuit1x2x2v1x1Wasm:`mainEVMCircuit1x2x2-1.1.wasm`,mainEVMCircuit1x2x2v1x1Zkey:`mainEVMCircuit1x2x2_final-1.1.zkey`,mainEVMCircuit1x6x2v1x1Wasm:`mainEVMCircuit1x6x2-1.1.wasm`,mainEVMCircuit1x6x2v1x1Zkey:`mainEVMCircuit1x6x2_final-1.1.zkey`,mainEVMCircuit2x2x2v1x1Wasm:`mainEVMCircuit2x2x2-1.1.wasm`,mainEVMCircuit2x2x2v1x1Zkey:`mainEVMCircuit2x2x2_final-1.1.zkey`,mainEVMCircuit2x6x2v1x1Wasm:`mainEVMCircuit2x6x2-1.1.wasm`,mainEVMCircuit2x6x2v1x1Zkey:`mainEVMCircuit2x6x2_final-1.1.zkey`,mainEVMCircuitMin0v1x1Wasm:`mainEVMCircuitMin0-1.1.wasm`,mainEVMCircuitMin0v1x1Zkey:`mainEVMCircuitMin0_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Zkey:`mainSolanaCircuit1x2x1_final-1.1.zkey`,mainSolanaCircuit1x2x1v1x1Wasm:`mainSolanaCircuit1x2x1-1.1.wasm`,mainSolanaCircuit1x2x2v1x1Zkey:`mainSolanaCircuit1x2x2_final-1.1.zkey`,mainSolanaCircuit1x2x2v1x1Wasm:`mainSolanaCircuit1x2x2-1.1.wasm`,mainSolanaCircuit1x6x1v1x1Zkey:`mainSolanaCircuit1x6x1_final-1.1.zkey`,mainSolanaCircuit1x6x1v1x1Wasm:`mainSolanaCircuit1x6x1-1.1.wasm`,mainSolanaCircuit1x6x2v1x1Zkey:`mainSolanaCircuit1x6x2_final-1.1.zkey`,mainSolanaCircuit1x6x2v1x1Wasm:`mainSolanaCircuit1x6x2-1.1.wasm`,mainSolanaCircuit2x2x1v1x1Zkey:`mainSolanaCircuit2x2x1_final-1.1.zkey`,mainSolanaCircuit2x2x1v1x1Wasm:`mainSolanaCircuit2x2x1-1.1.wasm`,mainSolanaCircuit2x6x1v1x1Zkey:`mainSolanaCircuit2x6x1_final-1.1.zkey`,mainSolanaCircuit2x6x1v1x1Wasm:`mainSolanaCircuit2x6x1-1.1.wasm`,commitmentCalculator1x2v1x1Zkey:`commitmentCalculator1x2_final-1.1.zkey`,commitmentCalculator1x2v1x1Wasm:`commitmentCalculator1x2-1.1.wasm`,commitmentCalculator1x2v1x1VK:`commitmentCalculator1x2_final-1.1_verification_key.json`,commitmentCalculator1x6v1x1Zkey:`commitmentCalculator1x6_final-1.1.zkey`,commitmentCalculator1x6v1x1Wasm:`commitmentCalculator1x6-1.1.wasm`,commitmentCalculator1x6v1x1VK:`commitmentCalculator1x6_final-1.1_verification_key.json`,commitmentCalculator2x2v1x1Zkey:`commitmentCalculator2x2_final-1.1.zkey`,commitmentCalculator2x2v1x1Wasm:`commitmentCalculator2x2-1.1.wasm`,commitmentCalculator2x2v1x1VK:`commitmentCalculator2x2_final-1.1_verification_key.json`,commitmentCalculator2x6v1x1Zkey:`commitmentCalculator2x6_final-1.1.zkey`,commitmentCalculator2x6v1x1Wasm:`commitmentCalculator2x6-1.1.wasm`,commitmentCalculator2x6v1x1VK:`commitmentCalculator2x6_final-1.1_verification_key.json`,commitmentCalculator3x2v1x1Zkey:`commitmentCalculator3x2_final-1.1.zkey`,commitmentCalculator3x2v1x1Wasm:`commitmentCalculator3x2-1.1.wasm`,commitmentCalculator3x2v1x1VK:`commitmentCalculator3x2_final-1.1_verification_key.json`,commitmentCalculator3x6v1x1Zkey:`commitmentCalculator3x6_final-1.1.zkey`,commitmentCalculator3x6v1x1Wasm:`commitmentCalculator3x6-1.1.wasm`,commitmentCalculator3x6v1x1VK:`commitmentCalculator3x6_final-1.1_verification_key.json`,commitmentCalculator4x2v1x1Zkey:`commitmentCalculator4x2_final-1.1.zkey`,commitmentCalculator4x2v1x1Wasm:`commitmentCalculator4x2-1.1.wasm`,commitmentCalculator4x2v1x1VK:`commitmentCalculator4x2_final-1.1_verification_key.json`,commitmentCalculator4x6v1x1Zkey:`commitmentCalculator4x6_final-1.1.zkey`,commitmentCalculator4x6v1x1Wasm:`commitmentCalculator4x6-1.1.wasm`,commitmentCalculator4x6v1x1VK:`commitmentCalculator4x6_final-1.1_verification_key.json`,commitmentCalculator5x2v1x1Zkey:`commitmentCalculator5x2_final-1.1.zkey`,commitmentCalculator5x2v1x1Wasm:`commitmentCalculator5x2-1.1.wasm`,commitmentCalculator5x2v1x1VK:`commitmentCalculator5x2_final-1.1_verification_key.json`,commitmentCalculator5x6v1x1Zkey:`commitmentCalculator5x6_final-1.1.zkey`,commitmentCalculator5x6v1x1Wasm:`commitmentCalculator5x6-1.1.wasm`,commitmentCalculator5x6v1x1VK:`commitmentCalculator5x6_final-1.1_verification_key.json`};exports.ENCLAVE_URL=n,exports.localVerifiers=a,exports.prodVerifiers=i;
@@ -1,7 +1,7 @@
1
1
  import { isNotProduction as e } from "../../constants/vite.constants.mjs";
2
2
  import { BACK_END_URL as t } from "../../API/getServerURL.mjs";
3
3
  //#region libs/shared/common/src/functions/snarkjs/constant.ts
4
- var n = e ? "https://enclave-staging.hinkal.io" : "https://enclave-server.hinkal.io", r = `${t}/verifiers-v2/`, i = {
4
+ var n = e ? "https://enclave-staging-v2.hinkal.io" : "https://enclave-server.hinkal.io", r = `${t}/verifiers-v2/`, i = {
5
5
  mainEVMCircuit1x2x1v1x1Wasm: `${r}mainEVMCircuit1x2x1-1.1.wasm`,
6
6
  mainEVMCircuit1x2x1v1x1Zkey: `${r}mainEVMCircuit1x2x1_final-1.1.zkey`,
7
7
  mainEVMCircuit1x6x1v1x1Wasm: `${r}mainEVMCircuit1x6x1-1.1.wasm`,
@@ -0,0 +1 @@
1
+ const e=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const t=require(`../snarkjs/constant.cjs`);var n=class{cachedPublicKey;cachedAt=0;inFlight;constructor(e=300*1e3){this.ttlMs=e}async getPublicKey(){return this.cachedPublicKey&&Date.now()-this.cachedAt<this.ttlMs?this.cachedPublicKey:(this.inFlight||=e.httpClient.get(`${t.ENCLAVE_URL}/handshake`).then(e=>(this.cachedPublicKey=e.public_key,this.cachedAt=Date.now(),this.cachedPublicKey)).finally(()=>{this.inFlight=void 0}),this.inFlight)}invalidate(){this.cachedPublicKey=void 0,this.cachedAt=0}},r=new n;exports.EnclaveHandshakeService=n,exports.enclaveHandshakeService=r;
@@ -0,0 +1,10 @@
1
+ export declare class EnclaveHandshakeService {
2
+ private readonly ttlMs;
3
+ private cachedPublicKey?;
4
+ private cachedAt;
5
+ private inFlight?;
6
+ constructor(ttlMs?: number);
7
+ getPublicKey(): Promise<string>;
8
+ invalidate(): void;
9
+ }
10
+ export declare const enclaveHandshakeService: EnclaveHandshakeService;
@@ -0,0 +1,22 @@
1
+ import { httpClient as e } from "../../data-structures/http/HttpClient.mjs";
2
+ import "../../data-structures/http/index.mjs";
3
+ import { ENCLAVE_URL as t } from "../snarkjs/constant.mjs";
4
+ //#region libs/shared/common/src/functions/utils/enclaveHandshakeService.ts
5
+ var n = class {
6
+ cachedPublicKey;
7
+ cachedAt = 0;
8
+ inFlight;
9
+ constructor(e = 300 * 1e3) {
10
+ this.ttlMs = e;
11
+ }
12
+ async getPublicKey() {
13
+ return this.cachedPublicKey && Date.now() - this.cachedAt < this.ttlMs ? this.cachedPublicKey : (this.inFlight ||= e.get(`${t}/handshake`).then((e) => (this.cachedPublicKey = e.public_key, this.cachedAt = Date.now(), this.cachedPublicKey)).finally(() => {
14
+ this.inFlight = void 0;
15
+ }), this.inFlight);
16
+ }
17
+ invalidate() {
18
+ this.cachedPublicKey = void 0, this.cachedAt = 0;
19
+ }
20
+ }, r = new n();
21
+ //#endregion
22
+ export { n as EnclaveHandshakeService, r as enclaveHandshakeService };
@@ -1 +1 @@
1
- const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`);require(`../../data-structures/http/index.cjs`);const r=require(`../snarkjs/constant.cjs`);let i=require(`ethers`),a=require(`libsodium-wrappers`);a=e.__toESM(a);let o=require(`node-forge`);o=e.__toESM(o);var s=async()=>(await n.httpClient.get(`${r.ENCLAVE_URL}/handshake`)).public_key,c=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,l=e=>o.util.hexToBytes(e.replace(`0x`,``)),u=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=c(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(c)):t[e]=n.map(c))}),t},d=(e,t)=>{let n=o.util.decode64(e),r=o.asn1.fromDer(o.util.createBuffer(n)),i=o.pki.publicKeyFromAsn1(r),a=o.util.binary.raw.encode(t),s=i.encrypt(a,`RSA-OAEP`,{md:o.md.sha1.create(),mgf1:{md:o.md.sha1.create()}});return o.util.encode64(s)},f=(e,t)=>{let n=a.default.randombytes_buf(a.default.crypto_secretbox_NONCEBYTES),r=a.default.crypto_secretbox_easy(t,n,e),s=l(i.ethers.hexlify(n)+i.ethers.hexlify(r).slice(2));return o.util.encode64(s)},p=(e,t)=>{let n=a.default.randombytes_buf(a.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:d(t,n),inputCiphertext:f(n,e)}},m=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(u(e));return p(new TextEncoder().encode(r),n)},h=async e=>m(e,await s()),g=async e=>p(e,await s());exports.makeEnclaveHandshakeAndEncryptInput=h,exports.makeEnclaveHandshakeAndEncryptUint8Array=g;
1
+ const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`./enclaveHandshakeService.cjs`);let r=require(`ethers`),i=require(`libsodium-wrappers`);i=e.__toESM(i);let a=require(`node-forge`);a=e.__toESM(a);var o=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,s=e=>a.util.hexToBytes(e.replace(`0x`,``)),c=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=o(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(o)):t[e]=n.map(o))}),t},l=(e,t)=>{let n=a.util.decode64(e),r=a.asn1.fromDer(a.util.createBuffer(n)),i=a.pki.publicKeyFromAsn1(r),o=a.util.binary.raw.encode(t),s=i.encrypt(o,`RSA-OAEP`,{md:a.md.sha1.create(),mgf1:{md:a.md.sha1.create()}});return a.util.encode64(s)},u=(e,t)=>{let n=i.default.randombytes_buf(i.default.crypto_secretbox_NONCEBYTES),o=i.default.crypto_secretbox_easy(t,n,e),c=s(r.ethers.hexlify(n)+r.ethers.hexlify(o).slice(2));return a.util.encode64(c)},d=(e,t)=>{let n=i.default.randombytes_buf(i.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:l(t,n),inputCiphertext:u(n,e)}},f=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(c(e));return d(new TextEncoder().encode(r),n)},p=async e=>f(e,await n.enclaveHandshakeService.getPublicKey()),m=async e=>d(e,await n.enclaveHandshakeService.getPublicKey());exports.makeEnclaveHandshakeAndEncryptInput=p,exports.makeEnclaveHandshakeAndEncryptUint8Array=m;
@@ -1,34 +1,32 @@
1
1
  import { safeJsonStringify as e } from "./serialize.utils.mjs";
2
- import { httpClient as t } from "../../data-structures/http/HttpClient.mjs";
3
- import "../../data-structures/http/index.mjs";
4
- import { ENCLAVE_URL as n } from "../snarkjs/constant.mjs";
5
- import { ethers as r } from "ethers";
6
- import i from "libsodium-wrappers";
7
- import * as a from "node-forge";
2
+ import { enclaveHandshakeService as t } from "./enclaveHandshakeService.mjs";
3
+ import { ethers as n } from "ethers";
4
+ import r from "libsodium-wrappers";
5
+ import * as i from "node-forge";
8
6
  //#region libs/shared/common/src/functions/utils/encryptInputForEnclave.ts
9
- var o = async () => (await t.get(`${n}/handshake`)).public_key, s = (e) => typeof e == "bigint" || typeof e == "number" ? e.toString() : e, c = (e) => a.util.hexToBytes(e.replace("0x", "")), l = (e) => {
7
+ var a = (e) => typeof e == "bigint" || typeof e == "number" ? e.toString() : e, o = (e) => i.util.hexToBytes(e.replace("0x", "")), s = (e) => {
10
8
  let t = structuredClone(e);
11
9
  return Object.entries(t).forEach(([e, n]) => {
12
- t[e] = s(n), Array.isArray(n) && (Array.isArray(n[0]) ? t[e] = n.map((e) => e.map(s)) : t[e] = n.map(s));
10
+ t[e] = a(n), Array.isArray(n) && (Array.isArray(n[0]) ? t[e] = n.map((e) => e.map(a)) : t[e] = n.map(a));
13
11
  }), t;
14
- }, u = (e, t) => {
15
- let n = a.util.decode64(e), r = a.asn1.fromDer(a.util.createBuffer(n)), i = a.pki.publicKeyFromAsn1(r), o = a.util.binary.raw.encode(t), s = i.encrypt(o, "RSA-OAEP", {
16
- md: a.md.sha1.create(),
17
- mgf1: { md: a.md.sha1.create() }
12
+ }, c = (e, t) => {
13
+ let n = i.util.decode64(e), r = i.asn1.fromDer(i.util.createBuffer(n)), a = i.pki.publicKeyFromAsn1(r), o = i.util.binary.raw.encode(t), s = a.encrypt(o, "RSA-OAEP", {
14
+ md: i.md.sha1.create(),
15
+ mgf1: { md: i.md.sha1.create() }
18
16
  });
19
- return a.util.encode64(s);
20
- }, d = (e, t) => {
21
- let n = i.randombytes_buf(i.crypto_secretbox_NONCEBYTES), o = i.crypto_secretbox_easy(t, n, e), s = c(r.hexlify(n) + r.hexlify(o).slice(2));
22
- return a.util.encode64(s);
23
- }, f = (e, t) => {
24
- let n = i.randombytes_buf(i.crypto_secretbox_KEYBYTES);
17
+ return i.util.encode64(s);
18
+ }, l = (e, t) => {
19
+ let a = r.randombytes_buf(r.crypto_secretbox_NONCEBYTES), s = r.crypto_secretbox_easy(t, a, e), c = o(n.hexlify(a) + n.hexlify(s).slice(2));
20
+ return i.util.encode64(c);
21
+ }, u = (e, t) => {
22
+ let n = r.randombytes_buf(r.crypto_secretbox_KEYBYTES);
25
23
  return {
26
- keyCiphertext: u(t, n),
27
- inputCiphertext: d(n, e)
24
+ keyCiphertext: c(t, n),
25
+ inputCiphertext: l(n, e)
28
26
  };
29
- }, p = (t, n) => {
30
- let r = typeof t == "string" ? t : e(l(t));
31
- return f(new TextEncoder().encode(r), n);
32
- }, m = async (e) => p(e, await o()), h = async (e) => f(e, await o());
27
+ }, d = (t, n) => {
28
+ let r = typeof t == "string" ? t : e(s(t));
29
+ return u(new TextEncoder().encode(r), n);
30
+ }, f = async (e) => d(e, await t.getPublicKey()), p = async (e) => u(e, await t.getPublicKey());
33
31
  //#endregion
34
- export { m as makeEnclaveHandshakeAndEncryptInput, h as makeEnclaveHandshakeAndEncryptUint8Array };
32
+ export { f as makeEnclaveHandshakeAndEncryptInput, p as makeEnclaveHandshakeAndEncryptUint8Array };
@@ -1 +1 @@
1
- require(`./serialize.utils.cjs`),require(`./get-signature-header.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./addresses.cjs`),require(`./auth.utils.cjs`),require(`./amounts.utils.cjs`),require(`./erc20tokenFunctions.cjs`),require(`./bytes32.utils.cjs`),require(`./time.utils.cjs`),require(`./bit.operations.cjs`),require(`./upToDateState.cjs`),require(`./getDataFromTransaction.cjs`),require(`./cacheFunctions.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./tron.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./mutexes.utils.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`../pre-transaction/interaction-to-action.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getFlatFees.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`./create-provider.cjs`),require(`../pre-transaction/calculateSolanaNullifierCount.cjs`),require(`../pre-transaction/addressTableLookup.cjs`),require(`../pre-transaction/solana-public-signals.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`../pre-transaction/store-proof.cjs`),require(`../pre-transaction/sendInitNullifiersTransaction.cjs`),require(`../pre-transaction/recipientUtxoProcessing.cjs`),require(`../pre-transaction/store-instructions.cjs`),require(`../pre-transaction/ensureAmountChanges.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`../pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./requireEnv.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./reloadPage.cjs`),require(`./nickname.utils.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./arraysMatch.cjs`),require(`./trimFieldValues.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./is-valid-url.cjs`),require(`./postToOffscreen.cjs`),require(`./solanaSendPreflight.utils.cjs`),require(`./prepareHinkal.cjs`),require(`./getContractAddress.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./fees.utils.cjs`),require(`./proxyAvatar.utils.cjs`),require(`./validateUsername.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./pay-routing.utils.cjs`),require(`./formatter.cjs`),require(`./tronSimulation.utils.cjs`),require(`./getSignerFromContract.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./getWalletGroupKey.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`),require(`./solana-memo.cjs`),require(`./mnemonics.cjs`),require(`./nearIntents.utils.cjs`);
1
+ require(`./serialize.utils.cjs`),require(`./get-signature-header.cjs`),require(`./caseInsensitive.utils.cjs`),require(`./addresses.cjs`),require(`./auth.utils.cjs`),require(`./amounts.utils.cjs`),require(`./erc20tokenFunctions.cjs`),require(`./bytes32.utils.cjs`),require(`./time.utils.cjs`),require(`./bit.operations.cjs`),require(`./upToDateState.cjs`),require(`./getDataFromTransaction.cjs`),require(`./cacheFunctions.cjs`),require(`./enclaveHandshakeService.cjs`),require(`./encryptInputForEnclave.cjs`),require(`./solanaMint.utils.cjs`),require(`./customEnclaveFunctionsRegister.cjs`),require(`./tron.utils.cjs`),require(`./string.utils.cjs`),require(`./token-check.utils.cjs`),require(`./mutexes.utils.cjs`),require(`../pre-transaction/outputUtxoProcessing.cjs`),require(`./external-action.utils.cjs`),require(`../pre-transaction/solana.cjs`),require(`../pre-transaction/interaction-to-action.cjs`),require(`../pre-transaction/process-gas-estimates.cjs`),require(`../pre-transaction/getFlatFees.cjs`),require(`../pre-transaction/getVolatileTransferAmount.cjs`),require(`../pre-transaction/constructAdminData.cjs`),require(`./create-provider.cjs`),require(`../pre-transaction/calculateSolanaNullifierCount.cjs`),require(`../pre-transaction/addressTableLookup.cjs`),require(`../pre-transaction/solana-public-signals.cjs`),require(`../pre-transaction/convert-okx-instructions.cjs`),require(`./process.utils.cjs`),require(`../pre-transaction/sendV0Transaction.cjs`),require(`../pre-transaction/store-proof.cjs`),require(`../pre-transaction/sendInitNullifiersTransaction.cjs`),require(`../pre-transaction/recipientUtxoProcessing.cjs`),require(`../pre-transaction/store-instructions.cjs`),require(`../pre-transaction/ensureAmountChanges.cjs`),require(`../pre-transaction/getFeeStructure.cjs`),require(`../pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),require(`../pre-transaction/buildCommitmentValidationData.cjs`),require(`../pre-transaction/index.cjs`),require(`./serialize-utxos.utils.cjs`),require(`./requireEnv.cjs`),require(`./resolve-sync.utils.cjs`),require(`./convertIntegrationProviderToExternalActionId.cjs`),require(`./evmNetworkFunctions.cjs`),require(`./userAgent.cjs`),require(`./reloadPage.cjs`),require(`./nickname.utils.cjs`),require(`./cacheDevice.utils.cjs`),require(`./getBlockExplorerUrl.cjs`),require(`./involves-permit2-op.cjs`),require(`./convertEmporiumOpToCallInfo.cjs`),require(`./getRecipientInfoFromUserKeys.cjs`),require(`./publicBalance.utils.cjs`),require(`./rpc-int-encode.cjs`),require(`./arraysMatch.cjs`),require(`./trimFieldValues.cjs`),require(`./walletBalances.utils.cjs`),require(`./nftTokenFunctions.cjs`),require(`./inLogicMetadata.cjs`),require(`./networks.utils.cjs`),require(`./is-valid-url.cjs`),require(`./postToOffscreen.cjs`),require(`./solanaSendPreflight.utils.cjs`),require(`./prepareHinkal.cjs`),require(`./getContractAddress.cjs`),require(`./getUtxosFromReceipt.utils.cjs`),require(`./getUtxosFromReceiptSolana.cjs`),require(`./fees.utils.cjs`),require(`./proxyAvatar.utils.cjs`),require(`./validateUsername.cjs`),require(`./enclave-utxo-storage.cjs`),require(`./enclave-signature-storage.cjs`),require(`./tx-confirmation.utils.cjs`),require(`./buildClaimableDepositPlan.cjs`),require(`./pay-routing.utils.cjs`),require(`./formatter.cjs`),require(`./tronSimulation.utils.cjs`),require(`./getSignerFromContract.cjs`),require(`./deposit-claimable.utils.cjs`),require(`./transfer-claimable.utils.cjs`),require(`./getWalletGroupKey.utils.cjs`),require(`./dispatchBalanceRefreshes.cjs`),require(`./lifi.utils.cjs`),require(`./enclave-recipient-info-storage.cjs`),require(`./solana-memo.cjs`),require(`./mnemonics.cjs`),require(`./nearIntents.utils.cjs`);
@@ -62,6 +62,7 @@ export * from './transfer-claimable.utils';
62
62
  export * from './auth.utils';
63
63
  export * from './getWalletGroupKey.utils';
64
64
  export * from './encryptInputForEnclave';
65
+ export * from './enclaveHandshakeService';
65
66
  export * from './dispatchBalanceRefreshes';
66
67
  export * from './lifi.utils';
67
68
  export * from './enclave-recipient-info-storage';
@@ -11,6 +11,7 @@ import "./bit.operations.mjs";
11
11
  import "./upToDateState.mjs";
12
12
  import "./getDataFromTransaction.mjs";
13
13
  import "./cacheFunctions.mjs";
14
+ import "./enclaveHandshakeService.mjs";
14
15
  import "./encryptInputForEnclave.mjs";
15
16
  import "./solanaMint.utils.mjs";
16
17
  import "./customEnclaveFunctionsRegister.mjs";
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`),r=require(`../snarkjs/constant.cjs`),i=require(`./caseInsensitive.utils.cjs`),a=require(`../../externalABIs/index.cjs`),o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../../error-handling/logger.cjs`);let c=require(`ethers`),l=require(`tronweb`);var u=[`https://nile.trongrid.io`,`https://api.shasta.trongrid.io`],d=2000n,f=t=>{let n=t.toLowerCase();return u.some(e=>n.includes(e))?e.chainIds.tronNile:e.chainIds.tronMainnet},p=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},m=(t,n)=>{let r=e.networkRegistry[t].fetchRpcUrl,i=n?p(n):void 0,a=i?new l.TronWeb({fullHost:r,privateKey:i}):new l.TronWeb({fullHost:r});return n||a.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),a},h=e=>e?.startsWith(`T`)?e:l.TronWeb.address.fromHex(e),g=e=>e.startsWith(`0x`)?h(e):e,_=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return _(l.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},v=e=>e?.startsWith(`T`)?_(e):e,y=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},b=(e,t)=>e.map(e=>Array.isArray(e)?b(e,t):t(e)),x=(e,t,n)=>{let r=new c.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let i=b(n,e=>typeof e==`string`&&e.startsWith(`T`)?_(e):e);return r.encodeFunctionData(t,i)},S=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,C=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},w=async e=>{let t=`${y(e)}/wallet/getchainparameters`,r=await n.httpClient.post(t,{});if(!r?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return r.chainParameter},T=async(e,t)=>{let r=`${y(e)}/wallet/getaccountresource`,i=_(t),a=i.startsWith(`0x`)?`41${i.slice(2)}`:i;return await n.httpClient.post(r,{address:a,visible:!1})},E=async(e,n,r,i,a,o)=>{let s={input:a,callValue:Number(o),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[c,l]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,s,[],i),e.transactionBuilder.triggerConstantContract(r,``,s,[],i)]),u=await w(n),f=C(u,`getEnergyFee`),p=C(u,`getTransactionFee`),m=await T(n,i),h=BigInt(c?.energy_required??l?.energy_used??0),g=S(m,`EnergyLimit`,`EnergyUsed`),_=(h>g?h-g:0n)*f,v=BigInt(Math.ceil((l?.transaction?.raw_data_hex?.length??0)/2)),y=S(m,`freeNetLimit`,`freeNetUsed`)+S(m,`NetLimit`,`NetUsed`),b=_+(v>y?v-y:0n)*p,x=b+b*d/10000n;return x>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):x},D=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},O=(e,t)=>{let n=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`uint16`,`uint16`,`uint256`],[e.tokenNumber,e.nullifierAmount,e.outputAmount,t]);return BigInt(c.ethers.keccak256(n))},k=async(e,t,i,a,o,s)=>{let l=O(o,s),u=e.map(String),d=i.map(String),f=a.map(String),p={a:u,b:[t[0].map(String),t[1].map(String)],c:d,inputs:f,verifier_id:String(l)},m=await n.httpClient.post(`${r.ENCLAVE_URL}/sign-proof`,p),{v:h,r:g,s:_}=c.ethers.Signature.from(m.signature.trim());return{v:h,r:g,s:_}},A=e=>[e.rootHashHinkal,e.erc20TokenAddresses,e.tokenIds,e.amountChanges,e.onChainCreation,e.slippageValues,e.inputNullifiers,e.outCommitments,e.encryptedOutputs,[e.feeStructure.feeToken,e.feeStructure.flatFee,e.feeStructure.variableRate],e.timeStamp,[e.stealthAddressStructure.extraRandomization,e.stealthAddressStructure.stealthAddress,e.stealthAddressStructure.H0,e.stealthAddressStructure.H1],e.rootHashAccessToken,e.calldataHash,e.publicSignalCount,e.relay,e.externalAddress,e.externalActionId,e.externalActionMetadata,[e.hinkalLogicArgs.hinkalLogicAction,e.hinkalLogicArgs.inHinkalAddress,e.hinkalLogicArgs.executeApprovalChanges,e.hinkalLogicArgs.doPreTxApproval,e.hinkalLogicArgs.useApprovalUtxoData.map(e=>[e.approvalChanges,e.externalApprovalAddresses,e.conversionInHinkalAddress])],[e.hookData.preHookContract,e.hookData.hookContract,e.hookData.preHookMetadata,e.hookData.postHookMetadata],[e.signatureData.v,e.signatureData.r,e.signatureData.s,e.signatureData.accessKey,e.signatureData.nonce,e.signatureData.ethereumAddress],e.originalSender],j=async(e,t,n,r,i=!0)=>{if(e){let{a:e,b:a,c:o,publicSignals:s}=D(t),c=await k(e,a,o,s,n,BigInt(r.externalActionId)),l={v:c.v,r:c.r,s:c.s};return i&&(t[1]=[[t[1][0][1],t[1][0][0]],[t[1][1][1],t[1][1][0]]]),l}},M=(e,n)=>{let r=0n,a=new Map;for(let o=0;o<e.length;o+=1)if(i.caseInsensitiveEqual(e[o].erc20TokenAddress,t.zeroAddress))r+=n[o];else{let t=h(e[o].erc20TokenAddress);a.set(t,(a.get(t)??0n)+n[o])}return{totalTrxValue:r,tokensNeedingApproval:a}},N=async(e,n,r,i,a,c)=>{let l=BigInt(await e.trx.getBalance(i)),u=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{u=await E(e,n,r,i,a,c)}catch(e){s.Logger.error(`Error estimating Tron deposit fee`,e)}if(l<c+u)throw Error(o.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)},P=async(e,n,r,i)=>{let o=Array.from(i.entries());for(let i=0;i<o.length;i+=1){let[s,c]=o[i],l=await e.contract(a.ERC20ABI,s).allowance(n,r).call({from:n});if(BigInt(String(l))<c){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(s,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:c.toString()}],n),a=await e.trx.sign(i),o=await e.trx.sendRawTransaction(a);if(!o.result){let e=o.code??`UNKNOWN`,t=o.message?Buffer.from(o.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}};exports.addressToHexFormat=_,exports.approveTronTokens=P,exports.assertTronSufficientBalance=N,exports.circomDataToArray=A,exports.createTronCallData=x,exports.createTronWeb=m,exports.detectTronChainIdFromHost=f,exports.estimateTronFeeSunWithPadding=E,exports.evmHexToTronBase58Address=h,exports.fetchTronAccountResources=T,exports.fetchTronChainParameters=w,exports.generateProofSignatureRemotely=k,exports.getAvailableResource=S,exports.getChainParameterValue=C,exports.getVerifierId=O,exports.normalizeTronAddr=v,exports.normalizeTronPrivateKey=p,exports.parseZkCalldata=D,exports.reorderZkCallData=j,exports.splitTronTokensByNative=M,exports.toTronBase58IfHex=g;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../data-structures/http/HttpClient.cjs`),r=require(`../snarkjs/constant.cjs`),i=require(`./caseInsensitive.utils.cjs`),a=require(`../../externalABIs/index.cjs`),o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../../error-handling/logger.cjs`);let c=require(`ethers`),l=require(`tronweb`);var u=[`https://nile.trongrid.io`,`https://api.shasta.trongrid.io`],d=2000n,f=t=>{let n=t.toLowerCase();return u.some(e=>n.includes(e))?e.chainIds.tronNile:e.chainIds.tronMainnet},p=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},m=(t,n)=>{let r=e.networkRegistry[t].fetchRpcUrl,i=n?p(n):void 0,a=i?new l.TronWeb({fullHost:r,privateKey:i}):new l.TronWeb({fullHost:r});return n||a.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),a},h=e=>e?.startsWith(`T`)?e:l.TronWeb.address.fromHex(e),g=e=>e.startsWith(`0x`)?h(e):e,_=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return _(l.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},v=e=>e?.startsWith(`T`)?_(e):e,y=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},b=(e,t)=>e.map(e=>Array.isArray(e)?b(e,t):t(e)),x=(e,t,n)=>{let r=new c.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let i=b(n,e=>typeof e==`string`&&e.startsWith(`T`)?_(e):e);return r.encodeFunctionData(t,i)},S=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,C=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},w=async e=>{let t=`${y(e)}/wallet/getchainparameters`,r=await n.httpClient.post(t,{});if(!r?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return r.chainParameter},T=async(e,t)=>{let r=`${y(e)}/wallet/getaccountresource`,i=_(t),a=i.startsWith(`0x`)?`41${i.slice(2)}`:i;return await n.httpClient.post(r,{address:a,visible:!1})},E=async(e,n,r,i,a,o)=>{let s={input:a,callValue:Number(o),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[c,l]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,s,[],i),e.transactionBuilder.triggerConstantContract(r,``,s,[],i)]),u=await w(n),f=C(u,`getEnergyFee`),p=C(u,`getTransactionFee`),m=await T(n,i),h=BigInt(c?.energy_required??l?.energy_used??0),g=S(m,`EnergyLimit`,`EnergyUsed`),_=(h>g?h-g:0n)*f,v=BigInt(Math.ceil((l?.transaction?.raw_data_hex?.length??0)/2)),y=S(m,`freeNetLimit`,`freeNetUsed`)+S(m,`NetLimit`,`NetUsed`),b=_+(v>y?v-y:0n)*p,x=b+b*d/10000n;return x>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):x},D=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},O=(e,t)=>{let n=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`uint16`,`uint16`,`uint256`],[e.tokenNumber,e.nullifierAmount,e.outputAmount,t]);return BigInt(c.ethers.keccak256(n))},k=async(e,t,i,a,o,s)=>{let l=O(o,s),u=e.map(String),d=i.map(String),f=a.map(String),p={a:u,b:[t[0].map(String),t[1].map(String)],c:d,inputs:f,verifier_id:String(l)},m=await n.httpClient.post(`${r.ENCLAVE_URL}/sign-proof`,p),{v:h,r:g,s:_}=c.ethers.Signature.from(m.signature.trim());return{v:h,r:g,s:_}},A=e=>[e.rootHashHinkal,e.erc20TokenAddresses,e.tokenIds,e.amountChanges,e.onChainCreation,e.slippageValues,e.inputNullifiers,e.outCommitments,e.encryptedOutputs,[e.feeStructure.feeToken,e.feeStructure.flatFee,e.feeStructure.variableRate],e.timeStamp,[e.stealthAddressStructure.extraRandomization,e.stealthAddressStructure.stealthAddress,e.stealthAddressStructure.H0,e.stealthAddressStructure.H1],e.rootHashAccessToken,e.calldataHash,e.publicSignalCount,e.relay,e.externalAddress,e.externalActionId,e.externalActionMetadata,[e.hinkalLogicArgs.hinkalLogicAction,e.hinkalLogicArgs.inHinkalAddress,e.hinkalLogicArgs.executeApprovalChanges,e.hinkalLogicArgs.doPreTxApproval,e.hinkalLogicArgs.useApprovalUtxoData.map(e=>[e.approvalChanges,e.externalApprovalAddresses,e.conversionInHinkalAddress])],[e.hookData.preHookContract,e.hookData.hookContract,e.hookData.preHookMetadata,e.hookData.postHookMetadata],[e.signatureData.v,e.signatureData.r,e.signatureData.s,e.signatureData.accessKey,e.signatureData.nonce,e.signatureData.ethereumAddress],e.originalSender],j=async(e,t,n,r,i=!0)=>{if(e){let{a:e,b:a,c:o,publicSignals:s}=D(t),c=await k(e,a,o,s,n,BigInt(r.externalActionId)),l={v:c.v,r:c.r,s:c.s};return i&&(t[1]=[[t[1][0][1],t[1][0][0]],[t[1][1][1],t[1][1][0]]]),l}},M=(e,n)=>{let r=0n,a=new Map;for(let o=0;o<e.length;o+=1)if(i.caseInsensitiveEqual(e[o].erc20TokenAddress,t.zeroAddress))r+=n[o];else{let t=h(e[o].erc20TokenAddress);a.set(t,(a.get(t)??0n)+n[o])}return{totalTrxValue:r,tokensNeedingApproval:a}},N=async(e,n,r,i,a,c)=>{let l=BigInt(await e.trx.getBalance(i)),u=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{u=await E(e,n,r,i,a,c)}catch(e){s.Logger.error(`Error estimating Tron deposit fee`,e)}if(l<c+u)throw Error(o.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)},P=async(e,n,r,i)=>{let o=Array.from(i.entries());for(let i=0;i<o.length;i+=1){let[s,c]=o[i],l=await e.contract(a.ERC20ABI,s).allowance(n,r).call({from:n});if(BigInt(String(l))<c){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(s,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:c.toString()}],n),a=await e.trx.sign(i),o=await e.trx.sendRawTransaction(a);if(!o.result){let e=o.code??`UNKNOWN`,t=o.message?Buffer.from(o.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}};exports.addressToHexFormat=_,exports.approveTronTokens=P,exports.assertTronSufficientBalance=N,exports.circomDataToArray=A,exports.createTronCallData=x,exports.createTronWeb=m,exports.detectTronChainIdFromHost=f,exports.estimateTronFeeSunWithPadding=E,exports.evmHexToTronBase58Address=h,exports.fetchTronAccountResources=T,exports.fetchTronChainParameters=w,exports.generateProofSignatureRemotely=k,exports.getAvailableResource=S,exports.getChainParameterValue=C,exports.getTronWalletRpcUrl=y,exports.getVerifierId=O,exports.normalizeTronAddr=v,exports.normalizeTronPrivateKey=p,exports.parseZkCalldata=D,exports.reorderZkCallData=j,exports.splitTronTokensByNative=M,exports.toTronBase58IfHex=g;
@@ -11,6 +11,7 @@ export declare const evmHexToTronBase58Address: (addr: string) => string;
11
11
  export declare const toTronBase58IfHex: (addr: string) => string;
12
12
  export declare const addressToHexFormat: (addr: string) => string;
13
13
  export declare const normalizeTronAddr: (addr: string) => string;
14
+ export declare const getTronWalletRpcUrl: (chainId: number) => "https://nile.trongrid.io" | "https://api.trongrid.io";
14
15
  export declare const createTronCallData: (abi: ethers.InterfaceAbi, functionName: string, args: unknown[]) => string;
15
16
  export declare const getAvailableResource: (resources: TronAccountResources | undefined, limitKey: string, usedKey: string) => bigint;
16
17
  export declare const getChainParameterValue: (params: TronChainParameter[], key: string) => bigint;
@@ -194,4 +194,4 @@ var f = ["https://nile.trongrid.io", "https://api.shasta.trongrid.io"], p = 2000
194
194
  }
195
195
  };
196
196
  //#endregion
197
- export { y as addressToHexFormat, I as approveTronTokens, F as assertTronSufficientBalance, M as circomDataToArray, C as createTronCallData, g as createTronWeb, m as detectTronChainIdFromHost, O as estimateTronFeeSunWithPadding, _ as evmHexToTronBase58Address, D as fetchTronAccountResources, E as fetchTronChainParameters, j as generateProofSignatureRemotely, w as getAvailableResource, T as getChainParameterValue, A as getVerifierId, b as normalizeTronAddr, h as normalizeTronPrivateKey, k as parseZkCalldata, N as reorderZkCallData, P as splitTronTokensByNative, v as toTronBase58IfHex };
197
+ export { y as addressToHexFormat, I as approveTronTokens, F as assertTronSufficientBalance, M as circomDataToArray, C as createTronCallData, g as createTronWeb, m as detectTronChainIdFromHost, O as estimateTronFeeSunWithPadding, _ as evmHexToTronBase58Address, D as fetchTronAccountResources, E as fetchTronChainParameters, j as generateProofSignatureRemotely, w as getAvailableResource, T as getChainParameterValue, x as getTronWalletRpcUrl, A as getVerifierId, b as normalizeTronAddr, h as normalizeTronPrivateKey, k as parseZkCalldata, N as reorderZkCallData, P as splitTronTokensByNative, v as toTronBase58IfHex };