@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,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Error Handling Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Reduces duplication in error handling across services by providing a single,
|
|
5
|
+
* reusable wrapper for try/catch blocks with consistent logging and error transformation.
|
|
6
|
+
*
|
|
7
|
+
* Replaces the pattern of:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* try {
|
|
10
|
+
* return await operation();
|
|
11
|
+
* } catch (error) {
|
|
12
|
+
* logger?.error(`${context}:`, error);
|
|
13
|
+
* throw handleNetworkError(error, context);
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* With a single function call:
|
|
18
|
+
* ```typescript
|
|
19
|
+
* return withErrorHandling(() => operation(), context, logger);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @category Utilities
|
|
23
|
+
* @since 5.12.0
|
|
24
|
+
*/
|
|
25
|
+
import type { Logger } from './Logger';
|
|
26
|
+
/**
|
|
27
|
+
* Wraps an async operation with standardized error handling and logging
|
|
28
|
+
*
|
|
29
|
+
* This wrapper eliminates duplicate try/catch blocks across services by:
|
|
30
|
+
* 1. Executing the provided operation
|
|
31
|
+
* 2. Logging any errors that occur
|
|
32
|
+
* 3. Transforming errors into NetworkError via handleNetworkError
|
|
33
|
+
* 4. Re-throwing the transformed error
|
|
34
|
+
*
|
|
35
|
+
* ## Reduces Code Duplication
|
|
36
|
+
*
|
|
37
|
+
* ### Before (50+ instances across services):
|
|
38
|
+
* ```typescript
|
|
39
|
+
* async fetchUserAssets(address: string): Promise<UserAsset[]> {
|
|
40
|
+
* try {
|
|
41
|
+
* const response = await this.dexBackendClient.get('/user-assets', { address });
|
|
42
|
+
* return response.data;
|
|
43
|
+
* } catch (error) {
|
|
44
|
+
* this.logger.error('Failed to fetch user assets:', error);
|
|
45
|
+
* throw handleNetworkError(error, 'Failed to fetch user assets');
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* async getSwapQuote(params: SwapQuoteParams): Promise<SwapQuoteResult> {
|
|
50
|
+
* try {
|
|
51
|
+
* const result = await this.dexQuoteService.quote(params);
|
|
52
|
+
* return result;
|
|
53
|
+
* } catch (error) {
|
|
54
|
+
* this.logger.error('Failed to get swap quote:', error);
|
|
55
|
+
* throw handleNetworkError(error, 'Failed to get swap quote');
|
|
56
|
+
* }
|
|
57
|
+
* }
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* ### After (Clean, DRY):
|
|
61
|
+
* ```typescript
|
|
62
|
+
* async fetchUserAssets(address: string): Promise<UserAsset[]> {
|
|
63
|
+
* return withErrorHandling(
|
|
64
|
+
* () => this.dexBackendClient.get('/user-assets', { address }).then(r => r.data),
|
|
65
|
+
* 'Failed to fetch user assets',
|
|
66
|
+
* this.logger
|
|
67
|
+
* );
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* async getSwapQuote(params: SwapQuoteParams): Promise<SwapQuoteResult> {
|
|
71
|
+
* return withErrorHandling(
|
|
72
|
+
* () => this.dexQuoteService.quote(params),
|
|
73
|
+
* 'Failed to get swap quote',
|
|
74
|
+
* this.logger
|
|
75
|
+
* );
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* ## Benefits
|
|
80
|
+
* - **Code reduction**: ~2 lines per method instead of 6
|
|
81
|
+
* - **Consistency**: All services use identical error handling
|
|
82
|
+
* - **Maintainability**: Single place to update error handling logic
|
|
83
|
+
* - **Type safety**: Generic type T ensures return type preservation
|
|
84
|
+
* - **Optional logging**: Logger is optional for flexibility
|
|
85
|
+
* - **Flexible error handlers**: Optional custom errorHandler for service-specific logic
|
|
86
|
+
*
|
|
87
|
+
* @template T The return type of the operation
|
|
88
|
+
* @param operation An async function that performs the actual work
|
|
89
|
+
* @param context Human-readable description of what failed (for logging and error messages)
|
|
90
|
+
* @param logger Optional logger instance (logs error if provided)
|
|
91
|
+
* @param errorHandler Optional custom error handler (defaults to handleNetworkError)
|
|
92
|
+
* @returns Promise resolving to the operation result
|
|
93
|
+
* @throws NetworkError (or custom error from errorHandler) containing the context and original error details
|
|
94
|
+
*
|
|
95
|
+
* @example Basic usage with logger
|
|
96
|
+
* ```typescript
|
|
97
|
+
* async fetchTokens(): Promise<Token[]> {
|
|
98
|
+
* return withErrorHandling(
|
|
99
|
+
* async () => {
|
|
100
|
+
* const response = await this.http.get('/tokens');
|
|
101
|
+
* return response.data;
|
|
102
|
+
* },
|
|
103
|
+
* 'Failed to fetch tokens',
|
|
104
|
+
* this.logger
|
|
105
|
+
* );
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @example Without logger
|
|
110
|
+
* ```typescript
|
|
111
|
+
* const data = await withErrorHandling(
|
|
112
|
+
* async () => externalService.getData(),
|
|
113
|
+
* 'External service call failed'
|
|
114
|
+
* );
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @example With custom error handler
|
|
118
|
+
* ```typescript
|
|
119
|
+
* async getSwapQuote(params: SwapQuoteParams): Promise<SwapQuoteResult> {
|
|
120
|
+
* return withErrorHandling(
|
|
121
|
+
* () => this.dexQuoteService.quote(params),
|
|
122
|
+
* 'Failed to get swap quote',
|
|
123
|
+
* this.logger,
|
|
124
|
+
* (error, context, logger) => {
|
|
125
|
+
* // Custom error handling for GSwap-specific logic (wrapper already logs)
|
|
126
|
+
* throw new GSwapQuoteError(`${context}: ${getErrorMessage(error)}`, error);
|
|
127
|
+
* }
|
|
128
|
+
* );
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example With complex operation
|
|
133
|
+
* ```typescript
|
|
134
|
+
* async processTransaction(): Promise<TransactionResult> {
|
|
135
|
+
* return withErrorHandling(
|
|
136
|
+
* async () => {
|
|
137
|
+
* const pool = await this.getPool(token);
|
|
138
|
+
* const quote = await this.getQuote(pool);
|
|
139
|
+
* return this.executeSwap(quote);
|
|
140
|
+
* },
|
|
141
|
+
* 'Failed to process transaction',
|
|
142
|
+
* this.logger
|
|
143
|
+
* );
|
|
144
|
+
* }
|
|
145
|
+
* ```
|
|
146
|
+
*
|
|
147
|
+
* @example Sync operations (use async wrapper)
|
|
148
|
+
* ```typescript
|
|
149
|
+
* async validateAndFetch(tokenName: string): Promise<TokenData> {
|
|
150
|
+
* return withErrorHandling(
|
|
151
|
+
* async () => {
|
|
152
|
+
* validateTokenName(tokenName); // Sync validation
|
|
153
|
+
* return this.fetch(tokenName); // Async fetch
|
|
154
|
+
* },
|
|
155
|
+
* `Failed to fetch token: ${tokenName}`,
|
|
156
|
+
* this.logger
|
|
157
|
+
* );
|
|
158
|
+
* }
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare function withErrorHandling<T>(operation: () => Promise<T>, context: string, logger?: Logger, errorHandler?: (error: unknown, context: string, logger: Logger | undefined) => never): Promise<T>;
|
|
162
|
+
/**
|
|
163
|
+
* Wraps a synchronous operation with standardized error handling and logging
|
|
164
|
+
*
|
|
165
|
+
* Same as withErrorHandling but for sync operations. Useful for validation
|
|
166
|
+
* or data transformation that might throw errors.
|
|
167
|
+
*
|
|
168
|
+
* @template T The return type of the operation
|
|
169
|
+
* @param operation A synchronous function that performs the actual work
|
|
170
|
+
* @param context Human-readable description of what failed
|
|
171
|
+
* @param logger Optional logger instance
|
|
172
|
+
* @param errorHandler Optional custom error handler (defaults to handleNetworkError)
|
|
173
|
+
* @returns The operation result
|
|
174
|
+
* @throws NetworkError (or custom error from errorHandler) containing the context and original error details
|
|
175
|
+
*
|
|
176
|
+
* @example Sync operation
|
|
177
|
+
* ```typescript
|
|
178
|
+
* function validateToken(tokenName: string): void {
|
|
179
|
+
* return withErrorHandlingSync(
|
|
180
|
+
* () => validateTokenNameFormat(tokenName),
|
|
181
|
+
* `Invalid token name: ${tokenName}`,
|
|
182
|
+
* this.logger
|
|
183
|
+
* );
|
|
184
|
+
* }
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* @example Sync operation with custom error handler
|
|
188
|
+
* ```typescript
|
|
189
|
+
* function validateAndTransform(tokenName: string): TokenData {
|
|
190
|
+
* return withErrorHandlingSync(
|
|
191
|
+
* () => {
|
|
192
|
+
* validateTokenNameFormat(tokenName);
|
|
193
|
+
* return transformToken(tokenName);
|
|
194
|
+
* },
|
|
195
|
+
* `Failed to validate token: ${tokenName}`,
|
|
196
|
+
* this.logger,
|
|
197
|
+
* (error, context, logger) => {
|
|
198
|
+
* logger?.error(`${context}:`, error);
|
|
199
|
+
* throw new ValidationError(`${context}: ${getErrorMessage(error)}`, 'tokenName');
|
|
200
|
+
* }
|
|
201
|
+
* );
|
|
202
|
+
* }
|
|
203
|
+
* ```
|
|
204
|
+
*
|
|
205
|
+
* @since 5.12.0
|
|
206
|
+
*/
|
|
207
|
+
export declare function withErrorHandlingSync<T>(operation: () => T, context: string, logger?: Logger, errorHandler?: (error: unknown, context: string, logger: Logger | undefined) => never): T;
|
|
208
|
+
//# sourceMappingURL=error-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-wrapper.d.ts","sourceRoot":"","sources":["../../../src/utils/error-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsIG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,KAAK,GACpF,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,SAAS,EAAE,MAAM,CAAC,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,KAAK,GACpF,CAAC,CAmBH"}
|
|
@@ -7,6 +7,76 @@
|
|
|
7
7
|
* @category Utilities
|
|
8
8
|
* @since 3.6.5
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Standard error codes for ValidationError
|
|
12
|
+
*
|
|
13
|
+
* Use these constants instead of string literals for:
|
|
14
|
+
* - IDE autocomplete support
|
|
15
|
+
* - Typo prevention
|
|
16
|
+
* - Consistent error handling across the SDK
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { ValidationError, ERROR_CODES } from '../utils/errors';
|
|
21
|
+
*
|
|
22
|
+
* throw new ValidationError('tokenName is required', 'tokenName', ERROR_CODES.REQUIRED);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @since 6.3.0
|
|
26
|
+
*/
|
|
27
|
+
export declare const ERROR_CODES: {
|
|
28
|
+
/** Field is null, undefined, or missing */
|
|
29
|
+
readonly REQUIRED: "REQUIRED";
|
|
30
|
+
/** Field has wrong type (string expected, got number, etc.) */
|
|
31
|
+
readonly INVALID_TYPE: "INVALID_TYPE";
|
|
32
|
+
/** Field value is outside acceptable range or set */
|
|
33
|
+
readonly INVALID_VALUE: "INVALID_VALUE";
|
|
34
|
+
/** Field doesn't match required pattern (regex) */
|
|
35
|
+
readonly INVALID_FORMAT: "INVALID_FORMAT";
|
|
36
|
+
/** Field length is below minimum */
|
|
37
|
+
readonly TOO_SHORT: "TOO_SHORT";
|
|
38
|
+
/** Field length exceeds maximum */
|
|
39
|
+
readonly TOO_LONG: "TOO_LONG";
|
|
40
|
+
/** Numeric value exceeds maximum */
|
|
41
|
+
readonly TOO_LARGE: "TOO_LARGE";
|
|
42
|
+
/** Numeric value is below minimum */
|
|
43
|
+
readonly TOO_SMALL: "TOO_SMALL";
|
|
44
|
+
/** Array is empty when it shouldn't be */
|
|
45
|
+
readonly EMPTY_ARRAY: "EMPTY_ARRAY";
|
|
46
|
+
/** Array exceeds maximum length */
|
|
47
|
+
readonly ARRAY_TOO_LARGE: "ARRAY_TOO_LARGE";
|
|
48
|
+
/** Value is zero when non-zero expected */
|
|
49
|
+
readonly ZERO_VALUE: "ZERO_VALUE";
|
|
50
|
+
/** Tick spacing doesn't match fee tier requirements */
|
|
51
|
+
readonly INVALID_TICK_SPACING: "INVALID_TICK_SPACING";
|
|
52
|
+
/** Fee tier is not valid (500, 3000, 10000) */
|
|
53
|
+
readonly INVALID_FEE_TIER: "INVALID_FEE_TIER";
|
|
54
|
+
/** Price range is invalid (min >= max) */
|
|
55
|
+
readonly INVALID_RANGE: "INVALID_RANGE";
|
|
56
|
+
/** HTTP request parameters are invalid */
|
|
57
|
+
readonly INVALID_PARAMETERS: "INVALID_PARAMETERS";
|
|
58
|
+
/** Resource (position, pool, etc.) not found */
|
|
59
|
+
readonly NOT_FOUND: "NOT_FOUND";
|
|
60
|
+
/** Position data is malformed or incomplete */
|
|
61
|
+
readonly INVALID_DATA: "INVALID_DATA";
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Type for error codes - use for type-safe error code handling
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* function handleError(code: ErrorCode) {
|
|
69
|
+
* switch (code) {
|
|
70
|
+
* case ERROR_CODES.REQUIRED:
|
|
71
|
+
* return 'This field is required';
|
|
72
|
+
* case ERROR_CODES.INVALID_FORMAT:
|
|
73
|
+
* return 'Invalid format';
|
|
74
|
+
* // ... other cases
|
|
75
|
+
* }
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
|
|
10
80
|
/**
|
|
11
81
|
* Error thrown when validation fails
|
|
12
82
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Client Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory function for creating standardized HTTP clients with consistent configuration.
|
|
5
|
+
* Eliminates boilerplate axios.create() calls across services.
|
|
6
|
+
*
|
|
7
|
+
* @category Utilities
|
|
8
|
+
* @since 6.6.0
|
|
9
|
+
*/
|
|
10
|
+
import { AxiosInstance } from 'axios';
|
|
11
|
+
/**
|
|
12
|
+
* Creates a standardized HTTP client (AxiosInstance) with baseURL and timeout configuration
|
|
13
|
+
*
|
|
14
|
+
* Factory function that eliminates repeated axios.create() boilerplate by providing
|
|
15
|
+
* consistent default configuration across all HTTP clients.
|
|
16
|
+
*
|
|
17
|
+
* @param baseUrl Base URL for all requests made by this client
|
|
18
|
+
* @param timeout Request timeout in milliseconds (default: 30000)
|
|
19
|
+
* @returns Configured AxiosInstance ready for HTTP requests
|
|
20
|
+
*
|
|
21
|
+
* @example Basic usage
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const httpClient = createHttpExecutor('https://api.example.com', 30000);
|
|
24
|
+
* const response = await httpClient.get('/data');
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Default timeout
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const httpClient = createHttpExecutor('https://api.example.com');
|
|
30
|
+
* // Uses default 30000ms timeout
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @since 6.6.0
|
|
34
|
+
*/
|
|
35
|
+
export declare function createHttpExecutor(baseUrl: string, timeout?: number): AxiosInstance;
|
|
36
|
+
//# sourceMappingURL=http-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-factory.d.ts","sourceRoot":"","sources":["../../../src/utils/http-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAc,GACtB,aAAa,CAQf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/utils/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/utils/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../../../src/utils/load-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"load-env.d.ts","sourceRoot":"","sources":["../../../src/utils/load-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAY1C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../../src/utils/multipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../../src/utils/multipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAGnC,QAAQ,CAAC,EAAE,MAAM;IACjB,QAAQ,CAAC,EAAE,MAAM;gBAFxB,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,QAAQ,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAmGN;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASzD;AA0BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,QAAQ,CAiBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA0CnD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAwB9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric Calculation Patterns
|
|
3
|
+
*
|
|
4
|
+
* High-level numeric patterns for bonding curve fees, Uniswap V3 tick management,
|
|
5
|
+
* percentile calculations, and safe division with thresholds.
|
|
6
|
+
*
|
|
7
|
+
* Consolidates 20+ occurrences of repeated mathematical patterns across trading,
|
|
8
|
+
* liquidity, and portfolio services.
|
|
9
|
+
*
|
|
10
|
+
* @category Utilities
|
|
11
|
+
* @since 5.17.0
|
|
12
|
+
*/
|
|
13
|
+
import BigNumber from 'bignumber.js';
|
|
14
|
+
/**
|
|
15
|
+
* Calculate linearly interpolated fee between min and max based on progress
|
|
16
|
+
*
|
|
17
|
+
* Maps a progress value (0 to 1) to a fee between minFee and maxFee using linear interpolation.
|
|
18
|
+
* This is the core pattern used in bonding curve calculations where fees scale from
|
|
19
|
+
* minFeePortion to maxFeePortion based on token supply progress (supply / maxSupply).
|
|
20
|
+
*
|
|
21
|
+
* Formula: minFee + (maxFee - minFee) * progress
|
|
22
|
+
*
|
|
23
|
+
* Consolidates 4 occurrences in bondingCurveCalculations and related services.
|
|
24
|
+
*
|
|
25
|
+
* @param progress - Progress ratio from 0 to 1 (e.g., currentSupply / maxSupply)
|
|
26
|
+
* @param minFee - Minimum fee value (as decimal, e.g., 0.1 for 10%)
|
|
27
|
+
* @param maxFee - Maximum fee value (as decimal, e.g., 0.5 for 50%)
|
|
28
|
+
* @returns Interpolated fee amount as BigNumber
|
|
29
|
+
*
|
|
30
|
+
* @throws Error if progress is outside [0, 1] or if maxFee < minFee
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Fee scales from 10% to 50% as supply increases
|
|
35
|
+
* const progress = toBigNumber('500000').dividedBy('10000000'); // 0.05 = 5%
|
|
36
|
+
* const fee = calculateLinearFeeInterpolation(progress, 0.1, 0.5);
|
|
37
|
+
* // Returns: 0.1 + (0.5 - 0.1) * 0.05 = 0.12 (12%)
|
|
38
|
+
*
|
|
39
|
+
* // At max supply (100%), fee reaches 50%
|
|
40
|
+
* const fee = calculateLinearFeeInterpolation(1, 0.1, 0.5);
|
|
41
|
+
* // Returns: 0.5
|
|
42
|
+
*
|
|
43
|
+
* // At zero supply (0%), fee is minimum
|
|
44
|
+
* const fee = calculateLinearFeeInterpolation(0, 0.1, 0.5);
|
|
45
|
+
* // Returns: 0.1
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function calculateLinearFeeInterpolation(progress: number | BigNumber, minFee: number, maxFee: number): BigNumber;
|
|
49
|
+
/**
|
|
50
|
+
* Round tick boundaries to valid Uniswap V3 spacing multiples
|
|
51
|
+
*
|
|
52
|
+
* Uniswap V3 ticks must be multiples of tickSpacing (1, 10, 60, 200, etc.).
|
|
53
|
+
* This utility rounds tickLower down and tickUpper up to valid boundaries.
|
|
54
|
+
*
|
|
55
|
+
* Consolidates 5 occurrences of inline Math.floor/Math.ceil logic in GSwap services.
|
|
56
|
+
*
|
|
57
|
+
* @param tickLower - Lower tick boundary (before rounding)
|
|
58
|
+
* @param tickUpper - Upper tick boundary (before rounding)
|
|
59
|
+
* @param tickSpacing - Tick spacing requirement (e.g., 60 for 0.3% fee tier)
|
|
60
|
+
* @returns Object with rounded tickLower (floor) and tickUpper (ceil)
|
|
61
|
+
*
|
|
62
|
+
* @throws Error if tickLower >= tickUpper or if tickSpacing <= 0
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* // Round to nearest 60-tick multiples
|
|
67
|
+
* const rounded = roundTickBoundaries(1234, 5678, 60);
|
|
68
|
+
* // Returns: { tickLower: 1200, tickUpper: 5700 }
|
|
69
|
+
* // (1234 rounds down to 1200, 5678 rounds up to 5700)
|
|
70
|
+
*
|
|
71
|
+
* // Handle negative ticks (below price 1.0)
|
|
72
|
+
* const rounded = roundTickBoundaries(-1234, -1000, 10);
|
|
73
|
+
* // Returns: { tickLower: -1240, tickUpper: -1000 }
|
|
74
|
+
*
|
|
75
|
+
* // Ticks already valid (multiples of spacing)
|
|
76
|
+
* const rounded = roundTickBoundaries(0, 60, 60);
|
|
77
|
+
* // Returns: { tickLower: 0, tickUpper: 60 }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function roundTickBoundaries(tickLower: number, tickUpper: number, tickSpacing: number): {
|
|
81
|
+
tickLower: number;
|
|
82
|
+
tickUpper: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Map price range to tick range and return both computed ticks and actual prices
|
|
86
|
+
*
|
|
87
|
+
* Converts a human-readable price range to Uniswap V3 ticks, then converts back
|
|
88
|
+
* to compute the actual prices those ticks represent (due to rounding effects).
|
|
89
|
+
*
|
|
90
|
+
* This bidirectional mapping is essential for liquidity position validation where
|
|
91
|
+
* users specify a price range but the actual executable range differs due to
|
|
92
|
+
* tick quantization.
|
|
93
|
+
*
|
|
94
|
+
* Consolidates 3 occurrences of price-tick conversion with validation logic.
|
|
95
|
+
*
|
|
96
|
+
* @param minPrice - Minimum price (human-readable, e.g., "0.95")
|
|
97
|
+
* @param maxPrice - Maximum price (human-readable, e.g., "1.05")
|
|
98
|
+
* @param tickSpacing - Tick spacing requirement (default: 60)
|
|
99
|
+
* @returns Object with computed ticks and the actual prices they represent
|
|
100
|
+
*
|
|
101
|
+
* @throws Error if minPrice >= maxPrice or if prices are non-positive
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* // Map price range [0.95, 1.05] to ticks with 60-tick spacing
|
|
106
|
+
* const mapping = priceTickRangeMapping('0.95', '1.05', 60);
|
|
107
|
+
* // Returns: {
|
|
108
|
+
* // minTick: -2700,
|
|
109
|
+
* // maxTick: 1320,
|
|
110
|
+
* // actualMinPrice: BigNumber('0.949...'), // Slightly lower due to rounding
|
|
111
|
+
* // actualMaxPrice: BigNumber('1.050...') // Slightly higher due to rounding
|
|
112
|
+
* // }
|
|
113
|
+
*
|
|
114
|
+
* // Confirms to user: "You requested [0.95, 1.05] but will get [0.949..., 1.050...]"
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare function priceTickRangeMapping(minPrice: string | number | BigNumber, maxPrice: string | number | BigNumber, tickSpacing?: number): {
|
|
118
|
+
minTick: number;
|
|
119
|
+
maxTick: number;
|
|
120
|
+
actualMinPrice: BigNumber;
|
|
121
|
+
actualMaxPrice: BigNumber;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Calculate percentile index in a sorted array
|
|
125
|
+
*
|
|
126
|
+
* Computes the array index corresponding to a given percentile (0-100).
|
|
127
|
+
* Uses linear interpolation for fractional positions.
|
|
128
|
+
*
|
|
129
|
+
* Consolidates 3 occurrences of percentile calculations in monitoring metrics.
|
|
130
|
+
*
|
|
131
|
+
* @param sortedArray - Array of numbers, must be sorted in ascending order
|
|
132
|
+
* @param percentile - Percentile value from 0 to 100 (e.g., 95 for 95th percentile)
|
|
133
|
+
* @returns The array index, or -1 if array is empty
|
|
134
|
+
*
|
|
135
|
+
* @throws Error if percentile is outside [0, 100] or array is not sorted
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* // Get 95th percentile from latency measurements
|
|
140
|
+
* const latencies = [10, 25, 50, 75, 100, 150, 200];
|
|
141
|
+
* const p95Index = percentileIndexCalculation(latencies, 95);
|
|
142
|
+
* // Returns index 6 (value 200, or interpolated between 150-200)
|
|
143
|
+
*
|
|
144
|
+
* // Median (50th percentile)
|
|
145
|
+
* const medianIndex = percentileIndexCalculation(latencies, 50);
|
|
146
|
+
* // Returns index 3 (value 75)
|
|
147
|
+
*
|
|
148
|
+
* // Min/Max
|
|
149
|
+
* const minIndex = percentileIndexCalculation(latencies, 0); // 0
|
|
150
|
+
* const maxIndex = percentileIndexCalculation(latencies, 100); // 6
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
export declare function percentileIndexCalculation(sortedArray: number[], percentile: number): number;
|
|
154
|
+
/**
|
|
155
|
+
* Round decimal up to specified precision (ceiling rounding)
|
|
156
|
+
*
|
|
157
|
+
* Always rounds UP to the specified decimal places. This ensures system accuracy
|
|
158
|
+
* and prevents shortchanging calculations (e.g., fee calculations always round up
|
|
159
|
+
* to protect the fee recipient).
|
|
160
|
+
*
|
|
161
|
+
* Consolidates 3 occurrences of Math.ceil with decimal precision patterns.
|
|
162
|
+
*
|
|
163
|
+
* @param value - Value to round (string, number, or BigNumber)
|
|
164
|
+
* @param decimals - Number of decimal places to preserve
|
|
165
|
+
* @returns Rounded value as BigNumber
|
|
166
|
+
*
|
|
167
|
+
* @throws Error if decimals is negative
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* // Fee calculations that always round up
|
|
172
|
+
* const fee = decimalRoundingUp('1.234', 2); // 1.24 (rounds up from 1.23)
|
|
173
|
+
*
|
|
174
|
+
* // Preserve more decimals
|
|
175
|
+
* const precise = decimalRoundingUp('1.23456', 4); // 1.2346
|
|
176
|
+
*
|
|
177
|
+
* // Integer rounding
|
|
178
|
+
* const integer = decimalRoundingUp('1.1', 0); // 2 (rounds up to next integer)
|
|
179
|
+
*
|
|
180
|
+
* // Very small values
|
|
181
|
+
* const tiny = decimalRoundingUp('0.00001', 4); // 0.0001
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function decimalRoundingUp(value: string | number | BigNumber, decimals: number): BigNumber;
|
|
185
|
+
/**
|
|
186
|
+
* Divide with zero fallback AND minimum threshold check
|
|
187
|
+
*
|
|
188
|
+
* Performs safe division with two layers of protection:
|
|
189
|
+
* 1. Returns fallback if denominator is zero
|
|
190
|
+
* 2. Returns minimum threshold if computed result is less than minimum
|
|
191
|
+
*
|
|
192
|
+
* This prevents calculations from producing unrealistic micro-values (e.g., APR
|
|
193
|
+
* calculations that shouldn't return 0.0000001%).
|
|
194
|
+
*
|
|
195
|
+
* Consolidates 3 partial occurrences across APR and portfolio calculations.
|
|
196
|
+
*
|
|
197
|
+
* @param numerator - Dividend
|
|
198
|
+
* @param denominator - Divisor
|
|
199
|
+
* @param minimum - Minimum threshold (default: "0", meaning no minimum)
|
|
200
|
+
* @param fallback - Value to return if denominator is zero (default: "0")
|
|
201
|
+
* @returns The quotient, minimum threshold if result is too small, or fallback if denominator is zero
|
|
202
|
+
*
|
|
203
|
+
* @throws Error if minimum is negative or minimum > maximum representable value
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* // Safe division with zero fallback
|
|
208
|
+
* const ratio = safeDivideWithMinimum('100', '0', undefined, '0');
|
|
209
|
+
* // Returns: "0" (denominator is zero)
|
|
210
|
+
*
|
|
211
|
+
* // Enforce minimum APR (never report less than 0.01%)
|
|
212
|
+
* const apr = safeDivideWithMinimum(
|
|
213
|
+
* feeAmount,
|
|
214
|
+
* liquidityValue,
|
|
215
|
+
* '0.0001' // Minimum 0.01% APR
|
|
216
|
+
* );
|
|
217
|
+
*
|
|
218
|
+
* // Threshold prevents micro-values
|
|
219
|
+
* const tiny = safeDivideWithMinimum('1', '1000000', '0.001');
|
|
220
|
+
* // Result 0.000001 is < minimum 0.001, so returns 0.001
|
|
221
|
+
*
|
|
222
|
+
* // Normal division (result meets threshold)
|
|
223
|
+
* const normal = safeDivideWithMinimum('100', '10', '0.001');
|
|
224
|
+
* // Result 10 > minimum 0.001, so returns 10
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
export declare function safeDivideWithMinimum(numerator: string | number | BigNumber, denominator: string | number | BigNumber, minimum?: string | number | BigNumber, fallback?: string | number | BigNumber): BigNumber;
|
|
228
|
+
/**
|
|
229
|
+
* Round a Uniswap V3 tick to a valid spacing multiple
|
|
230
|
+
*
|
|
231
|
+
* Uniswap V3 ticks must be multiples of tickSpacing (e.g., 1, 10, 60, 200).
|
|
232
|
+
* This utility rounds down to the nearest valid tick spacing using integer arithmetic.
|
|
233
|
+
*
|
|
234
|
+
* Formula: `Math.floor(tick / tickSpacing) * tickSpacing`
|
|
235
|
+
*
|
|
236
|
+
* Consolidates 4 occurrences of inline tick rounding logic in GSwap services.
|
|
237
|
+
*
|
|
238
|
+
* @param tick - The tick value to round (can be negative for prices below 1.0)
|
|
239
|
+
* @param tickSpacing - The tick spacing requirement (e.g., 1, 10, 60, 200)
|
|
240
|
+
* @returns The rounded tick (multiple of tickSpacing)
|
|
241
|
+
*
|
|
242
|
+
* @throws Error if tickSpacing <= 0
|
|
243
|
+
*
|
|
244
|
+
* @example
|
|
245
|
+
* ```typescript
|
|
246
|
+
* // Round tick 1055 to nearest tick spacing of 10
|
|
247
|
+
* const rounded = roundTickToSpacing(1055, 10); // 1050
|
|
248
|
+
*
|
|
249
|
+
* // Round tick 101 to spacing 60
|
|
250
|
+
* const rounded = roundTickToSpacing(101, 60); // 60
|
|
251
|
+
*
|
|
252
|
+
* // Negative ticks are also supported (for prices below 1.0)
|
|
253
|
+
* const rounded = roundTickToSpacing(-1055, 10); // -1060
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
export declare function roundTickToSpacing(tick: number, tickSpacing: number): number;
|
|
257
|
+
/**
|
|
258
|
+
* Calculate reverse bonding curve fee amount with precision handling
|
|
259
|
+
*
|
|
260
|
+
* Consolidates the pattern of applying a fee factor to a base amount with
|
|
261
|
+
* integer rounding (down). Used extensively in bonding curve calculations
|
|
262
|
+
* for reverse fee computation and scaled amount operations.
|
|
263
|
+
*
|
|
264
|
+
* Formula: `new BigNumber(baseAmount).multipliedBy(feeFactor).integerValue(BigNumber.ROUND_DOWN)`
|
|
265
|
+
*
|
|
266
|
+
* Consolidates 3 occurrences of fee scaling patterns in trading services.
|
|
267
|
+
*
|
|
268
|
+
* @param baseAmount - The base amount to apply fee factor to (string, number, or BigNumber)
|
|
269
|
+
* @param feeFactor - The fee factor as decimal (e.g., 0.1 for 10%, 0.005 for 0.5%)
|
|
270
|
+
* @returns The scaled fee amount (rounded down to integer)
|
|
271
|
+
*
|
|
272
|
+
* @throws Error if feeFactor is negative
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* // Calculate 1% fee on 1000 GALA
|
|
277
|
+
* const baseAmount = new BigNumber('1000');
|
|
278
|
+
* const fee = calculateScaledFeeAmount(baseAmount, 0.01); // BigNumber(10)
|
|
279
|
+
*
|
|
280
|
+
* // Calculate 0.5% reverse bonding curve fee
|
|
281
|
+
* const feeAmount = calculateScaledFeeAmount('5000', 0.005); // BigNumber(25)
|
|
282
|
+
*
|
|
283
|
+
* // Fee factor from pool: reverseBondingCurveFee = 0.123456
|
|
284
|
+
* const reversed = calculateScaledFeeAmount(amount, reverseBondingCurveFee);
|
|
285
|
+
* // Returns: rounded-down result of amount * 0.123456
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
export declare function calculateScaledFeeAmount(baseAmount: string | number | BigNumber, feeFactor: number): BigNumber;
|
|
289
|
+
//# sourceMappingURL=numeric-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric-patterns.d.ts","sourceRoot":"","sources":["../../../src/utils/numeric-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,SAAS,CAiBX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmB1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACrC,WAAW,GAAE,MAAW,GACvB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;CAC3B,CAiCA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EAAE,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAeR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,QAAQ,EAAE,MAAM,GACf,SAAS,CAUX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACtC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACrC,QAAQ,GAAE,MAAM,GAAG,MAAM,GAAG,SAAe,GAC1C,SAAS,CAyBX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACvC,SAAS,EAAE,MAAM,GAChB,SAAS,CAMX"}
|