@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
|
@@ -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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"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
export type * from "./src/types";
|
|
2
|
+
export type { RequestOptions } from "./src/api/client";
|
|
2
3
|
export { ApiClient } from "./src/api/client";
|
|
3
4
|
export { TypedAmmApi, isFlashnetError, isApiError, } from "./src/api/typed-endpoints";
|
|
4
|
-
export { validatePublicKey, validateSignature, validatePositiveAmount, validateBps, validateNamespace, validateRequest, ValidationError, commonValidationRules, constantProductPoolValidationRules, } from "./src/api/validation";
|
|
5
|
-
// Export configuration
|
|
5
|
+
export { validatePublicKey, validateSignature, validatePositiveAmount, validateBps, validateNamespace, validateRequest, ValidationError, commonValidationRules, constantProductPoolValidationRules, type ValidationRule, type ValidationRules, } from "./src/api/validation";
|
|
6
6
|
export * from "./src/config";
|
|
7
7
|
export { fromSmallestUnit, generateNonce, toSmallestUnit } from "./src/utils";
|
|
8
8
|
export { AuthManager } from "./src/utils/auth";
|
|
9
9
|
export { createWalletSigner } from "./src/utils/signer";
|
|
10
10
|
export { generateAddLiquidityIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRemoveLiquidityIntentMessage, generateRegisterHostIntentMessage, generateWithdrawHostFeesIntentMessage, } from "./src/utils/intents";
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
|
|
14
|
-
export { FlashnetClient, } from "./src/client/FlashnetClient";
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
11
|
+
export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidPublicKey, isValidSparkAddress, looksLikePublicKey, type SparkAddressFormat, } from "./src/utils/spark-address";
|
|
12
|
+
export { FlashnetClient, type FlashnetClientOptions, type TokenBalance, type WalletBalance, } from "./src/client/FlashnetClient";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,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 { BTC_ASSET_PUBKEY, BTC_DECIMALS, DEFAULT_HOST_NAMESPACE, DEFAULT_SLIPPAGE_BPS, NETWORK_CONFIGS, getNetworkConfig } from './src/config/index.js';
|
|
5
|
+
export { fromSmallestUnit, generateNonce, toSmallestUnit } from './src/utils/index.js';
|
|
6
|
+
export { AuthManager } from './src/utils/auth.js';
|
|
7
|
+
export { createWalletSigner } from './src/utils/signer.js';
|
|
8
|
+
export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage } from './src/utils/intents.js';
|
|
9
|
+
export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidPublicKey, isValidSparkAddress, looksLikePublicKey } from './src/utils/spark-address.js';
|
|
10
|
+
export { FlashnetClient } from './src/client/FlashnetClient.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { NetworkConfig } from "../config";
|
|
2
|
+
import { TypedAmmApi } from "./typed-endpoints";
|
|
3
|
+
export interface RequestOptions {
|
|
4
|
+
headers?: Record<string, string>;
|
|
5
|
+
body?: any;
|
|
6
|
+
params?: Record<string, string | number>;
|
|
7
|
+
}
|
|
8
|
+
export declare class ApiClient {
|
|
9
|
+
private config;
|
|
10
|
+
private authToken?;
|
|
11
|
+
readonly amm: TypedAmmApi;
|
|
12
|
+
constructor(config: NetworkConfig);
|
|
13
|
+
setAuthToken(token: string): void;
|
|
14
|
+
private makeRequest;
|
|
15
|
+
ammPost<T>(path: string, body: any, options?: RequestOptions): Promise<T>;
|
|
16
|
+
ammGet<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
17
|
+
mempoolGet<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
18
|
+
sparkScanGet<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
19
|
+
}
|
|
20
|
+
//# 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;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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { TypedAmmApi } from
|
|
2
|
-
|
|
1
|
+
import { TypedAmmApi } from './typed-endpoints.js';
|
|
2
|
+
|
|
3
|
+
class ApiClient {
|
|
3
4
|
config;
|
|
4
5
|
authToken;
|
|
5
6
|
amm;
|
|
@@ -82,4 +83,6 @@ export class ApiClient {
|
|
|
82
83
|
return this.makeRequest(`${this.config.sparkScanUrl}${path}`, "GET", options);
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
|
|
87
|
+
export { ApiClient };
|
|
88
|
+
//# 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,135 @@
|
|
|
1
|
+
import { ApiClient } from "./client";
|
|
2
|
+
import type * as Types from "../types";
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation helpers for API requests
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Validates that a public key is in the correct format
|
|
6
|
+
*/
|
|
7
|
+
export declare function validatePublicKey(publicKey: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Validates that a signature is in the correct format
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateSignature(signature: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Validates that an amount is positive
|
|
14
|
+
*/
|
|
15
|
+
export declare function validatePositiveAmount(amount: number | string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Validates that a BPS value is in the valid range
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateBps(bps: number, min?: number, max?: number): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Validates a namespace string
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateNamespace(namespace: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Common validation errors
|
|
26
|
+
*/
|
|
27
|
+
export declare class ValidationError extends Error {
|
|
28
|
+
field: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
constructor(field: string, reason: string);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Validates a request object against a set of rules
|
|
34
|
+
*/
|
|
35
|
+
export declare function validateRequest<T extends Record<string, any>>(request: T, rules: ValidationRules<T>): void;
|
|
36
|
+
export interface ValidationRule {
|
|
37
|
+
required?: boolean;
|
|
38
|
+
validator?: (value: any) => boolean;
|
|
39
|
+
message?: string;
|
|
40
|
+
}
|
|
41
|
+
export type ValidationRules<T> = {
|
|
42
|
+
[K in keyof T]?: ValidationRule;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Pre-defined validation rules for common request types
|
|
46
|
+
*/
|
|
47
|
+
export declare const commonValidationRules: {
|
|
48
|
+
publicKey: {
|
|
49
|
+
required: boolean;
|
|
50
|
+
validator: typeof validatePublicKey;
|
|
51
|
+
message: string;
|
|
52
|
+
};
|
|
53
|
+
signature: {
|
|
54
|
+
required: boolean;
|
|
55
|
+
validator: typeof validateSignature;
|
|
56
|
+
message: string;
|
|
57
|
+
};
|
|
58
|
+
nonce: {
|
|
59
|
+
required: boolean;
|
|
60
|
+
validator: (v: any) => boolean;
|
|
61
|
+
message: string;
|
|
62
|
+
};
|
|
63
|
+
amount: {
|
|
64
|
+
required: boolean;
|
|
65
|
+
validator: typeof validatePositiveAmount;
|
|
66
|
+
message: string;
|
|
67
|
+
};
|
|
68
|
+
bps: {
|
|
69
|
+
required: boolean;
|
|
70
|
+
validator: (v: any) => boolean;
|
|
71
|
+
message: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Validation rules for CreateConstantProductPoolRequest
|
|
76
|
+
*/
|
|
77
|
+
export declare const constantProductPoolValidationRules: {
|
|
78
|
+
poolOwnerPublicKey: {
|
|
79
|
+
required: boolean;
|
|
80
|
+
validator: typeof validatePublicKey;
|
|
81
|
+
message: string;
|
|
82
|
+
};
|
|
83
|
+
assetATokenPublicKey: {
|
|
84
|
+
required: boolean;
|
|
85
|
+
validator: typeof validatePublicKey;
|
|
86
|
+
message: string;
|
|
87
|
+
};
|
|
88
|
+
assetBTokenPublicKey: {
|
|
89
|
+
required: boolean;
|
|
90
|
+
validator: typeof validatePublicKey;
|
|
91
|
+
message: string;
|
|
92
|
+
};
|
|
93
|
+
lpFeeRateBps: {
|
|
94
|
+
required: boolean;
|
|
95
|
+
validator: (v: any) => boolean;
|
|
96
|
+
message: string;
|
|
97
|
+
};
|
|
98
|
+
integratorNamespace: {
|
|
99
|
+
required: boolean;
|
|
100
|
+
validator: typeof validateNamespace;
|
|
101
|
+
message: string;
|
|
102
|
+
};
|
|
103
|
+
nonce: {
|
|
104
|
+
required: boolean;
|
|
105
|
+
validator: (v: any) => boolean;
|
|
106
|
+
message: string;
|
|
107
|
+
};
|
|
108
|
+
signature: {
|
|
109
|
+
required: boolean;
|
|
110
|
+
validator: typeof validateSignature;
|
|
111
|
+
message: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -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"}
|