@gala-chain/launchpad-sdk 3.31.2 → 4.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/API.md +525 -5
  2. package/CHANGELOG.md +101 -9
  3. package/EXAMPLES.md +923 -0
  4. package/README.md +539 -15
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.d.ts +37 -27
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.esm.js +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/{LaunchpadSDK.d.ts → src/LaunchpadSDK.d.ts} +1333 -37
  11. package/dist/src/LaunchpadSDK.d.ts.map +1 -0
  12. package/dist/src/api/LaunchpadAPI.d.ts.map +1 -0
  13. package/dist/src/api/dto/BondingCurveDTOs.d.ts.map +1 -0
  14. package/dist/src/api/dto/LockTokenDto.d.ts +97 -0
  15. package/dist/src/api/dto/LockTokenDto.d.ts.map +1 -0
  16. package/dist/src/api/dto/TransferTokenDto.d.ts.map +1 -0
  17. package/dist/src/api/dto/UnlockTokenDto.d.ts +86 -0
  18. package/dist/src/api/dto/UnlockTokenDto.d.ts.map +1 -0
  19. package/dist/src/auth/SignatureAuth.d.ts.map +1 -0
  20. package/dist/src/auth/types.d.ts.map +1 -0
  21. package/dist/src/config/environments.d.ts.map +1 -0
  22. package/dist/src/constants/bondingCurve.d.ts.map +1 -0
  23. package/dist/src/constants/config.d.ts.map +1 -0
  24. package/dist/src/constants/counts.d.ts.map +1 -0
  25. package/dist/src/constants/decimals.d.ts.map +1 -0
  26. package/dist/src/constants/endpoints.d.ts.map +1 -0
  27. package/dist/src/constants/enums.d.ts.map +1 -0
  28. package/dist/src/constants/error-messages.d.ts.map +1 -0
  29. package/dist/src/constants/pagination.d.ts.map +1 -0
  30. package/dist/src/constants/query-fields.d.ts.map +1 -0
  31. package/dist/src/constants/version.d.ts.map +1 -0
  32. package/dist/{constants → src/constants}/version.generated.d.ts +1 -1
  33. package/dist/src/constants/version.generated.d.ts.map +1 -0
  34. package/dist/src/helpers/sdk.d.ts.map +1 -0
  35. package/dist/src/helpers/wallet.d.ts.map +1 -0
  36. package/dist/src/index.d.ts +51 -0
  37. package/dist/src/index.d.ts.map +1 -0
  38. package/dist/src/polyfills/file-global.d.ts.map +1 -0
  39. package/dist/src/schemas/files.d.ts.map +1 -0
  40. package/dist/src/schemas/index.d.ts.map +1 -0
  41. package/dist/src/schemas/launchpad.d.ts.map +1 -0
  42. package/dist/src/schemas/pagination.d.ts.map +1 -0
  43. package/dist/src/schemas/primitives.d.ts.map +1 -0
  44. package/dist/src/schemas/trade.d.ts.map +1 -0
  45. package/dist/src/schemas/user.d.ts.map +1 -0
  46. package/dist/src/schemas/validators.d.ts.map +1 -0
  47. package/dist/src/services/BaseService.d.ts.map +1 -0
  48. package/dist/src/services/BundleService.d.ts.map +1 -0
  49. package/dist/src/services/CommentService.d.ts.map +1 -0
  50. package/dist/src/services/DexBackendClient.d.ts +46 -0
  51. package/dist/src/services/DexBackendClient.d.ts.map +1 -0
  52. package/dist/src/services/DexPoolService.d.ts +137 -0
  53. package/dist/src/services/DexPoolService.d.ts.map +1 -0
  54. package/dist/src/services/DexQuoteService.d.ts +288 -0
  55. package/dist/src/services/DexQuoteService.d.ts.map +1 -0
  56. package/dist/{services → src/services}/DexService.d.ts +83 -9
  57. package/dist/src/services/DexService.d.ts.map +1 -0
  58. package/dist/src/services/FaucetService.d.ts.map +1 -0
  59. package/dist/src/services/GSwapService.d.ts +817 -0
  60. package/dist/src/services/GSwapService.d.ts.map +1 -0
  61. package/dist/src/services/GalaChainGatewayClient.d.ts +98 -0
  62. package/dist/src/services/GalaChainGatewayClient.d.ts.map +1 -0
  63. package/dist/{services → src/services}/GalaChainService.d.ts +99 -4
  64. package/dist/src/services/GalaChainService.d.ts.map +1 -0
  65. package/dist/src/services/ImageService.d.ts.map +1 -0
  66. package/dist/src/services/LaunchpadService.d.ts.map +1 -0
  67. package/dist/src/services/MultiPoolStateManager.d.ts +284 -0
  68. package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -0
  69. package/dist/src/services/PoolCacheManager.d.ts +171 -0
  70. package/dist/src/services/PoolCacheManager.d.ts.map +1 -0
  71. package/dist/src/services/PoolService.d.ts.map +1 -0
  72. package/dist/src/services/PoolStateManager.d.ts +176 -0
  73. package/dist/src/services/PoolStateManager.d.ts.map +1 -0
  74. package/dist/{services → src/services}/PriceHistoryService.d.ts +5 -5
  75. package/dist/src/services/PriceHistoryService.d.ts.map +1 -0
  76. package/dist/{services → src/services}/SignatureService.d.ts +13 -35
  77. package/dist/src/services/SignatureService.d.ts.map +1 -0
  78. package/dist/src/services/SwapEventQueue.d.ts +123 -0
  79. package/dist/src/services/SwapEventQueue.d.ts.map +1 -0
  80. package/dist/src/services/TokenClassKeyService.d.ts.map +1 -0
  81. package/dist/{services → src/services}/TokenMetadataCache.d.ts +5 -5
  82. package/dist/src/services/TokenMetadataCache.d.ts.map +1 -0
  83. package/dist/{services → src/services}/TokenMetadataService.d.ts +3 -3
  84. package/dist/src/services/TokenMetadataService.d.ts.map +1 -0
  85. package/dist/src/services/TokenResolverService.d.ts.map +1 -0
  86. package/dist/src/services/TradeService.d.ts.map +1 -0
  87. package/dist/src/services/UserService.d.ts.map +1 -0
  88. package/dist/src/services/WebSocketManager.d.ts.map +1 -0
  89. package/dist/src/services/WebSocketService.d.ts +183 -0
  90. package/dist/src/services/WebSocketService.d.ts.map +1 -0
  91. package/dist/src/services/__mocks__/logger.mock.d.ts +17 -0
  92. package/dist/src/services/__mocks__/logger.mock.d.ts.map +1 -0
  93. package/dist/{setup.d.ts.map → src/setup.d.ts.map} +1 -1
  94. package/dist/{types → src/types}/backend-responses.d.ts +17 -0
  95. package/dist/src/types/backend-responses.d.ts.map +1 -0
  96. package/dist/src/types/comment.dto.d.ts.map +1 -0
  97. package/dist/{types → src/types}/common.d.ts +2 -0
  98. package/dist/src/types/common.d.ts.map +1 -0
  99. package/dist/src/types/composite-pool.dto.d.ts +103 -0
  100. package/dist/src/types/composite-pool.dto.d.ts.map +1 -0
  101. package/dist/{types → src/types}/dex-pool.dto.d.ts +56 -5
  102. package/dist/src/types/dex-pool.dto.d.ts.map +1 -0
  103. package/dist/{types → src/types}/dto.d.ts +6 -6
  104. package/dist/src/types/dto.d.ts.map +1 -0
  105. package/dist/src/types/eip712-types.d.ts +140 -0
  106. package/dist/src/types/eip712-types.d.ts.map +1 -0
  107. package/dist/src/types/galachain-api.types.d.ts +216 -0
  108. package/dist/src/types/galachain-api.types.d.ts.map +1 -0
  109. package/dist/src/types/gswap-responses.types.d.ts +366 -0
  110. package/dist/src/types/gswap-responses.types.d.ts.map +1 -0
  111. package/dist/{types → src/types}/gswap.dto.d.ts +58 -3
  112. package/dist/src/types/gswap.dto.d.ts.map +1 -0
  113. package/dist/{types → src/types}/launchpad.dto.d.ts +232 -0
  114. package/dist/src/types/launchpad.dto.d.ts.map +1 -0
  115. package/dist/src/types/launchpad.validation.d.ts.map +1 -0
  116. package/dist/src/types/liquidity-monitor.dto.d.ts +177 -0
  117. package/dist/src/types/liquidity-monitor.dto.d.ts.map +1 -0
  118. package/dist/src/types/lock.dto.d.ts +146 -0
  119. package/dist/src/types/lock.dto.d.ts.map +1 -0
  120. package/dist/src/types/options.dto.d.ts.map +1 -0
  121. package/dist/src/types/pool-state-delta.dto.d.ts +246 -0
  122. package/dist/src/types/pool-state-delta.dto.d.ts.map +1 -0
  123. package/dist/src/types/pool-state-manager-config.dto.d.ts +103 -0
  124. package/dist/src/types/pool-state-manager-config.dto.d.ts.map +1 -0
  125. package/dist/{types → src/types}/priceHistory.dto.d.ts +4 -4
  126. package/dist/src/types/priceHistory.dto.d.ts.map +1 -0
  127. package/dist/src/types/result.types.d.ts.map +1 -0
  128. package/dist/src/types/swap-monitor.dto.d.ts +256 -0
  129. package/dist/src/types/swap-monitor.dto.d.ts.map +1 -0
  130. package/dist/src/types/trade.dto.d.ts.map +1 -0
  131. package/dist/src/types/transfer.dto.d.ts.map +1 -0
  132. package/dist/src/types/user.dto.d.ts.map +1 -0
  133. package/dist/src/types/websocket-data.types.d.ts.map +1 -0
  134. package/dist/src/types/websocket.types.d.ts.map +1 -0
  135. package/dist/src/utils/LiquidityEventExtractor.d.ts +99 -0
  136. package/dist/src/utils/LiquidityEventExtractor.d.ts.map +1 -0
  137. package/dist/src/utils/Logger.d.ts.map +1 -0
  138. package/dist/src/utils/MonitoringMetrics.d.ts +152 -0
  139. package/dist/src/utils/MonitoringMetrics.d.ts.map +1 -0
  140. package/dist/src/utils/PoolKeyNormalizer.d.ts +135 -0
  141. package/dist/src/utils/PoolKeyNormalizer.d.ts.map +1 -0
  142. package/dist/{utils → src/utils}/SignatureHelper.d.ts +38 -0
  143. package/dist/src/utils/SignatureHelper.d.ts.map +1 -0
  144. package/dist/src/utils/SwapEventExtractor.d.ts +152 -0
  145. package/dist/src/utils/SwapEventExtractor.d.ts.map +1 -0
  146. package/dist/src/utils/adapters.d.ts.map +1 -0
  147. package/dist/src/utils/agent-config.d.ts.map +1 -0
  148. package/dist/{utils → src/utils}/auto-pagination.d.ts +75 -1
  149. package/dist/src/utils/auto-pagination.d.ts.map +1 -0
  150. package/dist/{utils → src/utils}/bignumber-helpers.d.ts +79 -3
  151. package/dist/src/utils/bignumber-helpers.d.ts.map +1 -0
  152. package/dist/src/utils/bignumber-pool-cache.d.ts +169 -0
  153. package/dist/src/utils/bignumber-pool-cache.d.ts.map +1 -0
  154. package/dist/src/utils/bondingCurveCalculations.d.ts.map +1 -0
  155. package/dist/src/utils/cacheWarmingHelpers.d.ts.map +1 -0
  156. package/dist/src/utils/composite-pool-converter.d.ts +121 -0
  157. package/dist/src/utils/composite-pool-converter.d.ts.map +1 -0
  158. package/dist/src/utils/date-utils.d.ts.map +1 -0
  159. package/dist/src/utils/error-factories.d.ts.map +1 -0
  160. package/dist/src/utils/error-utils.d.ts.map +1 -0
  161. package/dist/{utils → src/utils}/errors.d.ts +86 -0
  162. package/dist/src/utils/errors.d.ts.map +1 -0
  163. package/dist/src/utils/http.d.ts.map +1 -0
  164. package/dist/src/utils/load-env.d.ts +31 -0
  165. package/dist/src/utils/load-env.d.ts.map +1 -0
  166. package/dist/src/utils/multipart-helpers.d.ts.map +1 -0
  167. package/dist/{utils → src/utils}/multipart.d.ts +2 -2
  168. package/dist/src/utils/multipart.d.ts.map +1 -0
  169. package/dist/src/utils/number-utils.d.ts.map +1 -0
  170. package/dist/src/utils/pool-pair-parser.d.ts +55 -0
  171. package/dist/src/utils/pool-pair-parser.d.ts.map +1 -0
  172. package/dist/src/utils/pool-state-validator.d.ts +207 -0
  173. package/dist/src/utils/pool-state-validator.d.ts.map +1 -0
  174. package/dist/src/utils/position-filters.d.ts +253 -0
  175. package/dist/src/utils/position-filters.d.ts.map +1 -0
  176. package/dist/src/utils/precision-math.d.ts.map +1 -0
  177. package/dist/{utils → src/utils}/query-params.d.ts +2 -2
  178. package/dist/src/utils/query-params.d.ts.map +1 -0
  179. package/dist/src/utils/response-handlers.d.ts.map +1 -0
  180. package/dist/src/utils/response-normalizers.d.ts.map +1 -0
  181. package/dist/src/utils/slippage-utils.d.ts.map +1 -0
  182. package/dist/src/utils/swap-delta-calculator.d.ts +231 -0
  183. package/dist/src/utils/swap-delta-calculator.d.ts.map +1 -0
  184. package/dist/src/utils/tick-crossing-handler.d.ts +250 -0
  185. package/dist/src/utils/tick-crossing-handler.d.ts.map +1 -0
  186. package/dist/{utils → src/utils}/token-format-converter.d.ts +18 -11
  187. package/dist/src/utils/token-format-converter.d.ts.map +1 -0
  188. package/dist/src/utils/token-parser.d.ts +235 -0
  189. package/dist/src/utils/token-parser.d.ts.map +1 -0
  190. package/dist/src/utils/tokenNormalizer.d.ts.map +1 -0
  191. package/dist/src/utils/trade-transformers.d.ts.map +1 -0
  192. package/dist/src/utils/transfer-validation.d.ts.map +1 -0
  193. package/dist/{utils → src/utils}/validation-helpers.d.ts +1 -1
  194. package/dist/src/utils/validation-helpers.d.ts.map +1 -0
  195. package/dist/src/utils/validation.d.ts.map +1 -0
  196. package/dist/src/utils/wallet.d.ts.map +1 -0
  197. package/dist/src/utils/websocket-errors.d.ts.map +1 -0
  198. package/dist/src/utils/websocket-validators.d.ts.map +1 -0
  199. package/package.json +73 -19
  200. package/dist/LaunchpadSDK.d.ts.map +0 -1
  201. package/dist/api/LaunchpadAPI.d.ts.map +0 -1
  202. package/dist/api/dto/BondingCurveDTOs.d.ts.map +0 -1
  203. package/dist/api/dto/TransferTokenDto.d.ts.map +0 -1
  204. package/dist/auth/SignatureAuth.d.ts.map +0 -1
  205. package/dist/auth/types.d.ts.map +0 -1
  206. package/dist/config/environments.d.ts.map +0 -1
  207. package/dist/constants/bondingCurve.d.ts.map +0 -1
  208. package/dist/constants/config.d.ts.map +0 -1
  209. package/dist/constants/counts.d.ts.map +0 -1
  210. package/dist/constants/decimals.d.ts.map +0 -1
  211. package/dist/constants/endpoints.d.ts.map +0 -1
  212. package/dist/constants/enums.d.ts.map +0 -1
  213. package/dist/constants/error-messages.d.ts.map +0 -1
  214. package/dist/constants/pagination.d.ts.map +0 -1
  215. package/dist/constants/query-fields.d.ts.map +0 -1
  216. package/dist/constants/version.d.ts.map +0 -1
  217. package/dist/constants/version.generated.d.ts.map +0 -1
  218. package/dist/helpers/sdk.d.ts.map +0 -1
  219. package/dist/helpers/wallet.d.ts.map +0 -1
  220. package/dist/polyfills/file-global.d.ts.map +0 -1
  221. package/dist/schemas/files.d.ts.map +0 -1
  222. package/dist/schemas/index.d.ts.map +0 -1
  223. package/dist/schemas/launchpad.d.ts.map +0 -1
  224. package/dist/schemas/pagination.d.ts.map +0 -1
  225. package/dist/schemas/primitives.d.ts.map +0 -1
  226. package/dist/schemas/trade.d.ts.map +0 -1
  227. package/dist/schemas/user.d.ts.map +0 -1
  228. package/dist/schemas/validators.d.ts.map +0 -1
  229. package/dist/services/BaseService.d.ts.map +0 -1
  230. package/dist/services/BundleService.d.ts.map +0 -1
  231. package/dist/services/CommentService.d.ts.map +0 -1
  232. package/dist/services/DexPoolService.d.ts +0 -95
  233. package/dist/services/DexPoolService.d.ts.map +0 -1
  234. package/dist/services/DexService.d.ts.map +0 -1
  235. package/dist/services/FaucetService.d.ts.map +0 -1
  236. package/dist/services/GSwapService.d.ts +0 -315
  237. package/dist/services/GSwapService.d.ts.map +0 -1
  238. package/dist/services/GalaChainService.d.ts.map +0 -1
  239. package/dist/services/ImageService.d.ts.map +0 -1
  240. package/dist/services/LaunchpadService.d.ts.map +0 -1
  241. package/dist/services/PoolService.d.ts.map +0 -1
  242. package/dist/services/PriceHistoryService.d.ts.map +0 -1
  243. package/dist/services/SignatureService.d.ts.map +0 -1
  244. package/dist/services/TokenClassKeyService.d.ts.map +0 -1
  245. package/dist/services/TokenMetadataCache.d.ts.map +0 -1
  246. package/dist/services/TokenMetadataService.d.ts.map +0 -1
  247. package/dist/services/TokenResolverService.d.ts.map +0 -1
  248. package/dist/services/TradeService.d.ts.map +0 -1
  249. package/dist/services/UserService.d.ts.map +0 -1
  250. package/dist/services/WebSocketManager.d.ts.map +0 -1
  251. package/dist/services/WebSocketService.d.ts +0 -85
  252. package/dist/services/WebSocketService.d.ts.map +0 -1
  253. package/dist/types/backend-responses.d.ts.map +0 -1
  254. package/dist/types/comment.dto.d.ts.map +0 -1
  255. package/dist/types/common.d.ts.map +0 -1
  256. package/dist/types/dex-pool.dto.d.ts.map +0 -1
  257. package/dist/types/dto.d.ts.map +0 -1
  258. package/dist/types/gswap.dto.d.ts.map +0 -1
  259. package/dist/types/launchpad.dto.d.ts.map +0 -1
  260. package/dist/types/launchpad.validation.d.ts.map +0 -1
  261. package/dist/types/options.dto.d.ts.map +0 -1
  262. package/dist/types/priceHistory.dto.d.ts.map +0 -1
  263. package/dist/types/result.types.d.ts.map +0 -1
  264. package/dist/types/trade.dto.d.ts.map +0 -1
  265. package/dist/types/transfer.dto.d.ts.map +0 -1
  266. package/dist/types/user.dto.d.ts.map +0 -1
  267. package/dist/types/websocket-data.types.d.ts.map +0 -1
  268. package/dist/types/websocket.types.d.ts.map +0 -1
  269. package/dist/utils/Logger.d.ts.map +0 -1
  270. package/dist/utils/SignatureHelper.d.ts.map +0 -1
  271. package/dist/utils/adapters.d.ts.map +0 -1
  272. package/dist/utils/agent-config.d.ts.map +0 -1
  273. package/dist/utils/auto-pagination.d.ts.map +0 -1
  274. package/dist/utils/bignumber-helpers.d.ts.map +0 -1
  275. package/dist/utils/bondingCurveCalculations.d.ts.map +0 -1
  276. package/dist/utils/cacheWarmingHelpers.d.ts.map +0 -1
  277. package/dist/utils/date-utils.d.ts.map +0 -1
  278. package/dist/utils/error-factories.d.ts.map +0 -1
  279. package/dist/utils/error-utils.d.ts.map +0 -1
  280. package/dist/utils/errors.d.ts.map +0 -1
  281. package/dist/utils/http.d.ts.map +0 -1
  282. package/dist/utils/multipart-helpers.d.ts.map +0 -1
  283. package/dist/utils/multipart.d.ts.map +0 -1
  284. package/dist/utils/number-utils.d.ts.map +0 -1
  285. package/dist/utils/precision-math.d.ts.map +0 -1
  286. package/dist/utils/query-params.d.ts.map +0 -1
  287. package/dist/utils/response-handlers.d.ts.map +0 -1
  288. package/dist/utils/response-normalizers.d.ts.map +0 -1
  289. package/dist/utils/slippage-utils.d.ts.map +0 -1
  290. package/dist/utils/token-format-converter.d.ts.map +0 -1
  291. package/dist/utils/tokenNormalizer.d.ts.map +0 -1
  292. package/dist/utils/trade-transformers.d.ts.map +0 -1
  293. package/dist/utils/transfer-validation.d.ts.map +0 -1
  294. package/dist/utils/validation-helpers.d.ts.map +0 -1
  295. package/dist/utils/validation.d.ts.map +0 -1
  296. package/dist/utils/wallet.d.ts.map +0 -1
  297. package/dist/utils/websocket-errors.d.ts.map +0 -1
  298. package/dist/utils/websocket-validators.d.ts.map +0 -1
  299. /package/dist/{api → src/api}/LaunchpadAPI.d.ts +0 -0
  300. /package/dist/{api → src/api}/dto/BondingCurveDTOs.d.ts +0 -0
  301. /package/dist/{api → src/api}/dto/TransferTokenDto.d.ts +0 -0
  302. /package/dist/{auth → src/auth}/SignatureAuth.d.ts +0 -0
  303. /package/dist/{auth → src/auth}/types.d.ts +0 -0
  304. /package/dist/{config → src/config}/environments.d.ts +0 -0
  305. /package/dist/{constants → src/constants}/bondingCurve.d.ts +0 -0
  306. /package/dist/{constants → src/constants}/config.d.ts +0 -0
  307. /package/dist/{constants → src/constants}/counts.d.ts +0 -0
  308. /package/dist/{constants → src/constants}/decimals.d.ts +0 -0
  309. /package/dist/{constants → src/constants}/endpoints.d.ts +0 -0
  310. /package/dist/{constants → src/constants}/enums.d.ts +0 -0
  311. /package/dist/{constants → src/constants}/error-messages.d.ts +0 -0
  312. /package/dist/{constants → src/constants}/pagination.d.ts +0 -0
  313. /package/dist/{constants → src/constants}/query-fields.d.ts +0 -0
  314. /package/dist/{constants → src/constants}/version.d.ts +0 -0
  315. /package/dist/{helpers → src/helpers}/sdk.d.ts +0 -0
  316. /package/dist/{helpers → src/helpers}/wallet.d.ts +0 -0
  317. /package/dist/{polyfills → src/polyfills}/file-global.d.ts +0 -0
  318. /package/dist/{schemas → src/schemas}/files.d.ts +0 -0
  319. /package/dist/{schemas → src/schemas}/index.d.ts +0 -0
  320. /package/dist/{schemas → src/schemas}/launchpad.d.ts +0 -0
  321. /package/dist/{schemas → src/schemas}/pagination.d.ts +0 -0
  322. /package/dist/{schemas → src/schemas}/primitives.d.ts +0 -0
  323. /package/dist/{schemas → src/schemas}/trade.d.ts +0 -0
  324. /package/dist/{schemas → src/schemas}/user.d.ts +0 -0
  325. /package/dist/{schemas → src/schemas}/validators.d.ts +0 -0
  326. /package/dist/{services → src/services}/BaseService.d.ts +0 -0
  327. /package/dist/{services → src/services}/BundleService.d.ts +0 -0
  328. /package/dist/{services → src/services}/CommentService.d.ts +0 -0
  329. /package/dist/{services → src/services}/FaucetService.d.ts +0 -0
  330. /package/dist/{services → src/services}/ImageService.d.ts +0 -0
  331. /package/dist/{services → src/services}/LaunchpadService.d.ts +0 -0
  332. /package/dist/{services → src/services}/PoolService.d.ts +0 -0
  333. /package/dist/{services → src/services}/TokenClassKeyService.d.ts +0 -0
  334. /package/dist/{services → src/services}/TokenResolverService.d.ts +0 -0
  335. /package/dist/{services → src/services}/TradeService.d.ts +0 -0
  336. /package/dist/{services → src/services}/UserService.d.ts +0 -0
  337. /package/dist/{services → src/services}/WebSocketManager.d.ts +0 -0
  338. /package/dist/{setup.d.ts → src/setup.d.ts} +0 -0
  339. /package/dist/{types → src/types}/comment.dto.d.ts +0 -0
  340. /package/dist/{types → src/types}/launchpad.validation.d.ts +0 -0
  341. /package/dist/{types → src/types}/options.dto.d.ts +0 -0
  342. /package/dist/{types → src/types}/result.types.d.ts +0 -0
  343. /package/dist/{types → src/types}/trade.dto.d.ts +0 -0
  344. /package/dist/{types → src/types}/transfer.dto.d.ts +0 -0
  345. /package/dist/{types → src/types}/user.dto.d.ts +0 -0
  346. /package/dist/{types → src/types}/websocket-data.types.d.ts +0 -0
  347. /package/dist/{types → src/types}/websocket.types.d.ts +0 -0
  348. /package/dist/{utils → src/utils}/Logger.d.ts +0 -0
  349. /package/dist/{utils → src/utils}/adapters.d.ts +0 -0
  350. /package/dist/{utils → src/utils}/agent-config.d.ts +0 -0
  351. /package/dist/{utils → src/utils}/bondingCurveCalculations.d.ts +0 -0
  352. /package/dist/{utils → src/utils}/cacheWarmingHelpers.d.ts +0 -0
  353. /package/dist/{utils → src/utils}/date-utils.d.ts +0 -0
  354. /package/dist/{utils → src/utils}/error-factories.d.ts +0 -0
  355. /package/dist/{utils → src/utils}/error-utils.d.ts +0 -0
  356. /package/dist/{utils → src/utils}/http.d.ts +0 -0
  357. /package/dist/{utils → src/utils}/multipart-helpers.d.ts +0 -0
  358. /package/dist/{utils → src/utils}/number-utils.d.ts +0 -0
  359. /package/dist/{utils → src/utils}/precision-math.d.ts +0 -0
  360. /package/dist/{utils → src/utils}/response-handlers.d.ts +0 -0
  361. /package/dist/{utils → src/utils}/response-normalizers.d.ts +0 -0
  362. /package/dist/{utils → src/utils}/slippage-utils.d.ts +0 -0
  363. /package/dist/{utils → src/utils}/tokenNormalizer.d.ts +0 -0
  364. /package/dist/{utils → src/utils}/trade-transformers.d.ts +0 -0
  365. /package/dist/{utils → src/utils}/transfer-validation.d.ts +0 -0
  366. /package/dist/{utils → src/utils}/validation.d.ts +0 -0
  367. /package/dist/{utils → src/utils}/wallet.d.ts +0 -0
  368. /package/dist/{utils → src/utils}/websocket-errors.d.ts +0 -0
  369. /package/dist/{utils → src/utils}/websocket-validators.d.ts +0 -0
