@gala-chain/launchpad-sdk 9.0.0-rc.4 → 9.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0-rc.6
4
+
5
+ Since 9.0.0-rc.5 (published). Core peer range is unchanged (`>=1.0.0-rc.7 <2`).
6
+
7
+ - **`OverseerSummaryResponse.graduatedPools`**: `getOverseerSummary()` / `OverseerService.getSummary()` now
8
+ carry the number of graduated pools (the pools `fetchPools({ isGraduated: true })` lists), next to
9
+ `totalPools`. It is a new field of the `/v1/overseer-summary` response, so it is present once the
10
+ launchpad backend that adds it is deployed; against an older backend it is `undefined` at runtime.
11
+
12
+ ## 9.0.0-rc.5
13
+
14
+ No behaviour change. Since 9.0.0-rc.4 (published): the published declarations no longer name a
15
+ Gala-internal repo (two `@deprecated` notes say "the swap backend"), and the JSDoc examples match the
16
+ API (`creds.rtmpsUrl`, reaction options without a `tokenName`, chat events with a top-level
17
+ `content`). Core peer range is unchanged (`>=1.0.0-rc.7 <2`).
18
+
3
19
  ## 9.0.0-rc.4
4
20
 
5
21
  Since 9.0.0-rc.3 (published). Core peer floor is now `>=1.0.0-rc.7 <2`.
@@ -180,7 +196,7 @@ built declarations of both versions (`pnpm docs:migration`).
180
196
 
181
197
  ### App-owned session (a browser app's httpOnly-cookie JWT session)
182
198
 
183
- - **`session` in `LaunchpadSDKConfig`.** A browser app (launchpad-frontend-v3) keeps its own JWT
199
+ - **`session` in `LaunchpadSDKConfig`.** A browser app keeps its own JWT
184
200
  session: the refresh token is an httpOnly cookie the backend sets for `cookieSession: true`
185
201
  logins, and the app is the one token authority. With `session: { accessToken, onUnauthorized,
186
202
  credentials? }` every launchpad-backend request takes its bearer from `accessToken()` (awaited per
@@ -653,17 +669,17 @@ typed entry on it (`RealtimeEventPayloads`, read from the emit sites, not from t
653
669
  their `EXECUTE_*` flag said) are plain boolean tests, and `tests/constant-boolean-null-check.test.ts`
654
670
  refuses the shape.
655
671
 
656
- ### The `/bundle` signing schemes (unchanged bytes; for Andy)
672
+ ### The `/bundle` signing schemes (unchanged bytes)
657
673
 
658
674
  Two schemes post to the bundler's `/bundle`, and both have callers, so both stay:
659
675
  `sdk.launchpad.buyWithNative / buyExactToken / sellWithNative / sellExactToken / createSale`
660
676
  (`BundlerTransport`) signs EIP-712 typed data (`signTypedData`, the GalaChain domain; pinned by
661
- `tests/golden/bundler-typed-data.golden.json`): what the live launchpad frontend
662
- (launchpad-frontend-v3, `signTypedData` / `eth_signTypedData`) and the MCP trading tools send.
677
+ `tests/golden/bundler-typed-data.golden.json`): what the live launchpad web app
678
+ (`signTypedData` / `eth_signTypedData`) and the MCP trading tools send.
663
679
  `sdk.buy()` / `sdk.sell()` (`BundleService.buyToken / sellToken`) sign with the signer's
664
- `signObject` (native for a private key, personal-sign for a browser wallet): the native app calls
665
- these (`src/sdk/facades/trade.ts`), as do the examples. Retiring `BundleService`'s trade methods
666
- needs the native app moved to `sdk.launchpad.*` first (which changes the bytes it sends).
680
+ `signObject` (native for a private key, personal-sign for a browser wallet): React Native apps
681
+ call these (`src/sdk/facades/trade.ts`), as do the examples. Retiring `BundleService`'s trade
682
+ methods needs those apps moved to `sdk.launchpad.*` first (which changes the bytes they send).
667
683
 
668
684
  ### What moved to gala-core-sdk (the extraction steps, from the 8.1.0 baseline)
669
685
 
package/EXAMPLES.md CHANGED
@@ -4,7 +4,7 @@ Practical code examples for the launchpad SDK (9.0.0), organized by category. Fo
4
4
 
5
5
  > **9.0 is launchpad-only.** The DEX (quotes, swaps, pools, liquidity, fees, market prices, leaderboards) is
