@flashnet/sdk 0.1.1 → 0.1.2

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 (122) hide show
  1. package/README.md +4 -2
  2. package/dist/cjs/index.d.ts.map +1 -0
  3. package/dist/cjs/index.js +56 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/package.json +3 -0
  6. package/dist/cjs/src/api/client.d.ts.map +1 -0
  7. package/dist/cjs/src/api/client.js +90 -0
  8. package/dist/cjs/src/api/client.js.map +1 -0
  9. package/dist/cjs/src/api/typed-endpoints.d.ts.map +1 -0
  10. package/dist/cjs/src/api/typed-endpoints.js +207 -0
  11. package/dist/cjs/src/api/typed-endpoints.js.map +1 -0
  12. package/dist/cjs/src/api/validation.d.ts.map +1 -0
  13. package/dist/cjs/src/api/validation.js +140 -0
  14. package/dist/cjs/src/api/validation.js.map +1 -0
  15. package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -0
  16. package/dist/cjs/src/client/FlashnetClient.js +804 -0
  17. package/dist/cjs/src/client/FlashnetClient.js.map +1 -0
  18. package/dist/cjs/src/config/index.d.ts.map +1 -0
  19. package/dist/cjs/src/config/index.js +49 -0
  20. package/dist/cjs/src/config/index.js.map +1 -0
  21. package/dist/cjs/src/types/index.d.ts.map +1 -0
  22. package/dist/cjs/src/utils/auth.d.ts.map +1 -0
  23. package/dist/cjs/src/utils/auth.js +89 -0
  24. package/dist/cjs/src/utils/auth.js.map +1 -0
  25. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  26. package/dist/cjs/src/utils/index.js +29 -0
  27. package/dist/cjs/src/utils/index.js.map +1 -0
  28. package/dist/cjs/src/utils/intents.d.ts.map +1 -0
  29. package/dist/cjs/src/utils/intents.js +144 -0
  30. package/dist/cjs/src/utils/intents.js.map +1 -0
  31. package/dist/cjs/src/utils/signer.d.ts.map +1 -0
  32. package/dist/cjs/src/utils/signer.js +38 -0
  33. package/dist/cjs/src/utils/signer.js.map +1 -0
  34. package/dist/cjs/src/utils/spark-address.d.ts.map +1 -0
  35. package/dist/cjs/src/utils/spark-address.js +238 -0
  36. package/dist/cjs/src/utils/spark-address.js.map +1 -0
  37. package/dist/{index.js → esm/index.d.ts} +6 -8
  38. package/dist/esm/index.d.ts.map +1 -0
  39. package/dist/esm/index.js +11 -0
  40. package/dist/esm/index.js.map +1 -0
  41. package/dist/esm/package.json +3 -0
  42. package/dist/esm/src/api/client.d.ts +20 -0
  43. package/dist/esm/src/api/client.d.ts.map +1 -0
  44. package/dist/{src → esm/src}/api/client.js +6 -3
  45. package/dist/esm/src/api/client.js.map +1 -0
  46. package/dist/esm/src/api/typed-endpoints.d.ts +135 -0
  47. package/dist/esm/src/api/typed-endpoints.d.ts.map +1 -0
  48. package/dist/{src → esm/src}/api/typed-endpoints.js +6 -5
  49. package/dist/esm/src/api/typed-endpoints.js.map +1 -0
  50. package/dist/esm/src/api/validation.d.ts +114 -0
  51. package/dist/esm/src/api/validation.d.ts.map +1 -0
  52. package/dist/{src → esm/src}/api/validation.js +12 -10
  53. package/dist/esm/src/api/validation.js.map +1 -0
  54. package/dist/esm/src/client/FlashnetClient.d.ts +216 -0
  55. package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -0
  56. package/dist/{src → esm/src}/client/FlashnetClient.js +14 -12
  57. package/dist/esm/src/client/FlashnetClient.js.map +1 -0
  58. package/dist/esm/src/config/index.d.ts +14 -0
  59. package/dist/esm/src/config/index.d.ts.map +1 -0
  60. package/dist/{src → esm/src}/config/index.js +9 -7
  61. package/dist/esm/src/config/index.js.map +1 -0
  62. package/dist/esm/src/types/index.d.ts +484 -0
  63. package/dist/esm/src/types/index.d.ts.map +1 -0
  64. package/dist/esm/src/utils/auth.d.ts +26 -0
  65. package/dist/esm/src/utils/auth.d.ts.map +1 -0
  66. package/dist/{src → esm/src}/utils/auth.js +4 -2
  67. package/dist/esm/src/utils/auth.js.map +1 -0
  68. package/dist/esm/src/utils/index.d.ts +8 -0
  69. package/dist/esm/src/utils/index.d.ts.map +1 -0
  70. package/dist/esm/src/utils/index.js +18 -0
  71. package/dist/esm/src/utils/index.js.map +1 -0
  72. package/dist/esm/src/utils/intents.d.ts +86 -0
  73. package/dist/esm/src/utils/intents.d.ts.map +1 -0
  74. package/dist/{src → esm/src}/utils/intents.js +11 -9
  75. package/dist/esm/src/utils/intents.js.map +1 -0
  76. package/dist/esm/src/utils/signer.d.ts +29 -0
  77. package/dist/esm/src/utils/signer.d.ts.map +1 -0
  78. package/dist/{src → esm/src}/utils/signer.js +4 -2
  79. package/dist/esm/src/utils/signer.js.map +1 -0
  80. package/dist/esm/src/utils/spark-address.d.ts +60 -0
  81. package/dist/esm/src/utils/spark-address.d.ts.map +1 -0
  82. package/dist/{src → esm/src}/utils/spark-address.js +11 -8
  83. package/dist/esm/src/utils/spark-address.js.map +1 -0
  84. package/package.json +17 -11
  85. package/dist/index.d.ts.map +0 -1
  86. package/dist/index.js.map +0 -1
  87. package/dist/src/api/client.d.ts.map +0 -1
  88. package/dist/src/api/client.js.map +0 -1
  89. package/dist/src/api/typed-endpoints.d.ts.map +0 -1
  90. package/dist/src/api/typed-endpoints.js.map +0 -1
  91. package/dist/src/api/validation.d.ts.map +0 -1
  92. package/dist/src/api/validation.js.map +0 -1
  93. package/dist/src/client/FlashnetClient.d.ts.map +0 -1
  94. package/dist/src/client/FlashnetClient.js.map +0 -1
  95. package/dist/src/config/index.d.ts.map +0 -1
  96. package/dist/src/config/index.js.map +0 -1
  97. package/dist/src/types/index.d.ts.map +0 -1
  98. package/dist/src/types/index.js +0 -2
  99. package/dist/src/types/index.js.map +0 -1
  100. package/dist/src/utils/auth.d.ts.map +0 -1
  101. package/dist/src/utils/auth.js.map +0 -1
  102. package/dist/src/utils/index.d.ts.map +0 -1
  103. package/dist/src/utils/index.js +0 -19
  104. package/dist/src/utils/index.js.map +0 -1
  105. package/dist/src/utils/intents.d.ts.map +0 -1
  106. package/dist/src/utils/intents.js.map +0 -1
  107. package/dist/src/utils/signer.d.ts.map +0 -1
  108. package/dist/src/utils/signer.js.map +0 -1
  109. package/dist/src/utils/spark-address.d.ts.map +0 -1
  110. package/dist/src/utils/spark-address.js.map +0 -1
  111. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  112. /package/dist/{src → cjs/src}/api/client.d.ts +0 -0
  113. /package/dist/{src → cjs/src}/api/typed-endpoints.d.ts +0 -0
  114. /package/dist/{src → cjs/src}/api/validation.d.ts +0 -0
  115. /package/dist/{src → cjs/src}/client/FlashnetClient.d.ts +0 -0
  116. /package/dist/{src → cjs/src}/config/index.d.ts +0 -0
  117. /package/dist/{src → cjs/src}/types/index.d.ts +0 -0
  118. /package/dist/{src → cjs/src}/utils/auth.d.ts +0 -0
  119. /package/dist/{src → cjs/src}/utils/index.d.ts +0 -0
  120. /package/dist/{src → cjs/src}/utils/intents.d.ts +0 -0
  121. /package/dist/{src → cjs/src}/utils/signer.d.ts +0 -0
  122. /package/dist/{src → cjs/src}/utils/spark-address.d.ts +0 -0
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Flashnet SDK
2
2
 
