@gala-chain/launchpad-sdk 5.0.2-beta.1 → 5.0.4-beta.0

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 (405) hide show
  1. package/EXAMPLES.md +141 -7
  2. package/README.md +68 -36
  3. package/dist/ai-docs.json +7357 -0
  4. package/dist/index.cjs.js +1 -1
  5. package/dist/index.d.ts +70 -11
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/src/LaunchpadSDK.d.ts +3288 -214
  10. package/dist/src/LaunchpadSDK.d.ts.map +1 -1
  11. package/dist/src/api/LaunchpadAPI.d.ts +21 -41
  12. package/dist/src/api/LaunchpadAPI.d.ts.map +1 -1
  13. package/dist/src/api/dto/BurnTokensDto.d.ts.map +1 -1
  14. package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -1
  15. package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -1
  16. package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -1
  17. package/dist/src/auth/JwtAuth.d.ts +145 -0
  18. package/dist/src/auth/JwtAuth.d.ts.map +1 -0
  19. package/dist/src/auth/SessionAuthService.d.ts +146 -0
  20. package/dist/src/auth/SessionAuthService.d.ts.map +1 -0
  21. package/dist/src/auth/SignatureAuth.d.ts.map +1 -1
  22. package/dist/src/bridge/BridgeService.d.ts.map +1 -1
  23. package/dist/src/bridge/GalaConnectClient.d.ts.map +1 -1
  24. package/dist/src/bridge/constants/tokens.d.ts +4 -3
  25. package/dist/src/bridge/constants/tokens.d.ts.map +1 -1
  26. package/dist/src/bridge/index.d.ts +1 -0
  27. package/dist/src/bridge/index.d.ts.map +1 -1
  28. package/dist/src/bridge/strategies/BridgeStrategy.d.ts.map +1 -1
  29. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts +1 -38
  30. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts.map +1 -1
  31. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts +1 -21
  32. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts.map +1 -1
  33. package/dist/src/bridge/types/bridge.dto.d.ts +15 -2
  34. package/dist/src/bridge/types/bridge.dto.d.ts.map +1 -1
  35. package/dist/src/bridge/utils/RateLimiter.d.ts +1 -1
  36. package/dist/src/bridge/utils/RateLimiter.d.ts.map +1 -1
  37. package/dist/src/bridge/utils/address-formatter.d.ts +25 -0
  38. package/dist/src/bridge/utils/address-formatter.d.ts.map +1 -0
  39. package/dist/src/bridge/utils/addressValidation.d.ts +200 -0
  40. package/dist/src/bridge/utils/addressValidation.d.ts.map +1 -0
  41. package/dist/src/bridge/utils/balanceHelpers.d.ts +215 -0
  42. package/dist/src/bridge/utils/balanceHelpers.d.ts.map +1 -0
  43. package/dist/src/bridge/utils/bridgeErrors.d.ts +98 -0
  44. package/dist/src/bridge/utils/bridgeErrors.d.ts.map +1 -0
  45. package/dist/src/bridge/utils/bridgeOutHelpers.d.ts +68 -0
  46. package/dist/src/bridge/utils/bridgeOutHelpers.d.ts.map +1 -0
  47. package/dist/src/bridge/utils/bridgePayload.d.ts +107 -0
  48. package/dist/src/bridge/utils/bridgePayload.d.ts.map +1 -0
  49. package/dist/src/bridge/utils/bridgeStatusParser.d.ts +75 -0
  50. package/dist/src/bridge/utils/bridgeStatusParser.d.ts.map +1 -0
  51. package/dist/src/bridge/utils/eip712Helpers.d.ts +66 -0
  52. package/dist/src/bridge/utils/eip712Helpers.d.ts.map +1 -0
  53. package/dist/src/bridge/utils/index.d.ts +9 -0
  54. package/dist/src/bridge/utils/index.d.ts.map +1 -1
  55. package/dist/src/bridge/utils/retry.d.ts +16 -0
  56. package/dist/src/bridge/utils/retry.d.ts.map +1 -1
  57. package/dist/src/bridge/utils/strategyDelegation.d.ts +69 -0
  58. package/dist/src/bridge/utils/strategyDelegation.d.ts.map +1 -0
  59. package/dist/src/bridge/utils/tokenIdUtils.d.ts +7 -0
  60. package/dist/src/bridge/utils/tokenIdUtils.d.ts.map +1 -1
  61. package/dist/src/bridge/utils/tokenMath.d.ts.map +1 -1
  62. package/dist/src/bridge/utils/tokenMetadataResolver.d.ts +97 -0
  63. package/dist/src/bridge/utils/tokenMetadataResolver.d.ts.map +1 -0
  64. package/dist/src/constants/endpoints.d.ts +453 -0
  65. package/dist/src/constants/endpoints.d.ts.map +1 -1
  66. package/dist/src/constants/error-messages.d.ts +1 -1
  67. package/dist/src/constants/error-messages.d.ts.map +1 -1
  68. package/dist/src/constants/jwt.d.ts +41 -0
  69. package/dist/src/constants/jwt.d.ts.map +1 -0
  70. package/dist/src/constants/sdk-defaults.d.ts +37 -0
  71. package/dist/src/constants/sdk-defaults.d.ts.map +1 -0
  72. package/dist/src/constants/version.generated.d.ts +1 -1
  73. package/dist/src/helpers/sdk.d.ts.map +1 -1
  74. package/dist/src/helpers/wallet.d.ts +4 -3
  75. package/dist/src/helpers/wallet.d.ts.map +1 -1
  76. package/dist/src/index.d.ts +70 -11
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/schemas/files.d.ts +2 -2
  79. package/dist/src/schemas/launchpad.d.ts +40 -8
  80. package/dist/src/schemas/launchpad.d.ts.map +1 -1
  81. package/dist/src/schemas/pagination.d.ts +7 -7
  82. package/dist/src/schemas/primitives.d.ts.map +1 -1
  83. package/dist/src/schemas/trade.d.ts +6 -6
  84. package/dist/src/schemas/user.d.ts +4 -4
  85. package/dist/src/schemas/validators.d.ts +15 -7
  86. package/dist/src/schemas/validators.d.ts.map +1 -1
  87. package/dist/src/services/AbstractCacheService.d.ts +227 -0
  88. package/dist/src/services/AbstractCacheService.d.ts.map +1 -0
  89. package/dist/src/services/AbstractTokenFetchService.d.ts +150 -0
  90. package/dist/src/services/AbstractTokenFetchService.d.ts.map +1 -0
  91. package/dist/src/services/ApiKeyService.d.ts +205 -0
  92. package/dist/src/services/ApiKeyService.d.ts.map +1 -0
  93. package/dist/src/services/BanService.d.ts +195 -0
  94. package/dist/src/services/BanService.d.ts.map +1 -0
  95. package/dist/src/services/BaseService.d.ts +50 -3
  96. package/dist/src/services/BaseService.d.ts.map +1 -1
  97. package/dist/src/services/BatchedCacheService.d.ts +132 -0
  98. package/dist/src/services/BatchedCacheService.d.ts.map +1 -0
  99. package/dist/src/services/BridgeableTokenCache.d.ts +32 -98
  100. package/dist/src/services/BridgeableTokenCache.d.ts.map +1 -1
  101. package/dist/src/services/BridgeableTokenService.d.ts +18 -13
  102. package/dist/src/services/BridgeableTokenService.d.ts.map +1 -1
  103. package/dist/src/services/BundleService.d.ts.map +1 -1
  104. package/dist/src/services/BundlerClientFactory.d.ts +32 -0
  105. package/dist/src/services/BundlerClientFactory.d.ts.map +1 -0
  106. package/dist/src/services/ChatMessagesService.d.ts +152 -0
  107. package/dist/src/services/ChatMessagesService.d.ts.map +1 -0
  108. package/dist/src/services/CommentService.d.ts +119 -0
  109. package/dist/src/services/CommentService.d.ts.map +1 -0
  110. package/dist/src/services/CommentsService.d.ts +155 -0
  111. package/dist/src/services/CommentsService.d.ts.map +1 -0
  112. package/dist/src/services/ContentFlagService.d.ts +212 -0
  113. package/dist/src/services/ContentFlagService.d.ts.map +1 -0
  114. package/dist/src/services/ContentReactionService.d.ts +175 -0
  115. package/dist/src/services/ContentReactionService.d.ts.map +1 -0
  116. package/dist/src/services/DexBackendClient.d.ts.map +1 -1
  117. package/dist/src/services/DexPoolService.d.ts +3 -3
  118. package/dist/src/services/DexPoolService.d.ts.map +1 -1
  119. package/dist/src/services/DexQuoteService.d.ts.map +1 -1
  120. package/dist/src/services/DexService.d.ts +2 -5
  121. package/dist/src/services/DexService.d.ts.map +1 -1
  122. package/dist/src/services/GSwapAssetService.d.ts +80 -0
  123. package/dist/src/services/GSwapAssetService.d.ts.map +1 -0
  124. package/dist/src/services/GSwapLiquidityMutationService.d.ts +140 -0
  125. package/dist/src/services/GSwapLiquidityMutationService.d.ts.map +1 -0
  126. package/dist/src/services/GSwapLiquidityQueryService.d.ts +87 -0
  127. package/dist/src/services/GSwapLiquidityQueryService.d.ts.map +1 -0
  128. package/dist/src/services/GSwapPoolCalculationService.d.ts +200 -0
  129. package/dist/src/services/GSwapPoolCalculationService.d.ts.map +1 -0
  130. package/dist/src/services/GSwapPoolQueryService.d.ts +116 -0
  131. package/dist/src/services/GSwapPoolQueryService.d.ts.map +1 -0
  132. package/dist/src/services/GSwapService.d.ts +14 -0
  133. package/dist/src/services/GSwapService.d.ts.map +1 -1
  134. package/dist/src/services/GSwapSwapService.d.ts +68 -0
  135. package/dist/src/services/GSwapSwapService.d.ts.map +1 -0
  136. package/dist/src/services/GalaChainBalanceService.d.ts +155 -0
  137. package/dist/src/services/GalaChainBalanceService.d.ts.map +1 -0
  138. package/dist/src/services/GalaChainGatewayClient.d.ts +32 -1
  139. package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -1
  140. package/dist/src/services/GalaChainLockService.d.ts +144 -0
  141. package/dist/src/services/GalaChainLockService.d.ts.map +1 -0
  142. package/dist/src/services/GalaChainService.d.ts +23 -106
  143. package/dist/src/services/GalaChainService.d.ts.map +1 -1
  144. package/dist/src/services/GalaChainTokenService.d.ts +108 -0
  145. package/dist/src/services/GalaChainTokenService.d.ts.map +1 -0
  146. package/dist/src/services/GalaChainTransferService.d.ts +205 -0
  147. package/dist/src/services/GalaChainTransferService.d.ts.map +1 -0
  148. package/dist/src/services/ImageService.d.ts +24 -8
  149. package/dist/src/services/ImageService.d.ts.map +1 -1
  150. package/dist/src/services/LaunchpadService.d.ts +77 -5
  151. package/dist/src/services/LaunchpadService.d.ts.map +1 -1
  152. package/dist/src/services/ModeratorService.d.ts +269 -0
  153. package/dist/src/services/ModeratorService.d.ts.map +1 -0
  154. package/dist/src/services/MultiPoolStateManager.d.ts +4 -6
  155. package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -1
  156. package/dist/src/services/NetworkKeyedCacheService.d.ts +185 -0
  157. package/dist/src/services/NetworkKeyedCacheService.d.ts.map +1 -0
  158. package/dist/src/services/OverseerService.d.ts +322 -0
  159. package/dist/src/services/OverseerService.d.ts.map +1 -0
  160. package/dist/src/services/PoolCacheManager.d.ts +2 -2
  161. package/dist/src/services/PoolCacheManager.d.ts.map +1 -1
  162. package/dist/src/services/PoolService.d.ts +61 -7
  163. package/dist/src/services/PoolService.d.ts.map +1 -1
  164. package/dist/src/services/PoolStateManager.d.ts +2 -2
  165. package/dist/src/services/PoolStateManager.d.ts.map +1 -1
  166. package/dist/src/services/PriceHistoryService.d.ts.map +1 -1
  167. package/dist/src/services/SignatureService.d.ts.map +1 -1
  168. package/dist/src/services/StreamChatService.d.ts +378 -0
  169. package/dist/src/services/StreamChatService.d.ts.map +1 -0
  170. package/dist/src/services/StreamTokenServiceBase.d.ts +371 -0
  171. package/dist/src/services/StreamTokenServiceBase.d.ts.map +1 -0
  172. package/dist/src/services/StreamWebSocketService.d.ts +268 -0
  173. package/dist/src/services/StreamWebSocketService.d.ts.map +1 -0
  174. package/dist/src/services/StreamingEventService.d.ts +431 -0
  175. package/dist/src/services/StreamingEventService.d.ts.map +1 -0
  176. package/dist/src/services/StreamingService.d.ts +547 -0
  177. package/dist/src/services/StreamingService.d.ts.map +1 -0
  178. package/dist/src/services/SwapEventQueue.d.ts +2 -2
  179. package/dist/src/services/SwapEventQueue.d.ts.map +1 -1
  180. package/dist/src/services/TokenBanService.d.ts +214 -0
  181. package/dist/src/services/TokenBanService.d.ts.map +1 -0
  182. package/dist/src/services/TokenClassKeyService.d.ts.map +1 -1
  183. package/dist/src/services/TokenMetadataCache.d.ts +36 -27
  184. package/dist/src/services/TokenMetadataCache.d.ts.map +1 -1
  185. package/dist/src/services/TokenMetadataService.d.ts +24 -4
  186. package/dist/src/services/TokenMetadataService.d.ts.map +1 -1
  187. package/dist/src/services/TokenResolverService.d.ts.map +1 -1
  188. package/dist/src/services/TradeService.d.ts +73 -0
  189. package/dist/src/services/TradeService.d.ts.map +1 -1
  190. package/dist/src/services/UserService.d.ts +56 -3
  191. package/dist/src/services/UserService.d.ts.map +1 -1
  192. package/dist/src/services/WebSocketService.d.ts +3 -3
  193. package/dist/src/services/WebSocketService.d.ts.map +1 -1
  194. package/dist/src/services/WrapService.d.ts +18 -5
  195. package/dist/src/services/WrapService.d.ts.map +1 -1
  196. package/dist/src/services/WrappableTokenCache.d.ts +8 -36
  197. package/dist/src/services/WrappableTokenCache.d.ts.map +1 -1
  198. package/dist/src/services/WrappableTokenService.d.ts +18 -12
  199. package/dist/src/services/WrappableTokenService.d.ts.map +1 -1
  200. package/dist/src/services/shared/cache-helpers.d.ts +188 -0
  201. package/dist/src/services/shared/cache-helpers.d.ts.map +1 -0
  202. package/dist/src/services/shared/http-helpers.d.ts +146 -0
  203. package/dist/src/services/shared/http-helpers.d.ts.map +1 -0
  204. package/dist/src/services/shared/pagination-helpers.d.ts +157 -0
  205. package/dist/src/services/shared/pagination-helpers.d.ts.map +1 -0
  206. package/dist/src/services/shared/service-validators.d.ts +137 -0
  207. package/dist/src/services/shared/service-validators.d.ts.map +1 -0
  208. package/dist/src/services/shared/websocket-helpers.d.ts +158 -0
  209. package/dist/src/services/shared/websocket-helpers.d.ts.map +1 -0
  210. package/dist/src/test-constants.d.ts +29 -0
  211. package/dist/src/test-constants.d.ts.map +1 -0
  212. package/dist/src/types/api-key.dto.d.ts +300 -0
  213. package/dist/src/types/api-key.dto.d.ts.map +1 -0
  214. package/dist/src/types/backend-responses.d.ts +12 -0
  215. package/dist/src/types/backend-responses.d.ts.map +1 -1
  216. package/dist/src/types/ban.dto.d.ts +413 -0
  217. package/dist/src/types/ban.dto.d.ts.map +1 -0
  218. package/dist/src/types/burn.dto.d.ts +21 -0
  219. package/dist/src/types/burn.dto.d.ts.map +1 -1
  220. package/dist/src/types/chat-messages.dto.d.ts +193 -0
  221. package/dist/src/types/chat-messages.dto.d.ts.map +1 -0
  222. package/dist/src/types/comment.dto.d.ts +180 -0
  223. package/dist/src/types/comment.dto.d.ts.map +1 -0
  224. package/dist/src/types/comments.dto.d.ts +210 -0
  225. package/dist/src/types/comments.dto.d.ts.map +1 -0
  226. package/dist/src/types/common.d.ts +369 -0
  227. package/dist/src/types/common.d.ts.map +1 -1
  228. package/dist/src/types/constraints.d.ts +374 -0
  229. package/dist/src/types/constraints.d.ts.map +1 -0
  230. package/dist/src/types/content-flag.dto.d.ts +310 -0
  231. package/dist/src/types/content-flag.dto.d.ts.map +1 -0
  232. package/dist/src/types/content-reactions.dto.d.ts +132 -0
  233. package/dist/src/types/content-reactions.dto.d.ts.map +1 -0
  234. package/dist/src/types/dex-pool.dto.d.ts +13 -37
  235. package/dist/src/types/dex-pool.dto.d.ts.map +1 -1
  236. package/dist/src/types/dto.d.ts +8 -0
  237. package/dist/src/types/dto.d.ts.map +1 -1
  238. package/dist/src/types/galachain-api.types.d.ts +30 -0
  239. package/dist/src/types/galachain-api.types.d.ts.map +1 -1
  240. package/dist/src/types/gswap-responses.types.d.ts.map +1 -1
  241. package/dist/src/types/launchpad.dto.d.ts +234 -131
  242. package/dist/src/types/launchpad.dto.d.ts.map +1 -1
  243. package/dist/src/types/launchpad.validation.d.ts.map +1 -1
  244. package/dist/src/types/lock.dto.d.ts +20 -35
  245. package/dist/src/types/lock.dto.d.ts.map +1 -1
  246. package/dist/src/types/moderator.dto.d.ts +581 -0
  247. package/dist/src/types/moderator.dto.d.ts.map +1 -0
  248. package/dist/src/types/options.dto.d.ts +25 -115
  249. package/dist/src/types/options.dto.d.ts.map +1 -1
  250. package/dist/src/types/overseer.dto.d.ts +420 -0
  251. package/dist/src/types/overseer.dto.d.ts.map +1 -0
  252. package/dist/src/types/pool.dto.d.ts +106 -0
  253. package/dist/src/types/pool.dto.d.ts.map +1 -0
  254. package/dist/src/types/result.types.d.ts +3 -2
  255. package/dist/src/types/result.types.d.ts.map +1 -1
  256. package/dist/src/types/session-auth.dto.d.ts +91 -0
  257. package/dist/src/types/session-auth.dto.d.ts.map +1 -0
  258. package/dist/src/types/stream-chat.dto.d.ts +815 -0
  259. package/dist/src/types/stream-chat.dto.d.ts.map +1 -0
  260. package/dist/src/types/streaming-events.dto.d.ts +586 -0
  261. package/dist/src/types/streaming-events.dto.d.ts.map +1 -0
  262. package/dist/src/types/streaming.dto.d.ts +1141 -0
  263. package/dist/src/types/streaming.dto.d.ts.map +1 -0
  264. package/dist/src/types/token-ban.dto.d.ts +195 -0
  265. package/dist/src/types/token-ban.dto.d.ts.map +1 -0
  266. package/dist/src/types/trade.dto.d.ts +21 -61
  267. package/dist/src/types/trade.dto.d.ts.map +1 -1
  268. package/dist/src/types/trades-query.dto.d.ts +127 -0
  269. package/dist/src/types/trades-query.dto.d.ts.map +1 -0
  270. package/dist/src/types/transfer.dto.d.ts +20 -15
  271. package/dist/src/types/transfer.dto.d.ts.map +1 -1
  272. package/dist/src/types/user.dto.d.ts +185 -73
  273. package/dist/src/types/user.dto.d.ts.map +1 -1
  274. package/dist/src/types/wrappable-token.dto.d.ts +6 -2
  275. package/dist/src/types/wrappable-token.dto.d.ts.map +1 -1
  276. package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -1
  277. package/dist/src/utils/Logger.d.ts.map +1 -1
  278. package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -1
  279. package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -1
  280. package/dist/src/utils/ReconnectionManager.d.ts +142 -0
  281. package/dist/src/utils/ReconnectionManager.d.ts.map +1 -0
  282. package/dist/src/utils/SignatureHelper.d.ts +9 -0
  283. package/dist/src/utils/SignatureHelper.d.ts.map +1 -1
  284. package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -1
  285. package/dist/src/utils/adapters.d.ts.map +1 -1
  286. package/dist/src/utils/address-formatter.d.ts +317 -0
  287. package/dist/src/utils/address-formatter.d.ts.map +1 -0
  288. package/dist/src/utils/agent-config.d.ts.map +1 -1
  289. package/dist/src/utils/amount-validator.d.ts +268 -0
  290. package/dist/src/utils/amount-validator.d.ts.map +1 -0
  291. package/dist/src/utils/api-patterns.d.ts +347 -0
  292. package/dist/src/utils/api-patterns.d.ts.map +1 -0
  293. package/dist/src/utils/array-helpers.d.ts +115 -0
  294. package/dist/src/utils/array-helpers.d.ts.map +1 -0
  295. package/dist/src/utils/async-patterns.d.ts +272 -0
  296. package/dist/src/utils/async-patterns.d.ts.map +1 -0
  297. package/dist/src/utils/auto-pagination.d.ts +195 -2
  298. package/dist/src/utils/auto-pagination.d.ts.map +1 -1
  299. package/dist/src/utils/bignumber-helpers.d.ts +119 -13
  300. package/dist/src/utils/bignumber-helpers.d.ts.map +1 -1
  301. package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -1
  302. package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -1
  303. package/dist/src/utils/cacheWarmingHelpers.d.ts +2 -2
  304. package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -1
  305. package/dist/src/utils/data-transform-patterns.d.ts +393 -0
  306. package/dist/src/utils/data-transform-patterns.d.ts.map +1 -0
  307. package/dist/src/utils/date-utils.d.ts +166 -0
  308. package/dist/src/utils/date-utils.d.ts.map +1 -1
  309. package/dist/src/utils/delimiter-parser.d.ts +139 -0
  310. package/dist/src/utils/delimiter-parser.d.ts.map +1 -0
  311. package/dist/src/utils/error-factories.d.ts +346 -1
  312. package/dist/src/utils/error-factories.d.ts.map +1 -1
  313. package/dist/src/utils/error-handling-patterns.d.ts +390 -0
  314. package/dist/src/utils/error-handling-patterns.d.ts.map +1 -0
  315. package/dist/src/utils/error-patterns.d.ts +360 -0
  316. package/dist/src/utils/error-patterns.d.ts.map +1 -0
  317. package/dist/src/utils/error-utils.d.ts +250 -0
  318. package/dist/src/utils/error-utils.d.ts.map +1 -1
  319. package/dist/src/utils/error-wrapper.d.ts +208 -0
  320. package/dist/src/utils/error-wrapper.d.ts.map +1 -0
  321. package/dist/src/utils/errors.d.ts +70 -0
  322. package/dist/src/utils/errors.d.ts.map +1 -1
  323. package/dist/src/utils/http-factory.d.ts +36 -0
  324. package/dist/src/utils/http-factory.d.ts.map +1 -0
  325. package/dist/src/utils/http.d.ts.map +1 -1
  326. package/dist/src/utils/load-env.d.ts.map +1 -1
  327. package/dist/src/utils/multipart.d.ts.map +1 -1
  328. package/dist/src/utils/numeric-patterns.d.ts +289 -0
  329. package/dist/src/utils/numeric-patterns.d.ts.map +1 -0
  330. package/dist/src/utils/numeric-wrappers.d.ts +146 -0
  331. package/dist/src/utils/numeric-wrappers.d.ts.map +1 -0
  332. package/dist/src/utils/object-extractors.d.ts +115 -0
  333. package/dist/src/utils/object-extractors.d.ts.map +1 -0
  334. package/dist/src/utils/object-patterns.d.ts +81 -0
  335. package/dist/src/utils/object-patterns.d.ts.map +1 -0
  336. package/dist/src/utils/pagination-helpers.d.ts +230 -0
  337. package/dist/src/utils/pagination-helpers.d.ts.map +1 -0
  338. package/dist/src/utils/pool-pair-parser.d.ts +3 -1
  339. package/dist/src/utils/pool-pair-parser.d.ts.map +1 -1
  340. package/dist/src/utils/pool-state-validator.d.ts.map +1 -1
  341. package/dist/src/utils/position-filters.d.ts +1 -2
  342. package/dist/src/utils/position-filters.d.ts.map +1 -1
  343. package/dist/src/utils/query-params.d.ts +0 -16
  344. package/dist/src/utils/query-params.d.ts.map +1 -1
  345. package/dist/src/utils/response-handlers.d.ts +149 -20
  346. package/dist/src/utils/response-handlers.d.ts.map +1 -1
  347. package/dist/src/utils/response-helpers.d.ts +28 -0
  348. package/dist/src/utils/response-helpers.d.ts.map +1 -0
  349. package/dist/src/utils/response-normalizers.d.ts +27 -49
  350. package/dist/src/utils/response-normalizers.d.ts.map +1 -1
  351. package/dist/src/utils/safe-parsers.d.ts +487 -0
  352. package/dist/src/utils/safe-parsers.d.ts.map +1 -0
  353. package/dist/src/utils/service-validators.d.ts +268 -0
  354. package/dist/src/utils/service-validators.d.ts.map +1 -0
  355. package/dist/src/utils/slippage-utils.d.ts.map +1 -1
  356. package/dist/src/utils/string-patterns.d.ts +404 -0
  357. package/dist/src/utils/string-patterns.d.ts.map +1 -0
  358. package/dist/src/utils/string-transforms.d.ts +89 -0
  359. package/dist/src/utils/string-transforms.d.ts.map +1 -0
  360. package/dist/src/utils/string-utils.d.ts +108 -0
  361. package/dist/src/utils/string-utils.d.ts.map +1 -0
  362. package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -1
  363. package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -1
  364. package/dist/src/utils/token-format-converter.d.ts +22 -8
  365. package/dist/src/utils/token-format-converter.d.ts.map +1 -1
  366. package/dist/src/utils/token-parser.d.ts +2 -2
  367. package/dist/src/utils/token-parser.d.ts.map +1 -1
  368. package/dist/src/utils/token-stringification.d.ts +168 -0
  369. package/dist/src/utils/token-stringification.d.ts.map +1 -0
  370. package/dist/src/utils/tokenNameNormalizer.d.ts +96 -0
  371. package/dist/src/utils/tokenNameNormalizer.d.ts.map +1 -0
  372. package/dist/src/utils/tokenNormalizer.d.ts +8 -45
  373. package/dist/src/utils/tokenNormalizer.d.ts.map +1 -1
  374. package/dist/src/utils/transfer-validation.d.ts +1 -1
  375. package/dist/src/utils/transfer-validation.d.ts.map +1 -1
  376. package/dist/src/utils/type-guard-factory.d.ts +260 -0
  377. package/dist/src/utils/type-guard-factory.d.ts.map +1 -0
  378. package/dist/src/utils/unique-key-generator.d.ts +148 -0
  379. package/dist/src/utils/unique-key-generator.d.ts.map +1 -0
  380. package/dist/src/utils/validation-helpers.d.ts +906 -183
  381. package/dist/src/utils/validation-helpers.d.ts.map +1 -1
  382. package/dist/src/utils/validation-patterns.d.ts +745 -0
  383. package/dist/src/utils/validation-patterns.d.ts.map +1 -0
  384. package/dist/src/utils/validation.d.ts +2 -30
  385. package/dist/src/utils/validation.d.ts.map +1 -1
  386. package/dist/src/utils/wallet.d.ts +12 -1
  387. package/dist/src/utils/wallet.d.ts.map +1 -1
  388. package/dist/src/utils/websocket-patterns.d.ts +681 -0
  389. package/dist/src/utils/websocket-patterns.d.ts.map +1 -0
  390. package/dist/src/utils/websocket-validators.d.ts.map +1 -1
  391. package/package.json +86 -19
  392. package/dist/src/bridge/strategies/index.d.ts +0 -9
  393. package/dist/src/bridge/strategies/index.d.ts.map +0 -1
  394. package/dist/src/constants/counts.d.ts +0 -66
  395. package/dist/src/constants/counts.d.ts.map +0 -1
  396. package/dist/src/services/WebSocketManager.d.ts +0 -99
  397. package/dist/src/services/WebSocketManager.d.ts.map +0 -1
  398. package/dist/src/types/eip712-types.d.ts +0 -140
  399. package/dist/src/types/eip712-types.d.ts.map +0 -1
  400. package/dist/src/types/pool-state-manager-config.dto.d.ts +0 -103
  401. package/dist/src/types/pool-state-manager-config.dto.d.ts.map +0 -1
  402. package/dist/src/utils/number-utils.d.ts +0 -94
  403. package/dist/src/utils/number-utils.d.ts.map +0 -1
  404. package/dist/src/utils/precision-math.d.ts +0 -37
  405. package/dist/src/utils/precision-math.d.ts.map +0 -1
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Ban Service
3
+ *
4
+ * Handles all user ban operations including creating/removing bans,
5
+ * listing banned users, and active user management.
6
+ *
7
+ * @category Services
8
+ * @since 5.5.0
9
+ */
10
+ import { HttpClient } from '../utils/http';
11
+ import { StreamTokenServiceBase } from './StreamTokenServiceBase';
12
+ import type { JwtAuth } from '../auth/JwtAuth';
13
+ import { CreateBanOptions, CreateBanResult, RemoveBanOptions, RemoveBanResult, ListBansOptions, BanListResult, GetBanStatusOptions, BanStatusResult, GetActiveUsersOptions, ActiveUsersResult } from '../types/ban.dto';
14
+ /**
15
+ * Ban Service Class
16
+ *
17
+ * Provides methods for:
18
+ * - Creating and removing bans (per-token)
19
+ * - Listing banned users (paginated)
20
+ * - Checking ban status for specific users
21
+ * - Getting active users (viewers and chat participants)
22
+ *
23
+ * All endpoints require either JWT authentication (token owner) or
24
+ * admin API key. The service uses dual-auth pattern automatically.
25
+ *
26
+ * @remarks
27
+ * **Case Normalization**: Token names and user addresses are automatically
28
+ * normalized to lowercase in all requests and responses for consistency.
29
+ * For example, `tokenName: 'MyToken'` will return `tokenName: 'mytoken'`.
30
+ *
31
+ * **Security**: This service uses dual authentication:
32
+ * - **JWT (Bearer token)**: Provides CSRF protection inherently via Authorization header.
33
+ * - **Admin API key**: Intended for server-to-server communication only.
34
+ *
35
+ * When using JWT from browser clients, ensure tokens are stored securely
36
+ * (e.g., in memory, not localStorage) to prevent XSS token theft.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const banService = new BanService(httpClient, 'admin-api-key', jwtAuth, true);
41
+ *
42
+ * // Ban a user
43
+ * await banService.createBan({
44
+ * tokenName: 'mytoken',
45
+ * userAddress: 'eth|abc123...',
46
+ * reason: 'Spam',
47
+ * durationSeconds: 86400 // 24 hours
48
+ * });
49
+ *
50
+ * // List banned users
51
+ * const bans = await banService.listBans({ tokenName: 'mytoken', page: 1, limit: 20 });
52
+ *
53
+ * // Get active viewers
54
+ * const viewers = await banService.getActiveUsers({
55
+ * tokenName: 'mytoken',
56
+ * type: 'viewers'
57
+ * });
58
+ * ```
59
+ */
60
+ export declare class BanService extends StreamTokenServiceBase {
61
+ constructor(http: HttpClient, adminApiKey?: string, jwtAuth?: JwtAuth, debugMode?: boolean);
62
+ /**
63
+ * Create a ban for a user on a token
64
+ *
65
+ * Dual-auth endpoint - supports both Admin API key and JWT (owner) auth.
66
+ *
67
+ * @param options Ban options including tokenName, userAddress, and optional reason/duration
68
+ * @returns Created ban data
69
+ * @throws ValidationError if parameters are invalid
70
+ * @throws ConfigurationError if neither admin API key nor JWT is configured
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * // Permanent ban
75
+ * await banService.createBan({
76
+ * tokenName: 'mytoken',
77
+ * userAddress: 'eth|abc123...',
78
+ * reason: 'Spam'
79
+ * });
80
+ *
81
+ * // Temporary ban (24 hours)
82
+ * await banService.createBan({
83
+ * tokenName: 'mytoken',
84
+ * userAddress: 'eth|abc123...',
85
+ * reason: 'Warned for inappropriate content',
86
+ * durationSeconds: 86400
87
+ * });
88
+ * ```
89
+ */
90
+ createBan(options: CreateBanOptions): Promise<CreateBanResult>;
91
+ /**
92
+ * Remove a ban for a user on a token
93
+ *
94
+ * Dual-auth endpoint - supports both Admin API key and JWT (owner) auth.
95
+ *
96
+ * @param options Remove options including tokenName and userAddress
97
+ * @returns Removal confirmation
98
+ * @throws ValidationError if parameters are invalid
99
+ * @throws ConfigurationError if neither admin API key nor JWT is configured
100
+ * @throws Error if ban not found (404)
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const result = await banService.removeBan({
105
+ * tokenName: 'mytoken',
106
+ * userAddress: 'eth|abc123...'
107
+ * });
108
+ * console.log('Unbanned:', result.removed);
109
+ * ```
110
+ */
111
+ removeBan(options: RemoveBanOptions): Promise<RemoveBanResult>;
112
+ /**
113
+ * List all bans for a token
114
+ *
115
+ * Dual-auth endpoint - supports both Admin API key and JWT (owner) auth.
116
+ * Returns paginated results with user profile information.
117
+ *
118
+ * @param options List options including tokenName and optional pagination
119
+ * @returns Paginated list of bans
120
+ * @throws ValidationError if token name is invalid
121
+ * @throws ConfigurationError if neither admin API key nor JWT is configured
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * // Get first page
126
+ * const page1 = await banService.listBans({ tokenName: 'mytoken' });
127
+ * console.log('Total bans:', page1.meta.total);
128
+ *
129
+ * // Get next page
130
+ * if (page1.meta.page < page1.meta.totalPages) {
131
+ * const page2 = await banService.listBans({
132
+ * tokenName: 'mytoken',
133
+ * page: 2,
134
+ * limit: 20
135
+ * });
136
+ * }
137
+ * ```
138
+ */
139
+ listBans(options: ListBansOptions): Promise<BanListResult>;
140
+ /**
141
+ * Get ban status for a specific user on a token
142
+ *
143
+ * Dual-auth endpoint - supports both Admin API key and JWT (owner) auth.
144
+ *
145
+ * @param options Options including tokenName and userAddress
146
+ * @returns Ban status (banned: true/false with ban data if banned)
147
+ * @throws ValidationError if parameters are invalid
148
+ * @throws ConfigurationError if neither admin API key nor JWT is configured
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const status = await banService.getBanStatus({
153
+ * tokenName: 'mytoken',
154
+ * userAddress: 'eth|abc123...'
155
+ * });
156
+ * if (status.banned) {
157
+ * console.log('User is banned:', status.ban?.reason);
158
+ * console.log('Expires:', status.ban?.expiresAt);
159
+ * }
160
+ * ```
161
+ */
162
+ getBanStatus(options: GetBanStatusOptions): Promise<BanStatusResult>;
163
+ /**
164
+ * Get active users for a token
165
+ *
166
+ * Dual-auth endpoint - supports both Admin API key and JWT (owner) auth.
167
+ *
168
+ * Returns up to 1000 users. If more users are connected, the `truncated`
169
+ * flag will be true.
170
+ *
171
+ * @param options Options including tokenName and optional type filter
172
+ * @returns Active users list with metadata
173
+ * @throws ValidationError if parameters are invalid
174
+ * @throws ConfigurationError if neither admin API key nor JWT is configured
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * // Get all viewers
179
+ * const viewers = await banService.getActiveUsers({
180
+ * tokenName: 'mytoken',
181
+ * type: 'viewers'
182
+ * });
183
+ * console.log('Viewers:', viewers.total);
184
+ * console.log('Truncated:', viewers.truncated);
185
+ *
186
+ * // Get chat participants only
187
+ * const chatters = await banService.getActiveUsers({
188
+ * tokenName: 'mytoken',
189
+ * type: 'chat_participants'
190
+ * });
191
+ * ```
192
+ */
193
+ getActiveUsers(options: GetActiveUsersOptions): Promise<ActiveUsersResult>;
194
+ }
195
+ //# sourceMappingURL=BanService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BanService.d.ts","sourceRoot":"","sources":["../../../src/services/BanService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EAWlB,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,UAAW,SAAQ,sBAAsB;gBAElD,IAAI,EAAE,UAAU,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,GAAE,OAAe;IAS5B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+BpE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsBpE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAyBhE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IA4B1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAkBjF"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { HttpClient } from '../utils/http';
11
11
  import { Logger } from '../utils/Logger';
