@hinkal/common 0.2.12 → 0.2.14

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 (574) hide show
  1. package/API/API.cjs +1 -1
  2. package/API/API.d.ts +9 -3
  3. package/API/API.mjs +44 -34
  4. package/API/ai-calls.cjs +1 -0
  5. package/API/ai-calls.d.ts +9 -0
  6. package/API/ai-calls.mjs +13 -0
  7. package/API/callCurveAPI.cjs +1 -1
  8. package/API/callCurveAPI.mjs +28 -22
  9. package/API/callRelayer.d.ts +3 -2
  10. package/API/dataServerCalls.cjs +1 -1
  11. package/API/dataServerCalls.d.ts +4 -0
  12. package/API/dataServerCalls.mjs +11 -7
  13. package/API/duneAPI.cjs +1 -1
  14. package/API/duneAPI.mjs +6 -4
  15. package/API/fetchCommitmentsCache.cjs +1 -1
  16. package/API/fetchCommitmentsCache.d.ts +9 -1
  17. package/API/fetchCommitmentsCache.mjs +6 -5
  18. package/API/getGasEstimates.cjs +1 -1
  19. package/API/getGasEstimates.d.ts +2 -1
  20. package/API/getGasEstimates.mjs +10 -9
  21. package/API/getServerURL.d.ts +1 -1
  22. package/API/index.d.ts +2 -0
  23. package/API/is-tx-stateless.cjs +1 -0
  24. package/API/is-tx-stateless.d.ts +3 -0
  25. package/API/is-tx-stateless.mjs +9 -0
  26. package/API/kycCalls.cjs +1 -1
  27. package/API/kycCalls.d.ts +0 -4
  28. package/API/kycCalls.mjs +11 -15
  29. package/API/rewardsPointsCalls.d.ts +0 -3
  30. package/API/tenderly.api.cjs +1 -0
  31. package/API/tenderly.api.d.ts +12 -0
  32. package/API/tenderly.api.mjs +47 -0
  33. package/API/token-calls.cjs +1 -0
  34. package/API/token-calls.d.ts +2 -0
  35. package/API/token-calls.mjs +9 -0
  36. package/README.md +0 -61
  37. package/constants/addresses.constants.cjs +1 -0
  38. package/constants/addresses.constants.d.ts +16 -0
  39. package/constants/addresses.constants.mjs +50 -0
  40. package/constants/assets.constants.cjs +1 -1
  41. package/constants/assets.constants.mjs +13 -13
  42. package/constants/axelar.constants.cjs +1 -1
  43. package/constants/axelar.constants.mjs +5 -5
  44. package/constants/balance.constants.cjs +1 -0
  45. package/constants/balance.constants.d.ts +1 -0
  46. package/constants/balance.constants.mjs +4 -0
  47. package/constants/chains.constants.cjs +1 -1
  48. package/constants/chains.constants.d.ts +0 -2
  49. package/constants/chains.constants.mjs +26 -38
  50. package/constants/contracts.constants.cjs +1 -1
  51. package/constants/contracts.constants.mjs +108 -108
  52. package/constants/conversion.constants.cjs +1 -0
  53. package/constants/conversion.constants.d.ts +1 -0
  54. package/constants/conversion.constants.mjs +4 -0
  55. package/constants/deploy-data/deploy-data-localhost.json.cjs +1 -1
  56. package/constants/deploy-data/deploy-data-localhost.json.mjs +1652 -829
  57. package/constants/deploy-data/deploy-data-optimism.json.cjs +1 -1
  58. package/constants/deploy-data/deploy-data-optimism.json.mjs +9707 -3957
  59. package/constants/fees.constants.cjs +1 -1
  60. package/constants/fees.constants.d.ts +5 -3
  61. package/constants/fees.constants.mjs +22 -19
  62. package/constants/index.d.ts +6 -0
  63. package/constants/mediaUrls.constants.cjs +1 -0
  64. package/constants/mediaUrls.constants.d.ts +23 -0
  65. package/constants/mediaUrls.constants.mjs +26 -0
  66. package/constants/permit2.constants.cjs +1 -0
  67. package/constants/permit2.constants.d.ts +2 -0
  68. package/constants/permit2.constants.mjs +5 -0
  69. package/constants/protocol.constants.cjs +1 -1
  70. package/constants/protocol.constants.d.ts +6 -0
  71. package/constants/protocol.constants.mjs +27 -15
  72. package/constants/rewards.constants.cjs +1 -1
  73. package/constants/rewards.constants.d.ts +0 -1
  74. package/constants/rewards.constants.mjs +14 -13
  75. package/constants/server.constants.cjs +1 -1
  76. package/constants/server.constants.d.ts +8 -3
  77. package/constants/server.constants.mjs +16 -11
  78. package/constants/token-data/ERC20Registry.cjs +1 -1
  79. package/constants/token-data/ERC20Registry.mjs +10 -9
  80. package/constants/token-data/arbMainnetRegistry.json.cjs +1 -1
  81. package/constants/token-data/arbMainnetRegistry.json.mjs +88 -88
  82. package/constants/token-data/arbMainnetRegistryFixed.json.cjs +1 -1
  83. package/constants/token-data/arbMainnetRegistryFixed.json.mjs +78 -78
  84. package/constants/token-data/avalancheRegistry.json.cjs +1 -1
  85. package/constants/token-data/avalancheRegistry.json.mjs +49 -49
  86. package/constants/token-data/avalancheRegistryFixed.json.cjs +1 -1
  87. package/constants/token-data/avalancheRegistryFixed.json.mjs +49 -49
  88. package/constants/token-data/baseRegistry.json.cjs +1 -1
  89. package/constants/token-data/baseRegistry.json.mjs +32 -32
  90. package/constants/token-data/baseRegistryFixed.json.cjs +1 -1
  91. package/constants/token-data/baseRegistryFixed.json.mjs +29 -29
  92. package/constants/token-data/bnbMainnetRegistry.json.cjs +1 -1
  93. package/constants/token-data/bnbMainnetRegistry.json.mjs +65 -65
  94. package/constants/token-data/bnbMainnetRegistryFixed.json.cjs +1 -1
  95. package/constants/token-data/bnbMainnetRegistryFixed.json.mjs +65 -65
  96. package/constants/token-data/ethMainnetRegistry.json.cjs +1 -1
  97. package/constants/token-data/ethMainnetRegistry.json.mjs +227 -227
  98. package/constants/token-data/ethMainnetRegistryFixed.json.cjs +1 -1
  99. package/constants/token-data/ethMainnetRegistryFixed.json.mjs +191 -191
  100. package/constants/token-data/index.d.ts +91 -0
  101. package/constants/token-data/localhostRegistry.json.cjs +1 -1
  102. package/constants/token-data/localhostRegistry.json.mjs +294 -277
  103. package/constants/token-data/optimismRegistry.json.cjs +1 -1
  104. package/constants/token-data/optimismRegistry.json.mjs +702 -182
  105. package/constants/token-data/optimismRegistryFixed.json.cjs +1 -1
  106. package/constants/token-data/optimismRegistryFixed.json.mjs +678 -175
  107. package/constants/token-data/polygonRegistry.json.cjs +1 -1
  108. package/constants/token-data/polygonRegistry.json.mjs +109 -109
  109. package/constants/token-data/polygonRegistryFixed.json.cjs +1 -1
  110. package/constants/token-data/polygonRegistryFixed.json.mjs +101 -101
  111. package/constants/token.limits.constants.cjs +1 -0
  112. package/constants/token.limits.constants.d.ts +5 -0
  113. package/constants/token.limits.constants.mjs +30 -0
  114. package/constants/vite.constants.cjs +1 -1
  115. package/constants/vite.constants.d.ts +5 -0
  116. package/constants/vite.constants.mjs +26 -22
  117. package/data-structures/Hinkal/Hinkal.cjs +1 -1
  118. package/data-structures/Hinkal/Hinkal.d.ts +46 -21
  119. package/data-structures/Hinkal/Hinkal.mjs +260 -92
  120. package/data-structures/Hinkal/IHinkal.d.ts +35 -11
  121. package/data-structures/Hinkal/hinkalActionBeefy.cjs +1 -1
  122. package/data-structures/Hinkal/hinkalActionBeefy.mjs +5 -4
  123. package/data-structures/Hinkal/hinkalActionConvex.cjs +1 -1
  124. package/data-structures/Hinkal/hinkalActionConvex.mjs +4 -3
  125. package/data-structures/Hinkal/hinkalActionCurve.cjs +1 -1
  126. package/data-structures/Hinkal/hinkalActionCurve.mjs +5 -4
  127. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.cjs +1 -0
  128. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.d.ts +3 -0
  129. package/data-structures/Hinkal/hinkalActionFundApproveAndTransact.mjs +61 -0
  130. package/data-structures/Hinkal/hinkalActionLidoEth.cjs +1 -1
  131. package/data-structures/Hinkal/hinkalActionLidoEth.mjs +9 -8
  132. package/data-structures/Hinkal/hinkalActionPendle.cjs +1 -1
  133. package/data-structures/Hinkal/hinkalActionPendle.mjs +17 -16
  134. package/data-structures/Hinkal/hinkalActionPendleLP.cjs +1 -1
  135. package/data-structures/Hinkal/hinkalActionPendleLP.mjs +14 -12
  136. package/data-structures/Hinkal/hinkalActionReceive.cjs +1 -0
  137. package/data-structures/Hinkal/hinkalActionReceive.d.ts +4 -0
  138. package/data-structures/Hinkal/hinkalActionReceive.mjs +39 -0
  139. package/data-structures/Hinkal/hinkalActionStake.cjs +1 -1
  140. package/data-structures/Hinkal/hinkalActionStake.mjs +12 -9
  141. package/data-structures/Hinkal/hinkalActionVolatile.cjs +1 -1
  142. package/data-structures/Hinkal/hinkalActionVolatile.mjs +25 -21
  143. package/data-structures/Hinkal/hinkalApprove.cjs +1 -0
  144. package/data-structures/Hinkal/hinkalApprove.d.ts +2 -0
  145. package/data-structures/Hinkal/hinkalApprove.mjs +120 -0
  146. package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -0
  147. package/data-structures/Hinkal/hinkalCheckTokenRegistry.d.ts +3 -0
  148. package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +12 -0
  149. package/data-structures/Hinkal/hinkalDeploySubAccount.cjs +1 -0
  150. package/data-structures/Hinkal/hinkalDeploySubAccount.d.ts +3 -0
  151. package/data-structures/Hinkal/hinkalDeploySubAccount.mjs +15 -0
  152. package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
  153. package/data-structures/Hinkal/hinkalDeposit.d.ts +3 -2
  154. package/data-structures/Hinkal/hinkalDeposit.mjs +96 -71
  155. package/data-structures/Hinkal/hinkalGetRecipientInfo.cjs +1 -1
  156. package/data-structures/Hinkal/hinkalGetRecipientInfo.d.ts +1 -1
  157. package/data-structures/Hinkal/hinkalGetRecipientInfo.mjs +5 -11
  158. package/data-structures/Hinkal/hinkalGetZkMeProvider.cjs +1 -1
  159. package/data-structures/Hinkal/hinkalGetZkMeProvider.mjs +6 -18
  160. package/data-structures/Hinkal/hinkalInsideTransact.cjs +1 -0
  161. package/data-structures/Hinkal/hinkalInsideTransact.d.ts +2 -0
  162. package/data-structures/Hinkal/hinkalInsideTransact.mjs +111 -0
  163. package/data-structures/Hinkal/hinkalMultiSend.cjs +1 -0
  164. package/data-structures/Hinkal/hinkalMultiSend.d.ts +3 -0
  165. package/data-structures/Hinkal/hinkalMultiSend.mjs +13 -0
  166. package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
  167. package/data-structures/Hinkal/hinkalPrivateWallet.d.ts +2 -1
  168. package/data-structures/Hinkal/hinkalPrivateWallet.mjs +83 -38
  169. package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -0
  170. package/data-structures/Hinkal/hinkalProoflessDeposit.d.ts +4 -0
  171. package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +46 -0
  172. package/data-structures/Hinkal/hinkalProxySwap.cjs +1 -0
  173. package/data-structures/Hinkal/hinkalProxySwap.d.ts +5 -0
  174. package/data-structures/Hinkal/hinkalProxySwap.mjs +36 -0
  175. package/data-structures/Hinkal/hinkalSignSubAccount.cjs +1 -0
  176. package/data-structures/Hinkal/hinkalSignSubAccount.d.ts +3 -0
  177. package/data-structures/Hinkal/hinkalSignSubAccount.mjs +20 -0
  178. package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
  179. package/data-structures/Hinkal/hinkalSwap.d.ts +2 -1
  180. package/data-structures/Hinkal/hinkalSwap.mjs +68 -60
  181. package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
  182. package/data-structures/Hinkal/hinkalWithdraw.d.ts +3 -1
  183. package/data-structures/Hinkal/hinkalWithdraw.mjs +76 -50
  184. package/data-structures/Hinkal/index.d.ts +1 -0
  185. package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  186. package/data-structures/Hinkal/resetMerkleTrees.mjs +18 -11
  187. package/data-structures/IndexedDB/activity-db.cjs +1 -0
  188. package/data-structures/IndexedDB/activity-db.d.ts +16 -0
  189. package/data-structures/IndexedDB/activity-db.mjs +124 -0
  190. package/data-structures/IndexedDB/balances-db.cjs +1 -0
  191. package/data-structures/IndexedDB/balances-db.d.ts +13 -0
  192. package/data-structures/IndexedDB/balances-db.mjs +75 -0
  193. package/data-structures/IndexedDB/contact-db.cjs +1 -0
  194. package/data-structures/IndexedDB/contact-db.d.ts +11 -0
  195. package/data-structures/IndexedDB/contact-db.mjs +44 -0
  196. package/data-structures/IndexedDB/index.d.ts +5 -0
  197. package/data-structures/IndexedDB/prices-db.cjs +1 -0
  198. package/data-structures/IndexedDB/prices-db.d.ts +9 -0
  199. package/data-structures/IndexedDB/prices-db.mjs +62 -0
  200. package/data-structures/IndexedDB/private-balances-db.cjs +1 -0
  201. package/data-structures/IndexedDB/private-balances-db.d.ts +9 -0
  202. package/data-structures/IndexedDB/private-balances-db.mjs +28 -0
  203. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs +1 -1
  204. package/data-structures/MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs +47 -44
  205. package/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -0
  206. package/data-structures/TokenDBs/PrivateTokensDB.d.ts +11 -0
  207. package/data-structures/TokenDBs/PrivateTokensDB.mjs +53 -0
  208. package/data-structures/TokenDBs/PublicTokensDB.cjs +1 -0
  209. package/data-structures/TokenDBs/PublicTokensDB.d.ts +13 -0
  210. package/data-structures/TokenDBs/PublicTokensDB.mjs +81 -0
  211. package/data-structures/TokenDBs/index.d.ts +2 -0
  212. package/data-structures/cacheDevices/AttachableMemoryCacheDevice.cjs +1 -0
  213. package/data-structures/cacheDevices/AttachableMemoryCacheDevice.d.ts +8 -0
  214. package/data-structures/cacheDevices/AttachableMemoryCacheDevice.mjs +28 -0
  215. package/data-structures/cacheDevices/BaseCacheDevice.cjs +1 -1
  216. package/data-structures/cacheDevices/BaseCacheDevice.d.ts +9 -6
  217. package/data-structures/cacheDevices/BaseCacheDevice.mjs +13 -4
  218. package/data-structures/cacheDevices/FileCacheDevice.cjs +1 -1
  219. package/data-structures/cacheDevices/FileCacheDevice.d.ts +1 -0
  220. package/data-structures/cacheDevices/FileCacheDevice.mjs +7 -3
  221. package/data-structures/cacheDevices/LocalStorageCacheDevice.cjs +1 -1
  222. package/data-structures/cacheDevices/LocalStorageCacheDevice.d.ts +2 -1
  223. package/data-structures/cacheDevices/LocalStorageCacheDevice.mjs +10 -5
  224. package/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  225. package/data-structures/crypto-keys/decodeUTXO.mjs +13 -12
  226. package/data-structures/crypto-keys/keys.cjs +1 -1
  227. package/data-structures/crypto-keys/keys.d.ts +13 -3
  228. package/data-structures/crypto-keys/keys.mjs +45 -34
  229. package/data-structures/custom-token-registry/CustomTokenRegistry.cjs +1 -1
  230. package/data-structures/custom-token-registry/CustomTokenRegistry.d.ts +2 -3
  231. package/data-structures/custom-token-registry/CustomTokenRegistry.mjs +17 -21
  232. package/data-structures/event-service/AbstractAccessTokenSnapshotService.cjs +1 -1
  233. package/data-structures/event-service/AbstractAccessTokenSnapshotService.mjs +15 -29
  234. package/data-structures/event-service/AbstractApprovalsSnapshotService.cjs +1 -0
  235. package/data-structures/event-service/AbstractApprovalsSnapshotService.d.ts +30 -0
  236. package/data-structures/event-service/AbstractApprovalsSnapshotService.mjs +104 -0
  237. package/data-structures/event-service/AbstractCommitmentsSnapshotService.cjs +1 -1
  238. package/data-structures/event-service/AbstractCommitmentsSnapshotService.mjs +24 -37
  239. package/data-structures/event-service/AbstractEventService.cjs +1 -1
  240. package/data-structures/event-service/AbstractEventService.d.ts +1 -1
  241. package/data-structures/event-service/AbstractEventService.mjs +34 -46
  242. package/data-structures/event-service/index.d.ts +1 -0
  243. package/data-structures/index.d.ts +2 -0
  244. package/data-structures/merkle-tree/MerkleTree.cjs +1 -1
  245. package/data-structures/merkle-tree/MerkleTree.d.ts +4 -1
  246. package/data-structures/merkle-tree/MerkleTree.mjs +66 -65
  247. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.cjs +1 -1
  248. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.d.ts +1 -1
  249. package/data-structures/merkle-tree/getPatchedAccessTokenMerkleTree.mjs +10 -6
  250. package/data-structures/provider-adapter/IProviderAdapter.d.ts +2 -0
  251. package/data-structures/snapshot/ClientAccessTokenSnapshotService.cjs +1 -1
  252. package/data-structures/snapshot/ClientAccessTokenSnapshotService.mjs +6 -10
  253. package/data-structures/snapshot/ClientApprovalsSnapshotService.cjs +1 -0
  254. package/data-structures/snapshot/ClientApprovalsSnapshotService.d.ts +8 -0
  255. package/data-structures/snapshot/ClientApprovalsSnapshotService.mjs +23 -0
  256. package/data-structures/snapshot/ClientCommitmentsSnapshotService.cjs +1 -1
  257. package/data-structures/snapshot/ClientCommitmentsSnapshotService.mjs +6 -10
  258. package/data-structures/snapshot/ClientNullifierSnapshotService.cjs +1 -1
  259. package/data-structures/snapshot/ClientNullifierSnapshotService.mjs +6 -10
  260. package/data-structures/token-price-fetcher/TokenChecker.cjs +1 -1
  261. package/data-structures/token-price-fetcher/TokenChecker.d.ts +1 -0
  262. package/data-structures/token-price-fetcher/TokenChecker.mjs +4 -2
  263. package/data-structures/transactions-manager/TransactionsManager.cjs +1 -1
  264. package/data-structures/transactions-manager/TransactionsManager.d.ts +6 -5
  265. package/data-structures/transactions-manager/TransactionsManager.mjs +95 -100
  266. package/data-structures/transactions-manager/history/getBeefyData.cjs +1 -1
  267. package/data-structures/transactions-manager/history/getBeefyData.mjs +3 -2
  268. package/data-structures/transactions-manager/history/getConvexData.cjs +1 -1
  269. package/data-structures/transactions-manager/history/getConvexData.mjs +3 -2
  270. package/data-structures/transactions-manager/history/getCurveData.cjs +1 -1
  271. package/data-structures/transactions-manager/history/getCurveData.mjs +3 -2
  272. package/data-structures/transactions-manager/history/getLidoData.cjs +1 -1
  273. package/data-structures/transactions-manager/history/getLidoData.mjs +3 -2
  274. package/data-structures/transactions-manager/history/getPendleData.cjs +1 -1
  275. package/data-structures/transactions-manager/history/getPendleData.mjs +13 -12
  276. package/data-structures/transactions-manager/history/getTxDetails.cjs +1 -1
  277. package/data-structures/transactions-manager/history/getTxDetails.mjs +22 -20
  278. package/data-structures/transactions-manager/history/getVolatileData.cjs +1 -1
  279. package/data-structures/transactions-manager/history/getVolatileData.mjs +11 -10
  280. package/data-structures/transactions-manager/history/history.types.cjs +1 -1
  281. package/data-structures/transactions-manager/history/history.types.mjs +4 -2
  282. package/data-structures/utxo/Utxo.cjs +1 -1
  283. package/data-structures/utxo/Utxo.d.ts +3 -3
  284. package/data-structures/utxo/Utxo.mjs +8 -7
  285. package/error-handling/error-codes.constants.cjs +2 -2
  286. package/error-handling/error-codes.constants.d.ts +20 -3
  287. package/error-handling/error-codes.constants.mjs +139 -126
  288. package/error-handling/get-error.message.cjs +1 -1
  289. package/error-handling/get-error.message.mjs +29 -25
  290. package/error-handling/index.d.ts +1 -0
  291. package/error-handling/logger.cjs +1 -0
  292. package/error-handling/logger.d.ts +5 -0
  293. package/error-handling/logger.mjs +16 -0
  294. package/error-handling/types.cjs +1 -1
  295. package/error-handling/types.d.ts +3 -1
  296. package/error-handling/types.mjs +2 -2
  297. package/functions/pre-transaction/getExternalSwapAddress.cjs +1 -0
  298. package/functions/pre-transaction/getExternalSwapAddress.d.ts +3 -0
  299. package/functions/pre-transaction/getExternalSwapAddress.mjs +26 -0
  300. package/functions/pre-transaction/getFeeStructure.cjs +1 -0
  301. package/functions/pre-transaction/getFeeStructure.d.ts +4 -0
  302. package/functions/pre-transaction/getFeeStructure.mjs +30 -0
  303. package/functions/pre-transaction/getFlatFees.cjs +1 -1
  304. package/functions/pre-transaction/getFlatFees.d.ts +3 -7
  305. package/functions/pre-transaction/getFlatFees.mjs +52 -46
  306. package/functions/pre-transaction/getSignatureDataForTransact.cjs +1 -0
  307. package/functions/pre-transaction/getSignatureDataForTransact.d.ts +3 -0
  308. package/functions/pre-transaction/getSignatureDataForTransact.mjs +6 -0
  309. package/functions/pre-transaction/index.d.ts +1 -0
  310. package/functions/pre-transaction/interaction-to-action.cjs +1 -1
  311. package/functions/pre-transaction/interaction-to-action.mjs +3 -2
  312. package/functions/pre-transaction/merge-with-fee-structure.cjs +1 -0
  313. package/functions/pre-transaction/merge-with-fee-structure.d.ts +2 -0
  314. package/functions/pre-transaction/merge-with-fee-structure.mjs +25 -0
  315. package/functions/pre-transaction/outputApprovalDataProcessing.cjs +1 -0
  316. package/functions/pre-transaction/outputApprovalDataProcessing.d.ts +16 -0
  317. package/functions/pre-transaction/outputApprovalDataProcessing.mjs +42 -0
  318. package/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
  319. package/functions/pre-transaction/outputUtxoProcessing.d.ts +1 -1
  320. package/functions/pre-transaction/outputUtxoProcessing.mjs +19 -30
  321. package/functions/pre-transaction/process-gas-estimates.cjs +1 -1
  322. package/functions/pre-transaction/process-gas-estimates.d.ts +2 -2
  323. package/functions/pre-transaction/process-gas-estimates.mjs +17 -28
  324. package/functions/pre-transaction/processAmountChanges.cjs +1 -1
  325. package/functions/pre-transaction/processAmountChanges.mjs +34 -23
  326. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.cjs +1 -0
  327. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.d.ts +6 -0
  328. package/functions/pre-transaction/shouldPatchAccessTokenMerkleTree.mjs +7 -0
  329. package/functions/private-wallet/emporium.helpers.cjs +1 -1
  330. package/functions/private-wallet/emporium.helpers.d.ts +17 -4
  331. package/functions/private-wallet/emporium.helpers.mjs +119 -12
  332. package/functions/private-wallet/emporium.swap.helpers.cjs +1 -0
  333. package/functions/private-wallet/emporium.swap.helpers.d.ts +5 -0
  334. package/functions/private-wallet/emporium.swap.helpers.mjs +92 -0
  335. package/functions/private-wallet/index.d.ts +2 -0
  336. package/functions/private-wallet/opProducer.cjs +1 -1
  337. package/functions/private-wallet/opProducer.mjs +1 -1
  338. package/functions/private-wallet/smartContractWalletCalculator.cjs +1 -0
  339. package/functions/private-wallet/smartContractWalletCalculator.d.ts +5 -0
  340. package/functions/private-wallet/smartContractWalletCalculator.mjs +25 -0
  341. package/functions/protocols/convex.protocols.cjs +1 -1
  342. package/functions/protocols/convex.protocols.mjs +10 -8
  343. package/functions/protocols/pendle.helpers.cjs +1 -1
  344. package/functions/protocols/pendle.helpers.mjs +16 -12
  345. package/functions/snarkjs/common.snarkjs.cjs +1 -1
  346. package/functions/snarkjs/common.snarkjs.d.ts +8 -5
  347. package/functions/snarkjs/common.snarkjs.mjs +177 -87
  348. package/functions/snarkjs/constant.cjs +1 -1
  349. package/functions/snarkjs/constant.d.ts +223 -2
  350. package/functions/snarkjs/constant.mjs +313 -93
  351. package/functions/snarkjs/constructEmporiumProof.cjs +1 -1
  352. package/functions/snarkjs/constructEmporiumProof.d.ts +6 -3
  353. package/functions/snarkjs/constructEmporiumProof.mjs +148 -84
  354. package/functions/snarkjs/constructGeneralZkProof.cjs +1 -1
  355. package/functions/snarkjs/constructGeneralZkProof.d.ts +5 -3
  356. package/functions/snarkjs/constructGeneralZkProof.mjs +141 -86
  357. package/functions/snarkjs/generateCircomData.cjs +1 -1
  358. package/functions/snarkjs/generateCircomData.d.ts +3 -2
  359. package/functions/snarkjs/generateCircomData.mjs +33 -35
  360. package/functions/snarkjs/generateZkProof.cjs +1 -1
  361. package/functions/snarkjs/generateZkProof.d.ts +2 -2
  362. package/functions/snarkjs/generateZkProof.mjs +4 -4
  363. package/functions/snarkjs/generateZkProofEnclave.cjs +1 -1
  364. package/functions/snarkjs/generateZkProofEnclave.d.ts +2 -1
  365. package/functions/snarkjs/generateZkProofEnclave.mjs +22 -29
  366. package/functions/snarkjs/generateZkProofSelf.cjs +1 -1
  367. package/functions/snarkjs/generateZkProofSelf.d.ts +2 -2
  368. package/functions/snarkjs/generateZkProofSelf.mjs +10 -10
  369. package/functions/snarkjs/getOriginalSender.cjs +1 -0
  370. package/functions/snarkjs/getOriginalSender.d.ts +1 -0
  371. package/functions/snarkjs/getOriginalSender.mjs +5 -0
  372. package/functions/snarkjs/getZKFiles.cjs +1 -1
  373. package/functions/snarkjs/getZKFiles.d.ts +3 -2
  374. package/functions/snarkjs/getZKFiles.mjs +14 -5
  375. package/functions/utils/addresses.cjs +1 -0
  376. package/functions/utils/addresses.d.ts +4 -0
  377. package/functions/utils/addresses.mjs +20 -0
  378. package/functions/utils/amounts.utils.cjs +1 -1
  379. package/functions/utils/amounts.utils.d.ts +4 -1
  380. package/functions/utils/amounts.utils.mjs +29 -27
  381. package/functions/utils/arraysMatch.cjs +1 -0
  382. package/functions/utils/arraysMatch.d.ts +1 -0
  383. package/functions/utils/arraysMatch.mjs +4 -0
  384. package/functions/utils/axelar.utils.cjs +1 -1
  385. package/functions/utils/axelar.utils.d.ts +1 -0
  386. package/functions/utils/axelar.utils.mjs +31 -9
  387. package/functions/utils/cacheDevice.utils.cjs +1 -1
  388. package/functions/utils/cacheDevice.utils.mjs +5 -3
  389. package/functions/utils/cacheFunctions.cjs +1 -1
  390. package/functions/utils/cacheFunctions.d.ts +10 -7
  391. package/functions/utils/cacheFunctions.mjs +62 -39
  392. package/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -0
  393. package/functions/utils/convertEmporiumOpToCallInfo.d.ts +2 -0
  394. package/functions/utils/convertEmporiumOpToCallInfo.mjs +10 -0
  395. package/functions/utils/convertIntegrationProviderToExternalActionId.cjs +1 -1
  396. package/functions/utils/convertIntegrationProviderToExternalActionId.d.ts +2 -1
  397. package/functions/utils/convertIntegrationProviderToExternalActionId.mjs +7 -10
  398. package/functions/utils/encodeTokenWithId.cjs +1 -0
  399. package/functions/utils/encodeTokenWithId.d.ts +2 -0
  400. package/functions/utils/encodeTokenWithId.mjs +4 -0
  401. package/functions/utils/encryptInputForEnclave.cjs +1 -0
  402. package/functions/utils/encryptInputForEnclave.d.ts +8 -0
  403. package/functions/utils/encryptInputForEnclave.mjs +43 -0
  404. package/functions/utils/erc20tokenFunctions.cjs +1 -1
  405. package/functions/utils/erc20tokenFunctions.d.ts +8 -2
  406. package/functions/utils/erc20tokenFunctions.mjs +22 -14
  407. package/functions/utils/evmNetworkFunctions.cjs +1 -1
  408. package/functions/utils/evmNetworkFunctions.mjs +6 -4
  409. package/functions/utils/external-action.utils.d.ts +2 -2
  410. package/functions/utils/fees.utils.cjs +1 -0
  411. package/functions/utils/fees.utils.d.ts +2 -0
  412. package/functions/utils/fees.utils.mjs +14 -0
  413. package/functions/utils/getBlockExplorerUrl.cjs +1 -0
  414. package/functions/utils/getBlockExplorerUrl.d.ts +1 -0
  415. package/functions/utils/getBlockExplorerUrl.mjs +6 -0
  416. package/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -0
  417. package/functions/utils/getRecipientInfoFromUserKeys.d.ts +3 -0
  418. package/functions/utils/getRecipientInfoFromUserKeys.mjs +18 -0
  419. package/functions/utils/index.d.ts +12 -0
  420. package/functions/utils/involves-permit2-op.cjs +1 -0
  421. package/functions/utils/involves-permit2-op.d.ts +1 -0
  422. package/functions/utils/involves-permit2-op.mjs +5 -0
  423. package/functions/utils/merkleTree.utils.cjs +1 -0
  424. package/functions/utils/merkleTree.utils.d.ts +2 -0
  425. package/functions/utils/merkleTree.utils.mjs +19 -0
  426. package/functions/utils/prepareHinkal.d.ts +6 -0
  427. package/functions/utils/processUseApprovalUtxoData.cjs +1 -0
  428. package/functions/utils/processUseApprovalUtxoData.d.ts +3 -0
  429. package/functions/utils/processUseApprovalUtxoData.mjs +19 -0
  430. package/functions/utils/publicBalance.utils.cjs +1 -0
  431. package/functions/utils/publicBalance.utils.d.ts +5 -0
  432. package/functions/utils/publicBalance.utils.mjs +25 -0
  433. package/functions/utils/replaceAddressInCalldata.cjs +1 -0
  434. package/functions/utils/replaceAddressInCalldata.d.ts +1 -0
  435. package/functions/utils/replaceAddressInCalldata.mjs +7 -0
  436. package/functions/utils/rpc-int-encode.cjs +1 -0
  437. package/functions/utils/rpc-int-encode.d.ts +2 -0
  438. package/functions/utils/rpc-int-encode.mjs +8 -0
  439. package/functions/utils/serialize.utils.cjs +1 -1
  440. package/functions/utils/serialize.utils.d.ts +1 -0
  441. package/functions/utils/serialize.utils.mjs +3 -2
  442. package/functions/utils/string.utils.cjs +1 -1
  443. package/functions/utils/string.utils.d.ts +3 -0
  444. package/functions/utils/string.utils.mjs +31 -7
  445. package/functions/utils/time.utils.cjs +1 -1
  446. package/functions/utils/time.utils.d.ts +1 -0
  447. package/functions/utils/time.utils.mjs +4 -3
  448. package/functions/utils/token-check.utils.cjs +1 -0
  449. package/functions/utils/token-check.utils.d.ts +1 -0
  450. package/functions/utils/token-check.utils.mjs +10 -0
  451. package/functions/utils/upToDateState.cjs +1 -0
  452. package/functions/utils/upToDateState.d.ts +2 -0
  453. package/functions/utils/upToDateState.mjs +11 -0
  454. package/functions/web3/events/balanceChangedCustomHandler.cjs +1 -0
  455. package/functions/web3/events/balanceChangedCustomHandler.d.ts +2 -0
  456. package/functions/web3/events/balanceChangedCustomHandler.mjs +14 -0
  457. package/functions/web3/events/balanceChangedHandler.cjs +1 -1
  458. package/functions/web3/events/balanceChangedHandler.mjs +5 -4
  459. package/functions/web3/events/getApprovedBalance.cjs +1 -0
  460. package/functions/web3/events/getApprovedBalance.d.ts +7 -0
  461. package/functions/web3/events/getApprovedBalance.mjs +80 -0
  462. package/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  463. package/functions/web3/events/getInputUtxoAndBalance.d.ts +16 -3
  464. package/functions/web3/events/getInputUtxoAndBalance.mjs +128 -46
  465. package/functions/web3/events/getShieldedBalance.cjs +2 -2
  466. package/functions/web3/events/getShieldedBalance.d.ts +1 -1
  467. package/functions/web3/events/getShieldedBalance.mjs +79 -82
  468. package/functions/web3/events/index.d.ts +2 -0
  469. package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
  470. package/functions/web3/functionCalls/accessTokenCalls.d.ts +2 -2
  471. package/functions/web3/functionCalls/accessTokenCalls.mjs +19 -17
  472. package/functions/web3/functionCalls/approveToken.cjs +1 -1
  473. package/functions/web3/functionCalls/approveToken.mjs +8 -7
  474. package/functions/web3/functionCalls/approveTokensToHinkal.cjs +1 -0
  475. package/functions/web3/functionCalls/approveTokensToHinkal.d.ts +4 -0
  476. package/functions/web3/functionCalls/approveTokensToHinkal.mjs +11 -0
  477. package/functions/web3/functionCalls/estimateGasRelayer.cjs +1 -1
  478. package/functions/web3/functionCalls/estimateGasRelayer.d.ts +2 -2
  479. package/functions/web3/functionCalls/estimateGasRelayer.mjs +14 -8
  480. package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +1 -0
  481. package/functions/web3/functionCalls/inHinkalApprovalCalls.d.ts +5 -0
  482. package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +32 -0
  483. package/functions/web3/functionCalls/relayFunctions.d.ts +1 -15
  484. package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  485. package/functions/web3/functionCalls/transactCallDirect.d.ts +2 -2
  486. package/functions/web3/functionCalls/transactCallDirect.mjs +29 -42
  487. package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
  488. package/functions/web3/functionCalls/transactCallRelayer.d.ts +2 -2
  489. package/functions/web3/functionCalls/transactCallRelayer.mjs +26 -5
  490. package/functions/web3/odosAPI.cjs +1 -1
  491. package/functions/web3/odosAPI.mjs +6 -3
  492. package/functions/web3/oneInchAPI.cjs +1 -1
  493. package/functions/web3/oneInchAPI.mjs +6 -3
  494. package/functions/web3/runContractFunction.cjs +1 -1
  495. package/functions/web3/runContractFunction.mjs +3 -2
  496. package/functions/web3/uniswapAPI.cjs +1 -1
  497. package/functions/web3/uniswapAPI.mjs +6 -3
  498. package/index.cjs +1 -1
  499. package/index.mjs +756 -612
  500. package/package.json +6 -2
  501. package/providers/EthersProviderAdapter.cjs +1 -1
  502. package/providers/EthersProviderAdapter.d.ts +7 -3
  503. package/providers/EthersProviderAdapter.mjs +31 -11
  504. package/providers/WagmiProviderAdapter.cjs +1 -1
  505. package/providers/WagmiProviderAdapter.d.ts +3 -1
  506. package/providers/WagmiProviderAdapter.mjs +12 -4
  507. package/providers/prepareEthersHinkal.cjs +1 -1
  508. package/providers/prepareEthersHinkal.mjs +17 -11
  509. package/providers/prepareWagmiHinkal.cjs +1 -1
  510. package/providers/prepareWagmiHinkal.mjs +17 -11
  511. package/types/API.types.d.ts +21 -0
  512. package/types/ICacheDevice.d.ts +4 -3
  513. package/types/TransactionSimulator.types.d.ts +9 -0
  514. package/types/activities.types.cjs +1 -0
  515. package/types/activities.types.d.ts +45 -0
  516. package/types/activities.types.mjs +13 -0
  517. package/types/balances.types.cjs +1 -0
  518. package/types/balances.types.d.ts +17 -0
  519. package/types/balances.types.mjs +4 -0
  520. package/types/cache.types.cjs +1 -0
  521. package/types/cache.types.d.ts +27 -0
  522. package/types/cache.types.mjs +4 -0
  523. package/types/circom-data.types.d.ts +29 -9
  524. package/types/commitments.types.d.ts +6 -0
  525. package/types/contacts.types.d.ts +5 -0
  526. package/types/crypto.types.d.ts +1 -0
  527. package/types/earlyAccessCode.types.d.ts +4 -0
  528. package/types/ethereum-network.types.cjs +1 -1
  529. package/types/ethereum-network.types.d.ts +66 -62
  530. package/types/ethereum-network.types.mjs +1 -1
  531. package/types/external-action.types.cjs +1 -1
  532. package/types/external-action.types.d.ts +2 -1
  533. package/types/external-action.types.mjs +1 -1
  534. package/types/fee.types.d.ts +9 -0
  535. package/types/hinkal.types.cjs +1 -1
  536. package/types/hinkal.types.d.ts +43 -5
  537. package/types/hinkal.types.mjs +37 -13
  538. package/types/index.d.ts +9 -0
  539. package/types/rewards.types.cjs +1 -1
  540. package/types/rewards.types.d.ts +3 -4
  541. package/types/rewards.types.mjs +12 -12
  542. package/types/sandbox.types.cjs +1 -0
  543. package/types/sandbox.types.d.ts +157 -0
  544. package/types/sandbox.types.mjs +4 -0
  545. package/types/tenderly.api.types.d.ts +180 -0
  546. package/types/token-with-id.types.d.ts +4 -0
  547. package/types/token.types.d.ts +23 -0
  548. package/types/transactions.types.cjs +1 -1
  549. package/types/transactions.types.d.ts +31 -0
  550. package/types/transactions.types.mjs +8 -5
  551. package/types/wc.types.d.ts +89 -0
  552. package/types/with-id.types.d.ts +3 -0
  553. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.cjs +1 -1
  554. package/webworker/snarkjsWorker/snarkjsWorkerLauncher.mjs +1 -1
  555. package/webworker/snarkjsWorker/snarkjsWorkerLogic.cjs +1 -1
  556. package/webworker/snarkjsWorker/snarkjsWorkerLogic.mjs +26 -31
  557. package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
  558. package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
  559. package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -1
  560. package/webworker/utxoWorker/utxoWorkerLogic.mjs +58 -50
  561. package/webworker/viteWorkerURL.constant.cjs +3 -3
  562. package/webworker/viteWorkerURL.constant.mjs +3 -3
  563. package/webworker/workerFactory.cjs +1 -1
  564. package/webworker/workerFactory.mjs +2 -2
  565. package/webworker/workerProxy.cjs +1 -1
  566. package/webworker/workerProxy.d.ts +11 -11
  567. package/webworker/workerProxy.mjs +24 -26
  568. package/webworker/zkProofWorker/zkProofWorker.types.d.ts +2 -0
  569. package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
  570. package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
  571. package/webworker/zkProofWorker/zkProofWorkerLogic.cjs +1 -1
  572. package/webworker/zkProofWorker/zkProofWorkerLogic.mjs +47 -61
  573. package/functions/utils/memoize.utils.cjs +0 -1
  574. package/functions/utils/memoize.utils.mjs +0 -14
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("idb-keyval"),d=require("../../error-handling/logger.cjs");class l{STORAGE_KEY="contacts";checkForDuplicate(a,t,e){if(a.find(({ethereumAddress:o,nickname:r})=>(o===t.ethereumAddress||r===t.nickname)&&o!==e)!==void 0)throw new Error("Duplicate Contact attribute")}async createContact(a,t){const e=a.toLowerCase(),c=await s.get(this.STORAGE_KEY)??{},o=c[e]??[];this.checkForDuplicate(o,t),o.push(t),c[e]=o,await s.set(this.STORAGE_KEY,c)}async getContacts(a){try{const t=a.toLowerCase(),e=await s.get(this.STORAGE_KEY);return!e||!e[t]?[]:e[t]}catch(t){return d.Logger.error("Error while getting contacts:",t),[]}}async editContact(a,t,e){const c=a.toLowerCase(),o=await s.get(this.STORAGE_KEY),r=o?.[c];if(!o||!r)throw new Error("Contacts could not be fetched");this.checkForDuplicate(r,e,t);const n=r.findIndex(({ethereumAddress:i})=>i===t);if(n===-1)throw new Error("Contact to be edited was not found");r[n]=e,o[c]=r,await s.set(this.STORAGE_KEY,o)}async deleteContact(a,t){const e=a.toLowerCase(),c=await s.get(this.STORAGE_KEY),o=c?.[e];if(!c||!o)throw new Error("Contacts could not be fetched");const r=o.filter(({ethereumAddress:n})=>n!==t);c[e]=r,await s.set(this.STORAGE_KEY,c)}}const w=new l;exports.contactStorage=w;
@@ -0,0 +1,11 @@
1
+ import { Contact } from '../../types/contacts.types';
2
+ declare class ContactStorage {
3
+ private readonly STORAGE_KEY;
4
+ private checkForDuplicate;
5
+ createContact(walletAddress: string, newContact: Contact): Promise<void>;
6
+ getContacts(walletAddress: string): Promise<Contact[]>;
7
+ editContact(walletAddress: string, oldContactAddress: string, editedContact: Contact): Promise<void>;
8
+ deleteContact(walletAddress: string, contactAddressToDelete: string): Promise<void>;
9
+ }
10
+ export declare const contactStorage: ContactStorage;
11
+ export {};
@@ -0,0 +1,44 @@
1
+ import { get as n, set as i } from "idb-keyval";
2
+ import { Logger as w } from "../../error-handling/logger.mjs";
3
+ class h {
4
+ STORAGE_KEY = "contacts";
5
+ checkForDuplicate(c, t, o) {
6
+ if (c.find(
7
+ ({ ethereumAddress: e, nickname: r }) => (e === t.ethereumAddress || r === t.nickname) && e !== o
8
+ ) !== void 0)
9
+ throw new Error("Duplicate Contact attribute");
10
+ }
11
+ async createContact(c, t) {
12
+ const o = c.toLowerCase(), a = await n(this.STORAGE_KEY) ?? {}, e = a[o] ?? [];
13
+ this.checkForDuplicate(e, t), e.push(t), a[o] = e, await i(this.STORAGE_KEY, a);
14
+ }
15
+ async getContacts(c) {
16
+ try {
17
+ const t = c.toLowerCase(), o = await n(this.STORAGE_KEY);
18
+ return !o || !o[t] ? [] : o[t];
19
+ } catch (t) {
20
+ return w.error("Error while getting contacts:", t), [];
21
+ }
22
+ }
23
+ async editContact(c, t, o) {
24
+ const a = c.toLowerCase(), e = await n(this.STORAGE_KEY), r = e?.[a];
25
+ if (!e || !r)
26
+ throw new Error("Contacts could not be fetched");
27
+ this.checkForDuplicate(r, o, t);
28
+ const s = r.findIndex(({ ethereumAddress: d }) => d === t);
29
+ if (s === -1)
30
+ throw new Error("Contact to be edited was not found");
31
+ r[s] = o, e[a] = r, await i(this.STORAGE_KEY, e);
32
+ }
33
+ async deleteContact(c, t) {
34
+ const o = c.toLowerCase(), a = await n(this.STORAGE_KEY), e = a?.[o];
35
+ if (!a || !e)
36
+ throw new Error("Contacts could not be fetched");
37
+ const r = e.filter(({ ethereumAddress: s }) => s !== t);
38
+ a[o] = r, await i(this.STORAGE_KEY, a);
39
+ }
40
+ }
41
+ const C = new h();
42
+ export {
43
+ C as contactStorage
44
+ };
@@ -0,0 +1,5 @@
1
+ export * from './activity-db';
2
+ export * from './balances-db';
3
+ export * from './private-balances-db';
4
+ export * from './prices-db';
5
+ export * from './contact-db';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("idb-keyval"),p=require("../../API/API.cjs"),l=require("../../functions/utils/string.utils.cjs");class g{tokenPricesRecordLabel="tokenPrices";async getPrices(){return await P.get(this.tokenPricesRecordLabel)}async updatePrices(e,t){if(!t.length)return[];const{prices:r}=await p.API.getTokenPrices(e,t);return await P.update(this.tokenPricesRecordLabel,(i={})=>{const c={...i};return r.forEach((s,o)=>{c[l.getStateKey(t[o],e)]=s}),c}),r}async getAndUpdatePrices(e,t){const r=await this.getPrices();let i=new Array(t.length).fill(0);if(!r)i=await this.updatePrices(e,t);else{const c=[],s=[];t.forEach((a,n)=>{const u=l.getStateKey(a,e);r[u]?i[n]=r[u]:(c.push(a),s.push(n))});const o=await this.updatePrices(e,c);s.forEach((a,n)=>{i[a]=o[n]})}return i}async updateCachedPricesByChain(e){const t=await this.getPrices();if(!t||Object.keys(t).length===0)return;const r=Object.entries(t).filter(([c])=>{const[,s]=c.split("-");return parseInt(s,10)===e}).map(([c])=>c.split("-")[0]);if(r.length===0)return;const{prices:i}=await p.API.getTokenPrices(e,r);await P.update(this.tokenPricesRecordLabel,(c={})=>{const s={...c};return i.forEach((o,a)=>{const n=l.getStateKey(r[a],e);s[n]=o}),s})}}const h=new g;exports.pricesStorage=h;
@@ -0,0 +1,9 @@
1
+ declare class PricesStorage {
2
+ readonly tokenPricesRecordLabel = "tokenPrices";
3
+ getPrices(): Promise<Record<string, number> | undefined>;
4
+ updatePrices(chainId: number, erc20Addresses: string[]): Promise<number[]>;
5
+ getAndUpdatePrices(currentChainId: number, erc20Addresses: string[]): Promise<number[]>;
6
+ updateCachedPricesByChain(chainId: number): Promise<void>;
7
+ }
8
+ export declare const pricesStorage: PricesStorage;
9
+ export {};
@@ -0,0 +1,62 @@
1
+ import { get as u, update as l } from "idb-keyval";
2
+ import { API as h } from "../../API/API.mjs";
3
+ import { getStateKey as P } from "../../functions/utils/string.utils.mjs";
4
+ class f {
5
+ tokenPricesRecordLabel = "tokenPrices";
6
+ async getPrices() {
7
+ return await u(this.tokenPricesRecordLabel);
8
+ }
9
+ async updatePrices(e, t) {
10
+ if (!t.length)
11
+ return [];
12
+ const { prices: r } = await h.getTokenPrices(e, t);
13
+ return await l(this.tokenPricesRecordLabel, (i = {}) => {
14
+ const c = { ...i };
15
+ return r.forEach((s, o) => {
16
+ c[P(t[o], e)] = s;
17
+ }), c;
18
+ }), r;
19
+ }
20
+ // Fetches token prices and updates missing prices as needed.
21
+ async getAndUpdatePrices(e, t) {
22
+ const r = await this.getPrices();
23
+ let i = new Array(t.length).fill(0);
24
+ if (!r)
25
+ i = await this.updatePrices(e, t);
26
+ else {
27
+ const c = [], s = [];
28
+ t.forEach((a, n) => {
29
+ const p = P(a, e);
30
+ r[p] ? i[n] = r[p] : (c.push(a), s.push(n));
31
+ });
32
+ const o = await this.updatePrices(e, c);
33
+ s.forEach((a, n) => {
34
+ i[a] = o[n];
35
+ });
36
+ }
37
+ return i;
38
+ }
39
+ async updateCachedPricesByChain(e) {
40
+ const t = await this.getPrices();
41
+ if (!t || Object.keys(t).length === 0)
42
+ return;
43
+ const r = Object.entries(t).filter(([c]) => {
44
+ const [, s] = c.split("-");
45
+ return parseInt(s, 10) === e;
46
+ }).map(([c]) => c.split("-")[0]);
47
+ if (r.length === 0)
48
+ return;
49
+ const { prices: i } = await h.getTokenPrices(e, r);
50
+ await l(this.tokenPricesRecordLabel, (c = {}) => {
51
+ const s = { ...c };
52
+ return i.forEach((o, a) => {
53
+ const n = P(r[a], e);
54
+ s[n] = o;
55
+ }), s;
56
+ });
57
+ }
58
+ }
59
+ const m = new f();
60
+ export {
61
+ m as pricesStorage
62
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("idb-keyval"),n=require("../../functions/utils/string.utils.cjs");class r{balancesRecordLabel="privateWalletsBalances";async getBalances(){return await l.get(this.balancesRecordLabel)}async getBalancesByWallet(e,t){const a=await this.getBalances();if(!a)return;const s=n.getStateKey(e,t,!0);return a[s]}async setBalances(e,t,a){await l.update(this.balancesRecordLabel,(s={})=>{const c=n.getStateKey(e,t,!0);return{...s,[c]:a}})}}const i=new r;exports.privateBalancesStorage=i;
@@ -0,0 +1,9 @@
1
+ import { TokenBalance } from '../../types/token.types';
2
+ declare class PrivateBalancesStorage {
3
+ readonly balancesRecordLabel = "privateWalletsBalances";
4
+ getBalances(): Promise<Record<string, TokenBalance[]> | undefined>;
5
+ getBalancesByWallet(address: string, chainId: number): Promise<TokenBalance[] | undefined>;
6
+ setBalances(address: string, chainId: number, newBalances: TokenBalance[]): Promise<void>;
7
+ }
8
+ export declare const privateBalancesStorage: PrivateBalancesStorage;
9
+ export {};
@@ -0,0 +1,28 @@
1
+ import { get as c, update as r } from "idb-keyval";
2
+ import { getStateKey as l } from "../../functions/utils/string.utils.mjs";
3
+ class o {
4
+ balancesRecordLabel = "privateWalletsBalances";
5
+ async getBalances() {
6
+ return await c(this.balancesRecordLabel);
7
+ }
8
+ async getBalancesByWallet(a, t) {
9
+ const e = await this.getBalances();
10
+ if (!e)
11
+ return;
12
+ const s = l(a, t, !0);
13
+ return e[s];
14
+ }
15
+ async setBalances(a, t, e) {
16
+ await r(this.balancesRecordLabel, (s = {}) => {
17
+ const n = l(a, t, !0);
18
+ return {
19
+ ...s,
20
+ [n]: e
21
+ };
22
+ });
23
+ }
24
+ }
25
+ const u = new o();
26
+ export {
27
+ u as privateBalancesStorage
28
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../utxo/Utxo.cjs"),u=require("../../webworker/utxoWorker/utxoWorker.types.cjs"),y=require("../../webworker/performTaskWithWorker.cjs"),d=require("../../webworker/worker.registry.cjs"),m=require("../../constants/vite.constants.cjs");class S{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){m.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.ceil(navigator.deviceMemory??4))}async createUtxoPromise(s){return await y.performTaskWithWorker({type:d.WorkerVariant.UTXO,payload:s})}async batchFilterUtxosWithNullifier(s,t){const r=this.sliceArrayIntoParts(s,this.NUM_WORKERS).map(o=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:o.map(a=>a.getConstructableParams()),nullifiers:t}}));return(await Promise.all(r)).flat().map(o=>new p.Utxo(o))}async buildBatchProcess(s,t){const r=this.sliceArrayIntoParts(s,this.NUM_WORKERS).map(a=>this.createUtxoPromise({type:u.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:t.getSignature(),encryptedOutputs:a}}));return(await Promise.all(r)).flat().map(a=>new p.Utxo(a))}sliceArrayIntoParts(s,t){const e=Math.ceil(s.length/t);return Array.from({length:t},(c,o)=>s.slice(e*o,e*(o+1)))}findLastOutput(s,t){let e=t;return s.forEach(r=>{r!==t&&(e=r)}),e}async batchProcess(s,t,e){const r=this.sliceArrayIntoParts(s,this.NUM_WORKERS_BATCH_PROCESS),c=e.getSignature(),o=r.map(i=>{const n={type:u.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:i,lastOutput:t,signature:c}};return this.createUtxoPromise(n)}),a=await Promise.all(o),R=a.map(({additionalEncryptedOutputs:i})=>i).flat(),l=new Set,h=R.reduce((i,n)=>l.has(n.value)?i:(l.add(n.value),[...i,n]),[]),U=this.findLastOutput(a.map(i=>i.lastOutput),t);return{additionalEncryptedOutputs:h,lastOutput:U??t}}}exports.MultiThreadedUtxoUtils=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../crypto-keys/keys.cjs"),d=require("../utxo/Utxo.cjs"),l=require("../../webworker/utxoWorker/utxoWorker.types.cjs"),U=require("../../webworker/performTaskWithWorker.cjs"),S=require("../../webworker/worker.registry.cjs"),m=require("../../constants/vite.constants.cjs");class _{NUM_WORKERS;NUM_WORKERS_BATCH_PROCESS;constructor(){m.isNode?(this.NUM_WORKERS=1,this.NUM_WORKERS_BATCH_PROCESS=1):(this.NUM_WORKERS=3,this.NUM_WORKERS_BATCH_PROCESS=Math.ceil(navigator.deviceMemory??4))}async createUtxoPromise(s){return await U.performTaskWithWorker({type:S.WorkerVariant.UTXO,payload:s})}async batchFilterUtxosWithNullifier(s,t){const a=this.sliceArrayIntoParts(s,this.NUM_WORKERS).map(e=>this.createUtxoPromise({type:l.UtxoWorkerActionType.BATCH_FILTER_UTXOS_WITH_NULLIFIER,data:{utxos:e.map(n=>n.getConstructableParams()),nullifiers:t}})),i=await Promise.all(a);return i.forEach(e=>{h.stealthPairCacheDevice.mergeWithSerialized(e.stealthPairCache),h.stealthAddressCacheDevice.mergeWithSerialized(e.stealthAddressCache)}),i.flatMap(e=>e.utxoConstructors).map(e=>new d.Utxo(e))}async buildBatchProcess(s,t){const a=this.sliceArrayIntoParts(s,this.NUM_WORKERS).map(c=>this.createUtxoPromise({type:l.UtxoWorkerActionType.BUILD_UTXOS,data:{signature:t.getSignature(),encryptedOutputs:c}}));return(await Promise.all(a)).flat().map(c=>new d.Utxo(c))}sliceArrayIntoParts(s,t){const r=Math.ceil(s.length/t);return Array.from({length:t},(i,e)=>s.slice(r*e,r*(e+1)))}findLastOutput(s,t){let r=t;return s.forEach(a=>{a!==t&&(r=a)}),r}async batchProcess(s,t,r){const a=this.sliceArrayIntoParts(s,this.NUM_WORKERS_BATCH_PROCESS),i=r.getSignature(),e=a.map(o=>{const u={type:l.UtxoWorkerActionType.DECIPHER_OUTPUTS,data:{encryptedOutputs:o,lastOutput:t,signature:i}};return this.createUtxoPromise(u)}),n=await Promise.all(e),c=n.map(({additionalEncryptedOutputs:o})=>o).flat(),p=new Set,R=c.reduce((o,u)=>p.has(u.value)?o:(p.add(u.value),[...o,u]),[]),y=this.findLastOutput(n.map(o=>o.lastOutput),t);return{additionalEncryptedOutputs:R,lastOutput:y??t}}}exports.MultiThreadedUtxoUtils=_;
@@ -1,77 +1,80 @@
1
- import { Utxo as l } from "../utxo/Utxo.mjs";
2
- import { UtxoWorkerActionType as u } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
3
- import { performTaskWithWorker as S } from "../../webworker/performTaskWithWorker.mjs";
4
- import { WorkerVariant as d } from "../../webworker/worker.registry.mjs";
5
- import { isNode as O } from "../../constants/vite.constants.mjs";
6
- class W {
1
+ import { stealthPairCacheDevice as d, stealthAddressCacheDevice as S } from "../crypto-keys/keys.mjs";
2
+ import { Utxo as h } from "../utxo/Utxo.mjs";
3
+ import { UtxoWorkerActionType as l } from "../../webworker/utxoWorker/utxoWorker.types.mjs";
4
+ import { performTaskWithWorker as O } from "../../webworker/performTaskWithWorker.mjs";
5
+ import { WorkerVariant as U } from "../../webworker/worker.registry.mjs";
6
+ import { isNode as y } from "../../constants/vite.constants.mjs";
7
+ class T {
7
8
  NUM_WORKERS;
8
9
  NUM_WORKERS_BATCH_PROCESS;
9
10
  constructor() {
10
- O ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.ceil(navigator.deviceMemory ?? 4));
11
+ y ? (this.NUM_WORKERS = 1, this.NUM_WORKERS_BATCH_PROCESS = 1) : (this.NUM_WORKERS = 3, this.NUM_WORKERS_BATCH_PROCESS = Math.ceil(navigator.deviceMemory ?? 4));
11
12
  }
12
- async createUtxoPromise(s) {
13
- return await S({
14
- type: d.UTXO,
15
- payload: s
13
+ async createUtxoPromise(e) {
14
+ return await O({
15
+ type: U.UTXO,
16
+ payload: e
16
17
  });
17
18
  }
18
- async batchFilterUtxosWithNullifier(s, t) {
19
- const r = this.sliceArrayIntoParts(s, this.NUM_WORKERS).map(
20
- (a) => this.createUtxoPromise({
21
- type: u.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
19
+ async batchFilterUtxosWithNullifier(e, t) {
20
+ const a = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map(
21
+ (s) => this.createUtxoPromise({
22
+ type: l.BATCH_FILTER_UTXOS_WITH_NULLIFIER,
22
23
  data: {
23
- utxos: a.map((o) => o.getConstructableParams()),
24
+ utxos: s.map((n) => n.getConstructableParams()),
24
25
  nullifiers: t
25
26
  }
26
27
  })
27
- );
28
- return (await Promise.all(r)).flat().map((a) => new l(a));
28
+ ), i = await Promise.all(a);
29
+ return i.forEach((s) => {
30
+ d.mergeWithSerialized(s.stealthPairCache), S.mergeWithSerialized(s.stealthAddressCache);
31
+ }), i.flatMap((s) => s.utxoConstructors).map((s) => new h(s));
29
32
  }
30
- async buildBatchProcess(s, t) {
31
- const r = this.sliceArrayIntoParts(s, this.NUM_WORKERS).map(
32
- (o) => this.createUtxoPromise({
33
- type: u.BUILD_UTXOS,
34
- data: { signature: t.getSignature(), encryptedOutputs: o }
33
+ async buildBatchProcess(e, t) {
34
+ const a = this.sliceArrayIntoParts(e, this.NUM_WORKERS).map(
35
+ (c) => this.createUtxoPromise({
36
+ type: l.BUILD_UTXOS,
37
+ data: { signature: t.getSignature(), encryptedOutputs: c }
35
38
  })
36
39
  );
37
- return (await Promise.all(r)).flat().map((o) => new l(o));
40
+ return (await Promise.all(a)).flat().map((c) => new h(c));
38
41
  }
39
- sliceArrayIntoParts(s, t) {
40
- const e = Math.ceil(s.length / t);
42
+ sliceArrayIntoParts(e, t) {
43
+ const r = Math.ceil(e.length / t);
41
44
  return Array.from(
42
45
  { length: t },
43
- (c, a) => s.slice(e * a, e * (a + 1))
46
+ (i, s) => e.slice(r * s, r * (s + 1))
44
47
  );
45
48
  }
46
- findLastOutput(s, t) {
47
- let e = t;
48
- return s.forEach((r) => {
49
- r !== t && (e = r);
50
- }), e;
49
+ findLastOutput(e, t) {
50
+ let r = t;
51
+ return e.forEach((a) => {
52
+ a !== t && (r = a);
53
+ }), r;
51
54
  }
52
- async batchProcess(s, t, e) {
53
- const r = this.sliceArrayIntoParts(s, this.NUM_WORKERS_BATCH_PROCESS), c = e.getSignature(), a = r.map((i) => {
54
- const n = {
55
- type: u.DECIPHER_OUTPUTS,
55
+ async batchProcess(e, t, r) {
56
+ const a = this.sliceArrayIntoParts(e, this.NUM_WORKERS_BATCH_PROCESS), i = r.getSignature(), s = a.map((o) => {
57
+ const u = {
58
+ type: l.DECIPHER_OUTPUTS,
56
59
  data: {
57
- encryptedOutputs: i,
60
+ encryptedOutputs: o,
58
61
  lastOutput: t,
59
62
  // doesn't matter what we pass here, it will not be used regardless
60
- signature: c
63
+ signature: i
61
64
  }
62
65
  };
63
- return this.createUtxoPromise(n);
64
- }), o = await Promise.all(a), m = o.map(({ additionalEncryptedOutputs: i }) => i).flat(), p = /* @__PURE__ */ new Set(), R = m.reduce((i, n) => p.has(n.value) ? i : (p.add(n.value), [...i, n]), []), h = this.findLastOutput(
65
- o.map((i) => i.lastOutput),
66
+ return this.createUtxoPromise(u);
67
+ }), n = await Promise.all(s), c = n.map(({ additionalEncryptedOutputs: o }) => o).flat(), p = /* @__PURE__ */ new Set(), m = c.reduce((o, u) => p.has(u.value) ? o : (p.add(u.value), [...o, u]), []), R = this.findLastOutput(
68
+ n.map((o) => o.lastOutput),
66
69
  t
67
70
  );
68
71
  return {
69
- additionalEncryptedOutputs: R,
70
- lastOutput: h ?? t
72
+ additionalEncryptedOutputs: m,
73
+ lastOutput: R ?? t
71
74
  // keep the last output the same if no new output is present
72
75
  };
73
76
  }
74
77
  }
75
78
  export {
76
- W as MultiThreadedUtxoUtils
79
+ T as MultiThreadedUtxoUtils
77
80
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("idb-keyval"),P=require("../../API/API.cjs"),g=require("../../error-handling/logger.cjs"),h=require("../../functions/utils/caseInsensitive.utils.cjs"),k=require("../../types/cache.types.cjs"),T=require("../../functions/utils/string.utils.cjs");class l{fetchedTokens={};initalFetched=!1;async updateFetchedTokens(){const e=await i.get(k.StorageKeys.PRIVATE_TOKENS);this.fetchedTokens=e??{},this.initalFetched=!0}async getPrivateTokens(e,t){const s=T.getStateKey(t,e);return(await i.get(k.StorageKeys.PRIVATE_TOKENS))?.[s]||[]}async fetchPrivateTokens(e,t,s){try{const r=[...new Set(t.map(n=>n.toLowerCase()))].filter(n=>n&&!h.lowerCaseIncludes(s,n));return g.Logger.log("tokenAddresses",r),r.length?(await P.API.tokensInfoCall(e,r)).filter(n=>!!n):[]}catch(r){return g.Logger.error("Error fetching private tokens:",r),[]}}async fetchAndUpdatePrivateTokens(e,t,s,r){const n=(await this.getPrivateTokens(t,s)).map(o=>o.erc20TokenAddress),y=r??await this.fetchPrivateTokens(t,e,n),d=T.getStateKey(s,t);await i.update(k.StorageKeys.PRIVATE_TOKENS,(o={})=>{const a=o?.[d]||[],p=a.map(c=>c.erc20TokenAddress),f=y.filter(c=>!h.lowerCaseIncludes(p,c.erc20TokenAddress));a.push(...f);const u={...o,[d]:a};return this.fetchedTokens=u,u})}getFetchedTokens(e,t){const s=T.getStateKey(t,e);return this.fetchedTokens[s]||[]}}const w=new l;exports.PrivateTokensDB=l;exports.privateTokensDB=w;
@@ -0,0 +1,11 @@
1
+ import { ERC20Token } from '../../types/token.types';
2
+ export declare class PrivateTokensDB {
3
+ private fetchedTokens;
4
+ initalFetched: boolean;
5
+ updateFetchedTokens(): Promise<void>;
6
+ getPrivateTokens(chainId: number, walletAddress: string): Promise<ERC20Token[]>;
7
+ private fetchPrivateTokens;
8
+ fetchAndUpdatePrivateTokens(erc20Addresses: string[], chainId: number, walletAddress: string, preFetchedTokens?: ERC20Token[]): Promise<void>;
9
+ getFetchedTokens(chainId: number, walletAddress: string): ERC20Token[];
10
+ }
11
+ export declare const privateTokensDB: PrivateTokensDB;
@@ -0,0 +1,53 @@
1
+ import { get as p, update as l } from "idb-keyval";
2
+ import { API as w } from "../../API/API.mjs";
3
+ import { Logger as f } from "../../error-handling/logger.mjs";
4
+ import { lowerCaseIncludes as h } from "../../functions/utils/caseInsensitive.utils.mjs";
5
+ import { StorageKeys as i } from "../../types/cache.types.mjs";
6
+ import { getStateKey as k } from "../../functions/utils/string.utils.mjs";
7
+ class A {
8
+ fetchedTokens = {};
9
+ initalFetched = !1;
10
+ async updateFetchedTokens() {
11
+ const e = await p(i.PRIVATE_TOKENS);
12
+ this.fetchedTokens = e ?? {}, this.initalFetched = !0;
13
+ }
14
+ async getPrivateTokens(e, t) {
15
+ const s = k(t, e);
16
+ return (await p(i.PRIVATE_TOKENS))?.[s] || [];
17
+ }
18
+ async fetchPrivateTokens(e, t, s) {
19
+ try {
20
+ const r = [...new Set(t.map((o) => o.toLowerCase()))].filter(
21
+ (o) => o && !h(s, o)
22
+ );
23
+ return f.log("tokenAddresses", r), r.length ? (await w.tokensInfoCall(e, r)).filter(
24
+ (o) => !!o
25
+ ) : [];
26
+ } catch (r) {
27
+ return f.error("Error fetching private tokens:", r), [];
28
+ }
29
+ }
30
+ async fetchAndUpdatePrivateTokens(e, t, s, r) {
31
+ const o = (await this.getPrivateTokens(t, s)).map((n) => n.erc20TokenAddress), v = r ?? await this.fetchPrivateTokens(t, e, o), T = k(s, t);
32
+ await l(i.PRIVATE_TOKENS, (n = {}) => {
33
+ const a = n?.[T] || [], u = a.map((c) => c.erc20TokenAddress), g = v.filter(
34
+ (c) => !h(u, c.erc20TokenAddress)
35
+ );
36
+ a.push(...g);
37
+ const d = {
38
+ ...n,
39
+ [T]: a
40
+ };
41
+ return this.fetchedTokens = d, d;
42
+ });
43
+ }
44
+ getFetchedTokens(e, t) {
45
+ const s = k(t, e);
46
+ return this.fetchedTokens[s] || [];
47
+ }
48
+ }
49
+ const C = new A();
50
+ export {
51
+ A as PrivateTokensDB,
52
+ C as privateTokensDB
53
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("ethers"),d=require("idb-keyval"),b=require("../../API/API.cjs"),y=require("../../constants/chains.constants.cjs"),L=require("../../error-handling/logger.cjs"),P=require("../../functions/utils/caseInsensitive.utils.cjs"),g=require("../../types/cache.types.cjs"),k=require("../../functions/utils/string.utils.cjs"),K=require("../../constants/protocol.constants.cjs");class B{fetchedTokens={};transferEventTopic=f.ethers.utils.id("Transfer(address,address,uint256)");INITIAL_BLOCKS={[y.chainIds.optimism]:124883692};async getPublicTokens(e,t){const o=k.getStateKey(t,e);return(await d.get(g.StorageKeys.PUBLIC_TOKENS))?.[o]||[]}async getLastProcessedBlock(e,t){const o=await d.get(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS)||{},s=k.getStateKey(t,e);return o[s]||this.INITIAL_BLOCKS[e]}async updateLastProcessedBlock(e,t,o){await d.update(g.StorageKeys.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS,(s={})=>{const r=k.getStateKey(t,e);return{...s,[r]:o}})}async fetchPublicTokens(e,t,o){try{const{fetchRpcUrl:s}=y.networkRegistry[t];if(!s)throw Error("No fetchRpcUrl in PublicTokensDB");const r=new f.ethers.providers.JsonRpcProvider(s),i=await this.getLastProcessedBlock(t,e),a=await r.getBlockNumber(),n=f.ethers.utils.hexZeroPad(e.toLowerCase(),32),l={topics:[this.transferEventTopic,null,n],fromBlock:i},p={topics:[this.transferEventTopic,n,null],fromBlock:i},[S,T]=await Promise.all([r.getLogs(l),r.getLogs(p)]),u=[...S,...T],h=[K.zeroAddress,...new Set(u.map(c=>c.address))].filter(c=>c&&!P.lowerCaseIncludes(o,c));return h.length?{erc20Tokens:(await b.API.tokensInfoCall(t,h)).filter(c=>!!c),latestBlock:a}:{erc20Tokens:[],latestBlock:a}}catch(s){return L.Logger.error("Error fetching public tokens:",s),{erc20Tokens:[],latestBlock:void 0}}}async fetchAndUpdatePublicTokens(e,t){const s=(await this.getPublicTokens(t,e)).map(n=>n.erc20TokenAddress),{erc20Tokens:r,latestBlock:i}=await this.fetchPublicTokens(e,t,s),a=k.getStateKey(e,t);await d.update(g.StorageKeys.PUBLIC_TOKENS,(n={})=>{const l=n[a]||[],p=l.map(u=>u.erc20TokenAddress),S=r.filter(u=>!P.lowerCaseIncludes(p,u.erc20TokenAddress));l.push(...S);const T={...n,[a]:l};return this.fetchedTokens=T,T}),i&&await this.updateLastProcessedBlock(t,e,i)}getFetchedTokens(e,t){const o=k.getStateKey(t,e);return this.fetchedTokens[o]||[]}}const w=new B;exports.PublicTokensDB=B;exports.publicTokensDB=w;
@@ -0,0 +1,13 @@
1
+ import { ERC20Token } from '../../types/token.types';
2
+ export declare class PublicTokensDB {
3
+ private fetchedTokens;
4
+ private readonly transferEventTopic;
5
+ private readonly INITIAL_BLOCKS;
6
+ getPublicTokens(chainId: number, walletAddress: string): Promise<ERC20Token[]>;
7
+ private getLastProcessedBlock;
8
+ private updateLastProcessedBlock;
9
+ private fetchPublicTokens;
10
+ fetchAndUpdatePublicTokens(walletAddress: string, chainId: number): Promise<void>;
11
+ getFetchedTokens(chainId: number, walletAddress: string): ERC20Token[];
12
+ }
13
+ export declare const publicTokensDB: PublicTokensDB;
@@ -0,0 +1,81 @@
1
+ import { ethers as m } from "ethers";
2
+ import { get as B, update as h } from "idb-keyval";
3
+ import { API as g } from "../../API/API.mjs";
4
+ import { chainIds as S, networkRegistry as w } from "../../constants/chains.constants.mjs";
5
+ import { Logger as E } from "../../error-handling/logger.mjs";
6
+ import { lowerCaseIncludes as L } from "../../functions/utils/caseInsensitive.utils.mjs";
7
+ import { StorageKeys as u } from "../../types/cache.types.mjs";
8
+ import { getStateKey as T } from "../../functions/utils/string.utils.mjs";
9
+ import { zeroAddress as b } from "../../constants/protocol.constants.mjs";
10
+ class y {
11
+ fetchedTokens = {};
12
+ transferEventTopic = m.utils.id("Transfer(address,address,uint256)");
13
+ // ToDo: replace this with hinkal deployment block
14
+ INITIAL_BLOCKS = {
15
+ [S.optimism]: 124883692
16
+ };
17
+ async getPublicTokens(e, t) {
18
+ const o = T(t, e);
19
+ return (await B(u.PUBLIC_TOKENS))?.[o] || [];
20
+ }
21
+ async getLastProcessedBlock(e, t) {
22
+ const o = await B(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS) || {}, s = T(t, e);
23
+ return o[s] || this.INITIAL_BLOCKS[e];
24
+ }
25
+ async updateLastProcessedBlock(e, t, o) {
26
+ await h(u.PUBLIC_TOKENS_LAST_PROCESSED_BLOCKS, (s = {}) => {
27
+ const r = T(t, e);
28
+ return {
29
+ ...s,
30
+ [r]: o
31
+ };
32
+ });
33
+ }
34
+ async fetchPublicTokens(e, t, o) {
35
+ try {
36
+ const { fetchRpcUrl: s } = w[t];
37
+ if (!s)
38
+ throw Error("No fetchRpcUrl in PublicTokensDB");
39
+ const r = new m.providers.JsonRpcProvider(s), i = await this.getLastProcessedBlock(t, e), a = await r.getBlockNumber(), n = m.utils.hexZeroPad(e.toLowerCase(), 32), k = {
40
+ topics: [this.transferEventTopic, null, n],
41
+ fromBlock: i
42
+ }, f = {
43
+ topics: [this.transferEventTopic, n, null],
44
+ fromBlock: i
45
+ }, [d, p] = await Promise.all([r.getLogs(k), r.getLogs(f)]), l = [...d, ...p], P = [b, ...new Set(l.map((c) => c.address))].filter(
46
+ (c) => c && !L(o, c)
47
+ );
48
+ return P.length ? { erc20Tokens: (await g.tokensInfoCall(t, P)).filter(
49
+ (c) => !!c
50
+ ), latestBlock: a } : { erc20Tokens: [], latestBlock: a };
51
+ } catch (s) {
52
+ return E.error("Error fetching public tokens:", s), { erc20Tokens: [], latestBlock: void 0 };
53
+ }
54
+ }
55
+ // this function should be called when:
56
+ // 1) user first initiates wallet on a given chain
57
+ // 2) user manually press refresh balances button
58
+ async fetchAndUpdatePublicTokens(e, t) {
59
+ const s = (await this.getPublicTokens(t, e)).map((n) => n.erc20TokenAddress), { erc20Tokens: r, latestBlock: i } = await this.fetchPublicTokens(e, t, s), a = T(e, t);
60
+ await h(u.PUBLIC_TOKENS, (n = {}) => {
61
+ const k = n[a] || [], f = k.map((l) => l.erc20TokenAddress), d = r.filter(
62
+ (l) => !L(f, l.erc20TokenAddress)
63
+ );
64
+ k.push(...d);
65
+ const p = {
66
+ ...n,
67
+ [a]: k
68
+ };
69
+ return this.fetchedTokens = p, p;
70
+ }), i && await this.updateLastProcessedBlock(t, e, i);
71
+ }
72
+ getFetchedTokens(e, t) {
73
+ const o = T(t, e);
74
+ return this.fetchedTokens[o] || [];
75
+ }
76
+ }
77
+ const x = new y();
78
+ export {
79
+ y as PublicTokensDB,
80
+ x as publicTokensDB
81
+ };
@@ -0,0 +1,2 @@
1
+ export * from './PrivateTokensDB';
2
+ export * from './PublicTokensDB';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../functions/utils/serialize.utils.cjs"),n=require("./BaseCacheDevice.cjs");class h extends n.BaseCacheDevice{isAttached=!1;get(e){return this.getInMemory(e)}set(e,t){this.setInMemory(e,t)}serialize(){return Object.fromEntries([...this.inMemoryCache].map(([e,t])=>[e,s.CustomJSONStringify(t)]))}attach(e){if(this.isAttached)throw new Error("can't reattach cache device");return this.isAttached=!0,(...i)=>{const r=s.CustomJSONStringify(i),c=this.get(r);if(c!==void 0)return c;const a=e(...i);return this.set(r,a),a}}}exports.AttachableMemoryCacheDevice=h;
@@ -0,0 +1,8 @@
1
+ import { BaseCacheDevice } from './BaseCacheDevice';
2
+ export declare class AttachableMemoryCacheDevice<T> extends BaseCacheDevice<T> {
3
+ private isAttached;
4
+ get(key: string): T | undefined;
5
+ set(key: string, value: T): void;
6
+ serialize(): Record<string, string>;
7
+ attach<ArgsType extends unknown[]>(func: (...args: ArgsType) => T): (...args: ArgsType) => T;
8
+ }
@@ -0,0 +1,28 @@
1
+ import { CustomJSONStringify as s } from "../../functions/utils/serialize.utils.mjs";
2
+ import { BaseCacheDevice as h } from "./BaseCacheDevice.mjs";
3
+ class l extends h {
4
+ isAttached = !1;
5
+ get(t) {
6
+ return this.getInMemory(t);
7
+ }
8
+ set(t, e) {
9
+ this.setInMemory(t, e);
10
+ }
11
+ serialize() {
12
+ return Object.fromEntries([...this.inMemoryCache].map(([t, e]) => [t, s(e)]));
13
+ }
14
+ attach(t) {
15
+ if (this.isAttached)
16
+ throw new Error("can't reattach cache device");
17
+ return this.isAttached = !0, (...r) => {
18
+ const a = s(r), c = this.get(a);
19
+ if (c !== void 0)
20
+ return c;
21
+ const i = t(...r);
22
+ return this.set(a, i), i;
23
+ };
24
+ }
25
+ }
26
+ export {
27
+ l as AttachableMemoryCacheDevice
28
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class a{inMemoryCache=new Map;getInMemory(e){return this.inMemoryCache.get(e)??void 0}setInMemory(e,t){this.inMemoryCache.set(e,t)}}exports.BaseCacheDevice=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../functions/utils/serialize.utils.cjs");class s{inMemoryCache=new Map;constructor(e){e&&this.mergeWithSerialized(e)}getInMemory(e){return this.inMemoryCache.get(e)??void 0}setInMemory(e,t){this.inMemoryCache.set(e,t)}mergeWithSerialized(e){Object.entries(e).forEach(([t,i])=>{this.set(t,r.CustomJSONParse(i))})}}exports.BaseCacheDevice=s;
@@ -1,8 +1,11 @@
1
1
  import { ICacheDevice } from '../../types/ICacheDevice';
2
- export declare abstract class BaseCacheDevice implements ICacheDevice {
3
- protected inMemoryCache: Map<string, string>;
4
- protected getInMemory(key: string): string | undefined;
5
- protected setInMemory(key: string, value: string): void;
6
- abstract get(key: string): string | undefined;
7
- abstract set(key: string, value: string): void;
2
+ export declare abstract class BaseCacheDevice<T = string> implements ICacheDevice<T> {
3
+ protected inMemoryCache: Map<string, T>;
4
+ constructor(serialized?: Record<string, string>);
5
+ protected getInMemory(key: string): T | undefined;
6
+ protected setInMemory(key: string, value: T): void;
7
+ abstract get(key: string): T | undefined;
8
+ abstract set(key: string, value: T): void;
9
+ abstract serialize(): Record<string, string>;
10
+ mergeWithSerialized(serialized: Record<string, string>): void;
8
11
  }
@@ -1,12 +1,21 @@
1
- class a {
1
+ import { CustomJSONParse as i } from "../../functions/utils/serialize.utils.mjs";
2
+ class h {
2
3
  inMemoryCache = /* @__PURE__ */ new Map();
4
+ constructor(e) {
5
+ e && this.mergeWithSerialized(e);
6
+ }
3
7
  getInMemory(e) {
4
8
  return this.inMemoryCache.get(e) ?? void 0;
5
9
  }
6
- setInMemory(e, r) {
7
- this.inMemoryCache.set(e, r);
10
+ setInMemory(e, t) {
11
+ this.inMemoryCache.set(e, t);
12
+ }
13
+ mergeWithSerialized(e) {
14
+ Object.entries(e).forEach(([t, r]) => {
15
+ this.set(t, i(r));
16
+ });
8
17
  }
9
18
  }
10
19
  export {
11
- a as BaseCacheDevice
20
+ h as BaseCacheDevice
12
21
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../error-handling/logError.cjs"),h=require("./BaseCacheDevice.cjs");class o extends h.BaseCacheDevice{filePath;useFileCache;constructor(e,i){super(),this.useFileCache=!!e,this.filePath=i,this.readFileFromDevice()}readFileFromDevice(){if(this.useFileCache&&this.filePath)try{const e=require("fs");if(e.existsSync(this.filePath)){const i=JSON.parse(e.readFileSync(this.filePath).toString());Object.entries(i).forEach(([s,c])=>{this.setInMemory(s,c)})}}catch(e){r.logError("FileCacheDevice Constructor Error",{err:e})}}get(e){return this.getInMemory(e)}set(e,i){if(this.readFileFromDevice(),this.setInMemory(e,i),this.useFileCache&&this.filePath)try{require("fs").writeFileSync(this.filePath,JSON.stringify(Object.fromEntries(this.inMemoryCache)))}catch(t){r.logError("FileCacheDevice set function",{err:t})}}}exports.FileCacheDevice=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("../../functions/utils/serialize.utils.cjs"),r=require("../../error-handling/logError.cjs"),o=require("./BaseCacheDevice.cjs");class a extends o.BaseCacheDevice{filePath;useFileCache;constructor(e,i){super(),this.useFileCache=!!e,this.filePath=i,this.readFileFromDevice()}readFileFromDevice(){if(this.useFileCache&&this.filePath)try{const e=require("fs");if(e.existsSync(this.filePath)){const i=JSON.parse(e.readFileSync(this.filePath).toString());Object.entries(i).forEach(([s,c])=>{this.setInMemory(s,c)})}}catch(e){r.logError("FileCacheDevice Constructor Error",{err:e})}}get(e){return this.getInMemory(e)}set(e,i){if(this.readFileFromDevice(),this.setInMemory(e,i),this.useFileCache&&this.filePath)try{require("fs").writeFileSync(this.filePath,JSON.stringify(Object.fromEntries(this.inMemoryCache)))}catch(t){r.logError("FileCacheDevice set function",{err:t})}}serialize(){return Object.fromEntries([...this.inMemoryCache].map(([e,i])=>[e,h.CustomJSONStringify(i)]))}}exports.FileCacheDevice=a;
@@ -6,4 +6,5 @@ export declare class FileCacheDevice extends BaseCacheDevice {
6
6
  private readFileFromDevice;
7
7
  get(key: string): string | undefined;
8
8
  set(key: string, value: string): void;
9
+ serialize(): Record<string, string>;
9
10
  }