@gala-chain/launchpad-sdk 4.0.6 → 4.0.7-beta.10

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.
Files changed (55) hide show
  1. package/README.md +174 -4
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.d.ts +3 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.esm.js +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/src/LaunchpadSDK.d.ts +214 -1
  8. package/dist/src/LaunchpadSDK.d.ts.map +1 -1
  9. package/dist/src/bridge/BridgeService.d.ts +364 -0
  10. package/dist/src/bridge/BridgeService.d.ts.map +1 -0
  11. package/dist/src/bridge/GalaConnectClient.d.ts +164 -0
  12. package/dist/src/bridge/GalaConnectClient.d.ts.map +1 -0
  13. package/dist/src/bridge/constants/index.d.ts +7 -0
  14. package/dist/src/bridge/constants/index.d.ts.map +1 -0
  15. package/dist/src/bridge/constants/tokens.d.ts +181 -0
  16. package/dist/src/bridge/constants/tokens.d.ts.map +1 -0
  17. package/dist/src/bridge/index.d.ts +22 -0
  18. package/dist/src/bridge/index.d.ts.map +1 -0
  19. package/dist/src/bridge/strategies/BridgeStrategy.d.ts +160 -0
  20. package/dist/src/bridge/strategies/BridgeStrategy.d.ts.map +1 -0
  21. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts +198 -0
  22. package/dist/src/bridge/strategies/EthereumBridgeStrategy.d.ts.map +1 -0
  23. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts +207 -0
  24. package/dist/src/bridge/strategies/SolanaBridgeStrategy.d.ts.map +1 -0
  25. package/dist/src/bridge/strategies/index.d.ts +9 -0
  26. package/dist/src/bridge/strategies/index.d.ts.map +1 -0
  27. package/dist/src/bridge/types/bridge.dto.d.ts +618 -0
  28. package/dist/src/bridge/types/bridge.dto.d.ts.map +1 -0
  29. package/dist/src/bridge/types/eip712.d.ts +57 -0
  30. package/dist/src/bridge/types/eip712.d.ts.map +1 -0
  31. package/dist/src/bridge/types/index.d.ts +8 -0
  32. package/dist/src/bridge/types/index.d.ts.map +1 -0
  33. package/dist/src/bridge/utils/RateLimiter.d.ts +34 -0
  34. package/dist/src/bridge/utils/RateLimiter.d.ts.map +1 -0
  35. package/dist/src/bridge/utils/index.d.ts +9 -0
  36. package/dist/src/bridge/utils/index.d.ts.map +1 -0
  37. package/dist/src/bridge/utils/retry.d.ts +96 -0
  38. package/dist/src/bridge/utils/retry.d.ts.map +1 -0
  39. package/dist/src/bridge/utils/tokenMath.d.ts +39 -0
  40. package/dist/src/bridge/utils/tokenMath.d.ts.map +1 -0
  41. package/dist/src/constants/version.generated.d.ts +1 -1
  42. package/dist/src/constants/version.generated.d.ts.map +1 -1
  43. package/dist/src/index.d.ts +3 -1
  44. package/dist/src/index.d.ts.map +1 -1
  45. package/dist/src/services/DexBackendClient.d.ts +51 -1
  46. package/dist/src/services/DexBackendClient.d.ts.map +1 -1
  47. package/dist/src/services/GSwapService.d.ts +62 -8
  48. package/dist/src/services/GSwapService.d.ts.map +1 -1
  49. package/dist/src/types/galachain-api.types.d.ts +28 -0
  50. package/dist/src/types/galachain-api.types.d.ts.map +1 -1
  51. package/dist/src/types/gswap.dto.d.ts +43 -4
  52. package/dist/src/types/gswap.dto.d.ts.map +1 -1
  53. package/dist/src/utils/validation-helpers.d.ts +9 -1
  54. package/dist/src/utils/validation-helpers.d.ts.map +1 -1
  55. package/package.json +19 -2