12
+ import type { JwtAuth } from '../auth/JwtAuth';
12
13
  /**
13
14
  * Abstract base class for SDK services with optional HttpClient
14
15
  *
@@ -38,16 +39,56 @@ import { Logger } from '../utils/Logger';
38
39
  export declare abstract class BaseService {
39
40
  protected readonly http: HttpClient;
40
41
  protected readonly logger: Logger;
41
- constructor(http: HttpClient, debugMode?: boolean);
42
+ protected jwtAuth: JwtAuth | undefined;
43
+ constructor(http: HttpClient, debugMode?: boolean, jwtAuth?: JwtAuth);
44
+ /**
45
+ * Set the JWT authentication manager.
46
+ * Allows dynamic configuration of JWT auth after service creation.
47
+ *
48
+ * @param jwtAuth - JWT auth manager instance
49
+ */
50
+ setJwtAuth(jwtAuth: JwtAuth): void;
51
+ /**
52
+ * Get JWT authorization headers.
53
+ * @throws ConfigurationError if JWT auth is not configured
54
+ *
55
+ * During Jest garbage collection/cleanup, returns empty headers if JWT is not configured
56
+ * to prevent spurious errors during test teardown.
57
+ */
58
+ protected getJwtHeaders(): Record<string, string>;
59
+ /**
60
+ * Check if the current call is coming from user code (test) vs garbage collection
61
+ * Uses multiple heuristics to detect call context:
62
+ * - Presence of expect/jest in stack (active test execution)
63
+ * - Presence of 'tests/' in stack (test file execution)
64
+ * - If neither found, likely garbage collection during cleanup
65
+ * @private
66
+ */
67
+ private isCalledFromUserCode;
68
+ /**
69
+ * Validate a positive integer (for IDs)
70
+ *
71
+ * @param value - Value to validate
72
+ * @param fieldName - Technical field name for error details
73
+ * @param displayName - Human-readable name for error message
74
+ * @throws {ValidationError} If value is not a positive integer
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * this.validatePositiveInteger(id, 'id', 'API key ID');
79
+ * ```
80
+ */
81
+ protected validatePositiveInteger(value: number, fieldName: string, displayName: string): void;
42
82
  }
