@flashnet/sdk 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/src/api/client.d.ts +11 -0
- package/dist/cjs/src/api/client.d.ts.map +1 -1
- package/dist/cjs/src/api/client.js.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.d.ts +2 -1
- package/dist/cjs/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/cjs/src/client/FlashnetClient.js +8 -6
- package/dist/cjs/src/client/FlashnetClient.js.map +1 -1
- package/dist/cjs/src/config/index.d.ts +60 -2
- package/dist/cjs/src/config/index.d.ts.map +1 -1
- package/dist/cjs/src/config/index.js +184 -6
- package/dist/cjs/src/config/index.js.map +1 -1
- package/dist/cjs/src/types/index.d.ts +106 -3
- package/dist/cjs/src/types/index.d.ts.map +1 -1
- package/dist/cjs/src/types/index.js +5 -0
- package/dist/cjs/src/types/index.js.map +1 -1
- package/dist/cjs/src/utils/index.js +5 -0
- package/dist/cjs/src/utils/index.js.map +1 -1
- package/dist/cjs/src/utils/spark-address.d.ts +61 -13
- package/dist/cjs/src/utils/spark-address.d.ts.map +1 -1
- package/dist/cjs/src/utils/spark-address.js +192 -30
- package/dist/cjs/src/utils/spark-address.js.map +1 -1
- package/dist/cjs/src/utils/tokenAddress.d.ts +28 -1
- package/dist/cjs/src/utils/tokenAddress.d.ts.map +1 -1
- package/dist/cjs/src/utils/tokenAddress.js +63 -0
- package/dist/cjs/src/utils/tokenAddress.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/src/api/client.d.ts +11 -0
- package/dist/esm/src/api/client.d.ts.map +1 -1
- package/dist/esm/src/api/client.js.map +1 -1
- package/dist/esm/src/client/FlashnetClient.d.ts +2 -1
- package/dist/esm/src/client/FlashnetClient.d.ts.map +1 -1
- package/dist/esm/src/client/FlashnetClient.js +8 -6
- package/dist/esm/src/client/FlashnetClient.js.map +1 -1
- package/dist/esm/src/config/index.d.ts +60 -2
- package/dist/esm/src/config/index.d.ts.map +1 -1
- package/dist/esm/src/config/index.js +178 -7
- package/dist/esm/src/config/index.js.map +1 -1
- package/dist/esm/src/types/index.d.ts +106 -3
- package/dist/esm/src/types/index.d.ts.map +1 -1
- package/dist/esm/src/types/index.js +5 -0
- package/dist/esm/src/types/index.js.map +1 -1
- package/dist/esm/src/utils/index.js +1 -1
- package/dist/esm/src/utils/spark-address.d.ts +61 -13
- package/dist/esm/src/utils/spark-address.d.ts.map +1 -1
- package/dist/esm/src/utils/spark-address.js +188 -31
- package/dist/esm/src/utils/spark-address.js.map +1 -1
- package/dist/esm/src/utils/tokenAddress.d.ts +28 -1
- package/dist/esm/src/utils/tokenAddress.d.ts.map +1 -1
- package/dist/esm/src/utils/tokenAddress.js +62 -1
- package/dist/esm/src/utils/tokenAddress.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,21 @@ var secp256k1 = require('@noble/curves/secp256k1');
|
|
|
4
4
|
var utils = require('@noble/hashes/utils');
|
|
5
5
|
var base = require('@scure/base');
|
|
6
6
|
|
|
7
|
+
const SparkAddressNetworkPrefix = {
|
|
8
|
+
MAINNET: "sp",
|
|
9
|
+
TESTNET: "spt",
|
|
10
|
+
REGTEST: "sprt",
|
|
11
|
+
SIGNET: "sps",
|
|
12
|
+
LOCAL: "spl",
|
|
13
|
+
};
|
|
14
|
+
const SparkPrefixToNetwork = Object.fromEntries(Object.entries(SparkAddressNetworkPrefix).map(([network, prefix]) => [
|
|
15
|
+
prefix,
|
|
16
|
+
network,
|
|
17
|
+
]));
|
|
18
|
+
// ===== BACKWARD COMPATIBILITY LAYER =====
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use SparkAddressNetworkPrefix instead
|
|
21
|
+
*/
|
|
7
22
|
const AddressNetworkPrefix = {
|
|
8
23
|
MAINNET: "sp",
|
|
9
24
|
TESTNET: "spt",
|
|
@@ -11,6 +26,9 @@ const AddressNetworkPrefix = {
|
|
|
11
26
|
SIGNET: "sps",
|
|
12
27
|
LOCAL: "spl",
|
|
13
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated Use SparkPrefixToNetwork instead
|
|
31
|
+
*/
|
|
14
32
|
const PrefixToNetwork = Object.fromEntries(Object.entries(AddressNetworkPrefix).map(([network, prefix]) => [
|
|
15
33
|
prefix,
|
|
16
34
|
network,
|
|
@@ -62,10 +80,145 @@ function decodeProto(data) {
|
|
|
62
80
|
}
|
|
63
81
|
return result;
|
|
64
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Encodes a public key and Spark network into a Spark address
|
|
85
|
+
* @param payload Object containing hex public key and Spark network type
|
|
86
|
+
* @returns Bech32m encoded Spark address
|
|
87
|
+
*/
|
|
88
|
+
function encodeSparkAddressNew(payload) {
|
|
89
|
+
isValidPublicKey(payload.identityPublicKey);
|
|
90
|
+
// Convert hex public key to bytes
|
|
91
|
+
const publicKeyBytes = utils.hexToBytes(payload.identityPublicKey);
|
|
92
|
+
// Use proto-style encoding to match the original implementation
|
|
93
|
+
const protoEncoded = encodeProto(publicKeyBytes);
|
|
94
|
+
// Convert to bech32m words
|
|
95
|
+
const words = base.bech32m.toWords(protoEncoded);
|
|
96
|
+
// Encode with bech32m
|
|
97
|
+
const prefix = SparkAddressNetworkPrefix[payload.network];
|
|
98
|
+
const encoded = base.bech32m.encode(prefix, words, 200);
|
|
99
|
+
return encoded;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Decodes a Spark address to extract the public key using Spark network type
|
|
103
|
+
* @param address Bech32m encoded Spark address
|
|
104
|
+
* @param network Expected Spark network type (used to check prefix)
|
|
105
|
+
* @returns Hex-encoded public key
|
|
106
|
+
* @throws Error if address format, prefix, or decoded key is invalid
|
|
107
|
+
*/
|
|
108
|
+
function decodeSparkAddressNew(address, network) {
|
|
109
|
+
const prefix = SparkAddressNetworkPrefix[network];
|
|
110
|
+
if (!address?.startsWith(prefix)) {
|
|
111
|
+
throw new Error(`Invalid Spark address: expected prefix ${prefix}`);
|
|
112
|
+
}
|
|
113
|
+
// Decode the bech32m address
|
|
114
|
+
const sparkAddress = address;
|
|
115
|
+
const decoded = base.bech32m.decode(sparkAddress, 200);
|
|
116
|
+
// Convert words back to bytes
|
|
117
|
+
const protoBytes = base.bech32m.fromWords(decoded.words);
|
|
118
|
+
// Decode the proto format to get the SparkAddress
|
|
119
|
+
const sparkAddressData = decodeProto(protoBytes);
|
|
120
|
+
// Convert the public key bytes back to hex
|
|
121
|
+
const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
|
|
122
|
+
// Validate the extracted public key
|
|
123
|
+
isValidPublicKey(publicKey);
|
|
124
|
+
return publicKey;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Attempts to determine the Spark network type from a Spark address prefix.
|
|
128
|
+
* @param address The potential Spark address.
|
|
129
|
+
* @returns The SparkNetworkType or null if the prefix is invalid.
|
|
130
|
+
*/
|
|
131
|
+
function getSparkNetworkFromAddress(address) {
|
|
132
|
+
if (!address || typeof address !== "string") {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
const parts = address.split("1");
|
|
136
|
+
if (parts.length < 2) {
|
|
137
|
+
return null; // Missing separator '1'
|
|
138
|
+
}
|
|
139
|
+
const prefix = parts[0] ?? "";
|
|
140
|
+
return SparkPrefixToNetwork[prefix] || null; // Return SparkNetworkType or null
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Checks if a string is a valid Spark address for *any* known Spark network,
|
|
144
|
+
* and optionally validates against a specific Spark network.
|
|
145
|
+
* @param address String to validate
|
|
146
|
+
* @param network Optional specific Spark network type to check against
|
|
147
|
+
* @returns Boolean indicating validity
|
|
148
|
+
*/
|
|
149
|
+
function isValidSparkAddressNew(address, network) {
|
|
150
|
+
try {
|
|
151
|
+
if (!address?.includes("1")) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
const addressAsPossibleFormat = address;
|
|
155
|
+
const decoded = base.bech32m.decode(addressAsPossibleFormat, 200);
|
|
156
|
+
const prefix = decoded.prefix;
|
|
157
|
+
// Check if prefix is known
|
|
158
|
+
const networkFromPrefix = SparkPrefixToNetwork[prefix];
|
|
159
|
+
if (!networkFromPrefix) {
|
|
160
|
+
return false; // Unknown prefix
|
|
161
|
+
}
|
|
162
|
+
// If a specific network is required, check if it matches
|
|
163
|
+
if (network && network !== networkFromPrefix) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
// Try to decode the payload and validate the pubkey
|
|
167
|
+
const protoBytes = base.bech32m.fromWords(decoded.words);
|
|
168
|
+
const sparkAddressData = decodeProto(protoBytes);
|
|
169
|
+
const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
|
|
170
|
+
isValidPublicKey(publicKey); // Throws on invalid key
|
|
171
|
+
return true; // All checks passed
|
|
172
|
+
}
|
|
173
|
+
catch (_error) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Converts a Spark address to a specific Spark network.
|
|
179
|
+
* If the address is already on the requested network, it returns the original address.
|
|
180
|
+
* Otherwise, it extracts the public key and creates a new address for the target network.
|
|
181
|
+
*
|
|
182
|
+
* @param sparkAddress The Spark address to convert
|
|
183
|
+
* @param targetNetwork The target Spark network
|
|
184
|
+
* @returns The Spark address for the target network or null if conversion fails
|
|
185
|
+
*/
|
|
186
|
+
function convertSparkAddressToSparkNetwork(sparkAddress, targetNetwork) {
|
|
187
|
+
try {
|
|
188
|
+
// Check if the address is valid
|
|
189
|
+
if (!isValidSparkAddressNew(sparkAddress)) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
// Extract the current network from the address
|
|
193
|
+
const currentNetworkType = getSparkNetworkFromAddress(sparkAddress);
|
|
194
|
+
if (!currentNetworkType) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
// If already on the target network, return the original address
|
|
198
|
+
if (currentNetworkType === targetNetwork) {
|
|
199
|
+
return sparkAddress;
|
|
200
|
+
}
|
|
201
|
+
// Extract the public key from the address
|
|
202
|
+
const decoded = base.bech32m.decode(sparkAddress, 200);
|
|
203
|
+
const protoBytes = base.bech32m.fromWords(decoded.words);
|
|
204
|
+
const sparkAddressData = decodeProto(protoBytes);
|
|
205
|
+
const publicKey = utils.bytesToHex(sparkAddressData.identityPublicKey);
|
|
206
|
+
// Create a new address for the target network
|
|
207
|
+
return encodeSparkAddressNew({
|
|
208
|
+
identityPublicKey: publicKey,
|
|
209
|
+
network: targetNetwork,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
catch (_error) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// ===== BACKWARD COMPATIBILITY FUNCTIONS =====
|
|
65
217
|
/**
|
|
66
218
|
* Encodes a public key and network into a Spark address
|
|
67
219
|
* @param payload Object containing hex public key and network type
|
|
68
220
|
* @returns Bech32m encoded Spark address
|
|
221
|
+
* @deprecated Use encodeSparkAddressNew with SparkNetworkType instead
|
|
69
222
|
*/
|
|
70
223
|
function encodeSparkAddress(payload) {
|
|
71
224
|
isValidPublicKey(payload.identityPublicKey);
|
|
@@ -86,6 +239,7 @@ function encodeSparkAddress(payload) {
|
|
|
86
239
|
* @param network Expected network type (used to check prefix)
|
|
87
240
|
* @returns Hex-encoded public key
|
|
88
241
|
* @throws Error if address format, prefix, or decoded key is invalid
|
|
242
|
+
* @deprecated Use decodeSparkAddressNew with SparkNetworkType instead
|
|
89
243
|
*/
|
|
90
244
|
function decodeSparkAddress(address, network) {
|
|
91
245
|
const prefix = AddressNetworkPrefix[network];
|
|
@@ -109,6 +263,7 @@ function decodeSparkAddress(address, network) {
|
|
|
109
263
|
* Attempts to determine the network type from a Spark address prefix.
|
|
110
264
|
* @param address The potential Spark address.
|
|
111
265
|
* @returns The NetworkType ('MAINNET', 'REGTEST', etc.) or null if the prefix is invalid.
|
|
266
|
+
* @deprecated Use getSparkNetworkFromAddress instead
|
|
112
267
|
*/
|
|
113
268
|
function getNetworkFromAddress(address) {
|
|
114
269
|
if (!address || typeof address !== "string") {
|
|
@@ -127,6 +282,7 @@ function getNetworkFromAddress(address) {
|
|
|
127
282
|
* @param address String to validate
|
|
128
283
|
* @param network Optional specific network type to check against
|
|
129
284
|
* @returns Boolean indicating validity
|
|
285
|
+
* @deprecated Use isValidSparkAddressNew with SparkNetworkType instead
|
|
130
286
|
*/
|
|
131
287
|
function isValidSparkAddress(address, network) {
|
|
132
288
|
try {
|
|
@@ -156,36 +312,6 @@ function isValidSparkAddress(address, network) {
|
|
|
156
312
|
return false;
|
|
157
313
|
}
|
|
158
314
|
}
|
|
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
315
|
/**
|
|
190
316
|
* Converts a Spark address to a specific network.
|
|
191
317
|
* If the address is already on the requested network, it returns the original address.
|
|
@@ -194,6 +320,7 @@ function isValidPublicKey(publicKey) {
|
|
|
194
320
|
* @param sparkAddress The Spark address to convert
|
|
195
321
|
* @param targetNetwork The target network ('mainnet' or 'regtest')
|
|
196
322
|
* @returns The Spark address for the target network or null if conversion fails
|
|
323
|
+
* @deprecated Use convertSparkAddressToSparkNetwork with SparkNetworkType instead
|
|
197
324
|
*/
|
|
198
325
|
function convertSparkAddressToNetwork(sparkAddress, targetNetwork) {
|
|
199
326
|
try {
|
|
@@ -227,12 +354,47 @@ function convertSparkAddressToNetwork(sparkAddress, targetNetwork) {
|
|
|
227
354
|
return null;
|
|
228
355
|
}
|
|
229
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* Checks if a string looks like a valid hex-encoded public key (basic check).
|
|
359
|
+
* Does NOT validate point on curve here, use isValidPublicKey for that.
|
|
360
|
+
* @param key The potential public key hex string.
|
|
361
|
+
* @returns True if it matches the basic format, false otherwise.
|
|
362
|
+
*/
|
|
363
|
+
function looksLikePublicKey(key) {
|
|
364
|
+
if (!key || typeof key !== "string") {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
return key.length === 66 && /^(02|03)[0-9a-fA-F]{64}$/.test(key);
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Validates a secp256k1 public key format and curve point.
|
|
371
|
+
* @param publicKey Hex-encoded public key
|
|
372
|
+
* @throws Error if public key is invalid
|
|
373
|
+
*/
|
|
374
|
+
function isValidPublicKey(publicKey) {
|
|
375
|
+
if (!looksLikePublicKey(publicKey)) {
|
|
376
|
+
throw new Error("Invalid public key format/length.");
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
const point = secp256k1.secp256k1.ProjectivePoint.fromHex(publicKey);
|
|
380
|
+
point.assertValidity();
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
384
|
+
throw new Error(`Invalid public key point: ${errorMessage}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
230
387
|
|
|
231
388
|
exports.convertSparkAddressToNetwork = convertSparkAddressToNetwork;
|
|
389
|
+
exports.convertSparkAddressToSparkNetwork = convertSparkAddressToSparkNetwork;
|
|
232
390
|
exports.decodeSparkAddress = decodeSparkAddress;
|
|
391
|
+
exports.decodeSparkAddressNew = decodeSparkAddressNew;
|
|
233
392
|
exports.encodeSparkAddress = encodeSparkAddress;
|
|
393
|
+
exports.encodeSparkAddressNew = encodeSparkAddressNew;
|
|
234
394
|
exports.getNetworkFromAddress = getNetworkFromAddress;
|
|
395
|
+
exports.getSparkNetworkFromAddress = getSparkNetworkFromAddress;
|
|
235
396
|
exports.isValidPublicKey = isValidPublicKey;
|
|
236
397
|
exports.isValidSparkAddress = isValidSparkAddress;
|
|
398
|
+
exports.isValidSparkAddressNew = isValidSparkAddressNew;
|
|
237
399
|
exports.looksLikePublicKey = looksLikePublicKey;
|
|
238
400
|
//# sourceMappingURL=spark-address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spark-address.js","sources":["../../../../../../src/utils/spark-address.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex","secp256k1"],"mappings":";;;;;;AAUA,MAAM,oBAAoB,GAAgC;AACxD,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,KAAK,EAAE,KAAK;CACJ;AAEV,MAAM,eAAe,GAAgC,MAAM,CAAC,WAAW,CACrE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK;IAC9D,MAAM;IACN,OAAsB;AACvB,CAAA,CAAC,CACH;
|
|
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,6 +1,33 @@
|
|
|
1
|
-
import type { NetworkType } from "../types";
|
|
1
|
+
import type { NetworkType, SparkNetworkType } from "../types";
|
|
2
|
+
export type SparkHumanReadableTokenIdentifier = `btkn1${string}` | `btknrt1${string}` | `btknt1${string}` | `btkns1${string}` | `btknl1${string}`;
|
|
3
|
+
/**
|
|
4
|
+
* Encode token identifier using Spark network type
|
|
5
|
+
* @param tokenIdentifier Token identifier as hex string or Uint8Array
|
|
6
|
+
* @param network Spark network type
|
|
7
|
+
* @returns Human-readable token identifier
|
|
8
|
+
*/
|
|
9
|
+
export declare function encodeSparkHumanReadableTokenIdentifier(tokenIdentifier: string | Uint8Array, network: SparkNetworkType): SparkHumanReadableTokenIdentifier;
|
|
10
|
+
/**
|
|
11
|
+
* Decode human-readable token identifier using Spark network type
|
|
12
|
+
* @param humanReadableTokenIdentifier Human-readable token identifier
|
|
13
|
+
* @param network Expected Spark network type
|
|
14
|
+
* @returns Object containing token identifier and network
|
|
15
|
+
*/
|
|
16
|
+
export declare function decodeSparkHumanReadableTokenIdentifier(humanReadableTokenIdentifier: SparkHumanReadableTokenIdentifier, network: SparkNetworkType): {
|
|
17
|
+
tokenIdentifier: string;
|
|
18
|
+
network: SparkNetworkType;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use SparkHumanReadableTokenIdentifier instead
|
|
22
|
+
*/
|
|
2
23
|
export type HumanReadableTokenIdentifier = `btkn1${string}` | `btknrt1${string}` | `btknt1${string}` | `btkns1${string}` | `btknl1${string}`;
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Use encodeSparkHumanReadableTokenIdentifier with SparkNetworkType instead
|
|
26
|
+
*/
|
|
3
27
|
export declare function encodeHumanReadableTokenIdentifier(tokenIdentifier: string | Uint8Array, network: NetworkType): HumanReadableTokenIdentifier;
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use decodeSparkHumanReadableTokenIdentifier with SparkNetworkType instead
|
|
30
|
+
*/
|
|
4
31
|
export declare function decodeHumanReadableTokenIdentifier(humanReadableTokenIdentifier: HumanReadableTokenIdentifier, network: NetworkType): {
|
|
5
32
|
tokenIdentifier: string;
|
|
6
33
|
network: NetworkType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tokenAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/tokenAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAW9D,MAAM,MAAM,iCAAiC,GACzC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,gBAAgB,GACxB,iCAAiC,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACrD,4BAA4B,EAAE,iCAAiC,EAC/D,OAAO,EAAE,gBAAgB,GACxB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAyBxD;AAeD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GACpC,QAAQ,MAAM,EAAE,GAChB,UAAU,MAAM,EAAE,GAClB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,CAAC;AAEtB;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,eAAe,EAAE,MAAM,GAAG,UAAU,EACpC,OAAO,EAAE,WAAW,GACnB,4BAA4B,CAiB9B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,OAAO,EAAE,WAAW,GACnB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAyBnD"}
|
|
@@ -3,6 +3,61 @@
|
|
|
3
3
|
var base = require('@scure/base');
|
|
4
4
|
var utils = require('@noble/hashes/utils');
|
|
5
5
|
|
|
6
|
+
const SparkHumanReadableTokenIdentifierNetworkPrefix = {
|
|
7
|
+
MAINNET: "btkn",
|
|
8
|
+
REGTEST: "btknrt",
|
|
9
|
+
TESTNET: "btknt",
|
|
10
|
+
SIGNET: "btkns",
|
|
11
|
+
LOCAL: "btknl",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Encode token identifier using Spark network type
|
|
15
|
+
* @param tokenIdentifier Token identifier as hex string or Uint8Array
|
|
16
|
+
* @param network Spark network type
|
|
17
|
+
* @returns Human-readable token identifier
|
|
18
|
+
*/
|
|
19
|
+
function encodeSparkHumanReadableTokenIdentifier(tokenIdentifier, network) {
|
|
20
|
+
try {
|
|
21
|
+
// Convert hex string to bytes if needed
|
|
22
|
+
const tokenIdentifierBytes = typeof tokenIdentifier === "string"
|
|
23
|
+
? utils.hexToBytes(tokenIdentifier)
|
|
24
|
+
: tokenIdentifier;
|
|
25
|
+
const words = base.bech32m.toWords(tokenIdentifierBytes);
|
|
26
|
+
return base.bech32m.encode(SparkHumanReadableTokenIdentifierNetworkPrefix[network], words, 500);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error("Failed to encode Spark human readable token identifier");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Decode human-readable token identifier using Spark network type
|
|
34
|
+
* @param humanReadableTokenIdentifier Human-readable token identifier
|
|
35
|
+
* @param network Expected Spark network type
|
|
36
|
+
* @returns Object containing token identifier and network
|
|
37
|
+
*/
|
|
38
|
+
function decodeSparkHumanReadableTokenIdentifier(humanReadableTokenIdentifier, network) {
|
|
39
|
+
try {
|
|
40
|
+
const decoded = base.bech32m.decode(humanReadableTokenIdentifier, 500);
|
|
41
|
+
if (decoded.prefix !== SparkHumanReadableTokenIdentifierNetworkPrefix[network]) {
|
|
42
|
+
throw new Error(`Invalid Spark human readable token identifier prefix, expected '${SparkHumanReadableTokenIdentifierNetworkPrefix[network]}' but got '${decoded.prefix}'`);
|
|
43
|
+
}
|
|
44
|
+
const tokenIdentifier = base.bech32m.fromWords(decoded.words);
|
|
45
|
+
return {
|
|
46
|
+
tokenIdentifier: utils.bytesToHex(tokenIdentifier),
|
|
47
|
+
network,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (error instanceof Error) {
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
throw new Error("Failed to decode Spark human readable token identifier");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// ===== BACKWARD COMPATIBILITY LAYER =====
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Use SparkHumanReadableTokenIdentifierNetworkPrefix instead
|
|
60
|
+
*/
|
|
6
61
|
const HumanReadableTokenIdentifierNetworkPrefix = {
|
|
7
62
|
MAINNET: "btkn",
|
|
8
63
|
REGTEST: "btknrt",
|
|
@@ -10,6 +65,9 @@ const HumanReadableTokenIdentifierNetworkPrefix = {
|
|
|
10
65
|
SIGNET: "btkns",
|
|
11
66
|
LOCAL: "btknl",
|
|
12
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated Use encodeSparkHumanReadableTokenIdentifier with SparkNetworkType instead
|
|
70
|
+
*/
|
|
13
71
|
function encodeHumanReadableTokenIdentifier(tokenIdentifier, network) {
|
|
14
72
|
try {
|
|
15
73
|
// Convert hex string to bytes if needed
|
|
@@ -23,6 +81,9 @@ function encodeHumanReadableTokenIdentifier(tokenIdentifier, network) {
|
|
|
23
81
|
throw new Error("Failed to encode human readable token identifier");
|
|
24
82
|
}
|
|
25
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Use decodeSparkHumanReadableTokenIdentifier with SparkNetworkType instead
|
|
86
|
+
*/
|
|
26
87
|
function decodeHumanReadableTokenIdentifier(humanReadableTokenIdentifier, network) {
|
|
27
88
|
try {
|
|
28
89
|
const decoded = base.bech32m.decode(humanReadableTokenIdentifier, 500);
|
|
@@ -44,5 +105,7 @@ function decodeHumanReadableTokenIdentifier(humanReadableTokenIdentifier, networ
|
|
|
44
105
|
}
|
|
45
106
|
|
|
46
107
|
exports.decodeHumanReadableTokenIdentifier = decodeHumanReadableTokenIdentifier;
|
|
108
|
+
exports.decodeSparkHumanReadableTokenIdentifier = decodeSparkHumanReadableTokenIdentifier;
|
|
47
109
|
exports.encodeHumanReadableTokenIdentifier = encodeHumanReadableTokenIdentifier;
|
|
110
|
+
exports.encodeSparkHumanReadableTokenIdentifier = encodeSparkHumanReadableTokenIdentifier;
|
|
48
111
|
//# sourceMappingURL=tokenAddress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"tokenAddress.js","sources":["../../../../../../src/utils/tokenAddress.ts"],"sourcesContent":[null],"names":["hexToBytes","bech32m","bytesToHex"],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export { fromSmallestUnit, generateNonce, toSmallestUnit } from "./src/utils";
|
|
|
9
9
|
export { AuthManager } from "./src/utils/auth";
|
|
10
10
|
export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage, } from "./src/utils/intents";
|
|
11
11
|
export { createWalletSigner } from "./src/utils/signer";
|
|
12
|
-
export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress,
|
|
12
|
+
export { convertSparkAddressToSparkNetwork, decodeSparkAddressNew, encodeSparkAddressNew, getSparkNetworkFromAddress, isValidSparkAddressNew, convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidSparkAddress, isValidPublicKey, looksLikePublicKey, type SparkAddressFormat, } from "./src/utils/spark-address";
|
|
13
|
+
export { encodeSparkHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, type SparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, decodeHumanReadableTokenIdentifier, type HumanReadableTokenIdentifier, } from "./src/utils/tokenAddress";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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;AAGxD,OAAO,EAEL,iCAAiC,EACjC,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EAEtB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EAEnB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,uCAAuC,EACvC,uCAAuC,EACvC,KAAK,iCAAiC,EAEtC,kCAAkC,EAClC,kCAAkC,EAClC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,10 +2,11 @@ export { ApiClient } from './src/api/client.js';
|
|
|
2
2
|
export { TypedAmmApi, isApiError, isFlashnetError } from './src/api/typed-endpoints.js';
|
|
3
3
|
export { ValidationError, commonValidationRules, constantProductPoolValidationRules, validateBps, validateNamespace, validatePositiveAmount, validatePublicKey, validateRequest, validateSignature } from './src/api/validation.js';
|
|
4
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';
|
|
5
|
+
export { BTC_ASSET_PUBKEY, BTC_DECIMALS, CLIENT_NETWORK_CONFIGS, DEFAULT_HOST_NAMESPACE, DEFAULT_SLIPPAGE_BPS, NETWORK_CONFIGS, getClientEnvironmentName, getClientNetworkConfig, getDefaultSparkNetworkForEnvironment, getNetworkConfig, resolveClientNetworkConfig, validateClientNetworkConfig, validateNetworkCombination } from './src/config/index.js';
|
|
6
6
|
export { fromSmallestUnit, generateNonce, toSmallestUnit } from './src/utils/index.js';
|
|
7
7
|
export { AuthManager } from './src/utils/auth.js';
|
|
8
8
|
export { generateAddLiquidityIntentMessage, generateConstantProductPoolInitializationIntentMessage, generatePoolConfirmInitialDepositIntentMessage, generatePoolInitializationIntentMessage, generatePoolSwapIntentMessage, generateRegisterHostIntentMessage, generateRemoveLiquidityIntentMessage, generateWithdrawHostFeesIntentMessage } from './src/utils/intents.js';
|
|
9
9
|
export { createWalletSigner } from './src/utils/signer.js';
|
|
10
|
-
export { convertSparkAddressToNetwork, decodeSparkAddress, encodeSparkAddress, getNetworkFromAddress, isValidPublicKey, isValidSparkAddress, looksLikePublicKey } from './src/utils/spark-address.js';
|
|
10
|
+
export { convertSparkAddressToNetwork, convertSparkAddressToSparkNetwork, decodeSparkAddress, decodeSparkAddressNew, encodeSparkAddress, encodeSparkAddressNew, getNetworkFromAddress, getSparkNetworkFromAddress, isValidPublicKey, isValidSparkAddress, isValidSparkAddressNew, looksLikePublicKey } from './src/utils/spark-address.js';
|
|
11
|
+
export { decodeHumanReadableTokenIdentifier, decodeSparkHumanReadableTokenIdentifier, encodeHumanReadableTokenIdentifier, encodeSparkHumanReadableTokenIdentifier } from './src/utils/tokenAddress.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { NetworkConfig } from "../config";
|
|
2
|
+
import type { ClientNetworkConfig } from "../types";
|
|
2
3
|
export interface RequestOptions {
|
|
3
4
|
headers?: Record<string, string>;
|
|
4
5
|
body?: any;
|
|
@@ -7,6 +8,16 @@ export interface RequestOptions {
|
|
|
7
8
|
export declare class ApiClient {
|
|
8
9
|
private config;
|
|
9
10
|
private authToken?;
|
|
11
|
+
/**
|
|
12
|
+
* Create an ApiClient with new ClientNetworkConfig
|
|
13
|
+
* @param config Client network configuration
|
|
14
|
+
*/
|
|
15
|
+
constructor(config: ClientNetworkConfig);
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use ClientNetworkConfig instead of NetworkConfig
|
|
18
|
+
* Create an ApiClient with legacy NetworkConfig for backward compatibility
|
|
19
|
+
* @param config Legacy network configuration
|
|
20
|
+
*/
|
|
10
21
|
constructor(config: NetworkConfig);
|
|
11
22
|
setAuthToken(token: string): void;
|
|
12
23
|
private makeRequest;
|
|
@@ -1 +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;
|
|
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,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,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,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B;;;OAGG;gBACS,MAAM,EAAE,mBAAmB;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,aAAa;IAMjC,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../../../../../../src/api/client.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../../../../../../src/api/client.ts"],"sourcesContent":[null],"names":[],"mappings":"MASa,SAAS,CAAA;AACZ,IAAA,MAAM;AACN,IAAA,SAAS;AAejB,IAAA,WAAA,CAAY,MAA2C,EAAA;AACrD,QAAA,IAAI,CAAC,MAAM,GAAG,MAA6B;IAC7C;AAEA,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;AAEQ,IAAA,MAAM,WAAW,CACvB,GAAW,EACX,MAAc,EACd,OAAwB,EAAA;AAExB,QAAA,MAAM,OAAO,GAA2B;AACtC,YAAA,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO,EAAE,OAAO;SACpB;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,CAAC,aAAa,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,SAAS,EAAE;QACpD;AAEA,QAAA,MAAM,cAAc,GAAgB;YAClC,MAAM;YACN,OAAO;SACR;QAED,IAAI,OAAO,EAAE,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE;YACrC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACpD;;QAGA,IAAI,QAAQ,GAAG,GAAG;AAClB,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACpC,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;gBACtD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AACtC,YAAA,CAAC,CAAC;YACF,QAAQ,GAAG,GAAG,GAAG,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE;QAC1C;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC;AAEtD,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,SAAS,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAMlD;;AAGR,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtD,OAAO,CAAC,KAAK,CAAC,CAAA,eAAA,EAAkB,QAAQ,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;AACpD,gBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC/B,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;AAChC,gBAAA,IAAI,OAAO,EAAE,IAAI,EAAE;AACjB,oBAAA,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvE;gBACA,IAAI,SAAS,EAAE;AACb,oBAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtE;YACF;;AAGA,YAAA,MAAM,KAAK,GAAQ,IAAI,KAAK,CAC1B,SAAS,EAAE,OAAO;AAChB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,CAAA,oBAAA,EAAuB,QAAQ,CAAC,MAAM,CAAA,CAAE,CAC3C;AACD,YAAA,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC9B,YAAA,KAAK,CAAC,QAAQ,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;AAC7D,YAAA,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAE9D,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAgB;IACtC;;AAGA,IAAA,MAAM,OAAO,CACX,IAAY,EACZ,IAAS,EACT,OAAwB,EAAA;AAExB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAA,EAAG,IAAI,CAAA,CAAE,EAAE,MAAM,EAAE;AACxE,YAAA,GAAG,OAAO;YACV,IAAI;AACL,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,MAAM,CAAI,IAAY,EAAE,OAAwB,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,WAAW,CACrB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAA,EAAG,IAAI,CAAA,CAAE,EACrC,KAAK,EACL,OAAO,CACR;IACH;;AAGA,IAAA,MAAM,UAAU,CAAI,IAAY,EAAE,OAAwB,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,WAAW,CACrB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAA,EAAG,IAAI,CAAA,CAAE,EACrC,KAAK,EACL,OAAO,CACR;IACH;;AAGA,IAAA,MAAM,YAAY,CAAI,IAAY,EAAE,OAAwB,EAAA;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QAClE;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,CACrB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA,EAAG,IAAI,CAAA,CAAE,EACpC,KAAK,EACL,OAAO,CACR;IACH;AACD;;;;"}
|
|
@@ -5,7 +5,8 @@ import { type HumanReadableTokenIdentifier } from "../utils/tokenAddress";
|
|
|
5
5
|
export interface TokenBalance {
|
|
6
6
|
balance: bigint;
|
|
7
7
|
tokenInfo?: {
|
|
8
|
-
|
|
8
|
+
tokenIdentifier: string;
|
|
9
|
+
tokenAddress: string;
|
|
9
10
|
tokenName: string;
|
|
10
11
|
tokenSymbol: string;
|
|
11
12
|
tokenDecimals: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlashnetClient.d.ts","sourceRoot":"","sources":["../../../../src/client/FlashnetClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAG3B,KAAK,kBAAkB,EAGvB,KAAK,wBAAwB,EAG7B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAE9B,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,KAAK,oBAAoB,EAEzB,KAAK,uBAAuB,EAG5B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,wBAAwB,EAE7B,KAAK,8BAA8B,EACpC,MAAM,UAAU,CAAC;AAoBlB,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QACV,
|
|
1
|
+
{"version":3,"file":"FlashnetClient.d.ts","sourceRoot":"","sources":["../../../../src/client/FlashnetClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,16 +149,18 @@ class FlashnetClient {
|
|
|
149
149
|
const tokenBalances = new Map();
|
|
150
150
|
if (balance.tokenBalances) {
|
|
151
151
|
for (const [tokenPubkey, tokenData] of balance.tokenBalances.entries()) {
|
|
152
|
-
const info =
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
const info = tokenData.tokenMetadata;
|
|
153
|
+
// Convert raw token identifier to hex and human-readable forms
|
|
154
|
+
const tokenIdentifierHex = Buffer.from(info.rawTokenIdentifier).toString("hex");
|
|
155
|
+
const tokenAddress = encodeHumanReadableTokenIdentifier(info.rawTokenIdentifier, this.network);
|
|
155
156
|
tokenBalances.set(tokenPubkey, {
|
|
156
157
|
balance: BigInt(tokenData.balance),
|
|
157
158
|
tokenInfo: {
|
|
158
|
-
|
|
159
|
+
tokenIdentifier: tokenIdentifierHex,
|
|
160
|
+
tokenAddress,
|
|
159
161
|
tokenName: info.tokenName,
|
|
160
|
-
tokenSymbol:
|
|
161
|
-
tokenDecimals:
|
|
162
|
+
tokenSymbol: info.tokenTicker,
|
|
163
|
+
tokenDecimals: info.decimals,
|
|
162
164
|
maxSupply: info.maxSupply,
|
|
163
165
|
},
|
|
164
166
|
});
|