package/EXAMPLES.md ADDED
@@ -0,0 +1,923 @@
1
+ # Gala Launchpad SDK - Usage Examples
2
+
3
+ Practical code examples for common SDK operations organized by category. For complete API documentation, see [API Reference](./docs/API-REFERENCE.md).
4
+
5
+ > **⚠️ BREAKING CHANGE (v3.33.0+)**: All DEX trading examples now require delimited token formats (`'GALA|Unit|none|none'` instead of `'GALA'`). See [README.md migration guide](./README.md#token-format-migration-v330) for details.
6
+
7
+ ## Table of Contents
8
+
9
+ - [Quick Start](#quick-start)
10
+ - [Recommended Learning Path](#recommended-learning-path)
11
+ - [Core Operations](#core-operations)
12
+ - [Liquidity Position Management](#liquidity-position-management)
13
+ - [Bonding Curve Trading](#bonding-curve-trading)
14
+ - [DEX Trading](#dex-trading)
15
+ - [DEX Leaderboard & Volume Analytics](#dex-leaderboard--volume-analytics)
16
+ - [Fee Generation & Collection](#fee-generation--collection)
17
+ - [Real-Time Monitoring](#real-time-monitoring)
18
+ - [Utilities](#utilities)
19
+ - [Error Handling](#error-handling)
20
+
21
+ ---
22
+
23
+ ## Quick Start
24
+
25
+ ### Installation
26
+
27
+ ```bash
28
+ npm install @gala-chain/launchpad-sdk
29
+ ```
30
+
31
+ ### Basic Setup
32
+
33
+ ```typescript
34
+ import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
35
+
36
+ // Read-only mode (no wallet required)
37
+ const sdk = createLaunchpadSDK({ environment: 'production' });
38
+
39
+ // Full-access mode (with wallet for trading)
40
+ const sdkWithWallet = createLaunchpadSDK({
41
+ environment: 'production',
42
+ privateKey: process.env.WALLET_PRIVATE_KEY
43
+ });
44
+ ```
45
+
46
+ ### Run Your First Demo
47
+
48
+ ```bash
49
+ # Complete SDK feature demonstration
50
+ npm run demo
51
+
52
+ # Interactive liquidity position manager
53
+ npm run demo:liquidity
54
+
55
+ # DEX swap workflow
56
+ npm run demo:dex
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Recommended Learning Path
62
+
63
+ Follow this progression to master the SDK:
64
+
65
+ ### 1. Start with Core Operations
66
+
67
+ ```bash
68
+ # Complete SDK overview (10 minutes)
69
+ npm run demo
70
+
71
+ # Read-only operations (no wallet needed)
72
+ npm run demo:read-only
73
+
74
+ # Authenticated operations (wallet required)
75
+ npm run demo:authenticated
76
+ ```
77
+
78
+ **Learn:** SDK initialization, configuration, read-only vs full-access modes
79
+
80
+ ### 2. Explore Liquidity Management
81
+
82
+ ```bash
83
+ # Interactive CLI for liquidity positions
84
+ npm run demo:liquidity
85
+
86
+ # Run all 9 liquidity demos sequentially
87
+ npm run demo:liquidity:all
88
+
89
+ # Detailed position lifecycle
90
+ npm run demo:liquidity:detailed
91
+ ```
92
+
93
+ **Learn:** Add liquidity, collect fees, remove positions, APR calculations
94
+
95
+ ### 3. Master DEX Trading
96
+
97
+ ```bash
98
+ # DEX swap workflow (quote → execute → confirm)
99
+ npm run demo:dex
100
+
101
+ # Pool discovery and metrics
102
+ npm run demo:dex:pools
103
+
104
+ # Quote comparison (exact input vs exact output)
105
+ npm run demo:dex:quotes
106
+ ```
107
+
108
+ **Learn:** Token swaps, quote generation, slippage protection, pool discovery
109
+
110
+ ### 4. Understand Fee Management
111
+
112
+ ```bash
113
+ # Basic fee generation and collection
114
+ npm run demo:fees
115
+
116
+ # High-volume trading fee accumulation
117
+ npm run demo:fees:high-volume
118
+
119
+ # Complete fee lifecycle test
120
+ npm run demo:fees:test
121
+ ```
122
+
123
+ **Learn:** LP fee generation, collection strategies, multi-wallet workflows
124
+
125
+ ### 5. Try Real-Time Features
126
+
127
+ ```bash
128
+ # Watch for new DEX pool creation
129
+ npm run demo:watch
130
+
131
+ # Watch for new launchpad token launches
132
+ npm run demo:watch:tokens
133
+ ```
134
+
135
+ **Learn:** WebSocket event monitoring, pool/token discovery
136
+
137
+ ### 6. Explore Advanced Topics
138
+
139
+ ```bash
140
+ # Metadata cache performance
141
+ npm run demo:cache
142
+
143
+ # Token supply metrics from GalaChain
144
+ npm run demo:token-supply
145
+
146
+ # Advanced tick-based positions
147
+ npm run demo:liquidity:ticks
148
+ ```
149
+
150
+ **Learn:** Performance optimization, token supply queries, advanced LP strategies
151
+
152
+ ---
153
+
154
+ ## Core Operations
155
+
156
+ ### Initialize SDK
157
+
158
+ **Read-Only Mode** (no wallet required):
159
+
160
+ ```typescript
161
+ import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
162
+
163
+ const sdk = createLaunchpadSDK({
164
+ environment: 'production'
165
+ });
166
+
167
+ // Query operations work without wallet
168
+ const pools = await sdk.fetchDexPools({ search: 'GALA' });
169
+ const prices = await sdk.fetchTokenSpotPrice('GALA');
170
+ ```
171
+
172
+ **Full-Access Mode** (with wallet for trading):
173
+
174
+ ```typescript
175
+ const sdk = createLaunchpadSDK({
176
+ environment: 'production',
177
+ privateKey: process.env.WALLET_PRIVATE_KEY
178
+ });
179
+
180
+ // Now you can execute trades
181
+ const result = await sdk.executeSwap('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '100', ...);
182
+ ```
183
+
184
+ **Dynamic Wallet Configuration:**
185
+
186
+ ```typescript
187
+ // Start in read-only mode
188
+ const sdk = createLaunchpadSDK({ environment: 'production' });
189
+
190
+ // Later, upgrade to full-access
191
+ sdk.setWallet('your-private-key');
192
+
193
+ // Now signing operations work
194
+ const result = await sdk.buy({ tokenName: 'anime', amount: '100', ... });
195
+ ```
196
+
197
+ **Demos:**
198
+ - `npm run demo` - Complete SDK showcase
199
+ - `npm run demo:read-only` - Wallet-free operations
200
+ - `npm run demo:authenticated` - Wallet-required operations
201
+
202
+ ---
203
+
204
+ ## Liquidity Position Management
205
+
206
+ Provide liquidity to GalaSwap DEX pools and earn trading fees.
207
+
208
+ ### View All Liquidity Positions
209
+
210
+ ```typescript
211
+ import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
212
+
213
+ const sdk = createLaunchpadSDK({
214
+ environment: 'production',
215
+ privateKey: process.env.WALLET_PRIVATE_KEY
216
+ });
217
+
218
+ // Get all positions with automatic pagination (recommended)
219
+ const positions = await sdk.getAllSwapUserLiquidityPositions('eth|0x...');
220
+
221
+ console.log(`Total positions: ${positions.length}`);
222
+
223
+ // Analyze position performance
224
+ let totalLiquidity = 0;
225
+ let totalFees = 0;
226
+
227
+ positions.forEach(pos => {
228
+ totalLiquidity += parseFloat(pos.liquidity || '0');
229
+
230
+ const fee0 = parseFloat(pos.feeAmount0 || '0');
231
+ const fee1 = parseFloat(pos.feeAmount1 || '0');
232
+ totalFees += fee0 + fee1;
233
+
234
+ console.log(`
235
+ Pool: ${pos.token0}/${pos.token1}
236
+ Liquidity: ${pos.liquidity}
237
+ Fees: ${pos.feeAmount0} ${pos.token0} + ${pos.feeAmount1} ${pos.token1}
238
+ `);
239
+ });
240
+
241
+ console.log(`\nTotal Liquidity: ${totalLiquidity}`);
242
+ console.log(`Total Fees Earned: ${totalFees}`);
243
+ ```
244
+
245
+ ### Create Liquidity Position (Price Range)
246
+
247
+ ```typescript
248
+ // Create position with user-friendly price range (v3.33.0+ requires delimited token format)
249
+ const result = await sdk.addSwapLiquidityByPrice({
250
+ token0: 'GALA|Unit|none|none',
251
+ token1: 'GUSDC|Unit|none|none',
252
+ fee: 3000, // 0.30% fee tier
253
+ minPrice: '0.95', // Active range: 0.95 - 1.05
254
+ maxPrice: '1.05',
255
+ amount0Desired: '1000', // Provide 1000 GALA
256
+ amount1Desired: '1000', // Provide 1000 GUSDC
257
+ amount0Min: '900', // Slippage protection (optional)
258
+ amount1Min: '900'
259
+ });
260
+
261
+ console.log(`Position created: ${result.positionId}`);
262
+ console.log(`Liquidity provided: ${result.liquidity}`);
263
+ console.log(`Amount0 used: ${result.amount0Used} GALA`);
264
+ console.log(`Amount1 used: ${result.amount1Used} GUSDC`);
265
+
266
+ // Wait for confirmation
267
+ await result.wait();
268
+ console.log('✓ Position confirmed on blockchain');
269
+ ```
270
+
271
+ ### Collect Fees Periodically
272
+
273
+ ```typescript
274
+ // Harvest accumulated fees without closing position
275
+ const result = await sdk.collectSwapPositionFees({
276
+ ownerAddress: 'eth|0x...',
277
+ positionId: 'position-id-uuid'
278
+ });
279
+
280
+ console.log(`Collected fees:`);
281
+ console.log(` ${result.amount0Collected} GALA`);
282
+ console.log(` ${result.amount1Collected} GUSDC`);
283
+
284
+ // Position remains active and continues earning fees
285
+ ```
286
+
287
+ ### Remove Liquidity & Close Position
288
+
289
+ ```typescript
290
+ // Step 1: Preview what you'll receive
291
+ const estimate = await sdk.getSwapEstimateRemoveLiquidity(
292
+ 'GALA',
293
+ 'GUSDC',
294
+ 3000,
295
+ position.liquidity,
296
+ position.tickLower,
297
+ position.tickUpper
298
+ );
299
+
300
+ console.log(`Will receive:`);
301
+ console.log(` ${estimate.amount0} ${estimate.token0Symbol}`);
302
+ console.log(` ${estimate.amount1} ${estimate.token1Symbol}`);
303
+
304
+ // Step 2: Remove full liquidity
305
+ const result = await sdk.removeSwapLiquidity({
306
+ ownerAddress: 'eth|0x...',
307
+ positionId: position.positionId,
308
+ liquidity: position.liquidity, // Full amount to close
309
+ amount0Min: estimate.amount0, // Use estimated amounts
310
+ amount1Min: estimate.amount1,
311
+ deadline: Math.floor(Date.now() / 1000) + 3600 // 1 hour deadline
312
+ });
313
+
314
+ console.log(`Position closed!`);
315
+ console.log(`Withdrawn: ${result.amount0Withdrawn} GALA + ${result.amount1Withdrawn} GUSDC`);
316
+ ```
317
+
318
+ **Liquidity Demos (9 total):**
319
+ - `npm run demo:liquidity` - Interactive CLI
320
+ - `npm run demo:liquidity:all` - Run all 9 demos (orchestrator)
321
+ - `npm run demo:liquidity:detailed` - Complete lifecycle
322
+ - `npm run demo:liquidity:ticks` - Advanced tick positions
323
+ - `npm run demo:liquidity:portfolio` - Multi-position management
324
+ - `npm run demo:liquidity:apr` - APR calculations
325
+ - `npm run demo:liquidity:errors` - Error handling
326
+ - `npm run demo:liquidity:fetch-all` - Pagination example
327
+ - `npm run demo:liquidity:positions-with-prices` - Price enrichment
328
+
329
+ **Orchestrator Usage:**
330
+
331
+ ```bash
332
+ # Run all liquidity demos
333
+ npm run demo:liquidity:all
334
+
335
+ # Skip specific demos
336
+ npm run demo:liquidity:all -- --skip=detailed,ticks
337
+
338
+ # Run only specific demos
339
+ npm run demo:liquidity:all -- --only=portfolio,apr
340
+ ```
341
+
342
+ ---
343
+
344
+ ## Bonding Curve Trading
345
+
346
+ Trade tokens that are still in bonding curve pools (pre-graduation).
347
+
348
+ ### Buy Tokens on Bonding Curve
349
+
350
+ ```typescript
351
+ const sdk = createLaunchpadSDK({
352
+ environment: 'production',
353
+ privateKey: process.env.WALLET_PRIVATE_KEY
354
+ });
355
+
356
+ // Calculate purchase amounts
357
+ const quote = await sdk.calculateBuyAmount({
358
+ tokenName: 'anime',
359
+ amount: '100',
360
+ type: 'native'
361
+ });
362
+
363
+ console.log(`For 100 GALA:`);
364
+ console.log(` Receive: ${quote.amount} tokens`);
365
+ console.log(` Fee: ${quote.reverseBondingCurveFee} GALA`);
366
+ console.log(` Total cost: ${quote.totalCost} GALA`);
367
+
368
+ // Execute purchase
369
+ const result = await sdk.buy({
370
+ tokenName: 'anime',
371
+ amount: '100',
372
+ type: 'native',
373
+ expectedAmount: quote.amount,
374
+ slippageToleranceFactor: 0.01
375
+ });
376
+
377
+ console.log(`✓ Purchase completed: ${result.transactionId}`);
378
+ ```
379
+
380
+ ### Sell Tokens on Bonding Curve
381
+
382
+ ```typescript
383
+ // Calculate sale amounts
384
+ const quote = await sdk.calculateSellAmount({
385
+ tokenName: 'anime',
386
+ amount: '10000',
387
+ type: 'exact'
388
+ });
389
+
390
+ console.log(`Selling 10,000 tokens:`);
391
+ console.log(` Receive: ${quote.amount} GALA`);
392
+ console.log(` Fee: ${quote.reverseBondingCurveFee} GALA`);
393
+
394
+ // Execute sale
395
+ const result = await sdk.sell({
396
+ tokenName: 'anime',
397
+ amount: '10000',
398
+ type: 'exact',
399
+ expectedAmount: quote.amount,
400
+ slippageToleranceFactor: 0.01
401
+ });
402
+
403
+ console.log(`✓ Sale completed: ${result.transactionId}`);
404
+ ```
405
+
406
+ **Bonding Curve Demos:**
407
+ - `npm run demo:trades` - Basic buy/sell operations
408
+
409
+ **Coming Soon (Bonding Curve Orchestrator):**
410
+ 8 additional bonding curve demos planned:
411
+ - Pool discovery and filtering
412
+ - Price calculation methods
413
+ - Graduation simulation
414
+ - Multi-token analysis
415
+ - Fee structure exploration
416
+ - Slippage testing scenarios
417
+ - Liquidity depth analysis
418
+ - Graduation timing optimization
419
+
420
+ ---
421
+
422
+ ## DEX Trading
423
+
424
+ Trade graduated tokens on the GalaSwap DEX.
425
+
426
+ ### Get Swap Quote
427
+
428
+ ```typescript
429
+ const sdk = createLaunchpadSDK({ environment: 'production' });
430
+
431
+ // Quote for exact input (how many GUSDC for 100 GALA?)
432
+ // v3.33.0+ requires delimited token format
433
+ const quoteInput = await sdk.getSwapQuoteExactInput('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '100');
434
+
435
+ console.log(`Spend 100 GALA → Receive ~${quoteInput.estimatedOutput} GUSDC`);
436
+ console.log(`Price impact: ${(quoteInput.priceImpact * 100).toFixed(2)}%`);
437
+ console.log(`Suggested fee tier: ${quoteInput.feeTier} bps`);
438
+
439
+ // Quote for exact output (how much GALA to get 100 GUSDC?)
440
+ const quoteOutput = await sdk.getSwapQuoteExactOutput('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '100');
441
+
442
+ console.log(`Need ${quoteOutput.inputAmount} GALA → Get 100 GUSDC`);
443
+ console.log(`Price impact: ${(quoteOutput.priceImpact * 100).toFixed(2)}%`);
444
+ ```
445
+
446
+ ### Execute Swap
447
+
448
+ ```typescript
449
+ const sdk = createLaunchpadSDK({
450
+ environment: 'production',
451
+ privateKey: process.env.WALLET_PRIVATE_KEY
452
+ });
453
+
454
+ // Step 1: Get quote (v3.33.0+ requires delimited token format)
455
+ const quote = await sdk.getSwapQuoteExactInput('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '100');
456
+
457
+ // Step 2: Execute swap with 1% slippage protection
458
+ const result = await sdk.executeSwap(
459
+ 'GALA|Unit|none|none',
460
+ 'GUSDC|Unit|none|none',
461
+ '100',
462
+ quote.estimatedOutput,
463
+ quote.feeTier,
464
+ 0.01 // 1% slippage
465
+ );
466
+
467
+ console.log(`Swap initiated: ${result.transactionId}`);
468
+ console.log(`Expected output: ~${quote.estimatedOutput} GUSDC`);
469
+
470
+ // Step 3: Wait for confirmation
471
+ await result.wait();
472
+
473
+ console.log(`✓ Swap completed!`);
474
+ console.log(`Received: ${result.outputAmount} GUSDC`);
475
+ ```
476
+
477
+ ### Discover DEX Pools
478
+
479
+ ```typescript
480
+ // Find high-TVL pools
481
+ const pools = await sdk.fetchDexPools({
482
+ search: 'GALA',
483
+ sortBy: 'tvl',
484
+ sortOrder: 'desc',
485
+ limit: 10
486
+ });
487
+
488
+ pools.pools.forEach(pool => {
489
+ console.log(`${pool.poolPair}: $${pool.tvl.toLocaleString()} TVL`);
490
+ console.log(` 24h Volume: $${pool.volume1d.toLocaleString()}`);
491
+ console.log(` APR: ${pool.apr1d.toFixed(2)}%`);
492
+ });
493
+ ```
494
+
495
+ **DEX Demos (6 total):**
496
+ - `npm run demo:dex` - Swap workflow (quote → execute → confirm)
497
+ - `npm run demo:dex:pools` - Pool discovery and metrics
498
+ - `npm run demo:dex:pricing` - Pool pricing and TVL analysis
499
+ - `npm run demo:dex:quotes` - Quote comparison
500
+ - `npm run demo:dex:roundtrip` - Complete liquidity workflow
501
+ - `npm run demo:roundtrip:swap` - Buy → Sell → Verify
502
+
503
+ **Symmetry Note:** Both `bonding-curve/` and `dex/` categories have pool discovery demos for consistent learning patterns.
504
+
505
+ ---
506
+
507
+ ## DEX Leaderboard & Volume Analytics
508
+
509
+ Competitive DEX leaderboard system with achievement tracking and platform-wide volume metrics.
510
+
511
+ ### Fetch All Seasons
512
+
513
+ ```typescript
514
+ const sdk = createLaunchpadSDK({ environment: 'production' });
515
+
516
+ // Get all available competitive seasons
517
+ const seasons = await sdk.fetchAllDexSeasons();
518
+
519
+ console.log(`Total seasons: ${seasons.length}`);
520
+ seasons.forEach(season => {
521
+ const days = Math.ceil((new Date(season.end).getTime() - new Date(season.start).getTime()) / (1000 * 60 * 60 * 24));
522
+ console.log(`${season.name} (ID: ${season.id}): ${days} days`);
523
+ });
524
+ ```
525
+
526
+ ### Get Current Season & Leaderboard
527
+
528
+ ```typescript
529
+ // Get current active season
530
+ const currentSeason = await sdk.fetchCurrentDexSeason();
531
+ console.log(`Active: ${currentSeason.name}`);
532
+
533
+ // Get current season leaderboard (top 10)
534
+ const leaderboard = await sdk.fetchCurrentDexLeaderboard({ limit: 10 });
535
+
536
+ console.log(`🏆 Top Traders (${currentSeason.name}):`);
537
+ leaderboard.rankings.forEach(entry => {
538
+ const titles = entry.masteryTitles.map(t => t.name).join(', ');
539
+ console.log(`${entry.rank}. ${entry.wallet.slice(0, 12)}...`);
540
+ console.log(` XP: ${entry.totalXp} | Distribution: ${entry.distributionPercent}%`);
541
+ console.log(` Trading: ${entry.tradingXp} | Liquidity: ${entry.liquidityXp}`);
542
+ if (titles) console.log(` Achievements: ${titles}`);
543
+ });
544
+ ```
545
+
546
+ ### Query Historic Season Leaderboard
547
+
548
+ ```typescript
549
+ // Get leaderboard from a specific season (e.g., Season 1, ID=4)
550
+ const historicLeaderboard = await sdk.fetchDexLeaderboardBySeasonId(4, { limit: 5 });
551
+
552
+ console.log(`Season 1 Final Rankings:`);
553
+ historicLeaderboard.rankings.forEach(entry => {
554
+ console.log(`${entry.rank}. ${entry.wallet}: ${entry.totalXp} XP`);
555
+ });
556
+ ```
557
+
558
+ ### Platform Volume Metrics
559
+
560
+ ```typescript
561
+ // Get platform-wide DEX volume summary
562
+ const volume = await sdk.fetchDexAggregatedVolumeSummary();
563
+
564
+ console.log(`📊 DEX Platform Volume:`);
565
+ console.log(` 24h: $${volume.volume1d.toFixed(2)} (${(volume.volume1dDelta * 100).toFixed(1)}%)`);
566
+ console.log(` 7d: $${volume.volume7d.toFixed(2)} (${(volume.volume7dDelta * 100).toFixed(1)}%)`);
567
+ console.log(` 30d: $${volume.volume30d.toFixed(2)} (${(volume.volume30dDelta * 100).toFixed(1)}%)`);
568
+
569
+ // Trend analysis
570
+ if (volume.volume1dDelta > volume.volume7dDelta) {
571
+ console.log(`📈 Accelerating: 24h growth stronger than 7d avg`);
572
+ } else if (volume.volume1dDelta < -0.1) {
573
+ console.log(`📉 Warning: Significant 24h decline (${(volume.volume1dDelta * 100).toFixed(1)}%)`);
574
+ }
575
+ ```
576
+
577
+ **DEX Leaderboard & Volume Demos (3 total):**
578
+ - `npm run demo:dex:leaderboard` - Seasonal leaderboard queries and XP rankings
579
+ - `npm run demo:dex:volume-summary` - Platform volume metrics and trend analysis
580
+ - `npm run demo:dex:all` - Orchestrator managing all DEX demos (pools, pricing, swap, leaderboard, volume)
581
+
582
+ ---
583
+
584
+ ## Fee Generation & Collection
585
+
586
+ Liquidity provider fee workflows with multi-wallet testing.
587
+
588
+ ### Basic Fee Generation
589
+
590
+ ```typescript
591
+ const sdk = createLaunchpadSDK({
592
+ environment: 'production',
593
+ privateKey: process.env.WALLET_PRIVATE_KEY
594
+ });
595
+
596
+ // Step 1: Create liquidity position (v3.33.0+ requires delimited token format)
597
+ const position = await sdk.addSwapLiquidityByPrice({
598
+ token0: 'GALA|Unit|none|none',
599
+ token1: 'GUSDC|Unit|none|none',
600
+ fee: 3000,
601
+ minPrice: '0.95',
602
+ maxPrice: '1.05',
603
+ amount0Desired: '1000',
604
+ amount1Desired: '1000'
605
+ });
606
+
607
+ await position.wait();
608
+ console.log(`Position created: ${position.positionId}`);
609
+
610
+ // Step 2: Execute swaps to generate fees
611
+ for (let i = 0; i < 10; i++) {
612
+ const swap = await sdk.executeSwap('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '10', ...);
613
+ await swap.wait();
614
+ console.log(`Swap ${i + 1} completed`);
615
+ }
616
+
617
+ // Step 3: Check accumulated fees
618
+ const positionData = await sdk.getSwapLiquidityPositionById(
619
+ 'eth|0x...',
620
+ position.positionId
621
+ );
622
+
623
+ console.log(`Fees accumulated:`);
624
+ console.log(` ${positionData.feeAmount0} GALA`);
625
+ console.log(` ${positionData.feeAmount1} GUSDC`);
626
+
627
+ // Step 4: Collect fees
628
+ const collected = await sdk.collectSwapPositionFees({
629
+ ownerAddress: 'eth|0x...',
630
+ positionId: position.positionId
631
+ });
632
+
633
+ console.log(`✓ Collected: ${collected.amount0Collected} + ${collected.amount1Collected}`);
634
+ ```
635
+
636
+ ### High-Volume Fee Testing
637
+
638
+ ```typescript
639
+ // Simulate high trading volume to test fee accumulation
640
+ const highVolumeSwaps = 100;
641
+ const swapAmount = '50'; // 50 GALA per swap
642
+
643
+ console.log(`Generating ${highVolumeSwaps} swaps...`);
644
+
645
+ for (let i = 0; i < highVolumeSwaps; i++) {
646
+ const quote = await sdk.getSwapQuoteExactInput('GALA|Unit|none|none', 'GUSDC|Unit|none|none', swapAmount);
647
+ const swap = await sdk.executeSwap('GALA|Unit|none|none', 'GUSDC|Unit|none|none', swapAmount, quote.estimatedOutput, quote.feeTier, 0.01);
648
+ await swap.wait();
649
+
650
+ if ((i + 1) % 10 === 0) {
651
+ console.log(`${i + 1}/${highVolumeSwaps} swaps completed`);
652
+ }
653
+ }
654
+
655
+ console.log(`✓ High-volume testing complete`);
656
+ ```
657
+
658
+ **Fee Demos (5 total):**
659
+ - `npm run demo:fees` - Basic fee generation and collection
660
+ - `npm run demo:fees:high-volume` - High-volume trading simulation
661
+ - `npm run demo:fees:test` - Complete fee lifecycle test suite
662
+ - `npm run demo:fees:trade-collect` - Single workflow (trade + collect)
663
+
664
+ **Advanced (not exposed as npm script):**
665
+ - `tsx examples/fees/demo-multi-wallet-fee-generation.ts` - Multi-wallet fee workflows
666
+
667
+ ---
668
+
669
+ ## Real-Time Monitoring
670
+
671
+ Monitor pool and token creation events using WebSocket event watchers.
672
+
673
+ ### Watch for DEX Pool Creation
674
+
675
+ ```typescript
676
+ const sdk = createLaunchpadSDK({ environment: 'production' });
677
+
678
+ // Monitor for 60 seconds
679
+ const unsubscribe = sdk.onDexPoolCreation(
680
+ (pool) => {
681
+ console.log(`🆕 New pool: ${pool.poolPair}`);
682
+ console.log(` TVL: $${pool.tvl.toFixed(2)}`);
683
+ console.log(` 24h Volume: $${pool.volume1d.toFixed(2)}`);
684
+ console.log(` Fee tier: ${pool.fee}%`);
685
+ },
686
+ {
687
+ minTVL: 1000, // Only pools with $1k+ TVL
688
+ tokens: ['GALA', 'GUSDC'], // Only these token pairs
689
+ intervalMs: 30000 // Poll every 30 seconds
690
+ }
691
+ );
692
+
693
+ // Stop watching after 60 seconds
694
+ setTimeout(() => {
695
+ unsubscribe();
696
+ console.log('Stopped watching for new pools');
697
+ }, 60000);
698
+ ```
699
+
700
+ ### Watch for Launchpad Token Creation
701
+
702
+ ```typescript
703
+ // Monitor for new token launches
704
+ const unsubscribe = sdk.onLaunchpadTokenCreation(
705
+ (token) => {
706
+ console.log(`🚀 New token: ${token.tokenName}`);
707
+ console.log(` Symbol: ${token.symbol}`);
708
+ console.log(` Creator: ${token.creatorAddress}`);
709
+ console.log(` Created: ${new Date(token.createdAt).toISOString()}`);
710
+ },
711
+ {
712
+ creatorAddress: 'eth|0x...', // Optional: watch specific creator
713
+ intervalMs: 30000 // Poll every 30 seconds
714
+ }
715
+ );
716
+
717
+ // Stop watching after 2 minutes
718
+ setTimeout(() => {
719
+ unsubscribe();
720
+ console.log('Stopped watching for new tokens');
721
+ }, 120000);
722
+ ```
723
+
724
+ **Monitoring Demos (2 total):**
725
+ - `npm run demo:watch` - Watch for new DEX pool creation
726
+ - `npm run demo:watch:tokens` - Watch for new launchpad token launches
727
+
728
+ ---
729
+
730
+ ## Utilities
731
+
732
+ ### Portfolio & Balances
733
+
734
+ ```typescript
735
+ const sdk = createLaunchpadSDK({ environment: 'production' });
736
+
737
+ // GALA balance
738
+ const galaBalance = await sdk.fetchGalaBalance('eth|0x...');
739
+ console.log(`GALA: ${galaBalance.balance}`);
740
+
741
+ // Token balance on DEX
742
+ const assets = await sdk.getSwapUserAssets('eth|0x...');
743
+
744
+ console.log('DEX Assets:');
745
+ assets.forEach(asset => {
746
+ console.log(` ${asset.symbol}: ${asset.balance}`);
747
+ });
748
+
749
+ // Tokens you hold
750
+ const held = await sdk.fetchTokensHeld({
751
+ address: 'eth|0x...',
752
+ search: 'dragon' // Optional: filter by search
753
+ });
754
+
755
+ console.log('Tokens held:');
756
+ held.forEach(token => {
757
+ console.log(` ${token.symbol}: ${token.balance}`);
758
+ });
759
+ ```
760
+
761
+ ### Token Supply Metrics
762
+
763
+ ```typescript
764
+ // Query GALA supply information
765
+ const supplies = await sdk.fetchTokenClassesWithSupply([
766
+ {
767
+ collection: 'GALA',
768
+ category: 'Unit',
769
+ type: 'none',
770
+ additionalKey: 'none'
771
+ }
772
+ ]);
773
+
774
+ const gala = supplies[0];
775
+ console.log(`Token: ${gala.symbol} (${gala.name})`);
776
+ console.log(`Total Supply: ${gala.totalSupply}`);
777
+ console.log(`Max Supply: ${gala.maxSupply}`);
778
+ console.log(`Total Burned: ${gala.totalBurned}`);
779
+ console.log(`Decimals: ${gala.decimals}`);
780
+
781
+ // Calculate health metrics
782
+ const totalSupply = parseFloat(gala.totalSupply);
783
+ const maxSupply = parseFloat(gala.maxSupply);
784
+ const burned = parseFloat(gala.totalBurned);
785
+
786
+ const circulationPercent = (totalSupply / maxSupply) * 100;
787
+ const burnPercent = (burned / totalSupply) * 100;
788
+
789
+ console.log(`\nCirculation: ${circulationPercent.toFixed(2)}% of max supply`);
790
+ console.log(`Burned: ${burnPercent.toFixed(2)}% of total supply`);
791
+ ```
792
+
793
+ ### Metadata Cache Performance
794
+
795
+ ```typescript
796
+ // Warm cache by fetching pools
797
+ console.log('Warming cache...');
798
+ await sdk.fetchPools({ type: 'popular', limit: 50 });
799
+
800
+ // Check cache statistics
801
+ const stats = sdk.getCacheInfo();
802
+ console.log(`Cache warmed with ${stats.totalTokens} tokens`);
803
+ console.log(`Memory: ${(stats.cacheSize / 1024).toFixed(2)} KB`);
804
+
805
+ // Perform instant calculations using cached metadata
806
+ const tokens = ['anime', 'dragnrkti', 'rocketri'];
807
+
808
+ console.log('\nCalculating spot prices (instant, no network calls):');
809
+ console.time('Batch Calculations');
810
+
811
+ for (const token of tokens) {
812
+ const poolDetails = await sdk.fetchPoolDetailsForCalculation(token);
813
+
814
+ const buy100 = await sdk.calculateBuyAmountLocal({
815
+ tokenName: token,
816
+ amount: '100',
817
+ type: 'native',
818
+ currentSupply: poolDetails.currentSupply
819
+ });
820
+
821
+ console.log(`${token}: 100 GALA → ${buy100.amount} tokens`);
822
+ }
823
+
824
+ console.timeEnd('Batch Calculations');
825
+ // Output: Batch Calculations: ~50ms (vs ~2000ms without cache)
826
+ ```
827
+
828
+ **Utility Demos (5 total):**
829
+ - `npm run demo:cache` - Metadata cache warming and performance
830
+ - `npm run demo:token-supply` - Token supply metrics from GalaChain
831
+
832
+ **Additional (not exposed as npm scripts):**
833
+ - `tsx examples/utilities/balances.ts` - Multi-token balance queries
834
+ - `tsx examples/utilities/balance.ts` - Single token balance check
835
+ - `tsx examples/utilities/price-history.ts` - Historical price data (Node.js only)
836
+
837
+ ---
838
+
839
+ ## Error Handling
840
+
841
+ Common error patterns and solutions.
842
+
843
+ ### Network Errors
844
+
845
+ ```typescript
846
+ try {
847
+ const quote = await sdk.getSwapQuoteExactInput('GALA', 'INVALID', '100');
848
+ } catch (error) {
849
+ if (error.message.includes('Pool not found')) {
850
+ console.log('Token pair not available on DEX');
851
+ } else if (error.message.includes('Invalid token')) {
852
+ console.log('Check token symbol format');
853
+ } else if (error.message.includes('timeout')) {
854
+ console.log('Network request timeout - try again');
855
+ } else {
856
+ console.log(`Error: ${error.message}`);
857
+ }
858
+ }
859
+ ```
860
+
861
+ ### Wallet Requirements
862
+
863
+ ```typescript
864
+ import { ValidationError } from '@gala-chain/launchpad-sdk';
865
+
866
+ const sdk = createLaunchpadSDK({ environment: 'production' });
867
+ // No wallet configured
868
+
869
+ try {
870
+ await sdk.buy({ tokenName: 'anime', amount: '100', ... });
871
+ } catch (error) {
872
+ if (error instanceof ValidationError && error.code === 'WALLET_REQUIRED') {
873
+ console.log('This operation requires a wallet');
874
+ console.log('Configure wallet: sdk.setWallet(privateKey)');
875
+ }
876
+ }
877
+ ```
878
+
879
+ ### Slippage Protection
880
+
881
+ ```typescript
882
+ try {
883
+ const quote = await sdk.getSwapQuoteExactInput('GALA|Unit|none|none', 'GUSDC|Unit|none|none', '10000');
884
+ const result = await sdk.executeSwap(
885
+ 'GALA',
886
+ 'GUSDC',
887
+ '10000',
888
+ quote.estimatedOutput,
889
+ quote.feeTier,
890
+ 0.01 // 1% slippage tolerance
891
+ );
892
+ } catch (error) {
893
+ if (error.message.includes('slippage')) {
894
+ console.log('Price moved beyond slippage tolerance');
895
+ console.log('Increase slippage or retry with fresh quote');
896
+ }
897
+ }
898
+ ```
899
+
900
+ **Error Handling Demo:**
901
+ - `npm run demo:liquidity:errors` - Comprehensive error scenarios
902
+
903
+ ---
904
+
905
+ ## More Examples
906
+
907
+ See the `examples/` directory for complete working demos organized by category:
908
+
909
+ ```
910
+ examples/
911
+ ├── core/ # 4 demos - SDK fundamentals
912
+ ├── liquidity/ # 9 demos - LP position management
913
+ ├── bonding-curve/ # 1 demo + 8 planned - Pre-graduation trading
914
+ ├── dex/ # 6 demos - DEX trading
915
+ ├── fees/ # 5 demos - Fee workflows
916
+ ├── monitoring/ # 2 demos - Real-time events
917
+ ├── utilities/ # 5 demos - Helper operations
918
+ └── debug/ # 3 tools - Development utilities
919
+ ```
920
+
921
+ **Total:** 36 demos covering all major SDK features
922
+
923
+ For migration from old demo structure, see [docs/DEMO_MIGRATION_GUIDE.md](./docs/DEMO_MIGRATION_GUIDE.md).