43
83
  /**
44
84
  * Lightweight base class for services without HttpClient
45
85
  *
46
86
  * Provides:
47
87
  * - Standardized logger initialization with automatic context naming
88
+ * - Optional custom logger injection for advanced use cases
48
89
  * - For services that don't need HttpClient (e.g., SignatureService, WebSocketService)
49
90
  *
50
- * @example
91
+ * @example Basic usage (auto-created logger)
51
92
  * ```typescript
52
93
  * export class MyService extends LoggerBase {
53
94
  * constructor(private walletProvider: WalletProvider, debugMode: boolean = false) {
@@ -61,9 +102,15 @@ export declare abstract class BaseService {
61
102
  * }
62
103
  * }
63
104
  * ```
105
+ *
106
+ * @example With custom logger (for multi-service coordination)
107
+ * ```typescript
108
+ * const sharedLogger = new Logger({ debug: true, context: 'MyService' });
109
+ * const service = new MyService(provider, false, sharedLogger);
110
+ * ```
64
111
  */
65
112
  export declare abstract class LoggerBase {
66
113
  protected readonly logger: Logger;
67
- constructor(debugMode?: boolean);
114
+ constructor(debugMode?: boolean, customLogger?: Logger);
68
115
  }
69
116
  //# sourceMappingURL=BaseService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../../src/services/BaseService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,WAAW;IAGnB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU;IAF/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,UAAU,EAAE,SAAS,GAAE,OAAe;CAO5E;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,UAAU;IAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,SAAS,GAAE,OAAe;CAOvC"}
