@gala-chain/launchpad-sdk 3.4.7 → 3.5.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 +27 -0
- package/README.md +169 -0
- package/dist/LaunchpadSDK.d.ts +10 -0
- 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/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 +4 -0
- package/dist/types/user.dto.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,33 @@ 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.0] - 2025-10-01
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **Multi-wallet support with privateKey override** - Execute operations from different wallets without creating new SDK instances
|
|
11
|
+
- Added optional `privateKey` parameter to all 9 signing operations:
|
|
12
|
+
- Trading: `buy()`, `sell()`
|
|
13
|
+
- Token Creation: `launchToken()`, `uploadTokenImage()`, `uploadProfileImage()`
|
|
14
|
+
- Transfers: `transferGala()`, `transferToken()`
|
|
15
|
+
- Social & Profile: `postComment()`, `updateProfile()`
|
|
16
|
+
- `privateKey` must be in format: `'0x' + 64 hexadecimal characters`
|
|
17
|
+
- Enables multi-user trading bots, testing scenarios, and wallet coordination
|
|
18
|
+
- SDK creates temporary instances with override wallet using new `createOverrideSdk()` helper method
|
|
19
|
+
- Full validation ensures privateKey format compliance before execution
|
|
20
|
+
- Example: `await sdk.buy({ ...options, privateKey: '0x1234...' })` uses different wallet for that operation
|
|
21
|
+
|
|
22
|
+
### Benefits
|
|
23
|
+
- ✅ Test multi-wallet workflows without server restart
|
|
24
|
+
- ✅ Build multi-user trading applications
|
|
25
|
+
- ✅ Simulate different user behaviors in testing
|
|
26
|
+
- ✅ Create automated market maker systems
|
|
27
|
+
- ✅ Coordinate multiple wallets from single SDK instance
|
|
28
|
+
|
|
29
|
+
### Documentation
|
|
30
|
+
- Added comprehensive multi-wallet section to SDK README with examples
|
|
31
|
+
- Updated AI Agent Developer docs with multi-wallet patterns
|
|
32
|
+
- Added privateKey format requirements and validation examples
|
|
33
|
+
|
|
7
34
|
## [3.3.4] - 2025-10-01
|
|
8
35
|
|
|
9
36
|
### Fixed
|
package/README.md
CHANGED
|
@@ -330,6 +330,175 @@ 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
|
+
## 🔐 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
|
+
|
|
333
502
|
## 🎯 Available Methods & Result Types
|
|
334
503
|
|
|
335
504
|
### **Fetch Operations**
|
package/dist/LaunchpadSDK.d.ts
CHANGED
|
@@ -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
|
*
|
|
@@ -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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"}
|