@hinkal/common 0.2.33 → 0.2.35

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