@hinkal/common 0.2.18 → 0.2.20

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 (571) hide show
  1. package/API/API.cjs +1 -1
  2. package/API/API.d.ts +14 -14
  3. package/API/API.mjs +92 -93
  4. package/API/admin-calls.cjs +1 -1
  5. package/API/admin-calls.d.ts +1 -1
  6. package/API/admin-calls.mjs +4 -4
  7. package/API/callLifiAPI.cjs +1 -1
  8. package/API/callLifiAPI.d.ts +1 -1
  9. package/API/callLifiAPI.mjs +5 -5
  10. package/API/callMonitor.cjs +1 -1
  11. package/API/callMonitor.d.ts +1 -1
  12. package/API/callMonitor.mjs +7 -7
  13. package/API/callOdosAPI.cjs +1 -1
  14. package/API/callOdosAPI.mjs +11 -11
  15. package/API/callOkxAPI.cjs +1 -1
  16. package/API/callOkxAPI.d.ts +1 -1
  17. package/API/callOkxAPI.mjs +5 -5
  18. package/API/callOneInchAPI.cjs +1 -1
  19. package/API/callOneInchAPI.mjs +10 -11
  20. package/API/callRelayer.cjs +1 -1
  21. package/API/callRelayer.d.ts +6 -3
  22. package/API/callRelayer.mjs +11 -11
  23. package/API/checkRisk.cjs +1 -1
  24. package/API/checkRisk.d.ts +1 -1
  25. package/API/checkRisk.mjs +4 -4
  26. package/API/enclaveCalls.cjs +1 -1
  27. package/API/enclaveCalls.mjs +5 -4
  28. package/API/fetchCommitmentsCache.cjs +1 -1
  29. package/API/fetchCommitmentsCache.mjs +9 -9
  30. package/API/get-token-data.cjs +1 -1
  31. package/API/get-token-data.d.ts +1 -1
  32. package/API/get-token-data.mjs +5 -5
  33. package/API/get-token-price-chart-data.cjs +1 -0
  34. package/API/get-token-price-chart-data.d.ts +16 -0
  35. package/API/get-token-price-chart-data.mjs +13 -0
  36. package/API/getGasEstimates.cjs +1 -1
  37. package/API/getGasEstimates.mjs +9 -9
  38. package/API/getServerURL.cjs +1 -1
  39. package/API/getServerURL.d.ts +3 -3
  40. package/API/getServerURL.mjs +51 -67
  41. package/API/getTokenPrice.cjs +1 -1
  42. package/API/getTokenPrice.d.ts +5 -0
  43. package/API/getTokenPrice.mjs +14 -7
  44. package/API/index.d.ts +1 -3
  45. package/API/is-tx-stateless.cjs +1 -1
  46. package/API/is-tx-stateless.d.ts +1 -1
  47. package/API/is-tx-stateless.mjs +10 -12
  48. package/API/kycCalls.cjs +1 -1
  49. package/API/kycCalls.d.ts +4 -8
  50. package/API/kycCalls.mjs +23 -26
  51. package/API/onrampCalls.cjs +1 -0
  52. package/API/onrampCalls.d.ts +20 -0
  53. package/API/onrampCalls.mjs +15 -0
  54. package/API/proxyAccountsCalls.cjs +1 -1
  55. package/API/proxyAccountsCalls.d.ts +7 -2
  56. package/API/proxyAccountsCalls.mjs +27 -21
  57. package/API/relayCalls.cjs +1 -1
  58. package/API/relayCalls.mjs +4 -4
  59. package/API/scheduled-transactions-calls.cjs +1 -1
  60. package/API/scheduled-transactions-calls.d.ts +1 -1
  61. package/API/scheduled-transactions-calls.mjs +4 -4
  62. package/API/simulate-batch-tx.cjs +1 -1
  63. package/API/simulate-batch-tx.d.ts +2 -2
  64. package/API/simulate-batch-tx.mjs +7 -6
  65. package/API/solana-calls.cjs +1 -1
  66. package/API/solana-calls.d.ts +6 -3
  67. package/API/solana-calls.mjs +15 -15
  68. package/API/temporaryWalletCalls.cjs +1 -0
  69. package/API/temporaryWalletCalls.d.ts +13 -0
  70. package/API/temporaryWalletCalls.mjs +20 -0
  71. package/API/token-calls.cjs +1 -1
  72. package/API/token-calls.mjs +6 -5
  73. package/API/unspent-utxos-calls.cjs +1 -1
  74. package/API/unspent-utxos-calls.d.ts +2 -2
  75. package/API/unspent-utxos-calls.mjs +17 -18
  76. package/README.md +239 -64
  77. package/constants/addresses.constants.cjs +1 -1
  78. package/constants/addresses.constants.d.ts +0 -1
  79. package/constants/addresses.constants.mjs +7 -8
  80. package/constants/chains.constants.cjs +1 -1
  81. package/constants/chains.constants.d.ts +1 -6
  82. package/constants/chains.constants.mjs +63 -50
  83. package/constants/coingecko.constants.cjs +1 -1
  84. package/constants/coingecko.constants.d.ts +1 -0
  85. package/constants/coingecko.constants.mjs +11 -10
  86. package/constants/contracts.constants.cjs +1 -1
  87. package/constants/contracts.constants.mjs +34 -41
  88. package/constants/deploy-data/deploy-data-solana.json.cjs +1 -1
  89. package/constants/deploy-data/deploy-data-solana.json.mjs +28 -2
  90. package/constants/function-signatures.constants.cjs +1 -1
  91. package/constants/function-signatures.constants.d.ts +0 -1
  92. package/constants/function-signatures.constants.mjs +3 -4
  93. package/constants/kyc.constants.cjs +1 -1
  94. package/constants/kyc.constants.mjs +39 -40
  95. package/constants/mediaUrls.constants.cjs +1 -1
  96. package/constants/mediaUrls.constants.d.ts +1 -0
  97. package/constants/mediaUrls.constants.mjs +2 -1
  98. package/constants/mystery-boxes.constants.d.ts +0 -0
  99. package/constants/permit2.constants.cjs +1 -1
  100. package/constants/permit2.constants.d.ts +0 -1
  101. package/constants/permit2.constants.mjs +10 -11
  102. package/constants/server.constants.cjs +1 -1
  103. package/constants/server.constants.d.ts +20 -123
  104. package/constants/server.constants.mjs +39 -142
  105. package/constants/token-data/ethMainnetRegistry.json.cjs +1 -1
  106. package/constants/token-data/ethMainnetRegistry.json.mjs +0 -24
  107. package/constants/token-data/ethMainnetRegistryFixed.json.cjs +1 -1
  108. package/constants/token-data/ethMainnetRegistryFixed.json.mjs +0 -24
  109. package/constants/token-data/index.d.ts +32 -88
  110. package/constants/token-data/localhostRegistry.json.cjs +1 -1
  111. package/constants/token-data/localhostRegistry.json.mjs +0 -26
  112. package/constants/token-data/polygonRegistry.json.cjs +1 -1
  113. package/constants/token-data/polygonRegistry.json.mjs +4 -4
  114. package/constants/token-data/polygonRegistryFixed.json.cjs +1 -1
  115. package/constants/token-data/polygonRegistryFixed.json.mjs +4 -4
  116. package/constants/token-data/popularTokens.constants.cjs +1 -1
  117. package/constants/token-data/popularTokens.constants.mjs +0 -1
  118. package/data-structures/AccountActions/AccountActions.cjs +1 -0
  119. package/data-structures/AccountActions/AccountActions.d.ts +18 -0
  120. package/data-structures/AccountActions/AccountActions.mjs +78 -0
  121. package/data-structures/AccountActions/index.d.ts +1 -0
  122. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
  123. package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +68 -71
  124. package/data-structures/BlockchainEvent/BlockchainEvent.cjs +1 -0
  125. package/data-structures/BlockchainEvent/BlockchainEvent.d.ts +14 -0
  126. package/data-structures/BlockchainEvent/BlockchainEvent.mjs +41 -0
  127. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  128. package/data-structures/Hinkal/Hinkal.d.ts +45 -54
  129. package/data-structures/Hinkal/Hinkal.mjs +314 -341
  130. package/data-structures/Hinkal/IHinkal.d.ts +40 -52
  131. package/data-structures/Hinkal/handleAutoDepositBack.cjs +1 -1
  132. package/data-structures/Hinkal/handleAutoDepositBack.d.ts +1 -1
  133. package/data-structures/Hinkal/handleAutoDepositBack.mjs +49 -50
  134. package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -1
  135. package/data-structures/Hinkal/hinkalActionReceive.mjs +29 -24
  136. package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
  137. package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +20 -20
  138. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  139. package/data-structures/Hinkal/hinkalDeposit.mjs +87 -85
  140. package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
  141. package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +78 -169
  142. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -0
  143. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.d.ts +4 -0
  144. package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +103 -0
  145. package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -0
  146. package/data-structures/Hinkal/hinkalDepostAndBridge.d.ts +4 -0
  147. package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +214 -0
  148. package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +1 -1
  149. package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +4 -5
  150. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  151. package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -2
  152. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +113 -117
  153. package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
  154. package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +36 -34
  155. package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -1
  156. package/data-structures/Hinkal/hinkalProxySwap.mjs +40 -36
  157. package/data-structures/Hinkal/hinkalProxyToPrivate.cjs +1 -1
  158. package/data-structures/Hinkal/hinkalProxyToPrivate.mjs +37 -32
  159. package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -1
  160. package/data-structures/Hinkal/hinkalSignSubAccount.d.ts +1 -2
  161. package/data-structures/Hinkal/hinkalSignSubAccount.mjs +17 -15
  162. package/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  163. package/data-structures/Hinkal/hinkalSolanaDeposit.d.ts +4 -3
  164. package/data-structures/Hinkal/hinkalSolanaDeposit.mjs +84 -95
  165. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  166. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.d.ts +2 -1
  167. package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +157 -155
  168. package/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
  169. package/data-structures/Hinkal/hinkalSolanaProxySend.d.ts +2 -3
  170. package/data-structures/Hinkal/hinkalSolanaProxySend.mjs +43 -40
  171. package/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  172. package/data-structures/Hinkal/hinkalSolanaProxyShield.mjs +71 -67
  173. package/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  174. package/data-structures/Hinkal/hinkalSolanaProxySwap.d.ts +1 -1
  175. package/data-structures/Hinkal/hinkalSolanaProxySwap.mjs +63 -59
  176. package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  177. package/data-structures/Hinkal/hinkalSolanaSwap.d.ts +1 -1
  178. package/data-structures/Hinkal/hinkalSolanaSwap.mjs +81 -77
  179. package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  180. package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +49 -48
  181. package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  182. package/data-structures/Hinkal/hinkalSolanaWithdraw.d.ts +2 -1
  183. package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +71 -68
  184. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  185. package/data-structures/Hinkal/hinkalSwap.mjs +71 -79
  186. package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
  187. package/data-structures/Hinkal/hinkalTransfer.mjs +72 -71
  188. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  189. package/data-structures/Hinkal/hinkalWithdraw.mjs +81 -79
  190. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  191. package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +108 -108
  192. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  193. package/data-structures/Hinkal/resetMerkleTrees.d.ts +1 -1
  194. package/data-structures/Hinkal/resetMerkleTrees.mjs +107 -53
  195. package/data-structures/IndexedDB/activity-db.cjs +1 -1
  196. package/data-structures/IndexedDB/activity-db.d.ts +1 -0
  197. package/data-structures/IndexedDB/activity-db.mjs +92 -76
  198. package/data-structures/IndexedDB/balances-db.cjs +1 -1
  199. package/data-structures/IndexedDB/balances-db.mjs +40 -37
  200. package/data-structures/IndexedDB/contact-db.cjs +1 -1
  201. package/data-structures/IndexedDB/contact-db.mjs +18 -15
  202. package/data-structures/IndexedDB/signatures-db.cjs +1 -1
  203. package/data-structures/IndexedDB/signatures-db.mjs +25 -40
  204. package/data-structures/PublicBalance/PublicBalanceWatcher.cjs +1 -0
  205. package/data-structures/PublicBalance/PublicBalanceWatcher.d.ts +20 -0
  206. package/data-structures/PublicBalance/PublicBalanceWatcher.mjs +124 -0
  207. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.cjs +1 -0
  208. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.d.ts +15 -0
  209. package/data-structures/PublicBalance/SolanaPublicBalancerWatcher.mjs +64 -0
  210. package/data-structures/PublicBalance/index.d.ts +2 -0
  211. package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  212. package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +83 -85
  213. package/data-structures/TokenDBs/token-visibility-db.cjs +1 -1
  214. package/data-structures/TokenDBs/token-visibility-db.mjs +22 -36
  215. package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  216. package/data-structures/crypto-keys/encryptDecryptUtxo.d.ts +1 -1
  217. package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +14 -14
  218. package/data-structures/crypto-keys/keys.cjs +1 -1
  219. package/data-structures/crypto-keys/keys.d.ts +0 -11
  220. package/data-structures/crypto-keys/keys.mjs +47 -107
  221. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.cjs +1 -1
  222. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.d.ts +3 -2
  223. package/data-structures/event-service/evm/AbstractAccessTokenSnapshotService.mjs +9 -9
  224. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.cjs +1 -1
  225. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.d.ts +3 -2
  226. package/data-structures/event-service/evm/AbstractApprovalsSnapshotService.mjs +5 -5
  227. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.cjs +1 -1
  228. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.d.ts +3 -2
  229. package/data-structures/event-service/evm/AbstractCommitmentsSnapshotService.mjs +6 -6
  230. package/data-structures/event-service/evm/AbstractEventService.cjs +1 -1
  231. package/data-structures/event-service/evm/AbstractEventService.d.ts +4 -2
  232. package/data-structures/event-service/evm/AbstractEventService.mjs +19 -19
  233. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
  234. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +3 -3
  235. package/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +6 -5
  236. package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -1
  237. package/data-structures/event-service/evm/AbstractSnapshotService.d.ts +1 -2
  238. package/data-structures/event-service/evm/AbstractSnapshotService.mjs +3 -4
  239. package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  240. package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +10 -5
  241. package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +39 -35
  242. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.cjs +1 -0
  243. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.d.ts +11 -0
  244. package/data-structures/event-service/evm/ClientBlockchainEventEmitter.mjs +21 -0
  245. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.cjs +1 -0
  246. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.d.ts +6 -0
  247. package/data-structures/event-service/evm/PollingBlockchainEventEmitter.mjs +16 -0
  248. package/data-structures/event-service/helpers/ClientEventHelper.cjs +1 -0
  249. package/data-structures/event-service/helpers/ClientEventHelper.d.ts +11 -0
  250. package/data-structures/event-service/helpers/ClientEventHelper.mjs +26 -0
  251. package/data-structures/event-service/helpers/PollingEventHelper.cjs +1 -0
  252. package/data-structures/event-service/helpers/PollingEventHelper.d.ts +5 -0
  253. package/data-structures/event-service/helpers/PollingEventHelper.mjs +14 -0
  254. package/data-structures/event-service/index.d.ts +4 -0
  255. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.cjs +1 -1
  256. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.d.ts +3 -2
  257. package/data-structures/event-service/solana/AbstractSolanaAccessTokenSnapshotService.mjs +6 -6
  258. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.cjs +1 -1
  259. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.d.ts +4 -3
  260. package/data-structures/event-service/solana/AbstractSolanaCommitmentsSnapshotService.mjs +8 -8
  261. package/data-structures/event-service/solana/AbstractSolanaEventService.cjs +1 -1
  262. package/data-structures/event-service/solana/AbstractSolanaEventService.d.ts +4 -10
  263. package/data-structures/event-service/solana/AbstractSolanaEventService.mjs +10 -7
  264. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
  265. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.d.ts +3 -2
  266. package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +1 -1
  267. package/data-structures/event-service/solana/AbstractSolanaSnapshotService.cjs +1 -1
  268. package/data-structures/event-service/solana/AbstractSolanaSnapshotService.d.ts +1 -2
  269. package/data-structures/event-service/solana/AbstractSolanaSnapshotService.mjs +1 -2
  270. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.cjs +1 -0
  271. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.d.ts +11 -0
  272. package/data-structures/event-service/solana/ClientSolanaBlockchainEventEmitter.mjs +22 -0
  273. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.cjs +1 -0
  274. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.d.ts +6 -0
  275. package/data-structures/event-service/solana/PollingSolanaBlockchainEventEmitter.mjs +16 -0
  276. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
  277. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.d.ts +11 -16
  278. package/data-structures/event-service/solana/SolanaBlockchainEventEmitter.mjs +64 -66
  279. package/data-structures/index.d.ts +3 -0
  280. package/data-structures/provider-adapter/IProviderAdapter.d.ts +8 -13
  281. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
  282. package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +6 -4
  283. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
  284. package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +6 -4
  285. package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.cjs +1 -1
  286. package/data-structures/snapshot/evm-snapshots/ClientCommitmentsSnapshotService.mjs +6 -4
  287. package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.cjs +1 -1
  288. package/data-structures/snapshot/evm-snapshots/ClientNullifierSnapshotService.mjs +6 -4
  289. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.cjs +1 -1
  290. package/data-structures/snapshot/solana-snapshots/ClientSolanaAccessTokenSnapshotService.mjs +6 -4
  291. package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.cjs +1 -1
  292. package/data-structures/snapshot/solana-snapshots/ClientSolanaCommitmentsSnapshotService.mjs +5 -4
  293. package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.cjs +1 -1
  294. package/data-structures/snapshot/solana-snapshots/ClientSolanaNullifierSnapshotService.mjs +6 -4
  295. package/data-structures/utxo/Utxo.cjs +1 -1
  296. package/data-structures/utxo/Utxo.d.ts +2 -7
  297. package/data-structures/utxo/Utxo.mjs +40 -36
  298. package/error-handling/error-codes.constants.cjs +1 -1
  299. package/error-handling/error-codes.constants.d.ts +1 -0
  300. package/error-handling/error-codes.constants.mjs +4 -3
  301. package/error-handling/get-error.message.cjs +1 -1
  302. package/error-handling/get-error.message.mjs +21 -27
  303. package/error-handling/index.d.ts +0 -1
  304. package/functions/index.d.ts +0 -1
  305. package/functions/kyc/zkMeHelper.cjs +1 -1
  306. package/functions/kyc/zkMeHelper.mjs +18 -17
  307. package/functions/pre-transaction/constructAdminData.cjs +1 -1
  308. package/functions/pre-transaction/constructAdminData.d.ts +2 -2
  309. package/functions/pre-transaction/constructAdminData.mjs +12 -18
  310. package/functions/pre-transaction/getExternalSwapAddress.cjs +1 -1
  311. package/functions/pre-transaction/getExternalSwapAddress.d.ts +1 -2
  312. package/functions/pre-transaction/getExternalSwapAddress.mjs +8 -8
  313. package/functions/pre-transaction/getFlatFees.cjs +1 -1
  314. package/functions/pre-transaction/getFlatFees.mjs +22 -30
  315. package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
  316. package/functions/pre-transaction/getSolanaCalldataHash.mjs +22 -22
  317. package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
  318. package/functions/pre-transaction/getVolatileTransferAmount.mjs +21 -36
  319. package/functions/pre-transaction/merge-with-fee-structure-emporium.cjs +1 -1
  320. package/functions/pre-transaction/merge-with-fee-structure-emporium.d.ts +1 -1
  321. package/functions/pre-transaction/merge-with-fee-structure-emporium.mjs +17 -17
  322. package/functions/pre-transaction/outputApprovalDataProcessing.cjs +1 -1
  323. package/functions/pre-transaction/outputApprovalDataProcessing.d.ts +1 -9
  324. package/functions/pre-transaction/outputApprovalDataProcessing.mjs +19 -34
  325. package/functions/pre-transaction/sendV0Transaction.cjs +1 -1
  326. package/functions/pre-transaction/sendV0Transaction.mjs +53 -50
  327. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs +1 -1
  328. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.d.ts +1 -1
  329. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs +4 -4
  330. package/functions/pre-transaction/solana-public-signals.cjs +1 -1
  331. package/functions/pre-transaction/solana-public-signals.d.ts +1 -0
  332. package/functions/pre-transaction/solana-public-signals.mjs +29 -26
  333. package/functions/pre-transaction/solana.cjs +1 -1
  334. package/functions/pre-transaction/solana.d.ts +2 -1
  335. package/functions/pre-transaction/solana.mjs +89 -80
  336. package/functions/private-wallet/emporium.helpers.cjs +1 -1
  337. package/functions/private-wallet/emporium.helpers.d.ts +4 -5
  338. package/functions/private-wallet/emporium.helpers.mjs +94 -109
  339. package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  340. package/functions/private-wallet/emporium.swap.helpers.d.ts +1 -4
  341. package/functions/private-wallet/emporium.swap.helpers.mjs +100 -102
  342. package/functions/snarkjs/common.snarkjs.cjs +1 -1
  343. package/functions/snarkjs/common.snarkjs.d.ts +1 -1
  344. package/functions/snarkjs/common.snarkjs.mjs +64 -64
  345. package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
  346. package/functions/snarkjs/constructEmporiumProof.d.ts +1 -2
  347. package/functions/snarkjs/constructEmporiumProof.mjs +89 -89
  348. package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  349. package/functions/snarkjs/constructGeneralZkProof.d.ts +1 -2
  350. package/functions/snarkjs/constructGeneralZkProof.mjs +117 -121
  351. package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  352. package/functions/snarkjs/constructSolanaZkProof.d.ts +1 -1
  353. package/functions/snarkjs/constructSolanaZkProof.mjs +58 -59
  354. package/functions/snarkjs/fetchMerkleTreeSiblings.cjs +1 -1
  355. package/functions/snarkjs/fetchMerkleTreeSiblings.mjs +11 -10
  356. package/functions/utils/addresses.cjs +1 -1
  357. package/functions/utils/addresses.d.ts +1 -0
  358. package/functions/utils/addresses.mjs +13 -12
  359. package/functions/utils/bytes32.utils.cjs +1 -1
  360. package/functions/utils/bytes32.utils.mjs +8 -7
  361. package/functions/utils/cacheFunctions.cjs +1 -1
  362. package/functions/utils/cacheFunctions.mjs +2 -2
  363. package/functions/utils/create-provider.cjs +1 -1
  364. package/functions/utils/create-provider.d.ts +1 -1
  365. package/functions/utils/create-provider.mjs +13 -9
  366. package/functions/utils/erc20tokenFunctions.cjs +1 -1
  367. package/functions/utils/erc20tokenFunctions.d.ts +0 -1
  368. package/functions/utils/erc20tokenFunctions.mjs +22 -29
  369. package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
  370. package/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -1
  371. package/functions/utils/getUtxosFromReceipt.utils.mjs +11 -11
  372. package/functions/utils/index.d.ts +0 -1
  373. package/functions/utils/involves-permit2-op.cjs +1 -1
  374. package/functions/utils/involves-permit2-op.d.ts +0 -1
  375. package/functions/utils/involves-permit2-op.mjs +4 -6
  376. package/functions/utils/mutexes.utils.cjs +1 -1
  377. package/functions/utils/mutexes.utils.d.ts +1 -1
  378. package/functions/utils/mutexes.utils.mjs +3 -3
  379. package/functions/utils/nftTokenFunctions.cjs +1 -1
  380. package/functions/utils/nftTokenFunctions.mjs +8 -23
  381. package/functions/utils/prepareHinkal.cjs +1 -1
  382. package/functions/utils/prepareHinkal.d.ts +6 -13
  383. package/functions/utils/prepareHinkal.mjs +45 -72
  384. package/functions/utils/publicBalance.utils.cjs +1 -1
  385. package/functions/utils/publicBalance.utils.mjs +49 -54
  386. package/functions/utils/socket.utils.cjs +1 -0
  387. package/functions/utils/socket.utils.d.ts +1 -0
  388. package/functions/utils/socket.utils.mjs +12 -0
  389. package/functions/utils/string.utils.cjs +1 -1
  390. package/functions/utils/string.utils.d.ts +1 -0
  391. package/functions/utils/string.utils.mjs +18 -14
  392. package/functions/utils/token-check.utils.cjs +1 -1
  393. package/functions/utils/token-check.utils.d.ts +3 -0
  394. package/functions/utils/token-check.utils.mjs +18 -7
  395. package/functions/utils/upToDateState.cjs +1 -1
  396. package/functions/utils/upToDateState.d.ts +1 -1
  397. package/functions/utils/upToDateState.mjs +4 -4
  398. package/functions/utils/walletBalances.utils.cjs +1 -1
  399. package/functions/utils/walletBalances.utils.d.ts +2 -17
  400. package/functions/utils/walletBalances.utils.mjs +5 -36
  401. package/functions/web3/crypto.cjs +1 -0
  402. package/functions/web3/crypto.d.ts +1 -0
  403. package/functions/web3/crypto.mjs +7 -0
  404. package/functions/web3/events/getApprovedBalance.cjs +1 -1
  405. package/functions/web3/events/getApprovedBalance.d.ts +3 -4
  406. package/functions/web3/events/getApprovedBalance.mjs +39 -44
  407. package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  408. package/functions/web3/events/getInputUtxoAndBalance.d.ts +1 -1
  409. package/functions/web3/events/getInputUtxoAndBalance.mjs +107 -112
  410. package/functions/web3/events/getShieldedBalance.cjs +2 -2
  411. package/functions/web3/events/getShieldedBalance.d.ts +1 -1
  412. package/functions/web3/events/getShieldedBalance.mjs +71 -70
  413. package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
  414. package/functions/web3/events/getTransactionLogEvents.mjs +38 -38
  415. package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
  416. package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +13 -10
  417. package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
  418. package/functions/web3/functionCalls/accessTokenCalls.d.ts +1 -6
  419. package/functions/web3/functionCalls/accessTokenCalls.mjs +12 -21
  420. package/functions/web3/functionCalls/approveToken.cjs +1 -1
  421. package/functions/web3/functionCalls/approveToken.d.ts +1 -1
  422. package/functions/web3/functionCalls/approveToken.mjs +50 -46
  423. package/functions/web3/functionCalls/approveTokensToHinkal.cjs +1 -1
  424. package/functions/web3/functionCalls/approveTokensToHinkal.d.ts +1 -1
  425. package/functions/web3/functionCalls/approveTokensToHinkal.mjs +6 -6
  426. package/functions/web3/functionCalls/estimateGasRelayer.cjs +1 -1
  427. package/functions/web3/functionCalls/estimateGasRelayer.d.ts +1 -2
  428. package/functions/web3/functionCalls/estimateGasRelayer.mjs +10 -10
  429. package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  430. package/functions/web3/functionCalls/transactCallDirect.d.ts +1 -1
  431. package/functions/web3/functionCalls/transactCallDirect.mjs +36 -40
  432. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  433. package/functions/web3/functionCalls/transactCallRelayer.d.ts +1 -1
  434. package/functions/web3/functionCalls/transactCallRelayer.mjs +36 -34
  435. package/functions/web3/getContractMetadata.cjs +1 -1
  436. package/functions/web3/getContractMetadata.mjs +17 -22
  437. package/functions/web3/getPublicAddressBalance.cjs +1 -1
  438. package/functions/web3/getPublicAddressBalance.d.ts +1 -1
  439. package/functions/web3/getPublicAddressBalance.mjs +6 -6
  440. package/functions/web3/getTokenHolder.cjs +1 -1
  441. package/functions/web3/getTokenHolder.mjs +27 -27
  442. package/functions/web3/index.d.ts +1 -0
  443. package/functions/web3/lifiAPI.cjs +1 -1
  444. package/functions/web3/lifiAPI.d.ts +1 -1
  445. package/functions/web3/lifiAPI.mjs +12 -12
  446. package/functions/web3/odosAPI.cjs +1 -1
  447. package/functions/web3/odosAPI.mjs +6 -19
  448. package/functions/web3/okxAPI.cjs +1 -1
  449. package/functions/web3/okxAPI.mjs +22 -22
  450. package/functions/web3/oneInchAPI.cjs +1 -1
  451. package/functions/web3/oneInchAPI.mjs +7 -20
  452. package/functions/web3/runContractFunction.cjs +1 -1
  453. package/functions/web3/runContractFunction.mjs +38 -56
  454. package/functions/web3/uniswapAPI.cjs +1 -1
  455. package/functions/web3/uniswapAPI.mjs +22 -34
  456. package/index.cjs +1 -1
  457. package/index.mjs +941 -949
  458. package/package.json +3 -2
  459. package/providers/EthersProviderAdapter.cjs +1 -1
  460. package/providers/EthersProviderAdapter.d.ts +10 -17
  461. package/providers/EthersProviderAdapter.mjs +45 -76
  462. package/providers/SolanaProviderAdapter.cjs +1 -1
  463. package/providers/SolanaProviderAdapter.d.ts +7 -11
  464. package/providers/SolanaProviderAdapter.mjs +16 -31
  465. package/providers/WagmiProviderAdapter.cjs +1 -1
  466. package/providers/WagmiProviderAdapter.d.ts +11 -17
  467. package/providers/WagmiProviderAdapter.mjs +86 -117
  468. package/providers/prepareEthersHinkal.cjs +1 -1
  469. package/providers/prepareEthersHinkal.mjs +15 -9
  470. package/providers/prepareWagmiHinkal.cjs +1 -1
  471. package/providers/prepareWagmiHinkal.mjs +16 -9
  472. package/types/TransactionSimulator.types.d.ts +2 -9
  473. package/types/activities.types.d.ts +2 -0
  474. package/types/admin.types.cjs +1 -1
  475. package/types/admin.types.d.ts +0 -6
  476. package/types/admin.types.mjs +2 -2
  477. package/types/balances.types.d.ts +0 -1
  478. package/types/bridging-tx.types.d.ts +17 -0
  479. package/types/cache.types.cjs +1 -1
  480. package/types/cache.types.d.ts +6 -3
  481. package/types/cache.types.mjs +1 -1
  482. package/types/coingecko.types.d.ts +5 -0
  483. package/types/ethereum-network.types.cjs +1 -1
  484. package/types/ethereum-network.types.d.ts +2 -8
  485. package/types/ethereum-network.types.mjs +1 -1
  486. package/types/events.types.cjs +1 -0
  487. package/types/events.types.d.ts +9 -0
  488. package/types/events.types.mjs +5 -0
  489. package/types/external-action.types.cjs +1 -1
  490. package/types/external-action.types.d.ts +0 -1
  491. package/types/external-action.types.mjs +1 -1
  492. package/types/hinkal.types.cjs +1 -1
  493. package/types/hinkal.types.d.ts +1 -7
  494. package/types/hinkal.types.mjs +22 -23
  495. package/types/index.d.ts +3 -3
  496. package/types/onramp.types.cjs +1 -0
  497. package/types/onramp.types.d.ts +58 -0
  498. package/types/onramp.types.mjs +4 -0
  499. package/types/proxy.types.d.ts +11 -3
  500. package/types/sandbox.types.cjs +1 -1
  501. package/types/sandbox.types.d.ts +10 -39
  502. package/types/sandbox.types.mjs +2 -2
  503. package/types/session.types.d.ts +2 -0
  504. package/types/solana.types.d.ts +9 -0
  505. package/types/token-prices.types.cjs +1 -1
  506. package/types/token-prices.types.d.ts +7 -0
  507. package/types/token-prices.types.mjs +4 -2
  508. package/types/token.types.d.ts +5 -0
  509. package/types/transactions.types.cjs +1 -1
  510. package/types/transactions.types.d.ts +2 -4
  511. package/types/transactions.types.mjs +3 -3
  512. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  513. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  514. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
  515. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
  516. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  517. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +2 -2
  518. package/API/ai-calls.cjs +0 -1
  519. package/API/ai-calls.d.ts +0 -17
  520. package/API/ai-calls.mjs +0 -21
  521. package/API/duneAPI.cjs +0 -1
  522. package/API/duneAPI.d.ts +0 -11
  523. package/API/duneAPI.mjs +0 -25
  524. package/API/getBridgeProtocols.cjs +0 -1
  525. package/API/getBridgeProtocols.d.ts +0 -7
  526. package/API/getBridgeProtocols.mjs +0 -8
  527. package/API/getLifiStatus.cjs +0 -1
  528. package/API/getLifiStatus.d.ts +0 -24
  529. package/API/getLifiStatus.mjs +0 -15
  530. package/API/getRelayerURL.cjs +0 -1
  531. package/API/getRelayerURL.d.ts +0 -1
  532. package/API/getRelayerURL.mjs +0 -10
  533. package/API/passwordCalls.cjs +0 -1
  534. package/API/passwordCalls.d.ts +0 -9
  535. package/API/passwordCalls.mjs +0 -13
  536. package/API/restoreSnapshots.cjs +0 -1
  537. package/API/restoreSnapshots.d.ts +0 -1
  538. package/API/restoreSnapshots.mjs +0 -10
  539. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.cjs +0 -1
  540. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.d.ts +0 -7
  541. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.mjs +0 -42
  542. package/data-structures/Hinkal/hinkalActionStake.d.ts +0 -3
  543. package/data-structures/Hinkal/hinkalApprove.cjs +0 -1
  544. package/data-structures/Hinkal/hinkalApprove.d.ts +0 -3
  545. package/data-structures/Hinkal/hinkalApprove.mjs +0 -115
  546. package/data-structures/Hinkal/hinkalInsideTransact.cjs +0 -1
  547. package/data-structures/Hinkal/hinkalInsideTransact.d.ts +0 -4
  548. package/data-structures/Hinkal/hinkalInsideTransact.mjs +0 -121
  549. package/error-handling/handleErrorRestore.cjs +0 -1
  550. package/error-handling/handleErrorRestore.d.ts +0 -2
  551. package/error-handling/handleErrorRestore.mjs +0 -11
  552. package/functions/kyc/authentoHelper.cjs +0 -1
  553. package/functions/kyc/authentoHelper.d.ts +0 -12
  554. package/functions/kyc/authentoHelper.mjs +0 -30
  555. package/functions/staking/index.cjs +0 -1
  556. package/functions/staking/index.d.ts +0 -11
  557. package/functions/staking/index.mjs +0 -42
  558. package/functions/utils/get-hinkal-approvals.cjs +0 -1
  559. package/functions/utils/get-hinkal-approvals.d.ts +0 -3
  560. package/functions/utils/get-hinkal-approvals.mjs +0 -38
  561. package/functions/utils/replaceAddressInCalldata.cjs +0 -1
  562. package/functions/utils/replaceAddressInCalldata.d.ts +0 -1
  563. package/functions/utils/replaceAddressInCalldata.mjs +0 -7
  564. package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +0 -1
  565. package/functions/web3/functionCalls/inHinkalApprovalCalls.d.ts +0 -5
  566. package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +0 -32
  567. package/types/bridging.types.d.ts +0 -29
  568. package/types/duneAPI.types.d.ts +0 -9
  569. package/types/hinkal.stake.types.cjs +0 -1
  570. package/types/hinkal.stake.types.d.ts +0 -11
  571. package/types/hinkal.stake.types.mjs +0 -4
