@gala-chain/launchpad-sdk 8.0.2 → 9.0.0-rc.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/CHANGELOG.md +362 -0
- package/EXAMPLES.md +95 -681
- package/MIGRATING-TO-9.0.md +301 -0
- package/README.md +46 -17
- package/dist/LaunchpadSDK.d.ts +150 -419
- package/dist/LaunchpadSDK.d.ts.map +1 -1
- package/dist/api/LaunchpadAPI.d.ts +37 -43
- package/dist/api/LaunchpadAPI.d.ts.map +1 -1
- package/dist/auth/SessionAuthService.d.ts.map +1 -1
- package/dist/auth/SignatureAuth.d.ts +2 -2
- package/dist/auth/SignatureAuth.d.ts.map +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/config/environments.d.ts +7 -2
- package/dist/config/environments.d.ts.map +1 -1
- package/dist/constants/decimals.d.ts +0 -23
- package/dist/constants/decimals.d.ts.map +1 -1
- package/dist/constants/endpoints.d.ts +0 -7
- package/dist/constants/endpoints.d.ts.map +1 -1
- package/dist/constants/version.generated.d.ts +1 -1
- package/dist/constants/version.generated.d.ts.map +1 -1
- package/dist/helpers/sdk.d.ts.map +1 -1
- package/dist/index.browser.d.ts +11 -23
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.esm.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.node.d.ts +4 -5
- package/dist/index.node.d.ts.map +1 -1
- package/dist/launchpad/bundle-submission.d.ts +1 -9
- package/dist/launchpad/bundle-submission.d.ts.map +1 -1
- package/dist/launchpad/sell-fee-ceiling.d.ts +66 -0
- package/dist/launchpad/sell-fee-ceiling.d.ts.map +1 -0
- package/dist/launchpad/transport.d.ts +2 -1
- package/dist/launchpad/transport.d.ts.map +1 -1
- package/dist/launchpad/writes.d.ts +30 -2
- package/dist/launchpad/writes.d.ts.map +1 -1
- package/dist/native.cjs +1 -1
- package/dist/native.d.ts +3 -4
- package/dist/native.d.ts.map +1 -1
- package/dist/native.esm.js +1 -1
- package/dist/schemas/launchpad.d.ts +4 -4
- package/dist/schemas/launchpad.d.ts.map +1 -1
- package/dist/schemas/user.d.ts +0 -15
- package/dist/schemas/user.d.ts.map +1 -1
- package/dist/services/AbstractCacheService.d.ts +2 -2
- package/dist/services/BundleService.d.ts +9 -1
- package/dist/services/BundleService.d.ts.map +1 -1
- package/dist/services/GalaChainBalanceService.d.ts +17 -89
- package/dist/services/GalaChainBalanceService.d.ts.map +1 -1
- package/dist/services/GalaChainLockService.d.ts +19 -20
- package/dist/services/GalaChainLockService.d.ts.map +1 -1
- package/dist/services/GalaChainService.d.ts +28 -64
- package/dist/services/GalaChainService.d.ts.map +1 -1
- package/dist/services/GalaChainTokenService.d.ts +25 -53
- package/dist/services/GalaChainTokenService.d.ts.map +1 -1
- package/dist/services/GalaChainTransferService.d.ts +42 -41
- package/dist/services/GalaChainTransferService.d.ts.map +1 -1
- package/dist/services/LaunchpadPriceService.d.ts +66 -0
- package/dist/services/LaunchpadPriceService.d.ts.map +1 -0
- package/dist/services/NftCollectionService.d.ts +22 -6
- package/dist/services/NftCollectionService.d.ts.map +1 -1
- package/dist/services/TokenResolverService.d.ts +5 -5
- package/dist/services/TokenResolverService.d.ts.map +1 -1
- package/dist/services/TradingQuotesService.d.ts +3 -5
- package/dist/services/TradingQuotesService.d.ts.map +1 -1
- package/dist/services/gateway-transport.d.ts +32 -0
- package/dist/services/gateway-transport.d.ts.map +1 -0
- package/dist/services/gateway-writes.d.ts +83 -0
- package/dist/services/gateway-writes.d.ts.map +1 -0
- package/dist/signing/index.d.ts +2 -3
- package/dist/signing/index.d.ts.map +1 -1
- package/dist/signing/signers.d.ts +23 -11
- package/dist/signing/signers.d.ts.map +1 -1
- package/dist/signing/types.d.ts +7 -10
- package/dist/signing/types.d.ts.map +1 -1
- package/dist/types/burn.dto.d.ts +4 -2
- package/dist/types/burn.dto.d.ts.map +1 -1
- package/dist/types/common.d.ts +2 -23
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/dto.d.ts +0 -5
- package/dist/types/dto.d.ts.map +1 -1
- package/dist/types/launchpad.dto.d.ts +0 -269
- package/dist/types/launchpad.dto.d.ts.map +1 -1
- package/dist/types/lock.dto.d.ts +12 -7
- package/dist/types/lock.dto.d.ts.map +1 -1
- package/dist/types/options.dto.d.ts +8 -34
- package/dist/types/options.dto.d.ts.map +1 -1
- package/dist/types/session-auth.dto.d.ts +2 -4
- package/dist/types/session-auth.dto.d.ts.map +1 -1
- package/dist/types/user.dto.d.ts +7 -62
- package/dist/types/user.dto.d.ts.map +1 -1
- package/dist/utils/address-formatter.d.ts +10 -2
- package/dist/utils/address-formatter.d.ts.map +1 -1
- package/dist/utils/agent-config.d.ts +9 -4
- package/dist/utils/agent-config.d.ts.map +1 -1
- package/dist/utils/auto-pagination.d.ts +6 -239
- package/dist/utils/auto-pagination.d.ts.map +1 -1
- package/dist/utils/bignumber-helpers.d.ts +3 -2
- package/dist/utils/bignumber-helpers.d.ts.map +1 -1
- package/dist/utils/delimiter-parser.d.ts +0 -13
- package/dist/utils/delimiter-parser.d.ts.map +1 -1
- package/dist/utils/error-patterns.d.ts +0 -47
- package/dist/utils/error-patterns.d.ts.map +1 -1
- package/dist/utils/error-wrapper.d.ts +5 -5
- package/dist/utils/errors.d.ts +0 -308
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/http.d.ts +15 -3
- package/dist/utils/http.d.ts.map +1 -1
- package/dist/utils/token-format-converter.d.ts +1 -1
- package/dist/utils/token-parser.d.ts +6 -127
- package/dist/utils/token-parser.d.ts.map +1 -1
- package/dist/utils/token-stringification.d.ts +7 -7
- package/dist/utils/token-stringification.d.ts.map +1 -1
- package/dist/utils/tokenNameNormalizer.d.ts +2 -2
- package/dist/utils/tokenNormalizer.d.ts +5 -29
- package/dist/utils/tokenNormalizer.d.ts.map +1 -1
- package/dist/utils/trade-quote.d.ts +32 -0
- package/dist/utils/trade-quote.d.ts.map +1 -0
- package/dist/utils/unique-key-generator.d.ts +7 -134
- package/dist/utils/unique-key-generator.d.ts.map +1 -1
- package/dist/utils/validation-helpers.d.ts +3 -5
- package/dist/utils/validation-helpers.d.ts.map +1 -1
- package/package.json +47 -87
- package/dist/api/dto/BurnTokensDto.d.ts +0 -77
- package/dist/api/dto/BurnTokensDto.d.ts.map +0 -1
- package/dist/api/dto/LockTokenDto.d.ts +0 -85
- package/dist/api/dto/LockTokenDto.d.ts.map +0 -1
- package/dist/api/dto/TransferTokenDto.d.ts +0 -64
- package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
- package/dist/api/dto/UnlockTokenDto.d.ts +0 -74
- package/dist/api/dto/UnlockTokenDto.d.ts.map +0 -1
- package/dist/bridge/BridgeService.d.ts +0 -484
- package/dist/bridge/BridgeService.d.ts.map +0 -1
- package/dist/bridge/GalaConnectClient.d.ts +0 -170
- package/dist/bridge/GalaConnectClient.d.ts.map +0 -1
- package/dist/bridge/constants/index.d.ts +0 -7
- package/dist/bridge/constants/index.d.ts.map +0 -1
- package/dist/bridge/constants/tokens.d.ts +0 -212
- package/dist/bridge/constants/tokens.d.ts.map +0 -1
- package/dist/bridge/index.d.ts +0 -24
- package/dist/bridge/index.d.ts.map +0 -1
- package/dist/bridge/public-types.d.ts +0 -2
- package/dist/bridge/public-types.d.ts.map +0 -1
- package/dist/bridge/strategies/BridgeStrategy.d.ts +0 -204
- package/dist/bridge/strategies/BridgeStrategy.d.ts.map +0 -1
- package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts +0 -178
- package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts.map +0 -1
- package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts +0 -236
- package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts.map +0 -1
- package/dist/bridge/types/bridge.dto.d.ts +0 -772
- package/dist/bridge/types/bridge.dto.d.ts.map +0 -1
- package/dist/bridge/types/bridgeable-token.dto.d.ts +0 -209
- package/dist/bridge/types/bridgeable-token.dto.d.ts.map +0 -1
- package/dist/bridge/types/eip712.d.ts +0 -66
- package/dist/bridge/types/eip712.d.ts.map +0 -1
- package/dist/bridge/types/index.d.ts +0 -8
- package/dist/bridge/types/index.d.ts.map +0 -1
- package/dist/bridge/utils/RateLimiter.d.ts +0 -34
- package/dist/bridge/utils/RateLimiter.d.ts.map +0 -1
- package/dist/bridge/utils/address-formatter.d.ts +0 -25
- package/dist/bridge/utils/address-formatter.d.ts.map +0 -1
- package/dist/bridge/utils/addressValidation.d.ts +0 -200
- package/dist/bridge/utils/addressValidation.d.ts.map +0 -1
- package/dist/bridge/utils/balanceHelpers.d.ts +0 -215
- package/dist/bridge/utils/balanceHelpers.d.ts.map +0 -1
- package/dist/bridge/utils/bridgeErrors.d.ts +0 -98
- package/dist/bridge/utils/bridgeErrors.d.ts.map +0 -1
- package/dist/bridge/utils/bridgeOutHelpers.d.ts +0 -68
- package/dist/bridge/utils/bridgeOutHelpers.d.ts.map +0 -1
- package/dist/bridge/utils/bridgePayload.d.ts +0 -98
- package/dist/bridge/utils/bridgePayload.d.ts.map +0 -1
- package/dist/bridge/utils/bridgeStatusParser.d.ts +0 -76
- package/dist/bridge/utils/bridgeStatusParser.d.ts.map +0 -1
- package/dist/bridge/utils/eip712Helpers.d.ts +0 -66
- package/dist/bridge/utils/eip712Helpers.d.ts.map +0 -1
- package/dist/bridge/utils/index.d.ts +0 -19
- package/dist/bridge/utils/index.d.ts.map +0 -1
- package/dist/bridge/utils/retry.d.ts +0 -112
- package/dist/bridge/utils/retry.d.ts.map +0 -1
- package/dist/bridge/utils/strategyDelegation.d.ts +0 -126
- package/dist/bridge/utils/strategyDelegation.d.ts.map +0 -1
- package/dist/bridge/utils/tokenIdUtils.d.ts +0 -86
- package/dist/bridge/utils/tokenIdUtils.d.ts.map +0 -1
- package/dist/bridge/utils/tokenMath.d.ts +0 -39
- package/dist/bridge/utils/tokenMath.d.ts.map +0 -1
- package/dist/bridge/utils/tokenMetadataResolver.d.ts +0 -97
- package/dist/bridge/utils/tokenMetadataResolver.d.ts.map +0 -1
- package/dist/helpers/wallet.d.ts +0 -151
- package/dist/helpers/wallet.d.ts.map +0 -1
- package/dist/react/WalletContext.d.ts +0 -60
- package/dist/react/WalletContext.d.ts.map +0 -1
- package/dist/react/index.d.ts +0 -65
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/types.d.ts +0 -76
- package/dist/react/types.d.ts.map +0 -1
- package/dist/react/useWallet.d.ts +0 -123
- package/dist/react/useWallet.d.ts.map +0 -1
- package/dist/react/useWalletConnection.d.ts +0 -89
- package/dist/react/useWalletConnection.d.ts.map +0 -1
- package/dist/react/useWalletDetection.d.ts +0 -81
- package/dist/react/useWalletDetection.d.ts.map +0 -1
- package/dist/react.cjs +0 -1
- package/dist/react.esm.js +0 -1
- package/dist/services/AbstractTokenFetchService.d.ts +0 -150
- package/dist/services/AbstractTokenFetchService.d.ts.map +0 -1
- package/dist/services/BatchedCacheService.d.ts +0 -133
- package/dist/services/BatchedCacheService.d.ts.map +0 -1
- package/dist/services/BridgeableTokenCache.d.ts +0 -120
- package/dist/services/BridgeableTokenCache.d.ts.map +0 -1
- package/dist/services/BridgeableTokenService.d.ts +0 -218
- package/dist/services/BridgeableTokenService.d.ts.map +0 -1
- package/dist/services/DexService.d.ts +0 -440
- package/dist/services/DexService.d.ts.map +0 -1
- package/dist/services/NetworkKeyedCacheService.d.ts +0 -185
- package/dist/services/NetworkKeyedCacheService.d.ts.map +0 -1
- package/dist/services/PriceHistoryService.d.ts +0 -209
- package/dist/services/PriceHistoryService.d.ts.map +0 -1
- package/dist/services/WrapService.d.ts +0 -171
- package/dist/services/WrapService.d.ts.map +0 -1
- package/dist/services/WrappableTokenCache.d.ts +0 -100
- package/dist/services/WrappableTokenCache.d.ts.map +0 -1
- package/dist/services/WrappableTokenService.d.ts +0 -130
- package/dist/services/WrappableTokenService.d.ts.map +0 -1
- package/dist/setup.d.ts +0 -8
- package/dist/setup.d.ts.map +0 -1
- package/dist/signing/eip712.d.ts +0 -13
- package/dist/signing/eip712.d.ts.map +0 -1
- package/dist/tokens/transfers.d.ts +0 -95
- package/dist/tokens/transfers.d.ts.map +0 -1
- package/dist/types/galachain-api.types.d.ts +0 -297
- package/dist/types/galachain-api.types.d.ts.map +0 -1
- package/dist/types/priceHistory.dto.d.ts +0 -134
- package/dist/types/priceHistory.dto.d.ts.map +0 -1
- package/dist/types/token.types.d.ts +0 -359
- package/dist/types/token.types.d.ts.map +0 -1
- package/dist/types/wrappable-token.dto.d.ts +0 -305
- package/dist/types/wrappable-token.dto.d.ts.map +0 -1
- package/dist/utils/crypto-compat.d.ts +0 -40
- package/dist/utils/crypto-compat.d.ts.map +0 -1
- package/dist/utils/load-env.d.ts +0 -31
- package/dist/utils/load-env.d.ts.map +0 -1
- package/dist/utils/token-instance-key.d.ts +0 -57
- package/dist/utils/token-instance-key.d.ts.map +0 -1
- package/dist/utils/wallet.d.ts +0 -166
- package/dist/utils/wallet.d.ts.map +0 -1
- package/dist/wallet/ExternalWalletProvider.d.ts +0 -90
- package/dist/wallet/ExternalWalletProvider.d.ts.map +0 -1
- package/dist/wallet/GalaWalletProvider.d.ts +0 -122
- package/dist/wallet/GalaWalletProvider.d.ts.map +0 -1
- package/dist/wallet/PrivateKeyProvider.d.ts +0 -90
- package/dist/wallet/PrivateKeyProvider.d.ts.map +0 -1
- package/dist/wallet/detection.d.ts +0 -107
- package/dist/wallet/detection.d.ts.map +0 -1
- package/dist/wallet/event-handlers.d.ts +0 -50
- package/dist/wallet/event-handlers.d.ts.map +0 -1
- package/dist/wallet/index.d.ts +0 -51
- package/dist/wallet/index.d.ts.map +0 -1
- package/dist/wallet/signing-operation.d.ts +0 -19
- package/dist/wallet/signing-operation.d.ts.map +0 -1
- package/dist/wallet/typed-data-helpers.d.ts +0 -68
- package/dist/wallet/typed-data-helpers.d.ts.map +0 -1
- package/dist/wallet/types.d.ts +0 -267
- package/dist/wallet/types.d.ts.map +0 -1
- package/dist/wallet/utils.d.ts +0 -117
- package/dist/wallet/utils.d.ts.map +0 -1
- package/dist/wallet.cjs +0 -1
- package/dist/wallet.esm.js +0 -1
|
@@ -36,8 +36,8 @@ export declare const tokenCollectionSchema: z.ZodDefault<z.ZodString>;
|
|
|
36
36
|
* Defaults if not provided: { minFeePortion: "0.1", maxFeePortion: "0.5" }
|
|
37
37
|
*/
|
|
38
38
|
export declare const reverseBondingCurveConfigSchema: z.ZodObject<{
|
|
39
|
-
minFeePortion: z.ZodString
|
|
40
|
-
maxFeePortion: z.ZodString
|
|
39
|
+
minFeePortion: z.ZodDefault<z.ZodString>;
|
|
40
|
+
maxFeePortion: z.ZodDefault<z.ZodString>;
|
|
41
41
|
}, z.core.$strip>;
|
|
42
42
|
/**
|
|
43
43
|
* Token launch data schema
|
|
@@ -59,8 +59,8 @@ export declare const launchTokenDataSchema: z.ZodObject<{
|
|
|
59
59
|
tokenCategory: z.ZodDefault<z.ZodString>;
|
|
60
60
|
tokenCollection: z.ZodDefault<z.ZodString>;
|
|
61
61
|
reverseBondingCurveConfiguration: z.ZodOptional<z.ZodObject<{
|
|
62
|
-
minFeePortion: z.ZodString
|
|
63
|
-
maxFeePortion: z.ZodString
|
|
62
|
+
minFeePortion: z.ZodDefault<z.ZodString>;
|
|
63
|
+
maxFeePortion: z.ZodDefault<z.ZodString>;
|
|
64
64
|
}, z.core.$strip>>;
|
|
65
65
|
saleStartTime: z.ZodOptional<z.ZodNumber>;
|
|
66
66
|
privateKey: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/schemas/launchpad.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;iBAoBzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,mBAAmB,2BAGd,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,qBAAqB,2BAGf,CAAC;AAEpB;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;
|
|
1
|
+
{"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../src/schemas/launchpad.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;iBAoBzB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,mBAAmB,2BAGd,CAAC;AAEnB;;GAEG;AACH,eAAO,MAAM,qBAAqB,2BAGf,CAAC;AAEpB;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;iBAc3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;iBAyBhC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;iBAMnC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;EAAgC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;iBAQhC,CAAC;AAMJ;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;EAA6B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;EAAwB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAcjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAKrC,CAAC;AAMH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
package/dist/schemas/user.d.ts
CHANGED
|
@@ -54,20 +54,6 @@ export declare const uploadProfileImageOptionsSchema: z.ZodObject<{
|
|
|
54
54
|
address: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
55
55
|
privateKey: z.ZodOptional<z.ZodString>;
|
|
56
56
|
}, z.core.$strip>;
|
|
57
|
-
/**
|
|
58
|
-
* Token hold schema representing a lock on tokens
|
|
59
|
-
* Matches the GalaChain FetchBalances response structure for inUseHolds and lockedHolds
|
|
60
|
-
*/
|
|
61
|
-
export declare const tokenHoldSchema: z.ZodObject<{
|
|
62
|
-
created: z.ZodNumber;
|
|
63
|
-
createdBy: z.ZodString;
|
|
64
|
-
expires: z.ZodNumber;
|
|
65
|
-
instanceId: z.ZodString;
|
|
66
|
-
lockAuthority: z.ZodString;
|
|
67
|
-
name: z.ZodString;
|
|
68
|
-
quantity: z.ZodString;
|
|
69
|
-
vestingPeriodStart: z.ZodNumber;
|
|
70
|
-
}, z.core.$strip>;
|
|
71
57
|
/**
|
|
72
58
|
* Fetch token balance options schema
|
|
73
59
|
* Supports flexible token identification via tokenId, tokenClassKey, or tokenName
|
|
@@ -95,5 +81,4 @@ export type FetchGalaBalanceOptions = z.infer<typeof fetchGalaBalanceOptionsSche
|
|
|
95
81
|
export type UpdateProfileData = z.infer<typeof updateProfileDataSchema>;
|
|
96
82
|
export type UploadProfileImageOptions = z.infer<typeof uploadProfileImageOptionsSchema>;
|
|
97
83
|
export type FetchTokenBalanceOptions = z.infer<typeof fetchTokenBalanceOptionsSchema>;
|
|
98
|
-
export type TokenHold = z.infer<typeof tokenHoldSchema>;
|
|
99
84
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;EAAsC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAKjC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;iBAO1C,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/schemas/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;EAAsC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAKjC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;iBAO1C,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;iBAwB1C,CAAC;AAMF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Abstract Cache Service Base Class
|
|
3
3
|
*
|
|
4
4
|
* Provides generic cache management functionality for all cache implementations.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* The base of TokenMetadataCache: a common interface and lifecycle management (the bridgeable and
|
|
6
|
+
* wrappable token caches moved to `@gala-chain/gala-core-sdk/bridge`, inside its token services).
|
|
7
7
|
*
|
|
8
8
|
* ## Architecture
|
|
9
9
|
* - **Generic K/V types**: Supports any key/value structure
|
|
@@ -29,6 +29,7 @@ import type { ApiResponse } from '../types/common';
|
|
|
29
29
|
import type { BuyTokenOptions, SellTokenOptions } from '../types/options.dto';
|
|
30
30
|
import type { EIP712Domain, EIP712Types } from '../types/trade.dto';
|
|
31
31
|
import type { HttpClient } from '../utils/http';
|
|
32
|
+
import type { SellFeeCeilingResolver } from '../launchpad/sell-fee-ceiling';
|
|
32
33
|
import { BaseService } from './BaseService';
|
|
33
34
|
import type { TokenResolverService } from './TokenResolverService';
|
|
34
35
|
/**
|
|
@@ -60,10 +61,11 @@ export declare class BundleService extends BaseService {
|
|
|
60
61
|
private userAddress?;
|
|
61
62
|
private defaultSlippageToleranceFactor;
|
|
62
63
|
private defaultMaxAcceptableReverseBondingCurveFeeSlippageFactor;
|
|
64
|
+
private readonly sellFeeCeiling?;
|
|
63
65
|
private readonly bundleEndpoint;
|
|
64
66
|
private signer?;
|
|
65
67
|
private tokenKeyService?;
|
|
66
|
-
constructor(httpClient: HttpClient, tokenResolver: TokenResolverService, debugMode?: boolean, _walletProvider?: unknown | undefined, userAddress?: string | undefined, defaultSlippageToleranceFactor?: number, defaultMaxAcceptableReverseBondingCurveFeeSlippageFactor?: number);
|
|
68
|
+
constructor(httpClient: HttpClient, tokenResolver: TokenResolverService, debugMode?: boolean, _walletProvider?: unknown | undefined, userAddress?: string | undefined, defaultSlippageToleranceFactor?: number, defaultMaxAcceptableReverseBondingCurveFeeSlippageFactor?: number, sellFeeCeiling?: SellFeeCeilingResolver | undefined);
|
|
67
69
|
/**
|
|
68
70
|
* Submit a bundle transaction to the backend
|
|
69
71
|
*
|
|
@@ -215,6 +217,12 @@ export declare class BundleService extends BaseService {
|
|
|
215
217
|
* @private
|
|
216
218
|
*/
|
|
217
219
|
private prepareTradingOperation;
|
|
220
|
+
/**
|
|
221
|
+
* Fee ceiling for a sell whose caller named none: the quoted reverse bonding curve fee plus the
|
|
222
|
+
* fee slippage factor (per-call override or the SDK default).
|
|
223
|
+
* @throws ConfigurationError when no quote source was injected
|
|
224
|
+
*/
|
|
225
|
+
private defaultSellFeeCeiling;
|
|
218
226
|
/**
|
|
219
227
|
* Calculate effective slippage factors and max fee with slippage protection
|
|
220
228
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleService.d.ts","sourceRoot":"","sources":["../../src/services/BundleService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"BundleService.d.ts","sourceRoot":"","sources":["../../src/services/BundleService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GalaChain Balance Service
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - Generic token balance queries
|
|
10
|
-
* - Hold filtering (locked, in-use)
|
|
11
|
-
* - Available quantity calculation
|
|
4
|
+
* Token balances from GalaChain. The read itself (the `FetchBalances` request, the answer's checks,
|
|
5
|
+
* the holds in force and their totals) is `@gala-chain/gala-core-sdk`'s `GatewayReads`; this
|
|
6
|
+
* service keeps the launchpad result shape (`TokenBalanceResult`, `null` for "not held") and error
|
|
7
|
+
* contract on top of it, and sends the read through the SDK's gateway `HttpClient` (its
|
|
8
|
+
* interceptors and `Sign` header) exactly as before.
|
|
12
9
|
*
|
|
13
10
|
* @example
|
|
14
11
|
* ```typescript
|
|
15
12
|
* const balanceService = new GalaChainBalanceService(http, debug);
|
|
16
13
|
*
|
|
17
|
-
* // Get GALA balance
|
|
18
14
|
* const galaBalance = await balanceService.fetchGalaBalance({
|
|
19
15
|
* owner: "eth|1234567890abcdef1234567890abcdef12345678",
|
|
20
16
|
* collection: "GALA",
|
|
21
17
|
* category: "Unit",
|
|
22
18
|
* additionalKey: "none",
|
|
23
19
|
* type: "none",
|
|
24
|
-
* instance: "0"
|
|
25
20
|
* });
|
|
26
21
|
*
|
|
27
|
-
* //
|
|
22
|
+
* // Any token, with expired holds kept
|
|
28
23
|
* const tokenBalance = await balanceService.fetchTokenBalance({
|
|
29
24
|
* owner: "eth|...",
|
|
30
25
|
* collection: "ANIME",
|
|
31
26
|
* category: "Unit",
|
|
32
27
|
* additionalKey: "none",
|
|
33
28
|
* type: "none",
|
|
34
|
-
*
|
|
35
|
-
* }, true); // include expired holds
|
|
29
|
+
* }, true);
|
|
36
30
|
* ```
|
|
37
31
|
*
|
|
38
32
|
* @category Services
|
|
39
33
|
* @since 5.15.0
|
|
40
34
|
*/
|
|
41
|
-
import type { TokenBalanceResult
|
|
35
|
+
import type { TokenBalanceResult } from '../types/user.dto';
|
|
42
36
|
import type { HttpClient } from '../utils/http';
|
|
43
37
|
import { BaseService } from './BaseService';
|
|
44
38
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* @param holds Array of token holds
|
|
48
|
-
* @returns Total quantity as decimal string
|
|
49
|
-
*/
|
|
50
|
-
declare function sumHoldQuantities(holds: TokenHold[]): string;
|
|
51
|
-
/**
|
|
52
|
-
* Filter out expired holds based on current timestamp
|
|
53
|
-
*
|
|
54
|
-
* @param holds Array of token holds
|
|
55
|
-
* @param withExpired If true, return all holds including expired
|
|
56
|
-
* @returns Filtered array of holds
|
|
57
|
-
*/
|
|
58
|
-
declare function filterHolds(holds: TokenHold[], withExpired: boolean): TokenHold[];
|
|
59
|
-
/**
|
|
60
|
-
* Calculate available (unlocked, not in-use) quantity
|
|
61
|
-
*
|
|
62
|
-
* @param total Total quantity held
|
|
63
|
-
* @param locked Quantity locked (from lockedHolds)
|
|
64
|
-
* @param inUse Quantity in use (from inUseHolds)
|
|
65
|
-
* @returns Available quantity as decimal string
|
|
66
|
-
*/
|
|
67
|
-
declare function calculateAvailableQuantity(total: string, locked?: string, inUse?: string): string;
|
|
68
|
-
/**
|
|
69
|
-
* Balance query request parameters
|
|
39
|
+
* Balance query request parameters: the owner and the token class. (The chain's `FetchBalances`
|
|
40
|
+
* takes no instance: a body that names one is refused.)
|
|
70
41
|
*/
|
|
71
42
|
export interface BalanceQueryParams {
|
|
72
43
|
owner: string;
|
|
@@ -74,7 +45,6 @@ export interface BalanceQueryParams {
|
|
|
74
45
|
category: string;
|
|
75
46
|
additionalKey: string;
|
|
76
47
|
type: string;
|
|
77
|
-
instance: string;
|
|
78
48
|
}
|
|
79
49
|
/**
|
|
80
50
|
* GalaChain Balance Service
|
|
@@ -89,67 +59,25 @@ export declare class GalaChainBalanceService extends BaseService {
|
|
|
89
59
|
* @param debug - Enable debug logging (default: false)
|
|
90
60
|
*/
|
|
91
61
|
constructor(http: HttpClient, debug?: boolean);
|
|
92
|
-
/**
|
|
93
|
-
* Determines the GalaChain channel for a given token collection.
|
|
94
|
-
* Most tokens are on the asset channel, but some tokens like MUSIC
|
|
95
|
-
* are on their own dedicated channels.
|
|
96
|
-
*
|
|
97
|
-
* @param collection - Token collection name (e.g., "$GMUSIC", "$MUSIC", "ANIME")
|
|
98
|
-
* @returns Channel name: 'asset', 'music', etc.
|
|
99
|
-
*/
|
|
100
|
-
private getChannelForCollection;
|
|
101
62
|
/**
|
|
102
63
|
* Fetches GALA balance for a user from GalaChain
|
|
103
64
|
*
|
|
104
|
-
* Uses the GalaChain FetchBalances endpoint with GALA token parameters.
|
|
105
|
-
*
|
|
106
65
|
* @param requestBody Balance query parameters
|
|
107
66
|
* @returns Promise<TokenBalanceResult | null> Clean balance information or null if not held
|
|
108
|
-
* @throws
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const balance = await balanceService.fetchGalaBalance({
|
|
113
|
-
* owner: "eth|1234567890abcdef1234567890abcdef12345678",
|
|
114
|
-
* collection: "GALA",
|
|
115
|
-
* category: "Unit",
|
|
116
|
-
* additionalKey: "none",
|
|
117
|
-
* type: "none",
|
|
118
|
-
* instance: "0"
|
|
119
|
-
* });
|
|
120
|
-
* ```
|
|
67
|
+
* @throws NetworkError if balance fetch fails
|
|
121
68
|
*/
|
|
122
69
|
fetchGalaBalance(requestBody: BalanceQueryParams): Promise<TokenBalanceResult | null>;
|
|
123
70
|
/**
|
|
124
|
-
* Fetches token balance for any token from GalaChain
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* Returns balance information including locked/in-use holds and computed available quantity.
|
|
71
|
+
* Fetches token balance for any token from GalaChain (`FetchBalances`), with the holds in force
|
|
72
|
+
* (locked, in use) and the quantity they leave available. MUSIC (`$MUSIC`) is read on the
|
|
73
|
+
* gateway's music channel, every other token on the asset channel.
|
|
128
74
|
*
|
|
129
75
|
* @param requestBody Balance query parameters
|
|
130
76
|
* @param withExpired If true, include expired holds in results (default: false)
|
|
131
|
-
* @returns Promise<TokenBalanceResult | null>
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* @example
|
|
135
|
-
* ```typescript
|
|
136
|
-
* const balance = await balanceService.fetchTokenBalance({
|
|
137
|
-
* owner: "eth|1234567890abcdef1234567890abcdef12345678",
|
|
138
|
-
* collection: "ANIME",
|
|
139
|
-
* category: "Unit",
|
|
140
|
-
* additionalKey: "none",
|
|
141
|
-
* type: "none",
|
|
142
|
-
* instance: "0"
|
|
143
|
-
* });
|
|
144
|
-
*
|
|
145
|
-
* // Check lock details
|
|
146
|
-
* if (balance?.lockedHolds?.length) {
|
|
147
|
-
* console.log('Locked:', balance.lockedQuantity);
|
|
148
|
-
* console.log('Available:', balance.availableQuantity);
|
|
149
|
-
* }
|
|
150
|
-
* ```
|
|
77
|
+
* @returns Promise<TokenBalanceResult | null> The balance, or null when it is not held (no record,
|
|
78
|
+
* a zero quantity, or a gateway answer that is not a usable balance list)
|
|
79
|
+
* @throws NetworkError if the request fails (HTTP error, network) or the owner is not a GalaChain user
|
|
151
80
|
*/
|
|
152
81
|
fetchTokenBalance(requestBody: BalanceQueryParams, withExpired?: boolean): Promise<TokenBalanceResult | null>;
|
|
153
82
|
}
|
|
154
|
-
export { calculateAvailableQuantity, filterHolds, sumHoldQuantities };
|
|
155
83
|
//# sourceMappingURL=GalaChainBalanceService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalaChainBalanceService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainBalanceService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GalaChainBalanceService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainBalanceService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,WAAW;IACtD;;;;;OAKG;gBACS,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,OAAe;IAIpD;;;;;;OAMG;IACG,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAI3F;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,WAAW,EAAE,kBAAkB,EAC/B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAsBtC"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Service responsible for token locking and unlocking operations on GalaChain.
|
|
5
5
|
* Extracted from GalaChainService for single responsibility.
|
|
6
6
|
*
|
|
7
|
+
* The writes themselves are `@gala-chain/gala-core-sdk`'s `GatewayWrites` (DTO, signature, the
|
|
8
|
+
* POST and the reading of GalaChain's answer); this service keeps the launchpad API on top of it:
|
|
9
|
+
* its input checks, launchpad token-name resolution, its result shapes and its error classes.
|
|
10
|
+
*
|
|
7
11
|
* Features:
|
|
8
12
|
* - Batch token locking (staking, escrow, vesting)
|
|
9
13
|
* - Batch token unlocking
|
|
@@ -32,29 +36,14 @@
|
|
|
32
36
|
* @since 5.15.0
|
|
33
37
|
*/
|
|
34
38
|
import '../utils/errors';
|
|
35
|
-
import type { Wallet } from 'ethers';
|
|
36
39
|
import type { LockTokensData, LockTokensResult, UnlockTokensData, UnlockTokensResult } from '../types/lock.dto';
|
|
37
|
-
import
|
|
38
|
-
import { BaseService } from './BaseService';
|
|
39
|
-
import type { TokenResolverService } from './TokenResolverService';
|
|
40
|
+
import { GatewayWriteService } from './gateway-writes';
|
|
40
41
|
/**
|
|
41
42
|
* GalaChain Lock Service
|
|
42
43
|
*
|
|
43
44
|
* Handles all token locking and unlocking operations on GalaChain.
|
|
44
45
|
*/
|
|
45
|
-
export declare class GalaChainLockService extends
|
|
46
|
-
private readonly wallet;
|
|
47
|
-
private readonly tokenResolver;
|
|
48
|
-
private readonly nativeSigner;
|
|
49
|
-
/**
|
|
50
|
-
* Initialize GalaChain Lock Service
|
|
51
|
-
*
|
|
52
|
-
* @param http - HTTP client configured for GalaChain gateway
|
|
53
|
-
* @param wallet - Ethers wallet for signing transactions (optional for read-only operations)
|
|
54
|
-
* @param tokenResolver - Token resolver service for vault address resolution
|
|
55
|
-
* @param debug - Enable debug logging (default: false)
|
|
56
|
-
*/
|
|
57
|
-
constructor(http: HttpClient, wallet: Wallet | undefined, tokenResolver: TokenResolverService, debug?: boolean);
|
|
46
|
+
export declare class GalaChainLockService extends GatewayWriteService {
|
|
58
47
|
/**
|
|
59
48
|
* Lock tokens on GalaChain (batch operation)
|
|
60
49
|
*
|
|
@@ -64,7 +53,7 @@ export declare class GalaChainLockService extends BaseService {
|
|
|
64
53
|
* or other hold scenarios.
|
|
65
54
|
*
|
|
66
55
|
* @param data - Lock parameters containing array of tokens to lock
|
|
67
|
-
* @returns LockTokensResult with transaction ID and locked token details
|
|
56
|
+
* @returns LockTokensResult with transaction ID, block (when the gateway sends it) and locked token details
|
|
68
57
|
*
|
|
69
58
|
* @example
|
|
70
59
|
* ```typescript
|
|
@@ -94,7 +83,7 @@ export declare class GalaChainLockService extends BaseService {
|
|
|
94
83
|
* or was designated as lock authority).
|
|
95
84
|
*
|
|
96
85
|
* @param data - Unlock parameters containing array of tokens to unlock
|
|
97
|
-
* @returns UnlockTokensResult with transaction ID and unlocked token details
|
|
86
|
+
* @returns UnlockTokensResult with transaction ID, block (when the gateway sends it) and unlocked token details
|
|
98
87
|
*
|
|
99
88
|
* @example
|
|
100
89
|
* ```typescript
|
|
@@ -115,6 +104,12 @@ export declare class GalaChainLockService extends BaseService {
|
|
|
115
104
|
* @throws {LockError} When validation fails or unlock operation is rejected
|
|
116
105
|
*/
|
|
117
106
|
unlockTokens(data: UnlockTokensData): Promise<UnlockTokensResult>;
|
|
107
|
+
/**
|
|
108
|
+
* GalaChain's answer to a lock or unlock must carry `Status: 1`. Called with every answer, the
|
|
109
|
+
* ones core accepted and the ones it refused, so a refused answer is reported exactly as this
|
|
110
|
+
* service always reported it.
|
|
111
|
+
*/
|
|
112
|
+
private assertLockAnswer;
|
|
118
113
|
private validateSharedTokenEntry;
|
|
119
114
|
/**
|
|
120
115
|
* Validate lock tokens data (batch operation)
|
|
@@ -124,6 +119,11 @@ export declare class GalaChainLockService extends BaseService {
|
|
|
124
119
|
* Validate unlock tokens data (batch operation)
|
|
125
120
|
*/
|
|
126
121
|
private validateUnlockTokensData;
|
|
122
|
+
/**
|
|
123
|
+
* The transaction id of a lock or unlock: the gateway's `x-transaction-id` (core's receipt),
|
|
124
|
+
* else the first `Data` item's id.
|
|
125
|
+
*/
|
|
126
|
+
private transactionIdOf;
|
|
127
127
|
/**
|
|
128
128
|
* Extract lock result from GalaChain response
|
|
129
129
|
*/
|
|
@@ -142,6 +142,5 @@ export declare class GalaChainLockService extends BaseService {
|
|
|
142
142
|
*/
|
|
143
143
|
private resolveTokenInstance;
|
|
144
144
|
private resolveTokenEntry;
|
|
145
|
-
private createTokenOperationContext;
|
|
146
145
|
}
|
|
147
146
|
//# sourceMappingURL=GalaChainLockService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalaChainLockService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainLockService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GalaChainLockService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainLockService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAGV,cAAc,EACd,gBAAgB,EAIhB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAoB3B,OAAO,EAEL,mBAAmB,EAIpB,MAAM,kBAAkB,CAAC;AAY1B;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;IAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+EjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkEvE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAwDvB;;;OAGG;YACW,oBAAoB;YAqBpB,iBAAiB;CAchC"}
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
* - GalaChainTransferService: Token transfers and burns
|
|
13
13
|
*
|
|
14
14
|
* Features:
|
|
15
|
-
* - Pool details fetching (for bonding curves)
|
|
16
15
|
* - GALA balance queries
|
|
17
16
|
* - Token balance queries
|
|
18
17
|
* - GALA transfers with EIP-712 signatures
|
|
@@ -24,19 +23,13 @@
|
|
|
24
23
|
* ```typescript
|
|
25
24
|
* const galaChainService = new GalaChainService(galaChainHttp, wallet);
|
|
26
25
|
*
|
|
27
|
-
* // Fetch pool details for bonding curve
|
|
28
|
-
* const poolDetails = await galaChainService.fetchPoolDetails({
|
|
29
|
-
* vaultAddress: "service|Token$Unit$MYSYMBOL$address$launchpad"
|
|
30
|
-
* });
|
|
31
|
-
*
|
|
32
26
|
* // Get GALA balance
|
|
33
27
|
* const balance = await galaChainService.fetchGalaBalance({
|
|
34
28
|
* owner: "eth|1234567890abcdef1234567890abcdef12345678",
|
|
35
29
|
* collection: "GALA",
|
|
36
30
|
* category: "Unit",
|
|
37
31
|
* additionalKey: "none",
|
|
38
|
-
* type: "none"
|
|
39
|
-
* instance: "0"
|
|
32
|
+
* type: "none"
|
|
40
33
|
* });
|
|
41
34
|
*
|
|
42
35
|
* // Transfer tokens
|
|
@@ -49,19 +42,18 @@
|
|
|
49
42
|
* });
|
|
50
43
|
* ```
|
|
51
44
|
*/
|
|
52
|
-
import type
|
|
45
|
+
import { type GalaChainTokenClass, type GalaChainTokenClassKey, type GalaChainTokenDetails } from '@gala-chain/gala-core-sdk';
|
|
53
46
|
import type { AxiosInstance } from 'axios';
|
|
54
47
|
import type { Wallet } from 'ethers';
|
|
55
48
|
import type { BurnTokensData, BurnTokensResult } from '../types/burn.dto';
|
|
56
|
-
import type {
|
|
57
|
-
import type { TokenClassWithSupply } from '../types/launchpad.dto';
|
|
49
|
+
import type { TokenId } from '../types/common';
|
|
58
50
|
import type { LockTokensData, LockTokensResult, UnlockTokensData, UnlockTokensResult } from '../types/lock.dto';
|
|
59
|
-
import type { FetchPoolDetailsData, InternalFetchPoolDetailsResponse } from '../types/trade.dto';
|
|
60
51
|
import type { GalaChainTransferReceipt, TransferGalaData, TransferTokenData } from '../types/transfer.dto';
|
|
61
52
|
import type { TokenBalanceResult } from '../types/user.dto';
|
|
62
53
|
import type { HttpClient } from '../utils/http';
|
|
63
54
|
import { BaseService } from './BaseService';
|
|
64
55
|
import type { BalanceQueryParams } from './GalaChainBalanceService';
|
|
56
|
+
import type { GatewayWriter } from './gateway-writes';
|
|
65
57
|
import type { TokenResolverService } from './TokenResolverService';
|
|
66
58
|
/**
|
|
67
59
|
* GalaChain Service for blockchain operations (Facade Pattern)
|
|
@@ -82,50 +74,9 @@ export declare class GalaChainService extends BaseService {
|
|
|
82
74
|
* @param tokenResolver - Token resolver service for vault address resolution
|
|
83
75
|
* @param debug - Enable debug logging (default: false)
|
|
84
76
|
* @param publicAxios - Unauthenticated axios instance for public token queries
|
|
77
|
+
* @param writer - For an SDK with no wallet: the signer and declared identity of its token writes
|
|
85
78
|
*/
|
|
86
|
-
constructor(http: HttpClient, wallet: Wallet | undefined, tokenResolver: TokenResolverService, debug?: boolean, publicAxios?: AxiosInstance);
|
|
87
|
-
/**
|
|
88
|
-
* Fetches pool details by vault address from GalaChain
|
|
89
|
-
*
|
|
90
|
-
* Internal method for fetching pool details by vault address
|
|
91
|
-
* Used internally after vault resolution
|
|
92
|
-
*
|
|
93
|
-
* @param data Fetch pool details data with vault address
|
|
94
|
-
* @returns Promise<InternalFetchPoolDetailsResponse> Current trading pool state
|
|
95
|
-
* @throws ValidationError if input validation fails
|
|
96
|
-
* @throws Error if pool details fetch fails
|
|
97
|
-
*
|
|
98
|
-
* @example
|
|
99
|
-
* ```typescript
|
|
100
|
-
* const poolDetails = await galaChainService.fetchPoolDetails({
|
|
101
|
-
* vaultAddress: "service|Token$Unit$MYSYMBOL$eth:address$launchpad"
|
|
102
|
-
* });
|
|
103
|
-
* console.log('GALA in vault:', poolDetails.Data.nativeTokenQuantity);
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
fetchPoolDetails(data: FetchPoolDetailsData): Promise<InternalFetchPoolDetailsResponse>;
|
|
107
|
-
/**
|
|
108
|
-
* Fetch the current launch token fee
|
|
109
|
-
*
|
|
110
|
-
* Returns the GALA fee required to launch a new token on the launchpad.
|
|
111
|
-
* This is a dynamic value that may change based on network conditions.
|
|
112
|
-
*
|
|
113
|
-
* @returns Promise resolving to fee amount in GALA (e.g., 0.001)
|
|
114
|
-
* @throws {Error} Network errors from HTTP request failures
|
|
115
|
-
* @throws {Error} Authentication errors if credentials are invalid
|
|
116
|
-
* @throws {Error} API errors when Status !== 1 in response
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* const fee = await galaChainService.fetchLaunchTokenFee();
|
|
121
|
-
* console.log(`Launch fee: ${fee} GALA`);
|
|
122
|
-
* ```
|
|
123
|
-
*/
|
|
124
|
-
fetchLaunchTokenFee(): Promise<number>;
|
|
125
|
-
/**
|
|
126
|
-
* Validates fetch pool details data
|
|
127
|
-
*/
|
|
128
|
-
private validateFetchPoolDetailsData;
|
|
79
|
+
constructor(http: HttpClient, wallet: Wallet | undefined, tokenResolver: TokenResolverService, debug?: boolean, publicAxios?: AxiosInstance, writer?: GatewayWriter);
|
|
129
80
|
/**
|
|
130
81
|
* Fetches GALA balance for a user from GalaChain
|
|
131
82
|
*
|
|
@@ -142,8 +93,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
142
93
|
* collection: "GALA",
|
|
143
94
|
* category: "Unit",
|
|
144
95
|
* additionalKey: "none",
|
|
145
|
-
* type: "none"
|
|
146
|
-
* instance: "0"
|
|
96
|
+
* type: "none"
|
|
147
97
|
* });
|
|
148
98
|
* ```
|
|
149
99
|
*/
|
|
@@ -166,8 +116,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
166
116
|
* collection: "ANIME",
|
|
167
117
|
* category: "Unit",
|
|
168
118
|
* additionalKey: "none",
|
|
169
|
-
* type: "none"
|
|
170
|
-
* instance: "0"
|
|
119
|
+
* type: "none"
|
|
171
120
|
* });
|
|
172
121
|
*
|
|
173
122
|
* // Check lock details
|
|
@@ -188,7 +137,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
188
137
|
* Supports both native tokens (GALA, etc.) and wrapped DEX tokens.
|
|
189
138
|
*
|
|
190
139
|
* @param tokenId Token identifier (string or TokenClassKey format)
|
|
191
|
-
* @returns Promise<
|
|
140
|
+
* @returns Promise<GalaChainTokenClass> Complete token metadata from GalaChain
|
|
192
141
|
* @throws ValidationError if tokenId validation fails
|
|
193
142
|
* @throws Error if token fetch fails or token not found
|
|
194
143
|
*
|
|
@@ -209,7 +158,22 @@ export declare class GalaChainService extends BaseService {
|
|
|
209
158
|
* console.log(`Symbol: ${gusdc.symbol}`); // "GUSDC"
|
|
210
159
|
* ```
|
|
211
160
|
*/
|
|
212
|
-
fetchTokenClassFromChain(tokenId: string |
|
|
161
|
+
fetchTokenClassFromChain(tokenId: string | GalaChainTokenClassKey): Promise<GalaChainTokenClass>;
|
|
162
|
+
/**
|
|
163
|
+
* A token's details (symbol, decimals, name, image, description, network, contract address) from
|
|
164
|
+
* its GalaChain token class, as gala-core-sdk's `tokenDetailsOf` maps them.
|
|
165
|
+
*
|
|
166
|
+
* @param tokenId Token identifier (pipe string, class key or instance key)
|
|
167
|
+
* @returns The token's details
|
|
168
|
+
* @throws NetworkError if the read fails or the token class is not found
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const details = await galaChainService.fetchTokenDetails('GUSDC|Unit|none|none');
|
|
173
|
+
* console.log(details.symbol, details.decimals);
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
fetchTokenDetails(tokenId: TokenId): Promise<GalaChainTokenDetails>;
|
|
213
177
|
/**
|
|
214
178
|
* Fetch supply information for one or more token classes from GalaChain
|
|
215
179
|
*
|
|
@@ -220,7 +184,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
220
184
|
* - Token metadata (symbol, decimals, name)
|
|
221
185
|
*
|
|
222
186
|
* @param tokenClasses - Array of token class keys to query
|
|
223
|
-
* @returns Promise<
|
|
187
|
+
* @returns Promise<GalaChainTokenClass[]> Array of token classes with supply information
|
|
224
188
|
* @throws {ValidationError} if tokenClasses array is empty
|
|
225
189
|
* @throws {Error} if network request fails or GalaChain returns error status
|
|
226
190
|
*
|
|
@@ -234,7 +198,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
234
198
|
* console.log(`${supplies[0].symbol}: ${supplies[0].totalSupply}`);
|
|
235
199
|
* ```
|
|
236
200
|
*/
|
|
237
|
-
fetchTokenClassesWithSupply(tokenClasses:
|
|
201
|
+
fetchTokenClassesWithSupply(tokenClasses: GalaChainTokenClassKey[]): Promise<GalaChainTokenClass[]>;
|
|
238
202
|
/**
|
|
239
203
|
* Transfer GALA tokens between wallets
|
|
240
204
|
*
|
|
@@ -305,7 +269,7 @@ export declare class GalaChainService extends BaseService {
|
|
|
305
269
|
*
|
|
306
270
|
* @throws {TransferError} When token name cannot be resolved
|
|
307
271
|
*/
|
|
308
|
-
resolveTokenClassKey(tokenName: string): Promise<
|
|
272
|
+
resolveTokenClassKey(tokenName: string): Promise<GalaChainTokenClassKey>;
|
|
309
273
|
/**
|
|
310
274
|
* Lock tokens on GalaChain (batch operation)
|
|
311
275
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"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"}
|