6
6
  > `@gala-chain/gswap-sdk`; its runnable demos are in
7
- > [`packages/gswap-sdk/examples/demos`](../gswap-sdk/examples/demos/README.md). Gateway-generic pieces
7
+ > `packages/gswap-sdk/examples/demos`. Gateway-generic pieces
8
8
  > (signers, wallet providers, React hooks, the bridge) are `@gala-chain/gala-core-sdk`'s. See
9
9
  > [MIGRATING-TO-9.0.md](./MIGRATING-TO-9.0.md) for where each removed export went.
10
10
 
@@ -26,7 +26,7 @@ Practical code examples for the launchpad SDK (9.0.0), organized by category. Fo
26
26
 
27
27
  **Launchpad tokens are addressed by `tokenName`; standard GalaChain tokens by a token id (`collection|category|type|additionalKey`).**
28
28
 
29
- ```
29
+ ```text
30
30
  Q: What operation am I performing?
31
31
  │
32
32
  ├── Buying/selling tokens on the bonding curve (pre-graduation)?
@@ -95,7 +95,7 @@ if (isGraduated) {
95
95
  | `lockTokens()` | ✅ | ✅ | Both work |
96
96
  | `fetchTokenBalance()` | ✅ | ✅ | Both work |
97
97
 
98
- > **See Also:** For complete type definitions and utilities, see [`src/types/token.types.ts`](./src/types/token.types.ts)
98
+ > **See Also:** For complete type definitions and utilities, see `src/types/token.types.ts`
99
99
 
100
100
  ---
101
101
 
@@ -183,7 +183,7 @@ npm run demo:token-supply # Token supply metrics from GalaChain
183
183
  ### 5. The DEX
184
184
 
185
185
  Swaps, liquidity, fees, pools and market data are `@gala-chain/gswap-sdk`'s. Its demos:
186
- [`packages/gswap-sdk/examples/demos/README.md`](../gswap-sdk/examples/demos/README.md)
186
+ `packages/gswap-sdk/examples/demos/README.md`
187
187
  (`npx tsx src/<dir>/<file>.ts`).
188
188
 
189
189
  ---
@@ -202,7 +202,7 @@ const sdk = createLaunchpadSDK({
202
202
  });
203
203
 
204
204
  // Query operations work without wallet
205
- const pools = await sdk.fetchPools({ type: 'popular', limit: 10 });
205
+ const pools = await sdk.fetchPools({ type: 'popular', pageSize: 10 });
206
206
  const price = await sdk.fetchTokenPrice({ tokenName: 'anime' });
207
207
  ```
208
208
 
@@ -211,7 +211,7 @@ const price = await sdk.fetchTokenPrice({ tokenName: 'anime' });
211
211
  ```typescript
212
212
  const sdk = createLaunchpadSDK({
213
213
  env: 'prod',
214
- privateKey: process.env.WALLET_PRIVATE_KEY
214
+ privateKey: process.env.WALLET_PRIVATE_KEY!
215
215
  });
216
216
 
217
217
  // Now you can submit trades
@@ -221,14 +221,16 @@ const result = await sdk.buy({ tokenName: 'anime', amount: '100', type: 'native'
221
221
  **Dynamic Wallet Configuration:**
222
222
 
223
223
  ```typescript
224
+ import { Wallet } from 'ethers';
225
+
224
226
  // Start in read-only mode
225
227
  const sdk = createLaunchpadSDK({ env: 'prod' });
226
228
 
227
229
  // Later, upgrade to full-access
228
- sdk.setWallet('your-private-key');
230
+ sdk.setWallet(new Wallet(process.env.WALLET_PRIVATE_KEY!));
229
231
 
230
232
  // Now signing operations work
231
- const result = await sdk.buy({ tokenName: 'anime', amount: '100', ... });
233
+ const result = await sdk.buy({ tokenName: 'anime', amount: '100', type: 'native', expectedAmount: '1' });
232
234
  ```
233
235
 
234
236
  **Demos:**
@@ -247,7 +249,7 @@ Trade tokens that are still in bonding curve pools (pre-graduation).
247
249
  ```typescript
248
250
  const sdk = createLaunchpadSDK({
249
251
  env: 'prod',
250
- privateKey: process.env.WALLET_PRIVATE_KEY
252
+ privateKey: process.env.WALLET_PRIVATE_KEY!
251
253
  });
252
254
 
253
255
  // Calculate purchase amounts
@@ -359,14 +361,14 @@ Live streaming and real-time chat features for token communities.
359
361
  ```typescript
360
362
  const sdk = createLaunchpadSDK({
361
363
  env: 'prod',
362
- privateKey: process.env.WALLET_PRIVATE_KEY,
364
+ privateKey: process.env.WALLET_PRIVATE_KEY!,
363
365
  streamWebSocketUrl: 'wss://stream.example.com'
364
366
  });
365
367
 
366
- // Get stream info for a token
367
- const streamInfo = await sdk.getStreamInfo('mytoken');
368
- console.log(`Status: ${streamInfo.status}`);
369
- console.log(`Is Live: ${streamInfo.isLive}`);
368
+ // Stream credentials (stream key, RTMP URL, playback id) of a token you own
369
+ const creds = await sdk.getStreamCredentials('mytoken');
370
+ console.log(`RTMPS URL: ${creds.rtmpsUrl}`);
371
+ console.log(`Playback ID: ${creds.playbackId}`);
370
372
 
371
373
  // Check global streaming status
372
374
  const globalStatus = await sdk.getGlobalStreamingStatus();
@@ -376,17 +378,12 @@ console.log(`Streaming enabled globally: ${globalStatus.enabled}`);
376
378
  ### Engagement Statistics
377
379
 
378
380
  ```typescript
379
- // Get engagement metrics for analytics dashboards
380
- const stats = await sdk.getEngagementStats({ tokenName: 'mytoken' });
381
-
382
- console.log('Chat Statistics (Current/Last Session):');
383
- console.log(` Message Count: ${stats.chat.messageCount}`);
384
- console.log(` Unique Chatters: ${stats.chat.uniqueChatters}`);
385
- console.log(` Session Since: ${stats.chat.since || 'N/A'}`);
386
-
387
- console.log('Comment Statistics (All-Time):');
388
- console.log(` Total Comments: ${stats.comments.count}`);
389
- console.log(` Unique Commenters: ${stats.comments.uniqueCommenters}`);
381
+ // Engagement metrics for analytics dashboards arrive on the token room about every 15 seconds
382
+ // while there is chat activity
383
+ const unsubscribe = sdk.onEngagementStatsUpdated((event) => {
384
+ console.log(`${event.tokenName}: ${event.chat.messageCount} chat messages`);
385
+ console.log(`Comments: ${event.comments.count} from ${event.comments.uniqueCommenters} users`);
386
+ });
390
387
  ```
391
388
 
392
389
  ### Real-Time Chat with WebSocket
@@ -397,13 +394,13 @@ await sdk.connectStreamWebSocket({
397
394
  onTypingIndicator: (event) => {
398
395
  const count = event.typingUsers.length;
399
396
  if (count === 1) {
400
- console.log(`${event.typingUsers[0].fullName} is typing...`);
397
+ console.log(`${event.typingUsers[0]?.fullName} is typing...`);
401
398
  } else if (count > 1) {
402
399
  console.log(`${count} people are typing...`);
403
400
  }
404
401
  },
405
402
  onChatMessage: (event) => {
406
- console.log(`[${event.message.user?.fullName}]: ${event.message.content}`);
403
+ console.log(`[${event.user?.fullName}]: ${event.content}`);
407
404
  }
408
405
  });
409
406
 
@@ -474,7 +471,7 @@ const sdk = createLaunchpadSDK({ env: 'prod' });
474
471
 
475
472
  // GALA balance
476
473
  const galaBalance = await sdk.fetchGalaBalance('eth|...');
477
- console.log(`GALA: ${galaBalance?.balance}`);
474
+ console.log(`GALA: ${galaBalance?.quantity}`);
478
475
 
479
476
  // Tokens you hold
480
477
  const held = await sdk.fetchTokensHeld({
@@ -502,6 +499,7 @@ const supplies = await sdk.fetchTokenClassesWithSupply([
502
499
  ]);
503
500
 
504
501
  const gala = supplies[0];
502
+ if (gala === undefined) throw new Error('GALA token class not returned');
505
503
  console.log(`Token: ${gala.symbol} (${gala.name})`);
506
504
  console.log(`Total Supply: ${gala.totalSupply}`);
507
505
  console.log(`Max Supply: ${gala.maxSupply}`);
@@ -525,7 +523,7 @@ console.log(`Burned: ${burnPercent.toFixed(2)}% of total supply`);
525
523
  ```typescript
526
524
  // Warm cache by fetching pools
527
525
  console.log('Warming cache...');
528
- await sdk.fetchPools({ type: 'popular', limit: 50 });
526
+ await sdk.fetchPools({ type: 'popular', pageSize: 50 });
529
527
 
530
528
  // Check cache statistics
531
529
  const stats = sdk.getCacheInfo();
@@ -581,7 +579,7 @@ const sdk = createLaunchpadSDK({ env: 'prod' });
581
579
  // No wallet configured
582
580
 
583
581
  try {
584
- await sdk.buy({ tokenName: 'anime', amount: '100', ... });
582
+ await sdk.buy({ tokenName: 'anime', amount: '100', type: 'native', expectedAmount: '1' });
585
583
  } catch (error) {
586
584
  if (error instanceof ValidationError && error.code === 'WALLET_REQUIRED') {
587
585
  console.log('This operation requires a wallet');
@@ -603,7 +601,7 @@ try {
603
601
  slippageToleranceFactor: 0.01
604
602
  });
605
603
  } catch (error) {
606
- if (error.message.includes('slippage')) {
604
+ if (error instanceof Error && error.message.includes('slippage')) {
607
605
  console.log('Price moved beyond slippage tolerance');
608
606
  console.log('Increase slippage or retry with a fresh quote');
609
607
  }
@@ -616,6 +614,6 @@ try {
616
614
 
617
615
  See the `examples/` directory for the working demos by category (`examples/README.md` lists them);
618
616
  `npm run demo:list` browses them. DEX demos live in
619
- [`packages/gswap-sdk/examples/demos`](../gswap-sdk/examples/demos/README.md).
617
+ `packages/gswap-sdk/examples/demos`.
620
618
 
621
- For migration from old demo structure, see [docs/DEMO_MIGRATION_GUIDE.md](./docs/DEMO_MIGRATION_GUIDE.md).
619
+ For migration from old demo structure, see `docs/DEMO_MIGRATION_GUIDE.md` in the package.
package/README.md CHANGED
@@ -21,10 +21,7 @@ For the DEX, install `@gala-chain/gswap-sdk` 2.0 (also under `next`) next to thi
21
21
  ```ts
22
22
  import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
23
23
 
24
- const sdk = createLaunchpadSDK({
25
- env: 'stage',
26
- baseUrl: 'https://lpad-backend.stage.defi.ovh.gala.com',
27
- });
24
+ const sdk = createLaunchpadSDK({ env: 'stage' });
28
25
 
29
26
  const pools = await sdk.fetchPools({ pageSize: 10 });
30
27
  console.log(pools);
@@ -79,6 +76,7 @@ clients from the same key (`sdk.dex` is gone, and so are `fetchAllDexSeasons`,
79
76
  `gSwap.market.getVolumeSummary()` and `gSwap.pools.watchNewPools()`):
80
77
 
81
78
  ```ts
79
+ import BigNumber from 'bignumber.js';
82
80
  import { PrivateKeySigner } from '@gala-chain/gala-core-sdk';
83
81
  import { GSwap } from '@gala-chain/gswap-sdk';
84
82
 
@@ -97,8 +95,10 @@ const quote = await gSwap.quoting.quoteExactInput(
97
95
  const swap = await gSwap.swaps.swap(
98
96
  'GALA|Unit|none|none',
99
97
  'GUSDC|Unit|none|none',
100
- quote.fee,
101
- { exactIn: '100', amountOutMinimum: quote.amountOut },
98
+ quote.feeTier,
99
+ // The least you accept: a swap is applied seconds after the quote, so a bound equal to the quote
100
+ // is rejected whenever the price moves in between.
101
+ { exactIn: '100', amountOutMinimum: new BigNumber(quote.amountOut).multipliedBy('0.99').toFixed() },
102
102
  );
103
103
  // The swap is queued (swap.mode === 'queued'); confirm() resolves the applied trade
104
104
  // or throws the chain's rejection.
@@ -114,12 +114,12 @@ Use `gSwap.pools`, `gSwap.positions`, `gSwap.symbols`, `gSwap.assets`, `gSwap.ma
114
114
 
115
115
  ## Hosts
116
116
 
117
- The stage defaults are `lpad-backend.stage.defi.ovh.gala.com` for launchpad reads, `swap-backend.stage.defi.ovh.gala.com` for DEX reads, and `gateway-testnet.galachain.com` for gateway operations. Production host values are selected by `env: 'prod'`.
117
+ `env: 'stage'` selects the Gala staging backends for launchpad reads and DEX reads, and `gateway-testnet.galachain.com` for gateway operations. Production host values are selected by `env: 'prod'`; `baseUrl` overrides the launchpad host.
118
118
 
119
119
  ## Further reading
120
120
 
121
121
  - [Migrating to 9.0](./MIGRATING-TO-9.0.md)
122
- - [Changelog](./CHANGELOG.md)
122
+ - Changelog: `CHANGELOG.md` in the package root
123
123
  - [API reference](./docs/API-REFERENCE.md)
124
- - [Examples](./examples/README.md)
125
- - [gswap-sdk DEX demos](../gswap-sdk/examples/demos/README.md)
124
+ - [Examples](./EXAMPLES.md)
125
+ - [gswap-sdk](../gswap-sdk/README.md): the DEX SDK, with its own runnable demos
@@ -2866,7 +2866,7 @@ export declare class LaunchpadSDK {
2866
2866
  * ```typescript
2867
2867
  * const creds = await sdk.getStreamCredentials('mytoken');
2868
2868
  * console.log(`Stream Key: ${creds.streamKey}`);
2869
- * console.log(`RTMP URL: ${creds.rtmpUrl}`);
2869
+ * console.log(`RTMPS URL: ${creds.rtmpsUrl}`);
2870
2870
  * console.log(`Playback ID: ${creds.playbackId}`);
2871
2871
  * ```
2872
2872
  */
@@ -4389,6 +4389,7 @@ export declare class LaunchpadSDK {
4389
4389
  * console.log(`Total viewers: ${summary.totalViewers}`);
4390
4390
  * console.log(`Pending flags: ${summary.pendingFlags}`);
4391
4391
  * console.log(`Total pools: ${summary.totalPools}`);
4392
+ * console.log(`Graduated pools: ${summary.graduatedPools}`);
4392
4393
  * ```
4393
4394
  */
4394
4395
  getOverseerSummary(): Promise<OverseerSummaryResponse>;
@@ -5418,7 +5419,7 @@ export declare class LaunchpadSDK {
5418
5419
  * Adding the same reaction type again is a no-op (idempotent).
5419
5420
  * Users can have multiple different reaction types on the same message.
5420
5421
  *
5421
- * @param options - Options including tokenName, messageId, and reactionType
5422
+ * @param options - Options including messageId and reactionType
5422
5423
  * @returns Updated reaction data and whether reaction was newly created
5423
5424
  * @throws ValidationError if parameters are invalid
5424
5425
  * @throws ConfigurationError if authentication is not configured
@@ -5429,7 +5430,6 @@ export declare class LaunchpadSDK {
5429
5430
  * @example Add a heart reaction
5430
5431
  * ```typescript
5431
5432
  * const result = await sdk.addContentReaction({
5432
- * tokenName: 'mytoken',
5433
5433
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5434
5434
  * reactionType: 'heart'
5435
5435
  * });
@@ -5444,7 +5444,7 @@ export declare class LaunchpadSDK {
5444
5444
  * Requires JWT or API key authentication.
5445
5445
  * Only the user who created the reaction can remove it.
5446
5446
  *
5447
- * @param options - Options including tokenName, messageId, and reactionType
5447
+ * @param options - Options including messageId and reactionType
5448
5448
  * @returns Success indicator
5449
5449
  * @throws ValidationError if parameters are invalid
5450
5450
  * @throws ConfigurationError if authentication is not configured
@@ -5455,7 +5455,6 @@ export declare class LaunchpadSDK {
5455
5455
  * @example Remove a heart reaction
5456
5456
  * ```typescript
5457
5457
  * await sdk.removeContentReaction({
5458
- * tokenName: 'mytoken',
5459
5458
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5460
5459
  * reactionType: 'heart'
5461
5460
  * });
@@ -5467,7 +5466,7 @@ export declare class LaunchpadSDK {
5467
5466
  *
5468
5467
  * Convenience wrapper for addContentReaction specifically for chat messages.
5469
5468
  *
5470
- * @param options - Options including tokenName, messageId, and reactionType
5469
+ * @param options - Options including messageId and reactionType
5471
5470
  * @returns Updated reaction data
5472
5471
  *
5473
5472
  * @since 5.12.0
@@ -5476,7 +5475,6 @@ export declare class LaunchpadSDK {
5476
5475
  * @example Add a fire reaction to a chat message
5477
5476
  * ```typescript
5478
5477
  * await sdk.addReactionToChatMessage({
5479
- * tokenName: 'mytoken',
5480
5478
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5481
5479
  * reactionType: 'fire'
5482
5480
  * });
@@ -5488,7 +5486,7 @@ export declare class LaunchpadSDK {
5488
5486
  *
5489
5487
  * Convenience wrapper for removeContentReaction specifically for chat messages.
5490
5488
  *
5491
- * @param options - Options including tokenName, messageId, and reactionType
5489
+ * @param options - Options including messageId and reactionType
5492
5490
  * @returns Success indicator
5493
5491
  *
5494
5492
  * @since 5.12.0
@@ -5497,7 +5495,6 @@ export declare class LaunchpadSDK {
5497
5495
  * @example Remove a fire reaction from a chat message
5498
5496
  * ```typescript
5499
5497
  * await sdk.removeReactionFromChatMessage({
5500
- * tokenName: 'mytoken',
5501
5498
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5502
5499
  * reactionType: 'fire'
5503
5500
  * });
@@ -5509,7 +5506,7 @@ export declare class LaunchpadSDK {
5509
5506
  *
5510
5507
  * Convenience wrapper for addContentReaction specifically for comments.
5511
5508
  *
5512
- * @param options - Options including tokenName, messageId, and reactionType
5509
+ * @param options - Options including messageId and reactionType
5513
5510
  * @returns Updated reaction data
5514
5511
  *
5515
5512
  * @since 5.12.0
@@ -5518,7 +5515,6 @@ export declare class LaunchpadSDK {
5518
5515
  * @example Add a thumbs_up reaction to a comment
5519
5516
  * ```typescript
5520
5517
  * await sdk.addReactionToComment({
5521
- * tokenName: 'mytoken',
5522
5518
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5523
5519
  * reactionType: 'thumbs_up'
5524
5520
  * });
@@ -5530,7 +5526,7 @@ export declare class LaunchpadSDK {
5530
5526
  *
5531
5527
  * Convenience wrapper for removeContentReaction specifically for comments.
5532
5528
  *
5533
- * @param options - Options including tokenName, messageId, and reactionType
5529
+ * @param options - Options including messageId and reactionType
5534
5530
  * @returns Success indicator
5535
5531
  *
5536
5532
  * @since 5.12.0
@@ -5539,7 +5535,6 @@ export declare class LaunchpadSDK {
5539
5535
  * @example Remove a thumbs_up reaction from a comment
5540
5536
  * ```typescript
5541
5537
  * await sdk.removeReactionFromComment({
5542
- * tokenName: 'mytoken',
5543
5538
  * messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
5544
5539
  * reactionType: 'thumbs_up'
5545
5540
  * });
@@ -6345,7 +6340,7 @@ export declare class LaunchpadSDK {
6345
6340
  * console.log(`Viewers: ${event.viewerCount}`);
6346
6341
  * },
6347
6342
  * onChatMessage: (event) => {
6348
- * console.log(`Chat: ${event.message.content}`);
6343
+ * console.log(`Chat: ${event.content}`);
6349
6344
  * },
6350
6345
  * });
6351
6346
  * ```
@@ -7540,7 +7535,7 @@ export declare class LaunchpadSDK {
7540
7535
  * Use when you want guaranteed accuracy but don't mind network latency.
7541
7536
  *
7542
7537
  * @deprecated Use `getTradeQuote()` instead — it uses the backend-proxy for instant
7543
- * calculations without a direct GalaChain call. The defi-backend has removed direct
7538
+ * calculations without a direct GalaChain call. The swap backend has removed direct
7544
7539
  * chain quote endpoints in favour of the backend-proxy approach.
7545
7540
  *
7546
7541
  * @param options Buy amount calculation options
@@ -7562,7 +7557,7 @@ export declare class LaunchpadSDK {
7562
7557
  * Use when you want guaranteed accuracy but don't mind network latency.
7563
7558
  *
7564
7559
  * @deprecated Use `getTradeQuote()` instead — it uses the backend-proxy for instant
7565
- * calculations without a direct GalaChain call. The defi-backend has removed direct
7560
+ * calculations without a direct GalaChain call. The swap backend has removed direct
7566
7561
  * chain quote endpoints in favour of the backend-proxy approach.
7567
7562
  *
7568
7563
  * @param options Sell amount calculation options