@@ -0,0 +1,207 @@
1
+ /**
2
+ * Solana Bridge Strategy
3
+ *
4
+ * Implements bridging between GalaChain and Solana networks.
5
+ * Handles SPL token accounts, PDA derivation, and Solana program interactions.
6
+ */
7
+ import { BaseBridgeStrategy } from './BridgeStrategy.js';
8
+ import { GalaConnectClient } from '../GalaConnectClient.js';
9
+ import type { BridgeFeeEstimate, BridgeInParams, BridgeOutParams, BridgeStatus, BridgeTransaction, ExternalNetwork, SolanaTokenConfig } from '../types/index.js';
10
+ /**
11
+ * Configuration for Solana bridge strategy.
12
+ */
13
+ export interface SolanaBridgeConfig {
14
+ /** GalaConnect API client */
15
+ galaConnectClient: GalaConnectClient;
16
+ /** GalaChain wallet address (eth|0x...) */
17
+ galaChainWalletAddress: string;
18
+ /** Ethereum private key for EIP-712 signing (GalaChain uses Ethereum signatures) */
19
+ ethereumPrivateKey: string;
20
+ /** Solana private key in base58 format */
21
+ solanaPrivateKeyBase58: string;
22
+ /** Solana RPC URL */
23
+ solanaRpcUrl?: string;
24
+ /** Solana bridge program ID */
25
+ solanaBridgeProgram?: string;
26
+ /** Token configurations */
27
+ tokenConfigs?: SolanaTokenConfig[];
28
+ }
29
+ /**
30
+ * Bridge strategy for GalaChain ↔ Solana transfers.
31
+ *
32
+ * Supports 2 tokens: GALA, GSOL
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const strategy = new SolanaBridgeStrategy({
37
+ * galaConnectClient,
38
+ * galaChainWalletAddress: 'eth|0x1234...',
39
+ * ethereumPrivateKey: '0xabcd...',
40
+ * solanaPrivateKeyBase58: 'base58EncodedKey...',
41
+ * });
42
+ *
43
+ * // Bridge out (GalaChain → Solana)
44
+ * const tx = await strategy.bridgeOut({
45
+ * tokenSymbol: 'GALA',
46
+ * amount: '100',
47
+ * destinationChain: 'Solana',
48
+ * recipientAddress: 'SolanaAddress...',
49
+ * });
50
+ * ```
51
+ */
52
+ export declare class SolanaBridgeStrategy extends BaseBridgeStrategy {
53
+ readonly network: ExternalNetwork;
54
+ private readonly galaConnectClient;
55
+ private readonly galaChainWalletAddress;
56
+ private readonly ethereumWallet;
57
+ private readonly solanaConnection;
58
+ private readonly solanaKeypair;
59
+ private readonly solanaBridgeProgramId;
60
+ private readonly solanaBridgeTokenAuthority;
61
+ private readonly solanaBridgeConfigPda;
62
+ private readonly solanaNativeBridgePda;
63
+ private readonly solanaBridgeAccountCache;
64
+ private readonly tokenConfigs;
65
+ private readonly tokenMetadataCache;
66
+ /**
67
+ * Creates a new Solana bridge strategy.
68
+ *
69
+ * @param config - Strategy configuration
70
+ * @throws Error if ethereumPrivateKey or solanaPrivateKeyBase58 is invalid format
71
+ */
72
+ constructor(config: SolanaBridgeConfig);
73
+ /**
74
+ * Estimate bridge fees for a transfer to Solana.
75
+ *
76
+ * @param tokenSymbol - Token symbol (e.g., 'GALA', 'GSOL')
77
+ * @param amount - Amount in decimal format
78
+ * @returns Fee estimate with breakdown
79
+ */
80
+ estimateFee(tokenSymbol: string, _amount: string): Promise<BridgeFeeEstimate>;
81
+ /**
82
+ * Bridge tokens from GalaChain to Solana.
83
+ *
84
+ * @param params - Bridge out parameters
85
+ * @returns Transaction details
86
+ */
87
+ bridgeOut(params: BridgeOutParams): Promise<BridgeTransaction>;
88
+ /**
89
+ * Bridge tokens from Solana to GalaChain.
90
+ *
91
+ * @param params - Bridge in parameters
92
+ * @returns Transaction details
93
+ */
94
+ bridgeIn(params: BridgeInParams): Promise<BridgeTransaction>;
95
+ /**
96
+ * Get the current status of a bridge transaction.
97
+ *
98
+ * @param transactionHash - Transaction hash to check
99
+ * @returns Current status
100
+ */
101
+ getStatus(transactionHash: string): Promise<BridgeStatus>;
102
+ /**
103
+ * Get list of supported tokens for Solana bridging.
104
+ *
105
+ * @returns Array of token symbols
106
+ */
107
+ getSupportedTokens(): string[];
108
+ /**
109
+ * Check if a token is supported for Solana bridging.
110
+ *
111
+ * @param tokenSymbol - Token symbol to check
112
+ * @returns True if supported
113
+ */
114
+ isTokenSupported(tokenSymbol: string): boolean;
115
+ /**
116
+ * Validate a Solana address.
117
+ *
118
+ * @param address - Address to validate
119
+ * @returns True if valid Solana address
120
+ */
121
+ isValidAddress(address: string): boolean;
122
+ /**
123
+ * Get the configured Solana wallet address.
124
+ *
125
+ * @returns Solana wallet address (base58 format)
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const address = strategy.getWalletAddress();
130
+ * console.log(`Wallet: ${address}`);
131
+ * ```
132
+ */
133
+ getWalletAddress(): string;
134
+ /**
135
+ * Get SPL token balance for a Solana address.
136
+ *
137
+ * @param tokenSymbol - Token symbol ('GALA' or 'GSOL')
138
+ * @param address - Optional Solana address (defaults to configured wallet)
139
+ * @returns Token balance as decimal string (returns "0" for zero balance)
140
+ * @throws Error if token not supported or address invalid
141
+ *
142
+ * @remarks
143
+ * If the token account does not exist, this method returns "0" rather than
144
+ * throwing an error, as non-existent accounts are equivalent to zero balance.
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const balance = await strategy.getSolanaTokenBalance('GALA');
149
+ * console.log(`Balance: ${balance} GALA`);
150
+ *
151
+ * // Check another address
152
+ * const otherBalance = await strategy.getSolanaTokenBalance('GALA', 'SolanaAddress...');
153
+ * ```
154
+ */
155
+ getSolanaTokenBalance(tokenSymbol: string, address?: string): Promise<string>;
156
+ /**
157
+ * Get native SOL balance for a Solana address.
158
+ *
159
+ * @param address - Optional Solana address (defaults to configured wallet)
160
+ * @returns SOL balance as decimal string (9 decimals)
161
+ * @throws Error if address invalid
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * const solBalance = await strategy.getSolanaNativeBalance();
166
+ * console.log(`SOL Balance: ${solBalance} SOL`);
167
+ * ```
168
+ */
169
+ getSolanaNativeBalance(address?: string): Promise<string>;
170
+ /**
171
+ * Get token metadata from cache or API.
172
+ */
173
+ private getTokenMetadata;
174
+ /**
175
+ * Build EIP-712 signed bridge out payload.
176
+ */
177
+ private buildBridgeOutPayload;
178
+ /**
179
+ * Execute Solana bridge out transaction.
180
+ */
181
+ private executeSolanaBridgeOut;
182
+ /**
183
+ * Build instruction for native SOL bridging.
184
+ */
185
+ private buildNativeBridgeInstruction;
186
+ /**
187
+ * Build instruction for SPL token bridging.
188
+ */
189
+ private buildTokenBridgeInstruction;
190
+ /**
191
+ * Get cached Solana bridge accounts for a mint.
192
+ */
193
+ private getSolanaBridgeAccounts;
194
+ /**
195
+ * Normalize fee response for deterministic signing.
196
+ */
197
+ private normalizeDestinationChainTxFee;
198
+ /**
199
+ * Remove undefined values for deterministic JSON.
200
+ */
201
+ private sanitizeObject;
202
+ /**
203
+ * Extract bridge request ID from response.
204
+ */
205
+ private extractBridgeRequestId;
206
+ }
207
+ //# sourceMappingURL=SolanaBridgeStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolanaBridgeStrategy.d.ts","sourceRoot":"","sources":["../../../../src/bridge/strategies/SolanaBridgeStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Bridge Strategies Index
3
+ *
4
+ * Re-exports all bridge strategy implementations.
5
+ */
6
+ export * from './BridgeStrategy.js';
7
+ export * from './EthereumBridgeStrategy.js';
8
+ export * from './SolanaBridgeStrategy.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/strategies/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}