@gala-chain/launchpad-sdk 3.4.7 → 3.5.1
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 +63 -0
- package/README.md +197 -28
- package/dist/LaunchpadSDK.d.ts +17 -7
- package/dist/LaunchpadSDK.d.ts.map +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/LaunchpadService.d.ts +2 -2
- package/dist/services/LaunchpadService.d.ts.map +1 -1
- package/dist/types/launchpad.dto.d.ts +2 -0
- package/dist/types/launchpad.dto.d.ts.map +1 -1
- package/dist/types/options.dto.d.ts +8 -0
- package/dist/types/options.dto.d.ts.map +1 -1
- package/dist/types/transfer.dto.d.ts +4 -0
- package/dist/types/transfer.dto.d.ts.map +1 -1
- package/dist/types/user.dto.d.ts +21 -6
- package/dist/types/user.dto.d.ts.map +1 -1
- package/dist/utils/validation.d.ts +16 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,69 @@ All notable changes to the Gala Launchpad SDK will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [3.5.1] - 2025-10-01
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- **BREAKING: Address parameter standardization** - Renamed `walletAddress` to `address` across entire SDK
|
|
11
|
+
- Affected interfaces: `FetchGalaBalanceOptions`, `UpdateProfileData`, `UploadProfileImageOptions`
|
|
12
|
+
- Affected methods: `fetchGalaBalance()`, `updateProfile()`, `uploadProfileImage()`, `fetchProfile()`, `retrieveGalaFromFaucet()`
|
|
13
|
+
- All type guards and validation methods updated to use `address` parameter name
|
|
14
|
+
- Error messages now reference `address` field instead of `walletAddress`
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- **Smart address parser** - New `normalizeAddressInput()` utility for automatic address format conversion
|
|
18
|
+
- Accepts both Ethereum (`0x...`) and GalaChain (`eth|...`) formats
|
|
19
|
+
- Automatically normalizes to GalaChain format required by backend
|
|
20
|
+
- Eliminates manual address format conversion
|
|
21
|
+
- Provides clear validation errors for invalid formats
|
|
22
|
+
- Integrated into all SDK methods that accept address parameters
|
|
23
|
+
|
|
24
|
+
### Benefits
|
|
25
|
+
- ✅ Use natural `0x...` addresses - no more manual conversion needed
|
|
26
|
+
- ✅ Consistent parameter naming throughout SDK - always `address`
|
|
27
|
+
- ✅ Better developer experience with automatic format handling
|
|
28
|
+
- ✅ Clearer error messages with standardized field names
|
|
29
|
+
|
|
30
|
+
### Migration Guide
|
|
31
|
+
```typescript
|
|
32
|
+
// Before (3.5.0)
|
|
33
|
+
await sdk.fetchGalaBalance(walletAddress);
|
|
34
|
+
await sdk.updateProfile({ walletAddress, fullName, profileImage });
|
|
35
|
+
await sdk.uploadProfileImage({ file, walletAddress });
|
|
36
|
+
|
|
37
|
+
// After (3.5.1) - accepts both formats!
|
|
38
|
+
await sdk.fetchGalaBalance(address); // 'eth|...' or '0x...'
|
|
39
|
+
await sdk.updateProfile({ address, fullName, profileImage });
|
|
40
|
+
await sdk.uploadProfileImage({ file, address });
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## [3.5.0] - 2025-10-01
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- **Multi-wallet support with privateKey override** - Execute operations from different wallets without creating new SDK instances
|
|
47
|
+
- Added optional `privateKey` parameter to all 9 signing operations:
|
|
48
|
+
- Trading: `buy()`, `sell()`
|
|
49
|
+
- Token Creation: `launchToken()`, `uploadTokenImage()`, `uploadProfileImage()`
|
|
50
|
+
- Transfers: `transferGala()`, `transferToken()`
|
|
51
|
+
- Social & Profile: `postComment()`, `updateProfile()`
|
|
52
|
+
- `privateKey` must be in format: `'0x' + 64 hexadecimal characters`
|
|
53
|
+
- Enables multi-user trading bots, testing scenarios, and wallet coordination
|
|
54
|
+
- SDK creates temporary instances with override wallet using new `createOverrideSdk()` helper method
|
|
55
|
+
- Full validation ensures privateKey format compliance before execution
|
|
56
|
+
- Example: `await sdk.buy({ ...options, privateKey: '0x1234...' })` uses different wallet for that operation
|
|
57
|
+
|
|
58
|
+
### Benefits
|
|
59
|
+
- ✅ Test multi-wallet workflows without server restart
|
|
60
|
+
- ✅ Build multi-user trading applications
|
|
61
|
+
- ✅ Simulate different user behaviors in testing
|
|
62
|
+
- ✅ Create automated market maker systems
|
|
63
|
+
- ✅ Coordinate multiple wallets from single SDK instance
|
|
64
|
+
|
|
65
|
+
### Documentation
|
|
66
|
+
- Added comprehensive multi-wallet section to SDK README with examples
|
|
67
|
+
- Updated AI Agent Developer docs with multi-wallet patterns
|
|
68
|
+
- Added privateKey format requirements and validation examples
|
|
69
|
+
|
|
7
70
|
## [3.3.4] - 2025-10-01
|
|
8
71
|
|
|
9
72
|
### Fixed
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ A comprehensive TypeScript SDK for the Gala Launchpad Backend API, providing typ
|
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](http://www.typescriptlang.org/)
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Features
|
|
10
10
|
|
|
11
11
|
**Clean Result Types with No Wrapper Overhead:**
|
|
12
12
|
|
|
@@ -38,7 +38,7 @@ console.log(`Balance: ${balance.balance} GALA`); // Direct balance access
|
|
|
38
38
|
console.log(`Last updated: ${balance.lastUpdated.toISOString()}`); // Date object
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## Clean API Architecture
|
|
42
42
|
|
|
43
43
|
**Direct result access with no wrapper overhead:**
|
|
44
44
|
|
|
@@ -50,7 +50,7 @@ console.log(pools.total); // Immediate pagination info
|
|
|
50
50
|
console.log(pools.hasNext); // Computed convenience properties
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
##
|
|
53
|
+
## Key Features
|
|
54
54
|
|
|
55
55
|
- **Type-Safe API Client**: Full TypeScript support with comprehensive type definitions
|
|
56
56
|
- **Clean Result Types**: Direct property access without wrapper objects
|
|
@@ -65,7 +65,7 @@ console.log(pools.hasNext); // Computed convenience properties
|
|
|
65
65
|
- **Comprehensive Validation**: Input validation and error handling for all operations
|
|
66
66
|
- **Multi-Environment Support**: Production, staging, and custom backend URLs
|
|
67
67
|
|
|
68
|
-
##
|
|
68
|
+
## Installation
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
npm install @gala-chain/launchpad-sdk
|
|
@@ -78,7 +78,7 @@ yarn add @gala-chain/launchpad-sdk
|
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
##
|
|
81
|
+
## AI Agent Integration
|
|
82
82
|
|
|
83
83
|
### For Claude Desktop Users
|
|
84
84
|
|
|
@@ -102,7 +102,7 @@ See: [MCP Server Documentation](../../mcp-server/README.md)
|
|
|
102
102
|
|
|
103
103
|
Need help with SDK integration, trading bots, or MCP server development?
|
|
104
104
|
|
|
105
|
-
Ask **[@agent-galachain-launchpad-developer](
|
|
105
|
+
Ask **[@agent-galachain-launchpad-developer](../../@agent-galachain-launchpad-developer.md)** - a specialized AI agent with expertise in:
|
|
106
106
|
- Complete SDK API (37 methods)
|
|
107
107
|
- Trading patterns and DeFi best practices
|
|
108
108
|
- MCP server architecture
|
|
@@ -111,7 +111,7 @@ Ask **[@agent-galachain-launchpad-developer](./docs/GALACHAIN-LAUNCHPAD-DEVELOPE
|
|
|
111
111
|
|
|
112
112
|
**Full Integration Guide**: [AI Agent Guide](./docs/AI-AGENT-GUIDE.md)
|
|
113
113
|
|
|
114
|
-
##
|
|
114
|
+
## Quick Start
|
|
115
115
|
|
|
116
116
|
### Using Helper Functions (Recommended)
|
|
117
117
|
|
|
@@ -175,7 +175,7 @@ console.log(`Last updated: ${galaBalance.lastUpdated.toISOString()}`);
|
|
|
175
175
|
|
|
176
176
|
const tokenBalance = await sdk.fetchTokenBalance({
|
|
177
177
|
tokenName: 'dragnrkti',
|
|
178
|
-
|
|
178
|
+
address: sdk.getAddress()
|
|
179
179
|
});
|
|
180
180
|
console.log(`Token balance: ${tokenBalance.quantity}`);
|
|
181
181
|
console.log(`USD value: $${tokenBalance.holdingPriceUsd}`);
|
|
@@ -212,7 +212,7 @@ const pools = await sdk.fetchPools({ type: 'recent' });
|
|
|
212
212
|
console.log(`${pools.total} pools found`);
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
##
|
|
215
|
+
## Complete Example: Trading Flow with Clean Results
|
|
216
216
|
|
|
217
217
|
```typescript
|
|
218
218
|
import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
|
|
@@ -280,7 +280,7 @@ console.log(`Last updated: ${galaBalance.lastUpdated.toISOString()}`);
|
|
|
280
280
|
|
|
281
281
|
const tokenBalance = await sdk.fetchTokenBalance({
|
|
282
282
|
tokenName: 'tinyevil',
|
|
283
|
-
|
|
283
|
+
address: sdk.getAddress()
|
|
284
284
|
});
|
|
285
285
|
|
|
286
286
|
console.log(`TINYEVIL Balance: ${tokenBalance.quantity}`);
|
|
@@ -289,7 +289,7 @@ console.log(`GALA Value: ${tokenBalance.holdingPriceGala} GALA`);
|
|
|
289
289
|
console.log(`Finalized: ${tokenBalance.isFinalized}`);
|
|
290
290
|
```
|
|
291
291
|
|
|
292
|
-
##
|
|
292
|
+
## Transfer Operations
|
|
293
293
|
|
|
294
294
|
Transfer GALA and launchpad tokens between wallets with EIP-712 signatures:
|
|
295
295
|
|
|
@@ -330,7 +330,176 @@ console.log(`Status: ${tokenTransfer.status}`);
|
|
|
330
330
|
- **GalaChain Integration**: Direct transfers via GalaChain gateway
|
|
331
331
|
- **Error Handling**: Detailed error types for different failure scenarios
|
|
332
332
|
|
|
333
|
-
##
|
|
333
|
+
## Multi-Wallet Support
|
|
334
|
+
|
|
335
|
+
The SDK supports **per-operation wallet overrides** for testing multi-wallet workflows without creating new SDK instances. This is ideal for:
|
|
336
|
+
- Testing trading scenarios with multiple wallets
|
|
337
|
+
- Building multi-user applications
|
|
338
|
+
- Simulating different user behaviors
|
|
339
|
+
- Creating automated trading bots
|
|
340
|
+
|
|
341
|
+
### Private Key Override Pattern
|
|
342
|
+
|
|
343
|
+
All signing operations accept an optional `privateKey` parameter to use a different wallet for that specific operation:
|
|
344
|
+
|
|
345
|
+
```typescript
|
|
346
|
+
import { createLaunchpadSDK } from '@gala-chain/launchpad-sdk';
|
|
347
|
+
|
|
348
|
+
// Create SDK with your main wallet
|
|
349
|
+
const sdk = createLaunchpadSDK({
|
|
350
|
+
wallet: 'your-main-private-key'
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
// Different wallet's private key (must be in '0x' + 64 hex format)
|
|
354
|
+
const busterPrivateKey = '0x1234567890abcdef...'; // Buster's wallet
|
|
355
|
+
|
|
356
|
+
// 1. Send GALA from main wallet to Buster
|
|
357
|
+
await sdk.transferGala({
|
|
358
|
+
recipientAddress: '0xBusterAddress...',
|
|
359
|
+
amount: '1000'
|
|
360
|
+
// Uses main SDK wallet (no privateKey override)
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
// 2. Have Buster buy tokens using his own wallet
|
|
364
|
+
const buyResult = await sdk.buy({
|
|
365
|
+
tokenName: 'tinyevil',
|
|
366
|
+
amount: '100',
|
|
367
|
+
type: 'native',
|
|
368
|
+
expectedAmount: '500000',
|
|
369
|
+
slippageToleranceFactor: 0.05,
|
|
370
|
+
privateKey: busterPrivateKey // Override to use Buster's wallet
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
// 3. Have Buster post a comment
|
|
374
|
+
await sdk.postComment({
|
|
375
|
+
tokenName: 'tinyevil',
|
|
376
|
+
content: 'Great buy!',
|
|
377
|
+
privateKey: busterPrivateKey // Buster posts the comment
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
// 4. Main wallet continues operations normally
|
|
381
|
+
const mainWalletBalance = await sdk.fetchGalaBalance();
|
|
382
|
+
// Uses main SDK wallet address
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Supported Operations with Private Key Override
|
|
386
|
+
|
|
387
|
+
All signing operations support the `privateKey` parameter:
|
|
388
|
+
|
|
389
|
+
**Trading Operations:**
|
|
390
|
+
- `buy(options)` - Buy tokens with different wallet
|
|
391
|
+
- `sell(options)` - Sell tokens with different wallet
|
|
392
|
+
|
|
393
|
+
**Token Creation:**
|
|
394
|
+
- `launchToken(data)` - Create token from different wallet
|
|
395
|
+
- `uploadTokenImage(options)` - Upload image for token
|
|
396
|
+
|
|
397
|
+
**Transfer Operations:**
|
|
398
|
+
- `transferGala(options)` - Transfer GALA from different wallet
|
|
399
|
+
- `transferToken(options)` - Transfer tokens from different wallet
|
|
400
|
+
|
|
401
|
+
**Social & Profile:**
|
|
402
|
+
- `postComment(options)` - Post comment from different wallet
|
|
403
|
+
- `updateProfile(data)` - Update profile for different wallet
|
|
404
|
+
- `uploadProfileImage(options)` - Upload profile image for different wallet
|
|
405
|
+
|
|
406
|
+
### Complete Multi-Wallet Example
|
|
407
|
+
|
|
408
|
+
```typescript
|
|
409
|
+
import { createLaunchpadSDK, createWallet } from '@gala-chain/launchpad-sdk';
|
|
410
|
+
|
|
411
|
+
// Main SDK instance
|
|
412
|
+
const sdk = createLaunchpadSDK({
|
|
413
|
+
wallet: 'your-main-private-key'
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
// Create a test wallet for "Buster"
|
|
417
|
+
const busterWallet = createWallet(); // Random wallet
|
|
418
|
+
const busterPrivateKey = busterWallet.privateKey;
|
|
419
|
+
const busterAddress = busterWallet.address;
|
|
420
|
+
|
|
421
|
+
console.log(`Buster's address: ${busterAddress}`);
|
|
422
|
+
|
|
423
|
+
// 1. Fund Buster with GALA from main wallet
|
|
424
|
+
await sdk.transferGala({
|
|
425
|
+
recipientAddress: busterAddress,
|
|
426
|
+
amount: '1000'
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
// 2. Send Buster some tokens from main wallet
|
|
430
|
+
await sdk.transferToken({
|
|
431
|
+
to: busterAddress,
|
|
432
|
+
tokenName: 'tinyevil',
|
|
433
|
+
amount: '10000'
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
// 3. Have Buster send some tokens back to main wallet
|
|
437
|
+
await sdk.transferToken({
|
|
438
|
+
to: sdk.getEthereumAddress(), // Main wallet address
|
|
439
|
+
tokenName: 'tinyevil',
|
|
440
|
+
amount: '5000',
|
|
441
|
+
privateKey: busterPrivateKey // Buster's wallet signs
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
// 4. Have Buster buy more tokens
|
|
445
|
+
const buyQuote = await sdk.calculateBuyAmount({
|
|
446
|
+
tokenName: 'tinyevil',
|
|
447
|
+
amount: '100',
|
|
448
|
+
type: 'native'
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
await sdk.buy({
|
|
452
|
+
tokenName: 'tinyevil',
|
|
453
|
+
amount: '100',
|
|
454
|
+
type: 'native',
|
|
455
|
+
expectedAmount: buyQuote.amount,
|
|
456
|
+
slippageToleranceFactor: 0.05,
|
|
457
|
+
privateKey: busterPrivateKey // Buster buys
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
// 5. Have Buster sell some tokens
|
|
461
|
+
const sellQuote = await sdk.calculateSellAmount({
|
|
462
|
+
tokenName: 'tinyevil',
|
|
463
|
+
amount: '50',
|
|
464
|
+
type: 'native'
|
|
465
|
+
});
|
|
466
|
+
|
|
467
|
+
await sdk.sell({
|
|
468
|
+
tokenName: 'tinyevil',
|
|
469
|
+
amount: '50',
|
|
470
|
+
type: 'native',
|
|
471
|
+
expectedAmount: sellQuote.amount,
|
|
472
|
+
slippageToleranceFactor: 0.05,
|
|
473
|
+
privateKey: busterPrivateKey // Buster sells
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
// 6. Check final balances for both wallets
|
|
477
|
+
const mainBalance = await sdk.fetchGalaBalance(); // Main wallet
|
|
478
|
+
const busterBalance = await sdk.fetchGalaBalance(busterAddress); // Buster's wallet
|
|
479
|
+
|
|
480
|
+
console.log(`Main wallet: ${mainBalance.balance} GALA`);
|
|
481
|
+
console.log(`Buster wallet: ${busterBalance.balance} GALA`);
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Private Key Format Requirements
|
|
485
|
+
|
|
486
|
+
The `privateKey` parameter must be a string in the format:
|
|
487
|
+
- **Format**: `'0x' + 64 hexadecimal characters`
|
|
488
|
+
- **Example**: `'0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'`
|
|
489
|
+
- **Invalid**: Raw hex without '0x' prefix, mnemonic phrases, addresses
|
|
490
|
+
|
|
491
|
+
```typescript
|
|
492
|
+
// ✅ Valid private key formats
|
|
493
|
+
const validKey1 = '0x' + 'a'.repeat(64); // Correct format
|
|
494
|
+
const validKey2 = wallet.privateKey; // From ethers.js Wallet
|
|
495
|
+
|
|
496
|
+
// ❌ Invalid formats (will throw validation error)
|
|
497
|
+
const invalidKey1 = 'a'.repeat(64); // Missing '0x' prefix
|
|
498
|
+
const invalidKey2 = 'word1 word2 ... word24'; // Mnemonic not accepted
|
|
499
|
+
const invalidKey3 = '0x123'; // Too short
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## Available Methods & Result Types
|
|
334
503
|
|
|
335
504
|
### **Fetch Operations**
|
|
336
505
|
|
|
@@ -355,7 +524,7 @@ fetchVolumeData(options): Promise<GraphDataResult>
|
|
|
355
524
|
fetchTrades(options): Promise<TradesResult>
|
|
356
525
|
// Returns: { trades, page, limit, total, totalPages, hasNext, hasPrevious }
|
|
357
526
|
|
|
358
|
-
fetchGalaBalance(
|
|
527
|
+
fetchGalaBalance(address?): Promise<GalaBalanceInfo>
|
|
359
528
|
// Returns: { userAddress, balance, decimals, lastUpdated }
|
|
360
529
|
|
|
361
530
|
fetchTokenBalance(options): Promise<TokenBalanceInfo>
|
|
@@ -364,8 +533,8 @@ fetchTokenBalance(options): Promise<TokenBalanceInfo>
|
|
|
364
533
|
fetchComments(options): Promise<CommentsResult>
|
|
365
534
|
// Returns: { comments, page, limit, total, totalPages, hasNext, hasPrevious }
|
|
366
535
|
|
|
367
|
-
fetchProfile(
|
|
368
|
-
// Returns: { fullName, profileImage,
|
|
536
|
+
fetchProfile(address?): Promise<UserProfile>
|
|
537
|
+
// Returns: { fullName, profileImage, address, ... }
|
|
369
538
|
```
|
|
370
539
|
|
|
371
540
|
### **Calculate Operations**
|
|
@@ -426,7 +595,7 @@ uploadProfileImage(options): Promise<ImageUploadResult>
|
|
|
426
595
|
- `resolveVaultAddress(tokenName: string): Promise<string>`
|
|
427
596
|
- `cleanup(): void` - Cleanup resources
|
|
428
597
|
|
|
429
|
-
##
|
|
598
|
+
## Helper Functions
|
|
430
599
|
|
|
431
600
|
### **Wallet Creation**
|
|
432
601
|
```typescript
|
|
@@ -459,7 +628,7 @@ const testSDK = createTestLaunchpadSDK({
|
|
|
459
628
|
});
|
|
460
629
|
```
|
|
461
630
|
|
|
462
|
-
##
|
|
631
|
+
## Configuration
|
|
463
632
|
|
|
464
633
|
```typescript
|
|
465
634
|
interface LaunchpadSDKConfig {
|
|
@@ -475,7 +644,7 @@ interface LaunchpadSDKConfig {
|
|
|
475
644
|
}
|
|
476
645
|
```
|
|
477
646
|
|
|
478
|
-
##
|
|
647
|
+
## Testing
|
|
479
648
|
|
|
480
649
|
```bash
|
|
481
650
|
# Run all tests
|
|
@@ -491,7 +660,7 @@ npm run typecheck
|
|
|
491
660
|
npm run lint
|
|
492
661
|
```
|
|
493
662
|
|
|
494
|
-
##
|
|
663
|
+
## Documentation
|
|
495
664
|
|
|
496
665
|
- [SDK Method Reference](./SDK-METHOD-GRAPH.md) - Complete flat API reference
|
|
497
666
|
- [Clean Result Types Migration Guide](./docs/CLEAN_RESULT_TYPES_MIGRATION.md) - Migration guide for clean result types
|
|
@@ -499,7 +668,7 @@ npm run lint
|
|
|
499
668
|
- [API Documentation](../../API.md) - Detailed API documentation
|
|
500
669
|
- [Examples](./examples/) - Code examples and demos
|
|
501
670
|
|
|
502
|
-
##
|
|
671
|
+
## Architecture
|
|
503
672
|
|
|
504
673
|
The SDK uses a **service-based architecture** with backend-aligned services:
|
|
505
674
|
|
|
@@ -555,7 +724,7 @@ import {
|
|
|
555
724
|
✅ **Testability**: Services can be tested independently
|
|
556
725
|
✅ **Maintainability**: Easy to locate and update backend-specific logic
|
|
557
726
|
|
|
558
|
-
###
|
|
727
|
+
### AI Agent Integration
|
|
559
728
|
|
|
560
729
|
The SDK includes comprehensive utilities for AI agent development:
|
|
561
730
|
|
|
@@ -577,7 +746,7 @@ For comprehensive AI agent integration, see:
|
|
|
577
746
|
- [MCP Tool Specification](./docs/MCP-TOOL-SPECIFICATION.md) - Blueprint for MCP server creation
|
|
578
747
|
- [Agent Examples](./docs/agent-examples/) - Working code examples
|
|
579
748
|
|
|
580
|
-
##
|
|
749
|
+
## Clean Result Types Architecture
|
|
581
750
|
|
|
582
751
|
### Key Benefits
|
|
583
752
|
|
|
@@ -618,25 +787,25 @@ interface AmountCalculationResult {
|
|
|
618
787
|
}
|
|
619
788
|
```
|
|
620
789
|
|
|
621
|
-
##
|
|
790
|
+
## Environment URLs
|
|
622
791
|
|
|
623
792
|
- **Development**: `https://lpad-backend-dev1.defi.gala.com`
|
|
624
793
|
- **Production**: `https://lpad-backend-prod1.defi.gala.com`
|
|
625
794
|
|
|
626
|
-
##
|
|
795
|
+
## License
|
|
627
796
|
|
|
628
797
|
MIT License - see [LICENSE](../../LICENSE) file for details.
|
|
629
798
|
|
|
630
|
-
##
|
|
799
|
+
## Contributing
|
|
631
800
|
|
|
632
801
|
Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines on contributing to this project.
|
|
633
802
|
|
|
634
|
-
##
|
|
803
|
+
## Support
|
|
635
804
|
|
|
636
805
|
- GitHub Issues: [Report bugs and request features](https://github.com/gala-chain/launchpad-sdk/issues)
|
|
637
806
|
- Documentation: [Full documentation and examples](./docs/)
|
|
638
|
-
- API Status: All
|
|
807
|
+
- API Status: All 37 methods working and tested
|
|
639
808
|
|
|
640
809
|
---
|
|
641
810
|
|
|
642
|
-
**Built with
|
|
811
|
+
**Built with love for the Gala ecosystem**
|
package/dist/LaunchpadSDK.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ export interface LaunchpadSDKConfig extends SDKConfig {
|
|
|
120
120
|
* console.log('Ethereum Address:', sdk.getEthereumAddress()); // 0x{address}
|
|
121
121
|
*
|
|
122
122
|
* // SDK is ready for operations
|
|
123
|
-
* const balance = await sdk.
|
|
123
|
+
* const balance = await sdk.fetchGalaBalance(sdk.getAddress());
|
|
124
124
|
* ```
|
|
125
125
|
*
|
|
126
126
|
* @example Error handling pattern
|
|
@@ -156,6 +156,16 @@ export declare class LaunchpadSDK {
|
|
|
156
156
|
private readonly websocketService;
|
|
157
157
|
private readonly launchpadAPI;
|
|
158
158
|
constructor(config: LaunchpadSDKConfig);
|
|
159
|
+
/**
|
|
160
|
+
* Creates a temporary SDK instance with a different wallet for privateKey override operations.
|
|
161
|
+
* This allows signing operations with a different wallet without modifying the main SDK instance.
|
|
162
|
+
*
|
|
163
|
+
* @private
|
|
164
|
+
* @param privateKey The private key to use for the temporary SDK instance (format: '0x' + 64 hex chars)
|
|
165
|
+
* @returns A temporary SDK instance configured with the override wallet
|
|
166
|
+
* @throws Error if privateKey format is invalid
|
|
167
|
+
*/
|
|
168
|
+
private createOverrideSdk;
|
|
159
169
|
/**
|
|
160
170
|
* Gets the authenticated user's address in backend format
|
|
161
171
|
*
|
|
@@ -411,10 +421,10 @@ export declare class LaunchpadSDK {
|
|
|
411
421
|
/**
|
|
412
422
|
* Fetch GALA balance for a user
|
|
413
423
|
*
|
|
414
|
-
* @param
|
|
424
|
+
* @param address Optional wallet address (0x... or eth|... format), defaults to current user
|
|
415
425
|
* @returns Promise<GalaBalanceResult>
|
|
416
426
|
*/
|
|
417
|
-
fetchGalaBalance(
|
|
427
|
+
fetchGalaBalance(address?: string): Promise<import("./types/user.dto").TokenBalanceResult | null>;
|
|
418
428
|
/**
|
|
419
429
|
* Fetch token balance from GalaChain (published tokens) or DEX API (launchpad tokens)
|
|
420
430
|
*
|
|
@@ -627,10 +637,10 @@ export declare class LaunchpadSDK {
|
|
|
627
637
|
/**
|
|
628
638
|
* Get user profile information
|
|
629
639
|
*
|
|
630
|
-
* @param
|
|
640
|
+
* @param address Optional wallet address (defaults to SDK wallet address)
|
|
631
641
|
* @returns Promise<any> User profile information
|
|
632
642
|
*/
|
|
633
|
-
fetchProfile(
|
|
643
|
+
fetchProfile(address?: string): Promise<any>;
|
|
634
644
|
/**
|
|
635
645
|
* Update user profile information
|
|
636
646
|
*
|
|
@@ -649,10 +659,10 @@ export declare class LaunchpadSDK {
|
|
|
649
659
|
* Retrieve GALA from faucet to user wallet
|
|
650
660
|
* Backend provides a fixed amount (5 GALA) - amount parameter is not used
|
|
651
661
|
*
|
|
652
|
-
* @param
|
|
662
|
+
* @param address Optional wallet address override (defaults to SDK's authenticated wallet)
|
|
653
663
|
* @returns Promise<void> Faucet retrieval result
|
|
654
664
|
*/
|
|
655
|
-
retrieveGalaFromFaucet(
|
|
665
|
+
retrieveGalaFromFaucet(address?: string): Promise<void>;
|
|
656
666
|
/**
|
|
657
667
|
* Fetch tokens held by user with optional filtering
|
|
658
668
|
*
|
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAYzE,OAAO,EAAwB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,iBAAiB,EACjB,WAAW,EAEZ,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aACM,KAAK,CAAC,EAAE,KAAK;gBAA9C,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,KAAK,YAAA;CAI3D;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;gBAC3C,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAIrD;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,aAAa,EAAE,MAAM;aACrB,MAAM,EAAE,MAAM;gBADd,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EAC9B,OAAO,CAAC,EAAE,MAAM;CAKnB;AA8DD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0GAA0G;IAC1G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wGAAwG;IACxG,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kHAAkH;IAClH,iDAAiD,CAAC,EAAE,MAAM,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,YAAY;IACvB,yFAAyF;IACzF,MAAM,CAAC,QAAQ,CAAC,iCAAiC,QAAQ;IACzD,8GAA8G;IAC9G,MAAM,CAAC,QAAQ,CAAC,gEAAgE,QAAQ;IAExF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,iDAAiD,CAAS;IAI3E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAGpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,MAAM,EAAE,kBAAkB;IA4GtC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,UAAU,IAAI,aAAa;IAI3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAW/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAiB5C;;;;;OAKG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB;IAI5C;;;;;OAKG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM;IAI9C;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAIxC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIhF;;;;;;;;;;;;;;;;OAgBG;IACG,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;IAYnD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9E;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAUnE;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB;IAIrD;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAI7C;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM;IAevC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACG,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;;IAoDzD;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB;IAMjD;;;;;OAKG;IACG,kBAAkB,CAAC,OAAO,EAAE,yBAAyB;IAI3D;;;;;OAKG;IACG,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;IAI7D;;;;;OAKG;IACG,yBAAyB,CAAC,mBAAmB,EAAE,MAAM;IAS3D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAsDzD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsD3D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,2BAA2B,CAAC,aAAa,EAAE,MAAM;IAMvD;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0DpE;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,CAAC;IAa/E;;;;;OAKG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAI5C;;;;;OAKG;IACG,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAQ3C;;;;;OAKG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM;IAOnC;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3D;;;;;OAKG;IACG,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB7E;;;;;;OAMG;IACG,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM;IAY7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB;IAwBtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB;IAyB5D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB3D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQrE;;;;;OAKG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQpE;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyD7B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAWpC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;YACW,yBAAyB;IAUvC;;;;;;;OAOG;YACW,mBAAmB;IA6DjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,GAAE,OAAe,GAAG,IAAI;CAahD"}
|