@hinkal/common 0.3.1 → 0.3.2

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 (410) hide show
  1. package/common/src/API/API.cjs +1 -1
  2. package/common/src/API/API.d.ts +9 -34
  3. package/common/src/API/API.mjs +75 -100
  4. package/common/src/API/callOneInchAPI.cjs +1 -1
  5. package/common/src/API/callOneInchAPI.d.ts +6 -0
  6. package/common/src/API/callOneInchAPI.mjs +5 -2
  7. package/common/src/API/dashboardAccountMemberCalls.cjs +1 -1
  8. package/common/src/API/dashboardAccountMemberCalls.d.ts +15 -0
  9. package/common/src/API/dashboardAccountMemberCalls.mjs +5 -2
  10. package/common/src/API/dashboardPayoutCalls.cjs +1 -1
  11. package/common/src/API/dashboardPayoutCalls.d.ts +2 -1
  12. package/common/src/API/dashboardPayoutCalls.mjs +4 -1
  13. package/common/src/API/enclaveUtxoCalls.d.ts +9 -1
  14. package/common/src/API/getWebsiteURL.d.ts +1 -2
  15. package/common/src/API/index.cjs +1 -1
  16. package/common/src/API/index.d.ts +1 -2
  17. package/common/src/API/index.mjs +2 -3
  18. package/common/src/API/payoutNotificationStateCalls.cjs +1 -0
  19. package/common/src/API/payoutNotificationStateCalls.d.ts +10 -0
  20. package/common/src/API/payoutNotificationStateCalls.mjs +10 -0
  21. package/common/src/API/proxyAccountsCalls.cjs +1 -1
  22. package/common/src/API/proxyAccountsCalls.d.ts +2 -3
  23. package/common/src/API/proxyAccountsCalls.mjs +11 -10
  24. package/common/src/API/rewardsUserCalls.cjs +1 -1
  25. package/common/src/API/rewardsUserCalls.d.ts +1 -38
  26. package/common/src/API/rewardsUserCalls.mjs +2 -9
  27. package/common/src/API/scheduled-transactions-calls.d.ts +1 -0
  28. package/common/src/API/temporaryWalletCalls.cjs +1 -1
  29. package/common/src/API/temporaryWalletCalls.mjs +8 -8
  30. package/common/src/API/weeklyAnalyticCalls.cjs +1 -1
  31. package/common/src/API/weeklyAnalyticCalls.d.ts +1 -11
  32. package/common/src/API/weeklyAnalyticCalls.mjs +2 -5
  33. package/common/src/constants/chains.constants.cjs +1 -1
  34. package/common/src/constants/chains.constants.mjs +3 -10
  35. package/common/src/constants/contracts.constants.cjs +1 -1
  36. package/common/src/constants/contracts.constants.mjs +19 -32
  37. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.cjs +1 -1
  38. package/common/src/constants/deploy-data/deploy-data-arbMainnet.json.mjs +8 -9
  39. package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
  40. package/common/src/constants/deploy-data/deploy-data-base.json.mjs +8 -9
  41. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
  42. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +8 -9
  43. package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
  44. package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +8 -9
  45. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.cjs +1 -1
  46. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.mjs +8 -9
  47. package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
  48. package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +8 -9
  49. package/common/src/constants/deploy-data/shared-deploy-data-evm.json.cjs +1 -1
  50. package/common/src/constants/deploy-data/shared-deploy-data-evm.json.mjs +19 -45
  51. package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
  52. package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
  53. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
  54. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +7 -18
  55. package/common/src/constants/enclaveAuth.constants.d.ts +5 -0
  56. package/common/src/constants/index.cjs +1 -1
  57. package/common/src/constants/index.d.ts +1 -2
  58. package/common/src/constants/index.mjs +0 -1
  59. package/common/src/constants/mediaUrls.constants.d.ts +0 -1
  60. package/common/src/constants/pay.constants.d.ts +1 -0
  61. package/common/src/constants/protocol.constants.cjs +2 -1
  62. package/common/src/constants/protocol.constants.d.ts +7 -5
  63. package/common/src/constants/protocol.constants.mjs +4 -11
  64. package/common/src/constants/rewards.constants.d.ts +0 -13
  65. package/common/src/constants/server.constants.cjs +1 -1
  66. package/common/src/constants/server.constants.d.ts +5 -28
  67. package/common/src/constants/server.constants.mjs +10 -41
  68. package/common/src/crypto/ecdh.cjs +1 -1
  69. package/common/src/crypto/ecdh.mjs +2 -9
  70. package/common/src/crypto/index.cjs +1 -1
  71. package/common/src/crypto/index.mjs +1 -1
  72. package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
  73. package/common/src/data-structures/Hinkal/Hinkal.d.ts +4 -8
  74. package/common/src/data-structures/Hinkal/Hinkal.mjs +83 -99
  75. package/common/src/data-structures/Hinkal/IHinkal.d.ts +5 -9
  76. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  77. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +22 -22
  78. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
  79. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +21 -21
  80. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  81. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +6 -9
  82. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  83. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +4 -7
  84. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  85. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +64 -66
  86. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  87. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +1 -1
  88. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +47 -51
  89. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
  90. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +1 -1
  91. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +33 -43
  92. package/common/src/data-structures/Hinkal/hinkalPalEvmDeposit.d.ts +1 -1
  93. package/common/src/data-structures/Hinkal/hinkalPalTronDepositPrepare.d.ts +2 -2
  94. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  95. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +6 -6
  96. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  97. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +2 -2
  98. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +107 -94
  99. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
  100. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.d.ts +3 -0
  101. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +26 -14
  102. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
  103. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +4 -4
  104. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  105. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +4 -9
  106. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  107. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +26 -32
  108. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  109. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +43 -42
  110. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  111. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +4 -4
  112. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  113. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +6 -6
  114. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  115. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +22 -26
  116. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  117. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +21 -24
  118. package/common/src/data-structures/Hinkal/index.d.ts +0 -1
  119. package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  120. package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +4 -4
  121. package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
  122. package/common/src/data-structures/IndexedDB/activity-db.mjs +34 -34
  123. package/common/src/data-structures/IndexedDB/contact-db.cjs +1 -1
  124. package/common/src/data-structures/IndexedDB/contact-db.d.ts +0 -1
  125. package/common/src/data-structures/IndexedDB/contact-db.mjs +14 -28
  126. package/common/src/data-structures/IndexedDB/key-val-store.cjs +1 -1
  127. package/common/src/data-structures/IndexedDB/key-val-store.d.ts +2 -0
  128. package/common/src/data-structures/IndexedDB/key-val-store.mjs +14 -0
  129. package/common/src/data-structures/IndexedDB/private-balances-db.cjs +1 -1
  130. package/common/src/data-structures/IndexedDB/private-balances-db.d.ts +1 -0
  131. package/common/src/data-structures/IndexedDB/private-balances-db.mjs +3 -0
  132. package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -1
  133. package/common/src/data-structures/IndexedDB/signatures-db.mjs +11 -11
  134. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  135. package/common/src/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +25 -25
  136. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  137. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +12 -12
  138. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
  139. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +12 -12
  140. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  141. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +24 -24
  142. package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
  143. package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +14 -14
  144. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -1
  145. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +14 -14
  146. package/common/src/data-structures/WalletManager/WalletManager.d.ts +1 -0
  147. package/common/src/data-structures/cacheDevices/BaseCacheDevice.cjs +1 -1
  148. package/common/src/data-structures/cacheDevices/BaseCacheDevice.d.ts +1 -0
  149. package/common/src/data-structures/cacheDevices/BaseCacheDevice.mjs +3 -0
  150. package/common/src/data-structures/cacheDevices/FileCacheDevice.cjs +1 -1
  151. package/common/src/data-structures/cacheDevices/FileCacheDevice.d.ts +3 -0
  152. package/common/src/data-structures/cacheDevices/FileCacheDevice.mjs +12 -3
  153. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  154. package/common/src/data-structures/crypto-keys/decodeUTXO.d.ts +8 -9
  155. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +38 -48
  156. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  157. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.d.ts +2 -3
  158. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.mjs +26 -22
  159. package/common/src/data-structures/crypto-keys/keys.cjs +1 -1
  160. package/common/src/data-structures/crypto-keys/keys.d.ts +12 -27
  161. package/common/src/data-structures/crypto-keys/keys.mjs +61 -79
  162. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  163. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +1 -2
  164. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +4 -10
  165. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +1 -1
  166. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +1 -1
  167. package/common/src/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +2 -2
  168. package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.cjs +1 -1
  169. package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.mjs +40 -40
  170. package/common/src/data-structures/provider-adapter/IProviderAdapter.d.ts +0 -1
  171. package/common/src/data-structures/utxo/Utxo.cjs +1 -1
  172. package/common/src/data-structures/utxo/Utxo.d.ts +1 -4
  173. package/common/src/data-structures/utxo/Utxo.mjs +7 -17
  174. package/common/src/error-handling/error-codes.constants.cjs +2 -2
  175. package/common/src/error-handling/error-codes.constants.d.ts +0 -3
  176. package/common/src/error-handling/error-codes.constants.mjs +13 -18
  177. package/common/src/error-handling/index.cjs +1 -1
  178. package/common/src/error-handling/index.d.ts +1 -0
  179. package/common/src/error-handling/index.mjs +1 -0
  180. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.cjs +1 -1
  181. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.mjs +8 -8
  182. package/common/src/functions/index.cjs +1 -1
  183. package/common/src/functions/index.mjs +1 -1
  184. package/common/src/functions/pre-transaction/buildCommitmentValidationData.cjs +1 -1
  185. package/common/src/functions/pre-transaction/buildCommitmentValidationData.mjs +36 -38
  186. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  187. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +3 -5
  188. package/common/src/functions/pre-transaction/recipientUtxoProcessing.cjs +1 -1
  189. package/common/src/functions/pre-transaction/recipientUtxoProcessing.mjs +3 -5
  190. package/common/src/functions/pre-transaction/solana-public-signals.d.ts +1 -0
  191. package/common/src/functions/pre-transaction/solana.cjs +1 -1
  192. package/common/src/functions/pre-transaction/solana.mjs +5 -4
  193. package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
  194. package/common/src/functions/private-wallet/emporium.helpers.d.ts +1 -2
  195. package/common/src/functions/private-wallet/emporium.helpers.mjs +83 -57
  196. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  197. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +19 -19
  198. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  199. package/common/src/functions/snarkjs/common.snarkjs.d.ts +2 -3
  200. package/common/src/functions/snarkjs/common.snarkjs.mjs +45 -47
  201. package/common/src/functions/snarkjs/constant.cjs +1 -1
  202. package/common/src/functions/snarkjs/constant.d.ts +151 -144
  203. package/common/src/functions/snarkjs/constant.mjs +151 -145
  204. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  205. package/common/src/functions/snarkjs/constructGeneralZkProof.d.ts +1 -1
  206. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +59 -60
  207. package/common/src/functions/snarkjs/constructSignatureFromMnemonicProofInput.cjs +1 -0
  208. package/common/src/functions/snarkjs/constructSignatureFromMnemonicProofInput.d.ts +7 -0
  209. package/common/src/functions/snarkjs/constructSignatureFromMnemonicProofInput.mjs +2 -0
  210. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  211. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +54 -58
  212. package/common/src/functions/snarkjs/fetchMerkleTreeSiblings.d.ts +1 -3
  213. package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
  214. package/common/src/functions/snarkjs/fetchOnChainRootHashes.d.ts +1 -0
  215. package/common/src/functions/snarkjs/fetchOnChainRootHashes.mjs +14 -5
  216. package/common/src/functions/snarkjs/generateCircomData.cjs +1 -1
  217. package/common/src/functions/snarkjs/generateCircomData.d.ts +1 -1
  218. package/common/src/functions/snarkjs/generateCircomData.mjs +35 -31
  219. package/common/src/functions/snarkjs/generateSignatureFromMnemonicProof.cjs +1 -0
  220. package/common/src/functions/snarkjs/generateSignatureFromMnemonicProof.d.ts +2 -0
  221. package/common/src/functions/snarkjs/generateSignatureFromMnemonicProof.mjs +3 -0
  222. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.cjs +1 -1
  223. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.d.ts +2 -0
  224. package/common/src/functions/snarkjs/getMerkleTreeSiblingsAndRootHashes.mjs +18 -12
  225. package/common/src/functions/snarkjs/getZKFiles.cjs +1 -1
  226. package/common/src/functions/snarkjs/getZKFiles.mjs +9 -3
  227. package/common/src/functions/snarkjs/index.cjs +1 -1
  228. package/common/src/functions/snarkjs/index.d.ts +2 -0
  229. package/common/src/functions/snarkjs/index.mjs +2 -0
  230. package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
  231. package/common/src/functions/snarkjs/signedMessageHash.d.ts +1 -0
  232. package/common/src/functions/snarkjs/signedMessageHash.mjs +2 -0
  233. package/common/src/functions/utils/addresses.cjs +1 -1
  234. package/common/src/functions/utils/addresses.d.ts +0 -1
  235. package/common/src/functions/utils/addresses.mjs +10 -13
  236. package/common/src/functions/utils/bridge-flow.utils.d.ts +1 -1
  237. package/common/src/functions/utils/buildClaimableDepositPlan.d.ts +1 -0
  238. package/common/src/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -1
  239. package/common/src/functions/utils/convertEmporiumOpToCallInfo.mjs +5 -10
  240. package/common/src/functions/utils/enclave-utxo-storage.d.ts +3 -0
  241. package/common/src/functions/utils/enclaveSessionSigning.cjs +1 -0
  242. package/common/src/functions/utils/enclaveSessionSigning.d.ts +16 -0
  243. package/common/src/functions/utils/enclaveSessionSigning.mjs +2 -0
  244. package/common/src/functions/utils/encodeTokenWithId.cjs +1 -1
  245. package/common/src/functions/utils/encodeTokenWithId.d.ts +1 -2
  246. package/common/src/functions/utils/encodeTokenWithId.mjs +2 -5
  247. package/common/src/functions/utils/fees.utils.cjs +1 -1
  248. package/common/src/functions/utils/fees.utils.d.ts +1 -0
  249. package/common/src/functions/utils/fees.utils.mjs +5 -1
  250. package/common/src/functions/utils/getDataFromTransaction.d.ts +4 -3
  251. package/common/src/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
  252. package/common/src/functions/utils/getRecipientInfoFromUserKeys.mjs +2 -3
  253. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  254. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +16 -18
  255. package/common/src/functions/utils/index.cjs +1 -1
  256. package/common/src/functions/utils/index.d.ts +5 -1
  257. package/common/src/functions/utils/index.mjs +5 -1
  258. package/common/src/functions/utils/legacyKeys.cjs +1 -0
  259. package/common/src/functions/utils/legacyKeys.d.ts +10 -0
  260. package/common/src/functions/utils/legacyKeys.mjs +8 -0
  261. package/common/src/functions/utils/mnemonics.cjs +1 -1
  262. package/common/src/functions/utils/mnemonics.mjs +4 -6
  263. package/common/src/functions/utils/nearIntents.utils.cjs +1 -1
  264. package/common/src/functions/utils/nearIntents.utils.mjs +1 -1
  265. package/common/src/functions/utils/networks.utils.d.ts +1 -0
  266. package/common/src/functions/utils/prepareHinkal.cjs +1 -1
  267. package/common/src/functions/utils/prepareHinkal.d.ts +1 -3
  268. package/common/src/functions/utils/prepareHinkal.mjs +2 -1
  269. package/common/src/functions/utils/resolve-domain-address.cjs +1 -0
  270. package/common/src/functions/utils/resolve-domain-address.d.ts +4 -0
  271. package/common/src/functions/utils/resolve-domain-address.mjs +3 -0
  272. package/common/src/functions/utils/serialize-utxos.utils.cjs +1 -1
  273. package/common/src/functions/utils/serialize-utxos.utils.mjs +6 -4
  274. package/common/src/functions/utils/tron.utils.cjs +1 -1
  275. package/common/src/functions/utils/tron.utils.d.ts +1 -1
  276. package/common/src/functions/utils/tron.utils.mjs +14 -29
  277. package/common/src/functions/utils/validateWalletAddress.cjs +1 -0
  278. package/common/src/functions/utils/validateWalletAddress.d.ts +1 -0
  279. package/common/src/functions/utils/validateWalletAddress.mjs +2 -0
  280. package/common/src/functions/utils/voidWallets.utils.cjs +1 -0
  281. package/common/src/functions/utils/voidWallets.utils.d.ts +4 -0
  282. package/common/src/functions/utils/voidWallets.utils.mjs +1 -0
  283. package/common/src/functions/web3/etherFunctions.d.ts +1 -0
  284. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  285. package/common/src/functions/web3/events/getInputUtxoAndBalance.d.ts +2 -4
  286. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +9 -16
  287. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  288. package/common/src/functions/web3/events/getShieldedBalance.d.ts +1 -1
  289. package/common/src/functions/web3/events/getShieldedBalance.mjs +21 -29
  290. package/common/src/functions/web3/functionCalls/approveToken.cjs +1 -1
  291. package/common/src/functions/web3/functionCalls/approveToken.d.ts +1 -1
  292. package/common/src/functions/web3/functionCalls/approveToken.mjs +21 -107
  293. package/common/src/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
  294. package/common/src/functions/web3/functionCalls/constructBatchCall.d.ts +2 -2
  295. package/common/src/functions/web3/functionCalls/constructBatchCall.mjs +23 -18
  296. package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
  297. package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +37 -3
  298. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.cjs +1 -1
  299. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.mjs +6 -6
  300. package/common/src/functions/web3/oneInchAPI.cjs +1 -1
  301. package/common/src/functions/web3/oneInchAPI.mjs +31 -21
  302. package/common/src/functions/web3/uniswapAPI.cjs +1 -1
  303. package/common/src/functions/web3/uniswapAPI.mjs +6 -6
  304. package/common/src/providers/EthersProviderAdapter.cjs +1 -1
  305. package/common/src/providers/EthersProviderAdapter.d.ts +0 -1
  306. package/common/src/providers/EthersProviderAdapter.mjs +0 -3
  307. package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
  308. package/common/src/providers/SolanaProviderAdapter.d.ts +0 -1
  309. package/common/src/providers/SolanaProviderAdapter.mjs +0 -3
  310. package/common/src/providers/TronProviderAdapter.cjs +1 -1
  311. package/common/src/providers/TronProviderAdapter.d.ts +0 -1
  312. package/common/src/providers/TronProviderAdapter.mjs +0 -3
  313. package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
  314. package/common/src/providers/WagmiProviderAdapter.d.ts +0 -1
  315. package/common/src/providers/WagmiProviderAdapter.mjs +5 -9
  316. package/common/src/types/API.types.d.ts +0 -4
  317. package/common/src/types/WeeklyAnalytics.types.d.ts +1 -26
  318. package/common/src/types/cache.types.cjs +1 -1
  319. package/common/src/types/cache.types.d.ts +2 -2
  320. package/common/src/types/cache.types.mjs +1 -1
  321. package/common/src/types/circom-data.types.cjs +1 -1
  322. package/common/src/types/circom-data.types.d.ts +26 -27
  323. package/common/src/types/circom-data.types.mjs +1 -1
  324. package/common/src/types/dashboard-account.d.ts +15 -0
  325. package/common/src/types/dashboard-payout.types.d.ts +1 -0
  326. package/common/src/types/enclaveApi.types.d.ts +78 -0
  327. package/common/src/types/ethereum-network.types.cjs +1 -1
  328. package/common/src/types/ethereum-network.types.d.ts +13 -23
  329. package/common/src/types/ethereum-network.types.mjs +1 -1
  330. package/common/src/types/external-action.types.cjs +1 -1
  331. package/common/src/types/external-action.types.d.ts +2 -3
  332. package/common/src/types/external-action.types.mjs +1 -1
  333. package/common/src/types/hinkal.types.cjs +1 -1
  334. package/common/src/types/hinkal.types.d.ts +8 -22
  335. package/common/src/types/hinkal.types.mjs +11 -19
  336. package/common/src/types/index.cjs +1 -1
  337. package/common/src/types/index.d.ts +3 -5
  338. package/common/src/types/index.mjs +0 -1
  339. package/common/src/types/new-rewards.type.d.ts +0 -70
  340. package/common/src/types/payout-notification.types.d.ts +11 -0
  341. package/common/src/types/proxy-progress.types.d.ts +5 -0
  342. package/common/src/types/snark.types.d.ts +1 -3
  343. package/common/src/types/token.types.cjs +1 -1
  344. package/common/src/types/token.types.mjs +1 -3
  345. package/common/src/types/transaction.types.d.ts +0 -1
  346. package/common/src/types/transactions.types.d.ts +0 -1
  347. package/common/src/webworker/logError-uy41lNp1.js +2 -0
  348. package/common/src/webworker/package.json +1 -1
  349. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
  350. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
  351. package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
  352. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  353. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  354. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  355. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
  356. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  357. package/common/src/webworker/workerProxy-MheXtWa4.js +1 -0
  358. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  359. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  360. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  361. package/package.json +1 -1
  362. package/services/Hinkal.cjs +1 -1
  363. package/services/Hinkal.d.ts +1 -2
  364. package/services/Hinkal.mjs +4 -7
  365. package/types/IHinkal.d.ts +1 -2
  366. package/common/src/API/accessCodeCalls.cjs +0 -1
  367. package/common/src/API/accessCodeCalls.d.ts +0 -23
  368. package/common/src/API/accessCodeCalls.mjs +0 -13
  369. package/common/src/API/brotherhoodCalls.cjs +0 -1
  370. package/common/src/API/brotherhoodCalls.d.ts +0 -82
  371. package/common/src/API/brotherhoodCalls.mjs +0 -17
  372. package/common/src/API/generate-trading-points.cjs +0 -1
  373. package/common/src/API/generate-trading-points.d.ts +0 -27
  374. package/common/src/API/generate-trading-points.mjs +0 -23
  375. package/common/src/API/leaderboardCalls.cjs +0 -1
  376. package/common/src/API/leaderboardCalls.d.ts +0 -14
  377. package/common/src/API/leaderboardCalls.mjs +0 -8
  378. package/common/src/API/referralsCalls.cjs +0 -1
  379. package/common/src/API/referralsCalls.d.ts +0 -22
  380. package/common/src/API/referralsCalls.mjs +0 -11
  381. package/common/src/API/send-telegram-callback.cjs +0 -1
  382. package/common/src/API/send-telegram-callback.d.ts +0 -7
  383. package/common/src/API/send-telegram-callback.mjs +0 -11
  384. package/common/src/constants/mystery-boxes.constants.d.ts +0 -0
  385. package/common/src/constants/price-impact.constants.d.ts +0 -2
  386. package/common/src/constants/tasks.constants.cjs +0 -1
  387. package/common/src/constants/tasks.constants.d.ts +0 -9
  388. package/common/src/constants/tasks.constants.mjs +0 -124
  389. package/common/src/data-structures/Hinkal/hinkalMultiSend.cjs +0 -1
  390. package/common/src/data-structures/Hinkal/hinkalMultiSend.d.ts +0 -3
  391. package/common/src/data-structures/Hinkal/hinkalMultiSend.mjs +0 -12
  392. package/common/src/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.cjs +0 -1
  393. package/common/src/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.d.ts +0 -6
  394. package/common/src/data-structures/Hinkal/hinkalProoflessDepositViaWrapper.mjs +0 -128
  395. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +0 -1
  396. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.d.ts +0 -22
  397. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.mjs +0 -34
  398. package/common/src/functions/utils/bit.operations.cjs +0 -1
  399. package/common/src/functions/utils/bit.operations.d.ts +0 -3
  400. package/common/src/functions/utils/bit.operations.mjs +0 -4
  401. package/common/src/types/brotherhood-user.types.d.ts +0 -11
  402. package/common/src/types/crypto.types.d.ts +0 -8
  403. package/common/src/types/generatePoints.d.ts +0 -14
  404. package/common/src/types/new-rewards.type.cjs +0 -1
  405. package/common/src/types/new-rewards.type.mjs +0 -10
  406. package/common/src/types/referral.types.d.ts +0 -12
  407. package/common/src/types/rewards.types.d.ts +0 -34
  408. package/common/src/types/token-with-id.types.d.ts +0 -4
  409. package/common/src/webworker/logError-BR5TJP6T.js +0 -2
  410. package/common/src/webworker/workerProxy-Ddzxn23N.js +0 -1
