@flashnet/sdk 0.1.1 → 0.2.0

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 (131) hide show
  1. package/README.md +46 -4
  2. package/dist/{index.d.ts → cjs/index.d.ts} +5 -5
  3. package/dist/cjs/index.d.ts.map +1 -0
  4. package/dist/cjs/index.js +56 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/package.json +3 -0
  7. package/dist/{src → cjs/src}/api/client.d.ts +0 -2
  8. package/dist/cjs/src/api/client.d.ts.map +1 -0
  9. package/dist/{src → cjs/src}/api/client.js +6 -5
  10. package/dist/cjs/src/api/client.js.map +1 -0
  11. package/dist/cjs/src/api/index.d.ts +4 -0
  12. package/dist/cjs/src/api/index.d.ts.map +1 -0
  13. package/dist/{src → cjs/src}/api/typed-endpoints.d.ts +1 -1
  14. package/dist/cjs/src/api/typed-endpoints.d.ts.map +1 -0
  15. package/dist/cjs/src/api/typed-endpoints.js +207 -0
  16. package/dist/cjs/src/api/typed-endpoints.js.map +1 -0
  17. package/dist/{src → cjs/src}/api/validation.d.ts +6 -6
  18. package/dist/cjs/src/api/validation.d.ts.map +1 -0
  19. package/dist/cjs/src/api/validation.js +140 -0
  20. package/dist/cjs/src/api/validation.js.map +1 -0
  21. package/dist/{src → cjs/src}/client/FlashnetClient.d.ts +2 -2
  22. package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -0
  23. package/dist/cjs/src/client/FlashnetClient.js +804 -0
  24. package/dist/cjs/src/client/FlashnetClient.js.map +1 -0
  25. package/dist/cjs/src/config/index.d.ts.map +1 -0
  26. package/dist/cjs/src/config/index.js +49 -0
  27. package/dist/cjs/src/config/index.js.map +1 -0
  28. package/dist/{src → cjs/src}/types/index.d.ts +4 -0
  29. package/dist/cjs/src/types/index.d.ts.map +1 -0
  30. package/dist/cjs/src/types/index.js +9 -0
  31. package/dist/cjs/src/types/index.js.map +1 -0
  32. package/dist/{src → cjs/src}/utils/auth.d.ts +1 -1
  33. package/dist/cjs/src/utils/auth.d.ts.map +1 -0
  34. package/dist/cjs/src/utils/auth.js +89 -0
  35. package/dist/cjs/src/utils/auth.js.map +1 -0
  36. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  37. package/dist/cjs/src/utils/index.js +29 -0
  38. package/dist/cjs/src/utils/index.js.map +1 -0
  39. package/dist/cjs/src/utils/intents.d.ts.map +1 -0
  40. package/dist/cjs/src/utils/intents.js +144 -0
  41. package/dist/cjs/src/utils/intents.js.map +1 -0
  42. package/dist/cjs/src/utils/signer.d.ts.map +1 -0
  43. package/dist/cjs/src/utils/signer.js +38 -0
  44. package/dist/cjs/src/utils/signer.js.map +1 -0
  45. package/dist/{src → cjs/src}/utils/spark-address.d.ts +2 -2
  46. package/dist/cjs/src/utils/spark-address.d.ts.map +1 -0
  47. package/dist/cjs/src/utils/spark-address.js +238 -0
  48. package/dist/cjs/src/utils/spark-address.js.map +1 -0
  49. package/dist/esm/index.d.ts +13 -0
  50. package/dist/esm/index.d.ts.map +1 -0
  51. package/dist/esm/index.js +11 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/package.json +3 -0
  54. package/dist/esm/src/api/client.d.ts +18 -0
  55. package/dist/esm/src/api/client.d.ts.map +1 -0
  56. package/dist/esm/src/api/client.js +84 -0
  57. package/dist/esm/src/api/client.js.map +1 -0
  58. package/dist/esm/src/api/index.d.ts +4 -0
  59. package/dist/esm/src/api/index.d.ts.map +1 -0
  60. package/dist/esm/src/api/typed-endpoints.d.ts +135 -0
  61. package/dist/esm/src/api/typed-endpoints.d.ts.map +1 -0
  62. package/dist/{src → esm/src}/api/typed-endpoints.js +6 -5
  63. package/dist/esm/src/api/typed-endpoints.js.map +1 -0
  64. package/dist/esm/src/api/validation.d.ts +114 -0
  65. package/dist/esm/src/api/validation.d.ts.map +1 -0
  66. package/dist/{src → esm/src}/api/validation.js +14 -12
  67. package/dist/esm/src/api/validation.js.map +1 -0
  68. package/dist/esm/src/client/FlashnetClient.d.ts +216 -0
  69. package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -0
  70. package/dist/{src → esm/src}/client/FlashnetClient.js +21 -19
  71. package/dist/esm/src/client/FlashnetClient.js.map +1 -0
  72. package/dist/esm/src/config/index.d.ts +14 -0
  73. package/dist/esm/src/config/index.d.ts.map +1 -0
  74. package/dist/{src → esm/src}/config/index.js +9 -7
  75. package/dist/esm/src/config/index.js.map +1 -0
  76. package/dist/esm/src/types/index.d.ts +488 -0
  77. package/dist/esm/src/types/index.d.ts.map +1 -0
  78. package/dist/esm/src/types/index.js +9 -0
  79. package/dist/esm/src/types/index.js.map +1 -0
  80. package/dist/esm/src/utils/auth.d.ts +26 -0
  81. package/dist/esm/src/utils/auth.d.ts.map +1 -0
  82. package/dist/{src → esm/src}/utils/auth.js +4 -2
  83. package/dist/esm/src/utils/auth.js.map +1 -0
  84. package/dist/esm/src/utils/index.d.ts +8 -0
  85. package/dist/esm/src/utils/index.d.ts.map +1 -0
  86. package/dist/esm/src/utils/index.js +18 -0
  87. package/dist/esm/src/utils/index.js.map +1 -0
  88. package/dist/esm/src/utils/intents.d.ts +86 -0
  89. package/dist/esm/src/utils/intents.d.ts.map +1 -0
  90. package/dist/{src → esm/src}/utils/intents.js +11 -9
  91. package/dist/esm/src/utils/intents.js.map +1 -0
  92. package/dist/esm/src/utils/signer.d.ts +29 -0
  93. package/dist/esm/src/utils/signer.d.ts.map +1 -0
  94. package/dist/{src → esm/src}/utils/signer.js +4 -2
  95. package/dist/esm/src/utils/signer.js.map +1 -0
  96. package/dist/esm/src/utils/spark-address.d.ts +60 -0
  97. package/dist/esm/src/utils/spark-address.d.ts.map +1 -0
  98. package/dist/{src → esm/src}/utils/spark-address.js +25 -22
  99. package/dist/esm/src/utils/spark-address.js.map +1 -0
  100. package/package.json +64 -14
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/index.js +0 -15
  103. package/dist/index.js.map +0 -1
  104. package/dist/src/api/client.d.ts.map +0 -1
  105. package/dist/src/api/client.js.map +0 -1
  106. package/dist/src/api/typed-endpoints.d.ts.map +0 -1
  107. package/dist/src/api/typed-endpoints.js.map +0 -1
  108. package/dist/src/api/validation.d.ts.map +0 -1
  109. package/dist/src/api/validation.js.map +0 -1
  110. package/dist/src/client/FlashnetClient.d.ts.map +0 -1
  111. package/dist/src/client/FlashnetClient.js.map +0 -1
  112. package/dist/src/config/index.d.ts.map +0 -1
  113. package/dist/src/config/index.js.map +0 -1
  114. package/dist/src/types/index.d.ts.map +0 -1
  115. package/dist/src/types/index.js +0 -2
  116. package/dist/src/types/index.js.map +0 -1
  117. package/dist/src/utils/auth.d.ts.map +0 -1
  118. package/dist/src/utils/auth.js.map +0 -1
  119. package/dist/src/utils/index.d.ts.map +0 -1
  120. package/dist/src/utils/index.js +0 -19
  121. package/dist/src/utils/index.js.map +0 -1
  122. package/dist/src/utils/intents.d.ts.map +0 -1
  123. package/dist/src/utils/intents.js.map +0 -1
  124. package/dist/src/utils/signer.d.ts.map +0 -1
  125. package/dist/src/utils/signer.js.map +0 -1
  126. package/dist/src/utils/spark-address.d.ts.map +0 -1
  127. package/dist/src/utils/spark-address.js.map +0 -1
  128. /package/dist/{src → cjs/src}/config/index.d.ts +0 -0
  129. /package/dist/{src → cjs/src}/utils/index.d.ts +0 -0
  130. /package/dist/{src → cjs/src}/utils/intents.d.ts +0 -0
  131. /package/dist/{src → cjs/src}/utils/signer.d.ts +0 -0
