@flashnet/sdk 0.3.6 → 0.3.7
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/cjs/src/client/FlashnetClient.d.ts +12 -60
- package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.js +57 -155
- package/dist/cjs/src/client/FlashnetClient.js.map +1 -1
- package/dist/cjs/src/types/index.d.ts +5 -3
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js +0 -14
- package/dist/cjs/src/types/index.js.map +1 -1
- package/dist/esm/src/client/FlashnetClient.d.ts +12 -60
- package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/esm/src/client/FlashnetClient.js +61 -159
- package/dist/esm/src/client/FlashnetClient.js.map +1 -1
- package/dist/esm/src/types/index.d.ts +5 -3
- package/dist/esm/src/types/index.d.ts.map +1 -1
- package/dist/esm/src/types/index.js +1 -12
- package/dist/esm/src/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { IssuerSparkWallet } from "@buildonspark/issuer-sdk";
|
|
2
2
|
import type { SparkWallet } from "@buildonspark/spark-sdk";
|
|
3
|
-
import { type AddLiquidityResponse, type AllLpPositionsResponse, type ConfirmDepositResponse, type CreatePoolResponse, type ExecuteRouteSwapResponse, type GetHostFeesResponse, type GetHostResponse, type GetIntegratorFeesResponse, type GetPoolHostFeesResponse, type ListGlobalSwapsQuery, type ListGlobalSwapsResponse, type ListPoolSwapsQuery, type ListPoolSwapsResponse, type ListPoolsQuery, type ListPoolsResponse, type ListUserSwapsQuery, type ListUserSwapsResponse, type LpPositionDetailsResponse, type NetworkType, type
|
|
4
|
-
import { type HumanReadableTokenIdentifier
|
|
3
|
+
import { type AddLiquidityResponse, type AllLpPositionsResponse, type ConfirmDepositResponse, type CreatePoolResponse, type ExecuteRouteSwapResponse, type GetHostFeesResponse, type GetHostResponse, type GetIntegratorFeesResponse, type GetPoolHostFeesResponse, type ListGlobalSwapsQuery, type ListGlobalSwapsResponse, type ListPoolSwapsQuery, type ListPoolSwapsResponse, type ListPoolsQuery, type ListPoolsResponse, type ListUserSwapsQuery, type ListUserSwapsResponse, type LpPositionDetailsResponse, type NetworkType, type PoolDetailsResponse, type RegisterHostResponse, type RemoveLiquidityResponse, type SettlementPingResponse, type SimulateAddLiquidityRequest, type SimulateAddLiquidityResponse, type SimulateRemoveLiquidityRequest, type SimulateRemoveLiquidityResponse, type SimulateRouteSwapRequest, type SimulateRouteSwapResponse, type SimulateSwapRequest, type SimulateSwapResponse, type SwapResponse, type WithdrawHostFeesResponse, type WithdrawIntegratorFeesResponse } from "../types";
|
|
4
|
+
import { type HumanReadableTokenIdentifier } from "../utils/tokenAddress";
|
|
5
5
|
export interface TokenBalance {
|
|
6
6
|
balance: bigint;
|
|
7
7
|
tokenInfo?: {
|
|
8
|
-
|
|
8
|
+
tokenIdentifier: string;
|
|
9
|
+
tokenAddress: string;
|
|
9
10
|
tokenName: string;
|
|
10
11
|
tokenSymbol: string;
|
|
11
12
|
tokenDecimals: number;
|
|
@@ -16,9 +17,6 @@ export interface WalletBalance {
|
|
|
16
17
|
balance: bigint;
|
|
17
18
|
tokenBalances: Map<string, TokenBalance>;
|
|
18
19
|
}
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated Use FlashnetClientConfig instead
|
|
21
|
-
*/
|
|
22
20
|
export interface FlashnetClientOptions {
|
|
23
21
|
autoAuthenticate?: boolean;
|
|
24
22
|
}
|
|
@@ -37,8 +35,7 @@ export declare class FlashnetClient {
|
|
|
37
35
|
private apiClient;
|
|
38
36
|
private typedApi;
|
|
39
37
|
private authManager;
|
|
40
|
-
private
|
|
41
|
-
private clientEnvironment;
|
|
38
|
+
private network;
|
|
42
39
|
private publicKey;
|
|
43
40
|
private sparkAddress;
|
|
44
41
|
private isAuthenticated;
|
|
@@ -47,15 +44,6 @@ export declare class FlashnetClient {
|
|
|
47
44
|
*/
|
|
48
45
|
get wallet(): IssuerSparkWallet | SparkWallet;
|
|
49
46
|
/**
|
|
50
|
-
* Get the Spark network type (for blockchain operations)
|
|
51
|
-
*/
|
|
52
|
-
get sparkNetworkType(): SparkNetworkType;
|
|
53
|
-
/**
|
|
54
|
-
* Get the client environment (for API configuration)
|
|
55
|
-
*/
|
|
56
|
-
get clientEnvironmentType(): ClientEnvironment;
|
|
57
|
-
/**
|
|
58
|
-
* @deprecated Use sparkNetworkType instead
|
|
59
47
|
* Get the network type
|
|
60
48
|
*/
|
|
61
49
|
get networkType(): NetworkType;
|
|
@@ -68,30 +56,11 @@ export declare class FlashnetClient {
|
|
|
68
56
|
*/
|
|
69
57
|
get address(): string;
|
|
70
58
|
/**
|
|
71
|
-
* Create a new FlashnetClient instance
|
|
72
|
-
* @param wallet - The SparkWallet to use
|
|
73
|
-
* @param config - Client configuration with separate Spark network and client config
|
|
74
|
-
*/
|
|
75
|
-
constructor(wallet: IssuerSparkWallet | SparkWallet, config: FlashnetClientConfig);
|
|
76
|
-
/**
|
|
77
|
-
* Create a new FlashnetClient instance with custom configuration
|
|
78
|
-
* @param wallet - The SparkWallet to use
|
|
79
|
-
* @param config - Custom configuration with specific endpoints
|
|
80
|
-
*/
|
|
81
|
-
constructor(wallet: IssuerSparkWallet | SparkWallet, config: FlashnetClientCustomConfig);
|
|
82
|
-
/**
|
|
83
|
-
* Create a new FlashnetClient instance with environment configuration
|
|
59
|
+
* Create a new FlashnetClient instance
|
|
84
60
|
* @param wallet - The SparkWallet to use
|
|
85
|
-
* @param
|
|
61
|
+
* @param options - Client options
|
|
86
62
|
*/
|
|
87
|
-
constructor(wallet: IssuerSparkWallet | SparkWallet,
|
|
88
|
-
/**
|
|
89
|
-
* @deprecated Use the new constructor with FlashnetClientConfig instead
|
|
90
|
-
* Create a new FlashnetClient instance with legacy configuration
|
|
91
|
-
* @param wallet - The SparkWallet to use
|
|
92
|
-
* @param options - Legacy client options
|
|
93
|
-
*/
|
|
94
|
-
constructor(wallet: IssuerSparkWallet | SparkWallet, options?: FlashnetClientLegacyConfig);
|
|
63
|
+
constructor(wallet: IssuerSparkWallet | SparkWallet, _options?: FlashnetClientOptions);
|
|
95
64
|
/**
|
|
96
65
|
* Initialize the client by deducing network and authenticating
|
|
97
66
|
* This is called automatically on first use if not called manually
|
|
@@ -104,7 +73,7 @@ export declare class FlashnetClient {
|
|
|
104
73
|
/**
|
|
105
74
|
* Ensure a token identifier is in human-readable (Bech32m) form expected by the Spark SDK.
|
|
106
75
|
* If the identifier is already human-readable or it is the BTC constant, it is returned unchanged.
|
|
107
|
-
* Otherwise, it is encoded from the raw hex form using the client
|
|
76
|
+
* Otherwise, it is encoded from the raw hex form using the client network.
|
|
108
77
|
*/
|
|
109
78
|
private toHumanReadableTokenIdentifier;
|
|
110
79
|
/**
|
|
@@ -288,34 +257,17 @@ export declare class FlashnetClient {
|
|
|
288
257
|
*/
|
|
289
258
|
getUserSwaps(userPublicKey?: string, query?: ListUserSwapsQuery): Promise<ListUserSwapsResponse>;
|
|
290
259
|
/**
|
|
291
|
-
* Encode a token identifier into a human-readable token address using the client's
|
|
260
|
+
* Encode a token identifier into a human-readable token address using the client's network
|
|
292
261
|
* @param tokenIdentifier - Token identifier as hex string or Uint8Array
|
|
293
262
|
* @returns Human-readable token address
|
|
294
263
|
*/
|
|
295
|
-
encodeTokenAddress(tokenIdentifier: string | Uint8Array):
|
|
264
|
+
encodeTokenAddress(tokenIdentifier: string | Uint8Array): HumanReadableTokenIdentifier;
|
|
296
265
|
/**
|
|
297
266
|
* Decode a human-readable token address back to its identifier
|
|
298
267
|
* @param address - Human-readable token address
|
|
299
|
-
* @returns Object containing the token identifier (as hex string) and Spark network
|
|
300
|
-
*/
|
|
301
|
-
decodeTokenAddress(address: SparkHumanReadableTokenIdentifier): {
|
|
302
|
-
tokenIdentifier: string;
|
|
303
|
-
network: SparkNetworkType;
|
|
304
|
-
};
|
|
305
|
-
/**
|
|
306
|
-
* @deprecated Use encodeTokenAddress instead - this method uses legacy types
|
|
307
|
-
* Encode a token identifier into a human-readable token address using legacy types
|
|
308
|
-
* @param tokenIdentifier - Token identifier as hex string or Uint8Array
|
|
309
|
-
* @returns Human-readable token address
|
|
310
|
-
*/
|
|
311
|
-
encodeLegacyTokenAddress(tokenIdentifier: string | Uint8Array): HumanReadableTokenIdentifier;
|
|
312
|
-
/**
|
|
313
|
-
* @deprecated Use decodeTokenAddress instead - this method uses legacy types
|
|
314
|
-
* Decode a human-readable token address back to its identifier using legacy types
|
|
315
|
-
* @param address - Human-readable token address
|
|
316
268
|
* @returns Object containing the token identifier (as hex string) and network
|
|
317
269
|
*/
|
|
318
|
-
|
|
270
|
+
decodeTokenAddress(address: HumanReadableTokenIdentifier): {
|
|
319
271
|
tokenIdentifier: string;
|
|
320
272
|
network: NetworkType;
|
|
321
273
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashnetClient.d.ts","sourceRoot":"","sources":["../../../../src/client/FlashnetClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlashnetClient.d.ts","sourceRoot":"","sources":["../../../../src/client/FlashnetClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG3B,KAAK,kBAAkB,EAGvB,KAAK,wBAAwB,EAG7B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,KAAK,oBAAoB,EAEzB,KAAK,uBAAuB,EAG5B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,wBAAwB,EAE7B,KAAK,8BAA8B,EACpC,MAAM,UAAU,CAAC;AAoBlB,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,eAAe,CAAkB;IAEzC;;OAEG;IACH,IAAI,MAAM,IAAI,iBAAiB,GAAG,WAAW,CAE5C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;OAIG;gBAED,MAAM,EAAE,iBAAiB,GAAG,WAAW,EACvC,QAAQ,GAAE,qBAA0B;IAqBtC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCjC;;OAEG;YACW,iBAAiB;IAM/B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAqC1C;;OAEG;YACW,YAAY;IAwC1B;;OAEG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKnE;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAK3D;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,yBAAyB,CAAC;IAMpC;;MAEE;IACG,iBAAiB,IACpB,OAAO,CAAC,sBAAsB,CAAC;IAKlC;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE;QACtC,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE;YACjB,YAAY,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoF/B;;;;;OAKG;IACG,qBAAqB,CAAC,MAAM,EAAE;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,yBAAyB,EAAE,MAAM,CAAC;QAClC,yBAAyB,EAAE,MAAM,CAAC;QAClC,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqJ/B;;;;;OAKG;IACG,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAAC,sBAAsB,CAAC;IA+BlC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,oBAAoB,CAAC;IAKhC;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,YAAY,CAAC;IA4FzB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,IAAI,EAAE,KAAK,CAAC;YACV,MAAM,EAAE,MAAM,CAAC;YACf,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;YACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,mBAAmB,EAAE,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsIrC;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,4BAA4B,CAAC;IAKxC;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoHjC;;OAEG;IACG,uBAAuB,CAC3B,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,+BAA+B,CAAC;IAK3C;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqDpC;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiCjC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1D;;OAEG;IACG,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC;IAKnC;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAC7B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwCrC;;OAEG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUtE;;OAEG;IACG,sBAAsB,CAAC,MAAM,EAAE;QACnC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAyC3C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAO7D;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,kBAAkB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAKjC;;OAEG;IACG,cAAc,CAClB,KAAK,CAAC,EAAE,oBAAoB,GAC3B,OAAO,CAAC,uBAAuB,CAAC;IAKnC;;OAEG;IACG,YAAY,CAChB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,kBAAkB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAQjC;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,4BAA4B;IAItF;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,4BAA4B,GAAG;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;IAM5G;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAO7C;;OAEG;YACW,mBAAmB;IAoFjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -26,8 +26,7 @@ class FlashnetClient {
|
|
|
26
26
|
apiClient;
|
|
27
27
|
typedApi;
|
|
28
28
|
authManager;
|
|
29
|
-
|
|
30
|
-
clientEnvironment;
|
|
29
|
+
network;
|
|
31
30
|
publicKey = "";
|
|
32
31
|
sparkAddress = "";
|
|
33
32
|
isAuthenticated = false;
|
|
@@ -38,27 +37,10 @@ class FlashnetClient {
|
|
|
38
37
|
return this._wallet;
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
41
|
-
* Get the Spark network type (for blockchain operations)
|
|
42
|
-
*/
|
|
43
|
-
get sparkNetworkType() {
|
|
44
|
-
return this.sparkNetwork;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get the client environment (for API configuration)
|
|
48
|
-
*/
|
|
49
|
-
get clientEnvironmentType() {
|
|
50
|
-
return this.clientEnvironment;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @deprecated Use sparkNetworkType instead
|
|
54
40
|
* Get the network type
|
|
55
41
|
*/
|
|
56
42
|
get networkType() {
|
|
57
|
-
|
|
58
|
-
// This is for backward compatibility
|
|
59
|
-
return this.sparkNetwork === "REGTEST" && this.clientEnvironment === "local"
|
|
60
|
-
? "LOCAL"
|
|
61
|
-
: this.sparkNetwork;
|
|
43
|
+
return this.network;
|
|
62
44
|
}
|
|
63
45
|
/**
|
|
64
46
|
* Get the wallet's public key
|
|
@@ -72,87 +54,24 @@ class FlashnetClient {
|
|
|
72
54
|
get address() {
|
|
73
55
|
return this.sparkAddress;
|
|
74
56
|
}
|
|
75
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Create a new FlashnetClient instance
|
|
59
|
+
* @param wallet - The SparkWallet to use
|
|
60
|
+
* @param options - Client options
|
|
61
|
+
*/
|
|
62
|
+
constructor(wallet, _options = {}) {
|
|
76
63
|
this._wallet = wallet;
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// Use provided legacy network
|
|
85
|
-
this.sparkNetwork = index.getSparkNetworkFromLegacy(legacyConfig.network);
|
|
86
|
-
this.clientEnvironment = index.getClientEnvironmentFromLegacy(legacyConfig.network);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Auto-detect from wallet (existing behavior)
|
|
90
|
-
// @ts-expect-error - wallet.config is protected
|
|
91
|
-
const networkEnum = wallet.config.getNetwork();
|
|
92
|
-
const networkName = index.Network[networkEnum];
|
|
93
|
-
const detectedNetwork = networkName === "MAINNET" ? "MAINNET" : "REGTEST";
|
|
94
|
-
this.sparkNetwork = index.getSparkNetworkFromLegacy(detectedNetwork);
|
|
95
|
-
this.clientEnvironment = index.getClientEnvironmentFromLegacy(detectedNetwork);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
// New configuration system
|
|
100
|
-
const config = configOrOptions;
|
|
101
|
-
this.sparkNetwork = config.sparkNetworkType;
|
|
102
|
-
// Determine client configuration based on the specific config type
|
|
103
|
-
let clientConfig;
|
|
104
|
-
if ('clientConfig' in config) {
|
|
105
|
-
// FlashnetClientConfig - can be either environment or custom config
|
|
106
|
-
clientConfig = config.clientConfig;
|
|
107
|
-
}
|
|
108
|
-
else if ('clientNetworkConfig' in config) {
|
|
109
|
-
// FlashnetClientCustomConfig - custom configuration
|
|
110
|
-
clientConfig = config.clientNetworkConfig;
|
|
111
|
-
}
|
|
112
|
-
else if ('clientEnvironment' in config) {
|
|
113
|
-
// FlashnetClientEnvironmentConfig - predefined environment
|
|
114
|
-
clientConfig = config.clientEnvironment;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
throw new Error('Invalid configuration: must specify clientConfig, clientNetworkConfig, or clientEnvironment');
|
|
118
|
-
}
|
|
119
|
-
// Resolve the client environment name for internal tracking
|
|
120
|
-
const environmentName = index$1.getClientEnvironmentName(clientConfig);
|
|
121
|
-
this.clientEnvironment = environmentName === 'custom' ? 'local' : environmentName;
|
|
122
|
-
// Validate Spark network and client environment combination
|
|
123
|
-
const validation = index$1.validateNetworkCombination(this.sparkNetwork, this.clientEnvironment);
|
|
124
|
-
if (!validation.valid) {
|
|
125
|
-
throw new Error(`Invalid network combination: ${validation.error}`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// Panic if mainnet for now
|
|
129
|
-
if (this.sparkNetwork === "MAINNET") {
|
|
64
|
+
// We'll initialize these in the init method
|
|
65
|
+
// @ts-expect-error - wallet.config is protected
|
|
66
|
+
const networkEnum = wallet.config.getNetwork();
|
|
67
|
+
const networkName = index.Network[networkEnum];
|
|
68
|
+
this.network = networkName === "MAINNET" ? "MAINNET" : "REGTEST";
|
|
69
|
+
// panic if mainnet for now
|
|
70
|
+
if (networkName === "MAINNET") {
|
|
130
71
|
throw new Error("Mainnet is not supported yet");
|
|
131
72
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (!isLegacyConfig) {
|
|
135
|
-
const config = configOrOptions;
|
|
136
|
-
let clientConfigParam;
|
|
137
|
-
if ('clientConfig' in config) {
|
|
138
|
-
clientConfigParam = config.clientConfig;
|
|
139
|
-
}
|
|
140
|
-
else if ('clientNetworkConfig' in config) {
|
|
141
|
-
clientConfigParam = config.clientNetworkConfig;
|
|
142
|
-
}
|
|
143
|
-
else if ('clientEnvironment' in config) {
|
|
144
|
-
clientConfigParam = config.clientEnvironment;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
throw new Error('Invalid configuration');
|
|
148
|
-
}
|
|
149
|
-
resolvedClientConfig = index$1.resolveClientNetworkConfig(clientConfigParam);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
// Use legacy resolution
|
|
153
|
-
resolvedClientConfig = index$1.getClientNetworkConfig(this.clientEnvironment);
|
|
154
|
-
}
|
|
155
|
-
this.apiClient = new client.ApiClient(resolvedClientConfig);
|
|
73
|
+
const config = index$1.getNetworkConfig(this.network);
|
|
74
|
+
this.apiClient = new client.ApiClient(config);
|
|
156
75
|
this.typedApi = new typedEndpoints.TypedAmmApi(this.apiClient);
|
|
157
76
|
this.authManager = new auth.AuthManager(this.apiClient, "", wallet);
|
|
158
77
|
}
|
|
@@ -167,21 +86,20 @@ class FlashnetClient {
|
|
|
167
86
|
// Get wallet details
|
|
168
87
|
this.publicKey = await this._wallet.getIdentityPublicKey();
|
|
169
88
|
this.sparkAddress = await this._wallet.getSparkAddress();
|
|
170
|
-
// Deduce
|
|
171
|
-
const
|
|
172
|
-
if (!
|
|
173
|
-
throw new Error(`Unable to determine
|
|
174
|
-
}
|
|
175
|
-
// Warn if configured Spark network doesn't match detected network
|
|
176
|
-
if (this.sparkNetwork !== detectedSparkNetwork) {
|
|
177
|
-
console.warn(`Warning: Configured Spark network (${this.sparkNetwork}) doesn't match detected network from address (${detectedSparkNetwork}). Using detected network.`);
|
|
178
|
-
this.sparkNetwork = detectedSparkNetwork;
|
|
89
|
+
// Deduce network from spark address
|
|
90
|
+
const detectedNetwork = sparkAddress.getNetworkFromAddress(this.sparkAddress);
|
|
91
|
+
if (!detectedNetwork) {
|
|
92
|
+
throw new Error(`Unable to determine network from spark address: ${this.sparkAddress}`);
|
|
179
93
|
}
|
|
180
|
-
|
|
181
|
-
if
|
|
94
|
+
this.network = detectedNetwork;
|
|
95
|
+
// panic if mainnet for now
|
|
96
|
+
if (detectedNetwork === "MAINNET") {
|
|
182
97
|
throw new Error("Mainnet is not supported yet");
|
|
183
98
|
}
|
|
184
|
-
//
|
|
99
|
+
// Reinitialize API client with correct network
|
|
100
|
+
const config = index$1.getNetworkConfig(this.network);
|
|
101
|
+
this.apiClient = new client.ApiClient(config);
|
|
102
|
+
this.typedApi = new typedEndpoints.TypedAmmApi(this.apiClient);
|
|
185
103
|
this.authManager = new auth.AuthManager(this.apiClient, this.publicKey, signer.createWalletSigner(this._wallet));
|
|
186
104
|
// Authenticate
|
|
187
105
|
const token = await this.authManager.authenticate();
|
|
@@ -199,7 +117,7 @@ class FlashnetClient {
|
|
|
199
117
|
/**
|
|
200
118
|
* Ensure a token identifier is in human-readable (Bech32m) form expected by the Spark SDK.
|
|
201
119
|
* If the identifier is already human-readable or it is the BTC constant, it is returned unchanged.
|
|
202
|
-
* Otherwise, it is encoded from the raw hex form using the client
|
|
120
|
+
* Otherwise, it is encoded from the raw hex form using the client network.
|
|
203
121
|
*/
|
|
204
122
|
toHumanReadableTokenIdentifier(tokenIdentifier) {
|
|
205
123
|
if (tokenIdentifier === index$1.BTC_ASSET_PUBKEY) {
|
|
@@ -208,7 +126,7 @@ class FlashnetClient {
|
|
|
208
126
|
if (tokenIdentifier.startsWith("btkn")) {
|
|
209
127
|
return tokenIdentifier;
|
|
210
128
|
}
|
|
211
|
-
return tokenAddress.
|
|
129
|
+
return tokenAddress.encodeHumanReadableTokenIdentifier(tokenIdentifier, this.network);
|
|
212
130
|
}
|
|
213
131
|
/**
|
|
214
132
|
* Convert a token identifier into the raw hex string form expected by the Flashnet backend.
|
|
@@ -220,7 +138,7 @@ class FlashnetClient {
|
|
|
220
138
|
return tokenIdentifier;
|
|
221
139
|
}
|
|
222
140
|
if (tokenIdentifier.startsWith("btkn")) {
|
|
223
|
-
return tokenAddress.
|
|
141
|
+
return tokenAddress.decodeHumanReadableTokenIdentifier(tokenIdentifier, this.network).tokenIdentifier;
|
|
224
142
|
}
|
|
225
143
|
return tokenIdentifier;
|
|
226
144
|
}
|
|
@@ -233,16 +151,18 @@ class FlashnetClient {
|
|
|
233
151
|
const tokenBalances = new Map();
|
|
234
152
|
if (balance.tokenBalances) {
|
|
235
153
|
for (const [tokenPubkey, tokenData] of balance.tokenBalances.entries()) {
|
|
236
|
-
const info =
|
|
237
|
-
|
|
238
|
-
|
|
154
|
+
const info = tokenData.tokenMetadata;
|
|
155
|
+
// Convert raw token identifier to hex and human-readable forms
|
|
156
|
+
const tokenIdentifierHex = Buffer.from(info.rawTokenIdentifier).toString("hex");
|
|
157
|
+
const tokenAddress$1 = tokenAddress.encodeHumanReadableTokenIdentifier(info.rawTokenIdentifier, this.network);
|
|
239
158
|
tokenBalances.set(tokenPubkey, {
|
|
240
159
|
balance: BigInt(tokenData.balance),
|
|
241
160
|
tokenInfo: {
|
|
242
|
-
|
|
161
|
+
tokenIdentifier: tokenIdentifierHex,
|
|
162
|
+
tokenAddress: tokenAddress$1,
|
|
243
163
|
tokenName: info.tokenName,
|
|
244
|
-
tokenSymbol:
|
|
245
|
-
tokenDecimals:
|
|
164
|
+
tokenSymbol: info.tokenTicker,
|
|
165
|
+
tokenDecimals: info.decimals,
|
|
246
166
|
maxSupply: info.maxSupply,
|
|
247
167
|
},
|
|
248
168
|
});
|
|
@@ -434,10 +354,10 @@ class FlashnetClient {
|
|
|
434
354
|
// If pool creation was successful, handle the initial deposit
|
|
435
355
|
if (createResponse.poolId) {
|
|
436
356
|
try {
|
|
437
|
-
// Transfer initial reserve to the pool
|
|
438
|
-
const lpSparkAddress = sparkAddress.
|
|
357
|
+
// Transfer initial reserve to the pool
|
|
358
|
+
const lpSparkAddress = sparkAddress.encodeSparkAddress({
|
|
439
359
|
identityPublicKey: createResponse.poolId,
|
|
440
|
-
network: this.
|
|
360
|
+
network: this.network,
|
|
441
361
|
});
|
|
442
362
|
let assetATransferId;
|
|
443
363
|
if (params.assetAAddress === index$1.BTC_ASSET_PUBKEY) {
|
|
@@ -536,10 +456,10 @@ class FlashnetClient {
|
|
|
536
456
|
if (!balanceCheck.sufficient) {
|
|
537
457
|
throw new Error(`Insufficient balance for swap: ${balanceCheck.message}`);
|
|
538
458
|
}
|
|
539
|
-
// Transfer assets to pool
|
|
540
|
-
const lpSparkAddress = sparkAddress.
|
|
459
|
+
// Transfer assets to pool
|
|
460
|
+
const lpSparkAddress = sparkAddress.encodeSparkAddress({
|
|
541
461
|
identityPublicKey: params.poolId,
|
|
542
|
-
network: this.
|
|
462
|
+
network: this.network,
|
|
543
463
|
});
|
|
544
464
|
let transferId;
|
|
545
465
|
if (params.assetInAddress === index$1.BTC_ASSET_PUBKEY) {
|
|
@@ -628,14 +548,14 @@ class FlashnetClient {
|
|
|
628
548
|
if (!params.hops.length) {
|
|
629
549
|
throw new Error("Route swap requires at least one hop");
|
|
630
550
|
}
|
|
631
|
-
// Transfer initial asset to first pool
|
|
551
|
+
// Transfer initial asset to first pool
|
|
632
552
|
const firstPoolId = params.hops[0]?.poolId;
|
|
633
553
|
if (!firstPoolId) {
|
|
634
554
|
throw new Error("First pool ID is required");
|
|
635
555
|
}
|
|
636
|
-
const lpSparkAddress = sparkAddress.
|
|
556
|
+
const lpSparkAddress = sparkAddress.encodeSparkAddress({
|
|
637
557
|
identityPublicKey: firstPoolId,
|
|
638
|
-
network: this.
|
|
558
|
+
network: this.network,
|
|
639
559
|
});
|
|
640
560
|
let initialTransferId;
|
|
641
561
|
if (params.initialAssetAddress === index$1.BTC_ASSET_PUBKEY) {
|
|
@@ -750,10 +670,10 @@ class FlashnetClient {
|
|
|
750
670
|
if (!balanceCheck.sufficient) {
|
|
751
671
|
throw new Error(`Insufficient balance for adding liquidity: ${balanceCheck.message}`);
|
|
752
672
|
}
|
|
753
|
-
// Transfer assets to pool
|
|
754
|
-
const lpSparkAddress = sparkAddress.
|
|
673
|
+
// Transfer assets to pool
|
|
674
|
+
const lpSparkAddress = sparkAddress.encodeSparkAddress({
|
|
755
675
|
identityPublicKey: params.poolId,
|
|
756
|
-
network: this.
|
|
676
|
+
network: this.network,
|
|
757
677
|
});
|
|
758
678
|
// Transfer asset A
|
|
759
679
|
let assetATransferId;
|
|
@@ -1013,38 +933,20 @@ class FlashnetClient {
|
|
|
1013
933
|
}
|
|
1014
934
|
// ===== Token Address Operations =====
|
|
1015
935
|
/**
|
|
1016
|
-
* Encode a token identifier into a human-readable token address using the client's
|
|
936
|
+
* Encode a token identifier into a human-readable token address using the client's network
|
|
1017
937
|
* @param tokenIdentifier - Token identifier as hex string or Uint8Array
|
|
1018
938
|
* @returns Human-readable token address
|
|
1019
939
|
*/
|
|
1020
940
|
encodeTokenAddress(tokenIdentifier) {
|
|
1021
|
-
return tokenAddress.
|
|
941
|
+
return tokenAddress.encodeHumanReadableTokenIdentifier(tokenIdentifier, this.network);
|
|
1022
942
|
}
|
|
1023
943
|
/**
|
|
1024
944
|
* Decode a human-readable token address back to its identifier
|
|
1025
945
|
* @param address - Human-readable token address
|
|
1026
|
-
* @returns Object containing the token identifier (as hex string) and Spark network
|
|
1027
|
-
*/
|
|
1028
|
-
decodeTokenAddress(address) {
|
|
1029
|
-
return tokenAddress.decodeSparkHumanReadableTokenIdentifier(address, this.sparkNetwork);
|
|
1030
|
-
}
|
|
1031
|
-
/**
|
|
1032
|
-
* @deprecated Use encodeTokenAddress instead - this method uses legacy types
|
|
1033
|
-
* Encode a token identifier into a human-readable token address using legacy types
|
|
1034
|
-
* @param tokenIdentifier - Token identifier as hex string or Uint8Array
|
|
1035
|
-
* @returns Human-readable token address
|
|
1036
|
-
*/
|
|
1037
|
-
encodeLegacyTokenAddress(tokenIdentifier) {
|
|
1038
|
-
return tokenAddress.encodeHumanReadableTokenIdentifier(tokenIdentifier, this.sparkNetwork);
|
|
1039
|
-
}
|
|
1040
|
-
/**
|
|
1041
|
-
* @deprecated Use decodeTokenAddress instead - this method uses legacy types
|
|
1042
|
-
* Decode a human-readable token address back to its identifier using legacy types
|
|
1043
|
-
* @param address - Human-readable token address
|
|
1044
946
|
* @returns Object containing the token identifier (as hex string) and network
|
|
1045
947
|
*/
|
|
1046
|
-
|
|
1047
|
-
return tokenAddress.decodeHumanReadableTokenIdentifier(address, this.
|
|
948
|
+
decodeTokenAddress(address) {
|
|
949
|
+
return tokenAddress.decodeHumanReadableTokenIdentifier(address, this.network);
|
|
1048
950
|
}
|
|
1049
951
|
// ===== Status =====
|
|
1050
952
|
/**
|
|
@@ -1059,9 +961,9 @@ class FlashnetClient {
|
|
|
1059
961
|
* Helper method to add initial liquidity after pool creation
|
|
1060
962
|
*/
|
|
1061
963
|
async addInitialLiquidity(poolId, assetATokenPublicKey, assetBTokenPublicKey, assetAAmount, assetBAmount) {
|
|
1062
|
-
const lpSparkAddress = sparkAddress.
|
|
964
|
+
const lpSparkAddress = sparkAddress.encodeSparkAddress({
|
|
1063
965
|
identityPublicKey: poolId,
|
|
1064
|
-
network: this.
|
|
966
|
+
network: this.network,
|
|
1065
967
|
});
|
|
1066
968
|
// Transfer asset A
|
|
1067
969
|
let assetATransferId;
|