@hinkal/common 0.2.19 → 0.2.21

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 (281) hide show
  1. package/API/API.cjs +1 -1
  2. package/API/API.d.ts +6 -1
  3. package/API/API.mjs +48 -41
  4. package/API/enclaveCalls.cjs +1 -1
  5. package/API/enclaveCalls.mjs +5 -4
  6. package/API/index.d.ts +1 -0
  7. package/API/proxyAccountsCalls.cjs +1 -1
  8. package/API/proxyAccountsCalls.d.ts +7 -2
  9. package/API/proxyAccountsCalls.mjs +26 -20
  10. package/API/temporaryWalletCalls.cjs +1 -0
  11. package/API/temporaryWalletCalls.d.ts +13 -0
  12. package/API/temporaryWalletCalls.mjs +20 -0
  13. package/API/unspent-utxos-calls.cjs +1 -1
  14. package/API/unspent-utxos-calls.d.ts +1 -1
  15. package/API/unspent-utxos-calls.mjs +16 -14
  16. package/README.md +36 -13
  17. package/constants/chains.constants.cjs +1 -1
  18. package/constants/chains.constants.d.ts +1 -1
  19. package/constants/chains.constants.mjs +69 -51
  20. package/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
  21. package/constants/deploy-data/deploy-data-solana.json.mjs +28 -2
  22. package/constants/kyc.constants.cjs +1 -1
  23. package/constants/kyc.constants.mjs +39 -40
  24. package/constants/mediaUrls.constants.cjs +1 -1
  25. package/constants/mediaUrls.constants.d.ts +1 -0
  26. package/constants/mediaUrls.constants.mjs +2 -1
  27. package/constants/server.constants.cjs +1 -1
  28. package/constants/server.constants.d.ts +6 -1
  29. package/constants/server.constants.mjs +37 -32
  30. package/constants/token-data/polygonRegistry.json.cjs +1 -1
  31. package/constants/token-data/polygonRegistry.json.mjs +4 -4
  32. package/constants/token-data/polygonRegistryFixed.json.cjs +1 -1
  33. package/constants/token-data/polygonRegistryFixed.json.mjs +4 -4
  34. package/data-structures/AccountActions/AccountActions.cjs +1 -0
  35. package/data-structures/AccountActions/AccountActions.d.ts +18 -0
  36. package/data-structures/AccountActions/AccountActions.mjs +78 -0
  37. package/data-structures/AccountActions/index.d.ts +1 -0
  38. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
  39. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +68 -71
  40. package/data-structures/BlockchainEvent/BlockchainEvent.cjs +1 -0
  41. package/data-structures/BlockchainEvent/BlockchainEvent.d.ts +14 -0
  42. package/data-structures/BlockchainEvent/BlockchainEvent.mjs +41 -0
  43. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  44. package/data-structures/Hinkal/Hinkal.d.ts +14 -8
  45. package/data-structures/Hinkal/Hinkal.mjs +215 -179
  46. package/data-structures/Hinkal/IHinkal.d.ts +9 -6
  47. package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  48. package/data-structures/Hinkal/handleAutoDepositBack.mjs +47 -48
  49. package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
  50. package/data-structures/Hinkal/hinkalActionReceive.mjs +25 -22
  51. package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
  52. package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +12 -12
  53. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  54. package/data-structures/Hinkal/hinkalDeposit.mjs +63 -63
  55. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  56. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +60 -147
  57. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -0
  58. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +4 -0
  59. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +103 -0
  60. package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -0
  61. package/data-structures/Hinkal/hinkalDepostAndBridge.d.ts +4 -0
  62. package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +214 -0
  63. package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +1 -1
  64. package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +4 -4
  65. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  66. package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -2
  67. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +103 -99
  68. package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
  69. package/data-structures/Hinkal/hinkalProxySwap.mjs +44 -41
  70. package/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
  71. package/data-structures/Hinkal/hinkalProxyToPrivate.mjs +31 -28
  72. package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
  73. package/data-structures/Hinkal/hinkalSignSubAccount.mjs +16 -13
  74. package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  75. package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +34 -34
  76. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  77. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +67 -65
  78. package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
  79. package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +35 -32
  80. package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  81. package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +59 -56
  82. package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  83. package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +35 -32
  84. package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  85. package/data-structures/Hinkal/hinkalSolanaSwap.mjs +10 -10
  86. package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  87. package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +25 -25
  88. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  89. package/data-structures/Hinkal/hinkalSwap.mjs +34 -30
  90. package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  91. package/data-structures/Hinkal/hinkalTransfer.mjs +43 -39
  92. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  93. package/data-structures/Hinkal/hinkalWithdraw.mjs +47 -43
  94. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  95. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +50 -46
  96. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  97. package/data-structures/Hinkal/resetMerkleTrees.mjs +36 -34
  98. package/data-structures/IndexedDB/activity-db.cjs +1 -1
  99. package/data-structures/IndexedDB/activity-db.d.ts +1 -0
  100. package/data-structures/IndexedDB/activity-db.mjs +86 -70
  101. package/data-structures/IndexedDB/balances-db.cjs +1 -1
  102. package/data-structures/IndexedDB/balances-db.mjs +33 -30
  103. package/data-structures/IndexedDB/contact-db.cjs +1 -1
  104. package/data-structures/IndexedDB/contact-db.mjs +9 -6
  105. package/data-structures/PublicBalance/PublicBalanceWatcher.cjs +1 -0
  106. package/data-structures/PublicBalance/PublicBalanceWatcher.d.ts +20 -0
  107. package/data-structures/PublicBalance/PublicBalanceWatcher.mjs +124 -0
  108. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.cjs +1 -0
  109. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.d.ts +15 -0
  110. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.mjs +64 -0
  111. package/data-structures/PublicBalance/index.d.ts +2 -0
  112. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  113. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +77 -78
  114. package/data-structures/crypto-keys/keys.cjs +1 -1
  115. package/data-structures/crypto-keys/keys.d.ts +0 -11
  116. package/data-structures/crypto-keys/keys.mjs +47 -107
  117. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -1
  118. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +3 -2
  119. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +9 -9
  120. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.cjs +1 -1
  121. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.d.ts +3 -2
  122. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.mjs +5 -5
  123. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +1 -1
  124. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.d.ts +3 -2
  125. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.mjs +6 -6
  126. package/data-structures/event-service/evm/AbstractEventService.cjs +1 -1
  127. package/data-structures/event-service/evm/AbstractEventService.d.ts +3 -2
  128. package/data-structures/event-service/evm/AbstractEventService.mjs +16 -19
  129. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
  130. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +3 -3
  131. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +6 -5
  132. package/data-structures/event-service/evm/AbstractSnapshotService.d.ts +1 -1
  133. package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  134. package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +7 -4
  135. package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +35 -34
  136. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +1 -0
  137. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +11 -0
  138. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +21 -0
  139. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +1 -0
  140. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.d.ts +6 -0
  141. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +16 -0
  142. package/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -0
  143. package/data-structures/event-service/helpers/ClientEventHelper.d.ts +11 -0
  144. package/data-structures/event-service/helpers/ClientEventHelper.mjs +26 -0
  145. package/data-structures/event-service/helpers/PollingEventHelper.cjs +1 -0
  146. package/data-structures/event-service/helpers/PollingEventHelper.d.ts +5 -0
  147. package/data-structures/event-service/helpers/PollingEventHelper.mjs +14 -0
  148. package/data-structures/event-service/index.d.ts +4 -0
  149. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -1
  150. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +3 -2
  151. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +6 -6
  152. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
  153. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.d.ts +4 -3
  154. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +8 -8
  155. package/data-structures/event-service/solana/AbstractSolanaEventService.cjs +1 -1
  156. package/data-structures/event-service/solana/AbstractSolanaEventService.d.ts +3 -10
  157. package/data-structures/event-service/solana/AbstractSolanaEventService.mjs +5 -5
  158. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
  159. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +3 -2
  160. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +1 -1
  161. package/data-structures/event-service/solana/AbstractSolanaSnapshotService.d.ts +1 -1
  162. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.cjs +1 -0
  163. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.d.ts +11 -0
  164. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.mjs +22 -0
  165. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +1 -0
  166. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.d.ts +6 -0
  167. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +16 -0
  168. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
  169. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +8 -14
  170. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +68 -67
  171. package/data-structures/index.d.ts +3 -0
  172. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
  173. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +5 -2
  174. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
  175. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +5 -2
  176. package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -1
  177. package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +5 -2
  178. package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -1
  179. package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +5 -2
  180. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -1
  181. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +5 -2
  182. package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -1
  183. package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +5 -2
  184. package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -1
  185. package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +5 -2
  186. package/data-structures/utxo/Utxo.cjs +1 -1
  187. package/data-structures/utxo/Utxo.d.ts +1 -0
  188. package/data-structures/utxo/Utxo.mjs +18 -4
  189. package/error-handling/error-codes.constants.cjs +1 -1
  190. package/error-handling/error-codes.constants.mjs +2 -2
  191. package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
  192. package/functions/pre-transaction/getSolanaCalldataHash.mjs +22 -22
  193. package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
  194. package/functions/pre-transaction/sendV0Transaction.mjs +53 -50
  195. package/functions/pre-transaction/solana.cjs +1 -1
  196. package/functions/pre-transaction/solana.mjs +93 -93
  197. package/functions/private-wallet/emporium.helpers.cjs +1 -1
  198. package/functions/private-wallet/emporium.helpers.d.ts +3 -2
  199. package/functions/private-wallet/emporium.helpers.mjs +118 -93
  200. package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
  201. package/functions/snarkjs/constructEmporiumProof.d.ts +1 -2
  202. package/functions/snarkjs/constructEmporiumProof.mjs +89 -89
  203. package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  204. package/functions/snarkjs/constructSolanaZkProof.mjs +6 -2
  205. package/functions/utils/bytes32.utils.cjs +1 -1
  206. package/functions/utils/bytes32.utils.mjs +8 -7
  207. package/functions/utils/create-provider.cjs +1 -1
  208. package/functions/utils/create-provider.d.ts +1 -1
  209. package/functions/utils/create-provider.mjs +13 -9
  210. package/functions/utils/index.d.ts +0 -1
  211. package/functions/utils/prepareHinkal.cjs +1 -1
  212. package/functions/utils/prepareHinkal.d.ts +6 -7
  213. package/functions/utils/prepareHinkal.mjs +45 -53
  214. package/functions/utils/publicBalance.utils.cjs +1 -1
  215. package/functions/utils/publicBalance.utils.mjs +49 -54
  216. package/functions/utils/socket.utils.cjs +1 -0
  217. package/functions/utils/socket.utils.d.ts +1 -0
  218. package/functions/utils/socket.utils.mjs +12 -0
  219. package/functions/utils/string.utils.cjs +1 -1
  220. package/functions/utils/string.utils.d.ts +1 -0
  221. package/functions/utils/string.utils.mjs +18 -14
  222. package/functions/utils/walletBalances.utils.cjs +1 -1
  223. package/functions/utils/walletBalances.utils.d.ts +1 -1
  224. package/functions/utils/walletBalances.utils.mjs +4 -4
  225. package/functions/web3/crypto.cjs +1 -0
  226. package/functions/web3/crypto.d.ts +1 -0
  227. package/functions/web3/crypto.mjs +7 -0
  228. package/functions/web3/events/getApprovedBalance.cjs +1 -1
  229. package/functions/web3/events/getApprovedBalance.mjs +14 -14
  230. package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  231. package/functions/web3/events/getInputUtxoAndBalance.mjs +61 -59
  232. package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
  233. package/functions/web3/events/getTransactionLogEvents.mjs +32 -32
  234. package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
  235. package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +6 -3
  236. package/functions/web3/functionCalls/approveToken.cjs +1 -1
  237. package/functions/web3/functionCalls/approveToken.mjs +17 -17
  238. package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  239. package/functions/web3/functionCalls/transactCallDirect.mjs +16 -16
  240. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  241. package/functions/web3/functionCalls/transactCallRelayer.mjs +13 -11
  242. package/functions/web3/getContractMetadata.cjs +1 -1
  243. package/functions/web3/getContractMetadata.mjs +17 -22
  244. package/functions/web3/getTokenHolder.cjs +1 -1
  245. package/functions/web3/getTokenHolder.mjs +20 -20
  246. package/functions/web3/index.d.ts +1 -0
  247. package/index.cjs +1 -1
  248. package/index.mjs +913 -890
  249. package/package.json +3 -2
  250. package/providers/EthersProviderAdapter.cjs +1 -1
  251. package/providers/EthersProviderAdapter.mjs +2 -5
  252. package/providers/prepareEthersHinkal.cjs +1 -1
  253. package/providers/prepareEthersHinkal.mjs +11 -4
  254. package/providers/prepareWagmiHinkal.cjs +1 -1
  255. package/providers/prepareWagmiHinkal.mjs +11 -4
  256. package/types/activities.types.d.ts +2 -0
  257. package/types/bridging-tx.types.d.ts +17 -0
  258. package/types/cache.types.cjs +1 -1
  259. package/types/cache.types.d.ts +5 -1
  260. package/types/cache.types.mjs +1 -1
  261. package/types/ethereum-network.types.d.ts +1 -0
  262. package/types/events.types.cjs +1 -0
  263. package/types/events.types.d.ts +9 -0
  264. package/types/events.types.mjs +5 -0
  265. package/types/index.d.ts +2 -0
  266. package/types/proxy.types.d.ts +11 -4
  267. package/types/sandbox.types.d.ts +2 -0
  268. package/types/solana.types.d.ts +8 -0
  269. package/types/token.types.d.ts +5 -0
  270. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  271. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  272. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
  273. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
  274. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  275. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
  276. package/functions/kyc/authentoHelper.cjs +0 -1
  277. package/functions/kyc/authentoHelper.d.ts +0 -12
  278. package/functions/kyc/authentoHelper.mjs +0 -30
  279. package/functions/utils/get-hinkal-approvals.cjs +0 -1
  280. package/functions/utils/get-hinkal-approvals.d.ts +0 -3
  281. package/functions/utils/get-hinkal-approvals.mjs +0 -38