@@ -0,0 +1,238 @@
1
+ 'use strict';
2
+
3
+ var secp256k1 = require('@noble/curves/secp256k1');
4
+ var utils = require('@noble/hashes/utils');
5
+ var base = require('@scure/base');
6
+
7
+ const AddressNetworkPrefix = {
8
+ MAINNET: "sp",
9
+ TESTNET: "spt",
10
+ REGTEST: "sprt",
11
+ SIGNET: "sps",
12
+ LOCAL: "spl",
13
+ };
14
+ const PrefixToNetwork = Object.fromEntries(Object.entries(AddressNetworkPrefix).map(([network, prefix]) => [
15
+ prefix,
16
+ network,
17
+ ]));
18
+ /**
19
+ * Simple implementation of protobuf-style encoding for SparkAddress
20
+ * Field 1: identityPublicKey (bytes type)
21
+ */
22
+ function encodeProto(publicKeyBytes) {
23
+ // Calculate the total length: tag (1 byte) + length prefix (1 byte) + key bytes
24
+ const length = 2 + publicKeyBytes.length;
25
+ const result = new Uint8Array(length);
26
+ // Field 1, wire type 2 (length-delimited) = tag 10 (1 << 3 | 2)
27
+ result[0] = 10;
28
+ // Length of the key bytes
29
+ result[1] = publicKeyBytes.length;
30
+ // Copy the key bytes
31
+ result.set(publicKeyBytes, 2);
32
+ return result;
33
+ }
34
+ /**
35
+ * Simple implementation of protobuf-style decoding for SparkAddress
36
+ */
37
+ function decodeProto(data) {
38
+ let pos = 0;
39
+ const result = {
40
+ identityPublicKey: new Uint8Array(0),
41
+ };
42
+ while (pos < data.length) {
43
+ // Read tag
44
+ const tag = data[pos++];
45
+ // Field 1, wire type 2 (length-delimited) = tag 10
46
+ if (tag === 10) {
47
+ // Read length
48
+ const length = data[pos++] ?? 0;
49
+ // Read bytes
50
+ result.identityPublicKey = data.slice(pos, pos + length);
51
+ pos += length;
52
+ }
53
+ else {
54
+ // Skip unknown fields
55
+ // For simplicity, we only handle field 1 and assume no other fields exist
56
+ break;
57
+ }
58
+ }
59
+ // Basic validation: check if a public key was actually decoded
60
+ if (result.identityPublicKey.length === 0) {
61
+ throw new Error("Failed to decode public key from proto bytes");
62
+ }
63
+ return result;
64
+ }
65
+ /**
66
+ * Encodes a public key and network into a Spark address
67
+ * @param payload Object containing hex public key and network type
68
+ * @returns Bech32m encoded Spark address
69
+ */
70
+ function encodeSparkAddress(payload) {
71
+ isValidPublicKey(payload.identityPublicKey);
72
+ // Convert hex public key to bytes
73
+ const publicKeyBytes = utils.hexToBytes(payload.identityPublicKey);
74
+ // Use proto-style encoding to match the original implementation
75
+ const protoEncoded = encodeProto(publicKeyBytes);
76
+ // Convert to bech32m words
77
+ const words = base.bech32m.toWords(protoEncoded);
78
+ // Encode with bech32m
79
+ const prefix = AddressNetworkPrefix[payload.network];
80
+ const encoded = base.bech32m.encode(prefix, words, 200);
81
+ return encoded;
82
+ }
83
+ /**
84
+ * Decodes a Spark address to extract the public key
85
+ * @param address Bech32m encoded Spark address
86
+ * @param network Expected network type (used to check prefix)
87
+ * @returns Hex-encoded public key
88
+ * @throws Error if address format, prefix, or decoded key is invalid
89
+ */
90
+ function decodeSparkAddress(address, network) {
91
+ const prefix = AddressNetworkPrefix[network];
92
+ if (!address?.startsWith(prefix)) {
93
+ throw new Error(`Invalid Spark address: expected prefix ${prefix}`);
94
+ }
95
+ // Decode the bech32m address
96
+ const sparkAddress = address;
97
+ const decoded = base.bech32m.decode(sparkAddress, 200);
98
+ // Convert words back to bytes
99
+ const protoBytes = base.bech32m.fromWords(decoded.words);
100
+ // Decode the proto format to get the SparkAddress
101
+ const sparkAddressData = decodeProto(protoBytes);
102
+ // Convert the public key bytes back to hex
103
+ const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
104
+ // Validate the extracted public key
105
+ isValidPublicKey(publicKey);
106
+ return publicKey;
107
+ }
108
+ /**
109
+ * Attempts to determine the network type from a Spark address prefix.
110
+ * @param address The potential Spark address.
111
+ * @returns The NetworkType ('MAINNET', 'REGTEST', etc.) or null if the prefix is invalid.
112
+ */
113
+ function getNetworkFromAddress(address) {
114
+ if (!address || typeof address !== "string") {
115
+ return null;
116
+ }
117
+ const parts = address.split("1");
118
+ if (parts.length < 2) {
119
+ return null; // Missing separator '1'
120
+ }
121
+ const prefix = parts[0] ?? "";
122
+ return PrefixToNetwork[prefix] || null; // Return NetworkType or null
123
+ }
124
+ /**
125
+ * Checks if a string is a valid Spark address for *any* known network,
126
+ * and optionally validates against a specific network.
127
+ * @param address String to validate
128
+ * @param network Optional specific network type to check against
129
+ * @returns Boolean indicating validity
130
+ */
131
+ function isValidSparkAddress(address, network) {
132
+ try {
133
+ if (!address?.includes("1")) {
134
+ return false;
135
+ }
136
+ const addressAsPossibleFormat = address;
137
+ const decoded = base.bech32m.decode(addressAsPossibleFormat, 200);
138
+ const prefix = decoded.prefix;
139
+ // Check if prefix is known
140
+ const networkFromPrefix = PrefixToNetwork[prefix];
141
+ if (!networkFromPrefix) {
142
+ return false; // Unknown prefix
143
+ }
144
+ // If a specific network is required, check if it matches
145
+ if (network && network !== networkFromPrefix) {
146
+ return false;
147
+ }
148
+ // Try to decode the payload and validate the pubkey
149
+ const protoBytes = base.bech32m.fromWords(decoded.words);
150
+ const sparkAddressData = decodeProto(protoBytes);
151
+ const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
152
+ isValidPublicKey(publicKey); // Throws on invalid key
153
+ return true; // All checks passed
154
+ }
155
+ catch (_error) {
156
+ return false;
157
+ }
158
+ }
159
+ /**
160
+ * Checks if a string looks like a valid hex-encoded public key (basic check).
161
+ * Does NOT validate point on curve here, use isValidPublicKey for that.
162
+ * @param key The potential public key hex string.
163
+ * @returns True if it matches the basic format, false otherwise.
164
+ */
165
+ function looksLikePublicKey(key) {
166
+ if (!key || typeof key !== "string") {
167
+ return false;
168
+ }
169
+ return key.length === 66 && /^(02|03)[0-9a-fA-F]{64}$/.test(key);
170
+ }
171
+ /**
172
+ * Validates a secp256k1 public key format and curve point.
173
+ * @param publicKey Hex-encoded public key
174
+ * @throws Error if public key is invalid
175
+ */
176
+ function isValidPublicKey(publicKey) {
177
+ if (!looksLikePublicKey(publicKey)) {
178
+ throw new Error("Invalid public key format/length.");
179
+ }
180
+ try {
181
+ const point = secp256k1.secp256k1.ProjectivePoint.fromHex(publicKey);
182
+ point.assertValidity();
183
+ }
184
+ catch (error) {
185
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
186
+ throw new Error(`Invalid public key point: ${errorMessage}`);
187
+ }
188
+ }
189
+ /**
190
+ * Converts a Spark address to a specific network.
191
+ * If the address is already on the requested network, it returns the original address.
192
+ * Otherwise, it extracts the public key and creates a new address for the target network.
193
+ *
194
+ * @param sparkAddress The Spark address to convert
195
+ * @param targetNetwork The target network ('mainnet' or 'regtest')
196
+ * @returns The Spark address for the target network or null if conversion fails
197
+ */
198
+ function convertSparkAddressToNetwork(sparkAddress, targetNetwork) {
199
+ try {
200
+ // Check if the address is valid
201
+ if (!isValidSparkAddress(sparkAddress)) {
202
+ return null;
203
+ }
204
+ // Extract the current network from the address
205
+ const currentNetworkType = getNetworkFromAddress(sparkAddress);
206
+ if (!currentNetworkType) {
207
+ return null;
208
+ }
209
+ // Map the input string to NetworkType
210
+ const targetNetworkType = targetNetwork === "mainnet" ? "MAINNET" : "REGTEST";
211
+ // If already on the target network, return the original address
212
+ if (currentNetworkType === targetNetworkType) {
213
+ return sparkAddress;
214
+ }
215
+ // Extract the public key from the address
216
+ const decoded = base.bech32m.decode(sparkAddress, 200);
217
+ const protoBytes = base.bech32m.fromWords(decoded.words);
218
+ const sparkAddressData = decodeProto(protoBytes);
219
+ const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
220
+ // Create a new address for the target network
221
+ return encodeSparkAddress({
222
+ identityPublicKey: publicKey,
223
+ network: targetNetworkType,
224
+ });
225
+ }
226
+ catch (_error) {
227
+ return null;
228
+ }
229
+ }
230
+
231
+ exports.convertSparkAddressToNetwork = convertSparkAddressToNetwork;
232
+ exports.decodeSparkAddress = decodeSparkAddress;
233
+ exports.encodeSparkAddress = encodeSparkAddress;
234
+ exports.getNetworkFromAddress = getNetworkFromAddress;
235
+ exports.isValidPublicKey = isValidPublicKey;
236
+ exports.isValidSparkAddress = isValidSparkAddress;
237
+ exports.looksLikePublicKey = looksLikePublicKey;
238
+ //# sourceMappingURL=spark-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spark-address.js","sources":["../../../../../../src/utils/spark-address.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex","secp256k1"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type { RequestOptions } from "./src/api/client";
2
+ export { ApiClient } from "./src/api/client";
3
+ export { isApiError, isFlashnetError, TypedAmmApi, } from "./src/api/typed-endpoints";
4
+ export { commonValidationRules, constantProductPoolValidationRules, ValidationError, type ValidationRule, type ValidationRules, validateBps, validateNamespace, validatePositiveAmount, validatePublicKey, validateRequest, validateSignature, } from "./src/api/validation";
5
+ export { FlashnetClient, type FlashnetClientOptions, type TokenBalance, type WalletBalance, } from "./src/client/FlashnetClient";
6
+ export * from "./src/config";
7
+ export type * from "./src/types";
8
+ export { fromSmallestUnit, generateNonce, toSmallestUnit } from "./src/utils";
9
+ export { AuthManager } from "./src/utils/auth";
10
+ export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage, } from "./src/utils/intents";
11
+ export { createWalletSigner } from "./src/utils/signer";
12
+ export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidPublicKey, isValidSparkAddress, looksLikePublicKey, type SparkAddressFormat, } from "./src/utils/spark-address";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAC;AAGrC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,iCAAiC,EACjC,sDAAsD,EACtD,8CAA8C,EAC9C,uCAAuC,EACvC,6BAA6B,EAC7B,iCAAiC,EACjC,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { ApiClient } from './src/api/client.js';
2
+ export { TypedAmmApi, isApiError, isFlashnetError } from './src/api/typed-endpoints.js';
3
+ export { ValidationError, commonValidationRules, constantProductPoolValidationRules, validateBps, validateNamespace, validatePositiveAmount, validatePublicKey, validateRequest, validateSignature } from './src/api/validation.js';
4
+ export { FlashnetClient } from './src/client/FlashnetClient.js';
5
+ export { BTC_ASSET_PUBKEY, BTC_DECIMALS, DEFAULT_HOST_NAMESPACE, DEFAULT_SLIPPAGE_BPS, NETWORK_CONFIGS, getNetworkConfig } from './src/config/index.js';
6
+ export { fromSmallestUnit, generateNonce, toSmallestUnit } from './src/utils/index.js';
7
+ export { AuthManager } from './src/utils/auth.js';
8
+ export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage } from './src/utils/intents.js';
9
+ export { createWalletSigner } from './src/utils/signer.js';
10
+ export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidPublicKey, isValidSparkAddress, looksLikePublicKey } from './src/utils/spark-address.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,18 @@
1
+ import type { NetworkConfig } from "../config";
2
+ export interface RequestOptions {
3
+ headers?: Record<string, string>;
4
+ body?: any;
5
+ params?: Record<string, string | number>;
6
+ }
7
+ export declare class ApiClient {
8
+ private config;
9
+ private authToken?;
10
+ constructor(config: NetworkConfig);
11
+ setAuthToken(token: string): void;
12
+ private makeRequest;
13
+ ammPost<T>(path: string, body: any, options?: RequestOptions): Promise<T>;
14
+ ammGet<T>(path: string, options?: RequestOptions): Promise<T>;
15
+ mempoolGet<T>(path: string, options?: RequestOptions): Promise<T>;
16
+ sparkScanGet<T>(path: string, options?: RequestOptions): Promise<T>;
17
+ }
18
+ //# sourceMappingURL=client.d.ts.map
@@ -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;AAE/C,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;gBAEf,MAAM,EAAE,aAAa;IAIjC,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,84 @@
1
+ class ApiClient {
2
+ config;
3
+ authToken;
4
+ constructor(config) {
5
+ this.config = config;
6
+ }
7
+ setAuthToken(token) {
8
+ this.authToken = token;
9
+ }
10
+ async makeRequest(url, method, options) {
11
+ const headers = {
12
+ "Content-Type": "application/json",
13
+ ...options?.headers,
14
+ };
15
+ if (this.authToken) {
16
+ headers.Authorization = `Bearer ${this.authToken}`;
17
+ }
18
+ const requestOptions = {
19
+ method,
20
+ headers,
21
+ };
22
+ if (options?.body && method !== "GET") {
23
+ requestOptions.body = JSON.stringify(options.body);
24
+ }
25
+ // Add query parameters if provided
26
+ let finalUrl = url;
27
+ if (options?.params) {
28
+ const params = new URLSearchParams();
29
+ Object.entries(options.params).forEach(([key, value]) => {
30
+ params.append(key, value.toString());
31
+ });
32
+ finalUrl = `${url}?${params.toString()}`;
33
+ }
34
+ const response = await fetch(finalUrl, requestOptions);
35
+ if (!response.ok) {
36
+ const errorData = (await response.json().catch(() => null));
37
+ // Log detailed error info for debugging
38
+ if (response.status === 400 || response.status === 422) {
39
+ console.error(`\n❌ API Error (${response.status}):`);
40
+ console.error("URL:", finalUrl);
41
+ console.error("Method:", method);
42
+ if (options?.body) {
43
+ console.error("Request body:", JSON.stringify(options.body, null, 2));
44
+ }
45
+ if (errorData) {
46
+ console.error("Error response:", JSON.stringify(errorData, null, 2));
47
+ }
48
+ }
49
+ // Create error with additional properties
50
+ const error = new Error(errorData?.message ||
51
+ errorData?.msg ||
52
+ `HTTP error! status: ${response.status}`);
53
+ error.status = response.status;
54
+ error.response = { status: response.status, data: errorData };
55
+ error.request = { url: finalUrl, method, body: options?.body };
56
+ throw error;
57
+ }
58
+ return response.json();
59
+ }
60
+ // AMM Gateway endpoints
61
+ async ammPost(path, body, options) {
62
+ return this.makeRequest(`${this.config.ammGatewayUrl}${path}`, "POST", {
63
+ ...options,
64
+ body,
65
+ });
66
+ }
67
+ async ammGet(path, options) {
68
+ return this.makeRequest(`${this.config.ammGatewayUrl}${path}`, "GET", options);
69
+ }
70
+ // Mempool API endpoints
71
+ async mempoolGet(path, options) {
72
+ return this.makeRequest(`${this.config.mempoolApiUrl}${path}`, "GET", options);
73
+ }
74
+ // SparkScan API endpoints (if available)
75
+ async sparkScanGet(path, options) {
76
+ if (!this.config.sparkScanUrl) {
77
+ throw new Error("SparkScan URL not configured for this network");
78
+ }
79
+ return this.makeRequest(`${this.config.sparkScanUrl}${path}`, "GET", options);
80
+ }
81
+ }
82
+
83
+ export { ApiClient };
84
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sources":["../../../../../../src/api/client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { RequestOptions } from "./client";
2
+ export { ApiClient } from "./client";
3
+ export { isApiError, isFlashnetError, TypedAmmApi } from "./typed-endpoints";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,135 @@
1
+ import type * as Types from "../types";
2
+ import type { ApiClient } from "./client";
3
+ /**
4
+ * Typed API endpoints for the Flashnet AMM Gateway
5
+ */
6
+ export declare class TypedAmmApi {
7
+ private client;
8
+ constructor(client: ApiClient);
9
+ /**
10
+ * Request authentication challenge
11
+ * @POST /v1/auth/challenge
12
+ */
13
+ getChallenge(request: Types.ChallengeRequest): Promise<Types.ChallengeResponse>;
14
+ /**
15
+ * Verify challenge and get access token
16
+ * @POST /v1/auth/verify
17
+ */
18
+ verify(request: Types.VerifyRequest): Promise<Types.VerifyResponse>;
19
+ /**
20
+ * Register a new host
21
+ * @POST /v1/hosts/register
22
+ * @requires Bearer token
23
+ */
24
+ registerHost(request: Types.RegisterHostRequest): Promise<Types.RegisterHostResponse>;
25
+ /**
26
+ * Get host information
27
+ * @GET /v1/hosts/{namespace}
28
+ */
29
+ getHost(namespace: string): Promise<Types.GetHostResponse>;
30
+ /**
31
+ * Withdraw host fees
32
+ * @POST /v1/hosts/withdraw-fees
33
+ * @requires Bearer token
34
+ */
35
+ withdrawHostFees(request: Types.WithdrawHostFeesRequest): Promise<Types.WithdrawHostFeesResponse>;
36
+ /**
37
+ * Get pool host fees
38
+ * @POST /v1/hosts/pool-fees
39
+ * @requires Bearer token
40
+ */
41
+ getPoolHostFees(request: Types.GetPoolHostFeesRequest): Promise<Types.GetPoolHostFeesResponse>;
42
+ /**
43
+ * Create constant product pool
44
+ * @POST /v1/pools/constant-product
45
+ * @requires Bearer token
46
+ */
47
+ createConstantProductPool(request: Types.CreateConstantProductPoolRequest): Promise<Types.CreatePoolResponse>;
48
+ /**
49
+ * Create single-sided pool
50
+ * @POST /v1/pools/single-sided
51
+ * @requires Bearer token
52
+ */
53
+ createSingleSidedPool(request: Types.CreateSingleSidedPoolRequest): Promise<Types.CreatePoolResponse>;
54
+ /**
55
+ * Confirm initial deposit for single-sided pool
56
+ * @POST /v1/pools/single-sided/confirm-initial-deposit
57
+ * @requires Bearer token
58
+ */
59
+ confirmInitialDeposit(request: Types.ConfirmInitialDepositRequest): Promise<Types.ConfirmDepositResponse>;
60
+ /**
61
+ * List pools with filters
62
+ * @GET /v1/pools
63
+ */
64
+ listPools(query?: Types.ListPoolsQuery): Promise<Types.ListPoolsResponse>;
65
+ /**
66
+ * Get pool details
67
+ * @GET /v1/pools/{poolId}
68
+ */
69
+ getPool(poolId: string): Promise<Types.PoolDetailsResponse>;
70
+ /**
71
+ * Get LP position details
72
+ * @GET /v1/pools/{poolId}/lp/{providerPublicKey}
73
+ * @requires Bearer token
74
+ */
75
+ getLpPosition(poolId: string, providerPublicKey: string): Promise<Types.LpPositionDetailsResponse>;
76
+ /**
77
+ * Add liquidity to pool
78
+ * @POST /v1/liquidity/add
79
+ * @requires Bearer token
80
+ */
81
+ addLiquidity(request: Types.AddLiquidityRequest): Promise<Types.AddLiquidityResponse>;
82
+ /**
83
+ * Simulate adding liquidity
84
+ * @POST /v1/liquidity/add/simulate
85
+ */
86
+ simulateAddLiquidity(request: Types.SimulateAddLiquidityRequest): Promise<Types.SimulateAddLiquidityResponse>;
87
+ /**
88
+ * Remove liquidity from pool
89
+ * @POST /v1/liquidity/remove
90
+ * @requires Bearer token
91
+ */
92
+ removeLiquidity(request: Types.RemoveLiquidityRequest): Promise<Types.RemoveLiquidityResponse>;
93
+ /**
94
+ * Simulate removing liquidity
95
+ * @POST /v1/liquidity/remove/simulate
96
+ */
97
+ simulateRemoveLiquidity(request: Types.SimulateRemoveLiquidityRequest): Promise<Types.SimulateRemoveLiquidityResponse>;
98
+ /**
99
+ * Execute swap
100
+ * @POST /v1/swap
101
+ * @requires Bearer token
102
+ */
103
+ executeSwap(request: Types.ExecuteSwapRequest): Promise<Types.SwapResponse>;
104
+ /**
105
+ * Simulate swap
106
+ * @POST /v1/swap/simulate
107
+ */
108
+ simulateSwap(request: Types.SimulateSwapRequest): Promise<Types.SimulateSwapResponse>;
109
+ /**
110
+ * Get swaps for a pool
111
+ * @GET /v1/pools/{lpPubkey}/swaps
112
+ */
113
+ getPoolSwaps(lpPubkey: string, query?: Types.ListPoolSwapsQuery): Promise<Types.ListPoolSwapsResponse>;
114
+ /**
115
+ * Get global swaps
116
+ * @GET /v1/swaps
117
+ */
118
+ getGlobalSwaps(query?: Types.ListGlobalSwapsQuery): Promise<Types.ListGlobalSwapsResponse>;
119
+ /**
120
+ * Get user swaps
121
+ * @GET /v1/swaps/user/{userPublicKey}
122
+ */
123
+ getUserSwaps(userPublicKey: string, query?: Types.ListUserSwapsQuery): Promise<Types.ListUserSwapsResponse>;
124
+ /**
125
+ * Ping settlement service
126
+ * @GET /v1/ping
127
+ */
128
+ ping(): Promise<Types.SettlementPingResponse>;
129
+ }
130
+ /**
131
+ * Error checking utilities
132
+ */
133
+ export declare function isFlashnetError(error: unknown): error is Types.FlashnetErrorResponse;
134
+ export declare function isApiError(error: unknown): error is Types.ApiErrorResponse;
135
+ //# sourceMappingURL=typed-endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-endpoints.d.ts","sourceRoot":"","sources":["../../../../src/api/typed-endpoints.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { ApiClient } from "./client";
2
1
  /**
3
2
  * Typed API endpoints for the Flashnet AMM Gateway
4
3
  */
