@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.
- package/README.md +4 -2
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +56 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/api/client.d.ts.map +1 -0
- package/dist/cjs/src/api/client.js +90 -0
- package/dist/cjs/src/api/client.js.map +1 -0
- package/dist/cjs/src/api/typed-endpoints.d.ts.map +1 -0
- package/dist/cjs/src/api/typed-endpoints.js +207 -0
- package/dist/cjs/src/api/typed-endpoints.js.map +1 -0
- package/dist/cjs/src/api/validation.d.ts.map +1 -0
- package/dist/cjs/src/api/validation.js +140 -0
- package/dist/cjs/src/api/validation.js.map +1 -0
- package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -0
- package/dist/cjs/src/client/FlashnetClient.js +804 -0
- package/dist/cjs/src/client/FlashnetClient.js.map +1 -0
- package/dist/cjs/src/config/index.d.ts.map +1 -0
- package/dist/cjs/src/config/index.js +49 -0
- package/dist/cjs/src/config/index.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/auth.d.ts.map +1 -0
- package/dist/cjs/src/utils/auth.js +89 -0
- package/dist/cjs/src/utils/auth.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +29 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/intents.d.ts.map +1 -0
- package/dist/cjs/src/utils/intents.js +144 -0
- package/dist/cjs/src/utils/intents.js.map +1 -0
- package/dist/cjs/src/utils/signer.d.ts.map +1 -0
- package/dist/cjs/src/utils/signer.js +38 -0
- package/dist/cjs/src/utils/signer.js.map +1 -0
- package/dist/cjs/src/utils/spark-address.d.ts.map +1 -0
- package/dist/cjs/src/utils/spark-address.js +238 -0
- package/dist/cjs/src/utils/spark-address.js.map +1 -0
- package/dist/{index.js → esm/index.d.ts} +6 -8
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/src/api/client.d.ts +20 -0
- package/dist/esm/src/api/client.d.ts.map +1 -0
- package/dist/{src → esm/src}/api/client.js +6 -3
- package/dist/esm/src/api/client.js.map +1 -0
- package/dist/esm/src/api/typed-endpoints.d.ts +135 -0
- package/dist/esm/src/api/typed-endpoints.d.ts.map +1 -0
- package/dist/{src → esm/src}/api/typed-endpoints.js +6 -5
- package/dist/esm/src/api/typed-endpoints.js.map +1 -0
- package/dist/esm/src/api/validation.d.ts +114 -0
- package/dist/esm/src/api/validation.d.ts.map +1 -0
- package/dist/{src → esm/src}/api/validation.js +12 -10
- package/dist/esm/src/api/validation.js.map +1 -0
- package/dist/esm/src/client/FlashnetClient.d.ts +216 -0
- package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -0
- package/dist/{src → esm/src}/client/FlashnetClient.js +14 -12
- package/dist/esm/src/client/FlashnetClient.js.map +1 -0
- package/dist/esm/src/config/index.d.ts +14 -0
- package/dist/esm/src/config/index.d.ts.map +1 -0
- package/dist/{src → esm/src}/config/index.js +9 -7
- package/dist/esm/src/config/index.js.map +1 -0
- package/dist/esm/src/types/index.d.ts +484 -0
- package/dist/esm/src/types/index.d.ts.map +1 -0
- package/dist/esm/src/utils/auth.d.ts +26 -0
- package/dist/esm/src/utils/auth.d.ts.map +1 -0
- package/dist/{src → esm/src}/utils/auth.js +4 -2
- package/dist/esm/src/utils/auth.js.map +1 -0
- package/dist/esm/src/utils/index.d.ts +8 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -0
- package/dist/esm/src/utils/index.js +18 -0
- package/dist/esm/src/utils/index.js.map +1 -0
- package/dist/esm/src/utils/intents.d.ts +86 -0
- package/dist/esm/src/utils/intents.d.ts.map +1 -0
- package/dist/{src → esm/src}/utils/intents.js +11 -9
- package/dist/esm/src/utils/intents.js.map +1 -0
- package/dist/esm/src/utils/signer.d.ts +29 -0
- package/dist/esm/src/utils/signer.d.ts.map +1 -0
- package/dist/{src → esm/src}/utils/signer.js +4 -2
- package/dist/esm/src/utils/signer.js.map +1 -0
- package/dist/esm/src/utils/spark-address.d.ts +60 -0
- package/dist/esm/src/utils/spark-address.d.ts.map +1 -0
- package/dist/{src → esm/src}/utils/spark-address.js +11 -8
- package/dist/esm/src/utils/spark-address.js.map +1 -0
- package/package.json +17 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/src/api/client.d.ts.map +0 -1
- package/dist/src/api/client.js.map +0 -1
- package/dist/src/api/typed-endpoints.d.ts.map +0 -1
- package/dist/src/api/typed-endpoints.js.map +0 -1
- package/dist/src/api/validation.d.ts.map +0 -1
- package/dist/src/api/validation.js.map +0 -1
- package/dist/src/client/FlashnetClient.d.ts.map +0 -1
- package/dist/src/client/FlashnetClient.js.map +0 -1
- package/dist/src/config/index.d.ts.map +0 -1
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -2
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utils/auth.d.ts.map +0 -1
- package/dist/src/utils/auth.js.map +0 -1
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -19
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/intents.d.ts.map +0 -1
- package/dist/src/utils/intents.js.map +0 -1
- package/dist/src/utils/signer.d.ts.map +0 -1
- package/dist/src/utils/signer.js.map +0 -1
- package/dist/src/utils/spark-address.d.ts.map +0 -1
- package/dist/src/utils/spark-address.js.map +0 -1
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{src → cjs/src}/api/client.d.ts +0 -0
- /package/dist/{src → cjs/src}/api/typed-endpoints.d.ts +0 -0
- /package/dist/{src → cjs/src}/api/validation.d.ts +0 -0
- /package/dist/{src → cjs/src}/client/FlashnetClient.d.ts +0 -0
- /package/dist/{src → cjs/src}/config/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/types/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/auth.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/intents.d.ts +0 -0
- /package/dist/{src → cjs/src}/utils/signer.d.ts +0 -0
- /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
|
|
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** -
|
|
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 @@
|
|
|
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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"}
|