@hinkal/common 0.2.31 → 0.2.32

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 (776) hide show
  1. package/API/API.cjs +1 -1
  2. package/API/API.d.ts +26 -11
  3. package/API/API.mjs +103 -88
  4. package/API/callMonitor.cjs +1 -1
  5. package/API/callMonitor.d.ts +8 -0
  6. package/API/callMonitor.mjs +2 -2
  7. package/API/callRelayer.d.ts +4 -1
  8. package/API/dashboardAccountCalls.cjs +1 -0
  9. package/API/dashboardAccountCalls.d.ts +24 -0
  10. package/API/dashboardAccountCalls.mjs +10 -0
  11. package/API/dashboardAccountMemberCalls.cjs +1 -0
  12. package/API/dashboardAccountMemberCalls.d.ts +34 -0
  13. package/API/dashboardAccountMemberCalls.mjs +16 -0
  14. package/API/dashboardBalanceCalls.cjs +1 -0
  15. package/API/dashboardBalanceCalls.d.ts +12 -0
  16. package/API/dashboardBalanceCalls.mjs +13 -0
  17. package/API/dashboardContactCalls.cjs +1 -0
  18. package/API/dashboardContactCalls.d.ts +9 -0
  19. package/API/dashboardContactCalls.mjs +13 -0
  20. package/API/dashboardPayoutCalls.cjs +1 -0
  21. package/API/dashboardPayoutCalls.d.ts +14 -0
  22. package/API/dashboardPayoutCalls.mjs +13 -0
  23. package/API/dashboardTransactionCalls.cjs +1 -0
  24. package/API/dashboardTransactionCalls.d.ts +3 -0
  25. package/API/dashboardTransactionCalls.mjs +10 -0
  26. package/API/enclaveRecipientInfoCalls.cjs +1 -0
  27. package/API/enclaveRecipientInfoCalls.d.ts +14 -0
  28. package/API/enclaveRecipientInfoCalls.mjs +7 -0
  29. package/API/enclaveSignatureCalls.cjs +1 -1
  30. package/API/enclaveSignatureCalls.d.ts +3 -8
  31. package/API/enclaveSignatureCalls.mjs +6 -8
  32. package/API/enclaveUtxoCalls.cjs +1 -1
  33. package/API/enclaveUtxoCalls.d.ts +8 -2
  34. package/API/enclaveUtxoCalls.mjs +5 -3
  35. package/API/fetchCommitmentsCache.cjs +1 -1
  36. package/API/fetchCommitmentsCache.d.ts +1 -19
  37. package/API/fetchCommitmentsCache.mjs +9 -22
  38. package/API/getAnyRecipientInfo.d.ts +1 -0
  39. package/API/getServerURL.cjs +1 -1
  40. package/API/getServerURL.d.ts +3 -0
  41. package/API/getServerURL.mjs +15 -32
  42. package/API/getWebsiteURL.cjs +1 -1
  43. package/API/getWebsiteURL.d.ts +3 -2
  44. package/API/getWebsiteURL.mjs +12 -5
  45. package/API/index.cjs +1 -1
  46. package/API/index.d.ts +2 -0
  47. package/API/index.mjs +2 -0
  48. package/API/kycCalls.cjs +1 -1
  49. package/API/kycCalls.d.ts +0 -5
  50. package/API/kycCalls.mjs +3 -10
  51. package/API/privateSendRecipientInfoCalls.cjs +1 -1
  52. package/API/privateSendRecipientInfoCalls.d.ts +0 -10
  53. package/API/privateSendRecipientInfoCalls.mjs +2 -2
  54. package/API/scheduled-transactions-calls.cjs +1 -1
  55. package/API/scheduled-transactions-calls.d.ts +8 -2
  56. package/API/scheduled-transactions-calls.mjs +5 -4
  57. package/API/tenderly.api.cjs +1 -1
  58. package/API/tenderly.api.d.ts +1 -1
  59. package/API/tenderly.api.mjs +1 -1
  60. package/constants/addresses.constants.cjs +1 -1
  61. package/constants/addresses.constants.d.ts +10 -7
  62. package/constants/addresses.constants.mjs +11 -8
  63. package/constants/assets.constants.cjs +1 -1
  64. package/constants/assets.constants.mjs +1 -1
  65. package/constants/auth.constants.cjs +1 -0
  66. package/constants/auth.constants.d.ts +2 -0
  67. package/constants/auth.constants.mjs +4 -0
  68. package/constants/backend.constants.cjs +1 -1
  69. package/constants/backend.constants.d.ts +0 -1
  70. package/constants/backend.constants.mjs +0 -1
  71. package/constants/bridging.constants.cjs +1 -1
  72. package/constants/bridging.constants.d.ts +2 -0
  73. package/constants/bridging.constants.mjs +7 -3
  74. package/constants/chains.constants.cjs +1 -1
  75. package/constants/chains.constants.d.ts +25 -8
  76. package/constants/chains.constants.mjs +168 -127
  77. package/constants/coingecko.constants.cjs +1 -1
  78. package/constants/coingecko.constants.d.ts +5 -3
  79. package/constants/coingecko.constants.mjs +8 -5
  80. package/constants/contracts.constants.cjs +1 -1
  81. package/constants/contracts.constants.mjs +0 -4
  82. package/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
  83. package/constants/deploy-data/deploy-data-arbMainnet.json.mjs +125 -850
  84. package/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
  85. package/constants/deploy-data/deploy-data-arcTestnet.json.mjs +97 -1013
  86. package/constants/deploy-data/deploy-data-base.json.cjs +1 -1
  87. package/constants/deploy-data/deploy-data-base.json.mjs +132 -869
  88. package/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
  89. package/constants/deploy-data/deploy-data-ethMainnet.json.mjs +132 -871
  90. package/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
  91. package/constants/deploy-data/deploy-data-localhost.json.mjs +6 -808
  92. package/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
  93. package/constants/deploy-data/deploy-data-optimism.json.mjs +132 -869
  94. package/constants/deploy-data/deploy-data-optimismTest.json.cjs +1 -0
  95. package/constants/deploy-data/deploy-data-optimismTest.json.mjs +3565 -0
  96. package/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
  97. package/constants/deploy-data/deploy-data-polygon.json.mjs +132 -869
  98. package/constants/deploy-data/deploy-data-sepoliaTestnet.json.cjs +1 -0
  99. package/constants/deploy-data/deploy-data-sepoliaTestnet.json.mjs +3561 -0
  100. package/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
  101. package/constants/deploy-data/deploy-data-solana.json.mjs +1 -1
  102. package/constants/deploy-data/deploy-data-tempo.json.cjs +1 -0
  103. package/constants/deploy-data/deploy-data-tempo.json.mjs +3563 -0
  104. package/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
  105. package/constants/deploy-data/deploy-data-tronMainnet.json.mjs +133 -870
  106. package/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
  107. package/constants/deploy-data/deploy-data-tronNile.json.mjs +133 -870
  108. package/constants/deploy-data/index.d.ts +4 -1
  109. package/constants/events.constants.cjs +1 -1
  110. package/constants/events.constants.mjs +4 -1
  111. package/constants/fees.constants.cjs +1 -1
  112. package/constants/fees.constants.d.ts +5 -1
  113. package/constants/fees.constants.mjs +9 -5
  114. package/constants/index.cjs +1 -1
  115. package/constants/index.d.ts +2 -1
  116. package/constants/index.mjs +6 -2
  117. package/constants/kyc.constants.cjs +1 -1
  118. package/constants/kyc.constants.d.ts +1 -1
  119. package/constants/kyc.constants.mjs +38 -37
  120. package/constants/lifi.constants.cjs +1 -1
  121. package/constants/lifi.constants.d.ts +2 -0
  122. package/constants/lifi.constants.mjs +7 -2
  123. package/constants/mediaUrls.constants.cjs +1 -1
  124. package/constants/mediaUrls.constants.d.ts +7 -1
  125. package/constants/mediaUrls.constants.mjs +9 -3
  126. package/constants/price-impact.constants.cjs +1 -0
  127. package/constants/price-impact.constants.d.ts +2 -0
  128. package/constants/price-impact.constants.mjs +4 -0
  129. package/constants/protocol.constants.cjs +1 -1
  130. package/constants/protocol.constants.d.ts +4 -1
  131. package/constants/protocol.constants.mjs +2 -2
  132. package/constants/reorg-depths.constants.cjs +1 -1
  133. package/constants/reorg-depths.constants.d.ts +3 -1
  134. package/constants/reorg-depths.constants.mjs +3 -1
  135. package/constants/save-depths.cjs +1 -1
  136. package/constants/save-depths.d.ts +3 -1
  137. package/constants/save-depths.mjs +3 -1
  138. package/constants/server.constants.cjs +1 -1
  139. package/constants/server.constants.d.ts +33 -8
  140. package/constants/server.constants.mjs +44 -24
  141. package/constants/token-data/ERC20Registry.cjs +1 -1
  142. package/constants/token-data/ERC20Registry.mjs +20 -9
  143. package/constants/token-data/arbMainnetRegistry.json.cjs +1 -1
  144. package/constants/token-data/arbMainnetRegistry.json.mjs +24 -24
  145. package/constants/token-data/arbMainnetRegistryFixed.json.cjs +1 -1
  146. package/constants/token-data/arbMainnetRegistryFixed.json.mjs +24 -24
  147. package/constants/token-data/arcTestnetRegistry.json.cjs +1 -1
  148. package/constants/token-data/arcTestnetRegistry.json.mjs +3 -3
  149. package/constants/token-data/baseRegistry.json.cjs +1 -1
  150. package/constants/token-data/baseRegistry.json.mjs +20 -12
  151. package/constants/token-data/baseRegistryFixed.json.cjs +1 -1
  152. package/constants/token-data/baseRegistryFixed.json.mjs +18 -10
  153. package/constants/token-data/ethMainnetRegistry.json.cjs +1 -1
  154. package/constants/token-data/ethMainnetRegistry.json.mjs +38 -38
  155. package/constants/token-data/ethMainnetRegistryFixed.json.cjs +1 -1
  156. package/constants/token-data/ethMainnetRegistryFixed.json.mjs +38 -38
  157. package/constants/token-data/localhostRegistry.json.cjs +1 -1
  158. package/constants/token-data/localhostRegistry.json.mjs +211 -211
  159. package/constants/token-data/optimismRegistry.json.cjs +1 -1
  160. package/constants/token-data/optimismRegistry.json.mjs +36 -28
  161. package/constants/token-data/optimismRegistryFixed.json.cjs +1 -1
  162. package/constants/token-data/optimismRegistryFixed.json.mjs +36 -28
  163. package/constants/token-data/polygonRegistry.json.cjs +1 -1
  164. package/constants/token-data/polygonRegistry.json.mjs +34 -26
  165. package/constants/token-data/polygonRegistryFixed.json.cjs +1 -1
  166. package/constants/token-data/polygonRegistryFixed.json.mjs +34 -26
  167. package/constants/token-data/sepoliaTestnetRegistry.json.cjs +1 -0
  168. package/constants/token-data/sepoliaTestnetRegistry.json.mjs +21 -0
  169. package/constants/token-data/solanaMainnetRegistry.json.cjs +1 -1
  170. package/constants/token-data/solanaMainnetRegistry.json.mjs +1 -1
  171. package/constants/token-data/tempoRegistry.json.cjs +1 -0
  172. package/constants/token-data/tempoRegistry.json.mjs +37 -0
  173. package/constants/token-data/tronMainnetRegistry.json.cjs +1 -1
  174. package/constants/token-data/tronMainnetRegistry.json.mjs +26 -15
  175. package/constants/token-data/tronNileRegistry.json.cjs +1 -1
  176. package/constants/token-data/tronNileRegistry.json.mjs +2 -2
  177. package/constants/tokens.constants.cjs +1 -1
  178. package/constants/tokens.constants.d.ts +1 -0
  179. package/constants/tokens.constants.mjs +10 -3
  180. package/constants/vite.constants.cjs +1 -1
  181. package/constants/vite.constants.mjs +23 -5
  182. package/constants/wallet.constants.cjs +1 -1
  183. package/constants/wallet.constants.d.ts +1 -1
  184. package/constants/wallet.constants.mjs +2 -18
  185. package/crypto/babyJub.d.ts +1 -1
  186. package/crypto/ecdh-dual-path.cjs +1 -0
  187. package/crypto/ecdh-dual-path.d.ts +13 -0
  188. package/crypto/ecdh-dual-path.mjs +39 -0
  189. package/crypto/ecdh-sealed-keys.cjs +1 -0
  190. package/crypto/ecdh-sealed-keys.d.ts +22 -0
  191. package/crypto/ecdh-sealed-keys.mjs +33 -0
  192. package/crypto/ecdh.cjs +1 -0
  193. package/crypto/ecdh.d.ts +2 -0
  194. package/crypto/ecdh.mjs +9 -0
  195. package/crypto/eddsa.cjs +1 -0
  196. package/crypto/eddsa.d.ts +8 -0
  197. package/crypto/eddsa.mjs +12 -0
  198. package/crypto/index.cjs +1 -1
  199. package/crypto/index.d.ts +4 -0
  200. package/crypto/index.mjs +4 -0
  201. package/crypto/preProcessing.cjs +1 -1
  202. package/crypto/preProcessing.d.ts +1 -1
  203. package/crypto/preProcessing.mjs +10 -8
  204. package/data-structures/AccountActions/AccountActions.cjs +1 -1
  205. package/data-structures/AccountActions/AccountActions.mjs +3 -2
  206. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
  207. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +2 -3
  208. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  209. package/data-structures/Hinkal/Hinkal.d.ts +16 -21
  210. package/data-structures/Hinkal/Hinkal.mjs +144 -160
  211. package/data-structures/Hinkal/IHinkal.d.ts +13 -19
  212. package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  213. package/data-structures/Hinkal/handleAutoDepositBack.mjs +15 -15
  214. package/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  215. package/data-structures/Hinkal/hinkalClaimUtxo.d.ts +1 -2
  216. package/data-structures/Hinkal/hinkalClaimUtxo.mjs +49 -47
  217. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  218. package/data-structures/Hinkal/hinkalDeposit.d.ts +5 -3
  219. package/data-structures/Hinkal/hinkalDeposit.mjs +106 -50
  220. package/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  221. package/data-structures/Hinkal/hinkalDepositAndBridge.d.ts +1 -1
  222. package/data-structures/Hinkal/hinkalDepositAndBridge.mjs +94 -87
  223. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  224. package/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +3 -2
  225. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +48 -48
  226. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
  227. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +41 -63
  228. package/data-structures/Hinkal/hinkalPalEvmDeposit.cjs +1 -0
  229. package/data-structures/Hinkal/hinkalPalEvmDeposit.d.ts +9 -0
  230. package/data-structures/Hinkal/hinkalPalEvmDeposit.mjs +19 -0
  231. package/data-structures/Hinkal/hinkalPalSolanaDepositPrepare.cjs +1 -0
  232. package/data-structures/Hinkal/hinkalPalSolanaDepositPrepare.d.ts +9 -0
  233. package/data-structures/Hinkal/hinkalPalSolanaDepositPrepare.mjs +18 -0
  234. package/data-structures/Hinkal/hinkalPalTronDepositPrepare.cjs +1 -0
  235. package/data-structures/Hinkal/hinkalPalTronDepositPrepare.d.ts +9 -0
  236. package/data-structures/Hinkal/hinkalPalTronDepositPrepare.mjs +17 -0
  237. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  238. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +46 -50
  239. package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  240. package/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +4 -1
  241. package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +84 -128
  242. package/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -0
  243. package/data-structures/Hinkal/hinkalProoflessDeposit.utils.d.ts +7 -0
  244. package/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +51 -0
  245. package/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.cjs +1 -0
  246. package/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.d.ts +6 -0
  247. package/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.mjs +128 -0
  248. package/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  249. package/data-structures/Hinkal/hinkalSolanaClaimUtxo.d.ts +2 -2
  250. package/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +68 -69
  251. package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  252. package/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +4 -3
  253. package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +96 -57
  254. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  255. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +20 -2
  256. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +114 -122
  257. package/data-structures/Hinkal/hinkalSolanaProoflessDeposit.cjs +1 -1
  258. package/data-structures/Hinkal/hinkalSolanaProoflessDeposit.d.ts +1 -1
  259. package/data-structures/Hinkal/hinkalSolanaProoflessDeposit.mjs +12 -17
  260. package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  261. package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +38 -40
  262. package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  263. package/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +4 -3
  264. package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +68 -52
  265. package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  266. package/data-structures/Hinkal/hinkalSolanaSwap.d.ts +2 -2
  267. package/data-structures/Hinkal/hinkalSolanaSwap.mjs +67 -72
  268. package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  269. package/data-structures/Hinkal/hinkalSolanaTransfer.d.ts +2 -1
  270. package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +56 -61
  271. package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  272. package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +38 -48
  273. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  274. package/data-structures/Hinkal/hinkalSwap.mjs +32 -42
  275. package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  276. package/data-structures/Hinkal/hinkalTransfer.mjs +41 -54
  277. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  278. package/data-structures/Hinkal/hinkalWithdraw.mjs +43 -56
  279. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  280. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +87 -108
  281. package/data-structures/Hinkal/index.cjs +1 -1
  282. package/data-structures/Hinkal/index.d.ts +5 -0
  283. package/data-structures/Hinkal/index.mjs +5 -0
  284. package/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -0
  285. package/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.d.ts +22 -0
  286. package/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.mjs +34 -0
  287. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  288. package/data-structures/Hinkal/resetMerkleTrees.mjs +33 -40
  289. package/data-structures/IndexedDB/activity-db.cjs +1 -1
  290. package/data-structures/IndexedDB/activity-db.mjs +25 -24
  291. package/data-structures/IndexedDB/contact-db.cjs +1 -1
  292. package/data-structures/IndexedDB/contact-db.d.ts +1 -0
  293. package/data-structures/IndexedDB/contact-db.mjs +30 -16
  294. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  295. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.d.ts +1 -1
  296. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +4 -4
  297. package/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  298. package/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +37 -34
  299. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  300. package/data-structures/TokenDBs/EventsPublicTokensDB.d.ts +2 -0
  301. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +65 -50
  302. package/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
  303. package/data-structures/TokenDBs/PrivateTokensDB.mjs +2 -1
  304. package/data-structures/WalletManager/WalletManager.cjs +1 -0
  305. package/data-structures/WalletManager/WalletManager.d.ts +51 -0
  306. package/data-structures/WalletManager/WalletManager.mjs +99 -0
  307. package/data-structures/WalletManager/index.cjs +1 -0
  308. package/data-structures/WalletManager/index.d.ts +1 -0
  309. package/data-structures/WalletManager/index.mjs +1 -0
  310. package/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  311. package/data-structures/crypto-keys/decodeUTXO.d.ts +5 -3
  312. package/data-structures/crypto-keys/decodeUTXO.mjs +49 -46
  313. package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  314. package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +32 -40
  315. package/data-structures/crypto-keys/keys.cjs +1 -1
  316. package/data-structures/crypto-keys/keys.d.ts +51 -24
  317. package/data-structures/crypto-keys/keys.mjs +104 -43
  318. package/data-structures/custom-token-registry/CustomTokenRegistry.cjs +1 -1
  319. package/data-structures/custom-token-registry/CustomTokenRegistry.mjs +2 -2
  320. package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  321. package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +2 -2
  322. package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +4 -4
  323. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +1 -1
  324. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +1 -1
  325. package/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -1
  326. package/data-structures/event-service/helpers/ClientEventHelper.mjs +3 -3
  327. package/data-structures/event-service/helpers/PollingEventHelper.cjs +1 -1
  328. package/data-structures/event-service/helpers/PollingEventHelper.d.ts +2 -0
  329. package/data-structures/event-service/helpers/PollingEventHelper.mjs +7 -3
  330. package/data-structures/event-service/index.cjs +1 -1
  331. package/data-structures/event-service/index.d.ts +0 -3
  332. package/data-structures/event-service/index.mjs +0 -3
  333. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +1 -1
  334. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +1 -1
  335. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
  336. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +2 -2
  337. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +5 -5
  338. package/data-structures/index.cjs +1 -1
  339. package/data-structures/index.d.ts +1 -0
  340. package/data-structures/index.mjs +10 -10
  341. package/data-structures/merkle-tree/index.cjs +1 -1
  342. package/data-structures/merkle-tree/index.d.ts +0 -1
  343. package/data-structures/merkle-tree/index.mjs +0 -1
  344. package/data-structures/provider-adapter/IProviderAdapter.d.ts +6 -0
  345. package/data-structures/snapshot/SnapshotFetcherService.cjs +1 -1
  346. package/data-structures/snapshot/SnapshotFetcherService.d.ts +0 -2
  347. package/data-structures/snapshot/SnapshotFetcherService.mjs +0 -6
  348. package/data-structures/snapshot/index.cjs +1 -1
  349. package/data-structures/snapshot/index.d.ts +0 -3
  350. package/data-structures/snapshot/index.mjs +0 -3
  351. package/data-structures/utxo/Utxo.cjs +1 -1
  352. package/data-structures/utxo/Utxo.d.ts +16 -10
  353. package/data-structures/utxo/Utxo.mjs +40 -38
  354. package/error-handling/customErrors/HttpError.cjs +1 -0
  355. package/error-handling/customErrors/HttpError.d.ts +4 -0
  356. package/error-handling/customErrors/HttpError.mjs +8 -0
  357. package/error-handling/customErrors/index.cjs +1 -1
  358. package/error-handling/customErrors/index.d.ts +1 -0
  359. package/error-handling/customErrors/index.mjs +1 -0
  360. package/error-handling/error-codes.constants.cjs +1 -1
  361. package/error-handling/error-codes.constants.d.ts +11 -0
  362. package/error-handling/error-codes.constants.mjs +13 -2
  363. package/error-handling/index.cjs +1 -1
  364. package/error-handling/index.mjs +1 -0
  365. package/error-handling/retrySolanaError.cjs +1 -0
  366. package/error-handling/retrySolanaError.d.ts +1 -0
  367. package/error-handling/retrySolanaError.mjs +4 -0
  368. package/externalABIs/index.cjs +1 -1
  369. package/externalABIs/index.d.ts +1 -16
  370. package/externalABIs/index.mjs +4 -5
  371. package/functions/auto-deposit-back-helpers/get-gas-token-records.d.ts +1 -1
  372. package/functions/auto-deposit-back-helpers/get-tokens-to-deposit-back.d.ts +1 -1
  373. package/functions/index.cjs +1 -1
  374. package/functions/index.mjs +28 -19
  375. package/functions/kyc/checkTokenLimitsUSD.cjs +1 -1
  376. package/functions/kyc/checkTokenLimitsUSD.mjs +15 -15
  377. package/functions/kyc/index.cjs +1 -1
  378. package/functions/kyc/index.d.ts +0 -1
  379. package/functions/kyc/index.mjs +0 -1
  380. package/functions/pre-transaction/addressTableLookup.cjs +1 -1
  381. package/functions/pre-transaction/addressTableLookup.mjs +21 -18
  382. package/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -0
  383. package/functions/pre-transaction/buildCommitmentValidationData.d.ts +4 -0
  384. package/functions/pre-transaction/buildCommitmentValidationData.mjs +58 -0
  385. package/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -0
  386. package/functions/pre-transaction/calculateSolanaNullifierCount.d.ts +2 -0
  387. package/functions/pre-transaction/calculateSolanaNullifierCount.mjs +23 -0
  388. package/functions/pre-transaction/constructAdminData.cjs +1 -1
  389. package/functions/pre-transaction/constructAdminData.mjs +4 -4
  390. package/functions/pre-transaction/index.cjs +1 -1
  391. package/functions/pre-transaction/index.d.ts +2 -3
  392. package/functions/pre-transaction/index.mjs +3 -4
  393. package/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  394. package/functions/pre-transaction/outputUtxoProcessing.d.ts +1 -1
  395. package/functions/pre-transaction/outputUtxoProcessing.mjs +22 -19
  396. package/functions/pre-transaction/recipientUtxoProcessing.cjs +1 -1
  397. package/functions/pre-transaction/recipientUtxoProcessing.mjs +11 -9
  398. package/functions/pre-transaction/sendInitNullifiersTransaction.cjs +1 -1
  399. package/functions/pre-transaction/sendInitNullifiersTransaction.mjs +9 -9
  400. package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
  401. package/functions/pre-transaction/sendV0Transaction.mjs +45 -43
  402. package/functions/pre-transaction/solana-public-signals.cjs +1 -1
  403. package/functions/pre-transaction/solana-public-signals.d.ts +7 -6
  404. package/functions/pre-transaction/solana-public-signals.mjs +22 -19
  405. package/functions/pre-transaction/solana.cjs +1 -1
  406. package/functions/pre-transaction/solana.d.ts +0 -4
  407. package/functions/pre-transaction/solana.mjs +7 -27
  408. package/functions/pre-transaction/store-proof.cjs +1 -1
  409. package/functions/pre-transaction/store-proof.mjs +3 -3
  410. package/functions/private-wallet/emporium.helpers.cjs +1 -1
  411. package/functions/private-wallet/emporium.helpers.d.ts +13 -3
  412. package/functions/private-wallet/emporium.helpers.mjs +84 -74
  413. package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  414. package/functions/private-wallet/emporium.swap.helpers.mjs +6 -6
  415. package/functions/snarkjs/common.snarkjs.cjs +1 -1
  416. package/functions/snarkjs/common.snarkjs.d.ts +8 -13
  417. package/functions/snarkjs/common.snarkjs.mjs +65 -74
  418. package/functions/snarkjs/constant.cjs +1 -1
  419. package/functions/snarkjs/constant.d.ts +146 -426
  420. package/functions/snarkjs/constant.mjs +149 -430
  421. package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  422. package/functions/snarkjs/constructGeneralZkProof.d.ts +2 -3
  423. package/functions/snarkjs/constructGeneralZkProof.mjs +74 -57
  424. package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  425. package/functions/snarkjs/constructSolanaZkProof.d.ts +1 -2
  426. package/functions/snarkjs/constructSolanaZkProof.mjs +65 -37
  427. package/functions/snarkjs/fetchMerkleTreeSiblings.cjs +1 -1
  428. package/functions/snarkjs/fetchMerkleTreeSiblings.d.ts +1 -1
  429. package/functions/snarkjs/fetchMerkleTreeSiblings.mjs +6 -10
  430. package/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
  431. package/functions/snarkjs/fetchOnChainRootHashes.d.ts +0 -1
  432. package/functions/snarkjs/fetchOnChainRootHashes.mjs +22 -7
  433. package/functions/snarkjs/generateCircomData.cjs +1 -1
  434. package/functions/snarkjs/generateCircomData.d.ts +2 -2
  435. package/functions/snarkjs/generateCircomData.mjs +29 -31
  436. package/functions/snarkjs/generateZkProof.cjs +1 -1
  437. package/functions/snarkjs/generateZkProof.mjs +20 -10
  438. package/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
  439. package/functions/snarkjs/generateZkProofEnclave.mjs +15 -18
  440. package/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.cjs +1 -1
  441. package/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.d.ts +2 -9
  442. package/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.mjs +40 -94
  443. package/functions/snarkjs/getZKFiles.cjs +1 -1
  444. package/functions/snarkjs/getZKFiles.d.ts +1 -0
  445. package/functions/snarkjs/getZKFiles.mjs +2 -2
  446. package/functions/snarkjs/index.cjs +1 -1
  447. package/functions/snarkjs/index.d.ts +2 -1
  448. package/functions/snarkjs/index.mjs +2 -1
  449. package/functions/snarkjs/signedMessageHash.cjs +1 -0
  450. package/functions/snarkjs/signedMessageHash.d.ts +31 -0
  451. package/functions/snarkjs/signedMessageHash.mjs +49 -0
  452. package/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -0
  453. package/functions/snarkjs/verifyCommitmentValidationData.d.ts +4 -0
  454. package/functions/snarkjs/verifyCommitmentValidationData.mjs +43 -0
  455. package/functions/utils/addresses.cjs +1 -1
  456. package/functions/utils/addresses.d.ts +2 -0
  457. package/functions/utils/addresses.mjs +12 -8
  458. package/functions/utils/aggregateTokenAmounts.cjs +1 -0
  459. package/functions/utils/aggregateTokenAmounts.d.ts +2 -0
  460. package/functions/utils/aggregateTokenAmounts.mjs +26 -0
  461. package/functions/utils/amounts.utils.cjs +1 -1
  462. package/functions/utils/amounts.utils.d.ts +0 -1
  463. package/functions/utils/amounts.utils.mjs +18 -18
  464. package/functions/utils/auth.utils.cjs +1 -0
  465. package/functions/utils/auth.utils.d.ts +5 -0
  466. package/functions/utils/auth.utils.mjs +7 -0
  467. package/functions/utils/bit.operations.cjs +1 -0
  468. package/functions/utils/bit.operations.d.ts +3 -0
  469. package/functions/utils/bit.operations.mjs +4 -0
  470. package/functions/utils/buildClaimableDepositPlan.cjs +1 -1
  471. package/functions/utils/buildClaimableDepositPlan.d.ts +3 -2
  472. package/functions/utils/buildClaimableDepositPlan.mjs +32 -24
  473. package/functions/utils/cacheFunctions.cjs +1 -1
  474. package/functions/utils/cacheFunctions.d.ts +0 -4
  475. package/functions/utils/cacheFunctions.mjs +33 -47
  476. package/functions/utils/create-provider.cjs +1 -1
  477. package/functions/utils/create-provider.d.ts +2 -3
  478. package/functions/utils/create-provider.mjs +8 -10
  479. package/functions/utils/customEnclaveFunctionsRegister.cjs +1 -0
  480. package/functions/utils/customEnclaveFunctionsRegister.d.ts +18 -0
  481. package/functions/utils/customEnclaveFunctionsRegister.mjs +8 -0
  482. package/functions/utils/deposit-claimable.utils.cjs +1 -0
  483. package/functions/utils/deposit-claimable.utils.d.ts +6 -0
  484. package/functions/utils/deposit-claimable.utils.mjs +106 -0
  485. package/functions/utils/dispatchBalanceRefreshes.cjs +1 -0
  486. package/functions/utils/dispatchBalanceRefreshes.d.ts +4 -0
  487. package/functions/utils/dispatchBalanceRefreshes.mjs +44 -0
  488. package/functions/utils/enclave-recipient-info-storage.cjs +1 -0
  489. package/functions/utils/enclave-recipient-info-storage.d.ts +2 -0
  490. package/functions/utils/enclave-recipient-info-storage.mjs +17 -0
  491. package/functions/utils/enclave-signature-storage.cjs +1 -1
  492. package/functions/utils/enclave-signature-storage.d.ts +1 -2
  493. package/functions/utils/enclave-signature-storage.mjs +6 -9
  494. package/functions/utils/enclave-utxo-storage.cjs +1 -1
  495. package/functions/utils/enclave-utxo-storage.d.ts +3 -2
  496. package/functions/utils/enclave-utxo-storage.mjs +18 -21
  497. package/functions/utils/encodeTokenWithId.cjs +1 -1
  498. package/functions/utils/encodeTokenWithId.mjs +1 -1
  499. package/functions/utils/encryptInputForEnclave.cjs +1 -1
  500. package/functions/utils/encryptInputForEnclave.mjs +17 -23
  501. package/functions/utils/enum.utils.cjs +1 -0
  502. package/functions/utils/enum.utils.mjs +12 -0
  503. package/functions/utils/erc20tokenFunctions.cjs +1 -1
  504. package/functions/utils/erc20tokenFunctions.d.ts +2 -0
  505. package/functions/utils/erc20tokenFunctions.mjs +26 -16
  506. package/functions/utils/evmNetworkFunctions.d.ts +1 -2
  507. package/functions/utils/fees.utils.cjs +1 -1
  508. package/functions/utils/fees.utils.d.ts +2 -1
  509. package/functions/utils/fees.utils.mjs +30 -16
  510. package/functions/utils/formatter.cjs +1 -0
  511. package/functions/utils/formatter.d.ts +1 -0
  512. package/functions/utils/formatter.mjs +15 -0
  513. package/functions/utils/getBlockExplorerUrl.cjs +1 -1
  514. package/functions/utils/getBlockExplorerUrl.mjs +1 -1
  515. package/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
  516. package/functions/utils/getRecipientInfoFromUserKeys.d.ts +2 -0
  517. package/functions/utils/getRecipientInfoFromUserKeys.mjs +14 -9
  518. package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  519. package/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -0
  520. package/functions/utils/getUtxosFromReceipt.utils.mjs +43 -27
  521. package/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  522. package/functions/utils/getUtxosFromReceiptSolana.d.ts +1 -0
  523. package/functions/utils/getUtxosFromReceiptSolana.mjs +36 -21
  524. package/functions/utils/getWalletGroupKey.utils.cjs +1 -1
  525. package/functions/utils/getWalletGroupKey.utils.mjs +4 -1
  526. package/functions/utils/index.cjs +1 -1
  527. package/functions/utils/index.d.ts +14 -1
  528. package/functions/utils/index.mjs +21 -9
  529. package/functions/utils/lifi.utils.cjs +1 -0
  530. package/functions/utils/lifi.utils.d.ts +3 -0
  531. package/functions/utils/lifi.utils.mjs +30 -0
  532. package/functions/utils/mnemonics.cjs +1 -0
  533. package/functions/utils/mnemonics.d.ts +1 -0
  534. package/functions/utils/mnemonics.mjs +8 -0
  535. package/functions/utils/pay-routing.utils.cjs +1 -0
  536. package/functions/utils/pay-routing.utils.d.ts +4 -0
  537. package/functions/utils/pay-routing.utils.mjs +17 -0
  538. package/functions/utils/prepareHinkal.cjs +1 -1
  539. package/functions/utils/prepareHinkal.mjs +29 -29
  540. package/functions/utils/publicBalance.utils.cjs +1 -1
  541. package/functions/utils/publicBalance.utils.mjs +5 -5
  542. package/functions/utils/serialize-utxos.utils.cjs +1 -1
  543. package/functions/utils/serialize-utxos.utils.mjs +6 -2
  544. package/functions/utils/solana-memo.cjs +1 -0
  545. package/functions/utils/solana-memo.d.ts +3 -0
  546. package/functions/utils/solana-memo.mjs +15 -0
  547. package/functions/utils/solanaSendPreflight.utils.cjs +1 -0
  548. package/functions/utils/solanaSendPreflight.utils.d.ts +6 -0
  549. package/functions/utils/solanaSendPreflight.utils.mjs +21 -0
  550. package/functions/utils/string.utils.cjs +1 -1
  551. package/functions/utils/string.utils.mjs +1 -1
  552. package/functions/utils/time.utils.cjs +1 -1
  553. package/functions/utils/time.utils.d.ts +6 -0
  554. package/functions/utils/time.utils.mjs +23 -16
  555. package/functions/utils/token-check.utils.cjs +1 -1
  556. package/functions/utils/token-check.utils.d.ts +1 -0
  557. package/functions/utils/token-check.utils.mjs +9 -8
  558. package/functions/utils/transfer-claimable.utils.cjs +1 -0
  559. package/functions/utils/transfer-claimable.utils.d.ts +9 -0
  560. package/functions/utils/transfer-claimable.utils.mjs +93 -0
  561. package/functions/utils/tron.utils.cjs +1 -1
  562. package/functions/utils/tron.utils.d.ts +11 -1
  563. package/functions/utils/tron.utils.mjs +85 -40
  564. package/functions/utils/tx-confirmation.utils.cjs +1 -1
  565. package/functions/utils/tx-confirmation.utils.mjs +5 -5
  566. package/functions/utils/userAgent.cjs +1 -1
  567. package/functions/utils/userAgent.d.ts +1 -0
  568. package/functions/utils/userAgent.mjs +4 -1
  569. package/functions/web3/connectors.utils.cjs +1 -1
  570. package/functions/web3/connectors.utils.d.ts +1 -0
  571. package/functions/web3/connectors.utils.mjs +5 -2
  572. package/functions/web3/events/balanceChangedHandler.cjs +1 -1
  573. package/functions/web3/events/balanceChangedHandler.d.ts +2 -1
  574. package/functions/web3/events/balanceChangedHandler.mjs +3 -3
  575. package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  576. package/functions/web3/events/getInputUtxoAndBalance.d.ts +1 -1
  577. package/functions/web3/events/getInputUtxoAndBalance.mjs +21 -20
  578. package/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
  579. package/functions/web3/events/getInputUtxosEnclave.d.ts +2 -1
  580. package/functions/web3/events/getInputUtxosEnclave.mjs +25 -18
  581. package/functions/web3/events/getShieldedBalance.cjs +1 -1
  582. package/functions/web3/events/getShieldedBalance.mjs +15 -17
  583. package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
  584. package/functions/web3/events/getTransactionLogEvents.mjs +1 -1
  585. package/functions/web3/events/index.cjs +1 -1
  586. package/functions/web3/events/index.d.ts +0 -2
  587. package/functions/web3/events/index.mjs +0 -2
  588. package/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
  589. package/functions/web3/functionCalls/constructBatchCall.d.ts +1 -0
  590. package/functions/web3/functionCalls/constructBatchCall.mjs +10 -2
  591. package/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
  592. package/functions/web3/functionCalls/transactCallDirectTron.d.ts +4 -1
  593. package/functions/web3/functionCalls/transactCallDirectTron.mjs +89 -55
  594. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  595. package/functions/web3/functionCalls/transactCallRelayer.d.ts +5 -4
  596. package/functions/web3/functionCalls/transactCallRelayer.mjs +17 -13
  597. package/functions/web3/getContractMetadata.cjs +1 -1
  598. package/functions/web3/getContractMetadata.mjs +1 -1
  599. package/functions/web3/getTokenHolder.cjs +1 -1
  600. package/functions/web3/getTokenHolder.mjs +1 -1
  601. package/functions/web3/index.cjs +1 -1
  602. package/functions/web3/index.d.ts +0 -1
  603. package/functions/web3/index.mjs +0 -3
  604. package/functions/web3/lifiAPI.cjs +1 -1
  605. package/functions/web3/lifiAPI.mjs +28 -19
  606. package/functions/web3/oneInchAPI.cjs +1 -1
  607. package/functions/web3/oneInchAPI.mjs +1 -1
  608. package/index.cjs +1 -1
  609. package/index.mjs +331 -309
  610. package/package.json +5 -2
  611. package/providers/EthersProviderAdapter.cjs +1 -1
  612. package/providers/EthersProviderAdapter.mjs +1 -1
  613. package/providers/SolanaProviderAdapter.cjs +1 -1
  614. package/providers/SolanaProviderAdapter.d.ts +10 -1
  615. package/providers/SolanaProviderAdapter.mjs +38 -2
  616. package/providers/TronProviderAdapter.cjs +1 -1
  617. package/providers/TronProviderAdapter.mjs +2 -2
  618. package/providers/WagmiProviderAdapter.cjs +1 -1
  619. package/providers/WagmiProviderAdapter.d.ts +3 -1
  620. package/providers/WagmiProviderAdapter.mjs +62 -52
  621. package/providers/prepareSolanaHinkal.cjs +1 -1
  622. package/providers/prepareSolanaHinkal.mjs +3 -3
  623. package/types/admin.types.cjs +1 -1
  624. package/types/admin.types.d.ts +1 -8
  625. package/types/admin.types.mjs +1 -1
  626. package/types/cache.types.cjs +1 -1
  627. package/types/cache.types.d.ts +2 -1
  628. package/types/cache.types.mjs +1 -1
  629. package/types/chains.types.cjs +1 -0
  630. package/types/chains.types.d.ts +11 -0
  631. package/types/chains.types.mjs +8 -0
  632. package/types/circom-data.types.d.ts +13 -0
  633. package/types/commitments.types.d.ts +0 -6
  634. package/types/contacts.types.d.ts +1 -0
  635. package/types/dashboard-account.cjs +1 -0
  636. package/types/dashboard-account.d.ts +101 -0
  637. package/types/dashboard-account.mjs +8 -0
  638. package/types/dashboard-payout.types.cjs +1 -0
  639. package/types/dashboard-payout.types.d.ts +29 -0
  640. package/types/dashboard-payout.types.mjs +8 -0
  641. package/types/dashboard-transaction.types.d.ts +22 -0
  642. package/types/ethereum-network.types.cjs +1 -1
  643. package/types/ethereum-network.types.d.ts +15 -18
  644. package/types/ethereum-network.types.mjs +1 -1
  645. package/types/events.types.cjs +1 -1
  646. package/types/events.types.d.ts +2 -3
  647. package/types/events.types.mjs +1 -1
  648. package/types/external-action.types.cjs +1 -1
  649. package/types/external-action.types.d.ts +2 -1
  650. package/types/external-action.types.mjs +1 -1
  651. package/types/hinkal.types.cjs +1 -1
  652. package/types/hinkal.types.d.ts +6 -17
  653. package/types/hinkal.types.mjs +16 -18
  654. package/types/index.cjs +1 -1
  655. package/types/index.d.ts +6 -0
  656. package/types/index.mjs +3 -0
  657. package/types/pay-activities.types.d.ts +3 -0
  658. package/types/pay-routing.types.d.ts +9 -0
  659. package/types/scheduled-transactions.types.d.ts +7 -0
  660. package/types/solana.types.d.ts +5 -6
  661. package/types/token-prices.types.d.ts +4 -0
  662. package/types/transaction.types.d.ts +1 -3
  663. package/webworker/WorkerWrapper.cjs +1 -0
  664. package/webworker/WorkerWrapper.d.ts +9 -0
  665. package/webworker/WorkerWrapper.mjs +22 -0
  666. package/webworker/logError-fCJ4HXQz.js +22 -0
  667. package/webworker/package.json +112 -0
  668. package/webworker/performTaskWithWorker.cjs +1 -1
  669. package/webworker/performTaskWithWorker.mjs +4 -4
  670. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
  671. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
  672. package/webworker/snarkjsWorker/snarkjsWorkerLogic.d.ts +0 -3
  673. package/webworker/snarkjsWorker/snarkjsWorkerNode.d.ts +0 -0
  674. package/webworker/snarkjsWorkerNode.cjs +3 -0
  675. package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  676. package/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  677. package/webworker/utxoWorker/utxoWorkerLogic.d.ts +0 -3
  678. package/webworker/utxoWorker/utxoWorkerNode.d.ts +0 -0
  679. package/webworker/utxoWorkerNode.cjs +1 -0
  680. package/webworker/viteWorkerURL.constant.cjs +4 -4
  681. package/webworker/viteWorkerURL.constant.mjs +4 -4
  682. package/webworker/worker.registry.cjs +1 -1
  683. package/webworker/worker.registry.mjs +6 -3
  684. package/webworker/workerFactory.cjs +1 -1
  685. package/webworker/workerFactory.d.ts +4 -1
  686. package/webworker/workerFactory.mjs +31 -17
  687. package/webworker/workerProxy-BNBqYien.js +130 -0
  688. package/webworker/workerProxy.d.ts +1 -1
  689. package/webworker/workerThreadsPatch.d.ts +1 -0
  690. package/webworker/zkProofWorker/zkProofWorker.types.cjs +1 -1
  691. package/webworker/zkProofWorker/zkProofWorker.types.d.ts +3 -13
  692. package/webworker/zkProofWorker/zkProofWorker.types.mjs +1 -1
  693. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  694. package/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  695. package/webworker/zkProofWorker/zkProofWorkerLogic.d.ts +1 -5
  696. package/webworker/zkProofWorker/zkProofWorkerNode.d.ts +0 -0
  697. package/webworker/zkProofWorkerNode.cjs +1 -0
  698. package/API/solana-calls.cjs +0 -1
  699. package/API/solana-calls.d.ts +0 -38
  700. package/API/solana-calls.mjs +0 -8
  701. package/constants/non-circular-tokens.constants.cjs +0 -1
  702. package/constants/non-circular-tokens.constants.d.ts +0 -1
  703. package/constants/non-circular-tokens.constants.mjs +0 -4
  704. package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.cjs +0 -1
  705. package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.d.ts +0 -3
  706. package/data-structures/Hinkal/hinkalCheckSolanaTokenRegistry.mjs +0 -15
  707. package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +0 -1
  708. package/data-structures/Hinkal/hinkalCheckTokenRegistry.d.ts +0 -4
  709. package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +0 -18
  710. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +0 -1
  711. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +0 -35
  712. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +0 -75
  713. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.cjs +0 -1
  714. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.d.ts +0 -30
  715. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.mjs +0 -81
  716. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +0 -1
  717. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +0 -35
  718. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +0 -76
  719. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.cjs +0 -1
  720. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.d.ts +0 -2
  721. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.mjs +0 -13
  722. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +0 -1
  723. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.d.ts +0 -8
  724. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +0 -29
  725. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +0 -1
  726. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.d.ts +0 -8
  727. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +0 -30
  728. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +0 -1
  729. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.d.ts +0 -8
  730. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +0 -26
  731. package/externalABIs/transactionsProver.json.cjs +0 -1
  732. package/externalABIs/transactionsProver.json.mjs +0 -43
  733. package/functions/pre-transaction/getKycAndSignatureData.cjs +0 -1
  734. package/functions/pre-transaction/getKycAndSignatureData.d.ts +0 -5
  735. package/functions/pre-transaction/getKycAndSignatureData.mjs +0 -12
  736. package/functions/pre-transaction/getSignatureDataForTransact.cjs +0 -1
  737. package/functions/pre-transaction/getSignatureDataForTransact.d.ts +0 -3
  738. package/functions/pre-transaction/getSignatureDataForTransact.mjs +0 -6
  739. package/functions/pre-transaction/initTokenLimitIfNeeded.cjs +0 -1
  740. package/functions/pre-transaction/initTokenLimitIfNeeded.d.ts +0 -3
  741. package/functions/pre-transaction/initTokenLimitIfNeeded.mjs +0 -17
  742. package/functions/pre-transaction/outputApprovalDataProcessing.cjs +0 -1
  743. package/functions/pre-transaction/outputApprovalDataProcessing.d.ts +0 -10
  744. package/functions/pre-transaction/outputApprovalDataProcessing.mjs +0 -22
  745. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs +0 -1
  746. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.d.ts +0 -6
  747. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs +0 -11
  748. package/functions/snarkjs/constructEmporiumProof.cjs +0 -1
  749. package/functions/snarkjs/constructEmporiumProof.d.ts +0 -13
  750. package/functions/snarkjs/constructEmporiumProof.mjs +0 -74
  751. package/functions/utils/processUseApprovalUtxoData.cjs +0 -1
  752. package/functions/utils/processUseApprovalUtxoData.d.ts +0 -3
  753. package/functions/utils/processUseApprovalUtxoData.mjs +0 -13
  754. package/functions/web3/events/balanceChangedCustomHandler.cjs +0 -1
  755. package/functions/web3/events/balanceChangedCustomHandler.d.ts +0 -2
  756. package/functions/web3/events/balanceChangedCustomHandler.mjs +0 -9
  757. package/functions/web3/events/getApprovedBalance.cjs +0 -1
  758. package/functions/web3/events/getApprovedBalance.d.ts +0 -6
  759. package/functions/web3/events/getApprovedBalance.mjs +0 -37
  760. package/functions/web3/functionCalls/accessTokenCalls.cjs +0 -1
  761. package/functions/web3/functionCalls/accessTokenCalls.d.ts +0 -2
  762. package/functions/web3/functionCalls/accessTokenCalls.mjs +0 -19
  763. package/functions/web3/tron-wagmi-adapter.cjs +0 -1
  764. package/functions/web3/tron-wagmi-adapter.d.ts +0 -8
  765. package/functions/web3/tron-wagmi-adapter.mjs +0 -27
  766. package/providers/CustomEthersProvider.cjs +0 -1
  767. package/providers/CustomEthersProvider.d.ts +0 -10
  768. package/providers/CustomEthersProvider.mjs +0 -28
  769. package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +0 -1
  770. package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +0 -30
  771. package/webworker/utxoWorker/utxoWorkerLogic.cjs +0 -1
  772. package/webworker/utxoWorker/utxoWorkerLogic.mjs +0 -69
  773. package/webworker/workerProxy.cjs +0 -1
  774. package/webworker/workerProxy.mjs +0 -33
  775. package/webworker/zkProofWorker/zkProofWorkerLogic.cjs +0 -1
  776. package/webworker/zkProofWorker/zkProofWorkerLogic.mjs +0 -45