@@ -0,0 +1,124 @@
1
+ import { WebSocketProvider as E, zeroPadValue as A, keccak256 as h, toUtf8Bytes as d, Interface as u } from "ethers-v6h";
2
+ import { WALLET_SUPPORTED_CHAINS as f, isSolanaLike as B, networkRegistry as g } from "../../constants/chains.constants.mjs";
3
+ import { ERC20ABI as w, ERC1155ABI as y } from "../../externalABIs/index.mjs";
4
+ import { caseInsensitiveEqual as o } from "../../functions/utils/caseInsensitive.utils.mjs";
5
+ import { getStateKey as b, getAddressFromStateKey as T } from "../../functions/utils/string.utils.mjs";
6
+ const R = 1e4;
7
+ class k {
8
+ subscribedAddresses = /* @__PURE__ */ new Set();
9
+ providers = /* @__PURE__ */ new Map();
10
+ nativeBalances = /* @__PURE__ */ new Map();
11
+ balanceChangeCallback;
12
+ eventListeners = /* @__PURE__ */ new Map();
13
+ constructor() {
14
+ f.forEach((e) => {
15
+ B(e) || this.initializeChain(e);
16
+ });
17
+ }
18
+ initializeChain(e) {
19
+ const { wsRpcUrl: t } = g[e];
20
+ if (!t)
21
+ return;
22
+ const r = new E(t, e);
23
+ this.providers.set(e, r), this.eventListeners.set(e, []), this.setupNativeBalanceListener(r, e), this.setupFilteredEventListeners(r, e);
24
+ }
25
+ setupFilteredEventListeners(e, t) {
26
+ if (this.eventListeners.get(t)?.forEach((l) => l()), this.eventListeners.set(t, []), this.subscribedAddresses.size === 0)
27
+ return;
28
+ const s = Array.from(this.subscribedAddresses).map((l) => A(l, 32)), a = h(d("Transfer(address,address,uint256)")), i = h(
29
+ d("TransferSingle(address,address,address,uint256,uint256)")
30
+ ), c = h(
31
+ d("TransferBatch(address,address,address,uint256[],uint256[])")
32
+ ), n = this.setupERC20Listener(e, [a, s]), p = this.setupERC20Listener(e, [a, null, s]), L = this.setupERC1155Listener(e, [i, null, s]), m = this.setupERC1155Listener(e, [
33
+ i,
34
+ null,
35
+ null,
36
+ s
37
+ ]), v = this.setupERC1155Listener(e, [c, null, s]), C = this.setupERC1155Listener(e, [
38
+ c,
39
+ null,
40
+ null,
41
+ s
42
+ ]);
43
+ this.eventListeners.set(t, [
44
+ n,
45
+ p,
46
+ L,
47
+ m,
48
+ v,
49
+ C
50
+ ]);
51
+ }
52
+ setupERC20Listener(e, t) {
53
+ const r = (s) => {
54
+ try {
55
+ const a = new u(w).parseLog({ topics: s.topics, data: s.data });
56
+ if (!a)
57
+ return;
58
+ const { from: i, to: c } = a.args;
59
+ Array.from(this.subscribedAddresses).filter((n) => o(n, i) || o(n, c)).forEach((n) => this.balanceChangeCallback?.(n));
60
+ } catch {
61
+ }
62
+ };
63
+ return e.on({ topics: t }, r), () => e.off({ topics: t }, r);
64
+ }
65
+ setupERC1155Listener(e, t) {
66
+ const r = (s) => {
67
+ try {
68
+ const a = new u(y).parseLog({ topics: s.topics, data: s.data });
69
+ if (!a)
70
+ return;
71
+ const { from: i, to: c } = a.args;
72
+ Array.from(this.subscribedAddresses).filter((n) => o(n, i) || o(n, c)).forEach((n) => this.balanceChangeCallback?.(n));
73
+ } catch {
74
+ }
75
+ };
76
+ return e.on({ topics: t }, r), () => e.off({ topics: t }, r);
77
+ }
78
+ setupNativeBalanceListener(e, t) {
79
+ setInterval(async () => {
80
+ if (this.subscribedAddresses.size !== 0)
81
+ try {
82
+ await Promise.all(
83
+ Array.from(this.subscribedAddresses).map(async (r) => {
84
+ const s = await e.getBalance(r), a = b(r, t), i = this.nativeBalances.get(a) ?? 0n;
85
+ s !== i && (this.nativeBalances.set(a, s), this.balanceChangeCallback?.(r));
86
+ })
87
+ );
88
+ } catch {
89
+ }
90
+ }, R);
91
+ }
92
+ async subscribe(e) {
93
+ const t = e.toLowerCase();
94
+ this.subscribedAddresses.has(t) || (this.subscribedAddresses.add(t), this.providers.forEach((r, s) => this.setupFilteredEventListeners(r, s)), await Promise.all(
95
+ f.map(async (r) => {
96
+ const s = this.providers.get(r);
97
+ if (s)
98
+ try {
99
+ const a = await s.getBalance(t);
100
+ this.nativeBalances.set(b(t, r), a);
101
+ } catch {
102
+ }
103
+ })
104
+ ));
105
+ }
106
+ unsubscribe(e) {
107
+ const t = e.toLowerCase();
108
+ this.subscribedAddresses.delete(t), this.nativeBalances.forEach((r, s) => {
109
+ o(T(s), t) && this.nativeBalances.delete(s);
110
+ }), this.providers.forEach((r, s) => this.setupFilteredEventListeners(r, s));
111
+ }
112
+ onBalanceChange(e) {
113
+ return this.balanceChangeCallback = e, () => {
114
+ this.balanceChangeCallback = void 0;
115
+ };
116
+ }
117
+ cleanup() {
118
+ this.eventListeners.forEach((e) => e.forEach((t) => t())), this.eventListeners.clear();
119
+ }
120
+ }
121
+ const W = new k();
122
+ export {
123
+ W as publicBalanceWatcher
124
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@solana/spl-token"),t=require("../../constants/chains.constants.cjs"),a=require("@solana/web3.js"),b=15e3;class r{connection;subscribedAddresses=new Set;solBalances=new Map;balanceChangeCallback;constructor(){this.connection=new a.Connection(t.networkRegistry[t.chainIds.solanaMainnet].fetchRpcUrl??"","confirmed")}async subscribe(e){if(this.subscribedAddresses.has(e))return;const c=new a.PublicKey(e);this.subscribedAddresses.add(e);const o=await this.connection.getBalance(c);this.solBalances.set(e,o),this.connection.onAccountChange(c,i=>{const n=i.lamports,l=this.solBalances.get(e)??0;n!==l&&(this.solBalances.set(e,n),this.executeCallback(e))}),this.subscribeTokenAccounts(c,s.TOKEN_PROGRAM_ID),this.subscribeTokenAccounts(c,s.TOKEN_2022_PROGRAM_ID)}unsubscribe(e){this.subscribedAddresses.delete(e),this.solBalances.delete(e)}onBalanceChange(e){return this.balanceChangeCallback=e,()=>{this.balanceChangeCallback=void 0}}subscribeTokenAccounts(e,c){this.connection.onProgramAccountChange(c,()=>{this.executeCallback(e.toBase58())},{commitment:"confirmed",filters:[{memcmp:{offset:32,bytes:e.toBase58()}}]})}executeCallback(e){setTimeout(()=>{try{this.balanceChangeCallback?.(e)}catch{}},b)}}const h=new r;exports.solanaPublicBalanceWatcher=h;
@@ -0,0 +1,15 @@
1
+ type BalanceChangeCallback = (walletAddress: string) => void | Promise<void>;
2
+ declare class SolanaPublicBalanceWatcher {
3
+ private connection;
4
+ private subscribedAddresses;
5
+ private solBalances;
6
+ private balanceChangeCallback?;
7
+ constructor();
8
+ subscribe(address: string): Promise<void>;
9
+ unsubscribe(address: string): void;
10
+ onBalanceChange(callback: BalanceChangeCallback): () => void;
11
+ private subscribeTokenAccounts;
12
+ private executeCallback;
13
+ }
14
+ export declare const solanaPublicBalanceWatcher: SolanaPublicBalanceWatcher;
15
+ export {};
@@ -0,0 +1,64 @@
1
+ import { TOKEN_PROGRAM_ID as o, TOKEN_2022_PROGRAM_ID as i } from "@solana/spl-token";
2
+ import { networkRegistry as l, chainIds as b } from "../../constants/chains.constants.mjs";
3
+ import { Connection as h, PublicKey as r } from "@solana/web3.js";
4
+ const u = 15e3;
5
+ class m {
6
+ connection;
7
+ subscribedAddresses = /* @__PURE__ */ new Set();
8
+ solBalances = /* @__PURE__ */ new Map();
9
+ balanceChangeCallback;
10
+ constructor() {
11
+ this.connection = new h(l[b.solanaMainnet].fetchRpcUrl ?? "", "confirmed");
12
+ }
13
+ async subscribe(e) {
14
+ if (this.subscribedAddresses.has(e))
15
+ return;
16
+ const c = new r(e);
17
+ this.subscribedAddresses.add(e);
18
+ const t = await this.connection.getBalance(c);
19
+ this.solBalances.set(e, t), this.connection.onAccountChange(c, (s) => {
20
+ const n = s.lamports, a = this.solBalances.get(e) ?? 0;
21
+ n !== a && (this.solBalances.set(e, n), this.executeCallback(e));
22
+ }), this.subscribeTokenAccounts(c, o), this.subscribeTokenAccounts(c, i);
23
+ }
24
+ unsubscribe(e) {
25
+ this.subscribedAddresses.delete(e), this.solBalances.delete(e);
26
+ }
27
+ onBalanceChange(e) {
28
+ return this.balanceChangeCallback = e, () => {
29
+ this.balanceChangeCallback = void 0;
30
+ };
31
+ }
32
+ subscribeTokenAccounts(e, c) {
33
+ this.connection.onProgramAccountChange(
34
+ c,
35
+ () => {
36
+ this.executeCallback(e.toBase58());
37
+ },
38
+ {
39
+ commitment: "confirmed",
40
+ filters: [
41
+ {
42
+ memcmp: {
43
+ offset: 32,
44
+ // owner field in SPL token account
45
+ bytes: e.toBase58()
46
+ }
47
+ }
48
+ ]
49
+ }
50
+ );
51
+ }
52
+ executeCallback(e) {
53
+ setTimeout(() => {
54
+ try {
55
+ this.balanceChangeCallback?.(e);
56
+ } catch {
57
+ }
58
+ }, u);
59
+ }
60
+ }
61
+ const f = new m();
62
+ export {
63
+ f as solanaPublicBalanceWatcher
64
+ };
@@ -0,0 +1,2 @@
1
+ export * from './PublicBalanceWatcher';
2
+ export * from './SolanaPublicBalancerWatcher';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("ethers"),T=require("idb-keyval"),_=require("../../API/API.cjs"),m=require("../../constants/chains.constants.cjs"),p=require("../../error-handling/logger.cjs"),E=require("../../functions/utils/caseInsensitive.utils.cjs"),g=require("../../types/cache.types.cjs"),d=require("../../functions/utils/string.utils.cjs"),A=require("../../constants/protocol.constants.cjs"),C=require("async-mutex"),S=require("../../functions/utils/erc20tokenFunctions.cjs"),I=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("../../constants/kyc.constants.cjs");const K=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("circomlibjs-hinkal-fork");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../constants/vite.constants.cjs");require("../http/HttpClient.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../functions/utils/mutexes.utils.cjs");require("@solana/spl-token");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");const x=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");require("node-forge");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("ethers-v6h");class P{fetchedTokens={};updateMutexes={};transferEventTopic=k.ethers.utils.id("Transfer(address,address,uint256)");getMutex(r){return this.updateMutexes[r]||(this.updateMutexes[r]=new C.Mutex),this.updateMutexes[r]}async getPublicTokens(r,o){const t=d.getStateKey(o,r);return(await T.get(g.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[t]||[]}getFetchedTokens(r,o){const t=d.getStateKey(o,r);return this.fetchedTokens[t]||[]}async fetchAndUpdatePublicTokens(r,o){const t=d.getStateKey(r,o);await this.getMutex(t).runExclusive(async()=>{try{const s=(await this.getPublicTokens(o,r)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(r,o),q=[...i,...u],{erc20Tokens:l}=await this.fetchPublicTokens(q,o,s),b=await I.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(o,l),B=l.filter(a=>!E.lowerCaseIncludes(b,a.erc20TokenAddress));await T.update(g.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const h=a[t]||[],w=h.map(f=>f.erc20TokenAddress),L=B.filter(f=>!E.lowerCaseIncludes(w,f.erc20TokenAddress));h.push(...L);const v=this.updateTokenIds(u,i,h),y={...a,[t]:v};return this.fetchedTokens=y,y}),c&&await this.updateLastProcessedBlock(o,r,c)}catch(e){p.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(r,o){const t=await T.get(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(o,r);return t[n]||x.EVENTS_INITIAL_BLOCKS[r]}async updateLastProcessedBlock(r,o,t){await T.update(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(o,r);return{...n,[e]:t}})}async getEvents(r,o){try{const{fetchRpcUrl:t}=m.networkRegistry[o];if(!t)throw Error("No fetchRpcUrl in PublicTokensDB");const n=K.createCustomRpcProvider(t),e=await this.getLastProcessedBlock(o,r)+1,s=await n.getBlockNumber(),i=k.ethers.utils.hexZeroPad(r.toLowerCase(),32),u={topics:[this.transferEventTopic,null,i],fromBlock:e,toBlock:s},c={topics:[this.transferEventTopic,i,null],fromBlock:e,toBlock:s},[q,l]=await Promise.all([n.getLogs(u),n.getLogs(c)]);return{toEvents:q,fromEvents:l,latestBlock:s}}catch(t){return p.Logger.error("Error fetching events:",t),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(r,o,t){const n=new Map;return t.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const s=e.erc20TokenAddress.toLowerCase();n.set(s,[...e.tokenIds])}}),o.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=k.ethers.BigNumber.from(e.topics[3]).toString();n.has(s)||n.set(s,[]),n.get(s)?.push(i)}),r.forEach(e=>{if(e.topics.length<=3)return;const s=e.address.toLowerCase(),i=n.get(s);if(i?.length){const u=k.ethers.BigNumber.from(e.topics[3]).toString(),c=i.indexOf(u);c!==-1&&i.splice(c,1)}}),t.forEach(e=>{if(S.isNFTToken(e)){const s=e.erc20TokenAddress.toLowerCase(),i=n.get(s);e.tokenIds=i?.length&&i.length>0?i:void 0}}),t}async fetchPublicTokens(r,o,t){try{const n=[A.zeroAddress,...new Set(r.map(s=>s.address))].filter(s=>s&&!E.lowerCaseIncludes(t,s));return n.length?{erc20Tokens:(await _.API.tokensInfoCall(o,n)).filter(s=>!!s)}:{erc20Tokens:[]}}catch(n){return p.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const N=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("ethers"),k=require("idb-keyval"),m=require("../../API/API.cjs"),f=require("../../error-handling/logger.cjs"),p=require("../../functions/utils/caseInsensitive.utils.cjs"),T=require("../../types/cache.types.cjs"),d=require("../../functions/utils/string.utils.cjs"),A=require("../../constants/protocol.constants.cjs"),C=require("async-mutex"),S=require("../../functions/utils/erc20tokenFunctions.cjs"),_=require("./token-visibility-db.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/activities.types.cjs");require("../../constants/chains.constants.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("circomlibjs-hinkal-fork");require("../../constants/kyc.constants.cjs");const I=require("../../functions/utils/create-provider.cjs");require("../../functions/utils/convertIntegrationProviderToExternalActionId.cjs");require("../../error-handling/error-codes.constants.cjs");require("../crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("../../API/getServerURL.cjs");require("../http/HttpClient.cjs");require("axios");require("../../constants/vite.constants.cjs");require("@solana/spl-token");require("ethers-v6h");require("tweetnacl");require("bs58");require("buffer");require("../../constants/token-data/index.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/reorg-depths.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");const K=require("../../constants/events.constants.cjs");require("../../functions/utils/userAgent.cjs");require("libsodium-wrappers");require("multiformats");require("process");require("../../providers/EthersProviderAdapter.cjs");require("../../functions/web3/events/getInputUtxoAndBalance.cjs");require("../../functions/web3/events/getApprovedBalance.cjs");require("../../functions/web3/getTokenHolder.cjs");require("node-forge");class P{fetchedTokens={};updateMutexes={};transferEventTopic=l.ethers.utils.id("Transfer(address,address,uint256)");getMutex(r){return this.updateMutexes[r]||(this.updateMutexes[r]=new C.Mutex),this.updateMutexes[r]}async getPublicTokens(r,s){const t=d.getStateKey(s,r);return(await k.get(T.StorageKeys.EVENTS_PUBLIC_TOKENS))?.[t]||[]}getFetchedTokens(r,s){const t=d.getStateKey(s,r);return this.fetchedTokens[t]||[]}async fetchAndUpdatePublicTokens(r,s){const t=d.getStateKey(r,s);await this.getMutex(t).runExclusive(async()=>{try{const o=(await this.getPublicTokens(s,r)).map(a=>a.erc20TokenAddress),{toEvents:i,fromEvents:u,latestBlock:c}=await this.getEvents(r,s),g=[...i,...u],{erc20Tokens:E}=await this.fetchPublicTokens(g,s,o),b=await _.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(s,E),B=E.filter(a=>!p.lowerCaseIncludes(b,a.erc20TokenAddress));await k.update(T.StorageKeys.EVENTS_PUBLIC_TOKENS,(a={})=>{const q=a[t]||[],w=q.map(h=>h.erc20TokenAddress),L=B.filter(h=>!p.lowerCaseIncludes(w,h.erc20TokenAddress));q.push(...L);const v=this.updateTokenIds(u,i,q),y={...a,[t]:v};return this.fetchedTokens=y,y}),c&&await this.updateLastProcessedBlock(s,r,c)}catch(e){f.Logger.error("public tokens db error",e)}})}async getLastProcessedBlock(r,s){const t=await k.get(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},n=d.getStateKey(s,r);return t[n]||K.EVENTS_INITIAL_BLOCKS[r]}async updateLastProcessedBlock(r,s,t){await k.update(T.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(n={})=>{const e=d.getStateKey(s,r);return{...n,[e]:t}})}async getEvents(r,s){try{const t=I.createCustomRpcProvider(s),n=await this.getLastProcessedBlock(s,r)+1,e=await t.getBlockNumber(),o=l.ethers.utils.hexZeroPad(r.toLowerCase(),32),i={topics:[this.transferEventTopic,null,o],fromBlock:n,toBlock:e},u={topics:[this.transferEventTopic,o,null],fromBlock:n,toBlock:e},[c,g]=await Promise.all([t.getLogs(i),t.getLogs(u)]);return{toEvents:c,fromEvents:g,latestBlock:e}}catch(t){return f.Logger.error("Error fetching events:",t),{toEvents:[],fromEvents:[],latestBlock:void 0}}}updateTokenIds(r,s,t){const n=new Map;return t.forEach(e=>{if(S.isNFTToken(e)&&e.tokenIds){const o=e.erc20TokenAddress.toLowerCase();n.set(o,[...e.tokenIds])}}),s.forEach(e=>{if(e.topics.length<=3)return;const o=e.address.toLowerCase(),i=l.ethers.BigNumber.from(e.topics[3]).toString();n.has(o)||n.set(o,[]),n.get(o)?.push(i)}),r.forEach(e=>{if(e.topics.length<=3)return;const o=e.address.toLowerCase(),i=n.get(o);if(i?.length){const u=l.ethers.BigNumber.from(e.topics[3]).toString(),c=i.indexOf(u);c!==-1&&i.splice(c,1)}}),t.forEach(e=>{if(S.isNFTToken(e)){const o=e.erc20TokenAddress.toLowerCase(),i=n.get(o);e.tokenIds=i?.length&&i.length>0?i:void 0}}),t}async fetchPublicTokens(r,s,t){try{const n=[A.zeroAddress,...new Set(r.map(o=>o.address))].filter(o=>o&&!p.lowerCaseIncludes(t,o));return n.length?{erc20Tokens:(await m.API.tokensInfoCall(s,n)).filter(o=>!!o)}:{erc20Tokens:[]}}catch(n){return f.Logger.error("Error fetching public tokens:",n),{erc20Tokens:[]}}}}const x=new P;exports.EventsPublicTokensDB=P;exports.eventsPublicTokensDB=x;
@@ -1,173 +1,171 @@
1
- import { ethers as u } from "ethers";
2
- import { get as B, update as w } from "idb-keyval";
1
+ import { ethers as d } from "ethers";
2
+ import { get as B, update as S } from "idb-keyval";
3
3
  import { API as C } from "../../API/API.mjs";
4
- import { networkRegistry as v } from "../../constants/chains.constants.mjs";
5
- import { Logger as h } from "../../error-handling/logger.mjs";
6
- import { lowerCaseIncludes as g } from "../../functions/utils/caseInsensitive.utils.mjs";
7
- import { StorageKeys as k } from "../../types/cache.types.mjs";
4
+ import { Logger as T } from "../../error-handling/logger.mjs";
5
+ import { lowerCaseIncludes as h } from "../../functions/utils/caseInsensitive.utils.mjs";
6
+ import { StorageKeys as u } from "../../types/cache.types.mjs";
8
7
  import { getStateKey as m } from "../../functions/utils/string.utils.mjs";
9
- import { zeroAddress as x } from "../../constants/protocol.constants.mjs";
10
- import { Mutex as _ } from "async-mutex";
11
- import { isNFTToken as P } from "../../functions/utils/erc20tokenFunctions.mjs";
12
- import { tokenVisibilityStorage as N } from "./token-visibility-db.mjs";
8
+ import { zeroAddress as v } from "../../constants/protocol.constants.mjs";
9
+ import { Mutex as x } from "async-mutex";
10
+ import { isNFTToken as w } from "../../functions/utils/erc20tokenFunctions.mjs";
11
+ import { tokenVisibilityStorage as _ } from "./token-visibility-db.mjs";
13
12
  import "../../types/circom-data.types.mjs";
14
13
  import "../../types/transactions.types.mjs";
15
14
  import "../../types/activities.types.mjs";
15
+ import "../../constants/chains.constants.mjs";
16
16
  import "@coral-xyz/anchor";
17
17
  import "@solana/web3.js";
18
+ import "circomlibjs-hinkal-fork";
18
19
  import "../../constants/kyc.constants.mjs";
19
20
  import { createCustomRpcProvider as I } from "../../functions/utils/create-provider.mjs";
20
21
  import "../../functions/utils/convertIntegrationProviderToExternalActionId.mjs";
21
- import "circomlibjs-hinkal-fork";
22
22
  import "../../error-handling/error-codes.constants.mjs";
23
23
  import "../crypto-keys/keys.mjs";
24
24
  import "../../constants/server.constants.mjs";
25
- import "../../constants/vite.constants.mjs";
25
+ import "../../API/getServerURL.mjs";
26
26
  import "../http/HttpClient.mjs";
27
27
  import "axios";
28
- import "../../API/getServerURL.mjs";
29
- import "libsodium-wrappers";
30
- import "process";
31
- import "buffer";
32
- import "../../constants/save-depths.mjs";
33
- import "../../constants/reorg-depths.constants.mjs";
34
- import "../../functions/utils/mutexes.utils.mjs";
28
+ import "../../constants/vite.constants.mjs";
35
29
  import "@solana/spl-token";
30
+ import "ethers-v6h";
31
+ import "tweetnacl";
32
+ import "bs58";
33
+ import "buffer";
36
34
  import "../../constants/token-data/index.mjs";
37
35
  import "../../constants/contracts.constants.mjs";
38
36
  import "../../constants/coingecko.constants.mjs";
37
+ import "../../constants/reorg-depths.constants.mjs";
39
38
  import "../../constants/addresses.constants.mjs";
40
39
  import "../../constants/token.limits.constants.mjs";
41
40
  import "../../constants/presale.constants.mjs";
42
41
  import "../../constants/activity.constants.mjs";
43
42
  import "../../constants/tasks.constants.mjs";
44
- import { EVENTS_INITIAL_BLOCKS as O } from "../../constants/events.constants.mjs";
43
+ import { EVENTS_INITIAL_BLOCKS as N } from "../../constants/events.constants.mjs";
45
44
  import "../../functions/utils/userAgent.mjs";
45
+ import "libsodium-wrappers";
46
46
  import "multiformats";
47
- import "../../API/tenderly.api.mjs";
48
- import "node-forge";
47
+ import "process";
48
+ import "../../providers/EthersProviderAdapter.mjs";
49
+ import "../../functions/web3/events/getInputUtxoAndBalance.mjs";
49
50
  import "../../functions/web3/events/getApprovedBalance.mjs";
50
51
  import "../../functions/web3/getTokenHolder.mjs";
51
- import "ethers-v6h";
52
- class K {
52
+ import "node-forge";
53
+ class O {
53
54
  fetchedTokens = {};
54
55
  updateMutexes = {};
55
- transferEventTopic = u.utils.id("Transfer(address,address,uint256)");
56
+ transferEventTopic = d.utils.id("Transfer(address,address,uint256)");
56
57
  getMutex(e) {
57
- return this.updateMutexes[e] || (this.updateMutexes[e] = new _()), this.updateMutexes[e];
58
+ return this.updateMutexes[e] || (this.updateMutexes[e] = new x()), this.updateMutexes[e];
58
59
  }
59
- async getPublicTokens(e, s) {
60
- const o = m(s, e);
61
- return (await B(k.EVENTS_PUBLIC_TOKENS))?.[o] || [];
60
+ async getPublicTokens(e, r) {
61
+ const o = m(r, e);
62
+ return (await B(u.EVENTS_PUBLIC_TOKENS))?.[o] || [];
62
63
  }
63
- getFetchedTokens(e, s) {
64
- const o = m(s, e);
64
+ getFetchedTokens(e, r) {
65
+ const o = m(r, e);
65
66
  return this.fetchedTokens[o] || [];
66
67
  }
67
- async fetchAndUpdatePublicTokens(e, s) {
68
- const o = m(e, s);
68
+ async fetchAndUpdatePublicTokens(e, r) {
69
+ const o = m(e, r);
69
70
  await this.getMutex(o).runExclusive(async () => {
70
71
  try {
71
- const r = (await this.getPublicTokens(s, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, s), l = [...i, ...p], { erc20Tokens: d } = await this.fetchPublicTokens(l, s, r), S = await N.hideSpamsAndFetchHiddenTokensAddresses(
72
- s,
73
- d
74
- ), L = d.filter(
75
- (a) => !g(S, a.erc20TokenAddress)
72
+ const s = (await this.getPublicTokens(r, e)).map((a) => a.erc20TokenAddress), { toEvents: i, fromEvents: p, latestBlock: c } = await this.getEvents(e, r), k = [...i, ...p], { erc20Tokens: g } = await this.fetchPublicTokens(k, r, s), L = await _.hideSpamsAndFetchHiddenTokensAddresses(
73
+ r,
74
+ g
75
+ ), P = g.filter(
76
+ (a) => !h(L, a.erc20TokenAddress)
76
77
  // filter out hidden tokens
77
78
  );
78
- await w(k.EVENTS_PUBLIC_TOKENS, (a = {}) => {
79
- const f = a[o] || [], b = f.map((T) => T.erc20TokenAddress), y = L.filter(
80
- (T) => !g(b, T.erc20TokenAddress)
79
+ await S(u.EVENTS_PUBLIC_TOKENS, (a = {}) => {
80
+ const l = a[o] || [], b = l.map((f) => f.erc20TokenAddress), y = P.filter(
81
+ (f) => !h(b, f.erc20TokenAddress)
81
82
  );
82
- f.push(...y);
83
- const A = this.updateTokenIds(p, i, f), E = {
83
+ l.push(...y);
84
+ const A = this.updateTokenIds(p, i, l), E = {
84
85
  ...a,
85
86
  [o]: A
86
87
  };
87
88
  return this.fetchedTokens = E, E;
88
- }), c && await this.updateLastProcessedBlock(s, e, c);
89
+ }), c && await this.updateLastProcessedBlock(r, e, c);
89
90
  } catch (t) {
90
- h.error("public tokens db error", t);
91
+ T.error("public tokens db error", t);
91
92
  }
92
93
  });
93
94
  }
94
- async getLastProcessedBlock(e, s) {
95
- const o = await B(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = m(s, e);
96
- return o[n] || O[e];
95
+ async getLastProcessedBlock(e, r) {
96
+ const o = await B(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, n = m(r, e);
97
+ return o[n] || N[e];
97
98
  }
98
- async updateLastProcessedBlock(e, s, o) {
99
- await w(k.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (n = {}) => {
100
- const t = m(s, e);
99
+ async updateLastProcessedBlock(e, r, o) {
100
+ await S(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (n = {}) => {
101
+ const t = m(r, e);
101
102
  return {
102
103
  ...n,
103
104
  [t]: o
104
105
  };
105
106
  });
106
107
  }
107
- async getEvents(e, s) {
108
+ async getEvents(e, r) {
108
109
  try {
109
- const { fetchRpcUrl: o } = v[s];
110
- if (!o)
111
- throw Error("No fetchRpcUrl in PublicTokensDB");
112
- const n = I(o), t = await this.getLastProcessedBlock(s, e) + 1, r = await n.getBlockNumber(), i = u.utils.hexZeroPad(e.toLowerCase(), 32), p = {
113
- topics: [this.transferEventTopic, null, i],
114
- fromBlock: t,
115
- toBlock: r
116
- }, c = {
117
- topics: [this.transferEventTopic, i, null],
118
- fromBlock: t,
119
- toBlock: r
120
- }, [l, d] = await Promise.all([n.getLogs(p), n.getLogs(c)]);
121
- return { toEvents: l, fromEvents: d, latestBlock: r };
110
+ const o = I(r), n = await this.getLastProcessedBlock(r, e) + 1, t = await o.getBlockNumber(), s = d.utils.hexZeroPad(e.toLowerCase(), 32), i = {
111
+ topics: [this.transferEventTopic, null, s],
112
+ fromBlock: n,
113
+ toBlock: t
114
+ }, p = {
115
+ topics: [this.transferEventTopic, s, null],
116
+ fromBlock: n,
117
+ toBlock: t
118
+ }, [c, k] = await Promise.all([o.getLogs(i), o.getLogs(p)]);
119
+ return { toEvents: c, fromEvents: k, latestBlock: t };
122
120
  } catch (o) {
123
- return h.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
121
+ return T.error("Error fetching events:", o), { toEvents: [], fromEvents: [], latestBlock: void 0 };
124
122
  }
125
123
  }
126
124
  // First get existed tokenIds from tokens
127
125
  // Then add new tokenIds from toEvents (incoming transfers)
128
126
  // Then remove tokenIds from fromEvents (outgoing transfers)
129
- updateTokenIds(e, s, o) {
127
+ updateTokenIds(e, r, o) {
130
128
  const n = /* @__PURE__ */ new Map();
131
129
  return o.forEach((t) => {
132
- if (P(t) && t.tokenIds) {
133
- const r = t.erc20TokenAddress.toLowerCase();
134
- n.set(r, [...t.tokenIds]);
130
+ if (w(t) && t.tokenIds) {
131
+ const s = t.erc20TokenAddress.toLowerCase();
132
+ n.set(s, [...t.tokenIds]);
135
133
  }
136
- }), s.forEach((t) => {
134
+ }), r.forEach((t) => {
137
135
  if (t.topics.length <= 3)
138
136
  return;
139
- const r = t.address.toLowerCase(), i = u.BigNumber.from(t.topics[3]).toString();
140
- n.has(r) || n.set(r, []), n.get(r)?.push(i);
137
+ const s = t.address.toLowerCase(), i = d.BigNumber.from(t.topics[3]).toString();
138
+ n.has(s) || n.set(s, []), n.get(s)?.push(i);
141
139
  }), e.forEach((t) => {
142
140
  if (t.topics.length <= 3)
143
141
  return;
144
- const r = t.address.toLowerCase(), i = n.get(r);
142
+ const s = t.address.toLowerCase(), i = n.get(s);
145
143
  if (i?.length) {
146
- const p = u.BigNumber.from(t.topics[3]).toString(), c = i.indexOf(p);
144
+ const p = d.BigNumber.from(t.topics[3]).toString(), c = i.indexOf(p);
147
145
  c !== -1 && i.splice(c, 1);
148
146
  }
149
147
  }), o.forEach((t) => {
150
- if (P(t)) {
151
- const r = t.erc20TokenAddress.toLowerCase(), i = n.get(r);
148
+ if (w(t)) {
149
+ const s = t.erc20TokenAddress.toLowerCase(), i = n.get(s);
152
150
  t.tokenIds = i?.length && i.length > 0 ? i : void 0;
153
151
  }
154
152
  }), o;
155
153
  }
156
- async fetchPublicTokens(e, s, o) {
154
+ async fetchPublicTokens(e, r, o) {
157
155
  try {
158
- const n = [x, ...new Set(e.map((r) => r.address))].filter(
159
- (r) => r && !g(o, r)
156
+ const n = [v, ...new Set(e.map((s) => s.address))].filter(
157
+ (s) => s && !h(o, s)
160
158
  );
161
- return n.length ? { erc20Tokens: (await C.tokensInfoCall(s, n)).filter(
162
- (r) => !!r
159
+ return n.length ? { erc20Tokens: (await C.tokensInfoCall(r, n)).filter(
160
+ (s) => !!s
163
161
  ) } : { erc20Tokens: [] };
164
162
  } catch (n) {
165
- return h.error("Error fetching public tokens:", n), { erc20Tokens: [] };
163
+ return T.error("Error fetching public tokens:", n), { erc20Tokens: [] };
166
164
  }
167
165
  }
168
166
  }
169
- const Ot = new K();
167
+ const Ot = new O();
170
168
  export {
171
- K as EventsPublicTokensDB,
169
+ O as EventsPublicTokensDB,
172
170
  Ot as eventsPublicTokensDB
173
171
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),a=require("../../error-handling/logger.cjs"),d=require("../../functions/utils/caseInsensitive.utils.cjs");class h{STORAGE_KEY="hiddenTokenAddresses";UNHIDDEN_SPAM_KEY="unhiddenSpamTokens";async getHiddenTokens(e){try{return(await i.get(this.STORAGE_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async getHiddenTokenAddresses(e){try{return(await this.getHiddenTokens(e)).map(({erc20TokenAddress:s})=>s.toLowerCase())}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async filterOutHiddenTokens(e,r){const s=await this.getHiddenTokens(e);return r.filter(n=>!s.some(t=>d.caseInsensitiveEqual(t.erc20TokenAddress,n.erc20TokenAddress)))}async hideToken(e){try{await i.update(this.STORAGE_KEY,r=>{const s=r??{},{chainId:n}=e;return s[n]||(s[n]=[]),s[n].some(({erc20TokenAddress:o})=>d.caseInsensitiveEqual(o,e.erc20TokenAddress))||s[n].push(e),s}),e.isSpam&&await this.deleteUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error hiding token",r)}}async showToken(e){try{await i.update(this.STORAGE_KEY,r=>{const{chainId:s}=e,n=r??{};return n[s]||(n[s]=[]),n[s]=n[s].filter(({erc20TokenAddress:t})=>!d.caseInsensitiveEqual(t,e.erc20TokenAddress)),n}),e.isSpam&&await this.storeUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error showing token",r)}}async storeUnhiddenSpamToken(e){const{chainId:r}=e;try{await i.update(this.UNHIDDEN_SPAM_KEY,s=>{const n=s??{};return n[r]||(n[r]=[]),n[r].some(({erc20TokenAddress:o})=>d.caseInsensitiveEqual(o,e.erc20TokenAddress))||n[r].push(e),n})}catch(s){a.Logger.error("Error storing unhidden spam token",s)}}async deleteUnhiddenSpamToken(e){await i.update(this.UNHIDDEN_SPAM_KEY,r=>{const{chainId:s}=e,n=r??{};return n[s]=n[s]?.filter(({erc20TokenAddress:t})=>!d.caseInsensitiveEqual(t,e.erc20TokenAddress)),n})}async getUnhiddenSpamTokens(e){try{return(await i.get(this.UNHIDDEN_SPAM_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving unhidden spam tokens",r),[]}}async hideUnnecessarySpamTokens(e,r){const s=await this.getUnhiddenSpamTokens(e),n=r.filter(({erc20TokenAddress:t,isSpam:o})=>o?!s.some(({erc20TokenAddress:c})=>d.caseInsensitiveEqual(t,c)):!1);await Promise.all(n.map(t=>this.hideToken(t)))}async hideSpamsAndFetchHiddenTokensAddresses(e,r){return await this.hideUnnecessarySpamTokens(e,r),this.getHiddenTokenAddresses(e)}}const u=new h;exports.tokenVisibilityStorage=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),a=require("../../error-handling/logger.cjs"),d=require("../../functions/utils/token-check.utils.cjs");class c{STORAGE_KEY="hiddenTokenAddresses";UNHIDDEN_SPAM_KEY="unhiddenSpamTokens";async getHiddenTokens(e){try{return(await i.get(this.STORAGE_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async getHiddenTokenAddresses(e){try{return(await this.getHiddenTokens(e)).map(({erc20TokenAddress:t})=>t.toLowerCase())}catch(r){return a.Logger.error("Error retrieving hidden tokens",r),[]}}async filterOutHiddenTokens(e,r){const t=await this.getHiddenTokens(e);return r.filter(n=>!t.some(s=>d.isSameERC20Token(s,n)))}async hideToken(e){try{await i.update(this.STORAGE_KEY,r=>{const t=r??{},{chainId:n}=e;return t[n]||(t[n]=[]),t[n].some(o=>d.isSameERC20Token(o,e))||t[n].push(e),t}),e.isSpam&&await this.deleteUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error hiding token",r)}}async showToken(e){try{await i.update(this.STORAGE_KEY,r=>{const{chainId:t}=e,n=r??{};return n[t]||(n[t]=[]),n[t]=n[t].filter(s=>!d.isSameERC20Token(s,e)),n}),e.isSpam&&await this.storeUnhiddenSpamToken(e)}catch(r){a.Logger.error("Error showing token",r)}}async storeUnhiddenSpamToken(e){const{chainId:r}=e;try{await i.update(this.UNHIDDEN_SPAM_KEY,t=>{const n=t??{};return n[r]||(n[r]=[]),n[r].some(o=>d.isSameERC20Token(o,e))||n[r].push(e),n})}catch(t){a.Logger.error("Error storing unhidden spam token",t)}}async deleteUnhiddenSpamToken(e){await i.update(this.UNHIDDEN_SPAM_KEY,r=>{const{chainId:t}=e,n=r??{};return n[t]=n[t]?.filter(s=>!d.isSameERC20Token(s,e)),n})}async getUnhiddenSpamTokens(e){try{return(await i.get(this.UNHIDDEN_SPAM_KEY))?.[e]||[]}catch(r){return a.Logger.error("Error retrieving unhidden spam tokens",r),[]}}async hideUnnecessarySpamTokens(e,r){const t=await this.getUnhiddenSpamTokens(e),n=r.filter(s=>s.isSpam?!t.some(o=>d.isSameERC20Token(o,s)):!1);await Promise.all(n.map(s=>this.hideToken(s)))}async hideSpamsAndFetchHiddenTokensAddresses(e,r){return await this.hideUnnecessarySpamTokens(e,r),this.getHiddenTokenAddresses(e)}}const h=new c;exports.tokenVisibilityStorage=h;
@@ -1,38 +1,32 @@
1
- import { get as c, update as o } from "idb-keyval";
1
+ import { get as h, update as o } from "idb-keyval";
2
2
  import { Logger as a } from "../../error-handling/logger.mjs";
3
- import { caseInsensitiveEqual as d } from "../../functions/utils/caseInsensitive.utils.mjs";
4
- class T {
3
+ import { isSameERC20Token as i } from "../../functions/utils/token-check.utils.mjs";
4
+ class c {
5
5
  STORAGE_KEY = "hiddenTokenAddresses";
6
6
  UNHIDDEN_SPAM_KEY = "unhiddenSpamTokens";
7
7
  async getHiddenTokens(e) {
8
8
  try {
9
- return (await c(this.STORAGE_KEY))?.[e] || [];
9
+ return (await h(this.STORAGE_KEY))?.[e] || [];
10
10
  } catch (r) {
11
11
  return a.error("Error retrieving hidden tokens", r), [];
12
12
  }
13
13
  }
14
14
  async getHiddenTokenAddresses(e) {
15
15
  try {
16
- return (await this.getHiddenTokens(e)).map(({ erc20TokenAddress: s }) => s.toLowerCase());
16
+ return (await this.getHiddenTokens(e)).map(({ erc20TokenAddress: t }) => t.toLowerCase());
17
17
  } catch (r) {
18
18
  return a.error("Error retrieving hidden tokens", r), [];
19
19
  }
20
20
  }
21
21
  async filterOutHiddenTokens(e, r) {
22
- const s = await this.getHiddenTokens(e);
23
- return r.filter(
24
- (n) => !s.some(
25
- (t) => d(t.erc20TokenAddress, n.erc20TokenAddress)
26
- )
27
- );
22
+ const t = await this.getHiddenTokens(e);
23
+ return r.filter((n) => !t.some((s) => i(s, n)));
28
24
  }
29
25
  async hideToken(e) {
30
26
  try {
31
27
  await o(this.STORAGE_KEY, (r) => {
32
- const s = r ?? {}, { chainId: n } = e;
33
- return s[n] || (s[n] = []), s[n].some(
34
- ({ erc20TokenAddress: i }) => d(i, e.erc20TokenAddress)
35
- ) || s[n].push(e), s;
28
+ const t = r ?? {}, { chainId: n } = e;
29
+ return t[n] || (t[n] = []), t[n].some((d) => i(d, e)) || t[n].push(e), t;
36
30
  }), e.isSpam && await this.deleteUnhiddenSpamToken(e);
37
31
  } catch (r) {
38
32
  a.error("Error hiding token", r);
@@ -41,10 +35,8 @@ class T {
41
35
  async showToken(e) {
42
36
  try {
43
37
  await o(this.STORAGE_KEY, (r) => {
44
- const { chainId: s } = e, n = r ?? {};
45
- return n[s] || (n[s] = []), n[s] = n[s].filter(
46
- ({ erc20TokenAddress: t }) => !d(t, e.erc20TokenAddress)
47
- ), n;
38
+ const { chainId: t } = e, n = r ?? {};
39
+ return n[t] || (n[t] = []), n[t] = n[t].filter((s) => !i(s, e)), n;
48
40
  }), e.isSpam && await this.storeUnhiddenSpamToken(e);
49
41
  } catch (r) {
50
42
  a.error("Error showing token", r);
@@ -53,44 +45,38 @@ class T {
53
45
  async storeUnhiddenSpamToken(e) {
54
46
  const { chainId: r } = e;
55
47
  try {
56
- await o(this.UNHIDDEN_SPAM_KEY, (s) => {
57
- const n = s ?? {};
58
- return n[r] || (n[r] = []), n[r].some(
59
- ({ erc20TokenAddress: i }) => d(i, e.erc20TokenAddress)
60
- ) || n[r].push(e), n;
48
+ await o(this.UNHIDDEN_SPAM_KEY, (t) => {
49
+ const n = t ?? {};
50
+ return n[r] || (n[r] = []), n[r].some((d) => i(d, e)) || n[r].push(e), n;
61
51
  });
62
- } catch (s) {
63
- a.error("Error storing unhidden spam token", s);
52
+ } catch (t) {
53
+ a.error("Error storing unhidden spam token", t);
64
54
  }
65
55
  }
66
56
  async deleteUnhiddenSpamToken(e) {
67
57
  await o(this.UNHIDDEN_SPAM_KEY, (r) => {
68
- const { chainId: s } = e, n = r ?? {};
69
- return n[s] = n[s]?.filter(
70
- ({ erc20TokenAddress: t }) => !d(t, e.erc20TokenAddress)
71
- ), n;
58
+ const { chainId: t } = e, n = r ?? {};
59
+ return n[t] = n[t]?.filter((s) => !i(s, e)), n;
72
60
  });
73
61
  }
74
62
  async getUnhiddenSpamTokens(e) {
75
63
  try {
76
- return (await c(this.UNHIDDEN_SPAM_KEY))?.[e] || [];
64
+ return (await h(this.UNHIDDEN_SPAM_KEY))?.[e] || [];
77
65
  } catch (r) {
78
66
  return a.error("Error retrieving unhidden spam tokens", r), [];
79
67
  }
80
68
  }
81
69
  // From the list of tokens, hide the spam tokens that are not in the unhidden spam tokens list
82
70
  async hideUnnecessarySpamTokens(e, r) {
83
- const s = await this.getUnhiddenSpamTokens(e), n = r.filter(({ erc20TokenAddress: t, isSpam: i }) => i ? !s.some(
84
- ({ erc20TokenAddress: h }) => d(t, h)
85
- ) : !1);
86
- await Promise.all(n.map((t) => this.hideToken(t)));
71
+ const t = await this.getUnhiddenSpamTokens(e), n = r.filter((s) => s.isSpam ? !t.some((d) => i(d, s)) : !1);
72
+ await Promise.all(n.map((s) => this.hideToken(s)));
87
73
  }
88
74
  // First hide spam tokens from the list, then fetch the all hidden tokens addresses
89
75
  async hideSpamsAndFetchHiddenTokensAddresses(e, r) {
90
76
  return await this.hideUnnecessarySpamTokens(e, r), this.getHiddenTokenAddresses(e);
91
77
  }
92
78
  }
93
- const y = new T();
79
+ const y = new c();
94
80
  export {
95
81
  y as tokenVisibilityStorage
96
82
  };