3
- A comprehensive SDK for interacting with Flashnet's Spark wallet and AMM (Automated Market Maker) functionality.
3
+ A comprehensive SDK for interacting with Flashnet's Spark AMM functionality.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - **Spark Wallet Integration** - Full wallet functionality based on `@buildonspark/issuer-sdk` or `@buildonspark/spark-sdk`
8
8
  - **AMM Operations** - Create pools (single-sided & constant product), swap tokens, add/remove liquidity
9
9
  - **Multi-Network Support** - Works across Mainnet and Regtest
10
- - **Intent-Based Signing** - Secure transaction signing with intent messages
10
+ - **Intent-Based Signing** - Transaction signing via intent
11
11
  - **Custom Signers** - Support for arbitrary signing implementations (hardware wallets, remote signers, etc.)
12
12
  - **TypeScript First** - Full type safety and IntelliSense support
13
13
 
@@ -302,6 +302,8 @@ await client.addLiquidity({
302
302
  assetBAmount: 5000n,
303
303
  });
304
304
 
305
+ await client.getLpPosition("pool-id");
306
+
305
307
  // Remove liquidity
306
308
  await client.removeLiquidity({
307
309
  poolId: "pool-id",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AACA,mBAAmB,aAAa,CAAC;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,kCAAkC,EAClC,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAG9B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,iCAAiC,EACjC,8CAA8C,EAC9C,uCAAuC,EACvC,sDAAsD,EACtD,6BAA6B,EAC7B,oCAAoC,EACpC,iCAAiC,EACjC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var client = require('./src/api/client.js');
4
+ var typedEndpoints = require('./src/api/typed-endpoints.js');
5
+ var validation = require('./src/api/validation.js');
6
+ var index$1 = require('./src/config/index.js');
7
+ var index = require('./src/utils/index.js');
8
+ var auth = require('./src/utils/auth.js');
9
+ var signer = require('./src/utils/signer.js');
10
+ var intents = require('./src/utils/intents.js');
11
+ var sparkAddress = require('./src/utils/spark-address.js');
12
+ var FlashnetClient = require('./src/client/FlashnetClient.js');
13
+
14
+
15
+
16
+ exports.ApiClient = client.ApiClient;
17
+ exports.TypedAmmApi = typedEndpoints.TypedAmmApi;
18
+ exports.isApiError = typedEndpoints.isApiError;
19
+ exports.isFlashnetError = typedEndpoints.isFlashnetError;
20
+ exports.ValidationError = validation.ValidationError;
21
+ exports.commonValidationRules = validation.commonValidationRules;
22
+ exports.constantProductPoolValidationRules = validation.constantProductPoolValidationRules;
23
+ exports.validateBps = validation.validateBps;
24
+ exports.validateNamespace = validation.validateNamespace;
25
+ exports.validatePositiveAmount = validation.validatePositiveAmount;
26
+ exports.validatePublicKey = validation.validatePublicKey;
27
+ exports.validateRequest = validation.validateRequest;
28
+ exports.validateSignature = validation.validateSignature;
29
+ exports.BTC_ASSET_PUBKEY = index$1.BTC_ASSET_PUBKEY;
30
+ exports.BTC_DECIMALS = index$1.BTC_DECIMALS;
31
+ exports.DEFAULT_HOST_NAMESPACE = index$1.DEFAULT_HOST_NAMESPACE;
32
+ exports.DEFAULT_SLIPPAGE_BPS = index$1.DEFAULT_SLIPPAGE_BPS;
33
+ exports.NETWORK_CONFIGS = index$1.NETWORK_CONFIGS;
34
+ exports.getNetworkConfig = index$1.getNetworkConfig;
35
+ exports.fromSmallestUnit = index.fromSmallestUnit;
36
+ exports.generateNonce = index.generateNonce;
37
+ exports.toSmallestUnit = index.toSmallestUnit;
38
+ exports.AuthManager = auth.AuthManager;
39
+ exports.createWalletSigner = signer.createWalletSigner;
40
+ exports.generateAddLiquidityIntentMessage = intents.generateAddLiquidityIntentMessage;
41
+ exports.generateConstantProductPoolInitializationIntentMessage = intents.generateConstantProductPoolInitializationIntentMessage;
42
+ exports.generatePoolConfirmInitialDepositIntentMessage = intents.generatePoolConfirmInitialDepositIntentMessage;
43
+ exports.generatePoolInitializationIntentMessage = intents.generatePoolInitializationIntentMessage;
44
+ exports.generatePoolSwapIntentMessage = intents.generatePoolSwapIntentMessage;
45
+ exports.generateRegisterHostIntentMessage = intents.generateRegisterHostIntentMessage;
46
+ exports.generateRemoveLiquidityIntentMessage = intents.generateRemoveLiquidityIntentMessage;
47
+ exports.generateWithdrawHostFeesIntentMessage = intents.generateWithdrawHostFeesIntentMessage;
48
+ exports.convertSparkAddressToNetwork = sparkAddress.convertSparkAddressToNetwork;
49
+ exports.decodeSparkAddress = sparkAddress.decodeSparkAddress;
50
+ exports.encodeSparkAddress = sparkAddress.encodeSparkAddress;
51
+ exports.getNetworkFromAddress = sparkAddress.getNetworkFromAddress;
52
+ exports.isValidPublicKey = sparkAddress.isValidPublicKey;
53
+ exports.isValidSparkAddress = sparkAddress.isValidSparkAddress;
54
+ exports.looksLikePublicKey = sparkAddress.looksLikePublicKey;
55
+ exports.FlashnetClient = FlashnetClient.FlashnetClient;
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,SAAgB,GAAG,EAAE,WAAW,CAAC;gBAErB,MAAM,EAAE,aAAa;IAKjC,YAAY,CAAC,KAAK,EAAE,MAAM;YAIZ,WAAW;IA0EnB,OAAO,CAAC,CAAC,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAOP,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAS7D,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IASjE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CAU1E"}
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ var typedEndpoints = require('./typed-endpoints.js');
4
+
5
+ class ApiClient {
6
+ config;
7
+ authToken;
8
+ amm;
9
+ constructor(config) {
10
+ this.config = config;
11
+ this.amm = new typedEndpoints.TypedAmmApi(this);
12
+ }
13
+ setAuthToken(token) {
14
+ this.authToken = token;
15
+ }
16
+ async makeRequest(url, method, options) {
17
+ const headers = {
18
+ "Content-Type": "application/json",
19
+ ...options?.headers,
20
+ };
21
+ if (this.authToken) {
22
+ headers.Authorization = `Bearer ${this.authToken}`;
23
+ }
24
+ const requestOptions = {
25
+ method,
26
+ headers,
27
+ };
28
+ if (options?.body && method !== "GET") {
29
+ requestOptions.body = JSON.stringify(options.body);
30
+ }
31
+ // Add query parameters if provided
32
+ let finalUrl = url;
33
+ if (options?.params) {
34
+ const params = new URLSearchParams();
35
+ Object.entries(options.params).forEach(([key, value]) => {
36
+ params.append(key, value.toString());
37
+ });
38
+ finalUrl = `${url}?${params.toString()}`;
39
+ }
40
+ const response = await fetch(finalUrl, requestOptions);
41
+ if (!response.ok) {
42
+ const errorData = (await response.json().catch(() => null));
43
+ // Log detailed error info for debugging
44
+ if (response.status === 400 || response.status === 422) {
45
+ console.error(`\n❌ API Error (${response.status}):`);
46
+ console.error("URL:", finalUrl);
47
+ console.error("Method:", method);
48
+ if (options?.body) {
49
+ console.error("Request body:", JSON.stringify(options.body, null, 2));
50
+ }
51
+ if (errorData) {
52
+ console.error("Error response:", JSON.stringify(errorData, null, 2));
53
+ }
54
+ }
55
+ // Create error with additional properties
56
+ const error = new Error(errorData?.message ||
57
+ errorData?.msg ||
58
+ `HTTP error! status: ${response.status}`);
59
+ error.status = response.status;
60
+ error.response = { status: response.status, data: errorData };
61
+ error.request = { url: finalUrl, method, body: options?.body };
62
+ throw error;
63
+ }
64
+ return response.json();
65
+ }
66
+ // AMM Gateway endpoints
67
+ async ammPost(path, body, options) {
68
+ return this.makeRequest(`${this.config.ammGatewayUrl}${path}`, "POST", {
69
+ ...options,
70
+ body,
71
+ });
72
+ }
73
+ async ammGet(path, options) {
74
+ return this.makeRequest(`${this.config.ammGatewayUrl}${path}`, "GET", options);
75
+ }
76
+ // Mempool API endpoints
77
+ async mempoolGet(path, options) {
78
+ return this.makeRequest(`${this.config.mempoolApiUrl}${path}`, "GET", options);
79
+ }
80
+ // SparkScan API endpoints (if available)
81
+ async sparkScanGet(path, options) {
82
+ if (!this.config.sparkScanUrl) {
83
+ throw new Error("SparkScan URL not configured for this network");
84
+ }
85
+ return this.makeRequest(`${this.config.sparkScanUrl}${path}`, "GET", options);
86
+ }
87
+ }
88
+
89
+ exports.ApiClient = ApiClient;
90
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sources":["../../../../../../src/api/client.ts"],"sourcesContent":[null],"names":["TypedAmmApi"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-endpoints.d.ts","sourceRoot":"","sources":["../../../../src/api/typed-endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Typed API endpoints for the Flashnet AMM Gateway
5
+ */
6
+ class TypedAmmApi {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ // ===== Authentication Endpoints =====
12
+ /**
13
+ * Request authentication challenge
14
+ * @POST /v1/auth/challenge
15
+ */
16
+ async getChallenge(request) {
17
+ return this.client.ammPost("/v1/auth/challenge", request);
18
+ }
19
+ /**
20
+ * Verify challenge and get access token
21
+ * @POST /v1/auth/verify
22
+ */
23
+ async verify(request) {
24
+ return this.client.ammPost("/v1/auth/verify", request);
25
+ }
26
+ // ===== Host Endpoints =====
27
+ /**
28
+ * Register a new host
29
+ * @POST /v1/hosts/register
30
+ * @requires Bearer token
31
+ */
32
+ async registerHost(request) {
33
+ return this.client.ammPost("/v1/hosts/register", request);
34
+ }
35
+ /**
36
+ * Get host information
37
+ * @GET /v1/hosts/{namespace}
38
+ */
39
+ async getHost(namespace) {
40
+ return this.client.ammGet(`/v1/hosts/${namespace}`);
41
+ }
42
+ /**
43
+ * Withdraw host fees
44
+ * @POST /v1/hosts/withdraw-fees
45
+ * @requires Bearer token
46
+ */
47
+ async withdrawHostFees(request) {
48
+ return this.client.ammPost("/v1/hosts/withdraw-fees", request);
49
+ }
50
+ /**
51
+ * Get pool host fees
52
+ * @POST /v1/hosts/pool-fees
53
+ * @requires Bearer token
54
+ */
55
+ async getPoolHostFees(request) {
56
+ return this.client.ammPost("/v1/hosts/pool-fees", request);
57
+ }
58
+ // ===== Pool Endpoints =====
59
+ /**
60
+ * Create constant product pool
61
+ * @POST /v1/pools/constant-product
62
+ * @requires Bearer token
63
+ */
64
+ async createConstantProductPool(request) {
65
+ return this.client.ammPost("/v1/pools/constant-product", request);
66
+ }
67
+ /**
68
+ * Create single-sided pool
69
+ * @POST /v1/pools/single-sided
70
+ * @requires Bearer token
71
+ */
72
+ async createSingleSidedPool(request) {
73
+ return this.client.ammPost("/v1/pools/single-sided", request);
74
+ }
75
+ /**
76
+ * Confirm initial deposit for single-sided pool
77
+ * @POST /v1/pools/single-sided/confirm-initial-deposit
78
+ * @requires Bearer token
79
+ */
80
+ async confirmInitialDeposit(request) {
81
+ return this.client.ammPost("/v1/pools/single-sided/confirm-initial-deposit", request);
82
+ }
83
+ /**
84
+ * List pools with filters
85
+ * @GET /v1/pools
86
+ */
87
+ async listPools(query) {
88
+ return this.client.ammGet("/v1/pools", {
89
+ params: query,
90
+ });
91
+ }
92
+ /**
93
+ * Get pool details
94
+ * @GET /v1/pools/{poolId}
95
+ */
96
+ async getPool(poolId) {
97
+ return this.client.ammGet(`/v1/pools/${poolId}`);
98
+ }
99
+ /**
100
+ * Get LP position details
101
+ * @GET /v1/pools/{poolId}/lp/{providerPublicKey}
102
+ * @requires Bearer token
103
+ */
104
+ async getLpPosition(poolId, providerPublicKey) {
105
+ return this.client.ammGet(`/v1/pools/${poolId}/lp/${providerPublicKey}`);
106
+ }
107
+ // ===== Liquidity Endpoints =====
108
+ /**
109
+ * Add liquidity to pool
110
+ * @POST /v1/liquidity/add
111
+ * @requires Bearer token
112
+ */
113
+ async addLiquidity(request) {
114
+ return this.client.ammPost("/v1/liquidity/add", request);
115
+ }
116
+ /**
117
+ * Simulate adding liquidity
118
+ * @POST /v1/liquidity/add/simulate
119
+ */
120
+ async simulateAddLiquidity(request) {
121
+ return this.client.ammPost("/v1/liquidity/add/simulate", request);
122
+ }
123
+ /**
124
+ * Remove liquidity from pool
125
+ * @POST /v1/liquidity/remove
126
+ * @requires Bearer token
127
+ */
128
+ async removeLiquidity(request) {
129
+ return this.client.ammPost("/v1/liquidity/remove", request);
130
+ }
131
+ /**
132
+ * Simulate removing liquidity
133
+ * @POST /v1/liquidity/remove/simulate
134
+ */
135
+ async simulateRemoveLiquidity(request) {
136
+ return this.client.ammPost("/v1/liquidity/remove/simulate", request);
137
+ }
138
+ // ===== Swap Endpoints =====
139
+ /**
140
+ * Execute swap
141
+ * @POST /v1/swap
142
+ * @requires Bearer token
143
+ */
144
+ async executeSwap(request) {
145
+ return this.client.ammPost("/v1/swap", request);
146
+ }
147
+ /**
148
+ * Simulate swap
149
+ * @POST /v1/swap/simulate
150
+ */
151
+ async simulateSwap(request) {
152
+ return this.client.ammPost("/v1/swap/simulate", request);
153
+ }
154
+ /**
155
+ * Get swaps for a pool
156
+ * @GET /v1/pools/{lpPubkey}/swaps
157
+ */
158
+ async getPoolSwaps(lpPubkey, query) {
159
+ return this.client.ammGet(`/v1/pools/${lpPubkey}/swaps`, { params: query });
160
+ }
161
+ /**
162
+ * Get global swaps
163
+ * @GET /v1/swaps
164
+ */
165
+ async getGlobalSwaps(query) {
166
+ return this.client.ammGet("/v1/swaps", {
167
+ params: query,
168
+ });
169
+ }
170
+ /**
171
+ * Get user swaps
172
+ * @GET /v1/swaps/user/{userPublicKey}
173
+ */
174
+ async getUserSwaps(userPublicKey, query) {
175
+ return this.client.ammGet(`/v1/swaps/user/${userPublicKey}`, { params: query });
176
+ }
177
+ // ===== Status Endpoints =====
178
+ /**
179
+ * Ping settlement service
180
+ * @GET /v1/ping
181
+ */
182
+ async ping() {
183
+ return this.client.ammGet("/v1/ping");
184
+ }
185
+ }
186
+ /**
187
+ * Error checking utilities
188
+ */
189
+ function isFlashnetError(error) {
190
+ return (typeof error === "object" &&
191
+ error !== null &&
192
+ "code" in error &&
193
+ "msg" in error &&
194
+ typeof error.code === "number" &&
195
+ typeof error.msg === "string");
196
+ }
197
+ function isApiError(error) {
198
+ return (typeof error === "object" &&
199
+ error !== null &&
200
+ "error" in error &&
201
+ typeof error.error === "object");
202
+ }
203
+
204
+ exports.TypedAmmApi = TypedAmmApi;
205
+ exports.isApiError = isApiError;
206
+ exports.isFlashnetError = isFlashnetError;
207
+ //# sourceMappingURL=typed-endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-endpoints.js","sources":["../../../../../../src/api/typed-endpoints.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/api/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAGvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAU,EACf,GAAG,GAAE,MAAc,GAClB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACrB,KAAK,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM;gBAApC,KAAK,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM;CAIxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACxB,IAAI,CA4BN;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc;CAChC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;uBAaf,GAAG;;;;;;;;;;uBAUH,GAAG;;;CAGrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;uBAR5B,GAAG;;;;;;;;;;uBAVH,GAAG;;;;;;;;CA8BrB,CAAC"}
@@ -0,0 +1,140 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Validation helpers for API requests
5
+ */
6
+ /**
7
+ * Validates that a public key is in the correct format
8
+ */
9
+ function validatePublicKey(publicKey) {
10
+ // Check if it's a valid hex string of the correct length
11
+ // Bitcoin/Spark public keys are typically 33 bytes (66 hex chars) for compressed
12
+ // or 65 bytes (130 hex chars) for uncompressed
13
+ const hexRegex = /^[0-9a-fA-F]+$/;
14
+ return (hexRegex.test(publicKey) &&
15
+ (publicKey.length === 66 || publicKey.length === 130));
16
+ }
17
+ /**
18
+ * Validates that a signature is in the correct format
19
+ */
20
+ function validateSignature(signature) {
21
+ // Check if it's a valid hex string
22
+ // Signatures are typically 64-72 bytes (128-144 hex chars)
23
+ const hexRegex = /^[0-9a-fA-F]+$/;
24
+ return (hexRegex.test(signature) &&
25
+ signature.length >= 128 &&
26
+ signature.length <= 144);
27
+ }
28
+ /**
29
+ * Validates that an amount is positive
30
+ */
31
+ function validatePositiveAmount(amount) {
32
+ const numAmount = typeof amount === "string" ? parseFloat(amount) : amount;
33
+ return !isNaN(numAmount) && numAmount > 0;
34
+ }
35
+ /**
36
+ * Validates that a BPS value is in the valid range
37
+ */
38
+ function validateBps(bps, min = 0, max = 10000) {
39
+ return Number.isInteger(bps) && bps >= min && bps <= max;
40
+ }
41
+ /**
42
+ * Validates a namespace string
43
+ */
44
+ function validateNamespace(namespace) {
45
+ // Namespace must be between 3-32 characters
46
+ return (namespace.length >= 3 &&
47
+ namespace.length <= 32 &&
48
+ /^[a-zA-Z0-9-_]+$/.test(namespace));
49
+ }
50
+ /**
51
+ * Common validation errors
52
+ */
53
+ class ValidationError extends Error {
54
+ field;
55
+ reason;
56
+ constructor(field, reason) {
57
+ super(`Validation failed for ${field}: ${reason}`);
58
+ this.field = field;
59
+ this.reason = reason;
60
+ this.name = "ValidationError";
61
+ }
62
+ }
63
+ /**
64
+ * Validates a request object against a set of rules
65
+ */
66
+ function validateRequest(request, rules) {
67
+ for (const [field, rule] of Object.entries(rules)) {
68
+ const value = request[field];
69
+ // Check required fields
70
+ if (rule.required &&
71
+ (value === undefined || value === null || value === "")) {
72
+ throw new ValidationError(String(field), "field is required");
73
+ }
74
+ // Skip validation for optional fields that are not provided
75
+ if (!rule.required && (value === undefined || value === null)) {
76
+ continue;
77
+ }
78
+ // Run custom validator if provided
79
+ if (rule.validator && !rule.validator(value)) {
80
+ throw new ValidationError(String(field), rule.message || "validation failed");
81
+ }
82
+ }
83
+ }
84
+ /**
85
+ * Pre-defined validation rules for common request types
86
+ */
87
+ const commonValidationRules = {
88
+ publicKey: {
89
+ required: true,
90
+ validator: validatePublicKey,
91
+ message: "invalid public key format",
92
+ },
93
+ signature: {
94
+ required: true,
95
+ validator: validateSignature,
96
+ message: "invalid signature format",
97
+ },
98
+ nonce: {
99
+ required: true,
100
+ validator: (v) => typeof v === "string" && v.length > 0,
101
+ message: "nonce must be a non-empty string",
102
+ },
103
+ amount: {
104
+ required: true,
105
+ validator: validatePositiveAmount,
106
+ message: "amount must be positive",
107
+ },
108
+ bps: {
109
+ required: true,
110
+ validator: (v) => validateBps(v),
111
+ message: "BPS must be between 0 and 10000",
112
+ },
113
+ };
114
+ /**
115
+ * Validation rules for CreateConstantProductPoolRequest
116
+ */
117
+ const constantProductPoolValidationRules = {
118
+ poolOwnerPublicKey: commonValidationRules.publicKey,
119
+ assetATokenPublicKey: commonValidationRules.publicKey,
120
+ assetBTokenPublicKey: commonValidationRules.publicKey,
121
+ lpFeeRateBps: commonValidationRules.bps,
122
+ integratorNamespace: {
123
+ required: true,
124
+ validator: validateNamespace,
125
+ message: "invalid namespace format",
126
+ },
127
+ nonce: commonValidationRules.nonce,
128
+ signature: commonValidationRules.signature,
129
+ };
130
+
131
+ exports.ValidationError = ValidationError;
132
+ exports.commonValidationRules = commonValidationRules;
133
+ exports.constantProductPoolValidationRules = constantProductPoolValidationRules;
134
+ exports.validateBps = validateBps;
135
+ exports.validateNamespace = validateNamespace;
136
+ exports.validatePositiveAmount = validatePositiveAmount;
137
+ exports.validatePublicKey = validatePublicKey;
138
+ exports.validateRequest = validateRequest;
139
+ exports.validateSignature = validateSignature;
140
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sources":["../../../../../../src/api/validation.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashnetClient.d.ts","sourceRoot":"","sources":["../../../../src/client/FlashnetClient.ts"],"names":[],"mappings":"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"}