@@ -1,55 +1,58 @@
1
- import { PublicKey as l } from "@solana/web3.js";
1
+ import { PublicKey as m } from "@solana/web3.js";
2
2
  import { networkRegistry as f } from "../../constants/chains.constants.mjs";
3
- import { sendProxyV0Transaction as p, serializeProxyV0Transaction as u } from "../../functions/pre-transaction/sendV0Transaction.mjs";
3
+ import { sendProxyV0Transaction as y, serializeProxyV0Transaction as p } from "../../functions/pre-transaction/sendV0Transaction.mjs";
4
4
  import { buildSolanaTransferInstructions as P } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
5
- import { UserKeys as S } from "../crypto-keys/keys.mjs";
6
- import { createCustomSolanaConnection as w } from "../../functions/utils/create-provider.mjs";
7
- import { validateAndGetChainId as h } from "../../functions/utils/token-check.utils.mjs";
8
- const y = async (n, i, o, e) => {
9
- const r = h([n]), t = S.getSignerAddressFromPrivateKey(r, o.privateKey), { fetchRpcUrl: s } = f[r];
5
+ import { createCustomSolanaConnection as S } from "../../functions/utils/create-provider.mjs";
6
+ import { validateAndGetChainId as w } from "../../functions/utils/token-check.utils.mjs";
7
+ import { AccountActions as h } from "../AccountActions/AccountActions.mjs";
8
+ const u = async (r, a, t, e) => {
9
+ const n = w([r]), o = h.getAddressFromSubAccount(n, t);
10
+ if (!o)
11
+ throw Error("Public account address is not available");
12
+ const { fetchRpcUrl: s } = f[n];
10
13
  if (!s)
11
14
  throw new Error("RPC URL not found for the specified chain ID");
12
- const a = w(s), c = new l(t), { instructions: d, programId: m } = await P(
13
- a,
15
+ const i = S(s), c = new m(o), { instructions: d, programId: l } = await P(
16
+ i,
14
17
  c,
15
- new l(e),
16
- n,
17
- i
18
+ new m(e),
19
+ r,
20
+ a
18
21
  );
19
22
  return {
20
- connection: a,
21
- chainId: r,
22
- senderAddress: t,
23
+ connection: i,
24
+ chainId: n,
25
+ senderAddress: o,
23
26
  senderPublickey: c,
24
- programId: m,
27
+ programId: l,
25
28
  instructions: d
26
29
  };
27
- }, k = async (n, i, o, e, r = !1) => {
28
- if (r)
30
+ }, E = async (r, a, t, e, n = !1) => {
31
+ if (n)
29
32
  throw new Error("onlyGasEstimate is not supported for Solana proxy send");
30
- const { connection: t, chainId: s, senderAddress: a, senderPublickey: c, programId: d, instructions: m } = await y(n, i, o, e);
31
- return p({
32
- connection: t,
33
+ const { connection: o, chainId: s, senderAddress: i, senderPublickey: c, programId: d, instructions: l } = await u(r, a, t, e);
34
+ return y({
35
+ connection: o,
33
36
  chainId: s,
34
- subAccount: o,
37
+ subAccount: t,
35
38
  payerPublicKey: c,
36
- instructions: m,
39
+ instructions: l,
37
40
  convertParams: {
38
- fromAddress: a,
41
+ fromAddress: i,
39
42
  toAddress: e,
40
43
  programAddress: d.toString()
41
44
  }
42
45
  });
43
- }, v = async (n, i, o, e) => {
44
- const { connection: r, senderPublickey: t, instructions: s } = await y(
45
- n,
46
- i,
47
- o,
46
+ }, R = async (r, a, t, e) => {
47
+ const { connection: n, senderPublickey: o, instructions: s } = await u(
48
+ r,
49
+ a,
50
+ t,
48
51
  e
49
52
  );
50
- return u(r, t, s);
53
+ return p(n, o, s);
51
54
  };
52
55
  export {
53
- v as getSolanaProxySendSerializedTransaction,
54
- k as hinkalSolanaProxySend
56
+ R as getSolanaProxySendSerializedTransaction,
57
+ E as hinkalSolanaProxySend
55
58
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@solana/spl-token"),h=require("@solana/web3.js"),f=require("../../constants/chains.constants.cjs"),b=require("../../constants/protocol.constants.cjs"),N=require("../../functions/utils/solanaMint.utils.cjs"),k=require("../../functions/utils/addresses.cjs"),O=require("../../error-handling/error-codes.constants.cjs"),S=require("../../functions/pre-transaction/solana.cjs"),V=require("@coral-xyz/anchor"),T=require("../../functions/pre-transaction/sendV0Transaction.cjs"),M=require("../crypto-keys/keys.cjs"),G=require("../../functions/utils/create-provider.cjs"),q=require("../../functions/utils/token-check.utils.cjs"),L=async({program:t,mintPublicKey:r,mintAddressString:n,tokenAmount:o,anchorStealthStructure:s,senderPublickey:d,originalDeployer:e,storageAccount:i,storageVault:a})=>{const u=new V.BN(o.toString()),l=S.getTokenLimitStorageAccountPublicKey(t.programId,e,r),g=n===b.solanaNativeAddress?null:r,c=n===b.solanaNativeAddress?null:void 0;return t.methods.prooflessDeposit(u,s).accounts({mint:g,signer:d,signerAta:c,originalDeployer:e,storageAccount:i,storageVault:a,tokenLimitStorage:l,storageVaultAta:c,accessTokenOwner:null}).instruction()},I=async(t,r,n,o,s,d)=>{const e=d??t.getRecipientInfo();if(!k.isValidPrivateAddress(e))throw Error(O.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);const i=M.UserKeys.getSignerAddressFromPrivateKey(r,s.privateKey),{hinkalIdl:a,hinkalAddress:u,originalDeployer:l}=f.networkRegistry[r].contractData;if(!a)throw new Error("No IDL configured for Solana program on this network");if(!l)throw new Error("missing original deployer");const g=t.getSolanaProgram(a),c=new h.PublicKey(l),y=new h.PublicKey(u),P=new h.PublicKey(i),{erc20TokenAddress:R}=n,{fetchRpcUrl:A}=f.networkRegistry[r];if(!A)throw new Error("RPC URL not found for the specified chain ID");const E=G.createCustomSolanaConnection(A),{mintPublicKey:w}=N.formatMintAddress(R),_=w.toString(),p=S.getStorageAccountPublicKey(y,c),C=S.getStorageVaultPublicKey(y,c),K=k.constructStealthAddressStructure(e),v=S.buildAnchorStealthAddressStructure(K),x=await L({program:g,mintPublicKey:w,mintAddressString:_,tokenAmount:o,anchorStealthStructure:v,senderPublickey:P,originalDeployer:c,storageAccount:p,storageVault:C}),D=n.is2022Program?m.TOKEN_2022_PROGRAM_ID:m.TOKEN_PROGRAM_ID;return{connection:E,senderAddress:i,senderPublickey:P,instructions:[x],storageAccount:p,programId:D}},z=async(t,r,n,o,s,d=!1)=>{if(d)throw new Error("onlyGasEstimate is not supported for Solana proxy shield");if(!o)throw new Error("subAccount is required");const e=q.validateAndGetChainId([r]),{connection:i,senderPublickey:a,instructions:u,senderAddress:l,storageAccount:g,programId:c}=await I(t,e,r,n,o,s),y=s||g.toString();return T.sendProxyV0Transaction({connection:i,chainId:e,subAccount:o,payerPublicKey:a,instructions:u,convertParams:{fromAddress:l,toAddress:y,programAddress:c.toString()}})},U=async(t,r,n,o,s)=>{const d=q.validateAndGetChainId([r]),{connection:e,senderPublickey:i,instructions:a}=await I(t,d,r,n,o,s);return T.serializeProxyV0Transaction(e,i,a)};exports.getSolanaProxyShieldSerializedTransaction=U;exports.hinkalSolanaProxyShield=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@solana/spl-token"),h=require("@solana/web3.js"),f=require("../../constants/chains.constants.cjs"),b=require("../../constants/protocol.constants.cjs"),N=require("../../functions/utils/solanaMint.utils.cjs"),T=require("../../functions/utils/addresses.cjs"),O=require("../../error-handling/error-codes.constants.cjs"),A=require("../../functions/pre-transaction/solana.cjs"),V=require("@coral-xyz/anchor"),k=require("../../functions/pre-transaction/sendV0Transaction.cjs"),M=require("../../functions/utils/create-provider.cjs"),q=require("../../functions/utils/token-check.utils.cjs"),G=require("../AccountActions/AccountActions.cjs"),L=async({program:o,mintPublicKey:r,mintAddressString:e,tokenAmount:n,anchorStealthStructure:i,senderPublickey:d,originalDeployer:t,storageAccount:s,storageVault:c})=>{const u=new V.BN(n.toString()),l=A.getTokenLimitStorageAccountPublicKey(o.programId,t,r),g=e===b.solanaNativeAddress?null:r,a=e===b.solanaNativeAddress?null:void 0;return o.methods.prooflessDeposit(u,i).accounts({mint:g,signer:d,signerAta:a,originalDeployer:t,storageAccount:s,storageVault:c,tokenLimitStorage:l,storageVaultAta:a,accessTokenOwner:null}).instruction()},E=async(o,r,e,n,i,d)=>{const t=d??o.getRecipientInfo();if(!T.isValidPrivateAddress(t))throw Error(O.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);const s=G.AccountActions.getAddressFromSubAccount(r,i);if(!s)throw Error("Public account address is not available");const{hinkalIdl:c,hinkalAddress:u,originalDeployer:l}=f.networkRegistry[r].contractData;if(!c)throw new Error("No IDL configured for Solana program on this network");if(!l)throw new Error("missing original deployer");const g=o.getSolanaProgram(c),a=new h.PublicKey(l),S=new h.PublicKey(u),y=new h.PublicKey(s),{erc20TokenAddress:I}=e,{fetchRpcUrl:P}=f.networkRegistry[r];if(!P)throw new Error("RPC URL not found for the specified chain ID");const R=M.createCustomSolanaConnection(P),{mintPublicKey:w}=N.formatMintAddress(I),_=w.toString(),m=A.getStorageAccountPublicKey(S,a),C=A.getStorageVaultPublicKey(S,a),v=T.constructStealthAddressStructure(t),x=A.buildAnchorStealthAddressStructure(v),D=await L({program:g,mintPublicKey:w,mintAddressString:_,tokenAmount:n,anchorStealthStructure:x,senderPublickey:y,originalDeployer:a,storageAccount:m,storageVault:C}),K=e.is2022Program?p.TOKEN_2022_PROGRAM_ID:p.TOKEN_PROGRAM_ID;return{connection:R,senderAddress:s,senderPublickey:y,instructions:[D],storageAccount:m,programId:K}},z=async(o,r,e,n,i,d=!1)=>{if(d)throw new Error("onlyGasEstimate is not supported for Solana proxy shield");if(!n)throw new Error("subAccount is required");const t=q.validateAndGetChainId([r]),{connection:s,senderPublickey:c,instructions:u,senderAddress:l,storageAccount:g,programId:a}=await E(o,t,r,e,n,i),S=i||g.toString();return k.sendProxyV0Transaction({connection:s,chainId:t,subAccount:n,payerPublicKey:c,instructions:u,convertParams:{fromAddress:l,toAddress:S,programAddress:a.toString()}})},j=async(o,r,e,n,i)=>{const d=q.validateAndGetChainId([r]),{connection:t,senderPublickey:s,instructions:c}=await E(o,d,r,e,n,i);return k.serializeProxyV0Transaction(t,s,c)};exports.getSolanaProxyShieldSerializedTransaction=j;exports.hinkalSolanaProxyShield=z;
@@ -1,100 +1,103 @@
1
- import { TOKEN_2022_PROGRAM_ID as x, TOKEN_PROGRAM_ID as v } from "@solana/spl-token";
2
- import { PublicKey as p } from "@solana/web3.js";
3
- import { networkRegistry as h } from "../../constants/chains.constants.mjs";
1
+ import { TOKEN_2022_PROGRAM_ID as K, TOKEN_PROGRAM_ID as N } from "@solana/spl-token";
2
+ import { PublicKey as f } from "@solana/web3.js";
3
+ import { networkRegistry as y } from "../../constants/chains.constants.mjs";
4
4
  import { solanaNativeAddress as P } from "../../constants/protocol.constants.mjs";
5
- import { formatMintAddress as N } from "../../functions/utils/solanaMint.utils.mjs";
6
- import { isValidPrivateAddress as O, constructStealthAddressStructure as V } from "../../functions/utils/addresses.mjs";
7
- import { transactionErrorCodes as _ } from "../../error-handling/error-codes.constants.mjs";
8
- import { getStorageAccountPublicKey as G, getStorageVaultPublicKey as L, buildAnchorStealthAddressStructure as M, getTokenLimitStorageAccountPublicKey as U } from "../../functions/pre-transaction/solana.mjs";
9
- import { BN as z } from "@coral-xyz/anchor";
10
- import { sendProxyV0Transaction as F, serializeProxyV0Transaction as q } from "../../functions/pre-transaction/sendV0Transaction.mjs";
11
- import { UserKeys as B } from "../crypto-keys/keys.mjs";
12
- import { createCustomSolanaConnection as j } from "../../functions/utils/create-provider.mjs";
5
+ import { formatMintAddress as O } from "../../functions/utils/solanaMint.utils.mjs";
6
+ import { isValidPrivateAddress as V, constructStealthAddressStructure as _ } from "../../functions/utils/addresses.mjs";
7
+ import { transactionErrorCodes as v } from "../../error-handling/error-codes.constants.mjs";
8
+ import { getStorageAccountPublicKey as G, getStorageVaultPublicKey as L, buildAnchorStealthAddressStructure as M, getTokenLimitStorageAccountPublicKey as z } from "../../functions/pre-transaction/solana.mjs";
9
+ import { BN as F } from "@coral-xyz/anchor";
10
+ import { sendProxyV0Transaction as U, serializeProxyV0Transaction as q } from "../../functions/pre-transaction/sendV0Transaction.mjs";
11
+ import { createCustomSolanaConnection as B } from "../../functions/utils/create-provider.mjs";
13
12
  import { validateAndGetChainId as w } from "../../functions/utils/token-check.utils.mjs";
13
+ import { AccountActions as j } from "../AccountActions/AccountActions.mjs";
14
14
  const H = async ({
15
15
  program: t,
16
16
  mintPublicKey: r,
17
17
  mintAddressString: n,
18
18
  tokenAmount: e,
19
- anchorStealthStructure: s,
19
+ anchorStealthStructure: i,
20
20
  senderPublickey: d,
21
21
  originalDeployer: o,
22
- storageAccount: i,
23
- storageVault: a
22
+ storageAccount: s,
23
+ storageVault: c
24
24
  }) => {
25
- const m = new z(e.toString()), l = U(t.programId, o, r), u = n === P ? null : r, c = n === P ? null : void 0;
26
- return t.methods.prooflessDeposit(m, s).accounts({
27
- mint: u,
25
+ const u = new F(e.toString()), l = z(t.programId, o, r), m = n === P ? null : r, a = n === P ? null : void 0;
26
+ return t.methods.prooflessDeposit(u, i).accounts({
27
+ mint: m,
28
28
  signer: d,
29
- signerAta: c,
29
+ signerAta: a,
30
30
  originalDeployer: o,
31
- storageAccount: i,
32
- storageVault: a,
31
+ storageAccount: s,
32
+ storageVault: c,
33
33
  tokenLimitStorage: l,
34
- storageVaultAta: c,
34
+ storageVaultAta: a,
35
35
  accessTokenOwner: null
36
36
  }).instruction();
37
- }, E = async (t, r, n, e, s, d) => {
37
+ }, E = async (t, r, n, e, i, d) => {
38
38
  const o = d ?? t.getRecipientInfo();
39
- if (!O(o))
40
- throw Error(_.RECIPIENT_FORMAT_INCORRECT);
41
- const i = B.getSignerAddressFromPrivateKey(r, s.privateKey), { hinkalIdl: a, hinkalAddress: m, originalDeployer: l } = h[r].contractData;
42
- if (!a)
39
+ if (!V(o))
40
+ throw Error(v.RECIPIENT_FORMAT_INCORRECT);
41
+ const s = j.getAddressFromSubAccount(r, i);
42
+ if (!s)
43
+ throw Error("Public account address is not available");
44
+ const { hinkalIdl: c, hinkalAddress: u, originalDeployer: l } = y[r].contractData;
45
+ if (!c)
43
46
  throw new Error("No IDL configured for Solana program on this network");
44
47
  if (!l)
45
48
  throw new Error("missing original deployer");
46
- const u = t.getSolanaProgram(a), c = new p(l), g = new p(m), f = new p(i), { erc20TokenAddress: I } = n, { fetchRpcUrl: S } = h[r];
47
- if (!S)
49
+ const m = t.getSolanaProgram(c), a = new f(l), g = new f(u), p = new f(s), { erc20TokenAddress: b } = n, { fetchRpcUrl: A } = y[r];
50
+ if (!A)
48
51
  throw new Error("RPC URL not found for the specified chain ID");
49
- const R = j(S), { mintPublicKey: y } = N(I), T = y.toString(), A = G(g, c), b = L(g, c), K = V(o), k = M(K), C = await H({
50
- program: u,
51
- mintPublicKey: y,
52
- mintAddressString: T,
52
+ const I = B(A), { mintPublicKey: S } = O(b), R = S.toString(), h = G(g, a), T = L(g, a), k = _(o), C = M(k), D = await H({
53
+ program: m,
54
+ mintPublicKey: S,
55
+ mintAddressString: R,
53
56
  tokenAmount: e,
54
- anchorStealthStructure: k,
55
- senderPublickey: f,
56
- originalDeployer: c,
57
- storageAccount: A,
58
- storageVault: b
59
- }), D = n.is2022Program ? x : v;
57
+ anchorStealthStructure: C,
58
+ senderPublickey: p,
59
+ originalDeployer: a,
60
+ storageAccount: h,
61
+ storageVault: T
62
+ }), x = n.is2022Program ? K : N;
60
63
  return {
61
- connection: R,
62
- senderAddress: i,
63
- senderPublickey: f,
64
- instructions: [C],
65
- storageAccount: A,
66
- programId: D
64
+ connection: I,
65
+ senderAddress: s,
66
+ senderPublickey: p,
67
+ instructions: [D],
68
+ storageAccount: h,
69
+ programId: x
67
70
  };
68
- }, ir = async (t, r, n, e, s, d = !1) => {
71
+ }, ir = async (t, r, n, e, i, d = !1) => {
69
72
  if (d)
70
73
  throw new Error("onlyGasEstimate is not supported for Solana proxy shield");
71
74
  if (!e)
72
75
  throw new Error("subAccount is required");
73
- const o = w([r]), { connection: i, senderPublickey: a, instructions: m, senderAddress: l, storageAccount: u, programId: c } = await E(t, o, r, n, e, s), g = s || u.toString();
74
- return F({
75
- connection: i,
76
+ const o = w([r]), { connection: s, senderPublickey: c, instructions: u, senderAddress: l, storageAccount: m, programId: a } = await E(t, o, r, n, e, i), g = i || m.toString();
77
+ return U({
78
+ connection: s,
76
79
  chainId: o,
77
80
  subAccount: e,
78
- payerPublicKey: a,
79
- instructions: m,
81
+ payerPublicKey: c,
82
+ instructions: u,
80
83
  convertParams: {
81
84
  fromAddress: l,
82
85
  toAddress: g,
83
- programAddress: c.toString()
86
+ programAddress: a.toString()
84
87
  }
85
88
  });
86
- }, ar = async (t, r, n, e, s) => {
87
- const d = w([r]), { connection: o, senderPublickey: i, instructions: a } = await E(
89
+ }, cr = async (t, r, n, e, i) => {
90
+ const d = w([r]), { connection: o, senderPublickey: s, instructions: c } = await E(
88
91
  t,
89
92
  d,
90
93
  r,
91
94
  n,
92
95
  e,
93
- s
96
+ i
94
97
  );
95
- return q(o, i, a);
98
+ return q(o, s, c);
96
99
  };
97
100
  export {
98
- ar as getSolanaProxyShieldSerializedTransaction,
101
+ cr as getSolanaProxyShieldSerializedTransaction,
99
102
  ir as hinkalSolanaProxyShield
100
103
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@solana/web3.js");require("../../constants/token-data/index.cjs");const T=require("../../constants/chains.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");const f=require("../../functions/pre-transaction/sendV0Transaction.cjs"),x=require("../../functions/pre-transaction/getFeeStructure.cjs"),E=require("../../types/external-action.types.cjs"),K=require("../../error-handling/error-codes.constants.cjs"),I=require("../../functions/pre-transaction/solanaTransfer.utils.cjs"),v=require("../crypto-keys/keys.cjs"),R=require("../../functions/utils/create-provider.cjs"),C=require("../../functions/utils/token-check.utils.cjs"),P=async(a,n,u)=>{const s=v.UserKeys.getSignerAddressFromPrivateKey(a,u.privateKey),{fetchRpcUrl:o}=T.networkRegistry[a];if(!o)throw new Error("RPC URL not found for the specified chain ID");const i=R.createCustomSolanaConnection(o),l=JSON.parse(n),{addressLookupTableAccount:d,instructionLists:e}=l.data,y=await Promise.all(d.map(async r=>{const t=await i.getAddressLookupTable(new c.PublicKey(r));if(!t.value)throw new Error(`Failed to fetch lookup table: ${r}`);return t.value}));if(e.length===0)throw new Error("No instructions found");const w=e.map(r=>new c.TransactionInstruction({keys:r.accounts.map(t=>({pubkey:new c.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),programId:new c.PublicKey(r.programId),data:Buffer.from(r.data,"base64")}));return{connection:i,walletAddress:s,walletPublicKey:new c.PublicKey(s),lookupTableAccounts:y,instructions:w,instructionLists:e}},L=async(a,n,u,s,o,i,l,d=!1)=>{if(d)throw new Error("onlyGasEstimate is not supported for Solana proxy swap");const e=C.validateAndGetChainId(n),y=n[1],w=u[1],r=l??await x.getFeeStructure(e,i,n.map(h=>h.erc20TokenAddress),E.ExternalActionId.Emporium),t=w*r.variableRate/10000n,{connection:p,walletAddress:b,walletPublicKey:S,instructions:m,lookupTableAccounts:A,instructionLists:g}=await P(e,s,o),q=await a.getRandomRelay(e);if(!q)throw Error(K.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{instructions:k}=await I.buildSolanaTransferInstructions(p,S,new c.PublicKey(q),y,t);return f.sendProxyV0Transaction({connection:p,chainId:e,subAccount:o,payerPublicKey:S,instructions:[...m,...k],lookupTableAccounts:A,convertParams:{fromAddress:b,toAddress:b,programAddress:g[0].programId}})},_=async(a,n,u)=>{const{connection:s,walletPublicKey:o,instructions:i,lookupTableAccounts:l}=await P(a,n,u);return f.serializeProxyV0Transaction(s,o,i,l)};exports.getSolanaProxySwapSerializedTransaction=_;exports.hinkalSolanaProxySwap=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@solana/web3.js");require("../../constants/token-data/index.cjs");const T=require("../../constants/chains.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");const f=require("../../functions/pre-transaction/sendV0Transaction.cjs"),E=require("../../functions/pre-transaction/getFeeStructure.cjs"),x=require("../../types/external-action.types.cjs"),I=require("../../error-handling/error-codes.constants.cjs"),K=require("../../functions/pre-transaction/solanaTransfer.utils.cjs"),R=require("../../functions/utils/create-provider.cjs"),v=require("../../functions/utils/token-check.utils.cjs"),C=require("../AccountActions/AccountActions.cjs"),q=async(s,n,u)=>{const o=C.AccountActions.getAddressFromSubAccount(s,u);if(!o)throw Error("Public account address is not available");const{fetchRpcUrl:a}=T.networkRegistry[s];if(!a)throw new Error("RPC URL not found for the specified chain ID");const i=R.createCustomSolanaConnection(a),l=JSON.parse(n),{addressLookupTableAccount:d,instructionLists:e}=l.data,w=await Promise.all(d.map(async r=>{const t=await i.getAddressLookupTable(new c.PublicKey(r));if(!t.value)throw new Error(`Failed to fetch lookup table: ${r}`);return t.value}));if(e.length===0)throw new Error("No instructions found");const p=e.map(r=>new c.TransactionInstruction({keys:r.accounts.map(t=>({pubkey:new c.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),programId:new c.PublicKey(r.programId),data:Buffer.from(r.data,"base64")}));return{connection:i,walletAddress:o,walletPublicKey:new c.PublicKey(o),lookupTableAccounts:w,instructions:p,instructionLists:e}},L=async(s,n,u,o,a,i,l,d=!1)=>{if(d)throw new Error("onlyGasEstimate is not supported for Solana proxy swap");const e=v.validateAndGetChainId(n),w=n[1],p=u[1],r=l??await E.getFeeStructure(e,i,n.map(k=>k.erc20TokenAddress),x.ExternalActionId.Emporium),t=p*r.variableRate/10000n,{connection:y,walletAddress:b,walletPublicKey:A,instructions:P,lookupTableAccounts:m,instructionLists:g}=await q(e,o,a),S=await s.getRandomRelay(e);if(!S)throw Error(I.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{instructions:h}=await K.buildSolanaTransferInstructions(y,A,new c.PublicKey(S),w,t);return f.sendProxyV0Transaction({connection:y,chainId:e,subAccount:a,payerPublicKey:A,instructions:[...P,...h],lookupTableAccounts:m,convertParams:{fromAddress:b,toAddress:b,programAddress:g[0].programId}})},_=async(s,n,u)=>{const{connection:o,walletPublicKey:a,instructions:i,lookupTableAccounts:l}=await q(s,n,u);return f.serializeProxyV0Transaction(o,a,i,l)};exports.getSolanaProxySwapSerializedTransaction=_;exports.hinkalSolanaProxySwap=L;
@@ -1,4 +1,4 @@
1
- import { PublicKey as p, TransactionInstruction as E } from "@solana/web3.js";
1
+ import { PublicKey as m, TransactionInstruction as E } from "@solana/web3.js";
2
2
  import "../../constants/token-data/index.mjs";
3
3
  import { networkRegistry as T } from "../../constants/chains.constants.mjs";
4
4
  import "../../constants/contracts.constants.mjs";
@@ -15,19 +15,22 @@ import "../../constants/tasks.constants.mjs";
15
15
  import "../../constants/events.constants.mjs";
16
16
  import { sendProxyV0Transaction as x, serializeProxyV0Transaction as I } from "../../functions/pre-transaction/sendV0Transaction.mjs";
17
17
  import { getFeeStructure as R } from "../../functions/pre-transaction/getFeeStructure.mjs";
18
- import { ExternalActionId as K } from "../../types/external-action.types.mjs";
19
- import { transactionErrorCodes as L } from "../../error-handling/error-codes.constants.mjs";
20
- import { buildSolanaTransferInstructions as v } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
21
- import { UserKeys as C } from "../crypto-keys/keys.mjs";
22
- import { createCustomSolanaConnection as F } from "../../functions/utils/create-provider.mjs";
23
- import { validateAndGetChainId as N } from "../../functions/utils/token-check.utils.mjs";
24
- const A = async (a, n, c) => {
25
- const i = C.getSignerAddressFromPrivateKey(a, c.privateKey), { fetchRpcUrl: e } = T[a];
18
+ import { ExternalActionId as L } from "../../types/external-action.types.mjs";
19
+ import { transactionErrorCodes as v } from "../../error-handling/error-codes.constants.mjs";
20
+ import { buildSolanaTransferInstructions as C } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
21
+ import { createCustomSolanaConnection as K } from "../../functions/utils/create-provider.mjs";
22
+ import { validateAndGetChainId as F } from "../../functions/utils/token-check.utils.mjs";
23
+ import { AccountActions as N } from "../AccountActions/AccountActions.mjs";
24
+ const A = async (i, n, c) => {
25
+ const a = N.getAddressFromSubAccount(i, c);
26
+ if (!a)
27
+ throw Error("Public account address is not available");
28
+ const { fetchRpcUrl: e } = T[i];
26
29
  if (!e)
27
30
  throw new Error("RPC URL not found for the specified chain ID");
28
- const s = F(e), l = JSON.parse(n), { addressLookupTableAccount: m, instructionLists: o } = l.data, u = await Promise.all(
29
- m.map(async (t) => {
30
- const r = await s.getAddressLookupTable(new p(t));
31
+ const s = K(e), l = JSON.parse(n), { addressLookupTableAccount: p, instructionLists: o } = l.data, u = await Promise.all(
32
+ p.map(async (t) => {
33
+ const r = await s.getAddressLookupTable(new m(t));
31
34
  if (!r.value)
32
35
  throw new Error(`Failed to fetch lookup table: ${t}`);
33
36
  return r.value;
@@ -37,36 +40,36 @@ const A = async (a, n, c) => {
37
40
  throw new Error("No instructions found");
38
41
  const d = o.map((t) => new E({
39
42
  keys: t.accounts.map((r) => ({
40
- pubkey: new p(r.pubkey),
43
+ pubkey: new m(r.pubkey),
41
44
  isSigner: r.isSigner,
42
45
  isWritable: r.isWritable
43
46
  })),
44
- programId: new p(t.programId),
47
+ programId: new m(t.programId),
45
48
  data: Buffer.from(t.data, "base64")
46
49
  }));
47
50
  return {
48
51
  connection: s,
49
- walletAddress: i,
50
- walletPublicKey: new p(i),
52
+ walletAddress: a,
53
+ walletPublicKey: new m(a),
51
54
  lookupTableAccounts: u,
52
55
  instructions: d,
53
56
  instructionLists: o
54
57
  };
55
- }, eo = async (a, n, c, i, e, s, l, m = !1) => {
56
- if (m)
58
+ }, ao = async (i, n, c, a, e, s, l, p = !1) => {
59
+ if (p)
57
60
  throw new Error("onlyGasEstimate is not supported for Solana proxy swap");
58
- const o = N(n), u = n[1], d = c[1], t = l ?? await R(
61
+ const o = F(n), u = n[1], d = c[1], t = l ?? await R(
59
62
  o,
60
63
  s,
61
64
  n.map((k) => k.erc20TokenAddress),
62
- K.Emporium
63
- ), r = d * t.variableRate / 10000n, { connection: w, walletAddress: f, walletPublicKey: y, instructions: S, lookupTableAccounts: g, instructionLists: P } = await A(o, i, e), b = await a.getRandomRelay(o);
65
+ L.Emporium
66
+ ), r = d * t.variableRate / 10000n, { connection: w, walletAddress: f, walletPublicKey: y, instructions: S, lookupTableAccounts: h, instructionLists: P } = await A(o, a, e), b = await i.getRandomRelay(o);
64
67
  if (!b)
65
- throw Error(L.RELAYER_NOT_AVAILABLE);
66
- const { instructions: h } = await v(
68
+ throw Error(v.RELAYER_NOT_AVAILABLE);
69
+ const { instructions: g } = await C(
67
70
  w,
68
71
  y,
69
- new p(b),
72
+ new m(b),
70
73
  u,
71
74
  r
72
75
  );
@@ -75,23 +78,23 @@ const A = async (a, n, c) => {
75
78
  chainId: o,
76
79
  subAccount: e,
77
80
  payerPublicKey: y,
78
- instructions: [...S, ...h],
79
- lookupTableAccounts: g,
81
+ instructions: [...S, ...g],
82
+ lookupTableAccounts: h,
80
83
  convertParams: {
81
84
  fromAddress: f,
82
85
  toAddress: f,
83
86
  programAddress: P[0].programId
84
87
  }
85
88
  });
86
- }, ao = async (a, n, c) => {
87
- const { connection: i, walletPublicKey: e, instructions: s, lookupTableAccounts: l } = await A(
88
- a,
89
+ }, eo = async (i, n, c) => {
90
+ const { connection: a, walletPublicKey: e, instructions: s, lookupTableAccounts: l } = await A(
91
+ i,
89
92
  n,
90
93
  c
91
94
  );
92
- return I(i, e, s, l);
95
+ return I(a, e, s, l);
93
96
  };
94
97
  export {
95
- ao as getSolanaProxySwapSerializedTransaction,
96
- eo as hinkalSolanaProxySwap
98
+ eo as getSolanaProxySwapSerializedTransaction,
99
+ ao as hinkalSolanaProxySwap
97
100
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../types/circom-data.types.cjs");const ne=require("../../types/external-action.types.cjs"),y=require("../../constants/protocol.constants.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");const se=require("../../types/cache.types.cjs"),ce=require("../../functions/web3/events/getShieldedBalance.cjs"),ae=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),ie=require("../../functions/utils/time.utils.cjs"),ue=require("../../functions/pre-transaction/getFeeStructure.cjs"),le=require("../../functions/snarkjs/common.snarkjs.cjs"),de=require("../../constants/chains.constants.cjs"),a=require("@solana/web3.js"),m=require("../../functions/pre-transaction/solana.cjs"),pe=require("../../functions/snarkjs/constructSolanaZkProof.cjs"),ge=require("../utxo/Utxo.cjs"),S=require("../../functions/web3/etherFunctions.cjs"),Ae=require("../../functions/pre-transaction/convert-okx-instructions.cjs"),ye=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),me=require("../../error-handling/error-codes.constants.cjs"),Se=require("../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs"),we=require("ethers"),fe=require("../../functions/utils/token-check.utils.cjs"),Pe=async(t,o,n,w,K,x,v,E,R=!1)=>{if(R)throw new Error("onlyGasEstimate is not supported for Solana swap");const r=fe.validateAndGetChainId(o),f=new a.PublicKey(y.solanaNativeAddress),{hinkalAddress:_,originalDeployer:i,hinkalIdl:P}=de.networkRegistry[r].contractData;if(!i||!P)throw new Error("No IDL configured for Solana program on this network");const u=new a.PublicKey(i),l=new a.PublicKey(_),s=o.map(e=>e.erc20TokenAddress),{userKeys:k,merkleTreeAccessTokenByChain:F,merkleTreeHinkalByChain:N}=t,O=t.getSolanaProgram(P),c=E??await ue.getFeeStructure(r,v,s,ne.ExternalActionId.Transact),{patchAccessTokenMerkleTree:C,kycRequired:U,hasAccessToken:B}=await Se.shouldPatchAccessTokenMerkleTree(t,r,s,n);n[1]-=c.flatFee;const D=c.variableRate.toString(),L=Number(t.cacheDevice.get(se.StorageKeys.SLIPPAGE_PERCENTAGE)??0),d=o[1],G=S.getAmountInToken(d,n[1]),M=Number(G)*L/100;n[1]-=S.getAmountInWei(d,M.toFixed(d.decimals));const p=[...await ce.addPaddingToUtxos(t,r,s,n,6)],V=ie.getCurrentTimeInSeconds().toString(),j=t.userKeys.getShieldedPrivateKey(),g=[];for(let e=0;e<s.length;e+=1){const{outputUtxos:oe}=ae.outputUtxoProcessing(t.userKeys,p[e],n[e],V,void 0,!1);g.push([oe[0]])}const W=ge.Utxo.findCorrectRandomization(S.randomBigInt(31),j),q={tokenNumber:2,nullifierAmount:p[0].length,outputAmount:1},z=[!1,!0].slice(0,n.length),A=await t.getRandomRelay(r,!0);if(!A)throw Error(me.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const b=le.calcEncryptedOutputs(g).map(e=>[...we.ethers.utils.arrayify(e[0])]),h=m.getSwapperAccountPublicKeyFromSalt(l,u,w),{remainingAccounts:T,hinkalInstructions:I}=Ae.convertOKXToHinkalInstructions(K,h),{proofAArr:H,proofBArr:Z,proofCArr:X,publicInputsArr:Y}=await pe.constructSolanaZkProof(t.generateProofRemotely,i,N[r],F[r],k,O,s,p,g,W,c.flatFee,c.variableRate,f.toString(),A,q,b,r,C,z,w,I,T),J=m.getStorageAccountPublicKey(l,u),Q=m.getStorageVaultPublicKey(l,u),$=o[0].erc20TokenAddress!==y.solanaNativeAddress?new a.PublicKey(o[0].erc20TokenAddress):null,ee=o[1].erc20TokenAddress!==y.solanaNativeAddress?new a.PublicKey(o[1].erc20TokenAddress):null,te={recipient:f.toString(),storageAccount:J.toString(),storageVault:Q.toString(),swapperAccount:h.toString(),mintFrom:$?.toString()??null,mintTo:ee?.toString()??null,remainingAccounts:T.map(e=>({pubkey:e.pubkey.toString(),isSigner:e.isSigner,isWritable:e.isWritable})),addressLookupTableAccount:x},re={encryptedOutputs:b,proofAArr:H,proofBArr:Z,proofCArr:X,publicInputsArr:Y,relayerFee:c.flatFee.toString(),variableRate:D,dimensions:q,hinkalInstructions:I.map(e=>({accountIndexes:[...e.accountIndexes],data:[...e.data],programIndex:e.programIndex}))};return ye.solanaTransactCallRelayer({chainId:r,relayAddress:A,functionName:"swap",args:re,accounts:te,solanaAccessTokenData:!B&&U?{ethereumAddress:await t.getEthereumAddress(),accessKey:k.getAccessKey()}:void 0})};exports.hinkalSolanaSwap=Pe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../types/circom-data.types.cjs");const ne=require("../../types/external-action.types.cjs"),y=require("../../constants/protocol.constants.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");const se=require("../../types/cache.types.cjs"),ae=require("../../functions/web3/events/getShieldedBalance.cjs"),ce=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),ie=require("../../functions/utils/time.utils.cjs"),ue=require("../../functions/pre-transaction/getFeeStructure.cjs"),le=require("../../functions/snarkjs/common.snarkjs.cjs"),de=require("../../constants/chains.constants.cjs"),c=require("@solana/web3.js"),m=require("../../functions/pre-transaction/solana.cjs"),pe=require("../../functions/snarkjs/constructSolanaZkProof.cjs"),ge=require("../utxo/Utxo.cjs"),S=require("../../functions/web3/etherFunctions.cjs"),Ae=require("../../functions/pre-transaction/convert-okx-instructions.cjs"),ye=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),me=require("../../error-handling/error-codes.constants.cjs"),Se=require("../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs"),we=require("ethers"),fe=require("../../functions/utils/token-check.utils.cjs"),Pe=async(t,o,n,w,K,x,v,E,R=!1)=>{if(R)throw new Error("onlyGasEstimate is not supported for Solana swap");const r=fe.validateAndGetChainId(o),f=new c.PublicKey(y.solanaNativeAddress),{hinkalAddress:_,originalDeployer:i,hinkalIdl:P}=de.networkRegistry[r].contractData;if(!i||!P)throw new Error("No IDL configured for Solana program on this network");const u=new c.PublicKey(i),l=new c.PublicKey(_),s=o.map(e=>e.erc20TokenAddress),{userKeys:h,merkleTreeAccessTokenByChain:F,merkleTreeHinkalByChain:N}=t,C=t.getSolanaProgram(P),a=E??await ue.getFeeStructure(r,v,s,ne.ExternalActionId.Transact),{patchAccessTokenMerkleTree:O,kycRequired:B,hasAccessToken:U}=await Se.shouldPatchAccessTokenMerkleTree(t,r,s,n);n[1]-=a.flatFee;const D=a.variableRate.toString(),L=Number(t.cacheDevice.get(se.StorageKeys.SLIPPAGE_PERCENTAGE)??0),d=o[1],G=S.getAmountInToken(d,n[1]),M=Number(G)*L/100;n[1]-=S.getAmountInWei(d,M.toFixed(d.decimals));const p=[...await ae.addPaddingToUtxos(t,r,s,n,6)],V=ie.getCurrentTimeInSeconds().toString(),j=t.userKeys.getShieldedPrivateKey(),g=[];for(let e=0;e<s.length;e+=1){const{outputUtxos:oe}=ce.outputUtxoProcessing(t.userKeys,p[e],n[e],V,void 0,!1);g.push([oe[0]])}const W=ge.Utxo.findCorrectRandomization(S.randomBigInt(31),j),k={tokenNumber:2,nullifierAmount:p[0].length,outputAmount:1},z=[!1,!0].slice(0,n.length),A=await t.getRandomRelay(r,!0);if(!A)throw Error(me.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const q=le.calcEncryptedOutputs(g).map(e=>[...we.ethers.utils.arrayify(e[0])]),b=m.getSwapperAccountPublicKeyFromSalt(l,u,w),{remainingAccounts:T,hinkalInstructions:I}=Ae.convertOKXToHinkalInstructions(K,b),{proofAArr:H,proofBArr:Z,proofCArr:X,publicInputsArr:Y}=await pe.constructSolanaZkProof(t.generateProofRemotely,i,N[r],F[r],h,C,s,p,g,W,a.flatFee,a.variableRate,f.toString(),A,k,q,r,O,z,w,I,T),J=m.getStorageAccountPublicKey(l,u),Q=m.getStorageVaultPublicKey(l,u),$=o[0].erc20TokenAddress!==y.solanaNativeAddress?new c.PublicKey(o[0].erc20TokenAddress):null,ee=o[1].erc20TokenAddress!==y.solanaNativeAddress?new c.PublicKey(o[1].erc20TokenAddress):null,te={recipient:f.toString(),storageAccount:J.toString(),storageVault:Q.toString(),swapperAccount:b.toString(),mintFrom:$?.toString()??null,mintTo:ee?.toString()??null,remainingAccounts:T.map(e=>({pubkey:e.pubkey.toString(),isSigner:e.isSigner,isWritable:e.isWritable})),addressLookupTableAccount:x},re={encryptedOutputs:q,proofAArr:H,proofBArr:Z,proofCArr:X,publicInputsArr:Y,relayerFee:a.flatFee.toString(),variableRate:D,dimensions:k,hinkalInstructions:I.map(e=>({accountIndexes:[...e.accountIndexes],data:[...e.data],programIndex:e.programIndex}))};return ye.solanaTransactCallRelayer({chainId:r,relayAddress:A,functionName:"swap",args:re,accounts:te,solanaAccessTokenData:!U&&B?{ethereumAddress:await t.getEthereumAddressByChain(r),accessKey:h.getAccessKey()}:void 0})};exports.hinkalSolanaSwap=Pe;
@@ -21,20 +21,20 @@ import { transactionErrorCodes as It } from "../../error-handling/error-codes.co
21
21
  import { shouldPatchAccessTokenMerkleTree as Tt } from "../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs";
22
22
  import { ethers as Pt } from "ethers";
23
23
  import { validateAndGetChainId as bt } from "../../functions/utils/token-check.utils.mjs";
24
- const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
24
+ const Yt = async (o, e, n, f, h, E, x, K, R = !1) => {
25
25
  if (R)
26
26
  throw new Error("onlyGasEstimate is not supported for Solana swap");
27
27
  const r = bt(e), y = new i(A), { hinkalAddress: v, originalDeployer: c, hinkalIdl: S } = mt[r].contractData;
28
28
  if (!c || !S)
29
29
  throw new Error("No IDL configured for Solana program on this network");
30
- const m = new i(c), p = new i(v), s = e.map((t) => t.erc20TokenAddress), { userKeys: w, merkleTreeAccessTokenByChain: F, merkleTreeHinkalByChain: N } = o, D = o.getSolanaProgram(S), a = K ?? await it(r, x, s, rt.Transact), { patchAccessTokenMerkleTree: O, kycRequired: B, hasAccessToken: U } = await Tt(
30
+ const m = new i(c), p = new i(v), s = e.map((t) => t.erc20TokenAddress), { userKeys: w, merkleTreeAccessTokenByChain: F, merkleTreeHinkalByChain: N } = o, B = o.getSolanaProgram(S), a = K ?? await it(r, x, s, rt.Transact), { patchAccessTokenMerkleTree: D, kycRequired: O, hasAccessToken: C } = await Tt(
31
31
  o,
32
32
  r,
33
33
  s,
34
34
  n
35
35
  );
36
36
  n[1] -= a.flatFee;
37
- const C = a.variableRate.toString(), L = Number(o.cacheDevice.get(et.SLIPPAGE_PERCENTAGE) ?? 0), u = e[1], G = At(u, n[1]), V = Number(G) * L / 100;
37
+ const U = a.variableRate.toString(), L = Number(o.cacheDevice.get(et.SLIPPAGE_PERCENTAGE) ?? 0), u = e[1], G = At(u, n[1]), V = Number(G) * L / 100;
38
38
  n[1] -= ft(u, V.toFixed(u.decimals));
39
39
  const l = [...await nt(o, r, s, n, 6)], W = at().toString(), _ = o.userKeys.getShieldedPrivateKey(), d = [];
40
40
  for (let t = 0; t < s.length; t += 1) {
@@ -55,13 +55,13 @@ const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
55
55
  }, H = [!1, !0].slice(0, n.length), g = await o.getRandomRelay(r, !0);
56
56
  if (!g)
57
57
  throw Error(It.RELAYER_NOT_AVAILABLE);
58
- const T = ct(d).map((t) => [...Pt.utils.arrayify(t[0])]), P = pt(p, m, f), { remainingAccounts: b, hinkalInstructions: k } = St(E, P), { proofAArr: M, proofBArr: q, proofCArr: X, publicInputsArr: Y } = await dt(
58
+ const T = ct(d).map((t) => [...Pt.utils.arrayify(t[0])]), P = pt(p, m, f), { remainingAccounts: b, hinkalInstructions: k } = St(h, P), { proofAArr: M, proofBArr: q, proofCArr: X, publicInputsArr: Y } = await dt(
59
59
  o.generateProofRemotely,
60
60
  c,
61
61
  N[r],
62
62
  F[r],
63
63
  w,
64
- D,
64
+ B,
65
65
  s,
66
66
  l,
67
67
  d,
@@ -73,7 +73,7 @@ const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
73
73
  I,
74
74
  T,
75
75
  r,
76
- O,
76
+ D,
77
77
  H,
78
78
  f,
79
79
  k,
@@ -90,7 +90,7 @@ const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
90
90
  isSigner: t.isSigner,
91
91
  isWritable: t.isWritable
92
92
  })),
93
- addressLookupTableAccount: h
93
+ addressLookupTableAccount: E
94
94
  }, tt = {
95
95
  encryptedOutputs: T,
96
96
  proofAArr: M,
@@ -98,7 +98,7 @@ const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
98
98
  proofCArr: X,
99
99
  publicInputsArr: Y,
100
100
  relayerFee: a.flatFee.toString(),
101
- variableRate: C,
101
+ variableRate: U,
102
102
  dimensions: I,
103
103
  hinkalInstructions: k.map((t) => ({
104
104
  accountIndexes: [...t.accountIndexes],
@@ -112,8 +112,8 @@ const Yt = async (o, e, n, f, E, h, x, K, R = !1) => {
112
112
  functionName: "swap",
113
113
  args: tt,
114
114
  accounts: $,
115
- solanaAccessTokenData: !U && B ? {
116
- ethereumAddress: await o.getEthereumAddress(),
115
+ solanaAccessTokenData: !C && O ? {
116
+ ethereumAddress: await o.getEthereumAddressByChain(r),
117
117
  accessKey: w.getAccessKey()
118
118
  } : void 0
119
119
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../types/circom-data.types.cjs");const K=require("../../types/external-action.types.cjs"),b=require("../../constants/protocol.constants.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");const N=require("../../functions/web3/events/getShieldedBalance.cjs"),M=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),D=require("../../functions/utils/time.utils.cjs"),L=require("../../error-handling/error-codes.constants.cjs"),W=require("../../functions/pre-transaction/getFeeStructure.cjs"),j=require("../../functions/snarkjs/common.snarkjs.cjs"),z=require("../../functions/snarkjs/constructSolanaZkProof.cjs"),Z=require("../utxo/Utxo.cjs"),G=require("../../functions/web3/etherFunctions.cjs"),H=require("../../functions/web3/functionCalls/transactCallRelayer.cjs");require("../../constants/token-data/index.cjs");const V=require("../../constants/chains.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");const Y=require("../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs"),J=require("ethers"),Q=require("../../functions/utils/token-check.utils.cjs"),X=async(e,c,o,u,m,g,l=!1)=>{if(l)throw new Error("onlyGasEstimate is not supported for Solana withdraw");const r=Q.validateAndGetChainId(c),t=c.map(U=>U.erc20TokenAddress),f=await e.getEthereumAddress(),{originalDeployer:d,hinkalIdl:q}=V.networkRegistry[r].contractData;if(!d||!q)throw new Error("missing data");const{userKeys:y,merkleTreeAccessTokenByChain:h,merkleTreeHinkalByChain:w}=e,s=g??await W.getFeeStructure(r,m,t,K.ExternalActionId.Transact);o[0]-=s.flatFee;const{patchAccessTokenMerkleTree:S,kycRequired:T,hasAccessToken:k}=await Y.shouldPatchAccessTokenMerkleTree(e,r,t,o);if(t.length>1)throw new Error("Solana Withdraw: Only one mint address is supported");const n=[...await N.addPaddingToUtxos(e,r,t,o,6)][0],R=D.getCurrentTimeInSeconds().toString(),{outputUtxos:a}=M.outputUtxoProcessing(e.userKeys,n,o[0],R,void 0,!1),i=await e.getRandomRelay(r,!l);if(!i)throw Error(L.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const E=Z.Utxo.findCorrectRandomization(G.randomBigInt(31),e.userKeys.getShieldedPrivateKey()),p={tokenNumber:t.length,nullifierAmount:n.length,outputAmount:a.length},P=e.getSolanaProgram(q),x=j.calcEncryptedOutputs([a])[0][0],A=Array.from(J.ethers.utils.arrayify(x)),{proofAArr:v,proofBArr:_,proofCArr:C,publicInputsArr:I}=await z.constructSolanaZkProof(e.generateProofRemotely,d,w[r],h[r],y,P,[t[0]],[n],[a],E,s.flatFee,s.variableRate,u,i,p,[A],r,S),B=t[0]===b.solanaNativeAddress,F={recipient:u,mint:B?void 0:t[0]},O={proofAArr:v,proofBArr:_,proofCArr:C,publicInputsArr:I,encryptedOutputs:[A],relayerFee:s.flatFee.toString(),dimensions:p};return H.solanaTransactCallRelayer({chainId:r,relayAddress:i,functionName:"transact",args:O,accounts:F,solanaAccessTokenData:!k&&T?{ethereumAddress:f,accessKey:y.getAccessKey()}:void 0})};exports.hinkalSolanaWithdraw=X;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../types/circom-data.types.cjs");const K=require("../../types/external-action.types.cjs"),b=require("../../constants/protocol.constants.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");const N=require("../../functions/web3/events/getShieldedBalance.cjs"),M=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),D=require("../../functions/utils/time.utils.cjs"),L=require("../../error-handling/error-codes.constants.cjs"),W=require("../../functions/pre-transaction/getFeeStructure.cjs"),j=require("../../functions/snarkjs/common.snarkjs.cjs"),z=require("../../functions/snarkjs/constructSolanaZkProof.cjs"),Z=require("../utxo/Utxo.cjs"),G=require("../../functions/web3/etherFunctions.cjs"),H=require("../../functions/web3/functionCalls/transactCallRelayer.cjs");require("../../constants/token-data/index.cjs");const V=require("../../constants/chains.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");const Y=require("../../functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs"),J=require("ethers"),Q=require("../../functions/utils/token-check.utils.cjs"),X=async(r,c,o,u,m,g,l=!1)=>{if(l)throw new Error("onlyGasEstimate is not supported for Solana withdraw");const e=Q.validateAndGetChainId(c),t=c.map(U=>U.erc20TokenAddress),h=await r.getEthereumAddressByChain(e),{originalDeployer:d,hinkalIdl:q}=V.networkRegistry[e].contractData;if(!d||!q)throw new Error("missing data");const{userKeys:y,merkleTreeAccessTokenByChain:f,merkleTreeHinkalByChain:w}=r,s=g??await W.getFeeStructure(e,m,t,K.ExternalActionId.Transact);o[0]-=s.flatFee;const{patchAccessTokenMerkleTree:S,kycRequired:T,hasAccessToken:k}=await Y.shouldPatchAccessTokenMerkleTree(r,e,t,o);if(t.length>1)throw new Error("Solana Withdraw: Only one mint address is supported");const n=[...await N.addPaddingToUtxos(r,e,t,o,6)][0],R=D.getCurrentTimeInSeconds().toString(),{outputUtxos:a}=M.outputUtxoProcessing(r.userKeys,n,o[0],R,void 0,!1),i=await r.getRandomRelay(e,!l);if(!i)throw Error(L.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const E=Z.Utxo.findCorrectRandomization(G.randomBigInt(31),r.userKeys.getShieldedPrivateKey()),p={tokenNumber:t.length,nullifierAmount:n.length,outputAmount:a.length},P=r.getSolanaProgram(q),x=j.calcEncryptedOutputs([a])[0][0],A=Array.from(J.ethers.utils.arrayify(x)),{proofAArr:v,proofBArr:C,proofCArr:_,publicInputsArr:B}=await z.constructSolanaZkProof(r.generateProofRemotely,d,w[e],f[e],y,P,[t[0]],[n],[a],E,s.flatFee,s.variableRate,u,i,p,[A],e,S),I=t[0]===b.solanaNativeAddress,F={recipient:u,mint:I?void 0:t[0]},O={proofAArr:v,proofBArr:C,proofCArr:_,publicInputsArr:B,encryptedOutputs:[A],relayerFee:s.flatFee.toString(),dimensions:p};return H.solanaTransactCallRelayer({chainId:e,relayAddress:i,functionName:"transact",args:O,accounts:F,solanaAccessTokenData:!k&&T?{ethereumAddress:h,accessKey:y.getAccessKey()}:void 0})};exports.hinkalSolanaWithdraw=X;