@@ -0,0 +1,128 @@
1
+ import { ContractType as e } from "../../types/ethereum-network.types.mjs";
2
+ import { networkRegistry as t } from "../../constants/chains.constants.mjs";
3
+ import { TRON_DEFAULT_FEE_LIMIT_SUN as n, zeroAddress as r } from "../../constants/protocol.constants.mjs";
4
+ import { caseInsensitiveEqual as i } from "../../functions/utils/caseInsensitive.utils.mjs";
5
+ import { insufficientResourcesErrorCodes as a } from "../../error-handling/error-codes.constants.mjs";
6
+ import { emitTxPublicData as o } from "../../API/admin-calls.mjs";
7
+ import { Logger as s } from "../../error-handling/logger.mjs";
8
+ import { createTronCallData as c, estimateTronFeeSunWithPadding as l, evmHexToTronBase58Address as u } from "../../functions/utils/tron.utils.mjs";
9
+ import { constructAdminData as d } from "../../functions/pre-transaction/constructAdminData.mjs";
10
+ import { simulateTronTransaction as f } from "../../functions/utils/tronSimulation.utils.mjs";
11
+ import { buildApproveAndDepositWrapperCalls as p } from "../../functions/web3/functionCalls/constructBatchCall.mjs";
12
+ import { waitForErc20Approvals as m, waitForTronErc20Approvals as h } from "../../functions/web3/functionCalls/waitForErc20Approvals.mjs";
13
+ import { aggregateAmountsForApproval as g, approveTokens as _, approveTronTokens as v, assertNoDuplicateStealthAddressStructures as y } from "./hinkalProoflessDeposit.utils.mjs";
14
+ //#region libs/shared/common/src/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.ts
15
+ var b = (e, t, n, a) => {
16
+ let o = i(e, r), s = n.reduce((e, t, n) => i(t.erc20TokenAddress, r) ? e + a[n] : e, 0n) + (o ? t : 0n), c = g(n, a), l = c.filter(({ token: e }) => !i(e.erc20TokenAddress, r)).map((n) => !o && i(n.token.erc20TokenAddress, e) ? {
17
+ token: n.token,
18
+ balance: n.balance + t
19
+ } : n).filter(({ balance: e }) => e > 0n);
20
+ return !o && t > 0n && (c.some(({ token: t }) => i(t.erc20TokenAddress, e)) || l.push({
21
+ token: {
22
+ erc20TokenAddress: e,
23
+ chainId: n[0]?.chainId
24
+ },
25
+ balance: t
26
+ })), {
27
+ tokensForApproval: l,
28
+ ethValue: s
29
+ };
30
+ }, x = (e, t, n, r) => {
31
+ if (t.length !== n.length || n.length !== r.length) throw Error(`${e}: array length mismatch`);
32
+ }, S = async (e, p, m, g, _, S, C, w) => {
33
+ x("hinkalTronProoflessDepositViaWrapper", _, S, C), y(C);
34
+ let { hinkalWrapperAddress: T, hinkalWrapperABI: E } = t[p]?.contractData ?? {};
35
+ if (!T || !E) throw Error(`No HinkalWrapper configured for chainId ${p}`);
36
+ let D = await e.getRandomRelay(p, !1);
37
+ if (!D) throw Error(`No relay available for chainId ${p}`);
38
+ let O = e.getTronWeb(), k = await e.getEthereumAddressByChain(p), A = u(T), j = i(m, r) ? m : u(m), { tokensForApproval: M, ethValue: N } = b(m, g, _, S), P = _.map((e) => e.erc20TokenAddress), F = S.map(() => "0"), I = C.map((e) => [
39
+ e.extraRandomization.toString(),
40
+ e.stealthAddress.toString(),
41
+ e.H0.toString(),
42
+ e.H1.toString()
43
+ ]);
44
+ if (N > 0n) {
45
+ let e = BigInt(await O.trx.getBalance(k)), t = BigInt(n);
46
+ try {
47
+ t = await l(O, p, A, k, c(E, "prooflessDeposit", [
48
+ u(D),
49
+ j,
50
+ g.toString(),
51
+ P,
52
+ S.map(String),
53
+ F,
54
+ I
55
+ ]), N);
56
+ } catch (e) {
57
+ s.error("Error estimating Tron wrapper deposit fee", e);
58
+ }
59
+ if (e < N + t) throw Error(a.INSUFFICIENT_TRON_BALANCE_FOR_FEE);
60
+ }
61
+ let { transaction: L } = await O.transactionBuilder.triggerSmartContract(A, "prooflessDeposit(address,address,uint256,address[],uint256[],uint256[],(uint256,uint256,uint256,uint256)[])", {
62
+ feeLimit: n,
63
+ callValue: N > 0n ? Number(N) : 0
64
+ }, [
65
+ {
66
+ type: "address",
67
+ value: u(D)
68
+ },
69
+ {
70
+ type: "address",
71
+ value: j
72
+ },
73
+ {
74
+ type: "uint256",
75
+ value: g.toString()
76
+ },
77
+ {
78
+ type: "address[]",
79
+ value: P
80
+ },
81
+ {
82
+ type: "uint256[]",
83
+ value: S.map(String)
84
+ },
85
+ {
86
+ type: "uint256[]",
87
+ value: F
88
+ },
89
+ {
90
+ type: "tuple(uint256,uint256,uint256,uint256)[]",
91
+ value: I
92
+ }
93
+ ], k), R = new Map(M.map(({ token: e, balance: t }) => [u(e.erc20TokenAddress), t]));
94
+ await v(O, k, A, R), R.size > 0 && await h(O, k, A, Array.from(R.entries()).map(([e, t]) => ({
95
+ tokenAddress: e,
96
+ requiredAmount: t
97
+ }))), await f(p, A, "prooflessDeposit", E, [
98
+ u(D),
99
+ j,
100
+ g.toString(),
101
+ P,
102
+ S.map(String),
103
+ F,
104
+ I
105
+ ], k, N > 0n ? N : void 0);
106
+ let z = await O.trx.sign(L), B = await O.trx.sendRawTransaction(z);
107
+ if (!B.result) throw Error("Tron wrapper deposit failed");
108
+ let V = typeof B == "string" ? B : B?.txid ?? B?.transaction?.txID;
109
+ if (!V) throw Error("Tron wrapper deposit failed (missing txid)");
110
+ return o(d(w, p, P, S, k)), V;
111
+ }, C = async (n, r, i, a, s, c, l, u) => {
112
+ x("hinkalEvmProoflessDepositViaWrapper", s, c, l), y(l);
113
+ let f = t[r]?.contractData?.hinkalWrapperAddress;
114
+ if (!f) throw Error(`No HinkalWrapper configured for chainId ${r}`);
115
+ let h = await n.getRandomRelay(r, !1);
116
+ if (!h) throw Error(`No relay available for chainId ${r}`);
117
+ let g = s.map((e) => e.erc20TokenAddress), v = c.map(() => 0n), { tokensForApproval: S, ethValue: C } = b(i, a, s, c), w = await n.getEthereumAddressByChain(r), T = n.getProviderAdapter(r), E = n.getContractWithSigner(r, e.HinkalWrapper), D;
118
+ if (S.length > 0 && await T.supportsBatchCall?.(r) && T.sendBatchCallsTransaction) {
119
+ let e = p(S.map(({ token: e }) => e.erc20TokenAddress), S.map(({ balance: e }) => e), f, E.interface, h, i, a, g, c, v, l, C);
120
+ D = await T.sendBatchCallsTransaction(r, e);
121
+ } else await _(n, r, f, S), await m(n, r, w, f, S.map(({ token: e, balance: t }) => ({
122
+ tokenAddress: e.erc20TokenAddress,
123
+ requiredAmount: t
124
+ }))), D = await E.prooflessDeposit(h, i, a, g, c, v, l, { value: C > 0n ? C : void 0 });
125
+ return o(d(u, r, g, c, w)), D.hash;
126
+ };
127
+ //#endregion
128
+ export { C as hinkalEvmProoflessDepositViaWrapper, S as hinkalTronProoflessDepositViaWrapper };
@@ -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/admin.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(`../utxo/Utxo.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/snarkjs/common.snarkjs.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),m=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let h=require(`ethers`);var g=async(g,_,v,y,b)=>{let x=l.validateAndGetChainId([_]),S=_.erc20TokenAddress;if(v.getTokenAddress(x)!==S)throw Error(`Off-chain UTXO token mismatch`);if(!v.shieldedPrivateKey)throw Error(`Claimable UTXO shieldedPrivateKey is missing`);let{originalDeployer:C,hinkalIdl:w}=t.networkRegistry[x].contractData;if(!C||!w)throw Error(`missing data`);let T=new o.UserKeys(void 0,v.shieldedPrivateKey),E=new c.Utxo({amount:v.amount,erc20TokenAddress:v.erc20TokenAddress,mintAddress:v.mintAddress,timeStamp:v.timeStamp,tokenId:v.tokenId,randomization:v.randomization,shieldedPrivateKey:T.getShieldedPrivateKey()}),D=y??await f.getFeeStructure(x,S,[S],e.ExternalActionId.Transact,void 0,void 0,{mintTo:S,nullifierCount:1});if(D.feeToken!==S)throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let O=D.variableRate>0n?D.variableRate:n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(E.amount<=D.flatFee)throw Error(i.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let k=E.amount-D.flatFee,A=k*O/10000n,j=k-A;if(j<=0n)throw Error(i.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let M=D.flatFee+A,[N,P,F]=g.getRecipientInfo().split(`,`);if(!N||!P||!F)throw Error(`Invalid recipient info`);let I=s.getCurrentTimeInSeconds().toString(),L=new c.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,tokenId:E.tokenId,shieldedPrivateKey:T.getShieldedPrivateKey()}),R=new c.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,tokenId:E.tokenId,shieldedPrivateKey:T.getShieldedPrivateKey(),timeStamp:I}),z=new c.Utxo({amount:j,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,tokenId:E.tokenId,timeStamp:I,randomization:BigInt(N),stealthAddress:P,encryptionKey:F}),B=[E,L],V=[R,z],H=await g.getRandomRelay(x,!0);if(!H)throw Error(i.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let U=c.Utxo.findCorrectRandomization(a.randomBigInt(31),T.getShieldedPrivateKey()),W={tokenNumber:1,nullifierAmount:B.length,outputAmount:V.length},G=u.calcEncryptedOutputs([V])[0].map(e=>Array.from(h.ethers.getBytes(e))),K=g.getSolanaProgram(w),{proofAArr:q,proofBArr:J,proofCArr:Y,publicInputsArr:X}=await p.constructSolanaZkProof(g.generateProofRemotely,C,g.merkleTreeHinkalByChain[x],g.merkleTreeAccessTokenByChain[x],T,K,[S],[B],[V],U,M,0n,n.solanaNativeAddress,H,W,G,x),Z={recipient:H,mint:S===`11111111111111111111111111111111`?void 0:S};return m.solanaTransactCallRelayer({chainId:x,relayAddress:H,functionName:`transfer`,args:{proofAArr:q,proofBArr:J,proofCArr:Y,publicInputsArr:X,encryptedOutputs:G,relayerFee:M.toString(),dimensions:W},accounts:Z,adminData:d.constructAdminData(b??r.AdminTransactionType.ClaimUtxo,x,[S],[-k],await g.getEthereumAddress())})};exports.hinkalSolanaClaimUtxo=g;
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(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../crypto-keys/keys.cjs`),o=require(`../../functions/utils/time.utils.cjs`),s=require(`../utxo/Utxo.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/snarkjs/common.snarkjs.cjs`),u=require(`../../functions/pre-transaction/getFeeStructure.cjs`),d=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const f=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);let m=require(`ethers`);var h=async(h,g,_,v,y)=>{let b=c.validateAndGetChainId([g]),x=g.erc20TokenAddress;if(_.getTokenAddress(b)!==x)throw Error(`Off-chain UTXO token mismatch`);let S=y?new a.UserKeys(y):new a.UserKeys(_.nullifyingKey,_.nullifyingKey);if(!_.nullifyingKey&&!y)throw Error(`Claimable UTXO nullifyingKey is missing`);let C=S.getShieldedPrivateKey();if(_.nullifyingKey&&_.nullifyingKey!==C)throw Error(`Claimable UTXO key mismatch`);let{originalDeployer:w}=t.networkRegistry[b].contractData;if(!w)throw Error(`missing data`);let T=s.Utxo.createFrom(_,{nullifyingKey:C}),E=v??await u.getFeeStructure(b,x,[x],e.ExternalActionId.Transact,void 0,void 0,{mintTo:x,nullifierCount:1});if(E.feeToken!==x)throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let D=E.variableRate>0n?E.variableRate:n.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(T.amount<=E.flatFee)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let O=T.amount-E.flatFee,k=O*D/10000n,A=O-k;if(A<=0n)throw Error(r.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let j=E.flatFee+k,[M,N,P,,F]=h.getRecipientInfo().split(`,`);if(!N||!P||!M||!F)throw Error(`Invalid recipient info`);let I=o.getCurrentTimeInSeconds().toString(),L=new s.Utxo({amount:0n,erc20TokenAddress:T.erc20TokenAddress,mintAddress:T.mintAddress,nullifyingKey:S.getShieldedPrivateKey(),...T.isNewStyle?{spendingPublicKey:S.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),R=new s.Utxo({amount:0n,erc20TokenAddress:T.erc20TokenAddress,mintAddress:T.mintAddress,nullifyingKey:S.getShieldedPrivateKey(),timeStamp:I,spendingPublicKey:S.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}),z=new s.Utxo({amount:A,erc20TokenAddress:T.erc20TokenAddress,mintAddress:T.mintAddress,timeStamp:I,H0:[BigInt(N),BigInt(P)],stealthAddress:M,encryptionKey:F,isNewStyle:!0}),B=[T,L],V=[R,z],H=await h.getRandomRelay(b,!0);if(!H)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let U=a.UserKeys.findCorrectRandomization(i.randomBigInt(31),S.getShieldedPrivateKey()),W={tokenNumber:1,nullifierAmount:B.length,outputAmount:V.length},G=l.calcEncryptedOutputs([V])[0].map(e=>Array.from(m.ethers.getBytes(e))),[{proofAArr:K,proofBArr:q,proofCArr:J,publicInputsArr:Y},X]=await Promise.all([f.constructSolanaZkProof(h.generateProofRemotely,h.merkleTreeHinkalByChain[b],S,[x],[B],[V],U,j,0n,n.solanaNativeAddress,H,W,G,b),d.buildCommitmentValidationData(b,S,[x],[B])]),Z={recipient:H,mint:x===`11111111111111111111111111111111`?void 0:x};return p.solanaTransactCallRelayer({chainId:b,relayAddress:H,functionName:`transfer`,args:{proofAArr:K,proofBArr:q,proofCArr:J,publicInputsArr:Y,encryptedOutputs:G,relayerFee:j.toString(),dimensions:W},accounts:Z,commitmentValidationData:X})};exports.hinkalSolanaClaimUtxo=h;
@@ -1,5 +1,5 @@
1
- import { AdminTransactionType, ERC20Token } from '../../types';
1
+ import { ERC20Token } from '../../types';
2
2
  import { FeeStructure } from '../../types/hinkal.types';
3
3
  import { Utxo } from '../utxo/Utxo';
4
4
  import { IHinkal } from './IHinkal';
5
- export declare const hinkalSolanaClaimUtxo: (hinkal: IHinkal, erc20Token: ERC20Token, utxo: Utxo, feeStructureOverride?: FeeStructure, action?: AdminTransactionType) => Promise<string>;
5
+ export declare const hinkalSolanaClaimUtxo: (hinkal: IHinkal, erc20Token: ERC20Token, utxo: Utxo, feeStructureOverride?: FeeStructure, claimableSignature?: string) => Promise<string>;
@@ -1,94 +1,93 @@
1
1
  import { ExternalActionId as e } from "../../types/external-action.types.mjs";
2
2
  import { networkRegistry as t } from "../../constants/chains.constants.mjs";
3
3
  import { HINKAL_PRIVATE_SEND_VARIABLE_RATE as n, solanaNativeAddress as r } from "../../constants/protocol.constants.mjs";
4
- import { AdminTransactionType as i } from "../../types/admin.types.mjs";
5
4
  import "../../types/index.mjs";
6
- import { transactionErrorCodes as a } from "../../error-handling/error-codes.constants.mjs";
7
- import { randomBigInt as o } from "../../functions/web3/etherFunctions.mjs";
8
- import { UserKeys as s } from "../crypto-keys/keys.mjs";
9
- import { getCurrentTimeInSeconds as c } from "../../functions/utils/time.utils.mjs";
10
- import { Utxo as l } from "../utxo/Utxo.mjs";
11
- import { validateAndGetChainId as u } from "../../functions/utils/token-check.utils.mjs";
12
- import { calcEncryptedOutputs as d } from "../../functions/snarkjs/common.snarkjs.mjs";
13
- import { constructAdminData as f } from "../../functions/pre-transaction/constructAdminData.mjs";
14
- import { getFeeStructure as p } from "../../functions/pre-transaction/getFeeStructure.mjs";
15
- import { constructSolanaZkProof as m } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
16
- import { solanaTransactCallRelayer as h } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
17
- import { ethers as g } from "ethers";
5
+ import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
6
+ import { randomBigInt as a } from "../../functions/web3/etherFunctions.mjs";
7
+ import { UserKeys as o } from "../crypto-keys/keys.mjs";
8
+ import { getCurrentTimeInSeconds as s } from "../../functions/utils/time.utils.mjs";
9
+ import { Utxo as c } from "../utxo/Utxo.mjs";
10
+ import { validateAndGetChainId as l } from "../../functions/utils/token-check.utils.mjs";
11
+ import { calcEncryptedOutputs as u } from "../../functions/snarkjs/common.snarkjs.mjs";
12
+ import { getFeeStructure as d } from "../../functions/pre-transaction/getFeeStructure.mjs";
13
+ import { buildCommitmentValidationData as f } from "../../functions/pre-transaction/buildCommitmentValidationData.mjs";
14
+ import "../../functions/pre-transaction/index.mjs";
15
+ import { constructSolanaZkProof as p } from "../../functions/snarkjs/constructSolanaZkProof.mjs";
16
+ import { solanaTransactCallRelayer as m } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
17
+ import { ethers as h } from "ethers";
18
18
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.ts
19
- var _ = async (_, v, y, b, x) => {
20
- let S = u([v]), C = v.erc20TokenAddress;
21
- if (y.getTokenAddress(S) !== C) throw Error("Off-chain UTXO token mismatch");
22
- if (!y.shieldedPrivateKey) throw Error("Claimable UTXO shieldedPrivateKey is missing");
23
- let { originalDeployer: w, hinkalIdl: T } = t[S].contractData;
24
- if (!w || !T) throw Error("missing data");
25
- let E = new s(void 0, y.shieldedPrivateKey), D = new l({
26
- amount: y.amount,
27
- erc20TokenAddress: y.erc20TokenAddress,
28
- mintAddress: y.mintAddress,
29
- timeStamp: y.timeStamp,
30
- tokenId: y.tokenId,
31
- randomization: y.randomization,
32
- shieldedPrivateKey: E.getShieldedPrivateKey()
33
- }), O = b ?? await p(S, C, [C], e.Transact, void 0, void 0, {
34
- mintTo: C,
19
+ var g = async (g, _, v, y, b) => {
20
+ let x = l([_]), S = _.erc20TokenAddress;
21
+ if (v.getTokenAddress(x) !== S) throw Error("Off-chain UTXO token mismatch");
22
+ let C = b ? new o(b) : new o(v.nullifyingKey, v.nullifyingKey);
23
+ if (!v.nullifyingKey && !b) throw Error("Claimable UTXO nullifyingKey is missing");
24
+ let w = C.getShieldedPrivateKey();
25
+ if (v.nullifyingKey && v.nullifyingKey !== w) throw Error("Claimable UTXO key mismatch");
26
+ let { originalDeployer: T } = t[x].contractData;
27
+ if (!T) throw Error("missing data");
28
+ let E = c.createFrom(v, { nullifyingKey: w }), D = y ?? await d(x, S, [S], e.Transact, void 0, void 0, {
29
+ mintTo: S,
35
30
  nullifierCount: 1
36
31
  });
37
- if (O.feeToken !== C) throw Error("Claim fee token mismatch: fee must be paid from claimed UTXO token");
38
- let k = O.variableRate > 0n ? O.variableRate : n;
39
- if (D.amount <= O.flatFee) throw Error(a.INSUFFICIENT_FUNDS_TO_TRANSACT);
40
- let A = D.amount - O.flatFee, j = A * k / 10000n, M = A - j;
41
- if (M <= 0n) throw Error(a.RECIPIENT_AMOUNT_INVALID);
42
- let N = O.flatFee + j, [P, F, I] = _.getRecipientInfo().split(",");
43
- if (!P || !F || !I) throw Error("Invalid recipient info");
44
- let L = c().toString(), R = new l({
32
+ if (D.feeToken !== S) throw Error("Claim fee token mismatch: fee must be paid from claimed UTXO token");
33
+ let O = D.variableRate > 0n ? D.variableRate : n;
34
+ if (E.amount <= D.flatFee) throw Error(i.INSUFFICIENT_FUNDS_TO_TRANSACT);
35
+ let k = E.amount - D.flatFee, A = k * O / 10000n, j = k - A;
36
+ if (j <= 0n) throw Error(i.RECIPIENT_AMOUNT_INVALID);
37
+ let M = D.flatFee + A, [N, P, F, , I] = g.getRecipientInfo().split(",");
38
+ if (!P || !F || !N || !I) throw Error("Invalid recipient info");
39
+ let L = s().toString(), R = new c({
45
40
  amount: 0n,
46
- erc20TokenAddress: D.erc20TokenAddress,
47
- mintAddress: D.mintAddress,
48
- tokenId: D.tokenId,
49
- shieldedPrivateKey: E.getShieldedPrivateKey()
50
- }), z = new l({
41
+ erc20TokenAddress: E.erc20TokenAddress,
42
+ mintAddress: E.mintAddress,
43
+ nullifyingKey: C.getShieldedPrivateKey(),
44
+ ...E.isNewStyle ? {
45
+ spendingPublicKey: C.getSpendingKeyPair().pubSpendingBJJPoint,
46
+ isNewStyle: !0
47
+ } : { isNewStyle: !1 }
48
+ }), z = new c({
51
49
  amount: 0n,
52
- erc20TokenAddress: D.erc20TokenAddress,
53
- mintAddress: D.mintAddress,
54
- tokenId: D.tokenId,
55
- shieldedPrivateKey: E.getShieldedPrivateKey(),
56
- timeStamp: L
57
- }), B = new l({
58
- amount: M,
59
- erc20TokenAddress: D.erc20TokenAddress,
60
- mintAddress: D.mintAddress,
61
- tokenId: D.tokenId,
50
+ erc20TokenAddress: E.erc20TokenAddress,
51
+ mintAddress: E.mintAddress,
52
+ nullifyingKey: C.getShieldedPrivateKey(),
62
53
  timeStamp: L,
63
- randomization: BigInt(P),
64
- stealthAddress: F,
65
- encryptionKey: I
66
- }), V = [D, R], H = [z, B], U = await _.getRandomRelay(S, !0);
67
- if (!U) throw Error(a.RELAYER_NOT_AVAILABLE);
68
- let W = l.findCorrectRandomization(o(31), E.getShieldedPrivateKey()), G = {
54
+ spendingPublicKey: C.getSpendingKeyPair().pubSpendingBJJPoint,
55
+ isNewStyle: !0
56
+ }), B = new c({
57
+ amount: j,
58
+ erc20TokenAddress: E.erc20TokenAddress,
59
+ mintAddress: E.mintAddress,
60
+ timeStamp: L,
61
+ H0: [BigInt(P), BigInt(F)],
62
+ stealthAddress: N,
63
+ encryptionKey: I,
64
+ isNewStyle: !0
65
+ }), V = [E, R], H = [z, B], U = await g.getRandomRelay(x, !0);
66
+ if (!U) throw Error(i.RELAYER_NOT_AVAILABLE);
67
+ let W = o.findCorrectRandomization(a(31), C.getShieldedPrivateKey()), G = {
69
68
  tokenNumber: 1,
70
69
  nullifierAmount: V.length,
71
70
  outputAmount: H.length
72
- }, K = d([H])[0].map((e) => Array.from(g.getBytes(e))), q = _.getSolanaProgram(T), { proofAArr: J, proofBArr: Y, proofCArr: X, publicInputsArr: Z } = await m(_.generateProofRemotely, w, _.merkleTreeHinkalByChain[S], _.merkleTreeAccessTokenByChain[S], E, q, [C], [V], [H], W, N, 0n, r, U, G, K, S), Q = {
71
+ }, K = u([H])[0].map((e) => Array.from(h.getBytes(e))), [{ proofAArr: q, proofBArr: J, proofCArr: Y, publicInputsArr: X }, Z] = await Promise.all([p(g.generateProofRemotely, g.merkleTreeHinkalByChain[x], C, [S], [V], [H], W, M, 0n, r, U, G, K, x), f(x, C, [S], [V])]), Q = {
73
72
  recipient: U,
74
- mint: C === "11111111111111111111111111111111" ? void 0 : C
73
+ mint: S === "11111111111111111111111111111111" ? void 0 : S
75
74
  };
76
- return h({
77
- chainId: S,
75
+ return m({
76
+ chainId: x,
78
77
  relayAddress: U,
79
78
  functionName: "transfer",
80
79
  args: {
81
- proofAArr: J,
82
- proofBArr: Y,
83
- proofCArr: X,
84
- publicInputsArr: Z,
80
+ proofAArr: q,
81
+ proofBArr: J,
82
+ proofCArr: Y,
83
+ publicInputsArr: X,
85
84
  encryptedOutputs: K,
86
- relayerFee: N.toString(),
85
+ relayerFee: M.toString(),
87
86
  dimensions: G
88
87
  },
89
88
  accounts: Q,
90
- adminData: f(x ?? i.ClaimUtxo, S, [C], [-A], await _.getEthereumAddress())
89
+ commitmentValidationData: Z
91
90
  });
92
91
  };
93
92
  //#endregion
94
- export { _ as hinkalSolanaClaimUtxo };
93
+ export { g as hinkalSolanaClaimUtxo };
@@ -1 +1 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);require(`../../constants/protocol.constants.cjs`);const t=require(`../../types/admin.types.cjs`),n=require(`../../functions/utils/addresses.cjs`),r=require(`../../API/API.cjs`),i=require(`../../error-handling/error-codes.constants.cjs`),a=require(`../../functions/web3/etherFunctions.cjs`),o=require(`../../API/admin-calls.cjs`);require(`../../API/index.cjs`);const s=require(`../utxo/Utxo.cjs`),c=require(`../../functions/pre-transaction/solana.cjs`),l=require(`./hinkalCheckSolanaTokenRegistry.cjs`),u=require(`../../functions/utils/solanaMint.utils.cjs`),d=require(`../../functions/utils/token-check.utils.cjs`),f=require(`../../functions/snarkjs/common.snarkjs.cjs`),p=require(`../../functions/pre-transaction/constructAdminData.cjs`),m=require(`../../functions/web3/signAndSendSerializedTransaction.cjs`);let h=require(`@solana/web3.js`),g=require(`@coral-xyz/anchor`);var _=async(t,n,i,a,s)=>{if(i.length===0)throw Error(`amounts must not be empty`);if(i.length!==a.length)throw Error(`amounts and stealthAddressStructures length mismatch`);if(i.some(e=>e<=0n))throw Error(`all amounts must be positive`);let f=d.validateAndGetChainId([n]),_=n.erc20TokenAddress,{hinkalIdl:v,hinkalAddress:y,originalDeployer:b}=e.networkRegistry[f].contractData;if(!v)throw Error(`No IDL configured for Solana program on this network`);if(!b)throw Error(`missing original deployer`);let x=p.constructAdminData(s,f,Array(i.length).fill(_),i,await t.getEthereumAddress()),S=t.getSolanaProgram(v),C=t.getSolanaPublicKey(),w=new h.PublicKey(b),T=new h.PublicKey(y),{mintPublicKey:E}=u.formatMintAddress(_),D=E.toString(),O=c.getStorageAccountPublicKey(T,w),k=c.getStorageVaultPublicKey(T,w),A=c.getMerkleAccountPublicKey(T,w),j=a.map(e=>c.buildAnchorStealthAddressStructure(e)),M=i.reduce((e,t)=>e+t,0n),N=await l.hinkalCheckSolanaTokenRegistry(S,new h.PublicKey(w),[_],[M]),P=i.map(e=>e.toString());if(N){let{serializedTransaction:e,blockhash:n,lastValidBlockHeight:i}=await r.API.generateMultiPaymentDepositLimitless({amounts:P,payer:C.toBase58(),ethereumAddress:await t.getEthereumAddressByChain(f),mint:_,stealthAddressStructures:j,chainId:f,createBlockedUtxos:!1}),a=await m.signAndSendSerializedTransaction(S.provider,e,n,i);return await o.emitTxPublicData(x),a}let F=c.getTokenLimitStorageAccountPublicKey(S.programId,w,E),I=D===`11111111111111111111111111111111`?null:E,L=D===`11111111111111111111111111111111`?null:void 0,R=await S.methods.multiPaymentDeposit(P.map(e=>new g.BN(e)),j,!1).accounts({mint:I,signer:C,signerAta:L,originalDeployer:w,storageAccount:O,storageVault:k,merkleAccount:A,tokenLimitStorage:F,storageVaultAta:L,accessTokenOwner:null}).rpc();return await o.emitTxPublicData(x),R},v=async(e,n,r)=>{let i=e.userKeys.getShieldedPrivateKey(),o=f.calcStealthAddressStructure(s.Utxo.findCorrectRandomization(a.randomBigInt(31),i),i);return _(e,r,[n],[o],t.AdminTransactionType.ProoflessDeposit)},y=async(e,r,a,o)=>{if(!n.isValidPrivateAddress(o))throw Error(i.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let s=n.constructStealthAddressStructure(o);return _(e,a,[r],[s],t.AdminTransactionType.PaymentLink)};exports.hinkalSolanaDeposit=v,exports.hinkalSolanaDepositForOther=y,exports.submitSolanaProoflessDeposit=_;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/addresses.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/web3/etherFunctions.cjs`),a=require(`../../API/admin-calls.cjs`),o=require(`../crypto-keys/keys.cjs`),s=require(`../../functions/utils/solanaMint.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/snarkjs/common.snarkjs.cjs`),u=require(`../../functions/pre-transaction/solana.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../error-handling/retrySolanaError.cjs`),p=require(`../../functions/pre-transaction/solanaTransfer.utils.cjs`),m=require(`./hinkalProoflessDeposit.utils.cjs`);let h=require(`@solana/web3.js`),g=require(`@coral-xyz/anchor`);var _=(n,r)=>{let i=c.validateAndGetChainId([r]),a=r.erc20TokenAddress,{hinkalIdl:o,hinkalAddress:l,originalDeployer:d}=e.networkRegistry[i].contractData;if(!o)throw Error(`No IDL configured for Solana program on this network`);if(!d)throw Error(`missing original deployer`);let f=n.getSolanaProgram(o),p=n.getSolanaPublicKey(),{connection:m,wallet:g}=f.provider;if(!g)throw Error(`missing solana wallet`);let _=new h.PublicKey(d),v=new h.PublicKey(l),{mintPublicKey:y}=s.formatMintAddress(a),b=y.toString()===t.solanaNativeAddress;return{chainId:i,mintAddress:a,program:f,publicKey:p,connection:m,wallet:g,originalDeployer:_,mintPublicKey:y,mint:b?null:y,atasValue:b?null:void 0,storageAccount:u.getStorageAccountPublicKey(v,_),storageVault:u.getStorageVaultPublicKey(v,_),merkleAccount:u.getMerkleAccountPublicKey(v,_)}},v=(e,t,n)=>{let r=n.map(e=>u.buildAnchorStealthAddressStructure(e));return e.program.methods.multiPaymentDeposit(t.map(e=>new g.BN(e.toString())),r,!1).accounts({mint:e.mint,signer:e.publicKey,signerAta:e.atasValue,originalDeployer:e.originalDeployer,storageAccount:e.storageAccount,storageVault:e.storageVault,merkleAccount:e.merkleAccount,storageVaultAta:e.atasValue}).instruction()},y=async(e,t,n,r)=>{for(let i=0;i<10;i+=1){let a=i===9;try{let{blockhash:i,lastValidBlockHeight:a}=await e.getLatestBlockhash(),o=new h.VersionedTransaction(new h.TransactionMessage({payerKey:n,recentBlockhash:i,instructions:r}).compileToV0Message()),s=await t.signTransaction(o),c=await e.sendTransaction(s);return await e.confirmTransaction({signature:c,blockhash:i,lastValidBlockHeight:a},`confirmed`),c}catch(e){if(f.shouldRetryForSolanaError(e)&&!a)continue;throw e}}return``},b=(e,t)=>{if(e.length===0)throw Error(`amounts must not be empty`);if(e.length!==t.length)throw Error(`amounts and stealthAddressStructures length mismatch`);if(e.some(e=>e<=0n))throw Error(`all amounts must be positive`);m.assertNoDuplicateStealthAddressStructures(t)},x=async(e,t,n,r,i,o=!1)=>{b(n,r);let s=_(e,t),c=d.constructAdminData(i,s.chainId,Array(n.length).fill(s.mintAddress),n,await e.getEthereumAddress()),l=await v(s,n,r);if(o){let{blockhash:e}=await s.connection.getLatestBlockhash(),t=new h.Transaction().add(l);return t.recentBlockhash=e,t.feePayer=s.publicKey,Buffer.from(t.serialize({requireAllSignatures:!1})).toString(`base64`)}let u=await y(s.connection,s.wallet,s.publicKey,[l]);return await a.emitTxPublicData(c),u},S=async(e,t,n,r,i,o)=>{b(n,r);let s=_(e,t),c=await e.getRandomRelay(s.chainId,!1);if(!c)throw Error(`No relay available for chainId ${s.chainId}`);let{instructions:l}=await p.buildSolanaTransferInstructions(s.connection,s.publicKey,new h.PublicKey(c),t,i),u=await v(s,n,r),f=d.constructAdminData(o,s.chainId,Array(n.length).fill(s.mintAddress),n,await e.getEthereumAddress()),m=await y(s.connection,s.wallet,s.publicKey,[...l,u]);return await a.emitTxPublicData(f),m},C=async(e,t,n,r=!1)=>{let a=e.userKeys.getShieldedPrivateKey(),s=l.calcStealthAddressStructure(o.UserKeys.findCorrectRandomization(i.randomBigInt(31),a),a,e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint);return x(e,n,[t],[s],void 0,r)},w=async(e,t,i,a,o=!1,s)=>{if(!n.isValidPrivateAddress(a))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let c=n.constructStealthAddressStructure(a);return x(e,i,[t],[c],s,o)};exports.hinkalSolanaDeposit=C,exports.hinkalSolanaDepositForOther=w,exports.hinkalSolanaProoflessDepositWithPublicFee=S,exports.submitSolanaProoflessDeposit=x;
@@ -2,6 +2,7 @@ import { StealthAddressStructure } from '../../types/circom-data.types';
2
2
  import { ERC20Token } from '../../types/token.types';
3
3
  import { IHinkal } from './IHinkal';
4
4
  import { AdminTransactionType } from '../../types/admin.types';
5
- export declare const submitSolanaProoflessDeposit: (hinkal: IHinkal, token: ERC20Token, amounts: bigint[], stealthAddressStructures: StealthAddressStructure[], action?: AdminTransactionType) => Promise<string>;
6
- export declare const hinkalSolanaDeposit: (hinkal: IHinkal, amount: bigint, token: ERC20Token) => Promise<string>;
7
- export declare const hinkalSolanaDepositForOther: (hinkal: IHinkal, amount: bigint, token: ERC20Token, recipientInfo: string) => Promise<string>;
5
+ export declare const submitSolanaProoflessDeposit: (hinkal: IHinkal, token: ERC20Token, amounts: bigint[], stealthAddressStructures: StealthAddressStructure[], action?: AdminTransactionType, returnTxData?: boolean) => Promise<string>;
6
+ export declare const hinkalSolanaProoflessDepositWithPublicFee: (hinkal: IHinkal, token: ERC20Token, amounts: bigint[], stealthAddressStructures: StealthAddressStructure[], feeAmount: bigint, action?: AdminTransactionType) => Promise<string>;
7
+ export declare const hinkalSolanaDeposit: (hinkal: IHinkal, amount: bigint, token: ERC20Token, returnTxData?: boolean) => Promise<string>;
8
+ export declare const hinkalSolanaDepositForOther: (hinkal: IHinkal, amount: bigint, token: ERC20Token, recipientInfo: string, returnTxData?: boolean, action?: AdminTransactionType) => Promise<string>;
@@ -1,63 +1,102 @@
1
1
  import { networkRegistry as e } from "../../constants/chains.constants.mjs";
2
- import "../../constants/protocol.constants.mjs";
3
- import { AdminTransactionType as t } from "../../types/admin.types.mjs";
2
+ import { solanaNativeAddress as t } from "../../constants/protocol.constants.mjs";
4
3
  import { constructStealthAddressStructure as n, isValidPrivateAddress as r } from "../../functions/utils/addresses.mjs";
5
- import { API as i } from "../../API/API.mjs";
6
- import { transactionErrorCodes as a } from "../../error-handling/error-codes.constants.mjs";
7
- import { randomBigInt as o } from "../../functions/web3/etherFunctions.mjs";
8
- import { emitTxPublicData as s } from "../../API/admin-calls.mjs";
9
- import "../../API/index.mjs";
10
- import { Utxo as c } from "../utxo/Utxo.mjs";
11
- import { buildAnchorStealthAddressStructure as l, getMerkleAccountPublicKey as u, getStorageAccountPublicKey as d, getStorageVaultPublicKey as f, getTokenLimitStorageAccountPublicKey as p } from "../../functions/pre-transaction/solana.mjs";
12
- import { hinkalCheckSolanaTokenRegistry as m } from "./hinkalCheckSolanaTokenRegistry.mjs";
13
- import { formatMintAddress as h } from "../../functions/utils/solanaMint.utils.mjs";
14
- import { validateAndGetChainId as g } from "../../functions/utils/token-check.utils.mjs";
15
- import { calcStealthAddressStructure as _ } from "../../functions/snarkjs/common.snarkjs.mjs";
16
- import { constructAdminData as v } from "../../functions/pre-transaction/constructAdminData.mjs";
17
- import { signAndSendSerializedTransaction as y } from "../../functions/web3/signAndSendSerializedTransaction.mjs";
18
- import { PublicKey as b } from "@solana/web3.js";
19
- import { BN as x } from "@coral-xyz/anchor";
4
+ import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
5
+ import { randomBigInt as a } from "../../functions/web3/etherFunctions.mjs";
6
+ import { emitTxPublicData as o } from "../../API/admin-calls.mjs";
7
+ import { UserKeys as s } from "../crypto-keys/keys.mjs";
8
+ import { formatMintAddress as c } from "../../functions/utils/solanaMint.utils.mjs";
9
+ import { validateAndGetChainId as l } from "../../functions/utils/token-check.utils.mjs";
10
+ import { calcStealthAddressStructure as u } from "../../functions/snarkjs/common.snarkjs.mjs";
11
+ import { buildAnchorStealthAddressStructure as d, getMerkleAccountPublicKey as f, getStorageAccountPublicKey as p, getStorageVaultPublicKey as m } from "../../functions/pre-transaction/solana.mjs";
12
+ import { constructAdminData as h } from "../../functions/pre-transaction/constructAdminData.mjs";
13
+ import { shouldRetryForSolanaError as g } from "../../error-handling/retrySolanaError.mjs";
14
+ import { buildSolanaTransferInstructions as _ } from "../../functions/pre-transaction/solanaTransfer.utils.mjs";
15
+ import { assertNoDuplicateStealthAddressStructures as v } from "./hinkalProoflessDeposit.utils.mjs";
16
+ import { PublicKey as y, Transaction as b, TransactionMessage as x, VersionedTransaction as S } from "@solana/web3.js";
17
+ import { BN as C } from "@coral-xyz/anchor";
20
18
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalSolanaDeposit.ts
21
- var S = async (t, n, r, a, o) => {
22
- if (r.length === 0) throw Error("amounts must not be empty");
23
- if (r.length !== a.length) throw Error("amounts and stealthAddressStructures length mismatch");
24
- if (r.some((e) => e <= 0n)) throw Error("all amounts must be positive");
25
- let c = g([n]), _ = n.erc20TokenAddress, { hinkalIdl: S, hinkalAddress: C, originalDeployer: w } = e[c].contractData;
26
- if (!S) throw Error("No IDL configured for Solana program on this network");
27
- if (!w) throw Error("missing original deployer");
28
- let T = v(o, c, Array(r.length).fill(_), r, await t.getEthereumAddress()), E = t.getSolanaProgram(S), D = t.getSolanaPublicKey(), O = new b(w), k = new b(C), { mintPublicKey: A } = h(_), j = A.toString(), M = d(k, O), N = f(k, O), P = u(k, O), F = a.map((e) => l(e)), I = r.reduce((e, t) => e + t, 0n), L = await m(E, new b(O), [_], [I]), R = r.map((e) => e.toString());
29
- if (L) {
30
- let { serializedTransaction: e, blockhash: n, lastValidBlockHeight: r } = await i.generateMultiPaymentDepositLimitless({
31
- amounts: R,
32
- payer: D.toBase58(),
33
- ethereumAddress: await t.getEthereumAddressByChain(c),
34
- mint: _,
35
- stealthAddressStructures: F,
36
- chainId: c,
37
- createBlockedUtxos: !1
38
- }), a = await y(E.provider, e, n, r);
39
- return await s(T), a;
19
+ var w = (n, r) => {
20
+ let i = l([r]), a = r.erc20TokenAddress, { hinkalIdl: o, hinkalAddress: s, originalDeployer: u } = e[i].contractData;
21
+ if (!o) throw Error("No IDL configured for Solana program on this network");
22
+ if (!u) throw Error("missing original deployer");
23
+ let d = n.getSolanaProgram(o), h = n.getSolanaPublicKey(), { connection: g, wallet: _ } = d.provider;
24
+ if (!_) throw Error("missing solana wallet");
25
+ let v = new y(u), b = new y(s), { mintPublicKey: x } = c(a), S = x.toString() === t;
26
+ return {
27
+ chainId: i,
28
+ mintAddress: a,
29
+ program: d,
30
+ publicKey: h,
31
+ connection: g,
32
+ wallet: _,
33
+ originalDeployer: v,
34
+ mintPublicKey: x,
35
+ mint: S ? null : x,
36
+ atasValue: S ? null : void 0,
37
+ storageAccount: p(b, v),
38
+ storageVault: m(b, v),
39
+ merkleAccount: f(b, v)
40
+ };
41
+ }, T = (e, t, n) => {
42
+ let r = n.map((e) => d(e));
43
+ return e.program.methods.multiPaymentDeposit(t.map((e) => new C(e.toString())), r, !1).accounts({
44
+ mint: e.mint,
45
+ signer: e.publicKey,
46
+ signerAta: e.atasValue,
47
+ originalDeployer: e.originalDeployer,
48
+ storageAccount: e.storageAccount,
49
+ storageVault: e.storageVault,
50
+ merkleAccount: e.merkleAccount,
51
+ storageVaultAta: e.atasValue
52
+ }).instruction();
53
+ }, E = async (e, t, n, r) => {
54
+ for (let i = 0; i < 10; i += 1) {
55
+ let a = i === 9;
56
+ try {
57
+ let { blockhash: i, lastValidBlockHeight: a } = await e.getLatestBlockhash(), o = new S(new x({
58
+ payerKey: n,
59
+ recentBlockhash: i,
60
+ instructions: r
61
+ }).compileToV0Message()), s = await t.signTransaction(o), c = await e.sendTransaction(s);
62
+ return await e.confirmTransaction({
63
+ signature: c,
64
+ blockhash: i,
65
+ lastValidBlockHeight: a
66
+ }, "confirmed"), c;
67
+ } catch (e) {
68
+ if (g(e) && !a) continue;
69
+ throw e;
70
+ }
40
71
  }
41
- let z = p(E.programId, O, A), B = j === "11111111111111111111111111111111" ? null : A, V = j === "11111111111111111111111111111111" ? null : void 0, H = await E.methods.multiPaymentDeposit(R.map((e) => new x(e)), F, !1).accounts({
42
- mint: B,
43
- signer: D,
44
- signerAta: V,
45
- originalDeployer: O,
46
- storageAccount: M,
47
- storageVault: N,
48
- merkleAccount: P,
49
- tokenLimitStorage: z,
50
- storageVaultAta: V,
51
- accessTokenOwner: null
52
- }).rpc();
53
- return await s(T), H;
54
- }, C = async (e, n, r) => {
55
- let i = e.userKeys.getShieldedPrivateKey(), a = _(c.findCorrectRandomization(o(31), i), i);
56
- return S(e, r, [n], [a], t.ProoflessDeposit);
57
- }, w = async (e, i, o, s) => {
58
- if (!r(s)) throw Error(a.RECIPIENT_FORMAT_INCORRECT);
59
- let c = n(s);
60
- return S(e, o, [i], [c], t.PaymentLink);
72
+ return "";
73
+ }, D = (e, t) => {
74
+ if (e.length === 0) throw Error("amounts must not be empty");
75
+ if (e.length !== t.length) throw Error("amounts and stealthAddressStructures length mismatch");
76
+ if (e.some((e) => e <= 0n)) throw Error("all amounts must be positive");
77
+ v(t);
78
+ }, O = async (e, t, n, r, i, a = !1) => {
79
+ D(n, r);
80
+ let s = w(e, t), c = h(i, s.chainId, Array(n.length).fill(s.mintAddress), n, await e.getEthereumAddress()), l = await T(s, n, r);
81
+ if (a) {
82
+ let { blockhash: e } = await s.connection.getLatestBlockhash(), t = new b().add(l);
83
+ return t.recentBlockhash = e, t.feePayer = s.publicKey, Buffer.from(t.serialize({ requireAllSignatures: !1 })).toString("base64");
84
+ }
85
+ let u = await E(s.connection, s.wallet, s.publicKey, [l]);
86
+ return await o(c), u;
87
+ }, k = async (e, t, n, r, i, a) => {
88
+ D(n, r);
89
+ let s = w(e, t), c = await e.getRandomRelay(s.chainId, !1);
90
+ if (!c) throw Error(`No relay available for chainId ${s.chainId}`);
91
+ let { instructions: l } = await _(s.connection, s.publicKey, new y(c), t, i), u = await T(s, n, r), d = h(a, s.chainId, Array(n.length).fill(s.mintAddress), n, await e.getEthereumAddress()), f = await E(s.connection, s.wallet, s.publicKey, [...l, u]);
92
+ return await o(d), f;
93
+ }, A = async (e, t, n, r = !1) => {
94
+ let i = e.userKeys.getShieldedPrivateKey(), o = u(s.findCorrectRandomization(a(31), i), i, e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint);
95
+ return O(e, n, [t], [o], void 0, r);
96
+ }, j = async (e, t, a, o, s = !1, c) => {
97
+ if (!r(o)) throw Error(i.RECIPIENT_FORMAT_INCORRECT);
98
+ let l = n(o);
99
+ return O(e, a, [t], [l], c, s);
61
100
  };
62
101
  //#endregion
63
- export { C as hinkalSolanaDeposit, w as hinkalSolanaDepositForOther, S as submitSolanaProoflessDeposit };
102
+ export { A as hinkalSolanaDeposit, j as hinkalSolanaDepositForOther, k as hinkalSolanaProoflessDepositWithPublicFee, O as submitSolanaProoflessDeposit };
@@ -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/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/addresses.cjs`),a=require(`../../API/API.cjs`),o=require(`../../error-handling/error-codes.constants.cjs`),s=require(`../../functions/web3/etherFunctions.cjs`),c=require(`../../functions/utils/time.utils.cjs`),l=require(`../utxo/Utxo.cjs`),u=require(`../../functions/pre-transaction/solana.cjs`),d=require(`./hinkalCheckSolanaTokenRegistry.cjs`),f=require(`../../functions/utils/solanaMint.utils.cjs`),p=require(`../../functions/utils/token-check.utils.cjs`),m=require(`../../functions/snarkjs/common.snarkjs.cjs`),h=require(`../../functions/utils/fees.utils.cjs`),g=require(`../../functions/pre-transaction/constructAdminData.cjs`),_=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),v=require(`../../functions/pre-transaction/getFeeStructure.cjs`),y=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`);require(`../../functions/pre-transaction/index.cjs`);const b=require(`../../functions/utils/getUtxosFromReceiptSolana.cjs`),x=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),S=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),C=require(`../../API/deposit-and-withdraw-status-calls.cjs`),w=require(`../../functions/web3/signAndSendSerializedTransaction.cjs`);require(`../../functions/web3/index.cjs`),require(`../../functions/index.cjs`);let T=require(`ethers`),E=require(`@solana/web3.js`),D=require(`@coral-xyz/anchor`);var O=async(e,n,i,o,c,p,g)=>{let v=i.erc20TokenAddress,y=o.map(e=>e+h.calculateTotalFee(e,p)),{hinkalIdl:x,hinkalAddress:S,originalDeployer:T}=t.networkRegistry[n].contractData;if(!x)throw Error(`No IDL configured for Solana program on this network`);if(!T)throw Error(`missing original deployer`);let O=e.userKeys.getShieldedPrivateKey(),k=e.getSolanaProgram(x),A=e.getSolanaPublicKey(),j=new E.PublicKey(T),M=new E.PublicKey(S),{mintPublicKey:N}=f.formatMintAddress(v),P=N.toString(),F=u.getStorageAccountPublicKey(M,j),I=u.getStorageVaultPublicKey(M,j),L=u.getMerkleAccountPublicKey(M,j),R=y.map(()=>u.buildAnchorStealthAddressStructure(m.calcStealthAddressStructure(l.Utxo.findCorrectRandomization(s.randomBigInt(31),O),O))),z=y.reduce((e,t)=>e+t,0n),B=await d.hinkalCheckSolanaTokenRegistry(k,new E.PublicKey(j),[v],[z]),V=y.map(e=>`${e}`),H=``,U=(await C.updateDepositAndWithdrawStatus({chainId:n,hashedEthereumAddress:g,phase:r.DepositAndWithdrawPhase.BEFORE_DEPOSIT})).id??void 0;if(B){let{serializedTransaction:t,blockhash:r,lastValidBlockHeight:i}=await a.API.generateMultiPaymentDepositLimitless({amounts:V,payer:e.getSolanaPublicKey().toBase58(),ethereumAddress:await e.getEthereumAddressByChain(n),mint:v,stealthAddressStructures:R,chainId:n,createBlockedUtxos:!0}),{wallet:o}=k.provider;if(!o)throw Error(`missing wallet`);H=await w.signAndSendSerializedTransaction(k.provider,t,r,i)}else{let e=u.getTokenLimitStorageAccountPublicKey(k.programId,j,N),t=P===`11111111111111111111111111111111`?null:N,n=P===`11111111111111111111111111111111`?null:void 0;H=await k.methods.multiPaymentDeposit(V.map(e=>new D.BN(e)),R,!0).accounts({mint:t,signer:A,signerAta:n,originalDeployer:j,storageAccount:F,storageVault:I,merkleAccount:L,tokenLimitStorage:e,storageVaultAta:n,accessTokenOwner:null}).rpc();let r=await k.provider.connection.getLatestBlockhash();await k.provider.connection.confirmTransaction({blockhash:r.blockhash,lastValidBlockHeight:r.lastValidBlockHeight,signature:H},`finalized`)}let W=await _.fetchSolanaTransaction(k.provider.connection,H,`finalized`);if(!W)throw Error(`Transaction missing`);await C.safeUpdateDepositAndWithdrawStatus({id:U,chainId:n,hashedEthereumAddress:g,phase:r.DepositAndWithdrawPhase.AFTER_DEPOSIT,depositTxHash:H});let{compressedAddress:G}=f.formatMintAddress(i.erc20TokenAddress),K=b.getOnChainUtxosFromReceiptSolana(W,k,e.userKeys,G),q=[],J=[...K];return c.forEach((e,t)=>{let n=y[t],r=J.find(e=>e.amount===n);if(!r)throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);q.push({recipientAddress:e,utxo:r});let i=J.indexOf(r);J.splice(i,1)}),{userDepositedUtxos:q,depositTxHash:H,statusId:U}},k=async(e,i,a,u,d,p,_,v,y,b,w)=>{let E=a.erc20TokenAddress;if(u.length===0)throw Error(`userDepositedUtxos must not be empty`);let{hinkalIdl:D,originalDeployer:O}=t.networkRegistry[i].contractData;if(!O||!D)throw Error(`missing data`);let k=e.getSolanaProgram(D),A=await e.getRandomRelay(i,!0);if(!A)throw Error(o.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let j=c.getCurrentTimeInSeconds().toString(),M=e.generateProofRemotely?5:1,N=[];for(let t=0;t<u.length;t+=M){let r=u.slice(t,t+M),a=await Promise.all(r.map(async({recipientAddress:t,utxo:r},a)=>{let{compressedAddress:o}=f.formatMintAddress(n.solanaNativeAddress),c=new l.Utxo({amount:0n,mintAddress:E,erc20TokenAddress:o,shieldedPrivateKey:e.userKeys.getShieldedPrivateKey(),timeStamp:j,tokenId:0}),u=[r,c],p=[c],v=l.Utxo.findCorrectRandomization(s.randomBigInt(31),e.userKeys.getShieldedPrivateKey()),y={tokenNumber:1,nullifierAmount:u.length,outputAmount:p.length},b=m.calcEncryptedOutputs([p])[0][0],S=Array.from(T.ethers.getBytes(b)),C=h.calculateTotalFee(_[a],d),D={feeToken:d.feeToken,flatFee:C,variableRate:0n},M=g.constructAdminData(w,i,[E],[_[a]],await e.getEthereumAddress()),{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I}=await x.constructSolanaZkProof(e.generateProofRemotely,O,e.merkleTreeHinkalByChain[i],e.merkleTreeAccessTokenByChain[i],e.userKeys,k,[E],[u],[p],v,D.flatFee,D.variableRate,t,A,y,[S],i),L={recipient:t,mint:E===`11111111111111111111111111111111`?void 0:E};return{relayAddress:A,functionName:`transact`,chainId:i,recipientAmount:_[a].toString(),args:{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I,encryptedOutputs:[S],relayerFee:D.flatFee.toString(),dimensions:y},accounts:L,adminData:M}}));N.push(...a)}await C.safeUpdateDepositAndWithdrawStatus({id:v,chainId:i,hashedEthereumAddress:p,phase:r.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let P=await S.solanaTransactCallRelayerBatch(i,N,p,y,b);return await C.safeUpdateDepositAndWithdrawStatus({id:v,chainId:i,hashedEthereumAddress:p,phase:r.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:P}),P},A=async(t,n,r,a,o,s,c,l)=>{let u=p.validateAndGetChainId([n]),d=n.erc20TokenAddress,f=i.hashEthereumAddress(await t.getEthereumAddressByChain(u)),m=s??await v.getFeeStructure(u,d,[d],e.ExternalActionId.Transact,[],5n),{userDepositedUtxos:h,depositTxHash:g,statusId:_}=await O(t,u,n,r,a,m,f);return await y.waitForDepositedUtxosInMerkleTree(t,u,h),await k(t,u,n,h,m,f,r,_,o,c,l),g};exports.hinkalSolanaDepositAndWithdraw=A;
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/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const i=require(`../../functions/utils/addresses.cjs`),a=require(`../../error-handling/error-codes.constants.cjs`),o=require(`../../functions/web3/etherFunctions.cjs`),s=require(`../crypto-keys/keys.cjs`),c=require(`../../functions/utils/time.utils.cjs`),l=require(`../utxo/Utxo.cjs`),u=require(`../../functions/utils/solanaMint.utils.cjs`),d=require(`../../functions/utils/token-check.utils.cjs`),f=require(`../../functions/snarkjs/common.snarkjs.cjs`),p=require(`../../functions/pre-transaction/solana.cjs`),m=require(`../../functions/pre-transaction/constructAdminData.cjs`),h=require(`../../functions/pre-transaction/sendV0Transaction.cjs`),g=require(`../../functions/pre-transaction/getFeeStructure.cjs`),_=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),v=require(`../../functions/pre-transaction/buildCommitmentValidationData.cjs`);require(`../../functions/pre-transaction/index.cjs`);const y=require(`../../functions/utils/getUtxosFromReceiptSolana.cjs`),b=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/web3/index.cjs`);const x=require(`../../functions/snarkjs/constructSolanaZkProof.cjs`),S=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),C=require(`../../API/deposit-and-withdraw-status-calls.cjs`);require(`../../functions/index.cjs`);let w=require(`ethers`),T=require(`@solana/web3.js`),E=require(`@coral-xyz/anchor`);var D=(e,r,i,a)=>{let{hinkalIdl:c,hinkalAddress:l,originalDeployer:d}=t.networkRegistry[r].contractData;if(!c)throw Error(`No IDL configured for Solana program on this network`);if(!d)throw Error(`missing original deployer`);let m=e.userKeys.getShieldedPrivateKey(),h=e.getSolanaProgram(c),g=e.getSolanaPublicKey(),_=new T.PublicKey(d),v=new T.PublicKey(l),{mintPublicKey:y}=u.formatMintAddress(i.erc20TokenAddress),b=y.toString(),x=p.getStorageAccountPublicKey(v,_),S=p.getStorageVaultPublicKey(v,_),C=p.getMerkleAccountPublicKey(v,_),w=a.map(()=>p.buildAnchorStealthAddressStructure(f.calcStealthAddressStructure(s.UserKeys.findCorrectRandomization(o.randomBigInt(31),m),m,e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint))),E=b===n.solanaNativeAddress;return{program:h,publicKey:g,originalDeployer:_,mint:E?null:y,atasValue:E?null:void 0,storageAccount:x,storageVault:S,merkleAccount:C,amounts:a,anchorStealthStructures:w}},O=e=>e.program.methods.multiPaymentDeposit(e.amounts.map(e=>new E.BN(e.toString())),e.anchorStealthStructures,!0).accounts({mint:e.mint,signer:e.publicKey,signerAta:e.atasValue,originalDeployer:e.originalDeployer,storageAccount:e.storageAccount,storageVault:e.storageVault,merkleAccount:e.merkleAccount,storageVaultAta:e.atasValue}),k=async(e,t,n,i,a,o,s)=>{let c=i.map(e=>e+b.calculateTotalFee(e,o)),l=D(e,t,n,c),d=(await C.updateDepositAndWithdrawStatus({chainId:t,hashedEthereumAddress:s,phase:r.DepositAndWithdrawPhase.BEFORE_DEPOSIT})).id??void 0,f=await O(l).rpc(),p=await l.program.provider.connection.getLatestBlockhash();await l.program.provider.connection.confirmTransaction({blockhash:p.blockhash,lastValidBlockHeight:p.lastValidBlockHeight,signature:f},`finalized`);let m=await h.fetchSolanaTransaction(l.program.provider.connection,f,`finalized`);if(!m)throw Error(`Transaction missing`);await C.safeUpdateDepositAndWithdrawStatus({id:d,chainId:t,hashedEthereumAddress:s,phase:r.DepositAndWithdrawPhase.AFTER_DEPOSIT,depositTxHash:f});let{compressedAddress:g}=u.formatMintAddress(n.erc20TokenAddress),_=y.getOnChainUtxosFromReceiptSolana(m,l.program,e.userKeys,g),v=[],x=[..._];return a.forEach((e,t)=>{let n=c[t],r=x.find(e=>e.amount===n);if(!r)throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);v.push({recipientAddress:e,utxo:r}),x.splice(x.indexOf(r),1)}),{userDepositedUtxos:v,depositTxHash:f,statusId:d}},A=async(e,i,d,p,h,g,_,y,T,E,D,O)=>{let k=d.erc20TokenAddress;if(p.length===0)throw Error(`userDepositedUtxos must not be empty`);let{originalDeployer:A}=t.networkRegistry[i].contractData;if(!A)throw Error(`missing data`);let j=await e.getRandomRelay(i,!0);if(!j)throw Error(a.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let M=c.getCurrentTimeInSeconds().toString(),N=e.generateProofRemotely?5:1,P=[];for(let t=0;t<p.length;t+=N){let r=p.slice(t,t+N),a=await Promise.all(r.map(async({recipientAddress:t,utxo:r},a)=>{let{compressedAddress:c}=u.formatMintAddress(n.solanaNativeAddress),p=new l.Utxo({amount:0n,mintAddress:k,erc20TokenAddress:c,nullifyingKey:e.userKeys.getShieldedPrivateKey(),timeStamp:M,...r.isNewStyle?{spendingPublicKey:e.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),g=[r,p],y=[p],S=s.UserKeys.findCorrectRandomization(o.randomBigInt(31),e.userKeys.getShieldedPrivateKey()),C={tokenNumber:1,nullifierAmount:g.length,outputAmount:y.length},T=f.calcEncryptedOutputs([y])[0][0],E=Array.from(w.ethers.getBytes(T)),O=await b.calculateModifiedFeeStructure(i,d,_[a],h),A=m.constructAdminData(D,i,[k],[_[a]],await e.getEthereumAddress()),[{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I},L]=await Promise.all([x.constructSolanaZkProof(e.generateProofRemotely,e.merkleTreeHinkalByChain[i],e.userKeys,[k],[g],[y],S,O.flatFee,O.variableRate,t,j,C,[E],i),v.buildCommitmentValidationData(i,e.userKeys,[k],[g])]),R={recipient:t,mint:k===`11111111111111111111111111111111`?void 0:k};return{relayAddress:j,functionName:`transact`,chainId:i,recipientAmount:_[a].toString(),args:{proofAArr:N,proofBArr:P,proofCArr:F,publicInputsArr:I,encryptedOutputs:[E],relayerFee:O.flatFee.toString(),dimensions:C},accounts:R,adminData:A,commitmentValidationData:L}}));P.push(...a)}await C.safeUpdateDepositAndWithdrawStatus({id:y,chainId:i,hashedEthereumAddress:g,phase:r.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let F=await S.solanaTransactCallRelayerBatch(i,P,g,T,E,O);return await C.safeUpdateDepositAndWithdrawStatus({id:y,chainId:i,hashedEthereumAddress:g,phase:r.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:F}),F},j=async(t,n,r,a,o,s,c,l,u)=>{let f=d.validateAndGetChainId([n]),p=n.erc20TokenAddress,m=i.hashEthereumAddress(await t.getEthereumAddressByChain(f)),h=u?i.hashString(u):void 0,v=s??await g.getFeeStructure(f,p,[p],e.ExternalActionId.Transact,[],5n),{userDepositedUtxos:y,depositTxHash:b,statusId:x}=await k(t,f,n,r,a,v,m);return await _.waitForDepositedUtxosInMerkleTree(t,f,y),await A(t,f,n,y,v,m,r,x,o,c,l,h),b};exports.buildMultiPaymentDepositBuilder=O,exports.buildMultiPaymentDepositSetup=D,exports.hinkalSolanaDepositAndWithdraw=j,exports.hinkalSolanaWithdrawBatch=A;
@@ -1,6 +1,24 @@
1
1
  import { FeeStructure } from '../../types/hinkal.types';
2
2
  import { IHinkal } from './IHinkal';
3
- import { AdminTransactionType } from '../../types';
3
+ import { PublicKey } from '@solana/web3.js';
4
+ import { AdminTransactionType, RecipientUtxo } from '../../types';
4
5
  import { ERC20Token } from '../../types/token.types';
6
+ export declare const buildMultiPaymentDepositSetup: (hinkal: IHinkal, chainId: number, token: ERC20Token, amounts: bigint[]) => {
7
+ program: import('@coral-xyz/anchor').Program<import('@coral-xyz/anchor').Idl>;
8
+ publicKey: PublicKey;
9
+ originalDeployer: PublicKey;
10
+ mint: PublicKey | null;
11
+ atasValue: null | undefined;
12
+ storageAccount: PublicKey;
13
+ storageVault: PublicKey;
14
+ merkleAccount: PublicKey;
15
+ amounts: bigint[];
16
+ anchorStealthStructures: import('../..').AnchorStealthAddressStructure[];
17
+ };
18
+ export type MultiPaymentDepositSetup = ReturnType<typeof buildMultiPaymentDepositSetup>;
19
+ export declare const buildMultiPaymentDepositBuilder: (setup: MultiPaymentDepositSetup) => import('@coral-xyz/anchor/dist/cjs/program/namespace/methods').MethodsBuilder<import('@coral-xyz/anchor').Idl, import('@coral-xyz/anchor/dist/cjs/idl').IdlInstruction & {
20
+ name: string;
21
+ }, import('@coral-xyz/anchor/dist/cjs/idl').IdlInstructionAccountItem>;
22
+ export declare const hinkalSolanaWithdrawBatch: (hinkal: IHinkal, chainId: number, token: ERC20Token, userDepositedUtxos: RecipientUtxo[], feeStructure: FeeStructure, hashedEthereumAddress: string, recipientAmounts: bigint[], statusId: string | undefined, txCompletionTime?: number, ref?: string, action?: AdminTransactionType, hashedDashboardAccountId?: string) => Promise<string>;
5
23
  export declare const hinkalSolanaDepositAndWithdraw: (hinkal: IHinkal, token: ERC20Token, recipientAmounts: bigint[], recipientAddresses: string[], txCompletionTime?: number, feeStructureOverride?: FeeStructure, // Should be passed fee for only one withdraw transaction, multiplication happening in this function
6
- ref?: string, action?: AdminTransactionType) => Promise<string>;
24
+ ref?: string, action?: AdminTransactionType, dashboardAccountId?: string) => Promise<string>;