@hinkal/common 0.3.2 → 0.3.4

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 (452) hide show
  1. package/README.md +16 -19
  2. package/common/src/API/API.cjs +1 -1
  3. package/common/src/API/API.d.ts +5 -5
  4. package/common/src/API/API.mjs +78 -78
  5. package/common/src/API/callRelayer.d.ts +3 -0
  6. package/common/src/API/enclaveUtxoCalls.cjs +1 -1
  7. package/common/src/API/enclaveUtxoCalls.d.ts +8 -7
  8. package/common/src/API/enclaveUtxoCalls.mjs +5 -3
  9. package/common/src/API/getOdosPriceForToken.cjs +1 -0
  10. package/common/src/API/getOdosPriceForToken.d.ts +1 -0
  11. package/common/src/API/getOdosPriceForToken.mjs +14 -0
  12. package/common/src/API/getWebsiteURL.d.ts +0 -1
  13. package/common/src/API/index.cjs +1 -1
  14. package/common/src/API/index.d.ts +0 -1
  15. package/common/src/API/index.mjs +1 -2
  16. package/common/src/API/rewardsUserCalls.cjs +1 -1
  17. package/common/src/API/rewardsUserCalls.d.ts +0 -2
  18. package/common/src/API/rewardsUserCalls.mjs +2 -3
  19. package/common/src/API/tenderly.api.cjs +1 -1
  20. package/common/src/API/tenderly.api.d.ts +5 -10
  21. package/common/src/API/tenderly.api.mjs +1 -1
  22. package/common/src/constants/addresses.constants.cjs +1 -1
  23. package/common/src/constants/addresses.constants.d.ts +4 -46
  24. package/common/src/constants/addresses.constants.mjs +19 -60
  25. package/common/src/constants/balance.constants.cjs +1 -0
  26. package/common/src/constants/balance.constants.d.ts +1 -0
  27. package/common/src/constants/balance.constants.mjs +4 -0
  28. package/common/src/constants/chains.constants.cjs +1 -1
  29. package/common/src/constants/chains.constants.d.ts +3 -1
  30. package/common/src/constants/chains.constants.mjs +117 -131
  31. package/common/src/constants/coingecko.constants.cjs +1 -1
  32. package/common/src/constants/coingecko.constants.d.ts +2 -0
  33. package/common/src/constants/coingecko.constants.mjs +1 -1
  34. package/common/src/constants/contracts.constants.cjs +1 -1
  35. package/common/src/constants/contracts.constants.d.ts +0 -109
  36. package/common/src/constants/contracts.constants.mjs +13 -22
  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 +1 -3
  39. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.cjs +1 -1
  40. package/common/src/constants/deploy-data/deploy-data-arcTestnet.json.mjs +6 -6
  41. package/common/src/constants/deploy-data/deploy-data-base.json.cjs +1 -1
  42. package/common/src/constants/deploy-data/deploy-data-base.json.mjs +1 -3
  43. package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.cjs +1 -0
  44. package/common/src/constants/deploy-data/deploy-data-bnbMainnet.json.mjs +10 -0
  45. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.cjs +1 -1
  46. package/common/src/constants/deploy-data/deploy-data-ethMainnet.json.mjs +1 -3
  47. package/common/src/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
  48. package/common/src/constants/deploy-data/deploy-data-localhost.json.mjs +0 -3
  49. package/common/src/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
  50. package/common/src/constants/deploy-data/deploy-data-optimism.json.mjs +6 -8
  51. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.cjs +1 -1
  52. package/common/src/constants/deploy-data/deploy-data-optimismTest.json.mjs +1 -4
  53. package/common/src/constants/deploy-data/deploy-data-polygon.json.cjs +1 -1
  54. package/common/src/constants/deploy-data/deploy-data-polygon.json.mjs +1 -3
  55. package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.cjs +1 -1
  56. package/common/src/constants/deploy-data/deploy-data-sepoliaTestnet.json.mjs +0 -1
  57. package/common/src/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
  58. package/common/src/constants/deploy-data/deploy-data-solana.json.mjs +2 -2
  59. package/common/src/constants/deploy-data/deploy-data-tempo.json.cjs +1 -1
  60. package/common/src/constants/deploy-data/deploy-data-tempo.json.mjs +6 -7
  61. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.cjs +1 -1
  62. package/common/src/constants/deploy-data/deploy-data-tronMainnet.json.mjs +2 -4
  63. package/common/src/constants/deploy-data/deploy-data-tronNile.json.cjs +1 -1
  64. package/common/src/constants/deploy-data/deploy-data-tronNile.json.mjs +2 -4
  65. package/common/src/constants/deploy-data/index.cjs +1 -1
  66. package/common/src/constants/deploy-data/index.d.ts +2 -1
  67. package/common/src/constants/deploy-data/index.mjs +16 -15
  68. package/common/src/constants/deploy-data/shared-deploy-data-solana.json.cjs +1 -1
  69. package/common/src/constants/deploy-data/shared-deploy-data-solana.json.mjs +1 -1
  70. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.cjs +1 -1
  71. package/common/src/constants/deploy-data/shared-deploy-data-tron.json.mjs +2 -35
  72. package/common/src/constants/events.constants.cjs +1 -1
  73. package/common/src/constants/events.constants.mjs +3 -2
  74. package/common/src/constants/fees.constants.cjs +1 -1
  75. package/common/src/constants/fees.constants.mjs +2 -2
  76. package/common/src/constants/index.cjs +1 -1
  77. package/common/src/constants/index.d.ts +0 -1
  78. package/common/src/constants/index.mjs +1 -0
  79. package/common/src/constants/protocol.constants.cjs +2 -2
  80. package/common/src/constants/protocol.constants.d.ts +3 -1
  81. package/common/src/constants/protocol.constants.mjs +2 -2
  82. package/common/src/constants/server.constants.cjs +1 -1
  83. package/common/src/constants/server.constants.d.ts +1 -2
  84. package/common/src/constants/server.constants.mjs +1 -2
  85. package/common/src/constants/tokens.constants.cjs +1 -1
  86. package/common/src/constants/tokens.constants.mjs +1 -1
  87. package/common/src/crypto/index.cjs +1 -1
  88. package/common/src/crypto/index.d.ts +0 -1
  89. package/common/src/crypto/index.mjs +0 -1
  90. package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
  91. package/common/src/data-structures/Hinkal/Hinkal.mjs +26 -22
  92. package/common/src/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  93. package/common/src/data-structures/Hinkal/handleAutoDepositBack.d.ts +1 -1
  94. package/common/src/data-structures/Hinkal/handleAutoDepositBack.mjs +36 -35
  95. package/common/src/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
  96. package/common/src/data-structures/Hinkal/hinkalActionReceive.mjs +3 -3
  97. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.cjs +1 -1
  98. package/common/src/data-structures/Hinkal/hinkalBridgePrivateToPrivate.mjs +60 -58
  99. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.cjs +1 -1
  100. package/common/src/data-structures/Hinkal/hinkalClaimUtxo.mjs +42 -47
  101. package/common/src/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  102. package/common/src/data-structures/Hinkal/hinkalDeposit.d.ts +1 -0
  103. package/common/src/data-structures/Hinkal/hinkalDeposit.mjs +50 -116
  104. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.cjs +1 -1
  105. package/common/src/data-structures/Hinkal/hinkalDepositAndBridge.mjs +102 -92
  106. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  107. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.d.ts +3 -2
  108. package/common/src/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +104 -59
  109. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
  110. package/common/src/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +4 -4
  111. package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.cjs +1 -1
  112. package/common/src/data-structures/Hinkal/hinkalNearDepositAndBridge.mjs +7 -3
  113. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  114. package/common/src/data-structures/Hinkal/hinkalPrivateWallet.mjs +51 -39
  115. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  116. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +1 -2
  117. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.mjs +53 -131
  118. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.cjs +1 -1
  119. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.d.ts +1 -1
  120. package/common/src/data-structures/Hinkal/hinkalProoflessDeposit.utils.mjs +29 -47
  121. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
  122. package/common/src/data-structures/Hinkal/hinkalProxyToPrivate.mjs +3 -3
  123. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  124. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.mjs +70 -45
  125. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  126. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +2 -2
  127. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.mjs +47 -45
  128. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  129. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +8 -4
  130. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +133 -81
  131. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.cjs +1 -1
  132. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.d.ts +1 -1
  133. package/common/src/data-structures/Hinkal/hinkalSolanaProoflessDeposit.mjs +16 -12
  134. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  135. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.d.ts +2 -2
  136. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +61 -54
  137. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  138. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +1 -1
  139. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  140. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.mjs +87 -51
  141. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  142. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.d.ts +1 -0
  143. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.mjs +95 -50
  144. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  145. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +60 -34
  146. package/common/src/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  147. package/common/src/data-structures/Hinkal/hinkalSwap.mjs +29 -32
  148. package/common/src/data-structures/Hinkal/hinkalTransact.cjs +1 -0
  149. package/common/src/data-structures/Hinkal/hinkalTransact.d.ts +3 -0
  150. package/common/src/data-structures/Hinkal/hinkalTransact.mjs +90 -0
  151. package/common/src/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  152. package/common/src/data-structures/Hinkal/hinkalTransfer.mjs +40 -45
  153. package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.cjs +1 -0
  154. package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.d.ts +8 -0
  155. package/common/src/data-structures/Hinkal/hinkalTronDepositToSelf.mjs +30 -0
  156. package/common/src/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  157. package/common/src/data-structures/Hinkal/hinkalWithdraw.mjs +35 -45
  158. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  159. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +167 -95
  160. package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.cjs +1 -0
  161. package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.d.ts +27 -0
  162. package/common/src/data-structures/Hinkal/prepareTronDepositToSelf.mjs +31 -0
  163. package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  164. package/common/src/data-structures/Hinkal/resetMerkleTrees.mjs +1 -0
  165. package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
  166. package/common/src/data-structures/IndexedDB/activity-db.mjs +34 -34
  167. package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -1
  168. package/common/src/data-structures/IndexedDB/signatures-db.mjs +11 -11
  169. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  170. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +11 -10
  171. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
  172. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +14 -14
  173. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  174. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +26 -26
  175. package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
  176. package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +15 -15
  177. package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.cjs +1 -1
  178. package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.mjs +12 -16
  179. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -1
  180. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.d.ts +1 -0
  181. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +8 -4
  182. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  183. package/common/src/data-structures/crypto-keys/decodeUTXO.d.ts +1 -0
  184. package/common/src/data-structures/crypto-keys/decodeUTXO.mjs +12 -12
  185. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  186. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.mjs +12 -12
  187. package/common/src/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -1
  188. package/common/src/data-structures/event-service/helpers/ClientEventHelper.mjs +6 -6
  189. package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
  190. package/common/src/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +27 -23
  191. package/common/src/data-structures/merkle-tree/MerkleTree.cjs +1 -1
  192. package/common/src/data-structures/merkle-tree/MerkleTree.d.ts +10 -0
  193. package/common/src/data-structures/merkle-tree/MerkleTree.mjs +9 -1
  194. package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.cjs +1 -1
  195. package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.d.ts +3 -0
  196. package/common/src/data-structures/private-balances/HinkalPrivateBalanceController.mjs +64 -54
  197. package/common/src/error-handling/error-codes.constants.cjs +1 -1
  198. package/common/src/error-handling/error-codes.constants.d.ts +6 -11
  199. package/common/src/error-handling/error-codes.constants.mjs +8 -13
  200. package/common/src/error-handling/get-error.message.cjs +1 -1
  201. package/common/src/error-handling/get-error.message.mjs +27 -14
  202. package/common/src/externalABIs/index.cjs +1 -1
  203. package/common/src/externalABIs/index.d.ts +1 -113
  204. package/common/src/externalABIs/index.mjs +2 -6
  205. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.cjs +1 -1
  206. package/common/src/functions/auto-deposit-back-helpers/select-gas-token.mjs +8 -8
  207. package/common/src/functions/index.cjs +1 -1
  208. package/common/src/functions/index.d.ts +0 -1
  209. package/common/src/functions/index.mjs +12 -15
  210. package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.cjs +1 -1
  211. package/common/src/functions/pre-transaction/calculateSolanaNullifierCount.mjs +39 -5
  212. package/common/src/functions/pre-transaction/getExternalSwapAddress.cjs +1 -1
  213. package/common/src/functions/pre-transaction/getExternalSwapAddress.mjs +2 -18
  214. package/common/src/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
  215. package/common/src/functions/pre-transaction/getSolanaCalldataHash.d.ts +1 -1
  216. package/common/src/functions/pre-transaction/getSolanaCalldataHash.mjs +11 -10
  217. package/common/src/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
  218. package/common/src/functions/pre-transaction/getVolatileTransferAmount.mjs +12 -12
  219. package/common/src/functions/pre-transaction/index.cjs +1 -1
  220. package/common/src/functions/pre-transaction/index.d.ts +1 -2
  221. package/common/src/functions/pre-transaction/index.mjs +1 -2
  222. package/common/src/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  223. package/common/src/functions/pre-transaction/outputUtxoProcessing.d.ts +1 -1
  224. package/common/src/functions/pre-transaction/outputUtxoProcessing.mjs +7 -8
  225. package/common/src/functions/pre-transaction/solana.cjs +1 -1
  226. package/common/src/functions/pre-transaction/solana.d.ts +13 -0
  227. package/common/src/functions/pre-transaction/solana.mjs +46 -22
  228. package/common/src/functions/pre-transaction/store-proof.cjs +1 -1
  229. package/common/src/functions/pre-transaction/store-proof.d.ts +1 -1
  230. package/common/src/functions/pre-transaction/store-proof.mjs +1 -0
  231. package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.cjs +1 -1
  232. package/common/src/functions/pre-transaction/waitForDepositedUtxosInMerkleTree.mjs +1 -1
  233. package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
  234. package/common/src/functions/private-wallet/emporium.helpers.mjs +12 -13
  235. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  236. package/common/src/functions/private-wallet/emporium.swap.helpers.d.ts +0 -1
  237. package/common/src/functions/private-wallet/emporium.swap.helpers.mjs +38 -80
  238. package/common/src/functions/private-wallet/index.cjs +1 -1
  239. package/common/src/functions/private-wallet/index.d.ts +0 -1
  240. package/common/src/functions/private-wallet/index.mjs +0 -1
  241. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  242. package/common/src/functions/snarkjs/common.snarkjs.d.ts +2 -2
  243. package/common/src/functions/snarkjs/common.snarkjs.mjs +89 -52
  244. package/common/src/functions/snarkjs/constant.cjs +1 -1
  245. package/common/src/functions/snarkjs/constant.d.ts +32 -0
  246. package/common/src/functions/snarkjs/constant.mjs +32 -0
  247. package/common/src/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  248. package/common/src/functions/snarkjs/constructGeneralZkProof.d.ts +1 -1
  249. package/common/src/functions/snarkjs/constructGeneralZkProof.mjs +78 -65
  250. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  251. package/common/src/functions/snarkjs/constructSolanaZkProof.d.ts +4 -1
  252. package/common/src/functions/snarkjs/constructSolanaZkProof.mjs +44 -39
  253. package/common/src/functions/snarkjs/constructTxEnclave.cjs +1 -0
  254. package/common/src/functions/snarkjs/constructTxEnclave.d.ts +32 -0
  255. package/common/src/functions/snarkjs/constructTxEnclave.mjs +162 -0
  256. package/common/src/functions/snarkjs/fetchTronInsertionSiblings.cjs +1 -0
  257. package/common/src/functions/snarkjs/fetchTronInsertionSiblings.d.ts +7 -0
  258. package/common/src/functions/snarkjs/fetchTronInsertionSiblings.mjs +13 -0
  259. package/common/src/functions/snarkjs/generateCircomData.cjs +1 -1
  260. package/common/src/functions/snarkjs/generateCircomData.d.ts +1 -1
  261. package/common/src/functions/snarkjs/generateCircomData.mjs +33 -27
  262. package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.cjs +1 -1
  263. package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.d.ts +1 -1
  264. package/common/src/functions/snarkjs/generateMainAndCommitmentZkProof.mjs +7 -7
  265. package/common/src/functions/snarkjs/generateZkProof.cjs +1 -1
  266. package/common/src/functions/snarkjs/generateZkProof.d.ts +1 -1
  267. package/common/src/functions/snarkjs/generateZkProof.mjs +9 -16
  268. package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
  269. package/common/src/functions/snarkjs/signedMessageHash.d.ts +11 -0
  270. package/common/src/functions/snarkjs/signedMessageHash.mjs +21 -3
  271. package/common/src/functions/snarkjs/verifySignedEnclaveResponse.cjs +1 -0
  272. package/common/src/functions/snarkjs/verifySignedEnclaveResponse.d.ts +1 -0
  273. package/common/src/functions/snarkjs/verifySignedEnclaveResponse.mjs +11 -0
  274. package/common/src/functions/utils/addresses.cjs +1 -1
  275. package/common/src/functions/utils/addresses.d.ts +1 -0
  276. package/common/src/functions/utils/addresses.mjs +6 -2
  277. package/common/src/functions/utils/buildClaimableDepositPlan.d.ts +2 -2
  278. package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.cjs +1 -1
  279. package/common/src/functions/utils/convertIntegrationProviderToExternalActionId.mjs +1 -1
  280. package/common/src/functions/utils/deposit-claimable.utils.cjs +1 -1
  281. package/common/src/functions/utils/deposit-claimable.utils.d.ts +1 -1
  282. package/common/src/functions/utils/deposit-claimable.utils.mjs +3 -1
  283. package/common/src/functions/utils/enclave-utxo-storage.cjs +1 -1
  284. package/common/src/functions/utils/enclave-utxo-storage.mjs +1 -1
  285. package/common/src/functions/utils/fees.utils.cjs +1 -1
  286. package/common/src/functions/utils/fees.utils.mjs +31 -31
  287. package/common/src/functions/utils/formatter.d.ts +1 -0
  288. package/common/src/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  289. package/common/src/functions/utils/getUtxosFromReceipt.utils.mjs +6 -6
  290. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  291. package/common/src/functions/utils/getUtxosFromReceiptSolana.mjs +11 -10
  292. package/common/src/functions/utils/index.cjs +1 -1
  293. package/common/src/functions/utils/index.d.ts +2 -2
  294. package/common/src/functions/utils/index.mjs +11 -10
  295. package/common/src/functions/utils/process.utils.cjs +1 -1
  296. package/common/src/functions/utils/process.utils.d.ts +0 -1
  297. package/common/src/functions/utils/process.utils.mjs +2 -11
  298. package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
  299. package/common/src/functions/utils/publicBalance.utils.mjs +2 -1
  300. package/common/src/functions/utils/transfer-claimable.utils.cjs +1 -1
  301. package/common/src/functions/utils/transfer-claimable.utils.mjs +2 -2
  302. package/common/src/functions/utils/tron.utils.cjs +1 -1
  303. package/common/src/functions/utils/tron.utils.d.ts +5 -14
  304. package/common/src/functions/utils/tron.utils.mjs +91 -127
  305. package/common/src/functions/utils/waasStamp.cjs +1 -0
  306. package/common/src/functions/utils/waasStamp.d.ts +5 -0
  307. package/common/src/functions/utils/waasStamp.mjs +2 -0
  308. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  309. package/common/src/functions/web3/events/getInputUtxoAndBalance.d.ts +3 -8
  310. package/common/src/functions/web3/events/getInputUtxoAndBalance.mjs +44 -48
  311. package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
  312. package/common/src/functions/web3/events/getInputUtxosEnclave.d.ts +4 -3
  313. package/common/src/functions/web3/events/getInputUtxosEnclave.mjs +34 -25
  314. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  315. package/common/src/functions/web3/events/getShieldedBalance.d.ts +1 -1
  316. package/common/src/functions/web3/events/getShieldedBalance.mjs +88 -76
  317. package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
  318. package/common/src/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +9 -6
  319. package/common/src/functions/web3/functionCalls/approveToken.cjs +1 -1
  320. package/common/src/functions/web3/functionCalls/approveToken.mjs +12 -12
  321. package/common/src/functions/web3/functionCalls/submitProof.cjs +1 -0
  322. package/common/src/functions/web3/functionCalls/submitProof.d.ts +5 -0
  323. package/common/src/functions/web3/functionCalls/submitProof.mjs +26 -0
  324. package/common/src/functions/web3/functionCalls/transactCallDirectTron.cjs +1 -1
  325. package/common/src/functions/web3/functionCalls/transactCallDirectTron.d.ts +7 -3
  326. package/common/src/functions/web3/functionCalls/transactCallDirectTron.mjs +81 -87
  327. package/common/src/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  328. package/common/src/functions/web3/functionCalls/transactCallRelayer.d.ts +6 -11
  329. package/common/src/functions/web3/functionCalls/transactCallRelayer.mjs +4 -2
  330. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.cjs +1 -1
  331. package/common/src/functions/web3/functionCalls/waitForErc20Approvals.mjs +6 -6
  332. package/common/src/functions/web3/getContractMetadata.cjs +1 -1
  333. package/common/src/functions/web3/getContractMetadata.mjs +1 -1
  334. package/common/src/functions/web3/getTokenHolder.cjs +1 -1
  335. package/common/src/functions/web3/getTokenHolder.mjs +3 -2
  336. package/common/src/functions/web3/index.cjs +1 -1
  337. package/common/src/functions/web3/index.d.ts +0 -3
  338. package/common/src/functions/web3/index.mjs +0 -3
  339. package/common/src/functions/web3/lifiAPI.cjs +1 -1
  340. package/common/src/functions/web3/lifiAPI.mjs +1 -1
  341. package/common/src/providers/TronProviderAdapter.cjs +1 -1
  342. package/common/src/providers/TronProviderAdapter.mjs +7 -1
  343. package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
  344. package/common/src/providers/WagmiProviderAdapter.mjs +5 -5
  345. package/common/src/types/activities.types.cjs +1 -1
  346. package/common/src/types/activities.types.d.ts +0 -9
  347. package/common/src/types/activities.types.mjs +1 -1
  348. package/common/src/types/admin.types.cjs +1 -1
  349. package/common/src/types/admin.types.d.ts +3 -1
  350. package/common/src/types/admin.types.mjs +1 -1
  351. package/common/src/types/bridging-tx.types.d.ts +8 -0
  352. package/common/src/types/cache.types.cjs +1 -1
  353. package/common/src/types/cache.types.d.ts +2 -1
  354. package/common/src/types/cache.types.mjs +1 -1
  355. package/common/src/types/circom-data.types.d.ts +6 -0
  356. package/common/src/types/commitments.types.d.ts +2 -0
  357. package/common/src/types/dashboard-transaction.types.d.ts +3 -0
  358. package/common/src/types/ethereum-network.types.cjs +1 -1
  359. package/common/src/types/ethereum-network.types.d.ts +6 -15
  360. package/common/src/types/ethereum-network.types.mjs +1 -1
  361. package/common/src/types/external-action.types.cjs +1 -1
  362. package/common/src/types/external-action.types.d.ts +2 -5
  363. package/common/src/types/external-action.types.mjs +1 -1
  364. package/common/src/types/hinkal.types.cjs +1 -1
  365. package/common/src/types/hinkal.types.d.ts +4 -7
  366. package/common/src/types/hinkal.types.mjs +1 -1
  367. package/common/src/types/index.cjs +1 -1
  368. package/common/src/types/index.d.ts +2 -0
  369. package/common/src/types/index.mjs +1 -0
  370. package/common/src/types/near-intents.types.d.ts +1 -0
  371. package/common/src/types/offscreen.types.cjs +1 -1
  372. package/common/src/types/offscreen.types.d.ts +0 -1
  373. package/common/src/types/offscreen.types.mjs +1 -1
  374. package/common/src/types/pay-activities.types.d.ts +3 -0
  375. package/common/src/types/remote-proof.types.d.ts +0 -6
  376. package/common/src/types/remote-tx-build.types.d.ts +242 -0
  377. package/common/src/types/scheduled-transactions.types.d.ts +3 -0
  378. package/common/src/types/solana.types.d.ts +7 -0
  379. package/common/src/types/tenderly.api.types.d.ts +70 -0
  380. package/common/src/types/transact.types.cjs +1 -0
  381. package/common/src/types/transact.types.d.ts +53 -0
  382. package/common/src/types/transact.types.mjs +6 -0
  383. package/common/src/webworker/{logError-uy41lNp1.js → logError-CxZzSALU.js} +1 -1
  384. package/common/src/webworker/package.json +12 -12
  385. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.cjs +1 -1
  386. package/common/src/webworker/snarkjsWorker/snarkjsWorkerLauncher.ts?worker&url.mjs +1 -1
  387. package/common/src/webworker/snarkjsWorkerNode.cjs +1 -1
  388. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  389. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  390. package/common/src/webworker/utxoWorkerNode.cjs +1 -1
  391. package/common/src/webworker/viteWorkerURL.constant.cjs +3 -3
  392. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  393. package/common/src/webworker/workerProxy-swwPYw6e.js +1 -0
  394. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  395. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  396. package/common/src/webworker/zkProofWorkerNode.cjs +1 -1
  397. package/index.cjs +1 -1
  398. package/index.mjs +1 -1
  399. package/internal/swapApi.cjs +1 -1
  400. package/internal/swapApi.d.ts +3 -3
  401. package/internal/swapApi.mjs +22 -25
  402. package/package.json +12 -12
  403. package/services/Hinkal.cjs +1 -1
  404. package/services/Hinkal.d.ts +3 -3
  405. package/services/Hinkal.mjs +7 -7
  406. package/types/IHinkal.d.ts +3 -3
  407. package/types/swap.types.d.ts +3 -20
  408. package/common/src/API/callOdosAPI.cjs +0 -1
  409. package/common/src/API/callOdosAPI.d.ts +0 -63
  410. package/common/src/API/callOdosAPI.mjs +0 -18
  411. package/common/src/API/callOneInchAPI.cjs +0 -1
  412. package/common/src/API/callOneInchAPI.d.ts +0 -24
  413. package/common/src/API/callOneInchAPI.mjs +0 -16
  414. package/common/src/constants/rewards.constants.d.ts +0 -2
  415. package/common/src/crypto/ecdh-dual-path.cjs +0 -1
  416. package/common/src/crypto/ecdh-dual-path.d.ts +0 -13
  417. package/common/src/crypto/ecdh-dual-path.mjs +0 -6
  418. package/common/src/externalABIs/IQuoterV2.json.cjs +0 -1
  419. package/common/src/externalABIs/IQuoterV2.json.mjs +0 -203
  420. package/common/src/externalABIs/ISwapRouter.json.cjs +0 -1
  421. package/common/src/externalABIs/ISwapRouter.json.mjs +0 -537
  422. package/common/src/externalABIs/IUniswapV3Factory.json.cjs +0 -1
  423. package/common/src/externalABIs/IUniswapV3Factory.json.mjs +0 -188
  424. package/common/src/externalABIs/IUniswapV3Pool.json.cjs +0 -1
  425. package/common/src/externalABIs/IUniswapV3Pool.json.mjs +0 -938
  426. package/common/src/externalABIs/UniswapV2PoolAbi.json.cjs +0 -1
  427. package/common/src/externalABIs/UniswapV2PoolAbi.json.mjs +0 -78
  428. package/common/src/functions/pre-transaction/interaction-to-action.cjs +0 -1
  429. package/common/src/functions/pre-transaction/interaction-to-action.d.ts +0 -2
  430. package/common/src/functions/pre-transaction/interaction-to-action.mjs +0 -1
  431. package/common/src/functions/pre-transaction/recipientUtxoProcessing.cjs +0 -1
  432. package/common/src/functions/pre-transaction/recipientUtxoProcessing.d.ts +0 -3
  433. package/common/src/functions/pre-transaction/recipientUtxoProcessing.mjs +0 -30
  434. package/common/src/functions/private-wallet/opProducer.cjs +0 -1
  435. package/common/src/functions/private-wallet/opProducer.d.ts +0 -5
  436. package/common/src/functions/private-wallet/opProducer.mjs +0 -3
  437. package/common/src/functions/snarkjs/generateZkProofEnclave.cjs +0 -1
  438. package/common/src/functions/snarkjs/generateZkProofEnclave.d.ts +0 -5
  439. package/common/src/functions/snarkjs/generateZkProofEnclave.mjs +0 -27
  440. package/common/src/functions/utils/get-signature-header.cjs +0 -1
  441. package/common/src/functions/utils/get-signature-header.d.ts +0 -5
  442. package/common/src/functions/utils/get-signature-header.mjs +0 -4
  443. package/common/src/functions/web3/odosAPI.cjs +0 -1
  444. package/common/src/functions/web3/odosAPI.d.ts +0 -5
  445. package/common/src/functions/web3/odosAPI.mjs +0 -35
  446. package/common/src/functions/web3/oneInchAPI.cjs +0 -1
  447. package/common/src/functions/web3/oneInchAPI.d.ts +0 -5
  448. package/common/src/functions/web3/oneInchAPI.mjs +0 -44
  449. package/common/src/functions/web3/uniswapAPI.cjs +0 -1
  450. package/common/src/functions/web3/uniswapAPI.d.ts +0 -16
  451. package/common/src/functions/web3/uniswapAPI.mjs +0 -60
  452. package/common/src/webworker/workerProxy-MheXtWa4.js +0 -1