1
+ {"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../../src/services/BaseService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,WAAW;IAInB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU;IAH/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;gBAER,IAAI,EAAE,UAAU,EAAE,SAAS,GAAE,OAAe,EAAE,OAAO,CAAC,EAAE,OAAO;IAS9F;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYjD;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;CAG/F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,8BAAsB,UAAU;IAC9B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,SAAS,GAAE,OAAe,EAAE,YAAY,CAAC,EAAE,MAAM;CAY9D"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Batched Cache Service Base Class
3
+ *
4
+ * Intermediate abstraction for caches that operate on batches of items
5
+ * (setAll, merge) rather than individual key-value pairs. Extends
6
+ * AbstractCacheService with common batch operation patterns.
7
+ *
8
+ * ## Features
9
+ * - Batch set operations (setAll - replace all)
10
+ * - Batch merge operations (merge - add/update without removing)
11
+ * - Timestamp tracking for cache freshness
12
+ * - Common normalization via normalizeTokenKey()
13
+ *
14
+ * ## Subclass Responsibilities
15
+ * - Override setAll/merge if custom indexing needed (e.g., network-partitioned caches)
16
+ * - Implement getStats() for domain-specific statistics
17
+ * - Optionally add domain-specific lookup methods
18
+ *
19
+ * @category Services
20
+ * @since 5.10.0
21
+ * @template V - Value type stored in cache
22
+ * @template S - Statistics type (must extend BaseCacheStats)
23
+ */
24
+ import { AbstractCacheService, BaseCacheStats } from './AbstractCacheService.js';
25
+ /**
26
+ * Batched cache service with common token cache operations
27
+ *
28
+ * Provides reusable setAll/merge operations for token-like caches.
29
+ * Subclasses must define how to extract the key from each item.
30
+ *
31
+ * @template V - Value type stored in cache (must have a key field)
32
+ * @template S - Statistics type (must extend BaseCacheStats)
33
+ */
34
+ export declare abstract class BatchedCacheService<V, S extends BaseCacheStats = BaseCacheStats> extends AbstractCacheService<string, V, S> {
35
+ /** Timestamp when cache was last populated */
36
+ protected lastFetchedAt: number | null;
37
+ constructor(debugMode?: boolean);
38
+ /**
39
+ * Normalize key for consistent cache lookups
40
+ *
41
+ * Uses the common tokenNameNormalizer for uppercase, trimmed keys.
42
+ *
43
+ * @param key - Raw key to normalize
44
+ * @returns Normalized key string
45
+ */
46
+ protected normalizeKey(key: string): string;
47
+ /**
48
+ * Extract the cache key from an item
49
+ *
50
+ * Subclasses must implement this to define how items are keyed.
51
+ * For token caches, this is typically stringifiedTokenClassKey or symbol.
52
+ *
53
+ * @param item - Item to extract key from
54
+ * @returns Key string for cache storage
55
+ */
56
+ protected abstract extractKey(item: V): string;
57
+ /**
58
+ * Check if cache is populated
59
+ *
60
+ * @returns True if cache has items
61
+ */
62
+ hasItems(): boolean;
63
+ /**
64
+ * Get all cached items
65
+ *
66
+ * @returns Array of cached items (empty if not cached)
67
+ */
68
+ getAllItems(): V[];
69
+ /**
70
+ * Set all items (replaces existing cache)
71
+ *
72
+ * @param items - Array of items to cache
73
+ */
74
+ setAll(items: V[]): void;
75
+ /**
76
+ * Add items to cache (merges with existing)
77
+ *
78
+ * Used for pagination - adds new items without replacing existing.
79
+ *
80
+ * @param items - Array of items to add
81
+ */
82
+ merge(items: V[]): void;
83
+ /**
84
+ * Get fetch timestamp
85
+ *
86
+ * @returns Timestamp when cache was last updated, or null if never fetched
87
+ */
88
+ getFetchTimestamp(): number | null;
89
+ /**
90
+ * Clear cache and reset timestamp
91
+ */
92
+ clear(): void;
93
+ /**
94
+ * Get item by normalized key
95
+ *
96
+ * @param key - Key to look up (will be normalized)
97
+ * @returns Item if found, undefined if not cached
98
+ */
99
+ getByKey(key: string): V | undefined;
100
+ /**
101
+ * Check if item exists by key
102
+ *
103
+ * @param key - Key to check (will be normalized)
104
+ * @returns True if item is cached
105
+ */
106
+ hasKey(key: string): boolean;
107
+ /**
108
+ * Build base statistics (helper for subclasses)
109
+ *
110
+ * Provides common stats fields that most batched caches need.
111
+ * Subclasses can extend this with domain-specific stats.
112
+ *
113
+ * @returns Base statistics with totalItems, isPopulated, lastFetchedAt
114
+ *
115
+ * @example Extending in subclass
116
+ * ```typescript
117
+ * public getStats(): MyCacheStats {
118
+ * return {
119
+ * ...this.buildBaseStats(),
120
+ * tokenCount: this.cache.size, // alias
121
+ * customMetric: this.calculateCustomMetric(),
122
+ * };
123
+ * }
124
+ * ```
125
+ */
126
+ protected buildBaseStats(): {
127
+ totalItems: number;
128
+ isPopulated: boolean;
129
+ lastFetchedAt: number | null;
130
+ };
131
+ }
132
+ //# sourceMappingURL=BatchedCacheService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchedCacheService.d.ts","sourceRoot":"","sources":["../../../src/services/BatchedCacheService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGjF;;;;;;;;GAQG;AACH,8BAAsB,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChI,8CAA8C;IAC9C,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAElC,SAAS,GAAE,OAAe;IAItC;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI3C;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAE9C;;;;OAIG;IACI,QAAQ,IAAI,OAAO;IAI1B;;;;OAIG;IACI,WAAW,IAAI,CAAC,EAAE;IAIzB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI;IAa/B;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI;IAW9B;;;;OAIG;IACI,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACa,KAAK,IAAI,IAAI;IAK7B;;;;;OAKG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK3C;;;;;OAKG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKnC;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,cAAc,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CAOvG"}
@@ -20,21 +20,18 @@
20
20
  *
21
21
  * @category Services
22
22
  * @since 3.33.0
23
+ * @refactored 5.12.0 - Now extends NetworkKeyedCacheService for DRY compliance
23
24
  */
24
25
  import type { BridgeableToken, BridgeableNetwork } from '../bridge/types/bridgeable-token.dto.js';
25
- import { LoggerBase } from './BaseService.js';
26
+ import { NetworkKeyedCacheService, type NetworkKeyedCacheStats } from './NetworkKeyedCacheService.js';
26
27
  /**
27
28
  * Cache statistics for monitoring and debugging
28
29
  */
29
- export interface BridgeableTokenCacheStats {
30
- /** Networks with cached tokens */
31
- networks: BridgeableNetwork[];
32
- /** Total tokens across all networks */
30
+ export interface BridgeableTokenCacheStats extends NetworkKeyedCacheStats<BridgeableNetwork> {
31
+ /** Total tokens across all networks (alias for totalItems) */
33
32
  totalTokens: number;
34
- /** Token count per network */
33
+ /** Token count per network (alias for itemsByNetwork) */
35
34
  tokensByNetwork: Record<BridgeableNetwork, number>;
36
- /** Fetch timestamps per network */
37
- fetchTimestamps: Record<BridgeableNetwork, number>;
38
35
  }
39
36
  /**
40
37
  * Bridgeable Token Cache
@@ -42,6 +39,8 @@ export interface BridgeableTokenCacheStats {
42
39
  * High-performance permanent cache for bridgeable token data.
43
40
  * Tokens are organized by network for efficient lookups during bridge operations.
44
41
  *
42
+ * Extends NetworkKeyedCacheService for common network-keyed cache patterns.
43
+ *
45
44
  * @example Basic usage
46
45
  * ```typescript
47
46
  * const cache = new BridgeableTokenCache();
@@ -54,54 +53,47 @@ export interface BridgeableTokenCacheStats {
54
53
  * const tokens = cache.getAll('ETHEREUM');
55
54
  * }
56
55
  *
57
- * // Get specific token
56
+ * // Get specific token by symbol
58
57
  * const gala = cache.getBySymbol('ETHEREUM', 'GALA');
58
+ *
59
+ * // Get specific token by tokenId
60
+ * const token = cache.getByTokenId('ETHEREUM', 'GALA|Unit|none|none');
59
61
  * ```
60
62
  */
61
- export declare class BridgeableTokenCache extends LoggerBase {
62
- /** Primary index: network → (symbol → token) */
63
- private readonly cache;
64
- /** Secondary index: network → (tokenId → token) for O(1) tokenId lookups */
65
- private readonly tokenIdIndex;
66
- /** Fetch timestamps per network */
67
- private readonly fetchTimestamps;
63
+ export declare class BridgeableTokenCache extends NetworkKeyedCacheService<BridgeableToken, BridgeableNetwork, BridgeableTokenCacheStats> {
68
64
  constructor(debugMode?: boolean);
69
65
  /**
70
- * Normalize symbol for consistent cache keys
66
+ * Extract the primary key from a bridgeable token (symbol)
71
67
  *
72
- * @param symbol - Raw token symbol
73
- * @returns Normalized symbol (uppercase, trimmed)
68
+ * @param token - Bridgeable token
69
+ * @returns Token symbol as primary key
74
70
  */
75
- private normalizeSymbol;
71
+ protected extractPrimaryKey(token: BridgeableToken): string;
76
72
  /**
77
- * Normalize tokenId for consistent cache keys
73
+ * Extract the secondary key from a bridgeable token (tokenId)
78
74
  *
79
- * @param tokenId - Stringified TokenClassKey (e.g., "GALA|Unit|none|none")
80
- * @returns Normalized tokenId (uppercase, trimmed)
75
+ * @param token - Bridgeable token
76
+ * @returns stringifiedTokenClassKey as secondary key
81
77
  */
82
- private normalizeTokenId;
78
+ protected extractSecondaryKey(token: BridgeableToken): string;
83
79
  /**
84
- * Check if tokens for a network are cached
80
+ * Get a specific token by symbol
85
81
  *
86
- * @param network - Network to check
87
- * @returns True if network has cached tokens
82
+ * @param network - Network to search
83
+ * @param symbol - Token symbol (case-insensitive)
84
+ * @returns Bridgeable token or undefined if not found
88
85
  */
89
- has(network: BridgeableNetwork): boolean;
86
+ getBySymbol(network: BridgeableNetwork, symbol: string): BridgeableToken | undefined;
90
87
  /**
91
- * Get all tokens for a network
88
+ * Get a token by its stringified TokenClassKey (tokenId)
92
89
  *
93
- * @param network - Network to get tokens for
94
- * @returns Array of bridgeable tokens (empty if not cached)
95
- */
96
- getAll(network: BridgeableNetwork): BridgeableToken[];
97
- /**
98
- * Get a specific token by symbol
90
+ * Uses the secondary tokenId index for O(1) lookup performance.
99
91
  *
100
92
  * @param network - Network to search
101
- * @param symbol - Token symbol (case-insensitive)
93
+ * @param tokenId - Stringified TokenClassKey (e.g., "GALA|Unit|none|none")
102
94
  * @returns Bridgeable token or undefined if not found
103
95
  */
104
- getBySymbol(network: BridgeableNetwork, symbol: string): BridgeableToken | undefined;
96
+ getByTokenId(network: BridgeableNetwork, tokenId: string): BridgeableToken | undefined;
105
97
  /**
106
98
  * Get contract address for a token on a network
107
99
  *
@@ -110,48 +102,6 @@ export declare class BridgeableTokenCache extends LoggerBase {
110
102
  * @returns Contract address or undefined if not found
111
103
  */
112
104
  getContractAddress(network: BridgeableNetwork, symbol: string): string | undefined;
113
- /**
114
- * Set tokens for a network (replaces all existing tokens)
115
- *
116
- * @param network - Network to set tokens for
117
- * @param tokens - Array of bridgeable tokens
118
- */
119
- set(network: BridgeableNetwork, tokens: BridgeableToken[]): void;
120
- /**
121
- * Add tokens to a network cache (merges with existing)
122
- *
123
- * Used for pagination - adds new tokens without replacing existing.
124
- *
125
- * @param network - Network to add tokens to
126
- * @param tokens - Array of bridgeable tokens to add
127
- */
128
- merge(network: BridgeableNetwork, tokens: BridgeableToken[]): void;
129
- /**
130
- * Get fetch timestamp for a network
131
- *
132
- * @param network - Network to get timestamp for
133
- * @returns Timestamp when network was last fetched, or undefined if never fetched
134
- */
135
- getFetchTimestamp(network: BridgeableNetwork): number | undefined;
136
- /**
137
- * Get cache statistics
138
- *
139
- * @returns Cache statistics including token counts and timestamps
140
- */
141
- getStats(): BridgeableTokenCacheStats;
142
- /**
143
- * Clear cache for a network or all networks
144
- *
145
- * @param network - Optional network to clear (clears all if not provided)
146
- */
147
- clear(network?: BridgeableNetwork): void;
148
- /**
149
- * Get token count for a network
150
- *
151
- * @param network - Network to count tokens for
152
- * @returns Number of cached tokens
153
- */
154
- size(network: BridgeableNetwork): number;
155
105
  /**
156
106
  * Check if a token is bridgeable to a network
157
107
  *
@@ -161,26 +111,10 @@ export declare class BridgeableTokenCache extends LoggerBase {
161
111
  */
162
112
  isTokenBridgeable(network: BridgeableNetwork, symbol: string): boolean;
163
113
  /**
164
- * Get a token by its stringified TokenClassKey (tokenId)
165
- *
166
- * Uses the secondary tokenId index for O(1) lookup performance.
167
- *
168
- * @param network - Network to search
169
- * @param tokenId - Stringified TokenClassKey (e.g., "GALA|Unit|none|none")
170
- * @returns Bridgeable token or undefined if not found
171
- */
172
- getByTokenId(network: BridgeableNetwork, tokenId: string): BridgeableToken | undefined;
173
- /**
174
- * Get all cached networks
175
- *
176
- * @returns Array of networks with cached tokens
177
- */
178
- getCachedNetworks(): BridgeableNetwork[];
179
- /**
180
- * Dump entire cache for debugging
114
+ * Get cache statistics
181
115
  *
182
- * @returns Full cache contents
116
+ * @returns Cache statistics including token counts and timestamps
183
117
  */
184
- dump(): Record<BridgeableNetwork, BridgeableToken[]>;
118
+ getStats(): BridgeableTokenCacheStats;
185
119
  }
186
120
  //# sourceMappingURL=BridgeableTokenCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeableTokenCache.d.ts","sourceRoot":"","sources":["../../../src/services/BridgeableTokenCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACnD,mCAAmC;IACnC,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuD;IAE7E,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuD;IAEpF,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;gBAErD,SAAS,GAAE,OAAe;IAOtC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAKxC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,EAAE;IAKrD;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAKpF;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASlF;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAqBhE;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IA6BlE;;;;;OAKG;IACH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAIjE;;;;OAIG;IACH,QAAQ,IAAI,yBAAyB;IAoBrC;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAcxC;;;;;OAKG;IACH,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAIxC;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAItE;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAKtF;;;;OAIG;IACH,iBAAiB,IAAI,iBAAiB,EAAE;IAIxC;;;;OAIG;IACH,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,CAAC;CAWrD"}
1
+ {"version":3,"file":"BridgeableTokenCache.d.ts","sourceRoot":"","sources":["../../../src/services/BridgeableTokenCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB,CAAC,iBAAiB,CAAC;IAC1F,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;CACpD;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,oBAAqB,SAAQ,wBAAwB,CAChE,eAAe,EACf,iBAAiB,EACjB,yBAAyB,CAC1B;gBACa,SAAS,GAAE,OAAe;IAItC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAI3D;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAI7D;;;;;;OAMG;IACI,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI3F;;;;;;;;OAQG;IACI,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI7F;;;;;;OAMG;IACI,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASzF;;;;;;OAMG;IACI,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAI7E;;;;OAIG;IACI,QAAQ,IAAI,yBAAyB;CAU7C"}