5
- export class TypedAmmApi {
4
+ class TypedAmmApi {
6
5
  client;
7
6
  constructor(client) {
8
7
  this.client = client;
@@ -185,7 +184,7 @@ export class TypedAmmApi {
185
184
  /**
186
185
  * Error checking utilities
187
186
  */
188
- export function isFlashnetError(error) {
187
+ function isFlashnetError(error) {
189
188
  return (typeof error === "object" &&
190
189
  error !== null &&
191
190
  "code" in error &&
@@ -193,10 +192,12 @@ export function isFlashnetError(error) {
193
192
  typeof error.code === "number" &&
194
193
  typeof error.msg === "string");
195
194
  }
196
- export function isApiError(error) {
195
+ function isApiError(error) {
197
196
  return (typeof error === "object" &&
198
197
  error !== null &&
199
198
  "error" in error &&
200
199
  typeof error.error === "object");
201
200
  }
202
- //# sourceMappingURL=typed-endpoints.js.map
201
+
202
+ export { TypedAmmApi, isApiError, isFlashnetError };
203
+ //# 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":"AAGA;;AAEG;MACU,WAAW,CAAA;AACF,IAAA,MAAA;AAApB,IAAA,WAAA,CAAoB,MAAiB,EAAA;QAAjB,IAAA,CAAA,MAAM,GAAN,MAAM;IAAc;;AAIxC;;;AAGG;IACH,MAAM,YAAY,CAChB,OAA+B,EAAA;QAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,oBAAoB,EACpB,OAAO,CACR;IACH;AAEA;;;AAGG;IACH,MAAM,MAAM,CAAC,OAA4B,EAAA;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,iBAAiB,EACjB,OAAO,CACR;IACH;;AAIA;;;;AAIG;IACH,MAAM,YAAY,CAChB,OAAkC,EAAA;QAElC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,oBAAoB,EACpB,OAAO,CACR;IACH;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,SAAiB,EAAA;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAwB,CAAA,UAAA,EAAa,SAAS,CAAA,CAAE,CAAC;IAC5E;AAEA;;;;AAIG;IACH,MAAM,gBAAgB,CACpB,OAAsC,EAAA;QAEtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,yBAAyB,EACzB,OAAO,CACR;IACH;AAEA;;;;AAIG;IACH,MAAM,eAAe,CACnB,OAAqC,EAAA;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,qBAAqB,EACrB,OAAO,CACR;IACH;;AAIA;;;;AAIG;IACH,MAAM,yBAAyB,CAC7B,OAA+C,EAAA;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,4BAA4B,EAC5B,OAAO,CACR;IACH;AAEA;;;;AAIG;IACH,MAAM,qBAAqB,CACzB,OAA2C,EAAA;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,wBAAwB,EACxB,OAAO,CACR;IACH;AAEA;;;;AAIG;IACH,MAAM,qBAAqB,CACzB,OAA2C,EAAA;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,gDAAgD,EAChD,OAAO,CACR;IACH;AAEA;;;AAGG;IACH,MAAM,SAAS,CACb,KAA4B,EAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAA0B,WAAW,EAAE;AAC9D,YAAA,MAAM,EAAE,KAAY;AACrB,SAAA,CAAC;IACJ;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,MAAc,EAAA;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAA4B,CAAA,UAAA,EAAa,MAAM,CAAA,CAAE,CAAC;IAC7E;AAEA;;;;AAIG;AACH,IAAA,MAAM,aAAa,CACjB,MAAc,EACd,iBAAyB,EAAA;AAEzB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAA,UAAA,EAAa,MAAM,CAAA,IAAA,EAAO,iBAAiB,CAAA,CAAE,CAC9C;IACH;;AAIA;;;;AAIG;IACH,MAAM,YAAY,CAChB,OAAkC,EAAA;QAElC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,mBAAmB,EACnB,OAAO,CACR;IACH;AAEA;;;AAGG;IACH,MAAM,oBAAoB,CACxB,OAA0C,EAAA;QAE1C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,4BAA4B,EAC5B,OAAO,CACR;IACH;AAEA;;;;AAIG;IACH,MAAM,eAAe,CACnB,OAAqC,EAAA;QAErC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,sBAAsB,EACtB,OAAO,CACR;IACH;AAEA;;;AAGG;IACH,MAAM,uBAAuB,CAC3B,OAA6C,EAAA;QAE7C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,+BAA+B,EAC/B,OAAO,CACR;IACH;;AAIA;;;;AAIG;IACH,MAAM,WAAW,CACf,OAAiC,EAAA;QAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB,UAAU,EAAE,OAAO,CAAC;IACrE;AAEA;;;AAGG;IACH,MAAM,YAAY,CAChB,OAAkC,EAAA;QAElC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CACxB,mBAAmB,EACnB,OAAO,CACR;IACH;AAEA;;;AAGG;AACH,IAAA,MAAM,YAAY,CAChB,QAAgB,EAChB,KAAgC,EAAA;AAEhC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAA,UAAA,EAAa,QAAQ,CAAA,MAAA,CAAQ,EAC7B,EAAE,MAAM,EAAE,KAAY,EAAE,CACzB;IACH;AAEA;;;AAGG;IACH,MAAM,cAAc,CAClB,KAAkC,EAAA;AAElC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAgC,WAAW,EAAE;AACpE,YAAA,MAAM,EAAE,KAAY;AACrB,SAAA,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,MAAM,YAAY,CAChB,aAAqB,EACrB,KAAgC,EAAA;AAEhC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CACvB,CAAA,eAAA,EAAkB,aAAa,CAAA,CAAE,EACjC,EAAE,MAAM,EAAE,KAAY,EAAE,CACzB;IACH;;AAIA;;;AAGG;AACH,IAAA,MAAM,IAAI,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAA+B,UAAU,CAAC;IACrE;AACD;AAED;;AAEG;AACG,SAAU,eAAe,CAC7B,KAAc,EAAA;AAEd,IAAA,QACE,OAAO,KAAK,KAAK,QAAQ;AACzB,QAAA,KAAK,KAAK,IAAI;AACd,QAAA,MAAM,IAAI,KAAK;AACf,QAAA,KAAK,IAAI,KAAK;AACd,QAAA,OAAQ,KAAa,CAAC,IAAI,KAAK,QAAQ;AACvC,QAAA,OAAQ,KAAa,CAAC,GAAG,KAAK,QAAQ;AAE1C;AAEM,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,QACE,OAAO,KAAK,KAAK,QAAQ;AACzB,QAAA,KAAK,KAAK,IAAI;AACd,QAAA,OAAO,IAAI,KAAK;AAChB,QAAA,OAAQ,KAAa,CAAC,KAAK,KAAK,QAAQ;AAE5C;;;;"}