@@ -3,9 +3,9 @@ import { SOLANA_NFT_INTERFACES as i, TokenType as a, solanaNativeAddress as o, z
3
3
  import { caseInsensitiveEqual as c, lowerCaseIncludes as l } from "../../functions/utils/caseInsensitive.utils.mjs";
4
4
  import { httpClient as u } from "../http/HttpClient.mjs";
5
5
  import "../http/index.mjs";
6
- import { Logger as d } from "../../error-handling/logger.mjs";
7
- import { StorageKeys as f } from "../../types/cache.types.mjs";
8
- import { API as p } from "../../API/API.mjs";
6
+ import { StorageKeys as d } from "../../types/cache.types.mjs";
7
+ import { API as f } from "../../API/API.mjs";
8
+ import { Logger as p } from "../../error-handling/logger.mjs";
9
9
  import { getStateKey as m } from "../../functions/utils/string.utils.mjs";
10
10
  import { tokenVisibilityStorage as h } from "./token-visibility-db.mjs";
11
11
  import { overlayTokensWithRegistryData as g } from "../../functions/utils/erc20tokenFunctions.mjs";
@@ -17,6 +17,7 @@ import { TOKEN_2022_PROGRAM_ID as S, TOKEN_PROGRAM_ID as C } from "@solana/spl-t
17
17
  var w = new class {
18
18
  fetchedTokens = {};
19
19
  ALCHEMY_URLS = {
20
+ [t.bnbMainnet]: "bnb-mainnet",
20
21
  [t.ethMainnet]: "eth-mainnet",
21
22
  [t.polygon]: "polygon-mainnet",
22
23
  [t.arbMainnet]: "arb-mainnet",
@@ -35,7 +36,7 @@ var w = new class {
35
36
  }
36
37
  async getPublicTokens(e, t) {
37
38
  let n = m(t, e);
38
- return g((await b(f.ALCHEMY_PUBLIC_TOKENS))?.[n] || [], e);
39
+ return g((await b(d.ALCHEMY_PUBLIC_TOKENS))?.[n] || [], e);
39
40
  }
40
41
  async getFetchedTokens(e, t) {
41
42
  let n = m(t, e);
@@ -47,8 +48,8 @@ var w = new class {
47
48
  async fetchAndUpdateSolanaTokens(e, t) {
48
49
  let n = m(e, t), [r, i] = await Promise.all([this.getSolanaTokenAddresses(t, e), this.getNFTAddresses(t, e)]), a = Array.from(new Set([...r, ...i]));
49
50
  if (!a.length) return;
50
- let o = (await p.tokensInfoCall(t, a)).filter((e) => !!e), s = await h.hideSpamsAndFetchHiddenTokensAddresses(t, o), c = o.filter((e) => !l(s, e.erc20TokenAddress));
51
- await x(f.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
51
+ let o = (await f.tokensInfoCall(t, a)).filter((e) => !!e), s = await h.hideSpamsAndFetchHiddenTokensAddresses(t, o), c = o.filter((e) => !l(s, e.erc20TokenAddress));
52
+ await x(d.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
52
53
  let t = {
53
54
  ...e,
54
55
  [n]: c
@@ -62,7 +63,7 @@ var w = new class {
62
63
  async fetchAndUpdateEVMTokens(e, t) {
63
64
  let n = m(e, t), r = await this.getEVMTokenAddresses(t, e), i = await this.getNFTTokens(t, e), o = i.map((e) => e.contractAddress), s = [...r, ...o];
64
65
  if (!s.length) return;
65
- let u = (await p.tokensInfoCall(t, s)).map((e, n) => {
66
+ let u = (await f.tokensInfoCall(t, s)).map((e, n) => {
66
67
  if (e) return e;
67
68
  let r = s[n], o = i.find((e) => c(e.contractAddress, r));
68
69
  return o && o.tokenIds && o.tokenIds.length > 0 && this.isWhitelistedNFT(r, t) ? {
@@ -74,11 +75,11 @@ var w = new class {
74
75
  nftTokenType: a.ERC721,
75
76
  tokenIds: o.tokenIds
76
77
  } : null;
77
- }).filter((e) => !!e), d = await h.hideSpamsAndFetchHiddenTokensAddresses(t, u), g = u.filter((e) => !l(d, e.erc20TokenAddress)).map((e) => ({
78
+ }).filter((e) => !!e), p = await h.hideSpamsAndFetchHiddenTokensAddresses(t, u), g = u.filter((e) => !l(p, e.erc20TokenAddress)).map((e) => ({
78
79
  ...e,
79
80
  tokenIds: i.find((t) => c(t.contractAddress, e.erc20TokenAddress))?.tokenIds
80
81
  }));
81
- await x(f.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
82
+ await x(d.ALCHEMY_PUBLIC_TOKENS, (e = {}) => {
82
83
  let t = {
83
84
  ...e,
84
85
  [n]: g
@@ -119,7 +120,7 @@ var w = new class {
119
120
  } while (r > 0);
120
121
  return e;
121
122
  } catch (e) {
122
- return d.error("Failed to fetch NFTs from DAS API", e), [];
123
+ return p.error("Failed to fetch NFTs from DAS API", e), [];
123
124
  }
124
125
  }
125
126
  async getEVMTokenAddresses(t, n) {
@@ -1 +1 @@
1
- const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/caseInsensitive.utils.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../../types/ethereum-network.types.cjs`),o=require(`../../types/cache.types.cjs`),s=require(`../../API/API.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/web3/getContractMetadata.cjs`);let d=require(`idb-keyval`),f=require(`axios`);f=e.__toESM(f);var p=class{API_BASE=`https://testnet.arcscan.app/api`;fetchedTokens={};async getPublicTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return(await(0,d.get)(o.StorageKeys.ARC_PUBLIC_TOKENS))?.[n]||[]}getFetchedTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return this.fetchedTokens[n]||[]}async fetchAndUpdatePublicTokens(e){let i=c.getStateKey(e,t.chainIds.arcTestnet),a=await this.getERC20TokenAddresses(e),u=await this.getNFTTokens(e),f=u.map(e=>e.contractAddress),p=[...a,...f];if(!p.length)return;let m=(await s.API.tokensInfoCall(t.chainIds.arcTestnet,p)).map((e,i)=>{if(e)return e;let a=p[i],o=u.find(e=>r.caseInsensitiveEqual(e.contractAddress,a));return o&&o.tokenIds&&o.tokenIds.length>0?{chainId:t.chainIds.arcTestnet,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:a,decimals:0,nftTokenType:n.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t.chainIds.arcTestnet,m),g=m.filter(e=>!r.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>r.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,d.update)(o.StorageKeys.ARC_PUBLIC_TOKENS,(e={})=>{let t={...e,[i]:g};return this.fetchedTokens=t,t})}async getERC20TokenAddresses(e){let n=[];try{let r=(await f.default.post(`${this.API_BASE}?module=account&action=tokentx&address=${e}`)).data;if(r.status===`1`&&r.result){let o=[...new Set(r.result.map(({contractAddress:e})=>e))];for(let r of o)try{let i=u.getContractWithFetcherByChainId(t.chainIds.arcTestnet,a.ContractType.ERC20Contract,r),o=BigInt(await i.balanceOf(e));o>0n&&n.push({contractAddress:r,tokenBalance:o.toString()})}catch(e){i.Logger.error(`Error fetching ARC testnet token balance:`,e)}}}catch(e){i.Logger.error(`Error fetching ARC testnet token transactions:`,e)}return n.filter(({tokenBalance:e})=>Number(e)!==0).map(({contractAddress:e})=>e)}async getNFTTokens(e){let t=`${this.API_BASE}/v2/addresses/${e}/nft?type=ERC-721,ERC-1155`,n=[],r;do{let e=r?`&${new URLSearchParams(r)}`:``,{data:i}=await f.default.get(`${t}${e}`),{items:a=[],next_page_params:o}=i;n.push(...a),r=o?{token_contract_address_hash:o.token_contract_address_hash,token_id:o.token_id,token_type:o.token_type}:void 0}while(r);let i=n.reduce((e,t)=>{let n=t.token.address_hash.toLowerCase(),r=t.id;return e.has(n)||e.set(n,[]),e.get(n)?.push(r),e},new Map);return Array.from(i.entries()).map(([e,t])=>({contractAddress:e,tokenIds:t}))}},m=new p;exports.ArcPublicTokensDB=p,exports.arcPublicTokensDB=m;
1
+ const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../constants/protocol.constants.cjs`),r=require(`../../functions/utils/caseInsensitive.utils.cjs`),i=require(`../../types/ethereum-network.types.cjs`),a=require(`../../types/cache.types.cjs`),o=require(`../../API/API.cjs`),s=require(`../../error-handling/logger.cjs`),c=require(`../../functions/utils/string.utils.cjs`),l=require(`./token-visibility-db.cjs`),u=require(`../../functions/web3/getContractMetadata.cjs`);let d=require(`idb-keyval`),f=require(`axios`);f=e.__toESM(f);var p=class{API_BASE=`https://testnet.arcscan.app/api`;fetchedTokens={};async getPublicTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return(await(0,d.get)(a.StorageKeys.ARC_PUBLIC_TOKENS))?.[n]||[]}getFetchedTokens(e){let n=c.getStateKey(e,t.chainIds.arcTestnet);return this.fetchedTokens[n]||[]}async fetchAndUpdatePublicTokens(e){let i=c.getStateKey(e,t.chainIds.arcTestnet),s=await this.getERC20TokenAddresses(e),u=await this.getNFTTokens(e),f=u.map(e=>e.contractAddress),p=[...s,...f];if(!p.length)return;let m=(await o.API.tokensInfoCall(t.chainIds.arcTestnet,p)).map((e,i)=>{if(e)return e;let a=p[i],o=u.find(e=>r.caseInsensitiveEqual(e.contractAddress,a));return o&&o.tokenIds&&o.tokenIds.length>0?{chainId:t.chainIds.arcTestnet,name:`Unknown NFT`,symbol:`NFT`,erc20TokenAddress:a,decimals:0,nftTokenType:n.TokenType.ERC721,tokenIds:o.tokenIds}:null}).filter(e=>!!e),h=await l.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(t.chainIds.arcTestnet,m),g=m.filter(e=>!r.lowerCaseIncludes(h,e.erc20TokenAddress)).map(e=>({...e,tokenIds:u.find(t=>r.caseInsensitiveEqual(t.contractAddress,e.erc20TokenAddress))?.tokenIds}));await(0,d.update)(a.StorageKeys.ARC_PUBLIC_TOKENS,(e={})=>{let t={...e,[i]:g};return this.fetchedTokens=t,t})}async getERC20TokenAddresses(e){let n=[];try{let r=(await f.default.post(`${this.API_BASE}?module=account&action=tokentx&address=${e}`)).data;if(r.status===`1`&&r.result){let a=[...new Set(r.result.map(({contractAddress:e})=>e))];for(let r of a)try{let a=u.getContractWithFetcherByChainId(t.chainIds.arcTestnet,i.ContractType.ERC20Contract,r),o=BigInt(await a.balanceOf(e));o>0n&&n.push({contractAddress:r,tokenBalance:o.toString()})}catch(e){s.Logger.error(`Error fetching ARC testnet token balance:`,e)}}}catch(e){s.Logger.error(`Error fetching ARC testnet token transactions:`,e)}return n.filter(({tokenBalance:e})=>Number(e)!==0).map(({contractAddress:e})=>e)}async getNFTTokens(e){let t=`${this.API_BASE}/v2/addresses/${e}/nft?type=ERC-721,ERC-1155`,n=[],r;do{let e=r?`&${new URLSearchParams(r)}`:``,{data:i}=await f.default.get(`${t}${e}`),{items:a=[],next_page_params:o}=i;n.push(...a),r=o?{token_contract_address_hash:o.token_contract_address_hash,token_id:o.token_id,token_type:o.token_type}:void 0}while(r);let i=n.reduce((e,t)=>{let n=t.token.address_hash.toLowerCase(),r=t.id;return e.has(n)||e.set(n,[]),e.get(n)?.push(r),e},new Map);return Array.from(i.entries()).map(([e,t])=>({contractAddress:e,tokenIds:t}))}},m=new p;exports.ArcPublicTokensDB=p,exports.arcPublicTokensDB=m;
@@ -1,10 +1,10 @@
1
1
  import { chainIds as e } from "../../constants/chains.constants.mjs";
2
2
  import { TokenType as t } from "../../constants/protocol.constants.mjs";
3
3
  import { caseInsensitiveEqual as n, lowerCaseIncludes as r } from "../../functions/utils/caseInsensitive.utils.mjs";
4
- import { Logger as i } from "../../error-handling/logger.mjs";
5
- import { ContractType as a } from "../../types/ethereum-network.types.mjs";
6
- import { StorageKeys as o } from "../../types/cache.types.mjs";
7
- import { API as s } from "../../API/API.mjs";
4
+ import { ContractType as i } from "../../types/ethereum-network.types.mjs";
5
+ import { StorageKeys as a } from "../../types/cache.types.mjs";
6
+ import { API as o } from "../../API/API.mjs";
7
+ import { Logger as s } from "../../error-handling/logger.mjs";
8
8
  import { getStateKey as c } from "../../functions/utils/string.utils.mjs";
9
9
  import { tokenVisibilityStorage as l } from "./token-visibility-db.mjs";
10
10
  import { getContractWithFetcherByChainId as u } from "../../functions/web3/getContractMetadata.mjs";
@@ -16,16 +16,16 @@ var m = class {
16
16
  fetchedTokens = {};
17
17
  async getPublicTokens(t) {
18
18
  let n = c(t, e.arcTestnet);
19
- return (await d(o.ARC_PUBLIC_TOKENS))?.[n] || [];
19
+ return (await d(a.ARC_PUBLIC_TOKENS))?.[n] || [];
20
20
  }
21
21
  getFetchedTokens(t) {
22
22
  let n = c(t, e.arcTestnet);
23
23
  return this.fetchedTokens[n] || [];
24
24
  }
25
25
  async fetchAndUpdatePublicTokens(i) {
26
- let a = c(i, e.arcTestnet), u = await this.getERC20TokenAddresses(i), d = await this.getNFTTokens(i), p = d.map((e) => e.contractAddress), m = [...u, ...p];
26
+ let s = c(i, e.arcTestnet), u = await this.getERC20TokenAddresses(i), d = await this.getNFTTokens(i), p = d.map((e) => e.contractAddress), m = [...u, ...p];
27
27
  if (!m.length) return;
28
- let h = (await s.tokensInfoCall(e.arcTestnet, m)).map((r, i) => {
28
+ let h = (await o.tokensInfoCall(e.arcTestnet, m)).map((r, i) => {
29
29
  if (r) return r;
30
30
  let a = m[i], o = d.find((e) => n(e.contractAddress, a));
31
31
  return o && o.tokenIds && o.tokenIds.length > 0 ? {
@@ -41,10 +41,10 @@ var m = class {
41
41
  ...e,
42
42
  tokenIds: d.find((t) => n(t.contractAddress, e.erc20TokenAddress))?.tokenIds
43
43
  }));
44
- await f(o.ARC_PUBLIC_TOKENS, (e = {}) => {
44
+ await f(a.ARC_PUBLIC_TOKENS, (e = {}) => {
45
45
  let t = {
46
46
  ...e,
47
- [a]: _
47
+ [s]: _
48
48
  };
49
49
  return this.fetchedTokens = t, t;
50
50
  });
@@ -54,19 +54,19 @@ var m = class {
54
54
  try {
55
55
  let r = (await p.post(`${this.API_BASE}?module=account&action=tokentx&address=${t}`)).data;
56
56
  if (r.status === "1" && r.result) {
57
- let o = [...new Set(r.result.map(({ contractAddress: e }) => e))];
58
- for (let r of o) try {
59
- let i = u(e.arcTestnet, a.ERC20Contract, r), o = BigInt(await i.balanceOf(t));
57
+ let a = [...new Set(r.result.map(({ contractAddress: e }) => e))];
58
+ for (let r of a) try {
59
+ let a = u(e.arcTestnet, i.ERC20Contract, r), o = BigInt(await a.balanceOf(t));
60
60
  o > 0n && n.push({
61
61
  contractAddress: r,
62
62
  tokenBalance: o.toString()
63
63
  });
64
64
  } catch (e) {
65
- i.error("Error fetching ARC testnet token balance:", e);
65
+ s.error("Error fetching ARC testnet token balance:", e);
66
66
  }
67
67
  }
68
68
  } catch (e) {
69
- i.error("Error fetching ARC testnet token transactions:", e);
69
+ s.error("Error fetching ARC testnet token transactions:", e);
70
70
  }
71
71
  return n.filter(({ tokenBalance: e }) => Number(e) !== 0).map(({ contractAddress: e }) => e);
72
72
  }
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../functions/utils/tron.utils.cjs`),i=require(`../../types/cache.types.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`),l=require(`../../functions/utils/create-provider.cjs`),u=require(`../../constants/events.constants.cjs`);require(`../../functions/index.cjs`);let d=require(`ethers`),f=require(`idb-keyval`),p=require(`async-mutex`);var m=new class{fetchedTokens={};updateMutexes={};transferEventTopic=d.ethers.id(`Transfer(address,address,uint256)`);chunkSize=2e3;getMutex(e){return this.updateMutexes[e]||(this.updateMutexes[e]=new p.Mutex),this.updateMutexes[e]}async getPublicTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData((await(0,f.get)(i.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[n]||[],e)}async getFetchedTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],e)}async fetchAndUpdatePublicTokens(e,r){let a=o.getStateKey(e,r);await this.getMutex(a).runExclusive(async()=>{try{let n=(await this.getPublicTokens(r,e)).map(e=>e.erc20TokenAddress),{toEvents:o,fromEvents:c,latestBlock:l}=await this.getEvents(e,r),u=[...o,...c],{erc20Tokens:d}=await this.fetchPublicTokens(u,r,n),p=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,d),m=d.filter(e=>!t.lowerCaseIncludes(p,e.erc20TokenAddress));await(0,f.update)(i.StorageKeys.EVENTS_PUBLIC_TOKENS,(e={})=>{let n=e[a]||[],r=n.map(e=>e.erc20TokenAddress),i=m.filter(e=>!t.lowerCaseIncludes(r,e.erc20TokenAddress));n.push(...i);let s=this.updateTokenIds(c,o,n),l={...e,[a]:s};return this.fetchedTokens=l,l}),l&&await this.updateLastProcessedBlock(r,e,l)}catch(e){n.Logger.error(`public tokens db error`,e)}})}async getLastProcessedBlock(e,t){return(await(0,f.get)(i.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{})[o.getStateKey(t,e)]||u.EVENTS_INITIAL_BLOCKS[e]}async updateLastProcessedBlock(e,t,n){await(0,f.update)(i.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(r={})=>{let i=o.getStateKey(t,e);return{...r,[i]:n}})}async getEvents(e,t){try{let n=l.createJsonRpcProvider(t),i=await this.getLastProcessedBlock(t,e)+1,a=await n.getBlockNumber(),o=r.addressToHexFormat(e),s=d.ethers.zeroPadValue(o,32),c=[],u=[];for(let e=i;e<=a;e+=this.chunkSize){let t=Math.min(e+this.chunkSize-1,a),r={topics:[this.transferEventTopic,null,s],fromBlock:e,toBlock:t},i={topics:[this.transferEventTopic,s,null],fromBlock:e,toBlock:t},[o,l]=await Promise.all([n.getLogs(r),n.getLogs(i)]);c.push(...o),u.push(...l)}return{toEvents:c,fromEvents:u,latestBlock:a}}catch(r){return n.Logger.error(`Error fetching events:`,r,`chainId`,t,`walletAddress`,e),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(e,t,n){let r=new Map;return n.forEach(e=>{if(c.isNFTToken(e)&&e.tokenIds){let t=e.erc20TokenAddress.toLowerCase();r.set(t,[...e.tokenIds])}}),t.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=BigInt(e.topics[3]).toString();r.has(t)||r.set(t,[]),r.get(t)?.push(n)}),e.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=r.get(t);if(n?.length){let t=BigInt(e.topics[3]).toString(),r=n.indexOf(t);r!==-1&&n.splice(r,1)}}),n.forEach(e=>{if(c.isNFTToken(e)){let t=e.erc20TokenAddress.toLowerCase(),n=r.get(t);e.tokenIds=n?.length&&n.length>0?n:void 0}}),n}async fetchPublicTokens(r,i,o){try{let n=[e.zeroAddress,...new Set(r.map(e=>e.address))].filter(e=>e&&!t.lowerCaseIncludes(o,e));return n.length?{erc20Tokens:(await a.API.tokensInfoCall(i,n)).filter(e=>!!e)}:{erc20Tokens:[]}}catch(e){return n.Logger.error(`Error fetching public tokens:`,e),{erc20Tokens:[]}}}};exports.eventsPublicTokensDB=m;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../functions/utils/tron.utils.cjs`),r=require(`../../types/cache.types.cjs`),i=require(`../../API/API.cjs`),a=require(`../../error-handling/logger.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`),l=require(`../../functions/utils/create-provider.cjs`),u=require(`../../constants/events.constants.cjs`);require(`../../functions/index.cjs`);let d=require(`ethers`),f=require(`idb-keyval`),p=require(`async-mutex`);var m=new class{fetchedTokens={};updateMutexes={};transferEventTopic=d.ethers.id(`Transfer(address,address,uint256)`);chunkSize=2e3;getMutex(e){return this.updateMutexes[e]||(this.updateMutexes[e]=new p.Mutex),this.updateMutexes[e]}async getPublicTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData((await(0,f.get)(r.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[n]||[],e)}async getFetchedTokens(e,t){let n=o.getStateKey(t,e);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],e)}async fetchAndUpdatePublicTokens(e,n){let i=o.getStateKey(e,n);await this.getMutex(i).runExclusive(async()=>{try{let a=(await this.getPublicTokens(n,e)).map(e=>e.erc20TokenAddress),{toEvents:o,fromEvents:c,latestBlock:l}=await this.getEvents(e,n),u=[...o,...c],{erc20Tokens:d}=await this.fetchPublicTokens(u,n,a),p=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,d),m=d.filter(e=>!t.lowerCaseIncludes(p,e.erc20TokenAddress));await(0,f.update)(r.StorageKeys.EVENTS_PUBLIC_TOKENS,(e={})=>{let n=e[i]||[],r=n.map(e=>e.erc20TokenAddress),a=m.filter(e=>!t.lowerCaseIncludes(r,e.erc20TokenAddress));n.push(...a);let s=this.updateTokenIds(c,o,n),l={...e,[i]:s};return this.fetchedTokens=l,l}),l&&await this.updateLastProcessedBlock(n,e,l)}catch(e){a.Logger.error(`public tokens db error`,e)}})}async getLastProcessedBlock(e,t){return(await(0,f.get)(r.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{})[o.getStateKey(t,e)]||u.EVENTS_INITIAL_BLOCKS[e]}async updateLastProcessedBlock(e,t,n){await(0,f.update)(r.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(r={})=>{let i=o.getStateKey(t,e);return{...r,[i]:n}})}async getEvents(e,t){try{let r=l.createJsonRpcProvider(t),i=await this.getLastProcessedBlock(t,e)+1,a=await r.getBlockNumber(),o=n.addressToHexFormat(e),s=d.ethers.zeroPadValue(o,32),c=[],u=[];for(let e=i;e<=a;e+=this.chunkSize){let t=Math.min(e+this.chunkSize-1,a),n={topics:[this.transferEventTopic,null,s],fromBlock:e,toBlock:t},i={topics:[this.transferEventTopic,s,null],fromBlock:e,toBlock:t},[o,l]=await Promise.all([r.getLogs(n),r.getLogs(i)]);c.push(...o),u.push(...l)}return{toEvents:c,fromEvents:u,latestBlock:a}}catch(n){return a.Logger.error(`Error fetching events:`,n,`chainId`,t,`walletAddress`,e),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(e,t,n){let r=new Map;return n.forEach(e=>{if(c.isNFTToken(e)&&e.tokenIds){let t=e.erc20TokenAddress.toLowerCase();r.set(t,[...e.tokenIds])}}),t.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=BigInt(e.topics[3]).toString();r.has(t)||r.set(t,[]),r.get(t)?.push(n)}),e.forEach(e=>{if(e.topics.length<=3)return;let t=e.address.toLowerCase(),n=r.get(t);if(n?.length){let t=BigInt(e.topics[3]).toString(),r=n.indexOf(t);r!==-1&&n.splice(r,1)}}),n.forEach(e=>{if(c.isNFTToken(e)){let t=e.erc20TokenAddress.toLowerCase(),n=r.get(t);e.tokenIds=n?.length&&n.length>0?n:void 0}}),n}async fetchPublicTokens(n,r,o){try{let a=[e.zeroAddress,...new Set(n.map(e=>e.address))].filter(e=>e&&!t.lowerCaseIncludes(o,e));return a.length?{erc20Tokens:(await i.API.tokensInfoCall(r,a)).filter(e=>!!e)}:{erc20Tokens:[]}}catch(e){return a.Logger.error(`Error fetching public tokens:`,e),{erc20Tokens:[]}}}};exports.eventsPublicTokensDB=m;
@@ -1,9 +1,9 @@
1
1
  import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
2
2
  import { lowerCaseIncludes as t } from "../../functions/utils/caseInsensitive.utils.mjs";
3
- import { Logger as n } from "../../error-handling/logger.mjs";
4
- import { addressToHexFormat as r } from "../../functions/utils/tron.utils.mjs";
5
- import { StorageKeys as i } from "../../types/cache.types.mjs";
6
- import { API as a } from "../../API/API.mjs";
3
+ import { addressToHexFormat as n } from "../../functions/utils/tron.utils.mjs";
4
+ import { StorageKeys as r } from "../../types/cache.types.mjs";
5
+ import { API as i } from "../../API/API.mjs";
6
+ import { Logger as a } from "../../error-handling/logger.mjs";
7
7
  import { getStateKey as o } from "../../functions/utils/string.utils.mjs";
8
8
  import { tokenVisibilityStorage as s } from "./token-visibility-db.mjs";
9
9
  import { isNFTToken as c, overlayTokensWithRegistryData as l } from "../../functions/utils/erc20tokenFunctions.mjs";
@@ -23,36 +23,36 @@ var g = new class {
23
23
  }
24
24
  async getPublicTokens(e, t) {
25
25
  let n = o(t, e);
26
- return l((await p(i.EVENTS_PUBLIC_TOKENS))?.[n] || [], e);
26
+ return l((await p(r.EVENTS_PUBLIC_TOKENS))?.[n] || [], e);
27
27
  }
28
28
  async getFetchedTokens(e, t) {
29
29
  let n = o(t, e);
30
30
  return l(this.fetchedTokens[n] || [], e);
31
31
  }
32
- async fetchAndUpdatePublicTokens(e, r) {
33
- let a = o(e, r);
34
- await this.getMutex(a).runExclusive(async () => {
32
+ async fetchAndUpdatePublicTokens(e, n) {
33
+ let i = o(e, n);
34
+ await this.getMutex(i).runExclusive(async () => {
35
35
  try {
36
- let n = (await this.getPublicTokens(r, e)).map((e) => e.erc20TokenAddress), { toEvents: o, fromEvents: c, latestBlock: l } = await this.getEvents(e, r), u = [...o, ...c], { erc20Tokens: d } = await this.fetchPublicTokens(u, r, n), f = await s.hideSpamsAndFetchHiddenTokensAddresses(r, d), p = d.filter((e) => !t(f, e.erc20TokenAddress));
37
- await m(i.EVENTS_PUBLIC_TOKENS, (e = {}) => {
38
- let n = e[a] || [], r = n.map((e) => e.erc20TokenAddress), i = p.filter((e) => !t(r, e.erc20TokenAddress));
39
- n.push(...i);
36
+ let a = (await this.getPublicTokens(n, e)).map((e) => e.erc20TokenAddress), { toEvents: o, fromEvents: c, latestBlock: l } = await this.getEvents(e, n), u = [...o, ...c], { erc20Tokens: d } = await this.fetchPublicTokens(u, n, a), f = await s.hideSpamsAndFetchHiddenTokensAddresses(n, d), p = d.filter((e) => !t(f, e.erc20TokenAddress));
37
+ await m(r.EVENTS_PUBLIC_TOKENS, (e = {}) => {
38
+ let n = e[i] || [], r = n.map((e) => e.erc20TokenAddress), a = p.filter((e) => !t(r, e.erc20TokenAddress));
39
+ n.push(...a);
40
40
  let s = this.updateTokenIds(c, o, n), l = {
41
41
  ...e,
42
- [a]: s
42
+ [i]: s
43
43
  };
44
44
  return this.fetchedTokens = l, l;
45
- }), l && await this.updateLastProcessedBlock(r, e, l);
45
+ }), l && await this.updateLastProcessedBlock(n, e, l);
46
46
  } catch (e) {
47
- n.error("public tokens db error", e);
47
+ a.error("public tokens db error", e);
48
48
  }
49
49
  });
50
50
  }
51
51
  async getLastProcessedBlock(e, t) {
52
- return (await p(i.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {})[o(t, e)] || d[e];
52
+ return (await p(r.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {})[o(t, e)] || d[e];
53
53
  }
54
54
  async updateLastProcessedBlock(e, t, n) {
55
- await m(i.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (r = {}) => {
55
+ await m(r.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (r = {}) => {
56
56
  let i = o(t, e);
57
57
  return {
58
58
  ...r,
@@ -62,9 +62,9 @@ var g = new class {
62
62
  }
63
63
  async getEvents(e, t) {
64
64
  try {
65
- let n = u(t), i = await this.getLastProcessedBlock(t, e) + 1, a = await n.getBlockNumber(), o = r(e), s = f.zeroPadValue(o, 32), c = [], l = [];
65
+ let r = u(t), i = await this.getLastProcessedBlock(t, e) + 1, a = await r.getBlockNumber(), o = n(e), s = f.zeroPadValue(o, 32), c = [], l = [];
66
66
  for (let e = i; e <= a; e += this.chunkSize) {
67
- let t = Math.min(e + this.chunkSize - 1, a), r = {
67
+ let t = Math.min(e + this.chunkSize - 1, a), n = {
68
68
  topics: [
69
69
  this.transferEventTopic,
70
70
  null,
@@ -80,7 +80,7 @@ var g = new class {
80
80
  ],
81
81
  fromBlock: e,
82
82
  toBlock: t
83
- }, [o, u] = await Promise.all([n.getLogs(r), n.getLogs(i)]);
83
+ }, [o, u] = await Promise.all([r.getLogs(n), r.getLogs(i)]);
84
84
  c.push(...o), l.push(...u);
85
85
  }
86
86
  return {
@@ -88,8 +88,8 @@ var g = new class {
88
88
  fromEvents: l,
89
89
  latestBlock: a
90
90
  };
91
- } catch (r) {
92
- return n.error("Error fetching events:", r, "chainId", t, "walletAddress", e), {
91
+ } catch (n) {
92
+ return a.error("Error fetching events:", n, "chainId", t, "walletAddress", e), {
93
93
  toEvents: [],
94
94
  fromEvents: [],
95
95
  latestBlock: void 0
@@ -121,12 +121,12 @@ var g = new class {
121
121
  }
122
122
  }), n;
123
123
  }
124
- async fetchPublicTokens(r, i, o) {
124
+ async fetchPublicTokens(n, r, o) {
125
125
  try {
126
- let n = [e, ...new Set(r.map((e) => e.address))].filter((e) => e && !t(o, e));
127
- return n.length ? { erc20Tokens: (await a.tokensInfoCall(i, n)).filter((e) => !!e) } : { erc20Tokens: [] };
126
+ let a = [e, ...new Set(n.map((e) => e.address))].filter((e) => e && !t(o, e));
127
+ return a.length ? { erc20Tokens: (await i.tokensInfoCall(r, a)).filter((e) => !!e) } : { erc20Tokens: [] };
128
128
  } catch (e) {
129
- return n.error("Error fetching public tokens:", e), { erc20Tokens: [] };
129
+ return a.error("Error fetching public tokens:", e), { erc20Tokens: [] };
130
130
  }
131
131
  }
132
132
  }();
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../../types/cache.types.cjs`),r=require(`../../API/API.cjs`),i=require(`../../functions/utils/string.utils.cjs`),a=require(`./token-visibility-db.cjs`);let o=require(`idb-keyval`);var s=class{fetchedTokens={};initalFetched=!1;async updateFetchedTokens(){let e=await(0,o.get)(n.StorageKeys.PRIVATE_TOKENS);this.fetchedTokens=e??{},this.initalFetched=!0}async getPrivateTokens(e,t){let r=i.getStateKey(t,e);return(await(0,o.get)(n.StorageKeys.PRIVATE_TOKENS))?.[r]||[]}async fetchPrivateTokens(n,i,a){try{let t=[...new Set(i)].filter(t=>t&&!e.lowerCaseIncludes(a,t));if(!t.length)return[];let o=(await r.API.tokensInfoCall(n,t)).filter(e=>!!e),s=new Map;return o.forEach(e=>{s.set(e.erc20TokenAddress.toLowerCase(),e)}),Array.from(s.values())}catch(e){return t.Logger.error(`Error fetching private tokens:`,e),[]}}async fetchAndUpdatePrivateTokens(t,r,s,c){let l=(await this.getPrivateTokens(r,s)).map(e=>e.erc20TokenAddress),u=c??await this.fetchPrivateTokens(r,t,l),d=await a.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,u),f=i.getStateKey(s,r);await(0,o.update)(n.StorageKeys.PRIVATE_TOKENS,(t={})=>{let n=t?.[f]||[],r=n.map(e=>e.erc20TokenAddress),i=u.filter(t=>!e.lowerCaseIncludes(r,t.erc20TokenAddress));n.push(...i);let a=n.filter(t=>!e.lowerCaseIncludes(d,t.erc20TokenAddress)),o={...t,[f]:a};return this.fetchedTokens=o,o})}getFetchedTokens(e,t){let n=i.getStateKey(t,e);return this.fetchedTokens[n]||[]}},c=new s;exports.PrivateTokensDB=s,exports.privateTokensDB=c;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../API/API.cjs`),r=require(`../../error-handling/logger.cjs`),i=require(`../../functions/utils/string.utils.cjs`),a=require(`./token-visibility-db.cjs`);let o=require(`idb-keyval`);var s=class{fetchedTokens={};initalFetched=!1;async updateFetchedTokens(){let e=await(0,o.get)(t.StorageKeys.PRIVATE_TOKENS);this.fetchedTokens=e??{},this.initalFetched=!0}async getPrivateTokens(e,n){let r=i.getStateKey(n,e);return(await(0,o.get)(t.StorageKeys.PRIVATE_TOKENS))?.[r]||[]}async fetchPrivateTokens(t,i,a){try{let r=[...new Set(i)].filter(t=>t&&!e.lowerCaseIncludes(a,t));if(!r.length)return[];let o=(await n.API.tokensInfoCall(t,r)).filter(e=>!!e),s=new Map;return o.forEach(e=>{s.set(e.erc20TokenAddress.toLowerCase(),e)}),Array.from(s.values())}catch(e){return r.Logger.error(`Error fetching private tokens:`,e),[]}}async fetchAndUpdatePrivateTokens(n,r,s,c){let l=(await this.getPrivateTokens(r,s)).map(e=>e.erc20TokenAddress),u=c??await this.fetchPrivateTokens(r,n,l),d=await a.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,u),f=i.getStateKey(s,r);await(0,o.update)(t.StorageKeys.PRIVATE_TOKENS,(t={})=>{let n=t?.[f]||[],r=n.map(e=>e.erc20TokenAddress),i=u.filter(t=>!e.lowerCaseIncludes(r,t.erc20TokenAddress));n.push(...i);let a=n.filter(t=>!e.lowerCaseIncludes(d,t.erc20TokenAddress)),o={...t,[f]:a};return this.fetchedTokens=o,o})}getFetchedTokens(e,t){let n=i.getStateKey(t,e);return this.fetchedTokens[n]||[]}},c=new s;exports.PrivateTokensDB=s,exports.privateTokensDB=c;
@@ -1,7 +1,7 @@
1
1
  import { lowerCaseIncludes as e } from "../../functions/utils/caseInsensitive.utils.mjs";
2
- import { Logger as t } from "../../error-handling/logger.mjs";
3
- import { StorageKeys as n } from "../../types/cache.types.mjs";
4
- import { API as r } from "../../API/API.mjs";
2
+ import { StorageKeys as t } from "../../types/cache.types.mjs";
3
+ import { API as n } from "../../API/API.mjs";
4
+ import { Logger as r } from "../../error-handling/logger.mjs";
5
5
  import { getStateKey as i } from "../../functions/utils/string.utils.mjs";
6
6
  import { tokenVisibilityStorage as a } from "./token-visibility-db.mjs";
7
7
  import { get as o, update as s } from "idb-keyval";
@@ -10,28 +10,28 @@ var c = class {
10
10
  fetchedTokens = {};
11
11
  initalFetched = !1;
12
12
  async updateFetchedTokens() {
13
- let e = await o(n.PRIVATE_TOKENS);
13
+ let e = await o(t.PRIVATE_TOKENS);
14
14
  this.fetchedTokens = e ?? {}, this.initalFetched = !0;
15
15
  }
16
- async getPrivateTokens(e, t) {
17
- let r = i(t, e);
18
- return (await o(n.PRIVATE_TOKENS))?.[r] || [];
16
+ async getPrivateTokens(e, n) {
17
+ let r = i(n, e);
18
+ return (await o(t.PRIVATE_TOKENS))?.[r] || [];
19
19
  }
20
- async fetchPrivateTokens(n, i, a) {
20
+ async fetchPrivateTokens(t, i, a) {
21
21
  try {
22
- let t = [...new Set(i)].filter((t) => t && !e(a, t));
23
- if (!t.length) return [];
24
- let o = (await r.tokensInfoCall(n, t)).filter((e) => !!e), s = /* @__PURE__ */ new Map();
22
+ let r = [...new Set(i)].filter((t) => t && !e(a, t));
23
+ if (!r.length) return [];
24
+ let o = (await n.tokensInfoCall(t, r)).filter((e) => !!e), s = /* @__PURE__ */ new Map();
25
25
  return o.forEach((e) => {
26
26
  s.set(e.erc20TokenAddress.toLowerCase(), e);
27
27
  }), Array.from(s.values());
28
28
  } catch (e) {
29
- return t.error("Error fetching private tokens:", e), [];
29
+ return r.error("Error fetching private tokens:", e), [];
30
30
  }
31
31
  }
32
- async fetchAndUpdatePrivateTokens(t, r, o, c) {
33
- let l = (await this.getPrivateTokens(r, o)).map((e) => e.erc20TokenAddress), u = c ?? await this.fetchPrivateTokens(r, t, l), d = await a.hideSpamsAndFetchHiddenTokensAddresses(r, u), f = i(o, r);
34
- await s(n.PRIVATE_TOKENS, (t = {}) => {
32
+ async fetchAndUpdatePrivateTokens(n, r, o, c) {
33
+ let l = (await this.getPrivateTokens(r, o)).map((e) => e.erc20TokenAddress), u = c ?? await this.fetchPrivateTokens(r, n, l), d = await a.hideSpamsAndFetchHiddenTokensAddresses(r, u), f = i(o, r);
34
+ await s(t.PRIVATE_TOKENS, (t = {}) => {
35
35
  let n = t?.[f] || [], r = n.map((e) => e.erc20TokenAddress), i = u.filter((t) => !e(r, t.erc20TokenAddress));
36
36
  n.push(...i);
37
37
  let a = n.filter((t) => !e(d, t.erc20TokenAddress)), o = {
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../API/API.cjs`),r=require(`../../functions/utils/string.utils.cjs`),i=require(`./token-visibility-db.cjs`),a=require(`../../functions/utils/erc20tokenFunctions.cjs`),o=require(`../../functions/utils/publicBalance.utils.cjs`);let s=require(`idb-keyval`);var c=class{fetchedTokens={};async getPublicTokens(e,n){let i=r.getStateKey(e,n);return a.overlayTokensWithRegistryData((await(0,s.get)(t.StorageKeys.TEMPO_PUBLIC_TOKENS))?.[i]||[],n)}async getFetchedTokens(e,t){let n=r.getStateKey(e,t);return a.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(a,o){let c=r.getStateKey(a,o),l=await this.getHeldTokenAddresses(a,o);if(!l.length)return;let u=(await n.API.tokensInfoCall(o,l)).filter(e=>!!e),d=await i.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(o,u),f=u.filter(t=>!e.lowerCaseIncludes(d,t.erc20TokenAddress));await(0,s.update)(t.StorageKeys.TEMPO_PUBLIC_TOKENS,(e={})=>{let t={...e,[c]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(e,t){let n=await a.getErc20TokensForChainAPI(t),r=await Promise.all(n.map(async n=>{let r=await o.getPublicBalanceByTokenAddress(t,e,n.erc20TokenAddress);return r&&r>0n?n.erc20TokenAddress:null}));return Array.from(new Set(r.filter(e=>!!e)))}},l=new c;exports.TempoPublicTokensDB=c,exports.tempoPublicTokensDB=l;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../functions/utils/caseInsensitive.utils.cjs`),t=require(`../../types/cache.types.cjs`),n=require(`../../API/API.cjs`),r=require(`../../functions/utils/string.utils.cjs`),i=require(`./token-visibility-db.cjs`),a=require(`../../functions/utils/erc20tokenFunctions.cjs`);let o=require(`idb-keyval`);var s=class{fetchedTokens={};async getPublicTokens(e,n){let i=r.getStateKey(e,n);return a.overlayTokensWithRegistryData((await(0,o.get)(t.StorageKeys.TEMPO_PUBLIC_TOKENS))?.[i]||[],n)}async getFetchedTokens(e,t){let n=r.getStateKey(e,t);return a.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(a,s){let c=r.getStateKey(a,s),l=await this.getHeldTokenAddresses(s);if(!l.length)return;let u=(await n.API.tokensInfoCall(s,l)).filter(e=>!!e),d=await i.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(s,u),f=u.filter(t=>!e.lowerCaseIncludes(d,t.erc20TokenAddress));await(0,o.update)(t.StorageKeys.TEMPO_PUBLIC_TOKENS,(e={})=>{let t={...e,[c]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(e){let t=await a.getErc20TokensForChainAPI(e);return Array.from(new Set(t.map(({erc20TokenAddress:e})=>e)))}},c=new s;exports.TempoPublicTokensDB=s,exports.tempoPublicTokensDB=c;
@@ -4,24 +4,23 @@ import { API as n } from "../../API/API.mjs";
4
4
  import { getStateKey as r } from "../../functions/utils/string.utils.mjs";
5
5
  import { tokenVisibilityStorage as i } from "./token-visibility-db.mjs";
6
6
  import { getErc20TokensForChainAPI as a, overlayTokensWithRegistryData as o } from "../../functions/utils/erc20tokenFunctions.mjs";
7
- import { getPublicBalanceByTokenAddress as s } from "../../functions/utils/publicBalance.utils.mjs";
8
- import { get as c, update as l } from "idb-keyval";
7
+ import { get as s, update as c } from "idb-keyval";
9
8
  //#region libs/shared/common/src/data-structures/TokenDBs/TempoPublicTokensDB.ts
10
- var u = class {
9
+ var l = class {
11
10
  fetchedTokens = {};
12
11
  async getPublicTokens(e, n) {
13
12
  let i = r(e, n);
14
- return o((await c(t.TEMPO_PUBLIC_TOKENS))?.[i] || [], n);
13
+ return o((await s(t.TEMPO_PUBLIC_TOKENS))?.[i] || [], n);
15
14
  }
16
15
  async getFetchedTokens(e, t) {
17
16
  let n = r(e, t);
18
17
  return o(this.fetchedTokens[n] || [], t);
19
18
  }
20
19
  async fetchAndUpdatePublicTokens(a, o) {
21
- let s = r(a, o), c = await this.getHeldTokenAddresses(a, o);
22
- if (!c.length) return;
23
- let u = (await n.tokensInfoCall(o, c)).filter((e) => !!e), d = await i.hideSpamsAndFetchHiddenTokensAddresses(o, u), f = u.filter((t) => !e(d, t.erc20TokenAddress));
24
- await l(t.TEMPO_PUBLIC_TOKENS, (e = {}) => {
20
+ let s = r(a, o), l = await this.getHeldTokenAddresses(o);
21
+ if (!l.length) return;
22
+ let u = (await n.tokensInfoCall(o, l)).filter((e) => !!e), d = await i.hideSpamsAndFetchHiddenTokensAddresses(o, u), f = u.filter((t) => !e(d, t.erc20TokenAddress));
23
+ await c(t.TEMPO_PUBLIC_TOKENS, (e = {}) => {
25
24
  let t = {
26
25
  ...e,
27
26
  [s]: f
@@ -29,13 +28,10 @@ var u = class {
29
28
  return this.fetchedTokens = t, t;
30
29
  });
31
30
  }
32
- async getHeldTokenAddresses(e, t) {
33
- let n = await a(t), r = await Promise.all(n.map(async (n) => {
34
- let r = await s(t, e, n.erc20TokenAddress);
35
- return r && r > 0n ? n.erc20TokenAddress : null;
36
- }));
37
- return Array.from(new Set(r.filter((e) => !!e)));
31
+ async getHeldTokenAddresses(e) {
32
+ let t = await a(e);
33
+ return Array.from(new Set(t.map(({ erc20TokenAddress: e }) => e)));
38
34
  }
39
- }, d = new u();
35
+ }, u = new l();
40
36
  //#endregion
41
- export { u as TempoPublicTokensDB, d as tempoPublicTokensDB };
37
+ export { l as TempoPublicTokensDB, u as tempoPublicTokensDB };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const r=require(`../../functions/utils/tron.utils.cjs`),i=require(`../../types/cache.types.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`);let l=require(`idb-keyval`);var u=class{fetchedTokens={};async getPublicTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData((await(0,l.get)(i.StorageKeys.TRON_PUBLIC_TOKENS))?.[n]||[],t)}async getFetchedTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(e,n){let r=o.getStateKey(e,n),c=await this.getHeldTokenAddresses(e,n);if(!c.length)return;let u=(await a.API.tokensInfoCall(n,c)).filter(e=>!!e),d=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,u),f=u.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,l.update)(i.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[r]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,i){let a=r.toTronBase58IfHex(t),o=`${r.getTronWalletRpcUrl(i)}/v1/accounts/${a}`,s=(await n.httpClient.get(o))?.data?.[0];if(!s)return[];let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(r.addressToHexFormat(e))})}),Array.from(new Set(c))}},d=new u;exports.TronPublicTokensDB=u,exports.tronPublicTokensDB=d;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const r=require(`../../functions/utils/tron.utils.cjs`),i=require(`../../types/cache.types.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`);let l=require(`idb-keyval`);var u=200,d=class{fetchedTokens={};async getPublicTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData((await(0,l.get)(i.StorageKeys.TRON_PUBLIC_TOKENS))?.[n]||[],t)}async getFetchedTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(e,n){let r=o.getStateKey(e,n),c=await this.getHeldTokenAddresses(e,n);if(!c.length)return;let u=(await a.API.tokensInfoCall(n,c)).filter(e=>!!e),d=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,u),f=u.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,l.update)(i.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[r]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,i){let a=r.toTronBase58IfHex(t),o=`${r.getTronWalletRpcUrl(i)}/v1/accounts/${a}`,s=(await n.httpClient.get(o))?.data?.[0];if(!s)return this.getTokenAddressesFromTransferHistory(a,i);let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(r.addressToHexFormat(e))})}),Array.from(new Set(c))}async getTokenAddressesFromTransferHistory(e,t){let i=`${r.getTronWalletRpcUrl(t)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${u}`,a=((await n.httpClient.get(i))?.data??[]).map(e=>e.token_info?.address).filter(e=>!!e).map(r.addressToHexFormat);return Array.from(new Set(a))}},f=new d;exports.TronPublicTokensDB=d,exports.tronPublicTokensDB=f;
@@ -5,5 +5,6 @@ export declare class TronPublicTokensDB {
5
5
  getFetchedTokens(walletAddress: string, chainId: number): Promise<ERC20Token[]>;
6
6
  fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
7
7
  private getHeldTokenAddresses;
8
+ private getTokenAddressesFromTransferHistory;
8
9
  }
9
10
  export declare const tronPublicTokensDB: TronPublicTokensDB;
@@ -10,7 +10,7 @@ import { tokenVisibilityStorage as l } from "./token-visibility-db.mjs";
10
10
  import { overlayTokensWithRegistryData as u } from "../../functions/utils/erc20tokenFunctions.mjs";
11
11
  import { get as d, update as f } from "idb-keyval";
12
12
  //#region libs/shared/common/src/data-structures/TokenDBs/TronPublicTokensDB.ts
13
- var p = class {
13
+ var p = 200, m = class {
14
14
  fetchedTokens = {};
15
15
  async getPublicTokens(e, t) {
16
16
  let n = c(e, t);
@@ -34,7 +34,7 @@ var p = class {
34
34
  }
35
35
  async getHeldTokenAddresses(t, o) {
36
36
  let s = a(t), c = `${i(o)}/v1/accounts/${s}`, l = (await n.get(c))?.data?.[0];
37
- if (!l) return [];
37
+ if (!l) return this.getTokenAddressesFromTransferHistory(s, o);
38
38
  let u = [];
39
39
  return l.balance && l.balance > 0 && u.push(e), (l.trc20 ?? []).forEach((e) => {
40
40
  Object.entries(e).forEach(([e, t]) => {
@@ -42,6 +42,10 @@ var p = class {
42
42
  });
43
43
  }), Array.from(new Set(u));
44
44
  }
45
- }, m = new p();
45
+ async getTokenAddressesFromTransferHistory(e, t) {
46
+ let a = `${i(t)}/v1/accounts/${e}/transactions/trc20?only_to=true&limit=${p}`, o = ((await n.get(a))?.data ?? []).map((e) => e.token_info?.address).filter((e) => !!e).map(r);
47
+ return Array.from(new Set(o));
48
+ }
49
+ }, h = new m();
46
50
  //#endregion
47
- export { p as TronPublicTokensDB, m as tronPublicTokensDB };
51
+ export { m as TronPublicTokensDB, h as tronPublicTokensDB };
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`);require(`./keys.cjs`);const n=require(`../utxo/Utxo.cjs`);let r=require(`ethers`),i=require(`@solana/web3.js`);var a=`solana-on-chain-utxo:`,o=9,s=e=>{if(e.length!==o)throw Error(`Expected ${o} on-chain fields, received ${e.length}`);let t=e.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${a}${r.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[${o}]`],[t])}`},c=e=>e.startsWith(a),l=e=>{if(!c(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=r.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[${o}]`],e.slice(21)),a=n;if(!Array.isArray(a)||a.length!==o)throw Error(`Malformed encoded Solana UTXO payload`);let[s,l,u,d,f,p,m,h,g]=a,_=BigInt(s),v=BigInt(d),y=BigInt(f),b=BigInt(p),x=BigInt(m),S=r.ethers.toBeHex(BigInt(h)),C=BigInt(g).toString(),w=Array.from(r.ethers.getBytes(l)),T=Array.from(r.ethers.getBytes(u)),E=new i.PublicKey(Uint8Array.from([...w.slice(16),...T.slice(16)])).toBase58();return{amount:_,erc20TokenAddress:t.poseidonHash(BigInt(l),BigInt(u)),mintAddress:E,h0x:v,h0y:y,h1x:b,h1y:x,stealthAddress:S,timeStamp:C}},u=e=>{let[t]=r.ethers.AbiCoder.defaultAbiCoder().decode([`tuple(uint256, address, tuple(uint256, uint256, uint256, uint256, uint256), uint256)`,`bytes`],e);return{amount:BigInt(t[0]),erc20TokenAddress:t[1],h0x:BigInt(t[2][0]),h0y:BigInt(t[2][1]),h1x:BigInt(t[2][2]),h1y:BigInt(t[2][3]),stealthAddress:r.ethers.toBeHex(BigInt(t[2][4])),timeStamp:BigInt(t[3]).toString()}},d=(t,n,r)=>{if(e.isSolanaLike(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,h0x:a,h0y:o,stealthAddress:s,timeStamp:c}=l(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:c,nullifyingKey:n,stealthAddress:s,H0:[a,o]}}let{amount:i,erc20TokenAddress:a,timeStamp:o,h0x:s,h0y:c,stealthAddress:d}=u(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,nullifyingKey:n,stealthAddress:d,H0:[s,c]}},f=(e,t,r)=>new n.Utxo(d(e,t,r));exports.decodeEvmUtxo=u,exports.decodeSolanaUtxo=l,exports.decodeUtxo=f,exports.decodeUtxoConstructorArgs=d,exports.encodeSolanaOnChainUtxo=s,exports.isSolanaOnChainUtxo=c;
1
+ require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`);require(`./keys.cjs`);const n=require(`../utxo/Utxo.cjs`);let r=require(`ethers`),i=require(`@solana/web3.js`);var a=`solana-on-chain-utxo:`,o=9,s=e=>Array.isArray(e)?e.some(e=>(e instanceof Uint8Array?e:Uint8Array.from(e)).some(e=>e!==0)):!1,c=e=>{if(e.length!==o)throw Error(`Expected ${o} on-chain fields, received ${e.length}`);let t=e.map((e,t)=>{let n=e instanceof Uint8Array?e:Uint8Array.from(e);if(n.length!==32)throw Error(`Expected bytes32 length 32 at position ${t}, got ${n.length}`);return`0x${Buffer.from(n).toString(`hex`)}`});return`${a}${r.ethers.AbiCoder.defaultAbiCoder().encode([`bytes32[${o}]`],[t])}`},l=e=>e.startsWith(a),u=e=>{if(!l(e))throw Error(`Invalid encoded Solana UTXO payload`);let[n]=r.ethers.AbiCoder.defaultAbiCoder().decode([`bytes32[${o}]`],e.slice(21)),a=n;if(!Array.isArray(a)||a.length!==o)throw Error(`Malformed encoded Solana UTXO payload`);let[s,c,u,d,f,p,m,h,g]=a,_=BigInt(s),v=BigInt(d),y=BigInt(f),b=BigInt(p),x=BigInt(m),S=r.ethers.toBeHex(BigInt(h)),C=BigInt(g).toString(),w=Array.from(r.ethers.getBytes(c)),T=Array.from(r.ethers.getBytes(u)),E=new i.PublicKey(Uint8Array.from([...w.slice(16),...T.slice(16)])).toBase58();return{amount:_,erc20TokenAddress:t.poseidonHash(BigInt(c),BigInt(u)),mintAddress:E,h0x:v,h0y:y,h1x:b,h1y:x,stealthAddress:S,timeStamp:C}},d=e=>{let[t]=r.ethers.AbiCoder.defaultAbiCoder().decode([`tuple(uint256, address, tuple(uint256, uint256, uint256, uint256, uint256), uint256)`,`bytes`],e);return{amount:BigInt(t[0]),erc20TokenAddress:t[1],h0x:BigInt(t[2][0]),h0y:BigInt(t[2][1]),h1x:BigInt(t[2][2]),h1y:BigInt(t[2][3]),stealthAddress:r.ethers.toBeHex(BigInt(t[2][4])),timeStamp:BigInt(t[3]).toString()}},f=(t,n,r)=>{if(e.isSolanaLike(r)){let{amount:e,erc20TokenAddress:r,mintAddress:i,h0x:a,h0y:o,stealthAddress:s,timeStamp:c}=u(t);return{amount:e,erc20TokenAddress:r,mintAddress:i,timeStamp:c,nullifyingKey:n,stealthAddress:s,H0:[a,o]}}let{amount:i,erc20TokenAddress:a,timeStamp:o,h0x:s,h0y:c,stealthAddress:l}=d(t);return{amount:i,erc20TokenAddress:a,timeStamp:o,nullifyingKey:n,stealthAddress:l,H0:[s,c]}},p=(e,t,r)=>new n.Utxo(f(e,t,r));exports.decodeEvmUtxo=d,exports.decodeSolanaUtxo=u,exports.decodeUtxo=p,exports.decodeUtxoConstructorArgs=f,exports.encodeSolanaOnChainUtxo=c,exports.hasSolanaOnChainData=s,exports.isSolanaOnChainUtxo=l;
@@ -1,4 +1,5 @@
1
1
  import { IUtxoConstructor, Utxo } from '../utxo/Utxo';
2
+ export declare const hasSolanaOnChainData: (onChainData: unknown) => boolean;
2
3
  export declare const encodeSolanaOnChainUtxo: (onChainData: number[][]) => string;
3
4
  export declare const isSolanaOnChainUtxo: (encodedOutput: string) => boolean;
4
5
  export declare const decodeSolanaUtxo: (encodedOutput: string) => {
@@ -5,7 +5,7 @@ import { Utxo as n } from "../utxo/Utxo.mjs";
5
5
  import { ethers as r } from "ethers";
6
6
  import { PublicKey as i } from "@solana/web3.js";
7
7
  //#region libs/shared/common/src/data-structures/crypto-keys/decodeUTXO.ts
8
- var a = "solana-on-chain-utxo:", o = 9, s = (e) => {
8
+ var a = "solana-on-chain-utxo:", o = 9, s = (e) => Array.isArray(e) ? e.some((e) => (e instanceof Uint8Array ? e : Uint8Array.from(e)).some((e) => e !== 0)) : !1, c = (e) => {
9
9
  if (e.length !== o) throw Error(`Expected ${o} on-chain fields, received ${e.length}`);
10
10
  let t = e.map((e, t) => {
11
11
  let n = e instanceof Uint8Array ? e : Uint8Array.from(e);
@@ -13,14 +13,14 @@ var a = "solana-on-chain-utxo:", o = 9, s = (e) => {
13
13
  return `0x${Buffer.from(n).toString("hex")}`;
14
14
  });
15
15
  return `${a}${r.AbiCoder.defaultAbiCoder().encode([`bytes32[${o}]`], [t])}`;
16
- }, c = (e) => e.startsWith(a), l = (e) => {
17
- if (!c(e)) throw Error("Invalid encoded Solana UTXO payload");
16
+ }, l = (e) => e.startsWith(a), u = (e) => {
17
+ if (!l(e)) throw Error("Invalid encoded Solana UTXO payload");
18
18
  let [n] = r.AbiCoder.defaultAbiCoder().decode([`bytes32[${o}]`], e.slice(21)), a = n;
19
19
  if (!Array.isArray(a) || a.length !== o) throw Error("Malformed encoded Solana UTXO payload");
20
- let [s, l, u, d, f, p, m, h, g] = a, _ = BigInt(s), v = BigInt(d), y = BigInt(f), b = BigInt(p), x = BigInt(m), S = r.toBeHex(BigInt(h)), C = BigInt(g).toString(), w = Array.from(r.getBytes(l)), T = Array.from(r.getBytes(u)), E = new i(Uint8Array.from([...w.slice(16), ...T.slice(16)])).toBase58();
20
+ let [s, c, u, d, f, p, m, h, g] = a, _ = BigInt(s), v = BigInt(d), y = BigInt(f), b = BigInt(p), x = BigInt(m), S = r.toBeHex(BigInt(h)), C = BigInt(g).toString(), w = Array.from(r.getBytes(c)), T = Array.from(r.getBytes(u)), E = new i(Uint8Array.from([...w.slice(16), ...T.slice(16)])).toBase58();
21
21
  return {
22
22
  amount: _,
23
- erc20TokenAddress: t(BigInt(l), BigInt(u)),
23
+ erc20TokenAddress: t(BigInt(c), BigInt(u)),
24
24
  mintAddress: E,
25
25
  h0x: v,
26
26
  h0y: y,
@@ -29,7 +29,7 @@ var a = "solana-on-chain-utxo:", o = 9, s = (e) => {
29
29
  stealthAddress: S,
30
30
  timeStamp: C
31
31
  };
32
- }, u = (e) => {
32
+ }, d = (e) => {
33
33
  let [t] = r.AbiCoder.defaultAbiCoder().decode(["tuple(uint256, address, tuple(uint256, uint256, uint256, uint256, uint256), uint256)", "bytes"], e);
34
34
  return {
35
35
  amount: BigInt(t[0]),
@@ -41,9 +41,9 @@ var a = "solana-on-chain-utxo:", o = 9, s = (e) => {
41
41
  stealthAddress: r.toBeHex(BigInt(t[2][4])),
42
42
  timeStamp: BigInt(t[3]).toString()
43
43
  };
44
- }, d = (t, n, r) => {
44
+ }, f = (t, n, r) => {
45
45
  if (e(r)) {
46
- let { amount: e, erc20TokenAddress: r, mintAddress: i, h0x: a, h0y: o, stealthAddress: s, timeStamp: c } = l(t);
46
+ let { amount: e, erc20TokenAddress: r, mintAddress: i, h0x: a, h0y: o, stealthAddress: s, timeStamp: c } = u(t);
47
47
  return {
48
48
  amount: e,
49
49
  erc20TokenAddress: r,
@@ -54,15 +54,15 @@ var a = "solana-on-chain-utxo:", o = 9, s = (e) => {
54
54
  H0: [a, o]
55
55
  };
56
56
  }
57
- let { amount: i, erc20TokenAddress: a, timeStamp: o, h0x: s, h0y: c, stealthAddress: d } = u(t);
57
+ let { amount: i, erc20TokenAddress: a, timeStamp: o, h0x: s, h0y: c, stealthAddress: l } = d(t);
58
58
  return {
59
59
  amount: i,
60
60
  erc20TokenAddress: a,
61
61
  timeStamp: o,
62
62
  nullifyingKey: n,
63
- stealthAddress: d,
63
+ stealthAddress: l,
64
64
  H0: [s, c]
65
65
  };
66
- }, f = (e, t, r) => new n(d(e, t, r));
66
+ }, p = (e, t, r) => new n(f(e, t, r));
67
67
  //#endregion
68
- export { u as decodeEvmUtxo, l as decodeSolanaUtxo, f as decodeUtxo, d as decodeUtxoConstructorArgs, s as encodeSolanaOnChainUtxo, c as isSolanaOnChainUtxo };
68
+ export { d as decodeEvmUtxo, u as decodeSolanaUtxo, p as decodeUtxo, f as decodeUtxoConstructorArgs, c as encodeSolanaOnChainUtxo, s as hasSolanaOnChainData, l as isSolanaOnChainUtxo };
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../error-handling/logger.cjs`),t=require(`../../../functions/utils/resolve-sync.utils.cjs`),n=require(`../../../constants/reorg-depths.constants.cjs`),r=require(`../../../functions/utils/getSignerFromContract.cjs`),i=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let a=require(`ethers`);var o=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a){this.contract=t,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0){try{return(await e.queryFilter(`*`,t,n)).filter(e=>e instanceof a.ethers.EventLog)}catch(i){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let i=Math.floor((t+n)/2),a=await this.getEventsForSingleContract(e,t,i,r+1),o=await this.getEventsForSingleContract(e,i+1,n,r+1);return[...a,...o]}throw i}}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,n){let r=[];return await t.resolveSync(t.getSequence(e,n,this.maxPageSize).map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(this.contract,e,t);r.push(...n)})),r.map(e=>i.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await r.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:t}=await r.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-n.blockReorgDepth[Number(t)]+1)}async retrieveEvents(t,n=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!n)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<t)return this.inProgress=!1,!1;let r=await this.getEventsInRange(t,e);return await this.processEvents(r,e),this._latestBlockNumber=e,this.inProgress=!1,!0}catch(t){return e.Logger.error(`retrieveEvents error`,t),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=o;
1
+ require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../error-handling/logger.cjs`),t=require(`../../../functions/utils/getSignerFromContract.cjs`),n=require(`../../../constants/reorg-depths.constants.cjs`),r=require(`../../../functions/utils/resolve-sync.utils.cjs`),i=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let a=require(`ethers`);var o=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a){this.contract=t,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0){try{return(await e.queryFilter(`*`,t,n)).filter(e=>e instanceof a.ethers.EventLog)}catch(i){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let i=Math.floor((t+n)/2),a=await this.getEventsForSingleContract(e,t,i,r+1),o=await this.getEventsForSingleContract(e,i+1,n,r+1);return[...a,...o]}throw i}}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,t){let n=[];return await r.resolveSync(r.getSequence(e,t,this.maxPageSize).map(({from:e,to:t})=>async()=>{let r=await this.getEventsForSingleContract(this.contract,e,t);n.push(...r)})),n.map(e=>i.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await t.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:r}=await t.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-n.blockReorgDepth[Number(r)]+1)}async retrieveEvents(t,n=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!n)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<t)return this.inProgress=!1,!1;let r=await this.getEventsInRange(t,e);return await this.processEvents(r,e),this._latestBlockNumber=e,this.inProgress=!1,!0}catch(t){return e.Logger.error(`retrieveEvents error`,t),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=o;