@gala-chain/launchpad-sdk 5.0.3 → 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/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,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Balance Query Helpers
|
|
3
|
+
*
|
|
4
|
+
* Consolidated utilities for building ExternalChainBalance and BridgeTransaction response objects.
|
|
5
|
+
* Eliminates DRY violations across BridgeService and bridge strategy methods.
|
|
6
|
+
*
|
|
7
|
+
* @module bridge/utils/balanceHelpers
|
|
8
|
+
*/
|
|
9
|
+
import type { ExternalChainBalance, BridgeTransaction, ExternalNetwork, BridgeRequestDto, DestinationChainTxFee } from '../types/index.js';
|
|
10
|
+
import type { EthereumTokenConfig, SolanaTokenConfig } from '../types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Build an ExternalChainBalance for a native token (ETH or SOL).
|
|
13
|
+
*
|
|
14
|
+
* @param symbol - Native token symbol ('ETH' or 'SOL')
|
|
15
|
+
* @param quantity - Balance as decimal string
|
|
16
|
+
* @param decimals - Token decimals (18 for ETH, 9 for SOL)
|
|
17
|
+
* @returns ExternalChainBalance with isNative: true, contractAddress: null
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const ethBalance = buildNativeBalance('ETH', '1.5', 18);
|
|
22
|
+
* // { symbol: 'ETH', quantity: '1.5', decimals: 18, contractAddress: null, isNative: true }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildNativeBalance(symbol: 'ETH' | 'SOL', quantity: string, decimals: number): ExternalChainBalance;
|
|
26
|
+
/**
|
|
27
|
+
* Build an ExternalChainBalance for an Ethereum ERC-20 token.
|
|
28
|
+
*
|
|
29
|
+
* @param tokenConfig - Ethereum token configuration
|
|
30
|
+
* @param quantity - Balance as decimal string
|
|
31
|
+
* @returns ExternalChainBalance with contractAddress and isNative: false
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const galaBalance = buildEthereumTokenBalance(
|
|
36
|
+
* { symbol: 'GALA', contractAddress: '0x15D4...', decimals: 8 },
|
|
37
|
+
* '1000.00000000'
|
|
38
|
+
* );
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildEthereumTokenBalance(tokenConfig: EthereumTokenConfig, quantity: string): ExternalChainBalance;
|
|
42
|
+
/**
|
|
43
|
+
* Build an ExternalChainBalance for a Solana SPL token.
|
|
44
|
+
*
|
|
45
|
+
* @param tokenConfig - Solana token configuration
|
|
46
|
+
* @param quantity - Balance as decimal string
|
|
47
|
+
* @returns ExternalChainBalance with mintAddress as contractAddress
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const galaBalance = buildSolanaTokenBalance(
|
|
52
|
+
* { symbol: 'GALA', mintAddress: 'GALAxw...', decimals: 8 },
|
|
53
|
+
* '500.00000000'
|
|
54
|
+
* );
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function buildSolanaTokenBalance(tokenConfig: SolanaTokenConfig, quantity: string): ExternalChainBalance;
|
|
58
|
+
/**
|
|
59
|
+
* Find and validate a token config from an array.
|
|
60
|
+
*
|
|
61
|
+
* @param tokens - Array of token configurations
|
|
62
|
+
* @param symbol - Token symbol to find
|
|
63
|
+
* @param network - Network name for error message ('Ethereum' or 'Solana')
|
|
64
|
+
* @returns Token config or throws if not found
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const config = findTokenConfigOrThrow(ethereumTokens, 'GALA', 'Ethereum');
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function findTokenConfigOrThrow<T extends {
|
|
72
|
+
symbol: string;
|
|
73
|
+
}>(tokens: T[], symbol: string, network: string): T;
|
|
74
|
+
/**
|
|
75
|
+
* Error messages for strategy not configured.
|
|
76
|
+
*/
|
|
77
|
+
export declare const STRATEGY_NOT_CONFIGURED_ERRORS: {
|
|
78
|
+
readonly Ethereum: "Ethereum bridging not configured. Provide ethereumPrivateKey in config.";
|
|
79
|
+
readonly Solana: "Solana bridging not configured. Provide solanaPrivateKey in config.";
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Assert that a strategy exists and return it typed.
|
|
83
|
+
*
|
|
84
|
+
* @param strategy - Strategy from map (may be undefined)
|
|
85
|
+
* @param network - Network type ('Ethereum' or 'Solana')
|
|
86
|
+
* @param customError - Optional custom error message (overrides default)
|
|
87
|
+
* @returns The strategy (type-narrowed to non-undefined)
|
|
88
|
+
* @throws Error if strategy is undefined
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const strategy = this.strategies.get('Ethereum');
|
|
93
|
+
* const ethStrategy = assertStrategyExists(strategy, 'Ethereum') as EthereumBridgeStrategy;
|
|
94
|
+
*
|
|
95
|
+
* // With custom error message:
|
|
96
|
+
* const ethStrategy = assertStrategyExists(strategy, 'Ethereum',
|
|
97
|
+
* 'Ethereum bridge strategy not configured. Initialize SDK with ethereumPrivateKey.'
|
|
98
|
+
* ) as EthereumBridgeStrategy;
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function assertStrategyExists<T>(strategy: T | undefined, network: 'Ethereum' | 'Solana', customError?: string): T;
|
|
102
|
+
/**
|
|
103
|
+
* Parameters for building a bridge outbound transaction response.
|
|
104
|
+
*/
|
|
105
|
+
export interface BridgeOutboundTransactionParams {
|
|
106
|
+
/** Destination chain ('Ethereum' | 'Solana') */
|
|
107
|
+
toChain: ExternalNetwork;
|
|
108
|
+
/** Transaction hash */
|
|
109
|
+
transactionHash: string;
|
|
110
|
+
/** Token symbol (e.g., 'GALA', 'GWETH') */
|
|
111
|
+
tokenSymbol: string;
|
|
112
|
+
/** Amount transferred (decimal string) */
|
|
113
|
+
amount: string;
|
|
114
|
+
/** Fee paid in GALA */
|
|
115
|
+
feePaid: string;
|
|
116
|
+
/** Base URL for status endpoint */
|
|
117
|
+
baseUrl: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Build a BridgeTransaction response for outbound transfers (GalaChain -> External).
|
|
121
|
+
*
|
|
122
|
+
* Eliminates duplicate response construction in EthereumBridgeStrategy and SolanaBridgeStrategy.
|
|
123
|
+
*
|
|
124
|
+
* @param params - Transaction parameters
|
|
125
|
+
* @returns Complete BridgeTransaction object
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* return buildBridgeOutboundTransaction({
|
|
130
|
+
* toChain: 'Ethereum',
|
|
131
|
+
* transactionHash: '0x123...',
|
|
132
|
+
* tokenSymbol: 'GALA',
|
|
133
|
+
* amount: '100',
|
|
134
|
+
* feePaid: '0.5',
|
|
135
|
+
* baseUrl: 'https://api.gala.com',
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function buildBridgeOutboundTransaction(params: BridgeOutboundTransactionParams): BridgeTransaction;
|
|
140
|
+
/**
|
|
141
|
+
* Parameters for building a bridge inbound transaction response.
|
|
142
|
+
*/
|
|
143
|
+
export interface BridgeInboundTransactionParams {
|
|
144
|
+
/** Source chain ('Ethereum' | 'Solana') */
|
|
145
|
+
fromChain: ExternalNetwork;
|
|
146
|
+
/** Transaction hash */
|
|
147
|
+
transactionHash: string;
|
|
148
|
+
/** Token symbol (e.g., 'GALA', 'GWETH') */
|
|
149
|
+
tokenSymbol: string;
|
|
150
|
+
/** Amount transferred (decimal string) */
|
|
151
|
+
amount: string;
|
|
152
|
+
/** Base URL for status endpoint */
|
|
153
|
+
baseUrl: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Build a BridgeTransaction response for inbound transfers (External -> GalaChain).
|
|
157
|
+
*
|
|
158
|
+
* Eliminates duplicate response construction in EthereumBridgeStrategy and SolanaBridgeStrategy.
|
|
159
|
+
*
|
|
160
|
+
* @param params - Transaction parameters
|
|
161
|
+
* @returns Complete BridgeTransaction object
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* return buildBridgeInboundTransaction({
|
|
166
|
+
* fromChain: 'Ethereum',
|
|
167
|
+
* transactionHash: '0x123...',
|
|
168
|
+
* tokenSymbol: 'GALA',
|
|
169
|
+
* amount: '100',
|
|
170
|
+
* baseUrl: 'https://api.gala.com',
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
export declare function buildBridgeInboundTransaction(params: BridgeInboundTransactionParams): BridgeTransaction;
|
|
175
|
+
/**
|
|
176
|
+
* Parameters for building a bridge request DTO.
|
|
177
|
+
*/
|
|
178
|
+
export interface BridgeRequestDtoParams {
|
|
179
|
+
/** Destination chain ID (number) */
|
|
180
|
+
destinationChainId: number;
|
|
181
|
+
/** Bridge fee response from GalaConnect (used as destinationChainTxFee) */
|
|
182
|
+
bridgeFee: DestinationChainTxFee;
|
|
183
|
+
/** Amount to bridge (decimal string) */
|
|
184
|
+
amount: string;
|
|
185
|
+
/** Recipient address on destination chain */
|
|
186
|
+
recipientAddress: string;
|
|
187
|
+
/** Token metadata descriptor */
|
|
188
|
+
tokenDescriptor: {
|
|
189
|
+
collection: string;
|
|
190
|
+
category: string;
|
|
191
|
+
type: string;
|
|
192
|
+
additionalKey: string;
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Build a BridgeRequestDto for the GalaConnect RequestTokenBridgeOut API.
|
|
197
|
+
*
|
|
198
|
+
* Eliminates duplicate DTO construction across strategies (~10 lines each).
|
|
199
|
+
*
|
|
200
|
+
* @param params - Request parameters
|
|
201
|
+
* @returns BridgeRequestDto ready for signing
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* const dto = buildBridgeRequestDto({
|
|
206
|
+
* destinationChainId: CHAIN_IDS.ETHEREUM,
|
|
207
|
+
* bridgeFee,
|
|
208
|
+
* amount: '100',
|
|
209
|
+
* recipientAddress: '0x1234...',
|
|
210
|
+
* tokenDescriptor: metadata.descriptor,
|
|
211
|
+
* });
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
export declare function buildBridgeRequestDto(params: BridgeRequestDtoParams): BridgeRequestDto;
|
|
215
|
+
//# sourceMappingURL=balanceHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceHelpers.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/balanceHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUhF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,GAAG,KAAK,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,oBAAoB,CAQtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,oBAAoB,CAQtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,MAAM,GACf,oBAAoB,CAQtB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EACjE,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,CAAC,CAUH;AAMD;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;CAGjC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,QAAQ,EAAE,CAAC,GAAG,SAAS,EACvB,OAAO,EAAE,UAAU,GAAG,QAAQ,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,CAAC,CAQH;AAMD;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,EAAE,eAAe,CAAC;IACzB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,+BAA+B,GACtC,iBAAiB,CAYnB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,2CAA2C;IAC3C,SAAS,EAAE,eAAe,CAAC;IAC3B,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,8BAA8B,GACrC,iBAAiB,CAWnB;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,SAAS,EAAE,qBAAqB,CAAC;IACjC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,eAAe,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAWtF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Error Messages and Validation Helpers
|
|
3
|
+
*
|
|
4
|
+
* Centralized error message factories and validation helpers for bridge strategies.
|
|
5
|
+
* Eliminates DRY violations by providing consistent, reusable error patterns.
|
|
6
|
+
*/
|
|
7
|
+
import { PublicKey } from '@solana/web3.js';
|
|
8
|
+
/**
|
|
9
|
+
* Bridge error message templates.
|
|
10
|
+
* Centralized to ensure consistency across strategies.
|
|
11
|
+
*/
|
|
12
|
+
export declare const BRIDGE_ERROR_MESSAGES: {
|
|
13
|
+
/** Token symbol resolution internal error */
|
|
14
|
+
readonly TOKEN_SYMBOL_RESOLUTION_FAILED: string;
|
|
15
|
+
/** Bridge request ID missing from API response */
|
|
16
|
+
readonly BRIDGE_REQUEST_ID_MISSING: "Bridge request ID missing from RequestTokenBridgeOut response";
|
|
17
|
+
/** Transaction hash missing from BridgeTokenOut response */
|
|
18
|
+
readonly BRIDGE_OUT_HASH_MISSING: "BridgeTokenOut response missing transaction hash";
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Validate that a token symbol was resolved by BridgeService.
|
|
22
|
+
*
|
|
23
|
+
* This is an internal assertion - strategies expect BridgeService to resolve
|
|
24
|
+
* tokenId to symbol before calling them.
|
|
25
|
+
*
|
|
26
|
+
* @param symbol - The resolved token symbol (may be undefined)
|
|
27
|
+
* @throws Error if symbol is undefined or empty
|
|
28
|
+
* @returns The validated symbol (type-narrowed to string)
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const symbol = assertTokenSymbolResolved(params.tokenSymbol);
|
|
33
|
+
* // symbol is now guaranteed to be a non-empty string
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function assertTokenSymbolResolved(symbol: string | undefined): string;
|
|
37
|
+
/**
|
|
38
|
+
* Assert that a bridge request ID was returned from RequestTokenBridgeOut.
|
|
39
|
+
*
|
|
40
|
+
* @param bridgeRequestId - The extracted bridge request ID (may be undefined)
|
|
41
|
+
* @throws Error if bridgeRequestId is undefined or empty
|
|
42
|
+
* @returns The validated bridge request ID
|
|
43
|
+
*/
|
|
44
|
+
export declare function assertBridgeRequestId(bridgeRequestId: string | undefined): string;
|
|
45
|
+
/**
|
|
46
|
+
* Extract and validate the transaction hash from a BridgeTokenOut response.
|
|
47
|
+
*
|
|
48
|
+
* Handles multiple response formats (Hash vs hash).
|
|
49
|
+
*
|
|
50
|
+
* @param response - The BridgeTokenOut API response
|
|
51
|
+
* @throws Error if transaction hash is missing
|
|
52
|
+
* @returns The validated transaction hash
|
|
53
|
+
*/
|
|
54
|
+
export declare function extractBridgeOutTransactionHash(response: {
|
|
55
|
+
Hash?: string;
|
|
56
|
+
hash?: string;
|
|
57
|
+
}): string;
|
|
58
|
+
/**
|
|
59
|
+
* Validate an Ethereum address and throw a descriptive error if invalid.
|
|
60
|
+
*
|
|
61
|
+
* @param address - The address to validate
|
|
62
|
+
* @param context - Optional context for the error message (e.g., "recipient", "target")
|
|
63
|
+
* @throws Error if address is not a valid Ethereum address
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* validateEthereumAddressOrThrow(recipientAddress, 'recipient');
|
|
68
|
+
* // Throws: "Invalid Ethereum recipient address: "abc". Expected valid 0x-prefixed address."
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function validateEthereumAddressOrThrow(address: string, context?: string): void;
|
|
72
|
+
/**
|
|
73
|
+
* Validate a Solana address and throw a descriptive error if invalid.
|
|
74
|
+
*
|
|
75
|
+
* @param address - The address to validate
|
|
76
|
+
* @param context - Optional context for the error message (e.g., "recipient", "target")
|
|
77
|
+
* @throws Error if address is not a valid Solana address
|
|
78
|
+
* @returns The validated PublicKey object
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const pubkey = validateSolanaAddressOrThrow(recipientAddress, 'recipient');
|
|
83
|
+
* // Throws: "Invalid Solana recipient address: "abc". <error details>"
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function validateSolanaAddressOrThrow(address: string, context?: string): PublicKey;
|
|
87
|
+
/**
|
|
88
|
+
* Parse a Solana address to PublicKey, throwing a simple error on failure.
|
|
89
|
+
*
|
|
90
|
+
* Use this for cases where the detailed error message is not needed
|
|
91
|
+
* (e.g., balance lookups where the address format is already known).
|
|
92
|
+
*
|
|
93
|
+
* @param address - The address to parse
|
|
94
|
+
* @throws Error with simple "Invalid Solana address" message
|
|
95
|
+
* @returns The parsed PublicKey
|
|
96
|
+
*/
|
|
97
|
+
export declare function parseSolanaAddressOrThrow(address: string): PublicKey;
|
|
98
|
+
//# sourceMappingURL=bridgeErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeErrors.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/bridgeErrors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC,6CAA6C;;IAK7C,kDAAkD;;IAIlD,4DAA4D;;CAEpD,CAAC;AAMX;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ5E;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,CASR;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CASN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,SAAS,CAWX;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAUpE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Out Flow Helpers
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities for executing bridge out operations across strategies.
|
|
5
|
+
* Consolidates the common bridgeOut() flow to eliminate DRY violations
|
|
6
|
+
* between EthereumBridgeStrategy and SolanaBridgeStrategy.
|
|
7
|
+
*
|
|
8
|
+
* @module bridge/utils/bridgeOutHelpers
|
|
9
|
+
*/
|
|
10
|
+
import type { Wallet as EthersWallet } from 'ethers';
|
|
11
|
+
import type { BridgeTransaction, BridgeOutParams, ExternalNetwork } from '../types/index.js';
|
|
12
|
+
import type { GalaConnectClient } from '../GalaConnectClient.js';
|
|
13
|
+
import type { TokenMetadataResolver } from './tokenMetadataResolver.js';
|
|
14
|
+
/**
|
|
15
|
+
* Configuration for executing a bridge out flow.
|
|
16
|
+
*/
|
|
17
|
+
export interface BridgeOutFlowConfig {
|
|
18
|
+
/** GalaConnect API client */
|
|
19
|
+
galaConnectClient: GalaConnectClient;
|
|
20
|
+
/** Token metadata resolver */
|
|
21
|
+
tokenMetadataResolver: TokenMetadataResolver;
|
|
22
|
+
/** Ethereum wallet for EIP-712 signing */
|
|
23
|
+
ethereumWallet: EthersWallet;
|
|
24
|
+
/** Destination chain ID (from CHAIN_IDS constant) */
|
|
25
|
+
destinationChainId: number;
|
|
26
|
+
/** Destination chain name */
|
|
27
|
+
destinationChain: ExternalNetwork;
|
|
28
|
+
/** Address validation function (chain-specific) */
|
|
29
|
+
validateRecipientAddress: (address: string, label: string) => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Execute a complete bridge out flow (GalaChain -> External Chain).
|
|
33
|
+
*
|
|
34
|
+
* This helper consolidates the common bridge out logic shared between
|
|
35
|
+
* EthereumBridgeStrategy and SolanaBridgeStrategy, eliminating ~35 lines
|
|
36
|
+
* of duplicate code per strategy.
|
|
37
|
+
*
|
|
38
|
+
* The flow is:
|
|
39
|
+
* 1. Validate token symbol was resolved
|
|
40
|
+
* 2. Validate amount is positive
|
|
41
|
+
* 3. Validate recipient address (using chain-specific validation)
|
|
42
|
+
* 4. Fetch token metadata
|
|
43
|
+
* 5. Fetch bridge fee
|
|
44
|
+
* 6. Build and sign bridge request DTO
|
|
45
|
+
* 7. Submit RequestTokenBridgeOut
|
|
46
|
+
* 8. Extract bridge request ID
|
|
47
|
+
* 9. Submit BridgeTokenOut
|
|
48
|
+
* 10. Build transaction response
|
|
49
|
+
*
|
|
50
|
+
* @param params - Bridge out parameters from caller
|
|
51
|
+
* @param config - Strategy-specific configuration
|
|
52
|
+
* @returns BridgeTransaction with status URL
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // In EthereumBridgeStrategy.bridgeOut():
|
|
57
|
+
* return executeBridgeOutFlow(params, {
|
|
58
|
+
* galaConnectClient: this.galaConnectClient,
|
|
59
|
+
* tokenMetadataResolver: this.tokenMetadataResolver,
|
|
60
|
+
* ethereumWallet: this.ethereumWallet,
|
|
61
|
+
* destinationChainId: CHAIN_IDS.ETHEREUM,
|
|
62
|
+
* destinationChain: 'Ethereum',
|
|
63
|
+
* validateRecipientAddress: validateEthereumAddressOrThrow,
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function executeBridgeOutFlow(params: BridgeOutParams, config: BridgeOutFlowConfig): Promise<BridgeTransaction>;
|
|
68
|
+
//# sourceMappingURL=bridgeOutHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeOutHelpers.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/bridgeOutHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAaxE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,8BAA8B;IAC9B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,0CAA0C;IAC1C,cAAc,EAAE,YAAY,CAAC;IAC7B,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,gBAAgB,EAAE,eAAe,CAAC;IAClC,mDAAmD;IACnD,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAqE5B"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Payload Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utility functions for bridge payload construction and normalization.
|
|
5
|
+
* These functions are used by both EthereumBridgeStrategy and SolanaBridgeStrategy
|
|
6
|
+
* to ensure consistent, deterministic payload generation for EIP-712 signing.
|
|
7
|
+
*/
|
|
8
|
+
import type { DestinationChainTxFee, BridgeTokenMetadata } from '../types/index.js';
|
|
9
|
+
import type { TokenClassKey } from '../../types/common.js';
|
|
10
|
+
/**
|
|
11
|
+
* Normalize a DestinationChainTxFee response for deterministic signing.
|
|
12
|
+
*
|
|
13
|
+
* Converts string timestamps and decimals to numbers to ensure consistent
|
|
14
|
+
* JSON serialization across different API response formats.
|
|
15
|
+
*
|
|
16
|
+
* @param raw - Raw fee response from GalaConnect API
|
|
17
|
+
* @returns Normalized fee object with numeric timestamps
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizeDestinationChainTxFee(raw: DestinationChainTxFee): DestinationChainTxFee;
|
|
20
|
+
/**
|
|
21
|
+
* Remove undefined values from an object for deterministic JSON serialization.
|
|
22
|
+
*
|
|
23
|
+
* Creates a clean object without undefined properties, which ensures
|
|
24
|
+
* consistent JSON.stringify output for signature verification.
|
|
25
|
+
*
|
|
26
|
+
* @param obj - Object potentially containing undefined values
|
|
27
|
+
* @returns Clean object with undefined values removed
|
|
28
|
+
*/
|
|
29
|
+
export declare function sanitizeObject<T extends Record<string, unknown>>(obj: T): T;
|
|
30
|
+
/**
|
|
31
|
+
* Extract the bridge request ID from a RequestTokenBridgeOut response.
|
|
32
|
+
*
|
|
33
|
+
* Handles multiple response formats from the GalaConnect API:
|
|
34
|
+
* - `{ Data: "..." }` - Direct data field
|
|
35
|
+
* - `{ data: "..." }` - Lowercase data field
|
|
36
|
+
* - `{ data: { Data: "..." } }` - Nested data object
|
|
37
|
+
*
|
|
38
|
+
* @param response - Response from RequestTokenBridgeOut API call
|
|
39
|
+
* @returns Bridge request ID if found, undefined otherwise
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractBridgeRequestId(response: Record<string, unknown>): string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Validate a bridge amount for numeric validity and positivity.
|
|
44
|
+
*
|
|
45
|
+
* Prevents wasted gas on zero/negative/invalid amounts.
|
|
46
|
+
*
|
|
47
|
+
* @param amount - Amount string to validate
|
|
48
|
+
* @param tokenSymbol - Token symbol for error message context
|
|
49
|
+
* @throws Error if amount is invalid, zero, or negative
|
|
50
|
+
* @returns Parsed numeric amount (as side effect of successful validation)
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* validateBridgeAmount('100.5', 'GALA'); // Returns: 100.5
|
|
55
|
+
* validateBridgeAmount('0', 'GALA'); // Throws error
|
|
56
|
+
* validateBridgeAmount('abc', 'GALA'); // Throws error
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function validateBridgeAmount(amount: string, tokenSymbol: string): number;
|
|
60
|
+
/**
|
|
61
|
+
* Build a BridgeTokenMetadata object from token descriptor and decimals.
|
|
62
|
+
*
|
|
63
|
+
* Consolidates the pattern of building bridge token metadata from API responses.
|
|
64
|
+
*
|
|
65
|
+
* @param tokenDescriptor - Token descriptor with collection, category, type, additionalKey
|
|
66
|
+
* @param decimals - Token decimals
|
|
67
|
+
* @param channel - Optional channel identifier for multi-channel tokens
|
|
68
|
+
* @returns BridgeTokenMetadata object
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const metadata = buildTokenMetadata(
|
|
73
|
+
* { collection: 'GALA', category: 'Unit', type: 'none', additionalKey: 'none' },
|
|
74
|
+
* 8
|
|
75
|
+
* );
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildTokenMetadata(tokenDescriptor: TokenClassKey, decimals: number, channel?: string): BridgeTokenMetadata;
|
|
79
|
+
/**
|
|
80
|
+
* Build a fee payload object from a DestinationChainTxFee response.
|
|
81
|
+
*
|
|
82
|
+
* Consolidates the pattern of extracting fee information from API responses.
|
|
83
|
+
* Normalizes timestamp to ensure it is always a number.
|
|
84
|
+
*
|
|
85
|
+
* @param feeResponse - Raw fee response from GalaConnect API
|
|
86
|
+
* @returns Fee payload with all relevant fields
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const feePayload = buildFeePayload({
|
|
91
|
+
* estimatedTotalTxFeeInGala: '100',
|
|
92
|
+
* estimatedTotalTxFeeInExternalToken: '0.005',
|
|
93
|
+
* ...
|
|
94
|
+
* });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare function buildFeePayload(feeResponse: DestinationChainTxFee): {
|
|
98
|
+
estimatedFeeInGala: string;
|
|
99
|
+
estimatedFeeInExternalToken: string;
|
|
100
|
+
feeToken: import("../types/bridge.dto.js").BridgeTokenDescriptor;
|
|
101
|
+
pricePerUnit: string;
|
|
102
|
+
estimatedGasUnits: string;
|
|
103
|
+
exchangeRate: string;
|
|
104
|
+
timestamp: number;
|
|
105
|
+
raw: DestinationChainTxFee;
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=bridgePayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgePayload.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/bridgePayload.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,qBAAqB,GACzB,qBAAqB,CAuDvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAY3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,GAAG,SAAS,CAgBpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM,CAQR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,aAAa,EAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,mBAAmB,CAYrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,qBAAqB;;;;;;;;SAa/B,qBAAqB;EAEvD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Status Parser
|
|
3
|
+
*
|
|
4
|
+
* Shared utility for parsing bridge status responses.
|
|
5
|
+
* Consolidates duplicate status parsing logic from both bridge strategies.
|
|
6
|
+
*
|
|
7
|
+
* @module bridge/utils/bridgeStatusParser
|
|
8
|
+
*/
|
|
9
|
+
import type { BridgeStatus, BridgeStatusCode, BridgeStatusResponse } from '../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Terminal status codes that indicate a bridge operation is complete.
|
|
12
|
+
*/
|
|
13
|
+
export declare const TERMINAL_STATUS_CODES: {
|
|
14
|
+
readonly COMPLETED: 5;
|
|
15
|
+
readonly FAILED: 6;
|
|
16
|
+
readonly DELIVERY_FAILED: 7;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Parse a bridge status response into a BridgeStatus object.
|
|
20
|
+
*
|
|
21
|
+
* This consolidates the duplicate `getStatus()` result parsing from
|
|
22
|
+
* EthereumBridgeStrategy and SolanaBridgeStrategy.
|
|
23
|
+
*
|
|
24
|
+
* Safely parses the numeric status code using {@link safeParseInt} to handle
|
|
25
|
+
* edge cases where the API returns unexpected values (strings, null, undefined).
|
|
26
|
+
*
|
|
27
|
+
* @param response - Raw response from GalaConnect getBridgeStatus API
|
|
28
|
+
* @returns Parsed BridgeStatus object with normalized fields
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const response = await galaConnectClient.getBridgeStatus(hash);
|
|
33
|
+
* const status = parseBridgeStatusResponse(response);
|
|
34
|
+
* if (status.isComplete) {
|
|
35
|
+
* console.log('Bridge completed successfully!');
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseBridgeStatusResponse(response: BridgeStatusResponse): BridgeStatus;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a bridge status indicates completion (success or failure).
|
|
42
|
+
*
|
|
43
|
+
* @param statusCode - Bridge status code to check
|
|
44
|
+
* @returns True if status is terminal (completed, failed, or delivery_failed)
|
|
45
|
+
*/
|
|
46
|
+
export declare function isTerminalStatus(statusCode: BridgeStatusCode): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Check if a bridge status indicates success.
|
|
49
|
+
*
|
|
50
|
+
* @param statusCode - Bridge status code to check
|
|
51
|
+
* @returns True if status is COMPLETED
|
|
52
|
+
*/
|
|
53
|
+
export declare function isSuccessStatus(statusCode: BridgeStatusCode): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a bridge status indicates failure.
|
|
56
|
+
*
|
|
57
|
+
* @param statusCode - Bridge status code to check
|
|
58
|
+
* @returns True if status is FAILED or DELIVERY_FAILED
|
|
59
|
+
*/
|
|
60
|
+
export declare function isFailureStatus(statusCode: BridgeStatusCode): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Bridge status code descriptions for logging and display.
|
|
63
|
+
*/
|
|
64
|
+
export declare const STATUS_DESCRIPTIONS: Record<number, string>;
|
|
65
|
+
/**
|
|
66
|
+
* Get a human-readable description for a status code.
|
|
67
|
+
*
|
|
68
|
+
* Validates that the status code is a valid number before lookup.
|
|
69
|
+
* Returns a descriptive string or "UNKNOWN(code)" for unrecognized codes.
|
|
70
|
+
*
|
|
71
|
+
* @param statusCode - Bridge status code
|
|
72
|
+
* @returns Human-readable status description
|
|
73
|
+
*/
|
|
74
|
+
export declare function getStatusDescription(statusCode: BridgeStatusCode): string;
|
|
75
|
+
//# sourceMappingURL=bridgeStatusParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridgeStatusParser.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/bridgeStatusParser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI9F;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,YAAY,CAkBtF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAMtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAKrE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS7C,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAOzE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EIP-712 Signing Helpers
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities for EIP-712 payload construction and signing.
|
|
5
|
+
* Used by both EthereumBridgeStrategy and SolanaBridgeStrategy for
|
|
6
|
+
* building signed bridge out payloads.
|
|
7
|
+
*
|
|
8
|
+
* @module bridge/utils/eip712Helpers
|
|
9
|
+
*/
|
|
10
|
+
import type { Wallet as EthersWallet } from 'ethers';
|
|
11
|
+
import type { BridgeRequestDto } from '../types/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Configuration for building bridge out payloads
|
|
14
|
+
*/
|
|
15
|
+
export interface BuildBridgeOutPayloadConfig {
|
|
16
|
+
/** Ethereum wallet for EIP-712 signing */
|
|
17
|
+
wallet: EthersWallet;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build an EIP-712 signed bridge out payload.
|
|
21
|
+
*
|
|
22
|
+
* This consolidates the duplicate `buildBridgeOutPayload()` implementations
|
|
23
|
+
* from EthereumBridgeStrategy and SolanaBridgeStrategy.
|
|
24
|
+
*
|
|
25
|
+
* The payload is signed using EIP-712 typed data signing and includes:
|
|
26
|
+
* - The message to be signed
|
|
27
|
+
* - The EIP-712 signature
|
|
28
|
+
* - The typed data types and domain for verification
|
|
29
|
+
*
|
|
30
|
+
* @param dto - Bridge request DTO with transfer details
|
|
31
|
+
* @param config - Configuration including wallet for signing
|
|
32
|
+
* @returns Promise resolving to signed payload ready for API submission
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const payload = await buildBridgeOutPayload(
|
|
37
|
+
* {
|
|
38
|
+
* destinationChainId: CHAIN_IDS.ETHEREUM,
|
|
39
|
+
* destinationChainTxFee: bridgeFee,
|
|
40
|
+
* quantity: '100',
|
|
41
|
+
* recipient: '0x1234...',
|
|
42
|
+
* tokenInstance: { collection: 'GALA', category: 'Unit', type: 'none', additionalKey: 'none', instance: '0' },
|
|
43
|
+
* },
|
|
44
|
+
* { wallet: ethereumWallet }
|
|
45
|
+
* );
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function buildBridgeOutPayload(dto: BridgeRequestDto, config: BuildBridgeOutPayloadConfig): Promise<Record<string, unknown>>;
|
|
49
|
+
/**
|
|
50
|
+
* Create a signed message prefix for a deterministic payload.
|
|
51
|
+
*
|
|
52
|
+
* Used for Ethereum signed message format: "\x19Ethereum Signed Message:\n{length}"
|
|
53
|
+
*
|
|
54
|
+
* @param payloadLength - Length of the payload string
|
|
55
|
+
* @returns Formatted prefix string
|
|
56
|
+
*/
|
|
57
|
+
export declare function createSignedMessagePrefix(payloadLength: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* Generate a unique key for bridge operations.
|
|
60
|
+
*
|
|
61
|
+
* Uses crypto.randomUUID() with a galaconnect prefix.
|
|
62
|
+
*
|
|
63
|
+
* @returns Unique key string
|
|
64
|
+
*/
|
|
65
|
+
export declare function generateBridgeUniqueKey(): string;
|
|
66
|
+
//# sourceMappingURL=eip712Helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712Helpers.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/eip712Helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0CAA0C;IAC1C,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2DlC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|
|
@@ -7,4 +7,13 @@ export * from './RateLimiter.js';
|
|
|
7
7
|
export * from './tokenMath.js';
|
|
8
8
|
export * from './retry.js';
|
|
9
9
|
export * from './tokenIdUtils.js';
|
|
10
|
+
export * from './bridgePayload.js';
|
|
11
|
+
export * from './addressValidation.js';
|
|
12
|
+
export * from './tokenMetadataResolver.js';
|
|
13
|
+
export * from './eip712Helpers.js';
|
|
14
|
+
export * from './bridgeStatusParser.js';
|
|
15
|
+
export * from './bridgeErrors.js';
|
|
16
|
+
export * from './balanceHelpers.js';
|
|
17
|
+
export * from './strategyDelegation.js';
|
|
18
|
+
export * from './bridgeOutHelpers.js';
|
|
10
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|