@gala-chain/launchpad-sdk 3.31.2 → 4.0.1-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/API.md +525 -5
- package/CHANGELOG.md +101 -9
- package/EXAMPLES.md +923 -0
- package/README.md +539 -15
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +37 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{LaunchpadSDK.d.ts → src/LaunchpadSDK.d.ts} +1333 -37
- package/dist/src/LaunchpadSDK.d.ts.map +1 -0
- package/dist/src/api/LaunchpadAPI.d.ts.map +1 -0
- package/dist/src/api/dto/BondingCurveDTOs.d.ts.map +1 -0
- package/dist/src/api/dto/LockTokenDto.d.ts +97 -0
- package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -0
- package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -0
- package/dist/src/api/dto/UnlockTokenDto.d.ts +86 -0
- package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -0
- package/dist/src/auth/SignatureAuth.d.ts.map +1 -0
- package/dist/src/auth/types.d.ts.map +1 -0
- package/dist/src/config/environments.d.ts.map +1 -0
- package/dist/src/constants/bondingCurve.d.ts.map +1 -0
- package/dist/src/constants/config.d.ts.map +1 -0
- package/dist/src/constants/counts.d.ts.map +1 -0
- package/dist/src/constants/decimals.d.ts.map +1 -0
- package/dist/src/constants/endpoints.d.ts.map +1 -0
- package/dist/src/constants/enums.d.ts.map +1 -0
- package/dist/src/constants/error-messages.d.ts.map +1 -0
- package/dist/src/constants/pagination.d.ts.map +1 -0
- package/dist/src/constants/query-fields.d.ts.map +1 -0
- package/dist/src/constants/version.d.ts.map +1 -0
- package/dist/{constants → src/constants}/version.generated.d.ts +1 -1
- package/dist/src/constants/version.generated.d.ts.map +1 -0
- package/dist/src/helpers/sdk.d.ts.map +1 -0
- package/dist/src/helpers/wallet.d.ts.map +1 -0
- package/dist/src/index.d.ts +51 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/polyfills/file-global.d.ts.map +1 -0
- package/dist/src/schemas/files.d.ts.map +1 -0
- package/dist/src/schemas/index.d.ts.map +1 -0
- package/dist/src/schemas/launchpad.d.ts.map +1 -0
- package/dist/src/schemas/pagination.d.ts.map +1 -0
- package/dist/src/schemas/primitives.d.ts.map +1 -0
- package/dist/src/schemas/trade.d.ts.map +1 -0
- package/dist/src/schemas/user.d.ts.map +1 -0
- package/dist/src/schemas/validators.d.ts.map +1 -0
- package/dist/src/services/BaseService.d.ts.map +1 -0
- package/dist/src/services/BundleService.d.ts.map +1 -0
- package/dist/src/services/CommentService.d.ts.map +1 -0
- package/dist/src/services/DexBackendClient.d.ts +46 -0
- package/dist/src/services/DexBackendClient.d.ts.map +1 -0
- package/dist/src/services/DexPoolService.d.ts +137 -0
- package/dist/src/services/DexPoolService.d.ts.map +1 -0
- package/dist/src/services/DexQuoteService.d.ts +288 -0
- package/dist/src/services/DexQuoteService.d.ts.map +1 -0
- package/dist/{services → src/services}/DexService.d.ts +83 -9
- package/dist/src/services/DexService.d.ts.map +1 -0
- package/dist/src/services/FaucetService.d.ts.map +1 -0
- package/dist/src/services/GSwapService.d.ts +817 -0
- package/dist/src/services/GSwapService.d.ts.map +1 -0
- package/dist/src/services/GalaChainGatewayClient.d.ts +98 -0
- package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -0
- package/dist/{services → src/services}/GalaChainService.d.ts +99 -4
- package/dist/src/services/GalaChainService.d.ts.map +1 -0
- package/dist/src/services/ImageService.d.ts.map +1 -0
- package/dist/src/services/LaunchpadService.d.ts.map +1 -0
- package/dist/src/services/MultiPoolStateManager.d.ts +284 -0
- package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -0
- package/dist/src/services/PoolCacheManager.d.ts +171 -0
- package/dist/src/services/PoolCacheManager.d.ts.map +1 -0
- package/dist/src/services/PoolService.d.ts.map +1 -0
- package/dist/src/services/PoolStateManager.d.ts +176 -0
- package/dist/src/services/PoolStateManager.d.ts.map +1 -0
- package/dist/{services → src/services}/PriceHistoryService.d.ts +5 -5
- package/dist/src/services/PriceHistoryService.d.ts.map +1 -0
- package/dist/{services → src/services}/SignatureService.d.ts +13 -35
- package/dist/src/services/SignatureService.d.ts.map +1 -0
- package/dist/src/services/SwapEventQueue.d.ts +123 -0
- package/dist/src/services/SwapEventQueue.d.ts.map +1 -0
- package/dist/src/services/TokenClassKeyService.d.ts.map +1 -0
- package/dist/{services → src/services}/TokenMetadataCache.d.ts +5 -5
- package/dist/src/services/TokenMetadataCache.d.ts.map +1 -0
- package/dist/{services → src/services}/TokenMetadataService.d.ts +3 -3
- package/dist/src/services/TokenMetadataService.d.ts.map +1 -0
- package/dist/src/services/TokenResolverService.d.ts.map +1 -0
- package/dist/src/services/TradeService.d.ts.map +1 -0
- package/dist/src/services/UserService.d.ts.map +1 -0
- package/dist/src/services/WebSocketManager.d.ts.map +1 -0
- package/dist/src/services/WebSocketService.d.ts +183 -0
- package/dist/src/services/WebSocketService.d.ts.map +1 -0
- package/dist/src/services/__mocks__/logger.mock.d.ts +17 -0
- package/dist/src/services/__mocks__/logger.mock.d.ts.map +1 -0
- package/dist/{setup.d.ts.map → src/setup.d.ts.map} +1 -1
- package/dist/{types → src/types}/backend-responses.d.ts +17 -0
- package/dist/src/types/backend-responses.d.ts.map +1 -0
- package/dist/src/types/comment.dto.d.ts.map +1 -0
- package/dist/{types → src/types}/common.d.ts +2 -0
- package/dist/src/types/common.d.ts.map +1 -0
- package/dist/src/types/composite-pool.dto.d.ts +103 -0
- package/dist/src/types/composite-pool.dto.d.ts.map +1 -0
- package/dist/{types → src/types}/dex-pool.dto.d.ts +56 -5
- package/dist/src/types/dex-pool.dto.d.ts.map +1 -0
- package/dist/{types → src/types}/dto.d.ts +6 -6
- package/dist/src/types/dto.d.ts.map +1 -0
- package/dist/src/types/eip712-types.d.ts +140 -0
- package/dist/src/types/eip712-types.d.ts.map +1 -0
- package/dist/src/types/galachain-api.types.d.ts +216 -0
- package/dist/src/types/galachain-api.types.d.ts.map +1 -0
- package/dist/src/types/gswap-responses.types.d.ts +366 -0
- package/dist/src/types/gswap-responses.types.d.ts.map +1 -0
- package/dist/{types → src/types}/gswap.dto.d.ts +58 -3
- package/dist/src/types/gswap.dto.d.ts.map +1 -0
- package/dist/{types → src/types}/launchpad.dto.d.ts +232 -0
- package/dist/src/types/launchpad.dto.d.ts.map +1 -0
- package/dist/src/types/launchpad.validation.d.ts.map +1 -0
- package/dist/src/types/liquidity-monitor.dto.d.ts +177 -0
- package/dist/src/types/liquidity-monitor.dto.d.ts.map +1 -0
- package/dist/src/types/lock.dto.d.ts +146 -0
- package/dist/src/types/lock.dto.d.ts.map +1 -0
- package/dist/src/types/options.dto.d.ts.map +1 -0
- package/dist/src/types/pool-state-delta.dto.d.ts +246 -0
- package/dist/src/types/pool-state-delta.dto.d.ts.map +1 -0
- package/dist/src/types/pool-state-manager-config.dto.d.ts +103 -0
- package/dist/src/types/pool-state-manager-config.dto.d.ts.map +1 -0
- package/dist/{types → src/types}/priceHistory.dto.d.ts +4 -4
- package/dist/src/types/priceHistory.dto.d.ts.map +1 -0
- package/dist/src/types/result.types.d.ts.map +1 -0
- package/dist/src/types/swap-monitor.dto.d.ts +256 -0
- package/dist/src/types/swap-monitor.dto.d.ts.map +1 -0
- package/dist/src/types/trade.dto.d.ts.map +1 -0
- package/dist/src/types/transfer.dto.d.ts.map +1 -0
- package/dist/src/types/user.dto.d.ts.map +1 -0
- package/dist/src/types/websocket-data.types.d.ts.map +1 -0
- package/dist/src/types/websocket.types.d.ts.map +1 -0
- package/dist/src/utils/LiquidityEventExtractor.d.ts +99 -0
- package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -0
- package/dist/src/utils/Logger.d.ts.map +1 -0
- package/dist/src/utils/MonitoringMetrics.d.ts +152 -0
- package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -0
- package/dist/src/utils/PoolKeyNormalizer.d.ts +135 -0
- package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -0
- package/dist/{utils → src/utils}/SignatureHelper.d.ts +38 -0
- package/dist/src/utils/SignatureHelper.d.ts.map +1 -0
- package/dist/src/utils/SwapEventExtractor.d.ts +152 -0
- package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -0
- package/dist/src/utils/adapters.d.ts.map +1 -0
- package/dist/src/utils/agent-config.d.ts.map +1 -0
- package/dist/{utils → src/utils}/auto-pagination.d.ts +75 -1
- package/dist/src/utils/auto-pagination.d.ts.map +1 -0
- package/dist/{utils → src/utils}/bignumber-helpers.d.ts +79 -3
- package/dist/src/utils/bignumber-helpers.d.ts.map +1 -0
- package/dist/src/utils/bignumber-pool-cache.d.ts +169 -0
- package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -0
- package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -0
- package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -0
- package/dist/src/utils/composite-pool-converter.d.ts +121 -0
- package/dist/src/utils/composite-pool-converter.d.ts.map +1 -0
- package/dist/src/utils/date-utils.d.ts.map +1 -0
- package/dist/src/utils/error-factories.d.ts.map +1 -0
- package/dist/src/utils/error-utils.d.ts.map +1 -0
- package/dist/{utils → src/utils}/errors.d.ts +86 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/http.d.ts.map +1 -0
- package/dist/src/utils/load-env.d.ts +31 -0
- package/dist/src/utils/load-env.d.ts.map +1 -0
- package/dist/src/utils/multipart-helpers.d.ts.map +1 -0
- package/dist/{utils → src/utils}/multipart.d.ts +2 -2
- package/dist/src/utils/multipart.d.ts.map +1 -0
- package/dist/src/utils/number-utils.d.ts.map +1 -0
- package/dist/src/utils/pool-pair-parser.d.ts +55 -0
- package/dist/src/utils/pool-pair-parser.d.ts.map +1 -0
- package/dist/src/utils/pool-state-validator.d.ts +207 -0
- package/dist/src/utils/pool-state-validator.d.ts.map +1 -0
- package/dist/src/utils/position-filters.d.ts +253 -0
- package/dist/src/utils/position-filters.d.ts.map +1 -0
- package/dist/src/utils/precision-math.d.ts.map +1 -0
- package/dist/{utils → src/utils}/query-params.d.ts +2 -2
- package/dist/src/utils/query-params.d.ts.map +1 -0
- package/dist/src/utils/response-handlers.d.ts.map +1 -0
- package/dist/src/utils/response-normalizers.d.ts.map +1 -0
- package/dist/src/utils/slippage-utils.d.ts.map +1 -0
- package/dist/src/utils/swap-delta-calculator.d.ts +231 -0
- package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -0
- package/dist/src/utils/tick-crossing-handler.d.ts +250 -0
- package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -0
- package/dist/{utils → src/utils}/token-format-converter.d.ts +18 -11
- package/dist/src/utils/token-format-converter.d.ts.map +1 -0
- package/dist/src/utils/token-parser.d.ts +235 -0
- package/dist/src/utils/token-parser.d.ts.map +1 -0
- package/dist/src/utils/tokenNormalizer.d.ts.map +1 -0
- package/dist/src/utils/trade-transformers.d.ts.map +1 -0
- package/dist/src/utils/transfer-validation.d.ts.map +1 -0
- package/dist/{utils → src/utils}/validation-helpers.d.ts +1 -1
- package/dist/src/utils/validation-helpers.d.ts.map +1 -0
- package/dist/src/utils/validation.d.ts.map +1 -0
- package/dist/src/utils/wallet.d.ts.map +1 -0
- package/dist/src/utils/websocket-errors.d.ts.map +1 -0
- package/dist/src/utils/websocket-validators.d.ts.map +1 -0
- package/package.json +73 -19
- package/dist/LaunchpadSDK.d.ts.map +0 -1
- package/dist/api/LaunchpadAPI.d.ts.map +0 -1
- package/dist/api/dto/BondingCurveDTOs.d.ts.map +0 -1
- package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
- package/dist/auth/SignatureAuth.d.ts.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/config/environments.d.ts.map +0 -1
- package/dist/constants/bondingCurve.d.ts.map +0 -1
- package/dist/constants/config.d.ts.map +0 -1
- package/dist/constants/counts.d.ts.map +0 -1
- package/dist/constants/decimals.d.ts.map +0 -1
- package/dist/constants/endpoints.d.ts.map +0 -1
- package/dist/constants/enums.d.ts.map +0 -1
- package/dist/constants/error-messages.d.ts.map +0 -1
- package/dist/constants/pagination.d.ts.map +0 -1
- package/dist/constants/query-fields.d.ts.map +0 -1
- package/dist/constants/version.d.ts.map +0 -1
- package/dist/constants/version.generated.d.ts.map +0 -1
- package/dist/helpers/sdk.d.ts.map +0 -1
- package/dist/helpers/wallet.d.ts.map +0 -1
- package/dist/polyfills/file-global.d.ts.map +0 -1
- package/dist/schemas/files.d.ts.map +0 -1
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/launchpad.d.ts.map +0 -1
- package/dist/schemas/pagination.d.ts.map +0 -1
- package/dist/schemas/primitives.d.ts.map +0 -1
- package/dist/schemas/trade.d.ts.map +0 -1
- package/dist/schemas/user.d.ts.map +0 -1
- package/dist/schemas/validators.d.ts.map +0 -1
- package/dist/services/BaseService.d.ts.map +0 -1
- package/dist/services/BundleService.d.ts.map +0 -1
- package/dist/services/CommentService.d.ts.map +0 -1
- package/dist/services/DexPoolService.d.ts +0 -95
- package/dist/services/DexPoolService.d.ts.map +0 -1
- package/dist/services/DexService.d.ts.map +0 -1
- package/dist/services/FaucetService.d.ts.map +0 -1
- package/dist/services/GSwapService.d.ts +0 -315
- package/dist/services/GSwapService.d.ts.map +0 -1
- package/dist/services/GalaChainService.d.ts.map +0 -1
- package/dist/services/ImageService.d.ts.map +0 -1
- package/dist/services/LaunchpadService.d.ts.map +0 -1
- package/dist/services/PoolService.d.ts.map +0 -1
- package/dist/services/PriceHistoryService.d.ts.map +0 -1
- package/dist/services/SignatureService.d.ts.map +0 -1
- package/dist/services/TokenClassKeyService.d.ts.map +0 -1
- package/dist/services/TokenMetadataCache.d.ts.map +0 -1
- package/dist/services/TokenMetadataService.d.ts.map +0 -1
- package/dist/services/TokenResolverService.d.ts.map +0 -1
- package/dist/services/TradeService.d.ts.map +0 -1
- package/dist/services/UserService.d.ts.map +0 -1
- package/dist/services/WebSocketManager.d.ts.map +0 -1
- package/dist/services/WebSocketService.d.ts +0 -85
- package/dist/services/WebSocketService.d.ts.map +0 -1
- package/dist/types/backend-responses.d.ts.map +0 -1
- package/dist/types/comment.dto.d.ts.map +0 -1
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/dex-pool.dto.d.ts.map +0 -1
- package/dist/types/dto.d.ts.map +0 -1
- package/dist/types/gswap.dto.d.ts.map +0 -1
- package/dist/types/launchpad.dto.d.ts.map +0 -1
- package/dist/types/launchpad.validation.d.ts.map +0 -1
- package/dist/types/options.dto.d.ts.map +0 -1
- package/dist/types/priceHistory.dto.d.ts.map +0 -1
- package/dist/types/result.types.d.ts.map +0 -1
- package/dist/types/trade.dto.d.ts.map +0 -1
- package/dist/types/transfer.dto.d.ts.map +0 -1
- package/dist/types/user.dto.d.ts.map +0 -1
- package/dist/types/websocket-data.types.d.ts.map +0 -1
- package/dist/types/websocket.types.d.ts.map +0 -1
- package/dist/utils/Logger.d.ts.map +0 -1
- package/dist/utils/SignatureHelper.d.ts.map +0 -1
- package/dist/utils/adapters.d.ts.map +0 -1
- package/dist/utils/agent-config.d.ts.map +0 -1
- package/dist/utils/auto-pagination.d.ts.map +0 -1
- package/dist/utils/bignumber-helpers.d.ts.map +0 -1
- package/dist/utils/bondingCurveCalculations.d.ts.map +0 -1
- package/dist/utils/cacheWarmingHelpers.d.ts.map +0 -1
- package/dist/utils/date-utils.d.ts.map +0 -1
- package/dist/utils/error-factories.d.ts.map +0 -1
- package/dist/utils/error-utils.d.ts.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/http.d.ts.map +0 -1
- package/dist/utils/multipart-helpers.d.ts.map +0 -1
- package/dist/utils/multipart.d.ts.map +0 -1
- package/dist/utils/number-utils.d.ts.map +0 -1
- package/dist/utils/precision-math.d.ts.map +0 -1
- package/dist/utils/query-params.d.ts.map +0 -1
- package/dist/utils/response-handlers.d.ts.map +0 -1
- package/dist/utils/response-normalizers.d.ts.map +0 -1
- package/dist/utils/slippage-utils.d.ts.map +0 -1
- package/dist/utils/token-format-converter.d.ts.map +0 -1
- package/dist/utils/tokenNormalizer.d.ts.map +0 -1
- package/dist/utils/trade-transformers.d.ts.map +0 -1
- package/dist/utils/transfer-validation.d.ts.map +0 -1
- package/dist/utils/validation-helpers.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/wallet.d.ts.map +0 -1
- package/dist/utils/websocket-errors.d.ts.map +0 -1
- package/dist/utils/websocket-validators.d.ts.map +0 -1
- /package/dist/{api → src/api}/LaunchpadAPI.d.ts +0 -0
- /package/dist/{api → src/api}/dto/BondingCurveDTOs.d.ts +0 -0
- /package/dist/{api → src/api}/dto/TransferTokenDto.d.ts +0 -0
- /package/dist/{auth → src/auth}/SignatureAuth.d.ts +0 -0
- /package/dist/{auth → src/auth}/types.d.ts +0 -0
- /package/dist/{config → src/config}/environments.d.ts +0 -0
- /package/dist/{constants → src/constants}/bondingCurve.d.ts +0 -0
- /package/dist/{constants → src/constants}/config.d.ts +0 -0
- /package/dist/{constants → src/constants}/counts.d.ts +0 -0
- /package/dist/{constants → src/constants}/decimals.d.ts +0 -0
- /package/dist/{constants → src/constants}/endpoints.d.ts +0 -0
- /package/dist/{constants → src/constants}/enums.d.ts +0 -0
- /package/dist/{constants → src/constants}/error-messages.d.ts +0 -0
- /package/dist/{constants → src/constants}/pagination.d.ts +0 -0
- /package/dist/{constants → src/constants}/query-fields.d.ts +0 -0
- /package/dist/{constants → src/constants}/version.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/sdk.d.ts +0 -0
- /package/dist/{helpers → src/helpers}/wallet.d.ts +0 -0
- /package/dist/{polyfills → src/polyfills}/file-global.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/files.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/index.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/launchpad.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/pagination.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/primitives.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/trade.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/user.d.ts +0 -0
- /package/dist/{schemas → src/schemas}/validators.d.ts +0 -0
- /package/dist/{services → src/services}/BaseService.d.ts +0 -0
- /package/dist/{services → src/services}/BundleService.d.ts +0 -0
- /package/dist/{services → src/services}/CommentService.d.ts +0 -0
- /package/dist/{services → src/services}/FaucetService.d.ts +0 -0
- /package/dist/{services → src/services}/ImageService.d.ts +0 -0
- /package/dist/{services → src/services}/LaunchpadService.d.ts +0 -0
- /package/dist/{services → src/services}/PoolService.d.ts +0 -0
- /package/dist/{services → src/services}/TokenClassKeyService.d.ts +0 -0
- /package/dist/{services → src/services}/TokenResolverService.d.ts +0 -0
- /package/dist/{services → src/services}/TradeService.d.ts +0 -0
- /package/dist/{services → src/services}/UserService.d.ts +0 -0
- /package/dist/{services → src/services}/WebSocketManager.d.ts +0 -0
- /package/dist/{setup.d.ts → src/setup.d.ts} +0 -0
- /package/dist/{types → src/types}/comment.dto.d.ts +0 -0
- /package/dist/{types → src/types}/launchpad.validation.d.ts +0 -0
- /package/dist/{types → src/types}/options.dto.d.ts +0 -0
- /package/dist/{types → src/types}/result.types.d.ts +0 -0
- /package/dist/{types → src/types}/trade.dto.d.ts +0 -0
- /package/dist/{types → src/types}/transfer.dto.d.ts +0 -0
- /package/dist/{types → src/types}/user.dto.d.ts +0 -0
- /package/dist/{types → src/types}/websocket-data.types.d.ts +0 -0
- /package/dist/{types → src/types}/websocket.types.d.ts +0 -0
- /package/dist/{utils → src/utils}/Logger.d.ts +0 -0
- /package/dist/{utils → src/utils}/adapters.d.ts +0 -0
- /package/dist/{utils → src/utils}/agent-config.d.ts +0 -0
- /package/dist/{utils → src/utils}/bondingCurveCalculations.d.ts +0 -0
- /package/dist/{utils → src/utils}/cacheWarmingHelpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/date-utils.d.ts +0 -0
- /package/dist/{utils → src/utils}/error-factories.d.ts +0 -0
- /package/dist/{utils → src/utils}/error-utils.d.ts +0 -0
- /package/dist/{utils → src/utils}/http.d.ts +0 -0
- /package/dist/{utils → src/utils}/multipart-helpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/number-utils.d.ts +0 -0
- /package/dist/{utils → src/utils}/precision-math.d.ts +0 -0
- /package/dist/{utils → src/utils}/response-handlers.d.ts +0 -0
- /package/dist/{utils → src/utils}/response-normalizers.d.ts +0 -0
- /package/dist/{utils → src/utils}/slippage-utils.d.ts +0 -0
- /package/dist/{utils → src/utils}/tokenNormalizer.d.ts +0 -0
- /package/dist/{utils → src/utils}/trade-transformers.d.ts +0 -0
- /package/dist/{utils → src/utils}/transfer-validation.d.ts +0 -0
- /package/dist/{utils → src/utils}/validation.d.ts +0 -0
- /package/dist/{utils → src/utils}/wallet.d.ts +0 -0
- /package/dist/{utils → src/utils}/websocket-errors.d.ts +0 -0
- /package/dist/{utils → src/utils}/websocket-validators.d.ts +0 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swap Delta Calculator
|
|
3
|
+
*
|
|
4
|
+
* Pure math functions that calculate how a swap affects pool state.
|
|
5
|
+
* Implements Uniswap V3 concentrated liquidity swap mechanics with tick crossing.
|
|
6
|
+
*
|
|
7
|
+
* This is a CALCULATION-ONLY utility with NO state management.
|
|
8
|
+
* All functions are pure and return new objects without mutating inputs.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import BigNumber from 'bignumber.js';
|
|
13
|
+
import { Pool, TickData } from '@gala-chain/dex';
|
|
14
|
+
import { SwapEventData, InternalSwapState, SwapDeltaResult } from '../types/pool-state-delta.dto';
|
|
15
|
+
import { CompositePoolDataResult } from '../types/composite-pool.dto';
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for swap calculation behavior
|
|
18
|
+
*
|
|
19
|
+
* @category Pool State
|
|
20
|
+
*/
|
|
21
|
+
export interface SwapCalculationConfig {
|
|
22
|
+
/** Safety limit for maximum swap iterations (default: 100) */
|
|
23
|
+
maxIterations: number;
|
|
24
|
+
/** Use BigNumber cache for performance (default: true) */
|
|
25
|
+
enableBigNumberCache: boolean;
|
|
26
|
+
/** BigNumber rounding mode (default: ROUND_DOWN) */
|
|
27
|
+
roundingMode: BigNumber.RoundingMode;
|
|
28
|
+
/** Enable debug logging for swap calculations (default: false) */
|
|
29
|
+
debugLogging: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Result of the iterative swap loop calculation
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
interface SwapLoopResult {
|
|
37
|
+
/** Final internal state after all iterations */
|
|
38
|
+
state: InternalSwapState;
|
|
39
|
+
/** Array of tick indices that were crossed during the swap */
|
|
40
|
+
ticksCrossed: number[];
|
|
41
|
+
/** True if price reached limit before consuming all input */
|
|
42
|
+
priceHitLimit: boolean;
|
|
43
|
+
/** Number of iterations executed */
|
|
44
|
+
stepCount: number;
|
|
45
|
+
/** Updated tick data map (only changed ticks) */
|
|
46
|
+
updatedTicks: Record<string, TickData>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Core swap calculation engine for applying swap deltas to pool state
|
|
50
|
+
*
|
|
51
|
+
* Implements Uniswap V3 concentrated liquidity mechanics:
|
|
52
|
+
* - Iterative swap execution across tick boundaries
|
|
53
|
+
* - Dynamic liquidity tracking as price crosses initialized ticks
|
|
54
|
+
* - Fee accumulation and protocol fee calculation
|
|
55
|
+
* - Exact input vs exact output handling
|
|
56
|
+
*
|
|
57
|
+
* @category Pool State
|
|
58
|
+
* @since 3.33.0
|
|
59
|
+
*/
|
|
60
|
+
export declare class SwapDeltaCalculator {
|
|
61
|
+
private static readonly logger;
|
|
62
|
+
/**
|
|
63
|
+
* Apply a single swap event to pool state
|
|
64
|
+
*
|
|
65
|
+
* Calculates new sqrtPrice, liquidity, tick, fees by simulating the swap execution.
|
|
66
|
+
* Returns complete updated state without modifying input poolData.
|
|
67
|
+
*
|
|
68
|
+
* **Performance**: 25-50ms for typical swaps (1-3 tick crossings)
|
|
69
|
+
*
|
|
70
|
+
* @param poolData Current composite pool data (not modified)
|
|
71
|
+
* @param swapEvent The swap to apply
|
|
72
|
+
* @param config Optional calculation configuration
|
|
73
|
+
* @returns Complete result with updated state and metadata
|
|
74
|
+
* @throws Error if swap calculation fails or pool data is invalid
|
|
75
|
+
*
|
|
76
|
+
* @example Simple swap calculation
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const result = SwapDeltaCalculator.calculateSwapDelta(
|
|
79
|
+
* compositePoolData,
|
|
80
|
+
* {
|
|
81
|
+
* transactionId: 'tx-123',
|
|
82
|
+
* timestamp: Date.now(),
|
|
83
|
+
* amountSpecified: '1000000000',
|
|
84
|
+
* zeroForOne: true,
|
|
85
|
+
* exactInput: true,
|
|
86
|
+
* }
|
|
87
|
+
* );
|
|
88
|
+
*
|
|
89
|
+
* console.log(`New price: ${result.updatedPool.sqrtPrice}`);
|
|
90
|
+
* console.log(`Ticks crossed: ${result.ticksCrossed.length}`);
|
|
91
|
+
* console.log(`Amount0: ${result.amount0.toString()}`);
|
|
92
|
+
* console.log(`Amount1: ${result.amount1.toString()}`);
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @example With validation data
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const result = SwapDeltaCalculator.calculateSwapDelta(
|
|
98
|
+
* compositePoolData,
|
|
99
|
+
* {
|
|
100
|
+
* transactionId: 'tx-456',
|
|
101
|
+
* timestamp: Date.now(),
|
|
102
|
+
* amountSpecified: '5000000000',
|
|
103
|
+
* zeroForOne: false,
|
|
104
|
+
* exactInput: true,
|
|
105
|
+
* actualAmount0: '4950000000',
|
|
106
|
+
* actualAmount1: '-5000000000',
|
|
107
|
+
* actualSqrtPrice: '79228162514264337593543950336',
|
|
108
|
+
* }
|
|
109
|
+
* );
|
|
110
|
+
*
|
|
111
|
+
* if (result.metadata.driftPercentage) {
|
|
112
|
+
* console.log(`Drift: ${result.metadata.driftPercentage.toFixed(4)}%`);
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
static calculateSwapDelta(poolData: CompositePoolDataResult, swapEvent: SwapEventData, config?: Partial<SwapCalculationConfig>): SwapDeltaResult;
|
|
117
|
+
/**
|
|
118
|
+
* Initialize swap state from pool data and swap event
|
|
119
|
+
*
|
|
120
|
+
* Sets up the initial state for iterative swap calculation including:
|
|
121
|
+
* - Current price, liquidity, and tick
|
|
122
|
+
* - Amount remaining to swap
|
|
123
|
+
* - Fee growth and protocol fee accumulators
|
|
124
|
+
*
|
|
125
|
+
* @param poolData Current pool state
|
|
126
|
+
* @param swapEvent Swap event to process
|
|
127
|
+
* @param config Calculation configuration
|
|
128
|
+
* @returns Initialized swap state ready for loop execution
|
|
129
|
+
* @throws Error if pool data is invalid or inconsistent
|
|
130
|
+
*
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
static initializeSwapState(poolData: CompositePoolDataResult, swapEvent: SwapEventData, config: SwapCalculationConfig): InternalSwapState;
|
|
134
|
+
/**
|
|
135
|
+
* Main iterative swap calculation loop
|
|
136
|
+
*
|
|
137
|
+
* Executes swap step-by-step, crossing tick boundaries as needed.
|
|
138
|
+
* Implements Uniswap V3 concentrated liquidity mechanics:
|
|
139
|
+
*
|
|
140
|
+
* 1. Find next initialized tick in swap direction
|
|
141
|
+
* 2. Calculate swap step to that tick boundary
|
|
142
|
+
* 3. Update state accumulators (amount, fees)
|
|
143
|
+
* 4. Handle tick crossing (liquidity changes)
|
|
144
|
+
* 5. Repeat until amount consumed or price limit reached
|
|
145
|
+
*
|
|
146
|
+
* **Performance**: 20-40ms for typical swaps (1-3 iterations)
|
|
147
|
+
*
|
|
148
|
+
* @param state Initial swap state to mutate during loop
|
|
149
|
+
* @param poolData Pool and tick data
|
|
150
|
+
* @param swapEvent Original swap information
|
|
151
|
+
* @param config Calculation configuration
|
|
152
|
+
* @returns Loop result with final state and metadata
|
|
153
|
+
* @throws Error if swap exceeds iteration limit or encounters invalid state
|
|
154
|
+
*
|
|
155
|
+
* @internal
|
|
156
|
+
*/
|
|
157
|
+
static computeSwapLoop(state: InternalSwapState, poolData: CompositePoolDataResult, swapEvent: SwapEventData, config: SwapCalculationConfig): SwapLoopResult;
|
|
158
|
+
/**
|
|
159
|
+
* Create updated pool object with new state
|
|
160
|
+
*
|
|
161
|
+
* Returns a new Pool instance with updated sqrtPrice, liquidity, tick, and fees.
|
|
162
|
+
* Does NOT mutate the original pool object.
|
|
163
|
+
*
|
|
164
|
+
* @param originalPool Original pool state
|
|
165
|
+
* @param newState Updated swap state
|
|
166
|
+
* @param swapEvent Swap event that was applied
|
|
167
|
+
* @param config Calculation configuration
|
|
168
|
+
* @returns New Pool instance with updated state
|
|
169
|
+
*
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
static createUpdatedPool(originalPool: Pool, newState: InternalSwapState, swapEvent: SwapEventData, _config: SwapCalculationConfig): Pool;
|
|
173
|
+
/**
|
|
174
|
+
* Calculate final token amounts from swap state
|
|
175
|
+
*
|
|
176
|
+
* Determines amount0 and amount1 based on swap direction and type (exact input vs exact output).
|
|
177
|
+
* Calculates fee amounts for each token.
|
|
178
|
+
*
|
|
179
|
+
* @param initialState State before swap
|
|
180
|
+
* @param finalState State after swap
|
|
181
|
+
* @param swapEvent Swap event details
|
|
182
|
+
* @returns Token amounts and fees (signed: negative = spent, positive = received)
|
|
183
|
+
*
|
|
184
|
+
* @internal
|
|
185
|
+
*/
|
|
186
|
+
static calculateFinalAmounts(initialState: InternalSwapState, finalState: InternalSwapState, swapEvent: SwapEventData): {
|
|
187
|
+
amount0: BigNumber;
|
|
188
|
+
amount1: BigNumber;
|
|
189
|
+
feeAmount0: BigNumber;
|
|
190
|
+
feeAmount1: BigNumber;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Find next initialized tick in swap direction
|
|
194
|
+
*
|
|
195
|
+
* Scans tick data map to find the nearest initialized tick boundary.
|
|
196
|
+
* Uses pool's tick spacing to determine valid tick indices.
|
|
197
|
+
*
|
|
198
|
+
* @param tickDataMap Map of initialized ticks
|
|
199
|
+
* @param currentTick Current tick index
|
|
200
|
+
* @param tickSpacing Pool's tick spacing (e.g., 60 for 0.3% fee tier)
|
|
201
|
+
* @param zeroForOne Swap direction (true = decreasing price)
|
|
202
|
+
* @returns [nextTick, initialized] tuple
|
|
203
|
+
*
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
private static findNextInitializedTick;
|
|
207
|
+
/**
|
|
208
|
+
* Execute a single swap step calculation
|
|
209
|
+
*
|
|
210
|
+
* Uses the production-ready Uniswap V3 swap math from @gala-chain/dex.
|
|
211
|
+
* Implements accurate constant-product pricing, fee calculations, and tick boundary handling.
|
|
212
|
+
*
|
|
213
|
+
* @param sqrtPriceCurrent Current sqrt price before swap
|
|
214
|
+
* @param sqrtPriceTarget Target sqrt price (next tick boundary or price limit)
|
|
215
|
+
* @param liquidity Active liquidity in current price range
|
|
216
|
+
* @param amountRemaining Tokens remaining to swap (positive value)
|
|
217
|
+
* @param feeTier Fee tier in basis points (3000 = 0.3%, 10000 = 1%)
|
|
218
|
+
* @param exactInput true=exact input amount, false=exact output amount
|
|
219
|
+
* @returns SwapStepResult with sqrtPriceNext, amountIn, amountOut, feeAmount
|
|
220
|
+
* @throws Error on invalid inputs or calculation failures
|
|
221
|
+
*
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
private static executeSwapStep;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Default export for convenience
|
|
228
|
+
* @see {@link SwapDeltaCalculator}
|
|
229
|
+
*/
|
|
230
|
+
export default SwapDeltaCalculator;
|
|
231
|
+
//# sourceMappingURL=swap-delta-calculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-delta-calculator.d.ts","sourceRoot":"","sources":["../../../src/utils/swap-delta-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,eAAe,EAEhB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IAEtB,0DAA0D;IAC1D,oBAAoB,EAAE,OAAO,CAAC;IAE9B,oDAAoD;IACpD,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;IAErC,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;CACvB;AAYD;;;;GAIG;AACH,UAAU,cAAc;IACtB,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,CAAC;IAEzB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,6DAA6D;IAC7D,aAAa,EAAE,OAAO,CAAC;IAEvB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAG3B;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,aAAa,EACxB,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,eAAe;IA4GlB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,mBAAmB,CACxB,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,qBAAqB,GAC5B,iBAAiB;IAkEpB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,eAAe,CACpB,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,qBAAqB,GAC5B,cAAc;IAgKjB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,iBAAiB,CACtB,YAAY,EAAE,IAAI,EAClB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,qBAAqB,GAC7B,IAAI;IA4BP;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,qBAAqB,CAC1B,YAAY,EAAE,iBAAiB,EAC/B,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,aAAa,GACvB;QACD,OAAO,EAAE,SAAS,CAAC;QACnB,OAAO,EAAE,SAAS,CAAC;QACnB,UAAU,EAAE,SAAS,CAAC;QACtB,UAAU,EAAE,SAAS,CAAC;KACvB;IAyDD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA0CtC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CAqE/B;AAED;;;GAGG;AACH,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tick Crossing Handler
|
|
3
|
+
*
|
|
4
|
+
* Manages all tick boundary crossing logic during swap calculations.
|
|
5
|
+
* This is complex logic that reuses functions from @gala-chain/dex for:
|
|
6
|
+
* - Finding next initialized ticks in the bitmap
|
|
7
|
+
* - Applying liquidity and fee changes when crossing ticks
|
|
8
|
+
* - Validating tick ranges and boundaries
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import { TickData } from '@gala-chain/dex';
|
|
13
|
+
import BigNumber from 'bignumber.js';
|
|
14
|
+
import type { TickCrossingEvent } from '../types/pool-state-delta.dto';
|
|
15
|
+
/**
|
|
16
|
+
* Handler for tick boundary crossing during swaps
|
|
17
|
+
*
|
|
18
|
+
* Provides pure functions for navigating tick boundaries, applying liquidity changes,
|
|
19
|
+
* and managing tick data updates during swap calculations.
|
|
20
|
+
*
|
|
21
|
+
* @category Pool State
|
|
22
|
+
*/
|
|
23
|
+
export declare class TickCrossingHandler {
|
|
24
|
+
private static readonly logger;
|
|
25
|
+
/**
|
|
26
|
+
* Minimum valid tick index (-887272)
|
|
27
|
+
* Corresponds to minimum price = 1.0001^-887272
|
|
28
|
+
*/
|
|
29
|
+
static readonly MIN_TICK: number;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum valid tick index (887272)
|
|
32
|
+
* Corresponds to maximum price = 1.0001^887272
|
|
33
|
+
*/
|
|
34
|
+
static readonly MAX_TICK: number;
|
|
35
|
+
/**
|
|
36
|
+
* Standard tick spacing for most pools
|
|
37
|
+
*/
|
|
38
|
+
static readonly TICK_SPACING_STANDARD = 60;
|
|
39
|
+
/**
|
|
40
|
+
* Warning threshold for large tick crossing ranges
|
|
41
|
+
* Log warning if more than this many ticks are crossed
|
|
42
|
+
*/
|
|
43
|
+
static readonly LARGE_TICK_RANGE_WARNING = 10;
|
|
44
|
+
/**
|
|
45
|
+
* Find the next initialized tick in the bitmap
|
|
46
|
+
*
|
|
47
|
+
* Uses bitmap navigation from @gala-chain/dex to efficiently locate
|
|
48
|
+
* the next tick boundary in the direction of price movement.
|
|
49
|
+
*
|
|
50
|
+
* @param bitmap - Pool's tick bitmap (map of tick index to initialization state)
|
|
51
|
+
* @param currentTick - Current tick position
|
|
52
|
+
* @param tickSpacing - Spacing between ticks (10, 60, 200, etc.)
|
|
53
|
+
* @param zeroForOne - True if moving toward negative ticks (price decreasing)
|
|
54
|
+
* @returns Tuple of [nextTick, isInitialized]
|
|
55
|
+
* @throws Error if tick is outside valid range
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const [nextTick, initialized] = TickCrossingHandler.findNextInitializedTick(
|
|
60
|
+
* pool.bitmap,
|
|
61
|
+
* currentTick,
|
|
62
|
+
* 60,
|
|
63
|
+
* true // swapping token0 for token1
|
|
64
|
+
* );
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
static findNextInitializedTick(bitmap: Record<string, string>, currentTick: number, tickSpacing: number, zeroForOne: boolean): [number, boolean];
|
|
68
|
+
/**
|
|
69
|
+
* Apply liquidity and fee changes when crossing a tick boundary
|
|
70
|
+
*
|
|
71
|
+
* When price crosses a tick, we need to:
|
|
72
|
+
* 1. Update the tick's fee growth outside values
|
|
73
|
+
* 2. Get the net liquidity change at this tick
|
|
74
|
+
* 3. Apply the liquidity change based on swap direction
|
|
75
|
+
*
|
|
76
|
+
* @param tickData - Tick data for the crossing tick
|
|
77
|
+
* @param feeGrowthGlobal0 - Current feeGrowthGlobal0 (for token0)
|
|
78
|
+
* @param feeGrowthGlobal1 - Current feeGrowthGlobal1 (for token1)
|
|
79
|
+
* @param zeroForOne - Direction of swap (true = selling token0)
|
|
80
|
+
* @returns liquidityNet - the net liquidity change at this tick
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const liquidityNetChange = TickCrossingHandler.handleTickCrossing(
|
|
85
|
+
* tickDataMap[tickNext],
|
|
86
|
+
* state.feeGrowthGlobal0,
|
|
87
|
+
* state.feeGrowthGlobal1,
|
|
88
|
+
* true // swapping token0 for token1
|
|
89
|
+
* );
|
|
90
|
+
*
|
|
91
|
+
* // Apply based on direction:
|
|
92
|
+
* const newLiquidity = zeroForOne
|
|
93
|
+
* ? state.liquidity.minus(liquidityNetChange)
|
|
94
|
+
* : state.liquidity.plus(liquidityNetChange);
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
static handleTickCrossing(tickData: TickData, feeGrowthGlobal0: BigNumber, feeGrowthGlobal1: BigNumber, zeroForOne: boolean): BigNumber;
|
|
98
|
+
/**
|
|
99
|
+
* Update tick data in the map (without mutation)
|
|
100
|
+
*
|
|
101
|
+
* Creates a new tick data map with the updated tick.
|
|
102
|
+
* Does NOT mutate the original map.
|
|
103
|
+
*
|
|
104
|
+
* @param tickDataMap - Original tick map
|
|
105
|
+
* @param tick - Tick index to update
|
|
106
|
+
* @param updatedData - New tick data object
|
|
107
|
+
* @returns New map with updated tick
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* const newTickMap = TickCrossingHandler.updateTickData(
|
|
112
|
+
* originalTickMap,
|
|
113
|
+
* tickIndex,
|
|
114
|
+
* updatedTickData
|
|
115
|
+
* );
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
static updateTickData(tickDataMap: Record<string, TickData>, tick: number, updatedData: TickData): Record<string, TickData>;
|
|
119
|
+
/**
|
|
120
|
+
* Get price boundaries for a tick
|
|
121
|
+
*
|
|
122
|
+
* Returns the sqrt price at this tick and the next tick.
|
|
123
|
+
* Useful for understanding the price range of a tick.
|
|
124
|
+
*
|
|
125
|
+
* @param tick - Tick number
|
|
126
|
+
* @returns Object with sqrtPriceLower and sqrtPriceUpper
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const { sqrtPriceLower, sqrtPriceUpper } = TickCrossingHandler.getTickBoundaries(1000);
|
|
131
|
+
* console.log(`Price range: ${sqrtPriceLower} to ${sqrtPriceUpper}`);
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
static getTickBoundaries(tick: number): {
|
|
135
|
+
sqrtPriceLower: BigNumber;
|
|
136
|
+
sqrtPriceUpper: BigNumber;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Calculate which ticks are crossed during a swap
|
|
140
|
+
*
|
|
141
|
+
* Returns the range of ticks between start and end positions.
|
|
142
|
+
* Useful for analysis and logging.
|
|
143
|
+
*
|
|
144
|
+
* @param startTick - Starting tick
|
|
145
|
+
* @param endTick - Ending tick
|
|
146
|
+
* @param zeroForOne - Swap direction
|
|
147
|
+
* @returns Array of crossed ticks (sorted)
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* const crossedTicks = TickCrossingHandler.calculateTickRange(1000, 950, true);
|
|
152
|
+
* // Returns: [999, 998, 997, ..., 951, 950]
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
static calculateTickRange(startTick: number, endTick: number, zeroForOne: boolean): number[];
|
|
156
|
+
/**
|
|
157
|
+
* Validate tick is within valid range
|
|
158
|
+
*
|
|
159
|
+
* @param tick - Tick to validate
|
|
160
|
+
* @returns True if tick is valid, false otherwise
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* if (!TickCrossingHandler.validateTick(tick)) {
|
|
165
|
+
* throw new Error('Invalid tick');
|
|
166
|
+
* }
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
static validateTick(tick: number): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Create a tick crossing event for tracking
|
|
172
|
+
*
|
|
173
|
+
* Generates a TickCrossingEvent with complete metadata about the crossing.
|
|
174
|
+
* Useful for logging and analysis.
|
|
175
|
+
*
|
|
176
|
+
* @param tick - Tick that was crossed
|
|
177
|
+
* @param direction - Direction of crossing ('up' or 'down')
|
|
178
|
+
* @param liquidityNet - Net liquidity change at this tick
|
|
179
|
+
* @param liquidityBefore - Liquidity before crossing
|
|
180
|
+
* @param liquidityAfter - Liquidity after crossing
|
|
181
|
+
* @returns TickCrossingEvent object
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const event = TickCrossingHandler.createTickCrossingEvent(
|
|
186
|
+
* 1000,
|
|
187
|
+
* 'down',
|
|
188
|
+
* liquidityNet,
|
|
189
|
+
* oldLiquidity,
|
|
190
|
+
* newLiquidity
|
|
191
|
+
* );
|
|
192
|
+
* ticksCrossed.push(event);
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
static createTickCrossingEvent(tick: number, direction: 'up' | 'down', liquidityNet: BigNumber, liquidityBefore: BigNumber, liquidityAfter: BigNumber): TickCrossingEvent;
|
|
196
|
+
/**
|
|
197
|
+
* Validate bitmap structure
|
|
198
|
+
*
|
|
199
|
+
* Checks that the bitmap has the expected structure.
|
|
200
|
+
* Used for defensive validation before bitmap operations.
|
|
201
|
+
*
|
|
202
|
+
* @param bitmap - Bitmap to validate
|
|
203
|
+
* @returns True if bitmap is valid
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* if (!TickCrossingHandler.validateBitmap(pool.bitmap)) {
|
|
208
|
+
* throw new Error('Invalid bitmap structure');
|
|
209
|
+
* }
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
static validateBitmap(bitmap: Record<string, string>): boolean;
|
|
213
|
+
/**
|
|
214
|
+
* Get tick data safely from map
|
|
215
|
+
*
|
|
216
|
+
* Returns tick data or undefined if not found.
|
|
217
|
+
* Logs warning if tick is expected but not found.
|
|
218
|
+
*
|
|
219
|
+
* @param tickDataMap - Tick data map
|
|
220
|
+
* @param tick - Tick to retrieve
|
|
221
|
+
* @param expectFound - Whether to log warning if not found
|
|
222
|
+
* @returns TickData or undefined
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* const tickData = TickCrossingHandler.getTickDataSafe(
|
|
227
|
+
* tickDataMap,
|
|
228
|
+
* tickIndex,
|
|
229
|
+
* true // log warning if not found
|
|
230
|
+
* );
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
static getTickDataSafe(tickDataMap: Record<string, TickData>, tick: number, expectFound?: boolean): TickData | undefined;
|
|
234
|
+
/**
|
|
235
|
+
* Calculate performance metrics for tick crossing
|
|
236
|
+
*
|
|
237
|
+
* Estimates the expected time for crossing N ticks based on benchmarks.
|
|
238
|
+
*
|
|
239
|
+
* @param tickCount - Number of ticks to cross
|
|
240
|
+
* @returns Estimated time in milliseconds
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```typescript
|
|
244
|
+
* const estimatedMs = TickCrossingHandler.estimateTickCrossingTime(5);
|
|
245
|
+
* console.log(`Expect ~${estimatedMs}ms for 5 tick crossings`);
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
static estimateTickCrossingTime(tickCount: number): number;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=tick-crossing-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tick-crossing-handler.d.ts","sourceRoot":"","sources":["../../../src/utils/tick-crossing-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,QAAQ,EAGT,MAAM,iBAAiB,CAAC;AACzB,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGvE;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAG3B;IAEH;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,SAAqB;IAE7C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,SAAqB;IAE7C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,qBAAqB,MAAM;IAE3C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,MAAM;IAE9C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,uBAAuB,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,CAAC,MAAM,EAAE,OAAO,CAAC;IAwCpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,SAAS,EAC3B,gBAAgB,EAAE,SAAS,EAC3B,UAAU,EAAE,OAAO,GAClB,SAAS;IAyBZ;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,cAAc,CACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,QAAQ,GACpB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAY3B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;QACtC,cAAc,EAAE,SAAS,CAAC;QAC1B,cAAc,EAAE,SAAS,CAAC;KAC3B;IAqBD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,EAAE;IA2B5F;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,uBAAuB,CAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,EAC1B,cAAc,EAAE,SAAS,GACxB,iBAAiB;IAUpB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;IAgB9D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,eAAe,CACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,OAAe,GAC3B,QAAQ,GAAG,SAAS;IAavB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAU3D"}
|
|
@@ -25,8 +25,12 @@ export declare class TokenFormatConverter {
|
|
|
25
25
|
*
|
|
26
26
|
* ⚠️ WARNING: For API format conversion ONLY
|
|
27
27
|
* This does NOT validate or resolve token symbols - it's structural only.
|
|
28
|
+
* USE parseToken() utility instead for proper token format handling (src/utils/token-parser.ts)
|
|
28
29
|
*
|
|
29
|
-
* Input
|
|
30
|
+
* Input examples:
|
|
31
|
+
* - "GALA" → "GALA|Unit|none|none"
|
|
32
|
+
* - "GALA|Unit|none|none" → "GALA|Unit|none|none" (unchanged)
|
|
33
|
+
* - { collection: "GALA", category: "Unit", type: "none", additionalKey: "none" } → "GALA|Unit|none|none"
|
|
30
34
|
* Output: "GALA|Unit|none|none"
|
|
31
35
|
*/
|
|
32
36
|
toLaunchpadFormat(token: string | TokenClass | any): string;
|
|
@@ -35,10 +39,13 @@ export declare class TokenFormatConverter {
|
|
|
35
39
|
*
|
|
36
40
|
* ⚠️ WARNING: For API format conversion ONLY
|
|
37
41
|
* This does NOT provide real symbol/metadata - it's structural only.
|
|
42
|
+
* USE parseToken() utility instead for proper token format handling (src/utils/token-parser.ts)
|
|
38
43
|
* For actual token data, use GalaChainService.fetchTokenClassFromChain()
|
|
39
44
|
*
|
|
40
|
-
* Input
|
|
41
|
-
*
|
|
45
|
+
* Input examples:
|
|
46
|
+
* - "GALA|Unit|none|none" → { collection: "GALA", category: "Unit", type: "none", additionalKey: "none" }
|
|
47
|
+
* - { type: "GALA", ... } → proper TokenClassKey
|
|
48
|
+
* Output: TokenClassKey with collection, category, type, additionalKey
|
|
42
49
|
*/
|
|
43
50
|
toTokenClass(token: string | TokenClass | any): TokenClass;
|
|
44
51
|
/**
|
|
@@ -61,13 +68,13 @@ export declare class TokenFormatConverter {
|
|
|
61
68
|
/**
|
|
62
69
|
* Convert pipe-delimited token ID to dollar-delimited format for API
|
|
63
70
|
*
|
|
64
|
-
* @param pipeToken Pipe-delimited format: "
|
|
71
|
+
* @param pipeToken Pipe-delimited format: "GUSDC|Unit|none|eth:0x..."
|
|
65
72
|
* @returns Dollar-delimited format: "Token$Unit$GUSDC$eth:0x..."
|
|
66
73
|
* @throws Error if token is null or empty
|
|
67
74
|
*
|
|
68
75
|
* @example
|
|
69
76
|
* ```typescript
|
|
70
|
-
* pipeFormatToDollarFormat("
|
|
77
|
+
* pipeFormatToDollarFormat("GUSDC|Unit|none|eth:0x123")
|
|
71
78
|
* // Returns: "Token$Unit$GUSDC$eth:0x123"
|
|
72
79
|
* ```
|
|
73
80
|
*/
|
|
@@ -76,13 +83,13 @@ export declare function pipeFormatToDollarFormat(pipeToken: string): string;
|
|
|
76
83
|
* Convert dollar-delimited API response to pipe-delimited format
|
|
77
84
|
*
|
|
78
85
|
* @param dollarToken Dollar-delimited format: "Token$Unit$GUSDC$eth:0x..."
|
|
79
|
-
* @returns Pipe-delimited format: "
|
|
86
|
+
* @returns Pipe-delimited format: "GUSDC|Unit|none|eth:0x..."
|
|
80
87
|
* @throws Error if token is null or empty
|
|
81
88
|
*
|
|
82
89
|
* @example
|
|
83
90
|
* ```typescript
|
|
84
91
|
* dollarFormatToPipeFormat("Token$Unit$GUSDC$eth:0x123")
|
|
85
|
-
* // Returns: "
|
|
92
|
+
* // Returns: "GUSDC|Unit|none|eth:0x123"
|
|
86
93
|
* ```
|
|
87
94
|
*/
|
|
88
95
|
export declare function dollarFormatToPipeFormat(dollarToken: string): string;
|
|
@@ -116,12 +123,12 @@ export declare function convertSortOrderToApi(sortOrder?: 'ASC' | 'DESC'): 'asc'
|
|
|
116
123
|
*
|
|
117
124
|
* @example
|
|
118
125
|
* ```typescript
|
|
119
|
-
* const tokenClass = parseDollarDelimitedToken('
|
|
120
|
-
* // → { collection: "
|
|
126
|
+
* const tokenClass = parseDollarDelimitedToken('GUSDC$Unit$none$eth:0x...');
|
|
127
|
+
* // → { collection: "GUSDC", category: "Unit", type: "none", additionalKey: "eth:0x..." }
|
|
121
128
|
*
|
|
122
129
|
* // Handles additionalKey with $ characters
|
|
123
|
-
* const complex = parseDollarDelimitedToken('
|
|
124
|
-
* // → { collection: "
|
|
130
|
+
* const complex = parseDollarDelimitedToken('SYMBOL$Unit$none$eth:0x$1234$5678');
|
|
131
|
+
* // → { collection: "SYMBOL", category: "Unit", type: "none", additionalKey: "eth:0x$1234$5678" }
|
|
125
132
|
* ```
|
|
126
133
|
*
|
|
127
134
|
* @since 3.32.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-format-converter.d.ts","sourceRoot":"","sources":["../../../src/utils/token-format-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,oBAAoB;IAC/B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAEf,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,GAC/B,MAAM;IAyBT;;;;;;;;;;;;OAYG;IAEH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU;IAiC1D;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;CAY9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAM5F;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAyC5E"}
|