@gala-chain/launchpad-sdk 8.1.0 → 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.
Files changed (252) hide show
  1. package/CHANGELOG.md +362 -0
  2. package/EXAMPLES.md +95 -681
  3. package/MIGRATING-TO-9.0.md +301 -0
  4. package/README.md +46 -17
  5. package/dist/LaunchpadSDK.d.ts +138 -413
  6. package/dist/LaunchpadSDK.d.ts.map +1 -1
  7. package/dist/api/LaunchpadAPI.d.ts +5 -37
  8. package/dist/api/LaunchpadAPI.d.ts.map +1 -1
  9. package/dist/auth/SignatureAuth.d.ts +2 -2
  10. package/dist/auth/SignatureAuth.d.ts.map +1 -1
  11. package/dist/auth/types.d.ts +1 -1
  12. package/dist/auth/types.d.ts.map +1 -1
  13. package/dist/config/environments.d.ts +7 -2
  14. package/dist/config/environments.d.ts.map +1 -1
  15. package/dist/constants/decimals.d.ts +0 -23
  16. package/dist/constants/decimals.d.ts.map +1 -1
  17. package/dist/constants/endpoints.d.ts +0 -7
  18. package/dist/constants/endpoints.d.ts.map +1 -1
  19. package/dist/constants/version.generated.d.ts +1 -1
  20. package/dist/constants/version.generated.d.ts.map +1 -1
  21. package/dist/helpers/sdk.d.ts.map +1 -1
  22. package/dist/index.browser.d.ts +8 -22
  23. package/dist/index.browser.d.ts.map +1 -1
  24. package/dist/index.browser.esm.js +1 -1
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.esm.js +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.node.d.ts +4 -5
  29. package/dist/index.node.d.ts.map +1 -1
  30. package/dist/launchpad/bundle-submission.d.ts +1 -9
  31. package/dist/launchpad/bundle-submission.d.ts.map +1 -1
  32. package/dist/launchpad/transport.d.ts +2 -1
  33. package/dist/launchpad/transport.d.ts.map +1 -1
  34. package/dist/native.cjs +1 -1
  35. package/dist/native.d.ts +3 -4
  36. package/dist/native.d.ts.map +1 -1
  37. package/dist/native.esm.js +1 -1
  38. package/dist/schemas/user.d.ts +0 -15
  39. package/dist/schemas/user.d.ts.map +1 -1
  40. package/dist/services/AbstractCacheService.d.ts +2 -2
  41. package/dist/services/GalaChainBalanceService.d.ts +17 -89
  42. package/dist/services/GalaChainBalanceService.d.ts.map +1 -1
  43. package/dist/services/GalaChainLockService.d.ts +19 -20
  44. package/dist/services/GalaChainLockService.d.ts.map +1 -1
  45. package/dist/services/GalaChainService.d.ts +28 -15
  46. package/dist/services/GalaChainService.d.ts.map +1 -1
  47. package/dist/services/GalaChainTokenService.d.ts +25 -53
  48. package/dist/services/GalaChainTokenService.d.ts.map +1 -1
  49. package/dist/services/GalaChainTransferService.d.ts +42 -41
  50. package/dist/services/GalaChainTransferService.d.ts.map +1 -1
  51. package/dist/services/LaunchpadPriceService.d.ts +66 -0
  52. package/dist/services/LaunchpadPriceService.d.ts.map +1 -0
  53. package/dist/services/NftCollectionService.d.ts +22 -6
  54. package/dist/services/NftCollectionService.d.ts.map +1 -1
  55. package/dist/services/TokenResolverService.d.ts +5 -5
  56. package/dist/services/TokenResolverService.d.ts.map +1 -1
  57. package/dist/services/gateway-transport.d.ts +32 -0
  58. package/dist/services/gateway-transport.d.ts.map +1 -0
  59. package/dist/services/gateway-writes.d.ts +83 -0
  60. package/dist/services/gateway-writes.d.ts.map +1 -0
  61. package/dist/signing/index.d.ts +2 -3
  62. package/dist/signing/index.d.ts.map +1 -1
  63. package/dist/signing/signers.d.ts +7 -8
  64. package/dist/signing/signers.d.ts.map +1 -1
  65. package/dist/signing/types.d.ts +7 -10
  66. package/dist/signing/types.d.ts.map +1 -1
  67. package/dist/types/burn.dto.d.ts +4 -2
  68. package/dist/types/burn.dto.d.ts.map +1 -1
  69. package/dist/types/common.d.ts +2 -23
  70. package/dist/types/common.d.ts.map +1 -1
  71. package/dist/types/dto.d.ts +0 -5
  72. package/dist/types/dto.d.ts.map +1 -1
  73. package/dist/types/launchpad.dto.d.ts +0 -257
  74. package/dist/types/launchpad.dto.d.ts.map +1 -1
  75. package/dist/types/lock.dto.d.ts +12 -7
  76. package/dist/types/lock.dto.d.ts.map +1 -1
  77. package/dist/types/options.dto.d.ts +8 -34
  78. package/dist/types/options.dto.d.ts.map +1 -1
  79. package/dist/types/user.dto.d.ts +7 -62
  80. package/dist/types/user.dto.d.ts.map +1 -1
  81. package/dist/utils/address-formatter.d.ts +10 -2
  82. package/dist/utils/address-formatter.d.ts.map +1 -1
  83. package/dist/utils/agent-config.d.ts +9 -4
  84. package/dist/utils/agent-config.d.ts.map +1 -1
  85. package/dist/utils/auto-pagination.d.ts +6 -239
  86. package/dist/utils/auto-pagination.d.ts.map +1 -1
  87. package/dist/utils/bignumber-helpers.d.ts +3 -2
  88. package/dist/utils/bignumber-helpers.d.ts.map +1 -1
  89. package/dist/utils/delimiter-parser.d.ts +0 -13
  90. package/dist/utils/delimiter-parser.d.ts.map +1 -1
  91. package/dist/utils/error-patterns.d.ts +0 -47
  92. package/dist/utils/error-patterns.d.ts.map +1 -1
  93. package/dist/utils/error-wrapper.d.ts +5 -5
  94. package/dist/utils/errors.d.ts +0 -308
  95. package/dist/utils/errors.d.ts.map +1 -1
  96. package/dist/utils/http.d.ts +15 -3
  97. package/dist/utils/http.d.ts.map +1 -1
  98. package/dist/utils/token-format-converter.d.ts +1 -1
  99. package/dist/utils/token-parser.d.ts +6 -127
  100. package/dist/utils/token-parser.d.ts.map +1 -1
  101. package/dist/utils/token-stringification.d.ts +7 -7
  102. package/dist/utils/token-stringification.d.ts.map +1 -1
  103. package/dist/utils/tokenNameNormalizer.d.ts +2 -2
  104. package/dist/utils/tokenNormalizer.d.ts +5 -29
  105. package/dist/utils/tokenNormalizer.d.ts.map +1 -1
  106. package/dist/utils/unique-key-generator.d.ts +7 -134
  107. package/dist/utils/unique-key-generator.d.ts.map +1 -1
  108. package/dist/utils/validation-helpers.d.ts +3 -5
  109. package/dist/utils/validation-helpers.d.ts.map +1 -1
  110. package/package.json +47 -87
  111. package/dist/api/dto/BurnTokensDto.d.ts +0 -77
  112. package/dist/api/dto/BurnTokensDto.d.ts.map +0 -1
  113. package/dist/api/dto/LockTokenDto.d.ts +0 -85
  114. package/dist/api/dto/LockTokenDto.d.ts.map +0 -1
  115. package/dist/api/dto/TransferTokenDto.d.ts +0 -64
  116. package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
  117. package/dist/api/dto/UnlockTokenDto.d.ts +0 -74
  118. package/dist/api/dto/UnlockTokenDto.d.ts.map +0 -1
  119. package/dist/bridge/BridgeService.d.ts +0 -484
  120. package/dist/bridge/BridgeService.d.ts.map +0 -1
  121. package/dist/bridge/GalaConnectClient.d.ts +0 -170
  122. package/dist/bridge/GalaConnectClient.d.ts.map +0 -1
  123. package/dist/bridge/constants/index.d.ts +0 -7
  124. package/dist/bridge/constants/index.d.ts.map +0 -1
  125. package/dist/bridge/constants/tokens.d.ts +0 -212
  126. package/dist/bridge/constants/tokens.d.ts.map +0 -1
  127. package/dist/bridge/index.d.ts +0 -24
  128. package/dist/bridge/index.d.ts.map +0 -1
  129. package/dist/bridge/public-types.d.ts +0 -2
  130. package/dist/bridge/public-types.d.ts.map +0 -1
  131. package/dist/bridge/strategies/BridgeStrategy.d.ts +0 -204
  132. package/dist/bridge/strategies/BridgeStrategy.d.ts.map +0 -1
  133. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts +0 -178
  134. package/dist/bridge/strategies/EthereumBridgeStrategy.d.ts.map +0 -1
  135. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts +0 -236
  136. package/dist/bridge/strategies/SolanaBridgeStrategy.d.ts.map +0 -1
  137. package/dist/bridge/types/bridge.dto.d.ts +0 -772
  138. package/dist/bridge/types/bridge.dto.d.ts.map +0 -1
  139. package/dist/bridge/types/bridgeable-token.dto.d.ts +0 -209
  140. package/dist/bridge/types/bridgeable-token.dto.d.ts.map +0 -1
  141. package/dist/bridge/types/eip712.d.ts +0 -66
  142. package/dist/bridge/types/eip712.d.ts.map +0 -1
  143. package/dist/bridge/types/index.d.ts +0 -8
  144. package/dist/bridge/types/index.d.ts.map +0 -1
  145. package/dist/bridge/utils/RateLimiter.d.ts +0 -34
  146. package/dist/bridge/utils/RateLimiter.d.ts.map +0 -1
  147. package/dist/bridge/utils/address-formatter.d.ts +0 -25
  148. package/dist/bridge/utils/address-formatter.d.ts.map +0 -1
  149. package/dist/bridge/utils/addressValidation.d.ts +0 -200
  150. package/dist/bridge/utils/addressValidation.d.ts.map +0 -1
  151. package/dist/bridge/utils/balanceHelpers.d.ts +0 -215
  152. package/dist/bridge/utils/balanceHelpers.d.ts.map +0 -1
  153. package/dist/bridge/utils/bridgeErrors.d.ts +0 -98
  154. package/dist/bridge/utils/bridgeErrors.d.ts.map +0 -1
  155. package/dist/bridge/utils/bridgeOutHelpers.d.ts +0 -68
  156. package/dist/bridge/utils/bridgeOutHelpers.d.ts.map +0 -1
  157. package/dist/bridge/utils/bridgePayload.d.ts +0 -98
  158. package/dist/bridge/utils/bridgePayload.d.ts.map +0 -1
  159. package/dist/bridge/utils/bridgeStatusParser.d.ts +0 -76
  160. package/dist/bridge/utils/bridgeStatusParser.d.ts.map +0 -1
  161. package/dist/bridge/utils/eip712Helpers.d.ts +0 -66
  162. package/dist/bridge/utils/eip712Helpers.d.ts.map +0 -1
  163. package/dist/bridge/utils/index.d.ts +0 -19
  164. package/dist/bridge/utils/index.d.ts.map +0 -1
  165. package/dist/bridge/utils/retry.d.ts +0 -112
  166. package/dist/bridge/utils/retry.d.ts.map +0 -1
  167. package/dist/bridge/utils/strategyDelegation.d.ts +0 -126
  168. package/dist/bridge/utils/strategyDelegation.d.ts.map +0 -1
  169. package/dist/bridge/utils/tokenIdUtils.d.ts +0 -86
  170. package/dist/bridge/utils/tokenIdUtils.d.ts.map +0 -1
  171. package/dist/bridge/utils/tokenMath.d.ts +0 -39
  172. package/dist/bridge/utils/tokenMath.d.ts.map +0 -1
  173. package/dist/bridge/utils/tokenMetadataResolver.d.ts +0 -97
  174. package/dist/bridge/utils/tokenMetadataResolver.d.ts.map +0 -1
  175. package/dist/helpers/wallet.d.ts +0 -151
  176. package/dist/helpers/wallet.d.ts.map +0 -1
  177. package/dist/react/WalletContext.d.ts +0 -60
  178. package/dist/react/WalletContext.d.ts.map +0 -1
  179. package/dist/react/index.d.ts +0 -65
  180. package/dist/react/index.d.ts.map +0 -1
  181. package/dist/react/types.d.ts +0 -76
  182. package/dist/react/types.d.ts.map +0 -1
  183. package/dist/react/useWallet.d.ts +0 -123
  184. package/dist/react/useWallet.d.ts.map +0 -1
  185. package/dist/react/useWalletConnection.d.ts +0 -89
  186. package/dist/react/useWalletConnection.d.ts.map +0 -1
  187. package/dist/react/useWalletDetection.d.ts +0 -81
  188. package/dist/react/useWalletDetection.d.ts.map +0 -1
  189. package/dist/react.cjs +0 -1
  190. package/dist/react.esm.js +0 -1
  191. package/dist/services/AbstractTokenFetchService.d.ts +0 -150
  192. package/dist/services/AbstractTokenFetchService.d.ts.map +0 -1
  193. package/dist/services/BatchedCacheService.d.ts +0 -133
  194. package/dist/services/BatchedCacheService.d.ts.map +0 -1
  195. package/dist/services/BridgeableTokenCache.d.ts +0 -120
  196. package/dist/services/BridgeableTokenCache.d.ts.map +0 -1
  197. package/dist/services/BridgeableTokenService.d.ts +0 -218
  198. package/dist/services/BridgeableTokenService.d.ts.map +0 -1
  199. package/dist/services/DexService.d.ts +0 -440
  200. package/dist/services/DexService.d.ts.map +0 -1
  201. package/dist/services/NetworkKeyedCacheService.d.ts +0 -185
  202. package/dist/services/NetworkKeyedCacheService.d.ts.map +0 -1
  203. package/dist/services/PriceHistoryService.d.ts +0 -209
  204. package/dist/services/PriceHistoryService.d.ts.map +0 -1
  205. package/dist/services/WrapService.d.ts +0 -171
  206. package/dist/services/WrapService.d.ts.map +0 -1
  207. package/dist/services/WrappableTokenCache.d.ts +0 -100
  208. package/dist/services/WrappableTokenCache.d.ts.map +0 -1
  209. package/dist/services/WrappableTokenService.d.ts +0 -130
  210. package/dist/services/WrappableTokenService.d.ts.map +0 -1
  211. package/dist/setup.d.ts +0 -8
  212. package/dist/setup.d.ts.map +0 -1
  213. package/dist/tokens/transfers.d.ts +0 -95
  214. package/dist/tokens/transfers.d.ts.map +0 -1
  215. package/dist/types/galachain-api.types.d.ts +0 -297
  216. package/dist/types/galachain-api.types.d.ts.map +0 -1
  217. package/dist/types/priceHistory.dto.d.ts +0 -134
  218. package/dist/types/priceHistory.dto.d.ts.map +0 -1
  219. package/dist/types/token.types.d.ts +0 -359
  220. package/dist/types/token.types.d.ts.map +0 -1
  221. package/dist/types/wrappable-token.dto.d.ts +0 -305
  222. package/dist/types/wrappable-token.dto.d.ts.map +0 -1
  223. package/dist/utils/crypto-compat.d.ts +0 -40
  224. package/dist/utils/crypto-compat.d.ts.map +0 -1
  225. package/dist/utils/load-env.d.ts +0 -31
  226. package/dist/utils/load-env.d.ts.map +0 -1
  227. package/dist/utils/token-instance-key.d.ts +0 -57
  228. package/dist/utils/token-instance-key.d.ts.map +0 -1
  229. package/dist/utils/wallet.d.ts +0 -166
  230. package/dist/utils/wallet.d.ts.map +0 -1
  231. package/dist/wallet/ExternalWalletProvider.d.ts +0 -90
  232. package/dist/wallet/ExternalWalletProvider.d.ts.map +0 -1
  233. package/dist/wallet/GalaWalletProvider.d.ts +0 -122
  234. package/dist/wallet/GalaWalletProvider.d.ts.map +0 -1
  235. package/dist/wallet/PrivateKeyProvider.d.ts +0 -90
  236. package/dist/wallet/PrivateKeyProvider.d.ts.map +0 -1
  237. package/dist/wallet/detection.d.ts +0 -107
  238. package/dist/wallet/detection.d.ts.map +0 -1
  239. package/dist/wallet/event-handlers.d.ts +0 -50
  240. package/dist/wallet/event-handlers.d.ts.map +0 -1
  241. package/dist/wallet/index.d.ts +0 -51
  242. package/dist/wallet/index.d.ts.map +0 -1
  243. package/dist/wallet/signing-operation.d.ts +0 -19
  244. package/dist/wallet/signing-operation.d.ts.map +0 -1
  245. package/dist/wallet/typed-data-helpers.d.ts +0 -68
  246. package/dist/wallet/typed-data-helpers.d.ts.map +0 -1
  247. package/dist/wallet/types.d.ts +0 -267
  248. package/dist/wallet/types.d.ts.map +0 -1
  249. package/dist/wallet/utils.d.ts +0 -117
  250. package/dist/wallet/utils.d.ts.map +0 -1
  251. package/dist/wallet.cjs +0 -1
  252. package/dist/wallet.esm.js +0 -1
