@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.
- package/EXAMPLES.md +141 -7
- package/README.md +68 -36
- package/dist/ai-docs.json +7357 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +70 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/src/LaunchpadSDK.d.ts +3288 -214
- package/dist/src/LaunchpadSDK.d.ts.map +1 -1
- package/dist/src/api/LaunchpadAPI.d.ts +21 -41
- package/dist/src/api/LaunchpadAPI.d.ts.map +1 -1
- package/dist/src/api/dto/BurnTokensDto.d.ts.map +1 -1
- package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -1
- package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -1
- package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -1
- package/dist/src/auth/JwtAuth.d.ts +145 -0
- package/dist/src/auth/JwtAuth.d.ts.map +1 -0
- package/dist/src/auth/SessionAuthService.d.ts +146 -0
- package/dist/src/auth/SessionAuthService.d.ts.map +1 -0
- package/dist/src/auth/SignatureAuth.d.ts.map +1 -1
- package/dist/src/bridge/BridgeService.d.ts.map +1 -1
- package/dist/src/bridge/GalaConnectClient.d.ts.map +1 -1
- package/dist/src/bridge/constants/tokens.d.ts +4 -3
- package/dist/src/bridge/constants/tokens.d.ts.map +1 -1
- package/dist/src/bridge/index.d.ts +1 -0
- package/dist/src/bridge/index.d.ts.map +1 -1
- package/dist/src/bridge/strategies/BridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts +1 -38
- package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts +1 -21
- package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts.map +1 -1
- package/dist/src/bridge/types/bridge.dto.d.ts +15 -2
- package/dist/src/bridge/types/bridge.dto.d.ts.map +1 -1
- package/dist/src/bridge/utils/RateLimiter.d.ts +1 -1
- package/dist/src/bridge/utils/RateLimiter.d.ts.map +1 -1
- package/dist/src/bridge/utils/address-formatter.d.ts +25 -0
- package/dist/src/bridge/utils/address-formatter.d.ts.map +1 -0
- package/dist/src/bridge/utils/addressValidation.d.ts +200 -0
- package/dist/src/bridge/utils/addressValidation.d.ts.map +1 -0
- package/dist/src/bridge/utils/balanceHelpers.d.ts +215 -0
- package/dist/src/bridge/utils/balanceHelpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeErrors.d.ts +98 -0
- package/dist/src/bridge/utils/bridgeErrors.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeOutHelpers.d.ts +68 -0
- package/dist/src/bridge/utils/bridgeOutHelpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgePayload.d.ts +107 -0
- package/dist/src/bridge/utils/bridgePayload.d.ts.map +1 -0
- package/dist/src/bridge/utils/bridgeStatusParser.d.ts +75 -0
- package/dist/src/bridge/utils/bridgeStatusParser.d.ts.map +1 -0
- package/dist/src/bridge/utils/eip712Helpers.d.ts +66 -0
- package/dist/src/bridge/utils/eip712Helpers.d.ts.map +1 -0
- package/dist/src/bridge/utils/index.d.ts +9 -0
- package/dist/src/bridge/utils/index.d.ts.map +1 -1
- package/dist/src/bridge/utils/retry.d.ts +16 -0
- package/dist/src/bridge/utils/retry.d.ts.map +1 -1
- package/dist/src/bridge/utils/strategyDelegation.d.ts +69 -0
- package/dist/src/bridge/utils/strategyDelegation.d.ts.map +1 -0
- package/dist/src/bridge/utils/tokenIdUtils.d.ts +7 -0
- package/dist/src/bridge/utils/tokenIdUtils.d.ts.map +1 -1
- package/dist/src/bridge/utils/tokenMath.d.ts.map +1 -1
- package/dist/src/bridge/utils/tokenMetadataResolver.d.ts +97 -0
- package/dist/src/bridge/utils/tokenMetadataResolver.d.ts.map +1 -0
- package/dist/src/constants/endpoints.d.ts +453 -0
- package/dist/src/constants/endpoints.d.ts.map +1 -1
- package/dist/src/constants/error-messages.d.ts +1 -1
- package/dist/src/constants/error-messages.d.ts.map +1 -1
- package/dist/src/constants/jwt.d.ts +41 -0
- package/dist/src/constants/jwt.d.ts.map +1 -0
- package/dist/src/constants/sdk-defaults.d.ts +37 -0
- package/dist/src/constants/sdk-defaults.d.ts.map +1 -0
- package/dist/src/constants/version.generated.d.ts +1 -1
- package/dist/src/helpers/sdk.d.ts.map +1 -1
- package/dist/src/helpers/wallet.d.ts +4 -3
- package/dist/src/helpers/wallet.d.ts.map +1 -1
- package/dist/src/index.d.ts +70 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/schemas/files.d.ts +2 -2
- package/dist/src/schemas/launchpad.d.ts +40 -8
- package/dist/src/schemas/launchpad.d.ts.map +1 -1
- package/dist/src/schemas/pagination.d.ts +7 -7
- package/dist/src/schemas/primitives.d.ts.map +1 -1
- package/dist/src/schemas/trade.d.ts +6 -6
- package/dist/src/schemas/user.d.ts +4 -4
- package/dist/src/schemas/validators.d.ts +15 -7
- package/dist/src/schemas/validators.d.ts.map +1 -1
- package/dist/src/services/AbstractCacheService.d.ts +227 -0
- package/dist/src/services/AbstractCacheService.d.ts.map +1 -0
- package/dist/src/services/AbstractTokenFetchService.d.ts +150 -0
- package/dist/src/services/AbstractTokenFetchService.d.ts.map +1 -0
- package/dist/src/services/ApiKeyService.d.ts +205 -0
- package/dist/src/services/ApiKeyService.d.ts.map +1 -0
- package/dist/src/services/BanService.d.ts +195 -0
- package/dist/src/services/BanService.d.ts.map +1 -0
- package/dist/src/services/BaseService.d.ts +50 -3
- package/dist/src/services/BaseService.d.ts.map +1 -1
- package/dist/src/services/BatchedCacheService.d.ts +132 -0
- package/dist/src/services/BatchedCacheService.d.ts.map +1 -0
- package/dist/src/services/BridgeableTokenCache.d.ts +32 -98
- package/dist/src/services/BridgeableTokenCache.d.ts.map +1 -1
- package/dist/src/services/BridgeableTokenService.d.ts +18 -13
- package/dist/src/services/BridgeableTokenService.d.ts.map +1 -1
- package/dist/src/services/BundleService.d.ts.map +1 -1
- package/dist/src/services/BundlerClientFactory.d.ts +32 -0
- package/dist/src/services/BundlerClientFactory.d.ts.map +1 -0
- package/dist/src/services/ChatMessagesService.d.ts +152 -0
- package/dist/src/services/ChatMessagesService.d.ts.map +1 -0
- package/dist/src/services/CommentService.d.ts +119 -0
- package/dist/src/services/CommentService.d.ts.map +1 -0
- package/dist/src/services/CommentsService.d.ts +155 -0
- package/dist/src/services/CommentsService.d.ts.map +1 -0
- package/dist/src/services/ContentFlagService.d.ts +212 -0
- package/dist/src/services/ContentFlagService.d.ts.map +1 -0
- package/dist/src/services/ContentReactionService.d.ts +175 -0
- package/dist/src/services/ContentReactionService.d.ts.map +1 -0
- package/dist/src/services/DexBackendClient.d.ts.map +1 -1
- package/dist/src/services/DexPoolService.d.ts +3 -3
- package/dist/src/services/DexPoolService.d.ts.map +1 -1
- package/dist/src/services/DexQuoteService.d.ts.map +1 -1
- package/dist/src/services/DexService.d.ts +2 -5
- package/dist/src/services/DexService.d.ts.map +1 -1
- package/dist/src/services/GSwapAssetService.d.ts +80 -0
- package/dist/src/services/GSwapAssetService.d.ts.map +1 -0
- package/dist/src/services/GSwapLiquidityMutationService.d.ts +140 -0
- package/dist/src/services/GSwapLiquidityMutationService.d.ts.map +1 -0
- package/dist/src/services/GSwapLiquidityQueryService.d.ts +87 -0
- package/dist/src/services/GSwapLiquidityQueryService.d.ts.map +1 -0
- package/dist/src/services/GSwapPoolCalculationService.d.ts +200 -0
- package/dist/src/services/GSwapPoolCalculationService.d.ts.map +1 -0
- package/dist/src/services/GSwapPoolQueryService.d.ts +116 -0
- package/dist/src/services/GSwapPoolQueryService.d.ts.map +1 -0
- package/dist/src/services/GSwapService.d.ts +14 -0
- package/dist/src/services/GSwapService.d.ts.map +1 -1
- package/dist/src/services/GSwapSwapService.d.ts +68 -0
- package/dist/src/services/GSwapSwapService.d.ts.map +1 -0
- package/dist/src/services/GalaChainBalanceService.d.ts +155 -0
- package/dist/src/services/GalaChainBalanceService.d.ts.map +1 -0
- package/dist/src/services/GalaChainGatewayClient.d.ts +32 -1
- package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -1
- package/dist/src/services/GalaChainLockService.d.ts +144 -0
- package/dist/src/services/GalaChainLockService.d.ts.map +1 -0
- package/dist/src/services/GalaChainService.d.ts +23 -106
- package/dist/src/services/GalaChainService.d.ts.map +1 -1
- package/dist/src/services/GalaChainTokenService.d.ts +108 -0
- package/dist/src/services/GalaChainTokenService.d.ts.map +1 -0
- package/dist/src/services/GalaChainTransferService.d.ts +205 -0
- package/dist/src/services/GalaChainTransferService.d.ts.map +1 -0
- package/dist/src/services/ImageService.d.ts +24 -8
- package/dist/src/services/ImageService.d.ts.map +1 -1
- package/dist/src/services/LaunchpadService.d.ts +77 -5
- package/dist/src/services/LaunchpadService.d.ts.map +1 -1
- package/dist/src/services/ModeratorService.d.ts +269 -0
- package/dist/src/services/ModeratorService.d.ts.map +1 -0
- package/dist/src/services/MultiPoolStateManager.d.ts +4 -6
- package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -1
- package/dist/src/services/NetworkKeyedCacheService.d.ts +185 -0
- package/dist/src/services/NetworkKeyedCacheService.d.ts.map +1 -0
- package/dist/src/services/OverseerService.d.ts +322 -0
- package/dist/src/services/OverseerService.d.ts.map +1 -0
- package/dist/src/services/PoolCacheManager.d.ts +2 -2
- package/dist/src/services/PoolCacheManager.d.ts.map +1 -1
- package/dist/src/services/PoolService.d.ts +61 -7
- package/dist/src/services/PoolService.d.ts.map +1 -1
- package/dist/src/services/PoolStateManager.d.ts +2 -2
- package/dist/src/services/PoolStateManager.d.ts.map +1 -1
- package/dist/src/services/PriceHistoryService.d.ts.map +1 -1
- package/dist/src/services/SignatureService.d.ts.map +1 -1
- package/dist/src/services/StreamChatService.d.ts +378 -0
- package/dist/src/services/StreamChatService.d.ts.map +1 -0
- package/dist/src/services/StreamTokenServiceBase.d.ts +371 -0
- package/dist/src/services/StreamTokenServiceBase.d.ts.map +1 -0
- package/dist/src/services/StreamWebSocketService.d.ts +268 -0
- package/dist/src/services/StreamWebSocketService.d.ts.map +1 -0
- package/dist/src/services/StreamingEventService.d.ts +431 -0
- package/dist/src/services/StreamingEventService.d.ts.map +1 -0
- package/dist/src/services/StreamingService.d.ts +547 -0
- package/dist/src/services/StreamingService.d.ts.map +1 -0
- package/dist/src/services/SwapEventQueue.d.ts +2 -2
- package/dist/src/services/SwapEventQueue.d.ts.map +1 -1
- package/dist/src/services/TokenBanService.d.ts +214 -0
- package/dist/src/services/TokenBanService.d.ts.map +1 -0
- package/dist/src/services/TokenClassKeyService.d.ts.map +1 -1
- package/dist/src/services/TokenMetadataCache.d.ts +36 -27
- package/dist/src/services/TokenMetadataCache.d.ts.map +1 -1
- package/dist/src/services/TokenMetadataService.d.ts +24 -4
- package/dist/src/services/TokenMetadataService.d.ts.map +1 -1
- package/dist/src/services/TokenResolverService.d.ts.map +1 -1
- package/dist/src/services/TradeService.d.ts +73 -0
- package/dist/src/services/TradeService.d.ts.map +1 -1
- package/dist/src/services/UserService.d.ts +56 -3
- package/dist/src/services/UserService.d.ts.map +1 -1
- package/dist/src/services/WebSocketService.d.ts +3 -3
- package/dist/src/services/WebSocketService.d.ts.map +1 -1
- package/dist/src/services/WrapService.d.ts +18 -5
- package/dist/src/services/WrapService.d.ts.map +1 -1
- package/dist/src/services/WrappableTokenCache.d.ts +8 -36
- package/dist/src/services/WrappableTokenCache.d.ts.map +1 -1
- package/dist/src/services/WrappableTokenService.d.ts +18 -12
- package/dist/src/services/WrappableTokenService.d.ts.map +1 -1
- package/dist/src/services/shared/cache-helpers.d.ts +188 -0
- package/dist/src/services/shared/cache-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/http-helpers.d.ts +146 -0
- package/dist/src/services/shared/http-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/pagination-helpers.d.ts +157 -0
- package/dist/src/services/shared/pagination-helpers.d.ts.map +1 -0
- package/dist/src/services/shared/service-validators.d.ts +137 -0
- package/dist/src/services/shared/service-validators.d.ts.map +1 -0
- package/dist/src/services/shared/websocket-helpers.d.ts +158 -0
- package/dist/src/services/shared/websocket-helpers.d.ts.map +1 -0
- package/dist/src/test-constants.d.ts +29 -0
- package/dist/src/test-constants.d.ts.map +1 -0
- package/dist/src/types/api-key.dto.d.ts +300 -0
- package/dist/src/types/api-key.dto.d.ts.map +1 -0
- package/dist/src/types/backend-responses.d.ts +12 -0
- package/dist/src/types/backend-responses.d.ts.map +1 -1
- package/dist/src/types/ban.dto.d.ts +413 -0
- package/dist/src/types/ban.dto.d.ts.map +1 -0
- package/dist/src/types/burn.dto.d.ts +21 -0
- package/dist/src/types/burn.dto.d.ts.map +1 -1
- package/dist/src/types/chat-messages.dto.d.ts +193 -0
- package/dist/src/types/chat-messages.dto.d.ts.map +1 -0
- package/dist/src/types/comment.dto.d.ts +180 -0
- package/dist/src/types/comment.dto.d.ts.map +1 -0
- package/dist/src/types/comments.dto.d.ts +210 -0
- package/dist/src/types/comments.dto.d.ts.map +1 -0
- package/dist/src/types/common.d.ts +369 -0
- package/dist/src/types/common.d.ts.map +1 -1
- package/dist/src/types/constraints.d.ts +374 -0
- package/dist/src/types/constraints.d.ts.map +1 -0
- package/dist/src/types/content-flag.dto.d.ts +310 -0
- package/dist/src/types/content-flag.dto.d.ts.map +1 -0
- package/dist/src/types/content-reactions.dto.d.ts +132 -0
- package/dist/src/types/content-reactions.dto.d.ts.map +1 -0
- package/dist/src/types/dex-pool.dto.d.ts +13 -37
- package/dist/src/types/dex-pool.dto.d.ts.map +1 -1
- package/dist/src/types/dto.d.ts +8 -0
- package/dist/src/types/dto.d.ts.map +1 -1
- package/dist/src/types/galachain-api.types.d.ts +30 -0
- package/dist/src/types/galachain-api.types.d.ts.map +1 -1
- package/dist/src/types/gswap-responses.types.d.ts.map +1 -1
- package/dist/src/types/launchpad.dto.d.ts +234 -131
- package/dist/src/types/launchpad.dto.d.ts.map +1 -1
- package/dist/src/types/launchpad.validation.d.ts.map +1 -1
- package/dist/src/types/lock.dto.d.ts +20 -35
- package/dist/src/types/lock.dto.d.ts.map +1 -1
- package/dist/src/types/moderator.dto.d.ts +581 -0
- package/dist/src/types/moderator.dto.d.ts.map +1 -0
- package/dist/src/types/options.dto.d.ts +25 -115
- package/dist/src/types/options.dto.d.ts.map +1 -1
- package/dist/src/types/overseer.dto.d.ts +420 -0
- package/dist/src/types/overseer.dto.d.ts.map +1 -0
- package/dist/src/types/pool.dto.d.ts +106 -0
- package/dist/src/types/pool.dto.d.ts.map +1 -0
- package/dist/src/types/result.types.d.ts +3 -2
- package/dist/src/types/result.types.d.ts.map +1 -1
- package/dist/src/types/session-auth.dto.d.ts +91 -0
- package/dist/src/types/session-auth.dto.d.ts.map +1 -0
- package/dist/src/types/stream-chat.dto.d.ts +815 -0
- package/dist/src/types/stream-chat.dto.d.ts.map +1 -0
- package/dist/src/types/streaming-events.dto.d.ts +586 -0
- package/dist/src/types/streaming-events.dto.d.ts.map +1 -0
- package/dist/src/types/streaming.dto.d.ts +1141 -0
- package/dist/src/types/streaming.dto.d.ts.map +1 -0
- package/dist/src/types/token-ban.dto.d.ts +195 -0
- package/dist/src/types/token-ban.dto.d.ts.map +1 -0
- package/dist/src/types/trade.dto.d.ts +21 -61
- package/dist/src/types/trade.dto.d.ts.map +1 -1
- package/dist/src/types/trades-query.dto.d.ts +127 -0
- package/dist/src/types/trades-query.dto.d.ts.map +1 -0
- package/dist/src/types/transfer.dto.d.ts +20 -15
- package/dist/src/types/transfer.dto.d.ts.map +1 -1
- package/dist/src/types/user.dto.d.ts +185 -73
- package/dist/src/types/user.dto.d.ts.map +1 -1
- package/dist/src/types/wrappable-token.dto.d.ts +6 -2
- package/dist/src/types/wrappable-token.dto.d.ts.map +1 -1
- package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -1
- package/dist/src/utils/Logger.d.ts.map +1 -1
- package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -1
- package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -1
- package/dist/src/utils/ReconnectionManager.d.ts +142 -0
- package/dist/src/utils/ReconnectionManager.d.ts.map +1 -0
- package/dist/src/utils/SignatureHelper.d.ts +9 -0
- package/dist/src/utils/SignatureHelper.d.ts.map +1 -1
- package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -1
- package/dist/src/utils/adapters.d.ts.map +1 -1
- package/dist/src/utils/address-formatter.d.ts +317 -0
- package/dist/src/utils/address-formatter.d.ts.map +1 -0
- package/dist/src/utils/agent-config.d.ts.map +1 -1
- package/dist/src/utils/amount-validator.d.ts +268 -0
- package/dist/src/utils/amount-validator.d.ts.map +1 -0
- package/dist/src/utils/api-patterns.d.ts +347 -0
- package/dist/src/utils/api-patterns.d.ts.map +1 -0
- package/dist/src/utils/array-helpers.d.ts +115 -0
- package/dist/src/utils/array-helpers.d.ts.map +1 -0
- package/dist/src/utils/async-patterns.d.ts +272 -0
- package/dist/src/utils/async-patterns.d.ts.map +1 -0
- package/dist/src/utils/auto-pagination.d.ts +195 -2
- package/dist/src/utils/auto-pagination.d.ts.map +1 -1
- package/dist/src/utils/bignumber-helpers.d.ts +119 -13
- package/dist/src/utils/bignumber-helpers.d.ts.map +1 -1
- package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -1
- package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -1
- package/dist/src/utils/cacheWarmingHelpers.d.ts +2 -2
- package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -1
- package/dist/src/utils/data-transform-patterns.d.ts +393 -0
- package/dist/src/utils/data-transform-patterns.d.ts.map +1 -0
- package/dist/src/utils/date-utils.d.ts +166 -0
- package/dist/src/utils/date-utils.d.ts.map +1 -1
- package/dist/src/utils/delimiter-parser.d.ts +139 -0
- package/dist/src/utils/delimiter-parser.d.ts.map +1 -0
- package/dist/src/utils/error-factories.d.ts +346 -1
- package/dist/src/utils/error-factories.d.ts.map +1 -1
- package/dist/src/utils/error-handling-patterns.d.ts +390 -0
- package/dist/src/utils/error-handling-patterns.d.ts.map +1 -0
- package/dist/src/utils/error-patterns.d.ts +360 -0
- package/dist/src/utils/error-patterns.d.ts.map +1 -0
- package/dist/src/utils/error-utils.d.ts +250 -0
- package/dist/src/utils/error-utils.d.ts.map +1 -1
- package/dist/src/utils/error-wrapper.d.ts +208 -0
- package/dist/src/utils/error-wrapper.d.ts.map +1 -0
- package/dist/src/utils/errors.d.ts +70 -0
- package/dist/src/utils/errors.d.ts.map +1 -1
- package/dist/src/utils/http-factory.d.ts +36 -0
- package/dist/src/utils/http-factory.d.ts.map +1 -0
- package/dist/src/utils/http.d.ts.map +1 -1
- package/dist/src/utils/load-env.d.ts.map +1 -1
- package/dist/src/utils/multipart.d.ts.map +1 -1
- package/dist/src/utils/numeric-patterns.d.ts +289 -0
- package/dist/src/utils/numeric-patterns.d.ts.map +1 -0
- package/dist/src/utils/numeric-wrappers.d.ts +146 -0
- package/dist/src/utils/numeric-wrappers.d.ts.map +1 -0
- package/dist/src/utils/object-extractors.d.ts +115 -0
- package/dist/src/utils/object-extractors.d.ts.map +1 -0
- package/dist/src/utils/object-patterns.d.ts +81 -0
- package/dist/src/utils/object-patterns.d.ts.map +1 -0
- package/dist/src/utils/pagination-helpers.d.ts +230 -0
- package/dist/src/utils/pagination-helpers.d.ts.map +1 -0
- package/dist/src/utils/pool-pair-parser.d.ts +3 -1
- package/dist/src/utils/pool-pair-parser.d.ts.map +1 -1
- package/dist/src/utils/pool-state-validator.d.ts.map +1 -1
- package/dist/src/utils/position-filters.d.ts +1 -2
- package/dist/src/utils/position-filters.d.ts.map +1 -1
- package/dist/src/utils/query-params.d.ts +0 -16
- package/dist/src/utils/query-params.d.ts.map +1 -1
- package/dist/src/utils/response-handlers.d.ts +149 -20
- package/dist/src/utils/response-handlers.d.ts.map +1 -1
- package/dist/src/utils/response-helpers.d.ts +28 -0
- package/dist/src/utils/response-helpers.d.ts.map +1 -0
- package/dist/src/utils/response-normalizers.d.ts +27 -49
- package/dist/src/utils/response-normalizers.d.ts.map +1 -1
- package/dist/src/utils/safe-parsers.d.ts +487 -0
- package/dist/src/utils/safe-parsers.d.ts.map +1 -0
- package/dist/src/utils/service-validators.d.ts +268 -0
- package/dist/src/utils/service-validators.d.ts.map +1 -0
- package/dist/src/utils/slippage-utils.d.ts.map +1 -1
- package/dist/src/utils/string-patterns.d.ts +404 -0
- package/dist/src/utils/string-patterns.d.ts.map +1 -0
- package/dist/src/utils/string-transforms.d.ts +89 -0
- package/dist/src/utils/string-transforms.d.ts.map +1 -0
- package/dist/src/utils/string-utils.d.ts +108 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -1
- package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -1
- package/dist/src/utils/token-format-converter.d.ts +22 -8
- package/dist/src/utils/token-format-converter.d.ts.map +1 -1
- package/dist/src/utils/token-parser.d.ts +2 -2
- package/dist/src/utils/token-parser.d.ts.map +1 -1
- package/dist/src/utils/token-stringification.d.ts +168 -0
- package/dist/src/utils/token-stringification.d.ts.map +1 -0
- package/dist/src/utils/tokenNameNormalizer.d.ts +96 -0
- package/dist/src/utils/tokenNameNormalizer.d.ts.map +1 -0
- package/dist/src/utils/tokenNormalizer.d.ts +8 -45
- package/dist/src/utils/tokenNormalizer.d.ts.map +1 -1
- package/dist/src/utils/transfer-validation.d.ts +1 -1
- package/dist/src/utils/transfer-validation.d.ts.map +1 -1
- package/dist/src/utils/type-guard-factory.d.ts +260 -0
- package/dist/src/utils/type-guard-factory.d.ts.map +1 -0
- package/dist/src/utils/unique-key-generator.d.ts +148 -0
- package/dist/src/utils/unique-key-generator.d.ts.map +1 -0
- package/dist/src/utils/validation-helpers.d.ts +906 -183
- package/dist/src/utils/validation-helpers.d.ts.map +1 -1
- package/dist/src/utils/validation-patterns.d.ts +745 -0
- package/dist/src/utils/validation-patterns.d.ts.map +1 -0
- package/dist/src/utils/validation.d.ts +2 -30
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/wallet.d.ts +12 -1
- package/dist/src/utils/wallet.d.ts.map +1 -1
- package/dist/src/utils/websocket-patterns.d.ts +681 -0
- package/dist/src/utils/websocket-patterns.d.ts.map +1 -0
- package/dist/src/utils/websocket-validators.d.ts.map +1 -1
- package/package.json +86 -19
- package/dist/src/bridge/strategies/index.d.ts +0 -9
- package/dist/src/bridge/strategies/index.d.ts.map +0 -1
- package/dist/src/constants/counts.d.ts +0 -66
- package/dist/src/constants/counts.d.ts.map +0 -1
- package/dist/src/services/WebSocketManager.d.ts +0 -99
- package/dist/src/services/WebSocketManager.d.ts.map +0 -1
- package/dist/src/types/eip712-types.d.ts +0 -140
- package/dist/src/types/eip712-types.d.ts.map +0 -1
- package/dist/src/types/pool-state-manager-config.dto.d.ts +0 -103
- package/dist/src/types/pool-state-manager-config.dto.d.ts.map +0 -1
- package/dist/src/utils/number-utils.d.ts +0 -94
- package/dist/src/utils/number-utils.d.ts.map +0 -1
- package/dist/src/utils/precision-math.d.ts +0 -37
- 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
|
-
|
|
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;
|
|
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 {
|
|
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
|
-
/**
|
|
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
|
|
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
|
-
*
|
|
66
|
+
* Extract the primary key from a bridgeable token (symbol)
|
|
71
67
|
*
|
|
72
|
-
* @param
|
|
73
|
-
* @returns
|
|
68
|
+
* @param token - Bridgeable token
|
|
69
|
+
* @returns Token symbol as primary key
|
|
74
70
|
*/
|
|
75
|
-
|
|
71
|
+
protected extractPrimaryKey(token: BridgeableToken): string;
|
|
76
72
|
/**
|
|
77
|
-
*
|
|
73
|
+
* Extract the secondary key from a bridgeable token (tokenId)
|
|
78
74
|
*
|
|
79
|
-
* @param
|
|
80
|
-
* @returns
|
|
75
|
+
* @param token - Bridgeable token
|
|
76
|
+
* @returns stringifiedTokenClassKey as secondary key
|
|
81
77
|
*/
|
|
82
|
-
|
|
78
|
+
protected extractSecondaryKey(token: BridgeableToken): string;
|
|
83
79
|
/**
|
|
84
|
-
*
|
|
80
|
+
* Get a specific token by symbol
|
|
85
81
|
*
|
|
86
|
-
* @param network - Network to
|
|
87
|
-
* @
|
|
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
|
-
|
|
86
|
+
getBySymbol(network: BridgeableNetwork, symbol: string): BridgeableToken | undefined;
|
|
90
87
|
/**
|
|
91
|
-
* Get
|
|
88
|
+
* Get a token by its stringified TokenClassKey (tokenId)
|
|
92
89
|
*
|
|
93
|
-
*
|
|
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
|
|
93
|
+
* @param tokenId - Stringified TokenClassKey (e.g., "GALA|Unit|none|none")
|
|
102
94
|
* @returns Bridgeable token or undefined if not found
|
|
103
95
|
*/
|
|
104
|
-
|
|
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
|
|
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
|
|
116
|
+
* @returns Cache statistics including token counts and timestamps
|
|
183
117
|
*/
|
|
184
|
-
|
|
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
|
|
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"}
|