@gala-chain/launchpad-sdk 3.19.2 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +107 -0
- package/README.md +132 -2
- package/dist/LaunchpadSDK.d.ts.map +1 -1
- package/dist/constants/version.generated.d.ts +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/services/DexService.d.ts +58 -7
- package/dist/services/DexService.d.ts.map +1 -1
- package/dist/services/PriceHistoryService.d.ts +106 -17
- package/dist/services/PriceHistoryService.d.ts.map +1 -1
- package/dist/types/priceHistory.dto.d.ts +13 -6
- package/dist/types/priceHistory.dto.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,112 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add tokenName parameter support to fetchPriceHistory and fetchAllPriceHistory (v3.20.0+)
|
|
8
|
+
|
|
9
|
+
**Features:**
|
|
10
|
+
- New optional `tokenName` parameter enables simple token names (e.g., "demonkpop") with automatic
|
|
11
|
+
resolution to full tokenId
|
|
12
|
+
- Mutual exclusivity validation: use exactly one of `tokenName` OR `tokenId` (not both, not
|
|
13
|
+
neither)
|
|
14
|
+
- Full backward compatibility with existing tokenId parameter usage (string and object formats)
|
|
15
|
+
- New helper method `fetchTokenClassKeyByTokenName()` for token name resolution
|
|
16
|
+
- Enhanced JSDoc with comprehensive examples for all three token identification methods
|
|
17
|
+
|
|
18
|
+
**SDK Changes:**
|
|
19
|
+
- `PriceHistoryService`: Added tokenName parameter support with auto-resolution via
|
|
20
|
+
TokenResolverService
|
|
21
|
+
- `LaunchpadSDK`: Wired TokenResolverService to PriceHistoryService for automatic name resolution
|
|
22
|
+
- Updated type definitions with optional `tokenName?: string` parameter
|
|
23
|
+
- Added comprehensive validation for mutual exclusivity
|
|
24
|
+
|
|
25
|
+
**MCP Server Changes:**
|
|
26
|
+
- `gala_launchpad_fetch_price_history`: Updated schema to support optional tokenName parameter
|
|
27
|
+
- `gala_launchpad_fetch_all_price_history`: Updated schema to support optional tokenName parameter
|
|
28
|
+
- Both tools now accept flexible token identification (tokenName or tokenId, choose one)
|
|
29
|
+
|
|
30
|
+
**Documentation:**
|
|
31
|
+
- Updated SDK README with new usage patterns and examples
|
|
32
|
+
- Updated CLAUDE.md Price History Patterns section
|
|
33
|
+
- Added complete section in complete-sdk-demo.ts demonstrating tokenName parameter
|
|
34
|
+
- Enhanced JSDoc comments for all methods with practical examples
|
|
35
|
+
|
|
36
|
+
**Testing:**
|
|
37
|
+
- Added 33 comprehensive unit tests covering:
|
|
38
|
+
- Token name to token class key resolution
|
|
39
|
+
- Mutual exclusivity validation
|
|
40
|
+
- Error handling for invalid inputs
|
|
41
|
+
- Integration with both fetchPriceHistory and fetchAllPriceHistory
|
|
42
|
+
- All test suites passing (1102 total tests)
|
|
43
|
+
|
|
44
|
+
**Breaking Changes:** None - fully backward compatible
|
|
45
|
+
|
|
46
|
+
**Migration Guide:** Instead of: `sdk.fetchPriceHistory({ tokenId: 'Token|Unit|DKP|eth:...' })`
|
|
47
|
+
You can now use: `sdk.fetchPriceHistory({ tokenName: 'demonkpop' })`
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- Fix token format conversion and add DEX spot pricing for graduated launchpad tokens
|
|
52
|
+
|
|
53
|
+
**Bug Fixes:**
|
|
54
|
+
- **CRITICAL**: Fixed PriceHistoryService token format conversion that was losing Ethereum
|
|
55
|
+
addresses for launchpad tokens
|
|
56
|
+
- Was converting: `Token|Unit|GDOG|eth:902...` → `GDOG$Unit$none$none` ❌
|
|
57
|
+
- Now converts: `Token|Unit|GDOG|eth:902...` → `Token$Unit$GDOG$eth:902...` ✅
|
|
58
|
+
- Impact: All launchpad token price history queries now return data instead of empty results
|
|
59
|
+
- Affected methods: `fetchPriceHistory()`, `fetchAllPriceHistory()`
|
|
60
|
+
- Updated test expectations in `price-history-service.test.ts` to validate correct token format
|
|
61
|
+
- All 1,102 unit tests passing
|
|
62
|
+
|
|
63
|
+
**Features:**
|
|
64
|
+
- New method `DexService.fetchDexTokenSpotPrice(tokenId)` for real-time DEX market prices
|
|
65
|
+
- Uses `/v1/trade/price` endpoint for accurate graduated token pricing
|
|
66
|
+
- Supports both pipe-delimited and object token ID formats
|
|
67
|
+
- Perfect for tokens trading on the DEX post-graduation
|
|
68
|
+
- Enhanced `fetchLaunchpadTokenSpotPrice()` to intelligently select price source:
|
|
69
|
+
- Active pool tokens: Uses bonding curve calculation
|
|
70
|
+
- Graduated tokens: Uses `/v1/trade/price` endpoint for real DEX market prices
|
|
71
|
+
- Optional `fetchPoolDetails` parameter enables automatic graduation detection
|
|
72
|
+
- Gracefully falls back to bonding curve if graduation check unavailable
|
|
73
|
+
|
|
74
|
+
**SDK Changes:**
|
|
75
|
+
- `PriceHistoryService.ts`: Fixed token format converter to use `pipeFormatToDollarFormat()`
|
|
76
|
+
utility
|
|
77
|
+
- `DexService.ts`: Added `fetchDexTokenSpotPrice()` method with full documentation
|
|
78
|
+
- `DexService.ts`: Enhanced `fetchLaunchpadTokenSpotPrice()` with graduation detection
|
|
79
|
+
- Added import of `pipeFormatToDollarFormat` to DexService
|
|
80
|
+
|
|
81
|
+
**Test Results:**
|
|
82
|
+
- All price history service tests passing (33 tests)
|
|
83
|
+
- All SDK tests passing (1102 total tests)
|
|
84
|
+
- No regressions detected
|
|
85
|
+
|
|
86
|
+
**Breaking Changes:** None - both are enhancements/bug fixes
|
|
87
|
+
|
|
88
|
+
**Example Usage (Graduated Token):**
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
// Graduated token now returns real DEX market price
|
|
92
|
+
const price = await sdk.fetchLaunchpadTokenSpotPrice(
|
|
93
|
+
'galadog',
|
|
94
|
+
calculateBuyAmount,
|
|
95
|
+
fetchPoolDetails // Optional - enables automatic DEX pricing
|
|
96
|
+
);
|
|
97
|
+
// Returns: { symbol: 'GALADOG', price: 0.019110 } (real market price)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Example Usage (Direct DEX Pricing):**
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
// Query DEX directly for any trading token
|
|
104
|
+
const price = await dexService.fetchDexTokenSpotPrice(
|
|
105
|
+
'Token|Unit|GDOG|eth:902Ef7566c8A8bEe5517FdEC0D7b5d1157942830'
|
|
106
|
+
);
|
|
107
|
+
// Returns: { symbol: 'GDOG', price: 0.019110 }
|
|
108
|
+
```
|
|
109
|
+
|
|
3
110
|
## 3.19.2
|
|
4
111
|
|
|
5
112
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -800,12 +800,18 @@ calculateSellAmountExternal(options): Promise<AmountCalculationResult>
|
|
|
800
800
|
|
|
801
801
|
// Price History Operations (DEX Backend API, Node.js only)
|
|
802
802
|
fetchPriceHistory(options): Promise<PriceHistoryResult>
|
|
803
|
-
// Options: { tokenId
|
|
803
|
+
// Options: { tokenName?, tokenId?, from?, to?, sortOrder?, page?, limit? }
|
|
804
|
+
// Token identification (provide EXACTLY ONE):
|
|
805
|
+
// - tokenName: Simple token name (e.g., "demonkpop") - auto-resolves to tokenId
|
|
806
|
+
// - tokenId: Full token class key (e.g., "Token|Unit|DKP|eth:...")
|
|
804
807
|
// Returns: { snapshots, page, limit, total, totalPages, hasNext, hasPrevious }
|
|
805
808
|
// Fetches paginated historical price snapshots from DEX Backend API
|
|
806
809
|
|
|
807
810
|
fetchAllPriceHistory(options): Promise<PriceHistoryResult>
|
|
808
|
-
// Options: { tokenId
|
|
811
|
+
// Options: { tokenName?, tokenId?, from?, to?, sortOrder? } (no pagination params)
|
|
812
|
+
// Token identification (provide EXACTLY ONE):
|
|
813
|
+
// - tokenName: Simple token name (e.g., "demonkpop") - auto-resolves to tokenId
|
|
814
|
+
// - tokenId: Full token class key (e.g., "Token|Unit|DKP|eth:...")
|
|
809
815
|
// Returns: All matching snapshots with total count
|
|
810
816
|
// Convenience method with automatic pagination (returns ALL snapshots)
|
|
811
817
|
```
|
|
@@ -1234,6 +1240,130 @@ sdk.clearCache();
|
|
|
1234
1240
|
console.log('\nCache cleared');
|
|
1235
1241
|
```
|
|
1236
1242
|
|
|
1243
|
+
## Price History with Token Names (v3.20.0+)
|
|
1244
|
+
|
|
1245
|
+
The SDK now supports convenient token name resolution for price history queries. Instead of providing full token class keys, you can now use simple token names like `"demonkpop"` and the SDK automatically resolves them to the full token identifier.
|
|
1246
|
+
|
|
1247
|
+
### Basic Usage
|
|
1248
|
+
|
|
1249
|
+
```typescript
|
|
1250
|
+
import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
|
|
1251
|
+
|
|
1252
|
+
const sdk = createLaunchpadSDK({
|
|
1253
|
+
wallet: 'your-private-key-or-mnemonic'
|
|
1254
|
+
});
|
|
1255
|
+
|
|
1256
|
+
// ✅ NEW: Use simple token name (auto-resolves to full token ID)
|
|
1257
|
+
const recentHistory = await sdk.fetchPriceHistory({
|
|
1258
|
+
tokenName: 'demonkpop', // Simple, intuitive token name
|
|
1259
|
+
page: 1,
|
|
1260
|
+
limit: 20
|
|
1261
|
+
});
|
|
1262
|
+
|
|
1263
|
+
console.log(`Latest price: $${recentHistory.snapshots[0].price}`);
|
|
1264
|
+
console.log(`Total snapshots: ${recentHistory.total}`);
|
|
1265
|
+
|
|
1266
|
+
// ✅ STILL WORKS: Direct token ID (for advanced use cases)
|
|
1267
|
+
const historyWithId = await sdk.fetchPriceHistory({
|
|
1268
|
+
tokenId: 'Token|Unit|DKP|eth:4A65D29213de2939373ff9eB63AC38730F192C84',
|
|
1269
|
+
page: 1,
|
|
1270
|
+
limit: 20
|
|
1271
|
+
});
|
|
1272
|
+
```
|
|
1273
|
+
|
|
1274
|
+
### Advanced Examples
|
|
1275
|
+
|
|
1276
|
+
```typescript
|
|
1277
|
+
// 1. VOLATILITY ANALYSIS - Using token name for convenience
|
|
1278
|
+
const monthlyHistory = await sdk.fetchPriceHistory({
|
|
1279
|
+
tokenName: 'demonkpop',
|
|
1280
|
+
from: new Date('2025-01-01'),
|
|
1281
|
+
to: new Date('2025-02-01'),
|
|
1282
|
+
sortOrder: 'ASC', // Chronological order for analysis
|
|
1283
|
+
limit: 50
|
|
1284
|
+
});
|
|
1285
|
+
|
|
1286
|
+
const prices = monthlyHistory.snapshots.map(s => parseFloat(s.price));
|
|
1287
|
+
const avgPrice = prices.reduce((a, b) => a + b, 0) / prices.length;
|
|
1288
|
+
console.log(`Average price: $${avgPrice.toFixed(6)}`);
|
|
1289
|
+
|
|
1290
|
+
// 2. AUTO-PAGINATION - Fetch complete dataset with token name
|
|
1291
|
+
const completeHistory = await sdk.fetchAllPriceHistory({
|
|
1292
|
+
tokenName: 'demonkpop',
|
|
1293
|
+
from: new Date('2024-01-01'),
|
|
1294
|
+
to: new Date('2024-12-31'),
|
|
1295
|
+
sortOrder: 'DESC' // Newest first
|
|
1296
|
+
});
|
|
1297
|
+
|
|
1298
|
+
console.log(`Total snapshots: ${completeHistory.snapshots.length}`);
|
|
1299
|
+
console.log(`Date range: ${completeHistory.snapshots[0].timestamp} to ${completeHistory.snapshots[completeHistory.snapshots.length - 1].timestamp}`);
|
|
1300
|
+
|
|
1301
|
+
// 3. PRICE TRENDS - Detect moving averages with pagination
|
|
1302
|
+
const recentData = await sdk.fetchPriceHistory({
|
|
1303
|
+
tokenName: 'demonkpop',
|
|
1304
|
+
from: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000), // Last 7 days
|
|
1305
|
+
sortOrder: 'DESC',
|
|
1306
|
+
limit: 20
|
|
1307
|
+
});
|
|
1308
|
+
|
|
1309
|
+
const ma7 = recentData.snapshots
|
|
1310
|
+
.map(s => parseFloat(s.price))
|
|
1311
|
+
.slice(0, 7)
|
|
1312
|
+
.reduce((a, b) => a + b, 0) / 7;
|
|
1313
|
+
|
|
1314
|
+
console.log(`7-day moving average: $${ma7.toFixed(6)}`);
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
### Token Name Resolution Details
|
|
1318
|
+
|
|
1319
|
+
**Supported Token Name Formats:**
|
|
1320
|
+
- Any token created on the launchpad (e.g., `demonkpop`, `anime`, `shoewars`)
|
|
1321
|
+
- Case-sensitive, 3-20 characters
|
|
1322
|
+
- Alphanumeric characters only
|
|
1323
|
+
- The SDK automatically resolves to full token class key: `Token|Unit|SYMBOL|eth:...`
|
|
1324
|
+
|
|
1325
|
+
**Error Handling:**
|
|
1326
|
+
```typescript
|
|
1327
|
+
try {
|
|
1328
|
+
const history = await sdk.fetchPriceHistory({
|
|
1329
|
+
tokenName: 'unknowntoken'
|
|
1330
|
+
});
|
|
1331
|
+
} catch (error) {
|
|
1332
|
+
if (error.message.includes('Token not found')) {
|
|
1333
|
+
console.log('Token does not exist on the launchpad');
|
|
1334
|
+
} else if (error.message.includes('must be a string between 3 and 20 characters')) {
|
|
1335
|
+
console.log('Invalid token name format');
|
|
1336
|
+
} else {
|
|
1337
|
+
console.log('Network or other error');
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1342
|
+
### Comparison: Before and After
|
|
1343
|
+
|
|
1344
|
+
```typescript
|
|
1345
|
+
// ❌ BEFORE (v3.19 and earlier) - Had to provide full token class key
|
|
1346
|
+
const history = await sdk.fetchPriceHistory({
|
|
1347
|
+
tokenId: 'Token|Unit|DKP|eth:4A65D29213de2939373ff9eB63AC38730F192C84',
|
|
1348
|
+
page: 1,
|
|
1349
|
+
limit: 10
|
|
1350
|
+
});
|
|
1351
|
+
|
|
1352
|
+
// ✅ AFTER (v3.20+) - Simple token name, auto-resolves internally
|
|
1353
|
+
const history = await sdk.fetchPriceHistory({
|
|
1354
|
+
tokenName: 'demonkpop',
|
|
1355
|
+
page: 1,
|
|
1356
|
+
limit: 10
|
|
1357
|
+
});
|
|
1358
|
+
```
|
|
1359
|
+
|
|
1360
|
+
### Performance Notes
|
|
1361
|
+
|
|
1362
|
+
- **First Call**: Token name resolution involves a vault lookup (~100-200ms)
|
|
1363
|
+
- **Subsequent Calls**: Vault addresses are cached, making repeated calls instant
|
|
1364
|
+
- **Network**: Requires DEX Backend API access (Node.js only)
|
|
1365
|
+
- **Backwards Compatible**: Existing code using `tokenId` continues to work unchanged
|
|
1366
|
+
|
|
1237
1367
|
### Cache Design Philosophy
|
|
1238
1368
|
|
|
1239
1369
|
**Immutable Data Only**: Only caches data that never changes:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadSDK.d.ts","sourceRoot":"","sources":["../src/LaunchpadSDK.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LaunchpadSDK.d.ts","sourceRoot":"","sources":["../src/LaunchpadSDK.ts"],"names":[],"mappings":"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"}
|