@@ -4,10 +4,10 @@ import { transactionErrorCodes as r } from "../../error-handling/error-codes.con
4
4
  import { getAmountInWei as i, randomBigInt as a } from "../../functions/web3/etherFunctions.mjs";
5
5
  import { UserKeys as o } from "../crypto-keys/keys.mjs";
6
6
  import { waitLittle as s } from "../../functions/utils/time.utils.mjs";
7
- import { ExternalActionId as c } from "../../types/external-action.types.mjs";
8
- import { TemporaryWalletRecoveryDestination as l } from "../../types/token.types.mjs";
9
- import { hashEthereumAddress as u } from "../../functions/utils/addresses.mjs";
10
- import { Logger as d } from "../../error-handling/logger.mjs";
7
+ import { hashEthereumAddress as c } from "../../functions/utils/addresses.mjs";
8
+ import { Logger as l } from "../../error-handling/logger.mjs";
9
+ import { ExternalActionId as u } from "../../types/external-action.types.mjs";
10
+ import { TemporaryWalletRecoveryDestination as d } from "../../types/token.types.mjs";
11
11
  import { API as f } from "../../API/API.mjs";
12
12
  import { getErc20TokenFromAPI as p } from "../../functions/utils/erc20tokenFunctions.mjs";
13
13
  import { getFeeStructure as m } from "../../functions/pre-transaction/getFeeStructure.mjs";
