@gala-chain/launchpad-sdk 5.0.3 → 5.0.4-beta.1
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/constants/version.generated.d.ts.map +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,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AddressFormatter - Consolidated address format conversion utilities
|
|
3
|
+
*
|
|
4
|
+
* Consolidates address formatting logic scattered across multiple files:
|
|
5
|
+
* - validation.ts: `toBackendAddressFormat()`, `fromBackendAddressFormat()`, `normalizeAddressInput()`
|
|
6
|
+
* - validation-helpers.ts: `formatAddressForBackend()`, `isValidAddress()`, `assertValidWalletAddress()`
|
|
7
|
+
* - Multiple services: Duplicate address parsing and normalization
|
|
8
|
+
*
|
|
9
|
+
* ## Problem Solved
|
|
10
|
+
*
|
|
11
|
+
* Address formatting was duplicated with inconsistent patterns:
|
|
12
|
+
* - Ethereum format: "0x1234..."
|
|
13
|
+
* - Backend format: "eth|1234..."
|
|
14
|
+
* - Client format: "client|abc123"
|
|
15
|
+
* - Different validation patterns in different files
|
|
16
|
+
* - Inconsistent error messages
|
|
17
|
+
*
|
|
18
|
+
* This utility provides a cohesive, well-documented interface for all address operations.
|
|
19
|
+
*
|
|
20
|
+
* @category Utilities
|
|
21
|
+
* @since 6.5.0
|
|
22
|
+
*/
|
|
23
|
+
import { AddressFormat } from '../types/common';
|
|
24
|
+
import { stripHexPrefix as bridgeStripHexPrefix } from '../bridge/utils/address-formatter';
|
|
25
|
+
/**
|
|
26
|
+
* Address format types
|
|
27
|
+
*/
|
|
28
|
+
export type AddressFormatType = 'ethereum' | 'backend' | 'client';
|
|
29
|
+
/**
|
|
30
|
+
* AddressFormatter - Unified address format operations
|
|
31
|
+
*
|
|
32
|
+
* Provides consistent, well-documented address formatting and validation
|
|
33
|
+
* across all services that work with wallet addresses.
|
|
34
|
+
*
|
|
35
|
+
* ## Supported Formats
|
|
36
|
+
*
|
|
37
|
+
* - **Ethereum**: `0x1234567890abcdef...` (40 hex chars with 0x prefix)
|
|
38
|
+
* - **Backend**: `eth|1234567890abcdef...` (40 hex chars without 0x)
|
|
39
|
+
* - **Client**: `client|identifier` (arbitrary client identifiers)
|
|
40
|
+
*
|
|
41
|
+
* ## Usage Examples
|
|
42
|
+
*
|
|
43
|
+
* ### Format conversion
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const formatter = new AddressFormatter();
|
|
46
|
+
*
|
|
47
|
+
* // Ethereum to backend
|
|
48
|
+
* formatter.toBackendFormat('0x1234...abc');
|
|
49
|
+
* // Returns: 'eth|1234...abc'
|
|
50
|
+
*
|
|
51
|
+
* // Backend to Ethereum
|
|
52
|
+
* formatter.toEthereumFormat('eth|1234...abc');
|
|
53
|
+
* // Returns: '0x1234...abc'
|
|
54
|
+
*
|
|
55
|
+
* // Auto-detect and convert
|
|
56
|
+
* const format = formatter.normalizeInput('0x1234...abc');
|
|
57
|
+
* // Returns: 'eth|1234...abc' (backend format)
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* ### Validation
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const formatter = new AddressFormatter();
|
|
63
|
+
*
|
|
64
|
+
* // Check validity (no throw)
|
|
65
|
+
* if (formatter.isValid('0x1234...abc')) {
|
|
66
|
+
* // Process address
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* // Validate with throw
|
|
70
|
+
* formatter.assertValid(address, 'userAddress');
|
|
71
|
+
* // Safe to use
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @since 6.5.0
|
|
75
|
+
*/
|
|
76
|
+
export declare class AddressFormatter {
|
|
77
|
+
/**
|
|
78
|
+
* Convert Ethereum address to backend format
|
|
79
|
+
*
|
|
80
|
+
* Accepts Ethereum format (with or without 0x prefix) and returns backend format.
|
|
81
|
+
*
|
|
82
|
+
* @param address Ethereum address (0x... or plain 40 hex)
|
|
83
|
+
* @returns Backend format address (eth|...)
|
|
84
|
+
* @throws ValidationError if address format is invalid
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const formatter = new AddressFormatter();
|
|
89
|
+
*
|
|
90
|
+
* formatter.toBackendFormat('0x1234567890abcdef...abcdef');
|
|
91
|
+
* // Returns: 'eth|1234567890abcdef...abcdef'
|
|
92
|
+
*
|
|
93
|
+
* formatter.toBackendFormat('1234567890abcdef...abcdef');
|
|
94
|
+
* // Returns: 'eth|1234567890abcdef...abcdef'
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
toBackendFormat(address: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Convert backend address format to Ethereum format
|
|
100
|
+
*
|
|
101
|
+
* Converts backend format (eth|...) to standard Ethereum format (0x...).
|
|
102
|
+
* Preserves the original case of the address portion (including EIP-55 checksummed addresses).
|
|
103
|
+
*
|
|
104
|
+
* @param address Backend format address (eth|...)
|
|
105
|
+
* @returns Ethereum format address (0x...)
|
|
106
|
+
* @throws ValidationError if address format is invalid
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const formatter = new AddressFormatter();
|
|
111
|
+
*
|
|
112
|
+
* formatter.toEthereumFormat('eth|1234567890abcdef...abcdef');
|
|
113
|
+
* // Returns: '0x1234567890abcdef...abcdef'
|
|
114
|
+
*
|
|
115
|
+
* formatter.toEthereumFormat('eth|5aAeb6053f3E94C9b9A09f33669435E7Ef1BeAed');
|
|
116
|
+
* // Returns: '0x5aAeb6053f3E94C9b9A09f33669435E7Ef1BeAed' (preserves checksum case)
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
toEthereumFormat(address: string): string;
|
|
120
|
+
/**
|
|
121
|
+
* Smart address parser - accepts both Ethereum and backend formats
|
|
122
|
+
*
|
|
123
|
+
* Automatically detects format and converts to backend format required by SDK.
|
|
124
|
+
* Handles both "0x..." and "eth|..." formats seamlessly.
|
|
125
|
+
*
|
|
126
|
+
* @param address Address in either Ethereum or backend format
|
|
127
|
+
* @returns Backend format address (eth|...)
|
|
128
|
+
* @throws ValidationError if address format is invalid
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const formatter = new AddressFormatter();
|
|
133
|
+
*
|
|
134
|
+
* // Ethereum format input
|
|
135
|
+
* formatter.normalizeInput('0x1234...abc');
|
|
136
|
+
* // Returns: 'eth|1234...abc'
|
|
137
|
+
*
|
|
138
|
+
* // Backend format input
|
|
139
|
+
* formatter.normalizeInput('eth|1234...abc');
|
|
140
|
+
* // Returns: 'eth|1234...abc' (unchanged)
|
|
141
|
+
*
|
|
142
|
+
* // Plain hex (with or without 0x)
|
|
143
|
+
* formatter.normalizeInput('1234...abc');
|
|
144
|
+
* // Returns: 'eth|1234...abc'
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
normalizeInput(address: string | undefined): AddressFormat | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* Check if an address is valid (without throwing)
|
|
150
|
+
*
|
|
151
|
+
* Returns true if address is in valid Ethereum or backend format.
|
|
152
|
+
*
|
|
153
|
+
* @param address Address to check
|
|
154
|
+
* @returns true if valid, false otherwise
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const formatter = new AddressFormatter();
|
|
159
|
+
*
|
|
160
|
+
* if (formatter.isValid('0x1234...abc')) {
|
|
161
|
+
* // Process address
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
isValid(address: string | undefined | null): address is string;
|
|
166
|
+
/**
|
|
167
|
+
* Validate address format, throwing on invalid
|
|
168
|
+
*
|
|
169
|
+
* @param address Address to validate
|
|
170
|
+
* @param fieldName Field name for error messages (default: 'address')
|
|
171
|
+
* @throws ValidationError if address is invalid
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const formatter = new AddressFormatter();
|
|
176
|
+
*
|
|
177
|
+
* formatter.assertValid(userAddress, 'userAddress');
|
|
178
|
+
* // Safe to use userAddress
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
assertValid(address: string | undefined, fieldName?: string): void;
|
|
182
|
+
/**
|
|
183
|
+
* Detect the format of an address string
|
|
184
|
+
*
|
|
185
|
+
* @param address Address string to check
|
|
186
|
+
* @returns Format type ('ethereum', 'backend', 'client') or null if invalid
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* const formatter = new AddressFormatter();
|
|
191
|
+
*
|
|
192
|
+
* formatter.detectFormat('0x1234...abc'); // 'ethereum'
|
|
193
|
+
* formatter.detectFormat('eth|1234...abc'); // 'backend'
|
|
194
|
+
* formatter.detectFormat('client|xyz'); // 'client'
|
|
195
|
+
* formatter.detectFormat('invalid'); // null
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
detectFormat(address: string | undefined): AddressFormatType | null;
|
|
199
|
+
/**
|
|
200
|
+
* Normalize address casing (lowercase for consistency)
|
|
201
|
+
*
|
|
202
|
+
* Ethereum addresses can be checksummed, but we normalize to lowercase
|
|
203
|
+
* for consistency in comparisons and storage.
|
|
204
|
+
*
|
|
205
|
+
* @param address Address to normalize
|
|
206
|
+
* @returns Lowercase address
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* const formatter = new AddressFormatter();
|
|
211
|
+
*
|
|
212
|
+
* formatter.normalize('0xABCD...DCBA');
|
|
213
|
+
* // Returns: '0xabcd...dcba'
|
|
214
|
+
*
|
|
215
|
+
* formatter.normalize('ETH|ABCD...DCBA');
|
|
216
|
+
* // Returns: 'eth|abcd...dcba'
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
normalize(address: string | undefined): string | undefined;
|
|
220
|
+
/**
|
|
221
|
+
* Extract hex address from either format
|
|
222
|
+
*
|
|
223
|
+
* Returns just the 40-character hex portion without any prefix.
|
|
224
|
+
*
|
|
225
|
+
* @param address Ethereum or backend format address
|
|
226
|
+
* @returns 40-character hex string (lowercase)
|
|
227
|
+
* @throws ValidationError if address format is invalid
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```typescript
|
|
231
|
+
* const formatter = new AddressFormatter();
|
|
232
|
+
*
|
|
233
|
+
* formatter.extractHex('0x1234...abc');
|
|
234
|
+
* // Returns: '1234...abc'
|
|
235
|
+
*
|
|
236
|
+
* formatter.extractHex('eth|1234...abc');
|
|
237
|
+
* // Returns: '1234...abc'
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
extractHex(address: string): string;
|
|
241
|
+
}
|
|
242
|
+
export declare const stripHexPrefix: typeof bridgeStripHexPrefix;
|
|
243
|
+
/**
|
|
244
|
+
* Convert Ethereum address to backend format (function style)
|
|
245
|
+
*
|
|
246
|
+
* @param address Ethereum address
|
|
247
|
+
* @returns Backend format
|
|
248
|
+
* @throws ValidationError if invalid
|
|
249
|
+
*/
|
|
250
|
+
export declare function toBackendAddressFormat(address: string): string;
|
|
251
|
+
/**
|
|
252
|
+
* Convert backend address to Ethereum format (function style)
|
|
253
|
+
*
|
|
254
|
+
* @param address Backend format address
|
|
255
|
+
* @returns Ethereum format
|
|
256
|
+
* @throws ValidationError if invalid
|
|
257
|
+
*/
|
|
258
|
+
export declare function fromBackendAddressFormat(address: string): string;
|
|
259
|
+
/**
|
|
260
|
+
* Smart address parser (function style)
|
|
261
|
+
*
|
|
262
|
+
* @param address Address to normalize
|
|
263
|
+
* @returns Backend format or undefined
|
|
264
|
+
*/
|
|
265
|
+
export declare function normalizeAddressInput(address: string | undefined): AddressFormat | undefined;
|
|
266
|
+
/**
|
|
267
|
+
* Check if address is valid (function style)
|
|
268
|
+
*
|
|
269
|
+
* @param address Address to check
|
|
270
|
+
* @returns true if valid
|
|
271
|
+
*/
|
|
272
|
+
export declare function isValidAddress(address: string | undefined): address is string;
|
|
273
|
+
/**
|
|
274
|
+
* Validate address and throw (function style)
|
|
275
|
+
*
|
|
276
|
+
* @param address Address to validate
|
|
277
|
+
* @param fieldName Field name for errors
|
|
278
|
+
* @throws ValidationError if invalid
|
|
279
|
+
*/
|
|
280
|
+
export declare function assertValidWalletAddress(address: string | undefined, fieldName?: string): void;
|
|
281
|
+
/**
|
|
282
|
+
* Convert Ethereum address object (from ethers Wallet) to backend format
|
|
283
|
+
*
|
|
284
|
+
* Provides a convenient one-step conversion from ethers Wallet addresses to backend format.
|
|
285
|
+
* Handles both Wallet objects and plain addresses.
|
|
286
|
+
*
|
|
287
|
+
* @param ethAddress Ethereum address with or without 0x prefix, or ethers Wallet object
|
|
288
|
+
* @returns Backend format address (eth|...)
|
|
289
|
+
* @throws ValidationError if address format is invalid
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* import { Wallet } from 'ethers';
|
|
294
|
+
* import { toBackendAddressFromEthers } from '@/utils/address-formatter';
|
|
295
|
+
*
|
|
296
|
+
* const wallet = new Wallet(privateKey);
|
|
297
|
+
* const backendAddr = toBackendAddressFromEthers(wallet.address);
|
|
298
|
+
* // Returns: 'eth|1234567890abcdef...abcdef'
|
|
299
|
+
*
|
|
300
|
+
* // Also works with plain addresses
|
|
301
|
+
* const result = toBackendAddressFromEthers('0x1234...abc');
|
|
302
|
+
* // Returns: 'eth|1234...abc'
|
|
303
|
+
* ```
|
|
304
|
+
*
|
|
305
|
+
* @since 6.6.0
|
|
306
|
+
*/
|
|
307
|
+
export declare function toBackendAddressFromEthers(ethAddress: string | {
|
|
308
|
+
address: string;
|
|
309
|
+
}): string;
|
|
310
|
+
/**
|
|
311
|
+
* Detect the format of an address string (function style)
|
|
312
|
+
*
|
|
313
|
+
* @param address Address to check
|
|
314
|
+
* @returns Format type ('ethereum', 'backend', 'client') or null if invalid
|
|
315
|
+
*/
|
|
316
|
+
export declare function detectFormat(address: string | undefined): AddressFormatType | null;
|
|
317
|
+
//# sourceMappingURL=address-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-formatter.d.ts","sourceRoot":"","sources":["../../../src/utils/address-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAwBlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAyBxC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA+BzC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS;IAsBtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,IAAI,MAAM;IA4B9D;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,MAAkB,GAAG,IAAI;IAU7E;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI;IAwBnE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAQ1D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAoBpC;AAQD,eAAO,MAAM,cAAc,6BAAuB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAE5F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,IAAI,MAAM,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAE,MAAkB,GAAG,IAAI,CAEzG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG3F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAElF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../../src/utils/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../../src/utils/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;AAIxD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACjC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;QACpB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;WACU,UAAU,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC;QAC5D,GAAG,EAAE,YAAY,CAAC;QAClB,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,kBAAkB,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B,CAAC;IAwCF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmEG;WACU,aAAa,CAAC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,OAAO,CAAC;QACxE,GAAG,EAAE,YAAY,CAAC;QAClB,MAAM,EAAE,kBAAkB,CAAC;KAC5B,CAAC;IA8BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;WACU,aAAa,CACxB,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,eAAe,CAAC;IA0E3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,oBAAoB,CACzB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,GAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAqB,GACrE,cAAc;IA4CjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;WACU,gBAAgB,CAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,GAAE,gBAAgC,GAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAkBxC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAQhC,OAAO,CAAC,MAAM,CAAC,WAAW;IAoB1B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAWhC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAahC,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAuBtC"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AmountValidator - Comprehensive token amount validation utility
|
|
3
|
+
*
|
|
4
|
+
* Consolidates amount validation logic scattered across multiple services:
|
|
5
|
+
* - validateNumericString() from validation.ts
|
|
6
|
+
* - Amount range validation patterns
|
|
7
|
+
* - Decimal precision validation
|
|
8
|
+
* - Safe amount parsing and conversion
|
|
9
|
+
*
|
|
10
|
+
* ## Problem Solved
|
|
11
|
+
*
|
|
12
|
+
* Amount validation was duplicated across services:
|
|
13
|
+
* - validation.ts: `validateNumericString()` with inline error messages
|
|
14
|
+
* - GSwapService, BondingCurveService: Duplicate amount range checks
|
|
15
|
+
* - Multiple services: Inconsistent error messages for amount validation
|
|
16
|
+
*
|
|
17
|
+
* This utility provides a cohesive, reusable validation interface.
|
|
18
|
+
*
|
|
19
|
+
* @category Utilities
|
|
20
|
+
* @since 6.5.0
|
|
21
|
+
*/
|
|
22
|
+
import BigNumber from 'bignumber.js';
|
|
23
|
+
/**
|
|
24
|
+
* Amount validation configuration
|
|
25
|
+
*/
|
|
26
|
+
export interface AmountValidationOptions {
|
|
27
|
+
/**
|
|
28
|
+
* Whether zero amounts are allowed (default: true)
|
|
29
|
+
*/
|
|
30
|
+
allowZero?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Minimum allowed amount (default: 0)
|
|
33
|
+
*/
|
|
34
|
+
minimum?: string | number;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum allowed amount (optional)
|
|
37
|
+
*/
|
|
38
|
+
maximum?: string | number;
|
|
39
|
+
/**
|
|
40
|
+
* Maximum decimal places (default: 18)
|
|
41
|
+
*/
|
|
42
|
+
maxDecimals?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Custom field name for error messages (default: 'amount')
|
|
45
|
+
*/
|
|
46
|
+
fieldName?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* AmountValidator - Comprehensive token amount validation
|
|
50
|
+
*
|
|
51
|
+
* Provides consistent, well-documented amount validation across all trading operations.
|
|
52
|
+
*
|
|
53
|
+
* ## Usage Examples
|
|
54
|
+
*
|
|
55
|
+
* ### Basic validation
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const validator = new AmountValidator();
|
|
58
|
+
*
|
|
59
|
+
* // Validate with defaults (positive number)
|
|
60
|
+
* validator.validate('100'); // OK
|
|
61
|
+
* validator.validate('100.50'); // OK
|
|
62
|
+
* validator.validate('0'); // OK (zero allowed by default)
|
|
63
|
+
* validator.validate('abc'); // Throws - not numeric
|
|
64
|
+
* validator.validate('-100'); // Throws - negative
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* ### With custom options
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const validator = new AmountValidator();
|
|
70
|
+
*
|
|
71
|
+
* // No zero amounts allowed
|
|
72
|
+
* validator.validate('0', { allowZero: false });
|
|
73
|
+
* // Throws: "amount must be greater than zero"
|
|
74
|
+
*
|
|
75
|
+
* // Range validation
|
|
76
|
+
* validator.validate('50', {
|
|
77
|
+
* minimum: '100',
|
|
78
|
+
* maximum: '1000',
|
|
79
|
+
* fieldName: 'trade amount'
|
|
80
|
+
* });
|
|
81
|
+
* // Throws: "trade amount must be at least 100"
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* ### Decimal precision validation
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const validator = new AmountValidator();
|
|
87
|
+
*
|
|
88
|
+
* // Strict decimal precision for USDC (2 decimals)
|
|
89
|
+
* validator.validate('123.456', { maxDecimals: 2, fieldName: 'USDC amount' });
|
|
90
|
+
* // Throws: "USDC amount cannot exceed 2 decimal places"
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* ### Safe parsing
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const validator = new AmountValidator();
|
|
96
|
+
*
|
|
97
|
+
* // Parse string amount to BigNumber
|
|
98
|
+
* const amount = validator.parseAmount('123.456');
|
|
99
|
+
* // Returns: BigNumber('123.456')
|
|
100
|
+
*
|
|
101
|
+
* // Parse with default fallback
|
|
102
|
+
* const amount = validator.parseAmount(undefined, '0');
|
|
103
|
+
* // Returns: BigNumber('0')
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @since 6.5.0
|
|
107
|
+
*/
|
|
108
|
+
export declare class AmountValidator {
|
|
109
|
+
/**
|
|
110
|
+
* Maximum allowed decimal places for amounts (18 = standard wei precision)
|
|
111
|
+
*/
|
|
112
|
+
static readonly MAX_DECIMAL_PLACES = 18;
|
|
113
|
+
/**
|
|
114
|
+
* Minimum positive amount
|
|
115
|
+
*/
|
|
116
|
+
static readonly MIN_POSITIVE = "0.00000000000000001";
|
|
117
|
+
/**
|
|
118
|
+
* Validate a numeric string amount
|
|
119
|
+
*
|
|
120
|
+
* Performs comprehensive validation to ensure the string represents a valid,
|
|
121
|
+
* non-negative (or positive) decimal number without edge cases that could
|
|
122
|
+
* cause calculation errors.
|
|
123
|
+
*
|
|
124
|
+
* Rejects:
|
|
125
|
+
* - Empty strings or whitespace-only strings
|
|
126
|
+
* - Non-numeric values (NaN, Infinity, -Infinity)
|
|
127
|
+
* - Scientific notation (e.g., '1e10')
|
|
128
|
+
* - Negative numbers (unless explicitly allowed)
|
|
129
|
+
* - Numbers exceeding maximum decimal places
|
|
130
|
+
* - Numbers outside specified min/max range
|
|
131
|
+
* - Invalid number formats
|
|
132
|
+
*
|
|
133
|
+
* @param amount The string amount to validate
|
|
134
|
+
* @param options Validation options (optional)
|
|
135
|
+
* @throws ValidationError if validation fails
|
|
136
|
+
*
|
|
137
|
+
* @example Basic validation
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const validator = new AmountValidator();
|
|
140
|
+
*
|
|
141
|
+
* validator.validate('100.50', { fieldName: 'amount' }); // OK
|
|
142
|
+
* validator.validate('0', { fieldName: 'amount' }); // OK (zero allowed)
|
|
143
|
+
* validator.validate(' ', { fieldName: 'amount' }); // Throws: whitespace-only
|
|
144
|
+
* validator.validate('1e10', { fieldName: 'amount' }); // Throws: scientific notation
|
|
145
|
+
* validator.validate('-50', { fieldName: 'amount' }); // Throws: negative
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @example With range validation
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const validator = new AmountValidator();
|
|
151
|
+
*
|
|
152
|
+
* validator.validate('500', {
|
|
153
|
+
* fieldName: 'stake amount',
|
|
154
|
+
* minimum: '100',
|
|
155
|
+
* maximum: '1000'
|
|
156
|
+
* }); // OK
|
|
157
|
+
*
|
|
158
|
+
* validator.validate('50', {
|
|
159
|
+
* fieldName: 'stake amount',
|
|
160
|
+
* minimum: '100'
|
|
161
|
+
* }); // Throws: below minimum
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @example Token-specific precision
|
|
165
|
+
* ```typescript
|
|
166
|
+
* const validator = new AmountValidator();
|
|
167
|
+
*
|
|
168
|
+
* // GALA has 8 decimals
|
|
169
|
+
* validator.validate('123.12345678', {
|
|
170
|
+
* fieldName: 'GALA amount',
|
|
171
|
+
* maxDecimals: 8
|
|
172
|
+
* }); // OK
|
|
173
|
+
*
|
|
174
|
+
* // USDC has 6 decimals
|
|
175
|
+
* validator.validate('123.1234567', {
|
|
176
|
+
* fieldName: 'USDC amount',
|
|
177
|
+
* maxDecimals: 6
|
|
178
|
+
* }); // Throws: exceeds precision
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
validate(amount: string, options?: AmountValidationOptions): void;
|
|
182
|
+
/**
|
|
183
|
+
* Parse a string amount to BigNumber with fallback
|
|
184
|
+
*
|
|
185
|
+
* Safe parsing that applies a fallback value if input is null/undefined/invalid.
|
|
186
|
+
* Delegates to toBigNumber from bignumber-helpers for consistency.
|
|
187
|
+
*
|
|
188
|
+
* @param amount Amount string to parse
|
|
189
|
+
* @param fallback Fallback value if amount is invalid (default: '0')
|
|
190
|
+
* @returns BigNumber instance
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* const validator = new AmountValidator();
|
|
195
|
+
*
|
|
196
|
+
* const amount1 = validator.parseAmount('123.45'); // BigNumber('123.45')
|
|
197
|
+
* const amount2 = validator.parseAmount(undefined); // BigNumber('0')
|
|
198
|
+
* const amount3 = validator.parseAmount(null, '100'); // BigNumber('100')
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
parseAmount(amount: string | undefined | null, fallback?: string | number): BigNumber;
|
|
202
|
+
/**
|
|
203
|
+
* Check if amount is valid without throwing
|
|
204
|
+
*
|
|
205
|
+
* @param amount Amount string to check
|
|
206
|
+
* @param options Validation options (optional)
|
|
207
|
+
* @returns true if valid, false otherwise
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* const validator = new AmountValidator();
|
|
212
|
+
*
|
|
213
|
+
* if (validator.isValid('100.50')) {
|
|
214
|
+
* // Process amount
|
|
215
|
+
* } else {
|
|
216
|
+
* // Show error to user
|
|
217
|
+
* }
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
isValid(amount: string | undefined | null, options?: AmountValidationOptions): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Format amount as string with specific decimal places
|
|
223
|
+
*
|
|
224
|
+
* Removes trailing zeros and unnecessary decimal point.
|
|
225
|
+
* Delegates to toBigNumberFixed from bignumber-helpers for consistency.
|
|
226
|
+
*
|
|
227
|
+
* @param amount Amount string or BigNumber
|
|
228
|
+
* @param decimals Number of decimal places (default: auto)
|
|
229
|
+
* @returns Formatted string
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const validator = new AmountValidator();
|
|
234
|
+
*
|
|
235
|
+
* validator.formatAmount('100.5000'); // "100.5"
|
|
236
|
+
* validator.formatAmount('100', 2); // "100"
|
|
237
|
+
* validator.formatAmount('100.123456', 2); // "100.12"
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
formatAmount(amount: string | BigNumber, decimals?: number): string;
|
|
241
|
+
/**
|
|
242
|
+
* Ensure amount is within valid range
|
|
243
|
+
*
|
|
244
|
+
* Clamps amount between minimum and maximum (if specified).
|
|
245
|
+
* Uses toBigNumber from bignumber-helpers for consistent parsing.
|
|
246
|
+
*
|
|
247
|
+
* @param amount Amount to clamp
|
|
248
|
+
* @param minimum Minimum value
|
|
249
|
+
* @param maximum Maximum value
|
|
250
|
+
* @returns Clamped amount as string
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* const validator = new AmountValidator();
|
|
255
|
+
*
|
|
256
|
+
* const clamped = validator.clampAmount('500', '100', '1000');
|
|
257
|
+
* // Returns: "500"
|
|
258
|
+
*
|
|
259
|
+
* const clamped2 = validator.clampAmount('50', '100', '1000');
|
|
260
|
+
* // Returns: "100" (below minimum, clamped)
|
|
261
|
+
*
|
|
262
|
+
* const clamped3 = validator.clampAmount('2000', '100', '1000');
|
|
263
|
+
* // Returns: "1000" (above maximum, clamped)
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
clampAmount(amount: string | number, minimum: string | number, maximum: string | number): string;
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=amount-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount-validator.d.ts","sourceRoot":"","sources":["../../../src/utils/amount-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,SAAS,MAAM,cAAc,CAAC;AAYrC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IAExC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAY,yBAAyB;IAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,IAAI;IAoGrE;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAE,MAAM,GAAG,MAAY,GAAG,SAAS;IAK1F;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO;IAY1F;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAKnE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;CAcjG"}
|