@gala-chain/launchpad-sdk 9.0.0-rc.3 → 9.0.0-rc.5
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 +34 -7
- package/EXAMPLES.md +34 -36
- package/MIGRATING-TO-9.0.md +1 -1
- package/README.md +6 -9
- package/dist/LaunchpadSDK.d.ts +25 -31
- package/dist/LaunchpadSDK.d.ts.map +1 -1
- package/dist/constants/version.generated.d.ts +1 -1
- package/dist/index.browser.esm.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/native.cjs +1 -1
- package/dist/native.esm.js +1 -1
- package/dist/schemas/pagination.d.ts.map +1 -1
- package/dist/schemas/primitives.d.ts.map +1 -1
- package/dist/services/GalaChainLockService.d.ts +2 -2
- package/dist/services/GalaChainService.d.ts +1 -1
- package/dist/services/HolderService.d.ts +3 -3
- package/dist/services/MessagesService.d.ts +1 -1
- package/dist/services/OEmbedService.d.ts +3 -3
- package/dist/services/OverseerService.d.ts +1 -1
- package/dist/services/TradeService.d.ts +1 -1
- package/dist/services/WebSocketAdminService.d.ts +12 -12
- package/dist/services/WeeklyChallengeService.d.ts +2 -2
- package/dist/signing/signers.d.ts +1 -1
- package/dist/signing/signers.d.ts.map +1 -1
- package/dist/types/constraints.d.ts +1 -1
- package/dist/types/constraints.d.ts.map +1 -1
- package/dist/types/messages.dto.d.ts +1 -1
- package/dist/types/overseer.dto.d.ts +1 -1
- package/dist/types/session-auth.dto.d.ts +1 -1
- package/dist/types/session-auth.dto.d.ts.map +1 -1
- package/dist/types/trade.dto.d.ts +1 -1
- package/dist/types/trade.dto.d.ts.map +1 -1
- package/dist/types/user.dto.d.ts +1 -1
- package/dist/utils/address-formatter.d.ts +14 -2
- package/dist/utils/address-formatter.d.ts.map +1 -1
- package/dist/utils/string-patterns.d.ts +4 -4
- package/package.json +11 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.0.0-rc.5
|
|
4
|
+
|
|
5
|
+
No behaviour change. Since 9.0.0-rc.4 (published): the published declarations no longer name a
|
|
6
|
+
Gala-internal repo (two `@deprecated` notes say "the swap backend"), and the JSDoc examples match the
|
|
7
|
+
API (`creds.rtmpsUrl`, reaction options without a `tokenName`, chat events with a top-level
|
|
8
|
+
`content`). Core peer range is unchanged (`>=1.0.0-rc.7 <2`).
|
|
9
|
+
|
|
10
|
+
## 9.0.0-rc.4
|
|
11
|
+
|
|
12
|
+
Since 9.0.0-rc.3 (published). Core peer floor is now `>=1.0.0-rc.7 <2`.
|
|
13
|
+
|
|
14
|
+
- **`eth|0x<hex>` is refused everywhere, with one message, and core agrees.** This SDK already
|
|
15
|
+
refused it (rc.3); the text now is gala-core-sdk's own (`INVALID_ETH_USER_REF_PREFIX`):
|
|
16
|
+
`Invalid <field>: "<value>" is not a GalaChain user reference. An eth| reference takes the 40 hex
|
|
17
|
+
digits of the account with no 0x prefix; write it as "eth|<EIP-55 digits>".` It is the message
|
|
18
|
+
of `userRef` / `backendUserRef` (`ValidationError`, `code: 'INVALID_FORMAT'`), `AddressFormatter`
|
|
19
|
+
(`assertValid`, `toEthereumFormat`), `assertBackendUserAddress`, the `walletAddress` validator,
|
|
20
|
+
`flexibleAddressSchema`, the trade-filter `userAddress` schema and the signers'
|
|
21
|
+
`INVALID_SIGNER_OPTIONS`. Core rc.7 itself no longer converts `eth|0x...`, so a signer, a bridge
|
|
22
|
+
recipient or a gateway write handed one is refused the same way before anything is signed or sent.
|
|
23
|
+
- Two places still ACCEPTED `eth|0x...` and no longer do: `vaultAddressSchema`
|
|
24
|
+
(`/^eth\|(0x)?[0-9a-fA-F]{40}$/`) and `VAULT_ADDRESS_CONSTRAINT.ETH_PATTERN` / `isValidVaultAddress`
|
|
25
|
+
(`/^eth\|0x[0-9a-fA-F]{40}$/`, which refused the real `eth|<40 hex>`): both are `eth|<40 hex>`
|
|
26
|
+
now.
|
|
27
|
+
- Docs, doc comments and examples no longer show `eth|0x...` as an address (it was written in
|
|
28
|
+
about a hundred places).
|
|
29
|
+
|
|
3
30
|
## 9.0.0-rc.3
|
|
4
31
|
|
|
5
32
|
Since 9.0.0-rc.2 (published). Core peer floor stays `>=1.0.0-rc.6 <2`.
|
|
@@ -160,7 +187,7 @@ built declarations of both versions (`pnpm docs:migration`).
|
|
|
160
187
|
|
|
161
188
|
### App-owned session (a browser app's httpOnly-cookie JWT session)
|
|
162
189
|
|
|
163
|
-
- **`session` in `LaunchpadSDKConfig`.** A browser app
|
|
190
|
+
- **`session` in `LaunchpadSDKConfig`.** A browser app keeps its own JWT
|
|
164
191
|
session: the refresh token is an httpOnly cookie the backend sets for `cookieSession: true`
|
|
165
192
|
logins, and the app is the one token authority. With `session: { accessToken, onUnauthorized,
|
|
166
193
|
credentials? }` every launchpad-backend request takes its bearer from `accessToken()` (awaited per
|
|
@@ -633,17 +660,17 @@ typed entry on it (`RealtimeEventPayloads`, read from the emit sites, not from t
|
|
|
633
660
|
their `EXECUTE_*` flag said) are plain boolean tests, and `tests/constant-boolean-null-check.test.ts`
|
|
634
661
|
refuses the shape.
|
|
635
662
|
|
|
636
|
-
### The `/bundle` signing schemes (unchanged bytes
|
|
663
|
+
### The `/bundle` signing schemes (unchanged bytes)
|
|
637
664
|
|
|
638
665
|
Two schemes post to the bundler's `/bundle`, and both have callers, so both stay:
|
|
639
666
|
`sdk.launchpad.buyWithNative / buyExactToken / sellWithNative / sellExactToken / createSale`
|
|
640
667
|
(`BundlerTransport`) signs EIP-712 typed data (`signTypedData`, the GalaChain domain; pinned by
|
|
641
|
-
`tests/golden/bundler-typed-data.golden.json`): what the live launchpad
|
|
642
|
-
(
|
|
668
|
+
`tests/golden/bundler-typed-data.golden.json`): what the live launchpad web app
|
|
669
|
+
(`signTypedData` / `eth_signTypedData`) and the MCP trading tools send.
|
|
643
670
|
`sdk.buy()` / `sdk.sell()` (`BundleService.buyToken / sellToken`) sign with the signer's
|
|
644
|
-
`signObject` (native for a private key, personal-sign for a browser wallet):
|
|
645
|
-
these (`src/sdk/facades/trade.ts`), as do the examples. Retiring `BundleService`'s trade
|
|
646
|
-
needs
|
|
671
|
+
`signObject` (native for a private key, personal-sign for a browser wallet): React Native apps
|
|
672
|
+
call these (`src/sdk/facades/trade.ts`), as do the examples. Retiring `BundleService`'s trade
|
|
673
|
+
methods needs those apps moved to `sdk.launchpad.*` first (which changes the bytes they send).
|
|
647
674
|
|
|
648
675
|
### What moved to gala-core-sdk (the extraction steps, from the 8.1.0 baseline)
|
|
649
676
|
|
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
|
-
>
|
|
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
|
|
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
|
-
|
|
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',
|
|
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(
|
|
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
|
|
@@ -330,7 +332,7 @@ const unsubscribe = sdk.onLaunchpadTokenCreation(
|
|
|
330
332
|
console.log(` Created: ${new Date(token.createdAt).toISOString()}`);
|
|
331
333
|
},
|
|
332
334
|
{
|
|
333
|
-
creatorAddress: 'eth
|
|
335
|
+
creatorAddress: 'eth|...', // Optional: watch specific creator
|
|
334
336
|
intervalMs: 30000 // Poll every 30 seconds
|
|
335
337
|
}
|
|
336
338
|
);
|
|
@@ -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
|
-
//
|
|
367
|
-
const
|
|
368
|
-
console.log(`
|
|
369
|
-
console.log(`
|
|
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
|
-
//
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
console.log(
|
|
383
|
-
console.log(`
|
|
384
|
-
|
|
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]
|
|
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.
|
|
403
|
+
console.log(`[${event.user?.fullName}]: ${event.content}`);
|
|
407
404
|
}
|
|
408
405
|
});
|
|
409
406
|
|
|
@@ -473,12 +470,12 @@ await sdk.connectStreamWebSocket({
|
|
|
473
470
|
const sdk = createLaunchpadSDK({ env: 'prod' });
|
|
474
471
|
|
|
475
472
|
// GALA balance
|
|
476
|
-
const galaBalance = await sdk.fetchGalaBalance('eth
|
|
477
|
-
console.log(`GALA: ${galaBalance?.
|
|
473
|
+
const galaBalance = await sdk.fetchGalaBalance('eth|...');
|
|
474
|
+
console.log(`GALA: ${galaBalance?.quantity}`);
|
|
478
475
|
|
|
479
476
|
// Tokens you hold
|
|
480
477
|
const held = await sdk.fetchTokensHeld({
|
|
481
|
-
address: 'eth
|
|
478
|
+
address: 'eth|...',
|
|
482
479
|
search: 'dragon' // Optional: filter by search
|
|
483
480
|
});
|
|
484
481
|
|
|
@@ -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',
|
|
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
|
-
|
|
617
|
+
`packages/gswap-sdk/examples/demos`.
|
|
620
618
|
|
|
621
|
-
For migration from old demo structure, see
|
|
619
|
+
For migration from old demo structure, see `docs/DEMO_MIGRATION_GUIDE.md` in the package.
|
package/MIGRATING-TO-9.0.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Migrating from launchpad-sdk 8.1.0 to 9.0.0-rc.
|
|
1
|
+
# Migrating from launchpad-sdk 8.1.0 to 9.0.0-rc.4
|
|
2
2
|
|
|
3
3
|
Generated by `scripts/generate-migration-doc.ts` from the built declarations of the published
|
|
4
4
|
`@gala-chain/launchpad-sdk@8.1.0` tarball and of this build (do not edit by hand).
|
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);
|
|
@@ -97,7 +94,7 @@ const quote = await gSwap.quoting.quoteExactInput(
|
|
|
97
94
|
const swap = await gSwap.swaps.swap(
|
|
98
95
|
'GALA|Unit|none|none',
|
|
99
96
|
'GUSDC|Unit|none|none',
|
|
100
|
-
quote.
|
|
97
|
+
quote.feeTier,
|
|
101
98
|
{ exactIn: '100', amountOutMinimum: quote.amountOut },
|
|
102
99
|
);
|
|
103
100
|
// The swap is queued (swap.mode === 'queued'); confirm() resolves the applied trade
|
|
@@ -114,12 +111,12 @@ Use `gSwap.pools`, `gSwap.positions`, `gSwap.symbols`, `gSwap.assets`, `gSwap.ma
|
|
|
114
111
|
|
|
115
112
|
## Hosts
|
|
116
113
|
|
|
117
|
-
|
|
114
|
+
`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
115
|
|
|
119
116
|
## Further reading
|
|
120
117
|
|
|
121
118
|
- [Migrating to 9.0](./MIGRATING-TO-9.0.md)
|
|
122
|
-
-
|
|
119
|
+
- Changelog: `CHANGELOG.md` in the package root
|
|
123
120
|
- [API reference](./docs/API-REFERENCE.md)
|
|
124
|
-
- [Examples](./
|
|
125
|
-
- [gswap-sdk
|
|
121
|
+
- [Examples](./EXAMPLES.md)
|
|
122
|
+
- [gswap-sdk](../gswap-sdk/README.md): the DEX SDK, with its own runnable demos
|
package/dist/LaunchpadSDK.d.ts
CHANGED
|
@@ -1013,7 +1013,7 @@ export declare class LaunchpadSDK {
|
|
|
1013
1013
|
*
|
|
1014
1014
|
* @example
|
|
1015
1015
|
* ```typescript
|
|
1016
|
-
* const rank = await sdk.getHolderRank('anime', 'eth|
|
|
1016
|
+
* const rank = await sdk.getHolderRank('anime', 'eth|1234...');
|
|
1017
1017
|
* if (rank) {
|
|
1018
1018
|
* console.log(`Rank #${rank.rank} of ${rank.holderCount} holders, balance: ${rank.balance}`);
|
|
1019
1019
|
* }
|
|
@@ -1069,7 +1069,7 @@ export declare class LaunchpadSDK {
|
|
|
1069
1069
|
*
|
|
1070
1070
|
* @example
|
|
1071
1071
|
* ```typescript
|
|
1072
|
-
* const history = await sdk.getHolderHistory('anime', 'eth|
|
|
1072
|
+
* const history = await sdk.getHolderHistory('anime', 'eth|1234...', 10);
|
|
1073
1073
|
* history.trades.forEach(t => console.log(`${t.txnType}: ${t.inputAmount} → ${t.outputAmount}`));
|
|
1074
1074
|
* ```
|
|
1075
1075
|
*/
|
|
@@ -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(`
|
|
2869
|
+
* console.log(`RTMPS URL: ${creds.rtmpsUrl}`);
|
|
2870
2870
|
* console.log(`Playback ID: ${creds.playbackId}`);
|
|
2871
2871
|
* ```
|
|
2872
2872
|
*/
|
|
@@ -3505,7 +3505,7 @@ export declare class LaunchpadSDK {
|
|
|
3505
3505
|
* @example Permanent global ban
|
|
3506
3506
|
* ```typescript
|
|
3507
3507
|
* const result = await sdk.createGlobalBan({
|
|
3508
|
-
* userAddress: 'eth|
|
|
3508
|
+
* userAddress: 'eth|123...',
|
|
3509
3509
|
* reason: 'Serious platform violation'
|
|
3510
3510
|
* });
|
|
3511
3511
|
* console.log('User globally banned:', result.ban.userAddress);
|
|
@@ -3514,7 +3514,7 @@ export declare class LaunchpadSDK {
|
|
|
3514
3514
|
* @example Temporary global ban (7 days)
|
|
3515
3515
|
* ```typescript
|
|
3516
3516
|
* const result = await sdk.createGlobalBan({
|
|
3517
|
-
* userAddress: 'eth|
|
|
3517
|
+
* userAddress: 'eth|123...',
|
|
3518
3518
|
* reason: 'Spam across multiple streams',
|
|
3519
3519
|
* durationSeconds: 604800 // 7 days
|
|
3520
3520
|
* });
|
|
@@ -3539,7 +3539,7 @@ export declare class LaunchpadSDK {
|
|
|
3539
3539
|
* @example
|
|
3540
3540
|
* ```typescript
|
|
3541
3541
|
* const result = await sdk.removeGlobalBan({
|
|
3542
|
-
* userAddress: 'eth|
|
|
3542
|
+
* userAddress: 'eth|123...'
|
|
3543
3543
|
* });
|
|
3544
3544
|
* console.log('Global ban removed:', result.removed);
|
|
3545
3545
|
* ```
|
|
@@ -3575,7 +3575,7 @@ export declare class LaunchpadSDK {
|
|
|
3575
3575
|
* @example Search for banned user
|
|
3576
3576
|
* ```typescript
|
|
3577
3577
|
* const result = await sdk.listGlobalBans({
|
|
3578
|
-
* userAddress: 'eth|
|
|
3578
|
+
* userAddress: 'eth|123...',
|
|
3579
3579
|
* pageSize: 10
|
|
3580
3580
|
* });
|
|
3581
3581
|
* ```
|
|
@@ -3597,7 +3597,7 @@ export declare class LaunchpadSDK {
|
|
|
3597
3597
|
* @example
|
|
3598
3598
|
* ```typescript
|
|
3599
3599
|
* const status = await sdk.getGlobalBan({
|
|
3600
|
-
* userAddress: 'eth|
|
|
3600
|
+
* userAddress: 'eth|123...'
|
|
3601
3601
|
* });
|
|
3602
3602
|
* if (status.banned) {
|
|
3603
3603
|
* console.log('User is globally banned');
|
|
@@ -4310,7 +4310,7 @@ export declare class LaunchpadSDK {
|
|
|
4310
4310
|
* @example Promote a user to overseer
|
|
4311
4311
|
* ```typescript
|
|
4312
4312
|
* const result = await sdk.createOverseerDirect({
|
|
4313
|
-
* userAddress: 'eth|
|
|
4313
|
+
* userAddress: 'eth|1234567890abcdef1234567890abcdef12345678',
|
|
4314
4314
|
* description: 'Platform team - John'
|
|
4315
4315
|
* });
|
|
4316
4316
|
* console.log('Overseer created:', result.overseer.userAddress);
|
|
@@ -5149,7 +5149,7 @@ export declare class LaunchpadSDK {
|
|
|
5149
5149
|
* @example Get token weekly history
|
|
5150
5150
|
* ```typescript
|
|
5151
5151
|
* const { snapshots } = await sdk.getTokenWeeklyHistory({
|
|
5152
|
-
* vaultAddress: 'eth|
|
|
5152
|
+
* vaultAddress: 'eth|abc123...'
|
|
5153
5153
|
* });
|
|
5154
5154
|
*
|
|
5155
5155
|
* for (const snap of snapshots) {
|
|
@@ -5228,7 +5228,7 @@ export declare class LaunchpadSDK {
|
|
|
5228
5228
|
*
|
|
5229
5229
|
* @example Get profile oEmbed
|
|
5230
5230
|
* ```typescript
|
|
5231
|
-
* const { oembed } = await sdk.getProfileOEmbed({ address: 'eth|
|
|
5231
|
+
* const { oembed } = await sdk.getProfileOEmbed({ address: 'eth|123...' });
|
|
5232
5232
|
* console.log('User:', oembed.displayName);
|
|
5233
5233
|
* console.log('Tokens created:', oembed.tokensCreated);
|
|
5234
5234
|
* console.log('Volume:', oembed.totalVolumeGala);
|
|
@@ -5418,7 +5418,7 @@ export declare class LaunchpadSDK {
|
|
|
5418
5418
|
* Adding the same reaction type again is a no-op (idempotent).
|
|
5419
5419
|
* Users can have multiple different reaction types on the same message.
|
|
5420
5420
|
*
|
|
5421
|
-
* @param options - Options including
|
|
5421
|
+
* @param options - Options including messageId and reactionType
|
|
5422
5422
|
* @returns Updated reaction data and whether reaction was newly created
|
|
5423
5423
|
* @throws ValidationError if parameters are invalid
|
|
5424
5424
|
* @throws ConfigurationError if authentication is not configured
|
|
@@ -5429,7 +5429,6 @@ export declare class LaunchpadSDK {
|
|
|
5429
5429
|
* @example Add a heart reaction
|
|
5430
5430
|
* ```typescript
|
|
5431
5431
|
* const result = await sdk.addContentReaction({
|
|
5432
|
-
* tokenName: 'mytoken',
|
|
5433
5432
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5434
5433
|
* reactionType: 'heart'
|
|
5435
5434
|
* });
|
|
@@ -5444,7 +5443,7 @@ export declare class LaunchpadSDK {
|
|
|
5444
5443
|
* Requires JWT or API key authentication.
|
|
5445
5444
|
* Only the user who created the reaction can remove it.
|
|
5446
5445
|
*
|
|
5447
|
-
* @param options - Options including
|
|
5446
|
+
* @param options - Options including messageId and reactionType
|
|
5448
5447
|
* @returns Success indicator
|
|
5449
5448
|
* @throws ValidationError if parameters are invalid
|
|
5450
5449
|
* @throws ConfigurationError if authentication is not configured
|
|
@@ -5455,7 +5454,6 @@ export declare class LaunchpadSDK {
|
|
|
5455
5454
|
* @example Remove a heart reaction
|
|
5456
5455
|
* ```typescript
|
|
5457
5456
|
* await sdk.removeContentReaction({
|
|
5458
|
-
* tokenName: 'mytoken',
|
|
5459
5457
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5460
5458
|
* reactionType: 'heart'
|
|
5461
5459
|
* });
|
|
@@ -5467,7 +5465,7 @@ export declare class LaunchpadSDK {
|
|
|
5467
5465
|
*
|
|
5468
5466
|
* Convenience wrapper for addContentReaction specifically for chat messages.
|
|
5469
5467
|
*
|
|
5470
|
-
* @param options - Options including
|
|
5468
|
+
* @param options - Options including messageId and reactionType
|
|
5471
5469
|
* @returns Updated reaction data
|
|
5472
5470
|
*
|
|
5473
5471
|
* @since 5.12.0
|
|
@@ -5476,7 +5474,6 @@ export declare class LaunchpadSDK {
|
|
|
5476
5474
|
* @example Add a fire reaction to a chat message
|
|
5477
5475
|
* ```typescript
|
|
5478
5476
|
* await sdk.addReactionToChatMessage({
|
|
5479
|
-
* tokenName: 'mytoken',
|
|
5480
5477
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5481
5478
|
* reactionType: 'fire'
|
|
5482
5479
|
* });
|
|
@@ -5488,7 +5485,7 @@ export declare class LaunchpadSDK {
|
|
|
5488
5485
|
*
|
|
5489
5486
|
* Convenience wrapper for removeContentReaction specifically for chat messages.
|
|
5490
5487
|
*
|
|
5491
|
-
* @param options - Options including
|
|
5488
|
+
* @param options - Options including messageId and reactionType
|
|
5492
5489
|
* @returns Success indicator
|
|
5493
5490
|
*
|
|
5494
5491
|
* @since 5.12.0
|
|
@@ -5497,7 +5494,6 @@ export declare class LaunchpadSDK {
|
|
|
5497
5494
|
* @example Remove a fire reaction from a chat message
|
|
5498
5495
|
* ```typescript
|
|
5499
5496
|
* await sdk.removeReactionFromChatMessage({
|
|
5500
|
-
* tokenName: 'mytoken',
|
|
5501
5497
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5502
5498
|
* reactionType: 'fire'
|
|
5503
5499
|
* });
|
|
@@ -5509,7 +5505,7 @@ export declare class LaunchpadSDK {
|
|
|
5509
5505
|
*
|
|
5510
5506
|
* Convenience wrapper for addContentReaction specifically for comments.
|
|
5511
5507
|
*
|
|
5512
|
-
* @param options - Options including
|
|
5508
|
+
* @param options - Options including messageId and reactionType
|
|
5513
5509
|
* @returns Updated reaction data
|
|
5514
5510
|
*
|
|
5515
5511
|
* @since 5.12.0
|
|
@@ -5518,7 +5514,6 @@ export declare class LaunchpadSDK {
|
|
|
5518
5514
|
* @example Add a thumbs_up reaction to a comment
|
|
5519
5515
|
* ```typescript
|
|
5520
5516
|
* await sdk.addReactionToComment({
|
|
5521
|
-
* tokenName: 'mytoken',
|
|
5522
5517
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5523
5518
|
* reactionType: 'thumbs_up'
|
|
5524
5519
|
* });
|
|
@@ -5530,7 +5525,7 @@ export declare class LaunchpadSDK {
|
|
|
5530
5525
|
*
|
|
5531
5526
|
* Convenience wrapper for removeContentReaction specifically for comments.
|
|
5532
5527
|
*
|
|
5533
|
-
* @param options - Options including
|
|
5528
|
+
* @param options - Options including messageId and reactionType
|
|
5534
5529
|
* @returns Success indicator
|
|
5535
5530
|
*
|
|
5536
5531
|
* @since 5.12.0
|
|
@@ -5539,7 +5534,6 @@ export declare class LaunchpadSDK {
|
|
|
5539
5534
|
* @example Remove a thumbs_up reaction from a comment
|
|
5540
5535
|
* ```typescript
|
|
5541
5536
|
* await sdk.removeReactionFromComment({
|
|
5542
|
-
* tokenName: 'mytoken',
|
|
5543
5537
|
* messageId: 'msg-1703443200000-a1b2c3d4e5f6789012345678901234ab',
|
|
5544
5538
|
* reactionType: 'thumbs_up'
|
|
5545
5539
|
* });
|
|
@@ -5571,7 +5565,7 @@ export declare class LaunchpadSDK {
|
|
|
5571
5565
|
* @example Get comments by a user
|
|
5572
5566
|
* ```typescript
|
|
5573
5567
|
* const result = await sdk.getComments({
|
|
5574
|
-
* userAddress: 'eth|
|
|
5568
|
+
* userAddress: 'eth|123...',
|
|
5575
5569
|
* pageSize: 20
|
|
5576
5570
|
* });
|
|
5577
5571
|
* ```
|
|
@@ -5669,7 +5663,7 @@ export declare class LaunchpadSDK {
|
|
|
5669
5663
|
* @example Get chat messages by a user
|
|
5670
5664
|
* ```typescript
|
|
5671
5665
|
* const result = await sdk.getChatMessages({
|
|
5672
|
-
* userAddress: 'eth|
|
|
5666
|
+
* userAddress: 'eth|123...',
|
|
5673
5667
|
* pageSize: 50
|
|
5674
5668
|
* });
|
|
5675
5669
|
* ```
|
|
@@ -5776,7 +5770,7 @@ export declare class LaunchpadSDK {
|
|
|
5776
5770
|
* @example Get all messages from a user with pagination
|
|
5777
5771
|
* ```typescript
|
|
5778
5772
|
* const result = await sdk.fetchMessages({
|
|
5779
|
-
* userAddress: 'eth|
|
|
5773
|
+
* userAddress: 'eth|123...',
|
|
5780
5774
|
* pageSize: 20,
|
|
5781
5775
|
* cursor: 'next_cursor'
|
|
5782
5776
|
* });
|
|
@@ -6345,7 +6339,7 @@ export declare class LaunchpadSDK {
|
|
|
6345
6339
|
* console.log(`Viewers: ${event.viewerCount}`);
|
|
6346
6340
|
* },
|
|
6347
6341
|
* onChatMessage: (event) => {
|
|
6348
|
-
* console.log(`Chat: ${event.
|
|
6342
|
+
* console.log(`Chat: ${event.content}`);
|
|
6349
6343
|
* },
|
|
6350
6344
|
* });
|
|
6351
6345
|
* ```
|
|
@@ -7540,7 +7534,7 @@ export declare class LaunchpadSDK {
|
|
|
7540
7534
|
* Use when you want guaranteed accuracy but don't mind network latency.
|
|
7541
7535
|
*
|
|
7542
7536
|
* @deprecated Use `getTradeQuote()` instead — it uses the backend-proxy for instant
|
|
7543
|
-
* calculations without a direct GalaChain call. The
|
|
7537
|
+
* calculations without a direct GalaChain call. The swap backend has removed direct
|
|
7544
7538
|
* chain quote endpoints in favour of the backend-proxy approach.
|
|
7545
7539
|
*
|
|
7546
7540
|
* @param options Buy amount calculation options
|
|
@@ -7562,7 +7556,7 @@ export declare class LaunchpadSDK {
|
|
|
7562
7556
|
* Use when you want guaranteed accuracy but don't mind network latency.
|
|
7563
7557
|
*
|
|
7564
7558
|
* @deprecated Use `getTradeQuote()` instead — it uses the backend-proxy for instant
|
|
7565
|
-
* calculations without a direct GalaChain call. The
|
|
7559
|
+
* calculations without a direct GalaChain call. The swap backend has removed direct
|
|
7566
7560
|
* chain quote endpoints in favour of the backend-proxy approach.
|
|
7567
7561
|
*
|
|
7568
7562
|
* @param options Sell amount calculation options
|
|
@@ -8695,7 +8689,7 @@ export declare class LaunchpadSDK {
|
|
|
8695
8689
|
* ```typescript
|
|
8696
8690
|
* const result = await sdk.lockTokens({
|
|
8697
8691
|
* tokens: [
|
|
8698
|
-
* { tokenName: 'anime', amount: '500', lockAuthority: 'eth|
|
|
8692
|
+
* { tokenName: 'anime', amount: '500', lockAuthority: 'eth|1234...' },
|
|
8699
8693
|
* { tokenName: 'dragon', amount: '250', expires: Date.now() + 86400000, name: 'vesting-lock' }
|
|
8700
8694
|
* ]
|
|
8701
8695
|
* });
|
|
@@ -9056,7 +9050,7 @@ export declare class LaunchpadSDK {
|
|
|
9056
9050
|
* ```typescript
|
|
9057
9051
|
* const unsubscribe = sdk.onLaunchpadTokenCreation(
|
|
9058
9052
|
* (token) => console.log(`${token.name} created!`),
|
|
9059
|
-
* { creatorAddress: 'eth|
|
|
9053
|
+
* { creatorAddress: 'eth|1234...' }
|
|
9060
9054
|
* );
|
|
9061
9055
|
* ```
|
|
9062
9056
|
*/
|