@@ -25,15 +25,15 @@ import { buildTempSubAccount as O, deriveTempWallet as k } from "../../functions
25
25
  import { createLifiBridgeOps as A, createTransaferEmporiumOpsBatch as j } from "../../functions/private-wallet/emporium.helpers.mjs";
26
26
  import { getLifiPrice as M } from "../../functions/web3/lifiAPI.mjs";
27
27
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.ts
28
- var N = async (e, r, o, s, d, m, g) => {
29
- let { chainId: _ } = r, v = o.chainId, y = r.erc20TokenAddress, b = h[c.Lifi][_];
28
+ var N = async (e, r, o, s, l, m, g) => {
29
+ let { chainId: _ } = r, v = o.chainId, y = r.erc20TokenAddress, b = h[u.Lifi][_];
30
30
  if (!b) throw Error(`LIFI not configured for chain ${_}`);
31
- let x = a(6), { privateKey: S, ethAddress: C } = k(e, _, x), { lifiDataValue: w, outSwapAmountValue: T, extraNativeTokenFee: E } = await M(r, o, s, d, C, C), D = {
31
+ let x = a(6), { privateKey: S, ethAddress: C } = k(e, _, x), { lifiDataValue: w, outSwapAmountValue: T, extraNativeTokenFee: E } = await M(r, o, s, l, C, C), D = {
32
32
  calldata: w,
33
33
  expectedAmount: T,
34
34
  nativeFee: E
35
- }, j = i(r, s), N = O(x, S, C), P = u(await e.getEthereumAddressByChain(_));
36
- await Promise.all([f.addTemporaryWalletNonce(_, P, Number(x), l.Confidential), f.addTemporaryWalletNonce(v, P, Number(x), l.Confidential)]);
35
+ }, j = i(r, s), N = O(x, S, C), P = c(await e.getEthereumAddressByChain(_));
36
+ await Promise.all([f.addTemporaryWalletNonce(_, P, Number(x), d.Confidential), f.addTemporaryWalletNonce(v, P, Number(x), d.Confidential)]);
37
37
  let F = n(y, t), I = D.nativeFee > 0n && !F, L = F ? j + D.nativeFee : j, R = [r], z = [-L];
38
38
  if (I) {
39
39
  let e = await p(_, t);
@@ -58,10 +58,10 @@ var N = async (e, r, o, s, d, m, g) => {
58
58
  await s(g);
59
59
  }
60
60
  throw Error(`Bridge did not land on destination temp wallet ${t} on chain ${e} within timeout.`);
61
- }, F = async (t, n, i, a, s, l) => {
62
- let u = n.chainId, d = n.erc20TokenAddress, f = i.ethAddress;
61
+ }, F = async (t, n, i, a, s, c) => {
62
+ let l = n.chainId, d = n.erc20TokenAddress, f = i.ethAddress;
63
63
  if (!f) throw Error("Missing temp wallet address for bridge shield");
64
- let p = j(t, u, [d], [a]), h = await T(u, n, a, await m(u, d, [d], c.Emporium, p.map((e) => x(e, f, u)), e)), g = a - E(a, h);
64
+ let p = j(t, l, [d], [a]), h = await T(l, n, a, await m(l, d, [d], u.Emporium, p.map((e) => x(e, f, l)), e)), g = a - E(a, h);
65
65
  if (g <= 0n) throw Error(r.INSUFFICIENT_FUNDS_TO_TRANSACT);
66
66
  let _, v;
67
67
  if ("recipientInfo" in s) _ = s.recipientInfo;
@@ -73,15 +73,15 @@ var N = async (e, r, o, s, d, m, g) => {
73
73
  ethAddress: s.recipientEthAddress
74
74
  }, _ = S(n);
75
75
  }
76
- let y = await t.proxyToPrivate([n], [g], i, _, h.feeToken, h, l), C;
76
+ let y = await t.proxyToPrivate([n], [g], i, _, h.feeToken, h, c), C;
77
77
  if (v) {
78
- let e = await D(u, y, { evmTimeoutMs: b });
78
+ let e = await D(l, y, { evmTimeoutMs: b });
79
79
  if (!e) throw Error(`Could not fetch receipt for bridge shield tx ${y}`);
80
- let [n] = w(e, t, u, d, v.keys.getShieldedPrivateKey());
80
+ let [n] = w(e, t, l, d, v.keys.getShieldedPrivateKey());
81
81
  if (!n) throw Error("Could not find recipient UTXO in bridge shield tx");
82
82
  C = {
83
- chainId: u,
84
- senderAddress: await t.getEthereumAddressByChain(u),
83
+ chainId: l,
84
+ senderAddress: await t.getEthereumAddressByChain(l),
85
85
  recipientAddress: v.ethAddress,
86
86
  claimableSignature: v.signature,
87
87
  utxo: n
@@ -92,11 +92,11 @@ var N = async (e, r, o, s, d, m, g) => {
92
92
  pendingEnclaveUtxo: C
93
93
  };
94
94
  }, I = async (e, t, n, r, i, a = v, o, s) => {
95
- let { nonce: c, tempSubAccount: l, sourceTxHash: p, quote: m } = await N(e, t, n, r, a, o, s), h = l.ethAddress;
95
+ let { nonce: u, tempSubAccount: d, sourceTxHash: p, quote: m } = await N(e, t, n, r, a, o, s), h = d.ethAddress;
96
96
  if (!h) throw Error("Missing temp wallet address for bridge");
97
- let { destTxHash: g, pendingEnclaveUtxo: _ } = await F(e, n, l, await P(n.chainId, h, n.erc20TokenAddress, m, a), i, s), y = u(await e.getEthereumAddressByChain(n.chainId)), b = [t.chainId, n.chainId];
98
- return (await Promise.allSettled(b.map((e) => f.removeTemporaryWalletNonce(e, y, Number(c))))).forEach((e, t) => {
99
- e.status === "rejected" && d.error(`Failed to remove temp-wallet nonce on chain ${b[t]}`, e.reason);
97
+ let { destTxHash: g, pendingEnclaveUtxo: _ } = await F(e, n, d, await P(n.chainId, h, n.erc20TokenAddress, m, a), i, s), y = c(await e.getEthereumAddressByChain(n.chainId)), b = [t.chainId, n.chainId];
98
+ return (await Promise.allSettled(b.map((e) => f.removeTemporaryWalletNonce(e, y, Number(u))))).forEach((e, t) => {
99
+ e.status === "rejected" && l.error(`Failed to remove temp-wallet nonce on chain ${b[t]}`, e.reason);
100
100
  }), {
101
101
  sourceTxHash: p,
102
102
  destTxHash: g,
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../functions/utils/tron.utils.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);var m=async(m,h,g,_,v)=>{let y=l.validateAndGetChainId([h]),b=e.isTronLike(y),x=h.erc20TokenAddress,S=c.addressToHexFormat(await m.getEthereumAddressByChain(y));if(!n.caseInsensitiveEqual(x,g.erc20TokenAddress))throw Error(`Off-chain UTXO token mismatch`);let C=v?new i.UserKeys(v):new i.UserKeys(g.nullifyingKey,g.nullifyingKey);if(!g.nullifyingKey&&!v)throw Error(`Claimable UTXO nullifyingKey is missing`);let w=C.getShieldedPrivateKey();if(g.nullifyingKey&&g.nullifyingKey!==w)throw Error(`Claimable UTXO key mismatch`);let T=m.getRecipientInfo(),E=o.Utxo.createFrom(g,{nullifyingKey:w}),D=new o.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,nullifyingKey:w,...E.isNewStyle?{spendingPublicKey:C.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),O=_??await d.getFeeStructure(y,x,[x],s.ExternalActionId.Transact);if(!n.caseInsensitiveEqual(O.feeToken,x))throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let k=O.variableRate>0n?O.variableRate:t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(E.amount<=O.flatFee)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let A=E.amount-O.flatFee,j=A*k/10000n,M=A-j;if(M<=0n)throw Error(r.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let N={feeToken:O.feeToken,flatFee:O.flatFee+j,variableRate:0n},P=[-E.amount],F=await m.getRandomRelay(y,!0);if(!F)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let I={externalActionId:0n,externalAddress:F??S,externalActionMetadata:`0x00`},L=[[E,D]],R=[],z=a.getCurrentTimeInSeconds().toString(),{outputUtxos:B}=u.outputUtxoProcessing(C,L[0],P[0],z,!0,T,M);R.push(B);let{zkCallData:V,circomData:H,dimData:U,commitmentValidationData:W}=await f.constructZkProof(m.merkleTreeHinkalByChain[y],L,R,C,I.externalActionId,I.externalAddress,I.externalActionMetadata,m.generateProofRemotely,N,F,y);return p.transactCallRelayer(y,V,U,H,W,void 0,void 0,void 0,await c.reorderZkCallData(b,V,U,H))};exports.hinkalClaimUtxo=m;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../crypto-keys/keys.cjs`),a=require(`../../functions/utils/time.utils.cjs`),o=require(`../utxo/Utxo.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../types/external-action.types.cjs`),l=require(`../../functions/utils/token-check.utils.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/getFeeStructure.cjs`),f=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),p=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`);var m=async(m,h,g,_,v)=>{let y=l.validateAndGetChainId([h]),b=e.isTronLike(y),x=h.erc20TokenAddress,S=s.addressToHexFormat(await m.getEthereumAddressByChain(y));if(!n.caseInsensitiveEqual(x,g.erc20TokenAddress))throw Error(`Off-chain UTXO token mismatch`);let C=v?new i.UserKeys(v):new i.UserKeys(g.nullifyingKey,g.nullifyingKey);if(!g.nullifyingKey&&!v)throw Error(`Claimable UTXO nullifyingKey is missing`);let w=C.getShieldedPrivateKey();if(g.nullifyingKey&&g.nullifyingKey!==w)throw Error(`Claimable UTXO key mismatch`);let T=m.getRecipientInfo(),E=o.Utxo.createFrom(g,{nullifyingKey:w}),D=new o.Utxo({amount:0n,erc20TokenAddress:E.erc20TokenAddress,mintAddress:E.mintAddress,nullifyingKey:w,spendingPublicKey:C.getSpendingKeyPair().pubSpendingBJJPoint}),O=_??await d.getFeeStructure(y,x,[x],c.ExternalActionId.Transact);if(!n.caseInsensitiveEqual(O.feeToken,x))throw Error(`Claim fee token mismatch: fee must be paid from claimed UTXO token`);let k=O.variableRate>0n?O.variableRate:t.HINKAL_PRIVATE_SEND_VARIABLE_RATE;if(E.amount<=O.flatFee)throw Error(r.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);let A=E.amount-O.flatFee,j=A*k/10000n,M=A-j;if(M<=0n)throw Error(r.transactionErrorCodes.RECIPIENT_AMOUNT_INVALID);let N={feeToken:O.feeToken,flatFee:O.flatFee+j,variableRate:0n},P=[-E.amount],F=await m.getRandomRelay(y,!0);if(!F)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let I={externalActionId:0n,externalAddress:F??S,externalActionMetadata:`0x00`},L=[[E,D]],R=[],z=a.getCurrentTimeInSeconds().toString(),{outputUtxos:B}=u.outputUtxoProcessing(C,L[0],P[0],z,!0,T,M);R.push(B);let{zkCallData:V,circomData:H,dimData:U,commitmentValidationData:W}=await f.constructZkProof(m.merkleTreeHinkalByChain[y],L,R,C,I.externalActionId,I.externalAddress,I.externalActionMetadata,m.generateProofRemotely,N,F,y);return p.transactCallRelayer(y,V,U,H,W,void 0,void 0,void 0,await s.reorderZkCallData(b,V,U,H))};exports.hinkalClaimUtxo=m;
@@ -5,8 +5,8 @@ import { transactionErrorCodes as r } from "../../error-handling/error-codes.con
5
5
  import { UserKeys as i } from "../crypto-keys/keys.mjs";
6
6
  import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
7
7
  import { Utxo as o } from "../utxo/Utxo.mjs";
8
- import { ExternalActionId as s } from "../../types/external-action.types.mjs";
9
- import { addressToHexFormat as c, reorderZkCallData as l } from "../../functions/utils/tron.utils.mjs";
8
+ import { addressToHexFormat as s, reorderZkCallData as c } from "../../functions/utils/tron.utils.mjs";
9
+ import { ExternalActionId as l } from "../../types/external-action.types.mjs";
10
10
  import { validateAndGetChainId as u } from "../../functions/utils/token-check.utils.mjs";
11
11
  import { outputUtxoProcessing as d } from "../../functions/pre-transaction/outputUtxoProcessing.mjs";
12
12
  import { getFeeStructure as f } from "../../functions/pre-transaction/getFeeStructure.mjs";
@@ -14,7 +14,7 @@ import { constructZkProof as p } from "../../functions/snarkjs/constructGeneralZ
14
14
  import { transactCallRelayer as m } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
15
15
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalClaimUtxo.ts
16
16
  var h = async (h, g, _, v, y) => {
17
- let b = u([g]), x = e(b), S = g.erc20TokenAddress, C = c(await h.getEthereumAddressByChain(b));
17
+ let b = u([g]), x = e(b), S = g.erc20TokenAddress, C = s(await h.getEthereumAddressByChain(b));
18
18
  if (!n(S, _.erc20TokenAddress)) throw Error("Off-chain UTXO token mismatch");
19
19
  let w = y ? new i(y) : new i(_.nullifyingKey, _.nullifyingKey);
20
20
  if (!_.nullifyingKey && !y) throw Error("Claimable UTXO nullifyingKey is missing");
@@ -25,11 +25,8 @@ var h = async (h, g, _, v, y) => {
25
25
  erc20TokenAddress: D.erc20TokenAddress,
26
26
  mintAddress: D.mintAddress,
27
27
  nullifyingKey: T,
28
- ...D.isNewStyle ? {
29
- spendingPublicKey: w.getSpendingKeyPair().pubSpendingBJJPoint,
30
- isNewStyle: !0
31
- } : { isNewStyle: !1 }
32
- }), k = v ?? await f(b, S, [S], s.Transact);
28
+ spendingPublicKey: w.getSpendingKeyPair().pubSpendingBJJPoint
29
+ }), k = v ?? await f(b, S, [S], l.Transact);
33
30
  if (!n(k.feeToken, S)) throw Error("Claim fee token mismatch: fee must be paid from claimed UTXO token");
34
31
  let A = k.variableRate > 0n ? k.variableRate : t;
35
32
  if (D.amount <= k.flatFee) throw Error(r.INSUFFICIENT_FUNDS_TO_TRANSACT);
@@ -48,7 +45,7 @@ var h = async (h, g, _, v, y) => {
48
45
  }, R = [[D, O]], z = [], B = a().toString(), { outputUtxos: V } = d(w, R[0], F[0], B, !0, E, N);
49
46
  z.push(V);
50
47
  let { zkCallData: H, circomData: U, dimData: W, commitmentValidationData: G } = await p(h.merkleTreeHinkalByChain[b], R, z, w, L.externalActionId, L.externalAddress, L.externalActionMetadata, h.generateProofRemotely, P, I, b);
51
- return m(b, H, W, U, G, void 0, void 0, void 0, await l(x, H, W, U));
48
+ return m(b, H, W, U, G, void 0, void 0, void 0, await c(x, H, W, U));
52
49
  };
53
50
  //#endregion
54
51
  export { h as hinkalClaimUtxo };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/utils/tronSimulation.utils.cjs`),p=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),m=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../API/admin-calls.cjs`);var _=async(e,t)=>({externalActionData:{externalActionId:0n,externalAddress:s.addressToHexFormat(await e.getEthereumAddressByChain(t)),externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0}),v=async(e,t,n,r)=>{let a=[...await l.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},y=async(n,r,i,a,o,c,l,u=!0,d=!1)=>{let p=n.getTronWeb(),{hinkalAddress:h,hinkalABI:g}=e.networkRegistry[r].contractData;if(!g)throw Error(`Hinkal ABI not found`);let _=s.evmHexToTronBase58Address(h),v=await n.getEthereumAddressByChain(r),{totalTrxValue:y,tokensNeedingApproval:b}=s.splitTronTokensByNative(i,a),{a:x,b:S,c:C}=s.parseZkCalldata(o),w=await s.reorderZkCallData(!0,o,l,c,!1);if(!w)throw Error(`Tron proof signature not found`);let T=[w.v,w.r,w.s],E=[l.tokenNumber,l.nullifierAmount,l.outputAmount],D=s.circomDataToArray(c),O=y>0n?Number(y):0;if(d){let e=s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),{transaction:n}=await p.transactionBuilder.triggerSmartContract(_,``,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O,input:e},[],v);return n}await s.approveTronTokens(p,v,_,b),b.size>0&&await m.waitForTronErc20Approvals(p,v,_,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t}))),u&&(await f.simulateTronTransaction(r,_,`transact`,g,[T,x,S,C,E,D],v,y>0n?y:void 0),await s.assertTronSufficientBalance(p,r,_,v,s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),y));let k=await p.contract(g,_).transact(T,x,S,C,E,D).send({feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O}),A=typeof k==`string`?k:k?.txid??k?.transaction?.txID;if(!A)throw Error(`Tron deposit failed (missing txid)`);return A},b=async(r,i,a,o=!0,s=!1)=>{let l=c.validateAndGetChainId(i),u=e.isTronLike(l),d=i.map(e=>e.erc20TokenAddress),[{externalActionData:f,contractTransaction:m,contractToApprove:g},{inputUtxosArray:b,outputUtxosArray:x}]=await Promise.all([_(r,l),v(r,l,d,a)]),{zkCallData:S,circomData:C,dimData:w}=await p.constructZkProof(r.merkleTreeHinkalByChain[l],b,x,r.userKeys,f.externalActionId,f.externalAddress,f.externalActionMetadata,r.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,l);return u?await y(r,l,i,a,S,C,w,o,s):await h.transactCallDirect(r,l,a,i,S,C,w,g,m,o,s)},x=async(i,s,l,u,f=!0,m=!1,v)=>{let b=c.validateAndGetChainId(s),x=e.isTronLike(b),S=s.map(e=>e.erc20TokenAddress),[C,w,T,,E]=u.split(`,`);if(!o.isValidPrivateAddress(u))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=S.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}),new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0})]),O=S.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,H0:[BigInt(w),BigInt(T)],stealthAddress:C,encryptionKey:E,isNewStyle:!0})]),{externalActionData:k,contractTransaction:A,contractToApprove:j}=await _(i,b),{zkCallData:M,circomData:N,dimData:P}=await p.constructZkProof(i.merkleTreeHinkalByChain[b],D,O,i.userKeys,k.externalActionId,k.externalAddress,k.externalActionMetadata,i.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,b);if(x)return await y(i,b,s,l,M,N,P,f,m);let F=await h.transactCallDirect(i,b,l,s,M,N,P,j,A,f,m);return g.emitTxPublicData(d.constructAdminData(v,b,S,l,await i.getEthereumAddress())),F};exports.hinkalDeposit=b,exports.hinkalDepositForOther=x;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../types/hinkal.types.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../functions/utils/token-check.utils.cjs`),l=require(`../../functions/web3/events/getShieldedBalance.cjs`),u=require(`../../functions/pre-transaction/outputUtxoProcessing.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/utils/tronSimulation.utils.cjs`),p=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),m=require(`../../functions/web3/functionCalls/waitForErc20Approvals.cjs`),h=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),g=require(`../../API/admin-calls.cjs`);var _=async(e,t)=>({externalActionData:{externalActionId:0n,externalAddress:s.addressToHexFormat(await e.getEthereumAddressByChain(t)),externalActionMetadata:`0x00`},contractTransaction:void 0,contractToApprove:void 0}),v=async(e,t,n,r)=>{let a=[...await l.addPaddingToUtxos(e,t,n,r)],o=[],s=i.getCurrentTimeInSeconds().toString();for(let t=0;t<n.length;t+=1){let{outputUtxos:n}=u.outputUtxoProcessing(e.userKeys,a[t],r[t],s);o.push(n)}return{inputUtxosArray:a,outputUtxosArray:o}},y=async(n,r,i,a,o,c,l,u=!0,d=!1)=>{let p=n.getTronWeb(),{hinkalAddress:h,hinkalABI:g}=e.networkRegistry[r].contractData;if(!g)throw Error(`Hinkal ABI not found`);let _=s.evmHexToTronBase58Address(h),v=await n.getEthereumAddressByChain(r),{totalTrxValue:y,tokensNeedingApproval:b}=s.splitTronTokensByNative(i,a),{a:x,b:S,c:C}=s.parseZkCalldata(o),w=await s.reorderZkCallData(!0,o,l,c,!1);if(!w)throw Error(`Tron proof signature not found`);let T=[w.v,w.r,w.s],E=[l.tokenNumber,l.nullifierAmount,l.outputAmount],D=s.circomDataToArray(c),O=y>0n?Number(y):0;if(d){let e=s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),{transaction:n}=await p.transactionBuilder.triggerSmartContract(_,``,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O,input:e},[],v);return n}await s.approveTronTokens(p,v,_,b),b.size>0&&await m.waitForTronErc20Approvals(p,v,_,Array.from(b.entries()).map(([e,t])=>({tokenAddress:e,requiredAmount:t}))),u&&(await f.simulateTronTransaction(r,_,`transact`,g,[T,x,S,C,E,D],v,y>0n?y:void 0),await s.assertTronSufficientBalance(p,r,_,v,s.createTronCallData(g,`transact`,[T,x,S,C,E,D]),y));let k=await p.contract(g,_).transact(T,x,S,C,E,D).send({feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN,callValue:O}),A=typeof k==`string`?k:k?.txid??k?.transaction?.txID;if(!A)throw Error(`Tron deposit failed (missing txid)`);return A},b=async(r,i,a,o=!0,s=!1)=>{let l=c.validateAndGetChainId(i),u=e.isTronLike(l),d=i.map(e=>e.erc20TokenAddress),[{externalActionData:f,contractTransaction:m,contractToApprove:g},{inputUtxosArray:b,outputUtxosArray:x}]=await Promise.all([_(r,l),v(r,l,d,a)]),{zkCallData:S,circomData:C,dimData:w}=await p.constructZkProof(r.merkleTreeHinkalByChain[l],b,x,r.userKeys,f.externalActionId,f.externalAddress,f.externalActionMetadata,r.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,l);return u?await y(r,l,i,a,S,C,w,o,s):await h.transactCallDirect(r,l,a,i,S,C,w,g,m,o,s)},x=async(i,s,l,u,f=!0,m=!1,v)=>{let b=c.validateAndGetChainId(s),x=e.isTronLike(b),S=s.map(e=>e.erc20TokenAddress),[C,w,T,,,E]=u.split(`,`);if(!o.isValidPrivateAddress(u))throw Error(r.transactionErrorCodes.RECIPIENT_FORMAT_INCORRECT);let D=S.map(e=>[new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint}),new a.Utxo({amount:0n,erc20TokenAddress:e,nullifyingKey:i.userKeys.getShieldedPrivateKey(),spendingPublicKey:i.userKeys.getSpendingKeyPair().pubSpendingBJJPoint})]),O=S.map((e,t)=>[new a.Utxo({amount:l[t],erc20TokenAddress:e,H0:[BigInt(w),BigInt(T)],stealthAddress:C,encryptionKey:E})]),{externalActionData:k,contractTransaction:A,contractToApprove:j}=await _(i,b),{zkCallData:M,circomData:N,dimData:P}=await p.constructZkProof(i.merkleTreeHinkalByChain[b],D,O,i.userKeys,k.externalActionId,k.externalAddress,k.externalActionMetadata,i.generateProofRemotely,n.zeroFeeStructure,t.zeroAddress,b);if(x)return await y(i,b,s,l,M,N,P,f,m);let F=await h.transactCallDirect(i,b,l,s,M,N,P,j,A,f,m);return g.emitTxPublicData(d.constructAdminData(v,b,S,l,await i.getEthereumAddress())),F};exports.hinkalDeposit=b,exports.hinkalDepositForOther=x;
@@ -91,27 +91,24 @@ var D = async (e, t) => ({
91
91
  let c = v(n), l = e(c), u = n.map((e) => e.erc20TokenAddress), [{ externalActionData: d, contractTransaction: f, contractToApprove: p }, { inputUtxosArray: m, outputUtxosArray: h }] = await Promise.all([D(t, c), O(t, c, u, a)]), { zkCallData: g, circomData: _, dimData: y } = await C(t.merkleTreeHinkalByChain[c], m, h, t.userKeys, d.externalActionId, d.externalAddress, d.externalActionMetadata, t.generateProofRemotely, i, r, c);
92
92
  return l ? await k(t, c, n, a, g, _, y, o, s) : await T(t, c, a, n, g, _, y, p, f, o, s);
93
93
  }, j = async (t, n, o, l, u = !0, d = !1, f) => {
94
- let p = v(n), m = e(p), h = n.map((e) => e.erc20TokenAddress), [g, _, y, , b] = l.split(",");
94
+ let p = v(n), m = e(p), h = n.map((e) => e.erc20TokenAddress), [g, _, y, , , b] = l.split(",");
95
95
  if (!c(l)) throw Error(a.RECIPIENT_FORMAT_INCORRECT);
96
96
  let S = h.map((e) => [new s({
97
97
  amount: 0n,
98
98
  erc20TokenAddress: e,
99
99
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
100
- spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
101
- isNewStyle: !0
100
+ spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint
102
101
  }), new s({
103
102
  amount: 0n,
104
103
  erc20TokenAddress: e,
105
104
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
106
- spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
107
- isNewStyle: !0
105
+ spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint
108
106
  })]), w = h.map((e, t) => [new s({
109
107
  amount: o[t],
110
108
  erc20TokenAddress: e,
111
109
  H0: [BigInt(_), BigInt(y)],
112
110
  stealthAddress: g,
113
- encryptionKey: b,
114
- isNewStyle: !0
111
+ encryptionKey: b
115
112
  })]), { externalActionData: O, contractTransaction: A, contractToApprove: j } = await D(t, p), { zkCallData: M, circomData: N, dimData: P } = await C(t.merkleTreeHinkalByChain[p], S, w, t.userKeys, O.externalActionId, O.externalAddress, O.externalActionMetadata, t.generateProofRemotely, i, r, p);
116
113
  if (m) return await k(t, p, n, o, M, N, P, u, d);
117
114
  let F = await T(t, p, o, n, M, N, P, j, A, u, d);
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/utils/erc20tokenFunctions.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),h=require(`../../constants/addresses.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/utils/index.cjs`);const v=require(`../../functions/private-wallet/emporium.helpers.cjs`),y=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),b=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),x=require(`../../API/deposit-and-withdraw-status-calls.cjs`),S=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var C=async(c,u,d,p,m,g,S,C,w,T,E)=>{if(p.length===0)throw Error(`No recipients to bridge`);let D=d.erc20TokenAddress,{contractData:O}=e.networkRegistry[u],{emporiumAddress:k}=O;if(!k)throw Error(`No Emporium Address`);let A=h.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][u];if(!A)throw Error(`LIFI not configured for chain ${u}`);let j=await c.getRandomRelay(u);if(!j)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let M=await c.getEthereumAddressByChain(u),N=i.getCurrentTimeInSeconds().toString(),P=c.generateProofRemotely?5:1,F=[];for(let e=0;e<p.length;e+=P){let r=p.slice(e,e+P),i=await Promise.all(r.map(async({utxo:e,nativeUtxo:r,bridgeAmount:i,quote:s,temporarySubAccount:p,recipientAddress:h})=>{await l.API.addTemporaryWalletNonce(u,g,p.index);let b=n.caseInsensitiveEqual(D,t.zeroAddress),x=s.nativeFee>0n&&!b,S=[D],C=[-e.amount],w=[!1],E=new a.Utxo({amount:0n,erc20TokenAddress:D,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...e.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),O=[[e,E]],P=[[E]];if(x&&r){let e=new a.Utxo({amount:0n,erc20TokenAddress:t.zeroAddress,nullifyingKey:c.userKeys.getShieldedPrivateKey(),timeStamp:N,...r.isNewStyle?{spendingPublicKey:c.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}});S.push(t.zeroAddress),C.push(-r.amount),w.push(!1),O.push([r,e]),P.push([e])}let F=v.createLifiBridgeOps(c,u,p.ethAddress,A,D,e.amount,i,s),I=await _.calculateModifiedFeeStructure(u,d,i,m),L=f.constructAdminData(T,u,S,[-e.amount],M),[{zkCallData:R,circomData:z,dimData:B,commitmentValidationData:V},H]=await Promise.all([y.constructZkProof(c.merkleTreeHinkalByChain[u],O,P,c.userKeys,o.ExternalActionId.Emporium,k,F,c.generateProofRemotely,I,j??t.zeroAddress,u,w,void 0,void 0,p.privateKey),v.getAuthorizationDataIfNeeded(u,p.privateKey)]);return{zkCallData:R,dimData:B,circomData:z,commitmentValidationData:V,authorizationData:H,recipientAddress:h,adminData:L}}));F.push(...i)}await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let I=await b.transactCallRelayerBatch(u,F,g,C,w,E);return await x.safeUpdateDepositAndWithdrawStatus({id:S,chainId:u,hashedEthereumAddress:g,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:I}),I},w=async(e,r,i,a,s,l,f,_,y=!0)=>{let b=r.erc20TokenAddress,x=u.validateAndGetChainId([r]),w=_?c.hashString(_):void 0,T=c.hashEthereumAddress(await e.getEthereumAddressByChain(x)),E=h.SWAP_ROUTER_ADDRESSES[o.ExternalActionId.Lifi][x];if(!E)throw Error(`LIFI router not configured`);let D,O=n.caseInsensitiveEqual(b,t.zeroAddress);if(s)D=s;else{let n=i[0],r=O?n.bridgeAmount+n.quote.nativeFee:n.bridgeAmount,a=v.createLifiBridgeOps(e,x,n.temporarySubAccount.ethAddress,E,b,r,n.bridgeAmount,n.quote).map(e=>g.convertEmporiumOpToCallInfo(e,n.temporarySubAccount.ethAddress,x));D=await p.getFeeStructure(x,b,[b],o.ExternalActionId.Emporium,a,t.PAY_SEND_VARIABLE_RATE)}let k={feeToken:D.feeToken,flatFee:0n,variableRate:0n},A=i.reduce((e,t)=>e+t.quote.nativeFee,0n)>0n&&!n.caseInsensitiveEqual(b,t.zeroAddress),j=i.map(e=>O?e.bridgeAmount+e.quote.nativeFee:e.bridgeAmount),M=i.map(e=>e.recipientAddress),{userDepositedUtxos:N,statusId:P,depositTxHash:F}=await S.hinkalDepositOnChainUtxos(e,x,r,j,M,D,T,y),I=[];if(A){let n=await d.getErc20TokenFromAPI(x,t.zeroAddress);if(!n)throw Error(`No native token`);let{userDepositedUtxos:r}=await S.hinkalDepositOnChainUtxos(e,x,n,i.map(e=>e.quote.nativeFee),M,k,T,y);I=r}return await m.waitForDepositedUtxosInMerkleTree(e,x,[...N,...I]),{depositTxHash:F,scheduleId:await C(e,x,r,i.map((e,t)=>({...e,utxo:N[t].utxo,nativeUtxo:A?I[t]?.utxo:void 0})),D,T,P,a,l,f,w)}};exports.hinkalDepositAndBridge=w;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../types/external-action.types.cjs`),c=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const l=require(`../../API/API.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/utils/erc20tokenFunctions.cjs`),f=require(`../../functions/pre-transaction/constructAdminData.cjs`),p=require(`../../functions/pre-transaction/getFeeStructure.cjs`),m=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),h=require(`../../constants/addresses.constants.cjs`),g=require(`../../functions/utils/convertEmporiumOpToCallInfo.cjs`),_=require(`../../functions/utils/fees.utils.cjs`);require(`../../functions/utils/index.cjs`);const v=require(`../../functions/private-wallet/emporium.helpers.cjs`),y=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),b=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),x=require(`../../API/deposit-and-withdraw-status-calls.cjs`),S=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var C=async(o,u,d,p,m,g,_,S,C,w,T)=>{if(p.length===0)throw Error(`No recipients to bridge`);let E=d.erc20TokenAddress,{contractData:D}=e.networkRegistry[u],{emporiumAddress:O}=D;if(!O)throw Error(`No Emporium Address`);let k=h.SWAP_ROUTER_ADDRESSES[s.ExternalActionId.Lifi][u];if(!k)throw Error(`LIFI not configured for chain ${u}`);let A=await o.getRandomRelay(u);if(!A)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let j=await o.getEthereumAddressByChain(u),M=i.getCurrentTimeInSeconds().toString(),N=o.generateProofRemotely?5:1,P=[];for(let e=0;e<p.length;e+=N){let r=p.slice(e,e+N),i=await Promise.all(r.map(async({utxo:e,nativeUtxo:r,bridgeAmount:i,quote:c,temporarySubAccount:d,recipientAddress:p})=>{await l.API.addTemporaryWalletNonce(u,g,d.index);let h=n.caseInsensitiveEqual(E,t.zeroAddress),_=c.nativeFee>0n&&!h,b=[E],x=[-e.amount],S=[!1],C=new a.Utxo({amount:0n,erc20TokenAddress:E,nullifyingKey:o.userKeys.getShieldedPrivateKey(),timeStamp:M,spendingPublicKey:o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint}),T=[[e,C]],D=[[C]];if(_&&r){let e=new a.Utxo({amount:0n,erc20TokenAddress:t.zeroAddress,nullifyingKey:o.userKeys.getShieldedPrivateKey(),timeStamp:M,spendingPublicKey:o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint});b.push(t.zeroAddress),x.push(-r.amount),S.push(!1),T.push([r,e]),D.push([e])}let N=v.createLifiBridgeOps(o,u,d.ethAddress,k,E,e.amount,i,c),P=f.constructAdminData(w,u,b,[-e.amount],j),[{zkCallData:F,circomData:I,dimData:L,commitmentValidationData:R},z]=await Promise.all([y.constructZkProof(o.merkleTreeHinkalByChain[u],T,D,o.userKeys,s.ExternalActionId.Emporium,O,N,o.generateProofRemotely,m,A??t.zeroAddress,u,S,void 0,void 0,d.privateKey),v.getAuthorizationDataIfNeeded(u,d.privateKey)]);return{zkCallData:F,dimData:L,circomData:I,commitmentValidationData:R,authorizationData:z,recipientAddress:p,adminData:P}}));P.push(...i)}await x.safeUpdateDepositAndWithdrawStatus({id:_,chainId:u,hashedEthereumAddress:g,phase:c.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let F=await b.transactCallRelayerBatch(u,P,g,S,C,T);return await x.safeUpdateDepositAndWithdrawStatus({id:_,chainId:u,hashedEthereumAddress:g,phase:c.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:F}),F},w=async(e,r,i,a,c,l,f,y,b=!0)=>{let x=r.erc20TokenAddress,w=u.validateAndGetChainId([r]),T=y?o.hashString(y):void 0,E=o.hashEthereumAddress(await e.getEthereumAddressByChain(w)),D=h.SWAP_ROUTER_ADDRESSES[s.ExternalActionId.Lifi][w];if(!D)throw Error(`LIFI router not configured`);let O,k=n.caseInsensitiveEqual(x,t.zeroAddress);if(c)O=c;else{let n=i[0],r=k?n.bridgeAmount+n.quote.nativeFee:n.bridgeAmount,a=v.createLifiBridgeOps(e,w,n.temporarySubAccount.ethAddress,D,x,r,n.bridgeAmount,n.quote).map(e=>g.convertEmporiumOpToCallInfo(e,n.temporarySubAccount.ethAddress,w));O=await p.getFeeStructure(w,x,[x],s.ExternalActionId.Emporium,a,t.PAY_SEND_VARIABLE_RATE)}let A={feeToken:O.feeToken,flatFee:0n,variableRate:0n},j=i.reduce((e,t)=>e+t.quote.nativeFee,0n)>0n&&!n.caseInsensitiveEqual(x,t.zeroAddress),M=i.map(e=>_.calculateGrossAmountWithFee(k?e.bridgeAmount+e.quote.nativeFee:e.bridgeAmount,O)),N=i.map(e=>e.recipientAddress),{userDepositedUtxos:P,statusId:F,depositTxHash:I}=await S.hinkalDepositOnChainUtxos(e,w,r,M,N,A,E,b),L=[];if(j){let n=await d.getErc20TokenFromAPI(w,t.zeroAddress);if(!n)throw Error(`No native token`);let{userDepositedUtxos:r}=await S.hinkalDepositOnChainUtxos(e,w,n,i.map(e=>_.calculateGrossAmountWithFee(e.quote.nativeFee,{feeToken:O.feeToken,flatFee:0n,variableRate:O.variableRate})),N,A,E,b);L=r}return await m.waitForDepositedUtxosInMerkleTree(e,w,[...P,...L]),{depositTxHash:I,scheduleId:await C(e,w,r,i.map((e,t)=>({...e,utxo:P[t].utxo,nativeUtxo:j?L[t]?.utxo:void 0})),O,E,F,a,l,f,T)}};exports.hinkalDepositAndBridge=w;
@@ -4,10 +4,10 @@ import { caseInsensitiveEqual as r } from "../../functions/utils/caseInsensitive
4
4
  import { transactionErrorCodes as i } from "../../error-handling/error-codes.constants.mjs";
5
5
  import { getCurrentTimeInSeconds as a } from "../../functions/utils/time.utils.mjs";
6
6
  import { Utxo as o } from "../utxo/Utxo.mjs";
7
- import { ExternalActionId as s } from "../../types/external-action.types.mjs";
8
- import { DepositAndWithdrawPhase as c } from "../../types/scheduled-transactions.types.mjs";
7
+ import { hashEthereumAddress as s, hashString as c } from "../../functions/utils/addresses.mjs";
8
+ import { ExternalActionId as l } from "../../types/external-action.types.mjs";
9
+ import { DepositAndWithdrawPhase as u } from "../../types/scheduled-transactions.types.mjs";
9
10
  import "../../types/index.mjs";
10
- import { hashEthereumAddress as l, hashString as u } from "../../functions/utils/addresses.mjs";
11
11
  import { API as d } from "../../API/API.mjs";
12
12
  import { validateAndGetChainId as f } from "../../functions/utils/token-check.utils.mjs";
13
13
  import { getErc20TokenFromAPI as p } from "../../functions/utils/erc20tokenFunctions.mjs";
@@ -16,7 +16,7 @@ import { getFeeStructure as h } from "../../functions/pre-transaction/getFeeStru
16
16
  import { waitForDepositedUtxosInMerkleTree as g } from "../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs";
17
17
  import { SWAP_ROUTER_ADDRESSES as _ } from "../../constants/addresses.constants.mjs";
18
18
  import { convertEmporiumOpToCallInfo as v } from "../../functions/utils/convertEmporiumOpToCallInfo.mjs";
19
- import { calculateModifiedFeeStructure as y } from "../../functions/utils/fees.utils.mjs";
19
+ import { calculateGrossAmountWithFee as y } from "../../functions/utils/fees.utils.mjs";
20
20
  import "../../functions/utils/index.mjs";
21
21
  import { createLifiBridgeOps as b, getAuthorizationDataIfNeeded as x } from "../../functions/private-wallet/emporium.helpers.mjs";
22
22
  import { constructZkProof as S } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
@@ -25,95 +25,93 @@ import { safeUpdateDepositAndWithdrawStatus as w } from "../../API/deposit-and-w
25
25
  import { hinkalDepositOnChainUtxos as T } from "./hinkalDepositOnChainUtxos.mjs";
26
26
  import "../../functions/index.mjs";
27
27
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalDepositAndBridge.ts
28
- var E = async (t, l, u, f, p, h, g, v, T, E, D) => {
28
+ var E = async (t, s, c, f, p, h, g, v, y, T, E) => {
29
29
  if (f.length === 0) throw Error("No recipients to bridge");
30
- let O = u.erc20TokenAddress, { contractData: k } = e[l], { emporiumAddress: A } = k;
31
- if (!A) throw Error("No Emporium Address");
32
- let j = _[s.Lifi][l];
33
- if (!j) throw Error(`LIFI not configured for chain ${l}`);
34
- let M = await t.getRandomRelay(l);
35
- if (!M) throw Error(i.RELAYER_NOT_AVAILABLE);
36
- let N = await t.getEthereumAddressByChain(l), P = a().toString(), F = t.generateProofRemotely ? 5 : 1, I = [];
37
- for (let e = 0; e < f.length; e += F) {
38
- let i = f.slice(e, e + F), a = await Promise.all(i.map(async ({ utxo: e, nativeUtxo: i, bridgeAmount: a, quote: c, temporarySubAccount: f, recipientAddress: g }) => {
39
- await d.addTemporaryWalletNonce(l, h, f.index);
40
- let _ = r(O, n), v = c.nativeFee > 0n && !_, C = [O], w = [-e.amount], T = [!1], D = new o({
30
+ let D = c.erc20TokenAddress, { contractData: O } = e[s], { emporiumAddress: k } = O;
31
+ if (!k) throw Error("No Emporium Address");
32
+ let A = _[l.Lifi][s];
33
+ if (!A) throw Error(`LIFI not configured for chain ${s}`);
34
+ let j = await t.getRandomRelay(s);
35
+ if (!j) throw Error(i.RELAYER_NOT_AVAILABLE);
36
+ let M = await t.getEthereumAddressByChain(s), N = a().toString(), P = t.generateProofRemotely ? 5 : 1, F = [];
37
+ for (let e = 0; e < f.length; e += P) {
38
+ let i = f.slice(e, e + P), a = await Promise.all(i.map(async ({ utxo: e, nativeUtxo: i, bridgeAmount: a, quote: c, temporarySubAccount: u, recipientAddress: f }) => {
39
+ await d.addTemporaryWalletNonce(s, h, u.index);
40
+ let g = r(D, n), _ = c.nativeFee > 0n && !g, v = [D], y = [-e.amount], C = [!1], w = new o({
41
41
  amount: 0n,
42
- erc20TokenAddress: O,
42
+ erc20TokenAddress: D,
43
43
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
44
- timeStamp: P,
45
- ...e.isNewStyle ? {
46
- spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
47
- isNewStyle: !0
48
- } : { isNewStyle: !1 }
49
- }), k = [[e, D]], F = [[D]];
50
- if (v && i) {
44
+ timeStamp: N,
45
+ spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint
46
+ }), E = [[e, w]], O = [[w]];
47
+ if (_ && i) {
51
48
  let e = new o({
52
49
  amount: 0n,
53
50
  erc20TokenAddress: n,
54
51
  nullifyingKey: t.userKeys.getShieldedPrivateKey(),
55
- timeStamp: P,
56
- ...i.isNewStyle ? {
57
- spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
58
- isNewStyle: !0
59
- } : { isNewStyle: !1 }
52
+ timeStamp: N,
53
+ spendingPublicKey: t.userKeys.getSpendingKeyPair().pubSpendingBJJPoint
60
54
  });
61
- C.push(n), w.push(-i.amount), T.push(!1), k.push([i, e]), F.push([e]);
55
+ v.push(n), y.push(-i.amount), C.push(!1), E.push([i, e]), O.push([e]);
62
56
  }
63
- let I = b(t, l, f.ethAddress, j, O, e.amount, a, c), L = await y(l, u, a, p), R = m(E, l, C, [-e.amount], N), [{ zkCallData: z, circomData: B, dimData: V, commitmentValidationData: H }, U] = await Promise.all([S(t.merkleTreeHinkalByChain[l], k, F, t.userKeys, s.Emporium, A, I, t.generateProofRemotely, L, M ?? n, l, T, void 0, void 0, f.privateKey), x(l, f.privateKey)]);
57
+ let P = b(t, s, u.ethAddress, A, D, e.amount, a, c), F = m(T, s, v, [-e.amount], M), [{ zkCallData: I, circomData: L, dimData: R, commitmentValidationData: z }, B] = await Promise.all([S(t.merkleTreeHinkalByChain[s], E, O, t.userKeys, l.Emporium, k, P, t.generateProofRemotely, p, j ?? n, s, C, void 0, void 0, u.privateKey), x(s, u.privateKey)]);
64
58
  return {
65
- zkCallData: z,
66
- dimData: V,
67
- circomData: B,
68
- commitmentValidationData: H,
69
- authorizationData: U,
70
- recipientAddress: g,
71
- adminData: R
59
+ zkCallData: I,
60
+ dimData: R,
61
+ circomData: L,
62
+ commitmentValidationData: z,
63
+ authorizationData: B,
64
+ recipientAddress: f,
65
+ adminData: F
72
66
  };
73
67
  }));
74
- I.push(...a);
68
+ F.push(...a);
75
69
  }
76
70
  await w({
77
71
  id: g,
78
- chainId: l,
72
+ chainId: s,
79
73
  hashedEthereumAddress: h,
80
- phase: c.BEFORE_SCHEDULE_WITHDRAW
74
+ phase: u.BEFORE_SCHEDULE_WITHDRAW
81
75
  });
82
- let L = await C(l, I, h, v, T, D);
76
+ let I = await C(s, F, h, v, y, E);
83
77
  return await w({
84
78
  id: g,
85
- chainId: l,
79
+ chainId: s,
86
80
  hashedEthereumAddress: h,
87
- phase: c.AFTER_SCHEDULE_WITHDRAW,
88
- scheduleId: L
89
- }), L;
90
- }, D = async (e, i, a, o, c, d, m, y, x = !0) => {
91
- let S = i.erc20TokenAddress, C = f([i]), w = y ? u(y) : void 0, D = l(await e.getEthereumAddressByChain(C)), O = _[s.Lifi][C];
92
- if (!O) throw Error("LIFI router not configured");
93
- let k, A = r(S, n);
94
- if (c) k = c;
81
+ phase: u.AFTER_SCHEDULE_WITHDRAW,
82
+ scheduleId: I
83
+ }), I;
84
+ }, D = async (e, i, a, o, u, d, m, x, S = !0) => {
85
+ let C = i.erc20TokenAddress, w = f([i]), D = x ? c(x) : void 0, O = s(await e.getEthereumAddressByChain(w)), k = _[l.Lifi][w];
86
+ if (!k) throw Error("LIFI router not configured");
87
+ let A, j = r(C, n);
88
+ if (u) A = u;
95
89
  else {
96
- let n = a[0], r = A ? n.bridgeAmount + n.quote.nativeFee : n.bridgeAmount, i = b(e, C, n.temporarySubAccount.ethAddress, O, S, r, n.bridgeAmount, n.quote).map((e) => v(e, n.temporarySubAccount.ethAddress, C));
97
- k = await h(C, S, [S], s.Emporium, i, t);
90
+ let n = a[0], r = j ? n.bridgeAmount + n.quote.nativeFee : n.bridgeAmount, i = b(e, w, n.temporarySubAccount.ethAddress, k, C, r, n.bridgeAmount, n.quote).map((e) => v(e, n.temporarySubAccount.ethAddress, w));
91
+ A = await h(w, C, [C], l.Emporium, i, t);
98
92
  }
99
- let j = {
100
- feeToken: k.feeToken,
93
+ let M = {
94
+ feeToken: A.feeToken,
101
95
  flatFee: 0n,
102
96
  variableRate: 0n
103
- }, M = a.reduce((e, t) => e + t.quote.nativeFee, 0n) > 0n && !r(S, n), N = a.map((e) => A ? e.bridgeAmount + e.quote.nativeFee : e.bridgeAmount), P = a.map((e) => e.recipientAddress), { userDepositedUtxos: F, statusId: I, depositTxHash: L } = await T(e, C, i, N, P, k, D, x), R = [];
104
- if (M) {
105
- let t = await p(C, n);
97
+ }, N = a.reduce((e, t) => e + t.quote.nativeFee, 0n) > 0n && !r(C, n), P = a.map((e) => y(j ? e.bridgeAmount + e.quote.nativeFee : e.bridgeAmount, A)), F = a.map((e) => e.recipientAddress), { userDepositedUtxos: I, statusId: L, depositTxHash: R } = await T(e, w, i, P, F, M, O, S), z = [];
98
+ if (N) {
99
+ let t = await p(w, n);
106
100
  if (!t) throw Error("No native token");
107
- let { userDepositedUtxos: r } = await T(e, C, t, a.map((e) => e.quote.nativeFee), P, j, D, x);
108
- R = r;
101
+ let { userDepositedUtxos: r } = await T(e, w, t, a.map((e) => y(e.quote.nativeFee, {
102
+ feeToken: A.feeToken,
103
+ flatFee: 0n,
104
+ variableRate: A.variableRate
105
+ })), F, M, O, S);
106
+ z = r;
109
107
  }
110
- return await g(e, C, [...F, ...R]), {
111
- depositTxHash: L,
112
- scheduleId: await E(e, C, i, a.map((e, t) => ({
108
+ return await g(e, w, [...I, ...z]), {
109
+ depositTxHash: R,
110
+ scheduleId: await E(e, w, i, a.map((e, t) => ({
113
111
  ...e,
114
- utxo: F[t].utxo,
115
- nativeUtxo: M ? R[t]?.utxo : void 0
116
- })), k, D, I, o, d, m, w)
112
+ utxo: I[t].utxo,
113
+ nativeUtxo: N ? z[t]?.utxo : void 0
114
+ })), A, O, L, o, d, m, D)
117
115
  };
118
116
  };
119
117
  //#endregion
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../types/external-action.types.cjs`),s=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const c=require(`../../functions/utils/addresses.cjs`),l=require(`../../functions/utils/tron.utils.cjs`),u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),m=require(`../../functions/utils/fees.utils.cjs`),h=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),g=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),_=require(`../../API/deposit-and-withdraw-status-calls.cjs`),v=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var y=async(o,c,u,f,p,v,y,b,x,S,C,w)=>{let T=e.isTronLike(c);if(f.length===0)throw Error(`userDepositedUtxos must not be empty`);let E=u.erc20TokenAddress,[D,O]=await Promise.all([o.getRandomRelay(c),o.getEthereumAddressByChain(c)]);if(!D)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let k=i.getCurrentTimeInSeconds().toString(),A=o.generateProofRemotely&&!T?5:1,j=[],M=l.addressToHexFormat(O);for(let e=0;e<f.length;e+=A){let r=f.slice(e,e+A),i=await Promise.all(r.map(async({recipientAddress:r,utxo:i},s)=>{let f=e+s,g=l.addressToHexFormat(r),_=new a.Utxo({amount:0n,erc20TokenAddress:E,nullifyingKey:o.userKeys.getShieldedPrivateKey(),timeStamp:k,...i.isNewStyle?{spendingPublicKey:o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,isNewStyle:!0}:{isNewStyle:!1}}),y=[[n.caseInsensitiveEqual(i.erc20TokenAddress,E)?i:a.Utxo.createFrom(i,{erc20TokenAddress:E}),_]],b=[[_]],x={externalActionId:0n,externalAddress:g,externalActionMetadata:`0x00`},S=d.constructAdminData(C,c,[E],[-i.amount],M),w=await m.calculateModifiedFeeStructure(c,u,p[f],v),{zkCallData:O,circomData:A,dimData:j,commitmentValidationData:N}=await h.constructZkProof(o.merkleTreeHinkalByChain[c],y,b,o.userKeys,x.externalActionId,x.externalAddress,x.externalActionMetadata,o.generateProofRemotely,w,D??t.zeroAddress,c);return{zkCallData:O,dimData:j,circomData:A,commitmentValidationData:N,adminData:S,recipientAddress:r,tronProofSignature:await l.reorderZkCallData(T,O,j,A)}}));j.push(...i)}await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let N=await g.transactCallRelayerBatch(c,j,y,x,S,w);return await _.safeUpdateDepositAndWithdrawStatus({id:b,chainId:c,hashedEthereumAddress:y,phase:s.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:N}),N},b=async(e,t,n,r,i,a,s,d,m,h=!0)=>{let g=u.validateAndGetChainId([t]),_=m?c.hashString(m):void 0,b=t.erc20TokenAddress,x=c.hashEthereumAddress(l.addressToHexFormat(await e.getEthereumAddressByChain(g))),S=a??await f.getFeeStructure(g,b,[b],o.ExternalActionId.Transact,[],10n),{userDepositedUtxos:C,statusId:w,depositTxHash:T}=await v.hinkalDepositOnChainUtxos(e,g,t,n,r,S,x,h);return await p.waitForDepositedUtxosInMerkleTree(e,g,C),{depositTxHash:T,scheduleId:await y(e,g,t,C,n,S,x,w,i,s,d,_)}};exports.hinkalDepositAndWithdraw=b;
1
+ const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../functions/utils/caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../../functions/utils/time.utils.cjs`),a=require(`../utxo/Utxo.cjs`),o=require(`../../functions/utils/addresses.cjs`),s=require(`../../functions/utils/tron.utils.cjs`),c=require(`../../types/external-action.types.cjs`),l=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const u=require(`../../functions/utils/token-check.utils.cjs`),d=require(`../../functions/pre-transaction/constructAdminData.cjs`),f=require(`../../functions/pre-transaction/getFeeStructure.cjs`),p=require(`../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs`),m=require(`../../functions/snarkjs/constructGeneralZkProof.cjs`),h=require(`../../functions/web3/functionCalls/transactCallRelayer.cjs`),g=require(`../../API/deposit-and-withdraw-status-calls.cjs`),_=require(`./hinkalDepositOnChainUtxos.cjs`);require(`../../functions/index.cjs`);var v=async(o,c,u,f,p,_,v,y,b,x,S)=>{let C=e.isTronLike(c);if(f.length===0)throw Error(`userDepositedUtxos must not be empty`);let w=u.erc20TokenAddress,[T,E]=await Promise.all([o.getRandomRelay(c),o.getEthereumAddressByChain(c)]);if(!T)throw Error(r.transactionErrorCodes.RELAYER_NOT_AVAILABLE);let D=i.getCurrentTimeInSeconds().toString(),O=o.generateProofRemotely&&!C?5:1,k=[],A=s.addressToHexFormat(E);for(let e=0;e<f.length;e+=O){let r=f.slice(e,e+O),i=await Promise.all(r.map(async({recipientAddress:e,utxo:r})=>{let i=s.addressToHexFormat(e),l=new a.Utxo({amount:0n,erc20TokenAddress:w,nullifyingKey:o.userKeys.getShieldedPrivateKey(),timeStamp:D,spendingPublicKey:o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint}),u=[[n.caseInsensitiveEqual(r.erc20TokenAddress,w)?r:a.Utxo.createFrom(r,{erc20TokenAddress:w}),l]],f=[[l]],h={externalActionId:0n,externalAddress:i,externalActionMetadata:`0x00`},g=d.constructAdminData(x,c,[w],[-r.amount],A),{zkCallData:_,circomData:v,dimData:y,commitmentValidationData:b}=await m.constructZkProof(o.merkleTreeHinkalByChain[c],u,f,o.userKeys,h.externalActionId,h.externalAddress,h.externalActionMetadata,o.generateProofRemotely,p,T??t.zeroAddress,c);return{zkCallData:_,dimData:y,circomData:v,commitmentValidationData:b,adminData:g,recipientAddress:e,tronProofSignature:await s.reorderZkCallData(C,_,y,v)}}));k.push(...i)}await g.safeUpdateDepositAndWithdrawStatus({id:v,chainId:c,hashedEthereumAddress:_,phase:l.DepositAndWithdrawPhase.BEFORE_SCHEDULE_WITHDRAW});let j=await h.transactCallRelayerBatch(c,k,_,y,b,S);return await g.safeUpdateDepositAndWithdrawStatus({id:v,chainId:c,hashedEthereumAddress:_,phase:l.DepositAndWithdrawPhase.AFTER_SCHEDULE_WITHDRAW,scheduleId:j}),j},y=async(e,t,n,r,i,a,l,d,m,h=!0)=>{let g=u.validateAndGetChainId([t]),y=m?o.hashString(m):void 0,b=t.erc20TokenAddress,x=o.hashEthereumAddress(s.addressToHexFormat(await e.getEthereumAddressByChain(g))),S=a??await f.getFeeStructure(g,b,[b],c.ExternalActionId.Transact,[],10n),{userDepositedUtxos:C,statusId:w,depositTxHash:T}=await _.hinkalDepositOnChainUtxos(e,g,t,n,r,S,x,h);return await p.waitForDepositedUtxosInMerkleTree(e,g,C),{depositTxHash:T,scheduleId:await v(e,g,t,C,S,x,w,i,l,d,y)}};exports.hinkalDepositAndWithdraw=y;
@@ -1,6 +1,6 @@
1
1
  import { IHinkal } from './IHinkal';
2
2
  import { AdminTransactionType, DepositAndSendExtendedResult, ERC20Token, RecipientUtxo } from '../../types';
3
3
  import { FeeStructure } from '../../types/hinkal.types';
4
- export declare const hinkalWithdrawBatch: (hinkal: IHinkal, chainId: number, erc20Token: ERC20Token, userDepositedUtxos: RecipientUtxo[], recipientAmounts: bigint[], feeStructure: FeeStructure, hashedEthereumAddress: string, statusId: string | undefined, txCompletionTime?: number, ref?: string, action?: AdminTransactionType, hashedDashboardAccountId?: string) => Promise<string>;
4
+ export declare const hinkalWithdrawBatch: (hinkal: IHinkal, chainId: number, erc20Token: ERC20Token, userDepositedUtxos: RecipientUtxo[], feeStructure: FeeStructure, hashedEthereumAddress: string, statusId: string | undefined, txCompletionTime?: number, ref?: string, action?: AdminTransactionType, hashedDashboardAccountId?: string) => Promise<string>;
5
5
  export declare const hinkalDepositAndWithdraw: (hinkal: IHinkal, erc20Token: ERC20Token, recipientAmounts: bigint[], recipientAddresses: string[], txCompletionTime?: number, feeStructureOverride?: FeeStructure, // Should be passed fee for only one withdraw transaction, multiplication happening in this function
6
6
  ref?: string, action?: AdminTransactionType, dashboardAccountId?: string, preEstimateGas?: boolean) => Promise<DepositAndSendExtendedResult>;
@@ -4,76 +4,72 @@ import { caseInsensitiveEqual as n } from "../../functions/utils/caseInsensitive
4
4
  import { transactionErrorCodes as r } from "../../error-handling/error-codes.constants.mjs";
5
5
  import { getCurrentTimeInSeconds as i } from "../../functions/utils/time.utils.mjs";
6
6
  import { Utxo as a } from "../utxo/Utxo.mjs";
7
- import { ExternalActionId as o } from "../../types/external-action.types.mjs";
8
- import { DepositAndWithdrawPhase as s } from "../../types/scheduled-transactions.types.mjs";
7
+ import { hashEthereumAddress as o, hashString as s } from "../../functions/utils/addresses.mjs";
8
+ import { addressToHexFormat as c, reorderZkCallData as l } from "../../functions/utils/tron.utils.mjs";
9
+ import { ExternalActionId as u } from "../../types/external-action.types.mjs";
10
+ import { DepositAndWithdrawPhase as d } from "../../types/scheduled-transactions.types.mjs";
9
11
  import "../../types/index.mjs";
10
- import { hashEthereumAddress as c, hashString as l } from "../../functions/utils/addresses.mjs";
11
- import { addressToHexFormat as u, reorderZkCallData as d } from "../../functions/utils/tron.utils.mjs";
12
12
  import { validateAndGetChainId as f } from "../../functions/utils/token-check.utils.mjs";
13
13
  import { constructAdminData as p } from "../../functions/pre-transaction/constructAdminData.mjs";
14
14
  import { getFeeStructure as m } from "../../functions/pre-transaction/getFeeStructure.mjs";
15
15
  import { waitForDepositedUtxosInMerkleTree as h } from "../../functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs";
16
- import { calculateModifiedFeeStructure as g } from "../../functions/utils/fees.utils.mjs";
17
- import { constructZkProof as _ } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
18
- import { transactCallRelayerBatch as v } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
19
- import { safeUpdateDepositAndWithdrawStatus as y } from "../../API/deposit-and-withdraw-status-calls.mjs";
20
- import { hinkalDepositOnChainUtxos as b } from "./hinkalDepositOnChainUtxos.mjs";
16
+ import { constructZkProof as g } from "../../functions/snarkjs/constructGeneralZkProof.mjs";
17
+ import { transactCallRelayerBatch as _ } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
18
+ import { safeUpdateDepositAndWithdrawStatus as v } from "../../API/deposit-and-withdraw-status-calls.mjs";
19
+ import { hinkalDepositOnChainUtxos as y } from "./hinkalDepositOnChainUtxos.mjs";
21
20
  import "../../functions/index.mjs";
22
21
  //#region libs/shared/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.ts
23
- var x = async (o, c, l, f, m, h, b, x, S, C, w, T) => {
24
- let E = e(c);
22
+ var b = async (o, s, u, f, m, h, y, b, x, S, C) => {
23
+ let w = e(s);
25
24
  if (f.length === 0) throw Error("userDepositedUtxos must not be empty");
26
- let D = l.erc20TokenAddress, [O, k] = await Promise.all([o.getRandomRelay(c), o.getEthereumAddressByChain(c)]);
27
- if (!O) throw Error(r.RELAYER_NOT_AVAILABLE);
28
- let A = i().toString(), j = o.generateProofRemotely && !E ? 5 : 1, M = [], N = u(k);
29
- for (let e = 0; e < f.length; e += j) {
30
- let r = f.slice(e, e + j), i = await Promise.all(r.map(async ({ recipientAddress: r, utxo: i }, s) => {
31
- let f = e + s, v = u(r), y = new a({
25
+ let T = u.erc20TokenAddress, [E, D] = await Promise.all([o.getRandomRelay(s), o.getEthereumAddressByChain(s)]);
26
+ if (!E) throw Error(r.RELAYER_NOT_AVAILABLE);
27
+ let O = i().toString(), k = o.generateProofRemotely && !w ? 5 : 1, A = [], j = c(D);
28
+ for (let e = 0; e < f.length; e += k) {
29
+ let r = f.slice(e, e + k), i = await Promise.all(r.map(async ({ recipientAddress: e, utxo: r }) => {
30
+ let i = c(e), u = new a({
32
31
  amount: 0n,
33
- erc20TokenAddress: D,
32
+ erc20TokenAddress: T,
34
33
  nullifyingKey: o.userKeys.getShieldedPrivateKey(),
35
- timeStamp: A,
36
- ...i.isNewStyle ? {
37
- spendingPublicKey: o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,
38
- isNewStyle: !0
39
- } : { isNewStyle: !1 }
40
- }), b = [[n(i.erc20TokenAddress, D) ? i : a.createFrom(i, { erc20TokenAddress: D }), y]], x = [[y]], S = {
34
+ timeStamp: O,
35
+ spendingPublicKey: o.userKeys.getSpendingKeyPair().pubSpendingBJJPoint
36
+ }), d = [[n(r.erc20TokenAddress, T) ? r : a.createFrom(r, { erc20TokenAddress: T }), u]], f = [[u]], h = {
41
37
  externalActionId: 0n,
42
- externalAddress: v,
38
+ externalAddress: i,
43
39
  externalActionMetadata: "0x00"
44
- }, C = p(w, c, [D], [-i.amount], N), T = await g(c, l, m[f], h), { zkCallData: k, circomData: j, dimData: M, commitmentValidationData: P } = await _(o.merkleTreeHinkalByChain[c], b, x, o.userKeys, S.externalActionId, S.externalAddress, S.externalActionMetadata, o.generateProofRemotely, T, O ?? t, c);
40
+ }, _ = p(S, s, [T], [-r.amount], j), { zkCallData: v, circomData: y, dimData: b, commitmentValidationData: x } = await g(o.merkleTreeHinkalByChain[s], d, f, o.userKeys, h.externalActionId, h.externalAddress, h.externalActionMetadata, o.generateProofRemotely, m, E ?? t, s);
45
41
  return {
46
- zkCallData: k,
47
- dimData: M,
48
- circomData: j,
49
- commitmentValidationData: P,
50
- adminData: C,
51
- recipientAddress: r,
52
- tronProofSignature: await d(E, k, M, j)
42
+ zkCallData: v,
43
+ dimData: b,
44
+ circomData: y,
45
+ commitmentValidationData: x,
46
+ adminData: _,
47
+ recipientAddress: e,
48
+ tronProofSignature: await l(w, v, b, y)
53
49
  };
54
50
  }));
55
- M.push(...i);
51
+ A.push(...i);
56
52
  }
57
- await y({
58
- id: x,
59
- chainId: c,
60
- hashedEthereumAddress: b,
61
- phase: s.BEFORE_SCHEDULE_WITHDRAW
53
+ await v({
54
+ id: y,
55
+ chainId: s,
56
+ hashedEthereumAddress: h,
57
+ phase: d.BEFORE_SCHEDULE_WITHDRAW
62
58
  });
63
- let P = await v(c, M, b, S, C, T);
64
- return await y({
65
- id: x,
66
- chainId: c,
67
- hashedEthereumAddress: b,
68
- phase: s.AFTER_SCHEDULE_WITHDRAW,
69
- scheduleId: P
70
- }), P;
71
- }, S = async (e, t, n, r, i, a, s, d, p, g = !0) => {
72
- let _ = f([t]), v = p ? l(p) : void 0, y = t.erc20TokenAddress, S = c(u(await e.getEthereumAddressByChain(_))), C = a ?? await m(_, y, [y], o.Transact, [], 10n), { userDepositedUtxos: w, statusId: T, depositTxHash: E } = await b(e, _, t, n, r, C, S, g);
59
+ let M = await _(s, A, h, b, x, C);
60
+ return await v({
61
+ id: y,
62
+ chainId: s,
63
+ hashedEthereumAddress: h,
64
+ phase: d.AFTER_SCHEDULE_WITHDRAW,
65
+ scheduleId: M
66
+ }), M;
67
+ }, x = async (e, t, n, r, i, a, l, d, p, g = !0) => {
68
+ let _ = f([t]), v = p ? s(p) : void 0, x = t.erc20TokenAddress, S = o(c(await e.getEthereumAddressByChain(_))), C = a ?? await m(_, x, [x], u.Transact, [], 10n), { userDepositedUtxos: w, statusId: T, depositTxHash: E } = await y(e, _, t, n, r, C, S, g);
73
69
  return await h(e, _, w), {
74
70
  depositTxHash: E,
75
- scheduleId: await x(e, _, t, w, n, C, S, T, i, s, d, v)
71
+ scheduleId: await b(e, _, t, w, C, S, T, i, l, d, v)
76
72
  };
77
73
  };
78
74
  //#endregion
79
- export { S as hinkalDepositAndWithdraw };
75
+ export { x as hinkalDepositAndWithdraw };
@@ -1 +1 @@
1
- const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const r=require(`../../functions/utils/tron.utils.cjs`),i=require(`../../functions/utils/getUtxosFromReceipt.utils.cjs`),a=require(`../../functions/utils/tx-confirmation.utils.cjs`),o=require(`../../functions/web3/functionCalls/transactCallDirect.cjs`),s=require(`../../functions/web3/functionCalls/transactCallDirectTron.cjs`),c=require(`../../API/deposit-and-withdraw-status-calls.cjs`),l=require(`./prepareDepositOnChainUtxosZkProof.cjs`);var u=async(u,d,f,p,m,h,g,_=!0)=>{let v=e.isTronLike(d),y=f.erc20TokenAddress,{zkCallData:b,circomData:x,dimData:S,totalAmount:C,utxoAmounts:w,hinkalWrapperAddress:T,hinkalWrapperABI:E,depositOnChainUtxosExternalActionAddress:D,depositOnChainUtxosExternalActionABI:O}=await l.prepareDepositOnChainUtxosZkProof(u,d,f,p,h),k=(await c.updateDepositAndWithdrawStatus({chainId:d,hashedEthereumAddress:g,phase:n.DepositAndWithdrawPhase.BEFORE_DEPOSIT})).id??void 0,A;if(v){let e=u.getTronWeb();A=await s.transactCallDirectTron(u,d,C,f,b,x,S,e.contract(O,r.evmHexToTronBase58Address(D)),e.contract(E,r.evmHexToTronBase58Address(T)),_)}else{let e=u.getContractWithSigner(d,t.ContractType.HinkalWrapper);A=(await o.transactCallDirect(u,d,C,f,b,x,S,u.getContractWithSigner(d,t.ContractType.DepositOnChainUtxos),e,_)).hash}if(!A)throw Error(`Deposit transaction hash not found`);let j=await a.waitForEthereumTransactionConfirmation(d,A);await c.safeUpdateDepositAndWithdrawStatus({id:k,chainId:d,hashedEthereumAddress:g,phase:n.DepositAndWithdrawPhase.AFTER_DEPOSIT,depositTxHash:A});let M=i.getOnChainUtxosFromReceipt(j,u,d,y);if(M.length===0)throw Error(`No UTXOs found in deposit transaction. Check contract address and ABI.`);let N=[],P=[...M];return m.forEach((e,t)=>{let n=w[t],r=P.find(e=>e.amount===n);if(!r)throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);N.push({recipientAddress:e,utxo:r});let i=P.indexOf(r);P.splice(i,1)}),{userDepositedUtxos:N,statusId:k,depositTxHash:A}};exports.hinkalDepositOnChainUtxos=u;
1
+ const e=require(`../../types/scheduled-transactions.types.cjs`);require(`../../types/index.cjs`);const t=require(`../../functions/utils/getRecipientInfoFromUserKeys.cjs`),n=require(`../../functions/utils/getUtxosFromReceipt.utils.cjs`),r=require(`../../functions/utils/tx-confirmation.utils.cjs`),i=require(`./hinkalProoflessDeposit.utils.cjs`),a=require(`./hinkalProoflessDeposit.cjs`),o=require(`../../API/deposit-and-withdraw-status-calls.cjs`);var s=async(s,c,l,u,d,f,p,m=!0)=>{let h=l.erc20TokenAddress,g=u.map(e=>e+f.flatFee),_=g.map(()=>l),v=g.map(()=>t.getStealthAddressStructureFromUserKeys(s.userKeys)),y=(await o.updateDepositAndWithdrawStatus({chainId:c,hashedEthereumAddress:p,phase:e.DepositAndWithdrawPhase.BEFORE_DEPOSIT})).id??void 0,b=await a.hinkalProoflessDeposit(s,_,g,v,i.getOwnRecipientEncryptionKeys(s.userKeys,g.length),!0);if(!b)throw Error(`Deposit transaction hash not found`);let x=await r.waitForEthereumTransactionConfirmation(c,b);await o.safeUpdateDepositAndWithdrawStatus({id:y,chainId:c,hashedEthereumAddress:p,phase:e.DepositAndWithdrawPhase.AFTER_DEPOSIT,depositTxHash:b});let S=n.getOnChainUtxosFromReceipt(x,s,c,h);if(S.length===0)throw Error(`No UTXOs found in deposit transaction. Check contract address and ABI.`);let C=[],w=[...S];return d.forEach((e,t)=>{let n=g[t],r=w.find(e=>e.amount===n);if(!r)throw Error(`Could not find newly created UTXO with amount ${n} for recipient ${e}.`);C.push({recipientAddress:e,utxo:r});let i=w.indexOf(r);w.splice(i,1)}),{userDepositedUtxos:C,statusId:y,depositTxHash:b}};exports.hinkalDepositOnChainUtxos=s;