@@ -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,eAAe;;;;;;;;;iBAiB1B,CAAC;AAEH;;;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;AACtF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
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
- * Eliminates duplication across BridgeableTokenCache, WrappableTokenCache, and TokenMetadataCache
6
- * by providing a common interface and lifecycle management.
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
@@ -1,72 +1,43 @@
1
1
  /**
2
2
  * GalaChain Balance Service
3
3
  *
4
- * Service responsible for querying token balances from GalaChain.
5
- * Extracted from GalaChainService for single responsibility.
6
- *
7
- * Features:
8
- * - GALA balance queries
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
- * // Get any token balance with hold details
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
- * instance: "0"
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, TokenHold } from '../types/user.dto';
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
- * Sum the quantities of multiple token holds
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 Error if balance fetch fails
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
- * Generic method for querying token balances using the GalaChain FetchBalances endpoint.
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> Clean balance information or null if not held
132
- * @throws Error if balance fetch fails
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,KAAK,EAEV,kBAAkB,EAClB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAQrD;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,SAAS,EAAE,CAU1E;AAED;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAY,EACpB,KAAK,GAAE,MAAY,GAClB,MAAM,CAER;AAED;;GAEG;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;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,WAAW;IACtD;;;;;OAKG;gBACS,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,OAAe;IAIpD;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAI3F;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,iBAAiB,CACrB,WAAW,EAAE,kBAAkB,EAC/B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CA8FtC;AAGD,OAAO,EAAE,0BAA0B,EAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC"}
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 type { HttpClient } from '../utils/http';
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 BaseService {
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAC8B,cAAc,EACtD,gBAAgB,EAGE,gBAAgB,EAClC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAe/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAOhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAyBnE;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IAajD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAbhC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;;;;;OAOG;gBAED,IAAI,EAAE,UAAU,EACC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,oBAAoB,EACpD,KAAK,GAAE,OAAe;IAMxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+FvE,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;OAGG;YACW,oBAAoB;YA2BpB,iBAAiB;IAqB/B,OAAO,CAAC,2BAA2B;CASpC"}
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"}
@@ -29,8 +29,7 @@
29
29
  * collection: "GALA",
30
30
  * category: "Unit",
31
31
  * additionalKey: "none",
32
- * type: "none",
33
- * instance: "0"
32
+ * type: "none"
34
33
  * });
35
34
  *
36
35
  * // Transfer tokens
@@ -43,18 +42,18 @@
43
42
  * });
44
43
  * ```
45
44
  */
