@gala-chain/launchpad-sdk 3.6.3 → 3.6.4
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/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/schemas/primitives.d.ts.map +1 -1
- package/dist/services/GalaChainService.d.ts +0 -8
- package/dist/services/GalaChainService.d.ts.map +1 -1
- package/dist/types/transfer.dto.d.ts +2 -2
- package/dist/types/transfer.dto.d.ts.map +1 -1
- package/dist/utils/validation-helpers.d.ts +200 -0
- package/dist/utils/validation-helpers.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;GAGG;AACH,eAAO,MAAM,eAAe,aAIsD,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAIyC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,aAG4B,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAGsB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAG4B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,cAAc,aAI+C,CAAC;AAM3E;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAE2D,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAEuC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,qBAAqB,yEAc9B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2CAO5B,CAAC;AAMJ;;;GAGG;AACH,eAAO,MAAM,2BAA2B,2CAMrC,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,8BAA8B,2CAMxC,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAEsD,CAAC;AAMtF;;;GAGG;AACH,eAAO,MAAM,SAAS,aAG6C,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,kFAM3B,CAAC;AAMJ;;;GAGG;AACH,eAAO,MAAM,gBAAgB,2BAKhB,CAAC;AAEd;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAY,6BAOvD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,2BAAyB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,eAAe,2BAAwB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,gBAAgB,2BAAwB,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,cAAc,aAI0B,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,cAAc,aAE2B,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,mBAAmB,iGAO9B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,oBAAoB,aAGoB,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAEmB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,eAAe,aAGe,CAAC;AAM5C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,aAEwD,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAK7B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,eAAe,aAKzB,CAAC"}
|
|
@@ -227,14 +227,6 @@ export declare class GalaChainService {
|
|
|
227
227
|
* Validate token transfer data
|
|
228
228
|
*/
|
|
229
229
|
private validateTransferTokenData;
|
|
230
|
-
/**
|
|
231
|
-
* Check if an address is in valid format (eth| or 0x)
|
|
232
|
-
*/
|
|
233
|
-
private isValidAddress;
|
|
234
|
-
/**
|
|
235
|
-
* Convert address to backend format (eth|40hex)
|
|
236
|
-
*/
|
|
237
|
-
private formatAddressForBackend;
|
|
238
230
|
/**
|
|
239
231
|
* Resolve token name to tokenInstance object for transfers
|
|
240
232
|
* Uses TokenResolverService to get vault address, then parses it to extract tokenInstance components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"GalaChainService.d.ts","sourceRoot":"","sources":["../../src/services/GalaChainService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAEjC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAQlB,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,qBAAa,gBAAgB;IAazB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdhC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;;;;OAOG;gBAEgB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,oBAAoB,EACpD,KAAK,GAAE,OAAe;IAUxB;;;;;;;;;;;;;;;;;;OAkBG;IACG,gBAAgB,CACpB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,gCAAgC,CAAC;IAqB5C;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiCpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,gBAAgB,CAAC,WAAW,EAAE;QAClC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAItC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,iBAAiB,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAsDtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6E3D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwG7D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BrE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgDhC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqEjC;;;OAGG;YACW,oBAAoB;IA0ClC;;;;OAIG;IACH,OAAO,CAAC,oCAAoC;IA2C5C;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAqD5B"}
|
|
@@ -122,9 +122,9 @@ export declare const TRANSFER_CONSTRAINTS: {
|
|
|
122
122
|
readonly UNIQUE_KEY_PATTERN: RegExp;
|
|
123
123
|
/** Pattern for valid token names */
|
|
124
124
|
readonly TOKEN_NAME_PATTERN: RegExp;
|
|
125
|
-
/** Pattern for valid Ethereum addresses (0x format) */
|
|
125
|
+
/** Pattern for valid Ethereum addresses (0x format) - imported from centralized ADDRESS_PATTERNS */
|
|
126
126
|
readonly ETH_ADDRESS_PATTERN: RegExp;
|
|
127
|
-
/** Pattern for valid backend addresses (eth| format) */
|
|
127
|
+
/** Pattern for valid backend addresses (eth| format) - imported from centralized ADDRESS_PATTERNS */
|
|
128
128
|
readonly BACKEND_ADDRESS_PATTERN: RegExp;
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.dto.d.ts","sourceRoot":"","sources":["../../src/types/transfer.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"transfer.dto.d.ts","sourceRoot":"","sources":["../../src/types/transfer.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,4 +113,204 @@ export interface PaginationConstraints {
|
|
|
113
113
|
* ```
|
|
114
114
|
*/
|
|
115
115
|
export declare function assertValidPagination(page: number, limit: number, constraints: PaginationConstraints): void;
|
|
116
|
+
/**
|
|
117
|
+
* Address format patterns
|
|
118
|
+
*
|
|
119
|
+
* Centralized regex patterns for Ethereum and GalaChain backend address formats.
|
|
120
|
+
* Single source of truth for address validation across the SDK.
|
|
121
|
+
*/
|
|
122
|
+
export declare const ADDRESS_PATTERNS: {
|
|
123
|
+
/** Ethereum address format: 0x followed by 40 hexadecimal characters */
|
|
124
|
+
readonly ETH_ADDRESS: RegExp;
|
|
125
|
+
/** Backend address format: eth| followed by 40 hexadecimal characters */
|
|
126
|
+
readonly BACKEND_ADDRESS: RegExp;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Validates if a string is a valid address in either Ethereum or backend format
|
|
130
|
+
*
|
|
131
|
+
* This utility consolidates address validation logic that was duplicated across
|
|
132
|
+
* services, particularly in GalaChainService.
|
|
133
|
+
*
|
|
134
|
+
* ## Replaces Patterns
|
|
135
|
+
*
|
|
136
|
+
* ### Before (Duplicate Private Method):
|
|
137
|
+
* ```typescript
|
|
138
|
+
* // GalaChainService.ts (lines 698-703)
|
|
139
|
+
* private isValidAddress(address: string): boolean {
|
|
140
|
+
* return (
|
|
141
|
+
* TRANSFER_CONSTRAINTS.ETH_ADDRESS_PATTERN.test(address) ||
|
|
142
|
+
* TRANSFER_CONSTRAINTS.BACKEND_ADDRESS_PATTERN.test(address)
|
|
143
|
+
* );
|
|
144
|
+
* }
|
|
145
|
+
* ```
|
|
146
|
+
*
|
|
147
|
+
* ### After (Single Source of Truth):
|
|
148
|
+
* ```typescript
|
|
149
|
+
* import { isValidAddress } from '../utils/validation-helpers';
|
|
150
|
+
*
|
|
151
|
+
* if (!isValidAddress(data.recipientAddress)) {
|
|
152
|
+
* throw new ValidationError(...);
|
|
153
|
+
* }
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
156
|
+
* @param address - Address string to validate
|
|
157
|
+
* @returns True if address matches either Ethereum (0x...) or backend (eth|...) format
|
|
158
|
+
*
|
|
159
|
+
* @example Ethereum address validation
|
|
160
|
+
* ```typescript
|
|
161
|
+
* isValidAddress('0x1234567890abcdef1234567890abcdef12345678'); // true
|
|
162
|
+
* isValidAddress('0x123'); // false (too short)
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example Backend address validation
|
|
166
|
+
* ```typescript
|
|
167
|
+
* isValidAddress('eth|1234567890abcdef1234567890abcdef12345678'); // true
|
|
168
|
+
* isValidAddress('eth|123'); // false (too short)
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export declare function isValidAddress(address: string): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Converts an address to backend format (eth|40hex)
|
|
174
|
+
*
|
|
175
|
+
* This utility consolidates address formatting logic that was duplicated across
|
|
176
|
+
* services, particularly in GalaChainService. Matches the transformation logic
|
|
177
|
+
* in the flexibleAddressSchema Zod schema (primitives.ts).
|
|
178
|
+
*
|
|
179
|
+
* ## Replaces Patterns
|
|
180
|
+
*
|
|
181
|
+
* ### Before (Duplicate Private Method):
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // GalaChainService.ts (lines 708-713)
|
|
184
|
+
* private formatAddressForBackend(address: string): string {
|
|
185
|
+
* if (address.startsWith('0x')) {
|
|
186
|
+
* return `eth|${address.slice(2)}`;
|
|
187
|
+
* }
|
|
188
|
+
* return address;
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* ### After (Single Source of Truth):
|
|
193
|
+
* ```typescript
|
|
194
|
+
* import { formatAddressForBackend } from '../utils/validation-helpers';
|
|
195
|
+
*
|
|
196
|
+
* const recipientAddress = formatAddressForBackend(data.to);
|
|
197
|
+
* ```
|
|
198
|
+
*
|
|
199
|
+
* @param address - Address in either Ethereum (0x...) or backend (eth|...) format
|
|
200
|
+
* @returns Address in backend format (eth|40hex)
|
|
201
|
+
*
|
|
202
|
+
* @example Ethereum address conversion
|
|
203
|
+
* ```typescript
|
|
204
|
+
* formatAddressForBackend('0x1234567890abcdef1234567890abcdef12345678');
|
|
205
|
+
* // Returns: 'eth|1234567890abcdef1234567890abcdef12345678'
|
|
206
|
+
* ```
|
|
207
|
+
*
|
|
208
|
+
* @example Backend address passthrough
|
|
209
|
+
* ```typescript
|
|
210
|
+
* formatAddressForBackend('eth|1234567890abcdef1234567890abcdef12345678');
|
|
211
|
+
* // Returns: 'eth|1234567890abcdef1234567890abcdef12345678' (unchanged)
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
export declare function formatAddressForBackend(address: string): string;
|
|
215
|
+
/**
|
|
216
|
+
* Type guard function signature
|
|
217
|
+
* A function that checks if a value matches a specific type and narrows the type accordingly
|
|
218
|
+
*/
|
|
219
|
+
export type TypeGuard<T> = (value: unknown) => value is T;
|
|
220
|
+
/**
|
|
221
|
+
* Creates a validation function from a type guard
|
|
222
|
+
*
|
|
223
|
+
* This utility eliminates the need for boilerplate validation wrapper methods
|
|
224
|
+
* that simply call a type guard and throw an error. Common pattern across services.
|
|
225
|
+
*
|
|
226
|
+
* ## Replaces Patterns
|
|
227
|
+
*
|
|
228
|
+
* ### Before (Multiple Duplicate Wrapper Methods):
|
|
229
|
+
* ```typescript
|
|
230
|
+
* // GalaChainService.ts - 3 separate validation methods (~30 lines total)
|
|
231
|
+
* private validateFetchPoolDetailsData(data: FetchPoolDetailsData): void {
|
|
232
|
+
* if (!isFetchPoolDetailsData(data)) {
|
|
233
|
+
* throw new ValidationError(
|
|
234
|
+
* 'Invalid fetch pool details data',
|
|
235
|
+
* 'data',
|
|
236
|
+
* 'INVALID_DATA'
|
|
237
|
+
* );
|
|
238
|
+
* }
|
|
239
|
+
* }
|
|
240
|
+
*
|
|
241
|
+
* private validateTransferGalaData(data: TransferGalaData): void {
|
|
242
|
+
* if (!isTransferGalaData(data)) {
|
|
243
|
+
* throw new ValidationError(
|
|
244
|
+
* 'Invalid transfer GALA data',
|
|
245
|
+
* 'data',
|
|
246
|
+
* 'INVALID_DATA'
|
|
247
|
+
* );
|
|
248
|
+
* }
|
|
249
|
+
* }
|
|
250
|
+
*
|
|
251
|
+
* private validateTransferTokenData(data: TransferTokenData): void {
|
|
252
|
+
* if (!isTransferTokenData(data)) {
|
|
253
|
+
* throw new ValidationError(
|
|
254
|
+
* 'Invalid transfer token data',
|
|
255
|
+
* 'data',
|
|
256
|
+
* 'INVALID_DATA'
|
|
257
|
+
* );
|
|
258
|
+
* }
|
|
259
|
+
* }
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
* ### After (Single Factory Function):
|
|
263
|
+
* ```typescript
|
|
264
|
+
* import { createValidator } from '../utils/validation-helpers';
|
|
265
|
+
*
|
|
266
|
+
* // Create validators inline
|
|
267
|
+
* const data = req.body;
|
|
268
|
+
* createValidator(isFetchPoolDetailsData, 'fetch pool details data')(data);
|
|
269
|
+
* createValidator(isTransferGalaData, 'transfer GALA data')(data);
|
|
270
|
+
* createValidator(isTransferTokenData, 'transfer token data')(data);
|
|
271
|
+
* ```
|
|
272
|
+
*
|
|
273
|
+
* @param typeGuard - Type guard function that validates the data type
|
|
274
|
+
* @param dataTypeName - Human-readable name for error messages (e.g., 'transfer data', 'pool details')
|
|
275
|
+
* @param fieldName - Optional field name for error context (defaults to 'data')
|
|
276
|
+
* @param errorCode - Optional error code (defaults to 'INVALID_DATA')
|
|
277
|
+
* @returns Validation function that throws ValidationError if type guard fails
|
|
278
|
+
*
|
|
279
|
+
* @example Basic usage with transfer data
|
|
280
|
+
* ```typescript
|
|
281
|
+
* import { createValidator } from '../utils/validation-helpers';
|
|
282
|
+
* import { isTransferGalaData, TransferGalaData } from '../types/transfer.dto';
|
|
283
|
+
*
|
|
284
|
+
* function transferGala(data: unknown) {
|
|
285
|
+
* // Validates and narrows type in one call
|
|
286
|
+
* createValidator(isTransferGalaData, 'transfer GALA data')(data);
|
|
287
|
+
* // data is now typed as TransferGalaData
|
|
288
|
+
*
|
|
289
|
+
* // Proceed with transfer logic
|
|
290
|
+
* }
|
|
291
|
+
* ```
|
|
292
|
+
*
|
|
293
|
+
* @example With custom field name and error code
|
|
294
|
+
* ```typescript
|
|
295
|
+
* createValidator(
|
|
296
|
+
* isFetchPoolDetailsData,
|
|
297
|
+
* 'pool details',
|
|
298
|
+
* 'poolData',
|
|
299
|
+
* 'INVALID_POOL_DATA'
|
|
300
|
+
* )(data);
|
|
301
|
+
* ```
|
|
302
|
+
*
|
|
303
|
+
* @example Reusable validator
|
|
304
|
+
* ```typescript
|
|
305
|
+
* const validateTransferData = createValidator(
|
|
306
|
+
* isTransferGalaData,
|
|
307
|
+
* 'transfer data'
|
|
308
|
+
* );
|
|
309
|
+
*
|
|
310
|
+
* // Use in multiple places
|
|
311
|
+
* validateTransferData(data1);
|
|
312
|
+
* validateTransferData(data2);
|
|
313
|
+
* ```
|
|
314
|
+
*/
|
|
315
|
+
export declare function createValidator<T>(typeGuard: TypeGuard<T>, dataTypeName: string, fieldName?: string, errorCode?: string): (value: unknown) => asserts value is T;
|
|
116
316
|
//# sourceMappingURL=validation-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/validation-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB,GACjC,IAAI,CAoBN"}
|
|
1
|
+
{"version":3,"file":"validation-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/validation-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB,GACjC,IAAI,CAoBN;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;IAC3B,wEAAwE;;IAExE,yEAAyE;;CAEjE,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAe,EAC1B,SAAS,GAAE,MAAuB,GACjC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,CAUxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gala-chain/launchpad-sdk",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.4",
|
|
4
4
|
"description": "TypeScript SDK for Gala Launchpad Backend API - Production-ready DeFi token launchpad integration with wallet-based authentication, GalaChain trading, and comprehensive user operations. 100% tested (22/22 endpoints working).",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|