46
- import type { TokenClass } from '@gala-chain/api';
45
+ import { type GalaChainTokenClass, type GalaChainTokenClassKey, type GalaChainTokenDetails } from '@gala-chain/gala-core-sdk';
47
46
  import type { AxiosInstance } from 'axios';
48
47
  import type { Wallet } from 'ethers';
49
48
  import type { BurnTokensData, BurnTokensResult } from '../types/burn.dto';
50
- import type { TokenClassKey } from '../types/common';
51
- import type { TokenClassWithSupply } from '../types/launchpad.dto';
49
+ import type { TokenId } from '../types/common';
52
50
  import type { LockTokensData, LockTokensResult, UnlockTokensData, UnlockTokensResult } from '../types/lock.dto';
53
51
  import type { GalaChainTransferReceipt, TransferGalaData, TransferTokenData } from '../types/transfer.dto';
54
52
  import type { TokenBalanceResult } from '../types/user.dto';
55
53
  import type { HttpClient } from '../utils/http';
56
54
  import { BaseService } from './BaseService';
57
55
  import type { BalanceQueryParams } from './GalaChainBalanceService';
56
+ import type { GatewayWriter } from './gateway-writes';
58
57
  import type { TokenResolverService } from './TokenResolverService';
59
58
  /**
60
59
  * GalaChain Service for blockchain operations (Facade Pattern)
@@ -75,8 +74,9 @@ export declare class GalaChainService extends BaseService {
75
74
  * @param tokenResolver - Token resolver service for vault address resolution
76
75
  * @param debug - Enable debug logging (default: false)
77
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
78
78
  */
79
- constructor(http: HttpClient, wallet: Wallet | undefined, tokenResolver: TokenResolverService, debug?: boolean, publicAxios?: AxiosInstance);
79
+ constructor(http: HttpClient, wallet: Wallet | undefined, tokenResolver: TokenResolverService, debug?: boolean, publicAxios?: AxiosInstance, writer?: GatewayWriter);
80
80
  /**
81
81
  * Fetches GALA balance for a user from GalaChain
82
82
  *
@@ -93,8 +93,7 @@ export declare class GalaChainService extends BaseService {
93
93
  * collection: "GALA",
94
94
  * category: "Unit",
95
95
  * additionalKey: "none",
96
- * type: "none",
97
- * instance: "0"
96
+ * type: "none"
98
97
  * });
99
98
  * ```
100
99
  */
@@ -117,8 +116,7 @@ export declare class GalaChainService extends BaseService {
117
116
  * collection: "ANIME",
118
117
  * category: "Unit",
119
118
  * additionalKey: "none",
120
- * type: "none",
121
- * instance: "0"
119
+ * type: "none"
122
120
  * });
123
121
  *
124
122
  * // Check lock details
@@ -139,7 +137,7 @@ export declare class GalaChainService extends BaseService {
139
137
  * Supports both native tokens (GALA, etc.) and wrapped DEX tokens.
140
138
  *
141
139
  * @param tokenId Token identifier (string or TokenClassKey format)
142
- * @returns Promise<TokenClass> Complete token metadata from GalaChain
140
+ * @returns Promise<GalaChainTokenClass> Complete token metadata from GalaChain
143
141
  * @throws ValidationError if tokenId validation fails
144
142
  * @throws Error if token fetch fails or token not found
145
143
  *
@@ -160,7 +158,22 @@ export declare class GalaChainService extends BaseService {
160
158
  * console.log(`Symbol: ${gusdc.symbol}`); // "GUSDC"
161
159
  * ```
162
160
  */
163
- fetchTokenClassFromChain(tokenId: string | TokenClassKey): Promise<TokenClass>;
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>;
164
177
  /**
165
178
  * Fetch supply information for one or more token classes from GalaChain
166
179
  *
@@ -171,7 +184,7 @@ export declare class GalaChainService extends BaseService {
171
184
  * - Token metadata (symbol, decimals, name)
172
185
  *
173
186
  * @param tokenClasses - Array of token class keys to query
174
- * @returns Promise<TokenClassWithSupply[]> Array of token classes with supply information
187
+ * @returns Promise<GalaChainTokenClass[]> Array of token classes with supply information
175
188
  * @throws {ValidationError} if tokenClasses array is empty
176
189
  * @throws {Error} if network request fails or GalaChain returns error status
177
190
  *
@@ -185,7 +198,7 @@ export declare class GalaChainService extends BaseService {
185
198
  * console.log(`${supplies[0].symbol}: ${supplies[0].totalSupply}`);
186
199
  * ```
187
200
  */
188
- fetchTokenClassesWithSupply(tokenClasses: TokenClassKey[]): Promise<TokenClassWithSupply[]>;
201
+ fetchTokenClassesWithSupply(tokenClasses: GalaChainTokenClassKey[]): Promise<GalaChainTokenClass[]>;
189
202
  /**
190
203
  * Transfer GALA tokens between wallets
191
204
  *
@@ -256,7 +269,7 @@ export declare class GalaChainService extends BaseService {
256
269
  *
257
270
  * @throws {TransferError} When token name cannot be resolved
258
271
  */
259
- resolveTokenClassKey(tokenName: string): Promise<TokenClassKey>;
272
+ resolveTokenClassKey(tokenName: string): Promise<GalaChainTokenClassKey>;
260
273
  /**
261
274
  * Lock tokens on GalaChain (batch operation)
262
275
  *
@@ -1 +1 @@
1
- {"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,19 @@
1
1
  /**
2
2
  * GalaChain Token Service
3
3
  *
4
- * Service responsible for token metadata and class queries from GalaChain.
5
- * Extracted from GalaChainService for single responsibility.
6
- *
7
- * Features:
8
- * - Token class metadata fetching (symbol, decimals, name, image)
9
- * - Token supply information queries
10
- * - Support for both native and wrapped tokens
4
+ * Token classes from GalaChain (metadata and supply). The reads themselves (`FetchTokenClasses`,
5
+ * `FetchTokenClassesWithSupply`, the answer's checks) are `@gala-chain/gala-core-sdk`'s
6
+ * `GatewayReads`; this service keeps launchpad's token-id spellings, results and error contract on
7
+ * top of it, and sends the reads through the SDK's unauthenticated gateway axios instance exactly
8
+ * as before.
11
9
  *
12
10
  * @example
13
11
  * ```typescript
14
12
  * const tokenService = new GalaChainTokenService(http, debug, publicAxios);
15
13
  *
16
- * // Fetch native GALA token metadata
17
14
  * const gala = await tokenService.fetchTokenClassFromChain('GALA|Unit|none|none');
18
15
  * console.log(`Symbol: ${gala.symbol}`); // "GALA"
19
16
  *
20
- * // Fetch token supply information
21
17
  * const supplies = await tokenService.fetchTokenClassesWithSupply([
22
18
  * { collection: 'GALA', category: 'Unit', type: 'none', additionalKey: 'none' }
23
19
  * ]);
@@ -26,10 +22,8 @@
26
22
  * @category Services
27
23
  * @since 5.15.0
28
24
  */
29
- import type { TokenClass } from '@gala-chain/api';
25
+ import { type GalaChainTokenClass, type GalaChainTokenClassKey } from '@gala-chain/gala-core-sdk';
30
26
  import type { AxiosInstance } from 'axios';
31
- import type { TokenClassKey } from '../types/common';
32
- import type { TokenClassWithSupply } from '../types/launchpad.dto';
33
27
  import type { HttpClient } from '../utils/http';
34
28
  import { BaseService } from './BaseService';
35
29
  /**
@@ -48,62 +42,40 @@ export declare class GalaChainTokenService extends BaseService {
48
42
  */
49
43
  constructor(http: HttpClient, debug?: boolean, publicAxios?: AxiosInstance | undefined);
50
44
  /**
51
- * Fetch token metadata from GalaChain using native FetchTokenClasses API
52
- *
53
- * Queries the authoritative GalaChain token registry for complete token metadata
54
- * including symbol, decimals, name, image, and description. This is the source
55
- * of truth for all tokens on GalaChain (both native and wrapped).
56
- *
57
- * Supports both native tokens (GALA, etc.) and wrapped DEX tokens.
45
+ * Fetch a token class from GalaChain (`FetchTokenClasses`): the authoritative registry of every
46
+ * token (native and wrapped), with its symbol, decimals, name, image and description.
58
47
  *
59
- * @param tokenId Token identifier (string or TokenClassKey format)
60
- * @returns Promise<TokenClass> Complete token metadata from GalaChain
48
+ * @param tokenId Token identifier (pipe string, 4 or 5 parts, or TokenClassKey object)
49
+ * @returns Promise<GalaChainTokenClass> The token class
61
50
  * @throws ValidationError if tokenId validation fails
62
- * @throws Error if token fetch fails or token not found
51
+ * @throws NetworkError if the token is not found (404) or the fetch fails
63
52
  *
64
53
  * @example
65
54
  * ```typescript
66
- * // Fetch native GALA token metadata
67
55
  * const gala = await tokenService.fetchTokenClassFromChain('GALA|Unit|none|none');
68
56
  * console.log(`Symbol: ${gala.symbol}`); // "GALA"
69
57
  * console.log(`Decimals: ${gala.decimals}`); // 8
70
- *
71
- * // Fetch wrapped token metadata
72
- * const gusdc = await tokenService.fetchTokenClassFromChain({
73
- * collection: 'GUSDC',
74
- * category: 'Unit',
75
- * type: 'none',
76
- * additionalKey: 'none'
77
- * });
78
- * console.log(`Symbol: ${gusdc.symbol}`); // "GUSDC"
79
58
  * ```
80
59
  */
81
- fetchTokenClassFromChain(tokenId: string | TokenClassKey): Promise<TokenClass>;
60
+ fetchTokenClassFromChain(tokenId: string | GalaChainTokenClassKey): Promise<GalaChainTokenClass>;
82
61
  /**
83
62
  * Fetch supply information for one or more token classes from GalaChain
63
+ * (`FetchTokenClassesWithSupply`): total and maximum supply, burned amount, known mint supplies
64
+ * and the class metadata, one class per key in the order asked.
84
65
  *
85
- * Queries GalaChain for authoritative token supply data including:
86
- * - Total supply and maximum supply
87
- * - Total burned amount
88
- * - Mint-related supply metrics
89
- * - Token metadata (symbol, decimals, name)
90
- *
91
- * @param tokenClasses - Array of token class keys to query
92
- * @returns Promise<TokenClassWithSupply[]> Array of token classes with supply information
66
+ * @param tokenClasses - Array of token class keys to query (1 to 1000)
67
+ * @returns Promise<GalaChainTokenClass[]> The token classes with their supply figures
93
68
  * @throws {ValidationError} if tokenClasses array is empty
94
- * @throws {Error} if network request fails or GalaChain returns error status
95
- *
96
- * @example
97
- * ```typescript
98
- * const supplies = await tokenService.fetchTokenClassesWithSupply([
99
- * { collection: 'GALA', category: 'Unit', type: 'none', additionalKey: 'none' },
100
- * { collection: 'GUSDC', category: 'Unit', type: 'none', additionalKey: 'eth:0x...' }
101
- * ]);
102
- *
103
- * console.log(`${supplies[0].symbol}: ${supplies[0].totalSupply}`);
104
- * ```
69
+ * @throws {NetworkError} if a class is not found, the request fails or GalaChain refuses it
70
+ */
71
+ fetchTokenClassesWithSupply(tokenClasses: GalaChainTokenClassKey[]): Promise<GalaChainTokenClass[]>;
72
+ /**
73
+ * Runs a core read through the public gateway axios instance. When core refuses the gateway's
74
+ * 2xx answer, `legacyChecks` re-reads that same answer and throws launchpad's own error for it
75
+ * (the error launchpad has always thrown); should it not, `notFound` (for a missing class) or
76
+ * core's error stands (fail closed: an answer core refused is never returned).
105
77
  */
106
- fetchTokenClassesWithSupply(tokenClasses: TokenClassKey[]): Promise<TokenClassWithSupply[]>;
78
+ private readPublic;
107
79
  private handleTokenServiceError;
108
80
  }
109
81
  //# sourceMappingURL=GalaChainTokenService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GalaChainTokenService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainTokenService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAWlD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAV/B;;;;;;OAMG;gBAED,IAAI,EAAE,UAAU,EAChB,KAAK,GAAE,OAAe,EACL,WAAW,CAAC,EAAE,aAAa,YAAA;IAK9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IA4DpF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,2BAA2B,CAC/B,YAAY,EAAE,aAAa,EAAE,GAC5B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAyClC,OAAO,CAAC,uBAAuB;CAuBhC"}
1
+ {"version":3,"file":"GalaChainTokenService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainTokenService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAWlD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAV/B;;;;;;OAMG;gBAED,IAAI,EAAE,UAAU,EAChB,KAAK,GAAE,OAAe,EACL,WAAW,CAAC,EAAE,aAAa,YAAA;IAK9C;;;;;;;;;;;;;;;OAeG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsBtG;;;;;;;;;OASG;IACG,2BAA2B,CAC/B,YAAY,EAAE,sBAAsB,EAAE,GACrC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAoBjC;;;;;OAKG;YACW,UAAU;IAwBxB,OAAO,CAAC,uBAAuB;CAuBhC"}