@secretkeylabs/stacks-tools 0.8.0 → 0.9.0-3bdb7d7
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/index.cjs +108 -101
- package/dist/index.d.cts +73 -113
- package/dist/index.d.ts +73 -113
- package/dist/index.js +108 -101
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -175,28 +175,6 @@ var baseListResponseSchema = v2.object({
|
|
|
175
175
|
});
|
|
176
176
|
|
|
177
177
|
// src/stacks-api/blocks/get-block.ts
|
|
178
|
-
import * as v3 from "valibot";
|
|
179
|
-
var responseSchema2 = v3.object({
|
|
180
|
-
canonical: v3.boolean(),
|
|
181
|
-
height: v3.number(),
|
|
182
|
-
hash: v3.string(),
|
|
183
|
-
block_time: v3.number(),
|
|
184
|
-
block_time_iso: v3.string(),
|
|
185
|
-
index_block_hash: v3.string(),
|
|
186
|
-
parent_block_hash: v3.string(),
|
|
187
|
-
parent_index_block_hash: v3.string(),
|
|
188
|
-
burn_block_time: v3.number(),
|
|
189
|
-
burn_block_time_iso: v3.string(),
|
|
190
|
-
burn_block_hash: v3.string(),
|
|
191
|
-
burn_block_height: v3.number(),
|
|
192
|
-
miner_txid: v3.string(),
|
|
193
|
-
tx_count: v3.number(),
|
|
194
|
-
execution_cost_read_count: v3.number(),
|
|
195
|
-
execution_cost_read_length: v3.number(),
|
|
196
|
-
execution_cost_runtime: v3.number(),
|
|
197
|
-
execution_cost_write_count: v3.number(),
|
|
198
|
-
execution_cost_write_length: v3.number()
|
|
199
|
-
});
|
|
200
178
|
async function getBlock(opts) {
|
|
201
179
|
const init = {};
|
|
202
180
|
if (opts.apiKeyConfig) {
|
|
@@ -204,10 +182,8 @@ async function getBlock(opts) {
|
|
|
204
182
|
[opts.apiKeyConfig.header]: opts.apiKeyConfig.key
|
|
205
183
|
};
|
|
206
184
|
}
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
init
|
|
210
|
-
);
|
|
185
|
+
const endpoint = `${opts.baseUrl}/extended/v2/blocks/${opts.heightOrHash}`;
|
|
186
|
+
const res = await fetch(endpoint, init);
|
|
211
187
|
if (!res.ok) {
|
|
212
188
|
return error({
|
|
213
189
|
name: "FetchBlockError",
|
|
@@ -227,15 +203,7 @@ async function getBlock(opts) {
|
|
|
227
203
|
data: jsonError
|
|
228
204
|
});
|
|
229
205
|
}
|
|
230
|
-
|
|
231
|
-
if (!validationResult.success) {
|
|
232
|
-
return error({
|
|
233
|
-
name: "ValidateDataError",
|
|
234
|
-
message: "Failed to validate data.",
|
|
235
|
-
data: validationResult
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
return success(validationResult.output);
|
|
206
|
+
return success(data);
|
|
239
207
|
}
|
|
240
208
|
|
|
241
209
|
// src/stacks-api/blocks/index.ts
|
|
@@ -243,6 +211,44 @@ var blocks = {
|
|
|
243
211
|
getBlock
|
|
244
212
|
};
|
|
245
213
|
|
|
214
|
+
// src/stacks-api/burn-blocks/get-burn-block.ts
|
|
215
|
+
async function getBurnBlock(args) {
|
|
216
|
+
const init = {};
|
|
217
|
+
if (args.apiKeyConfig) {
|
|
218
|
+
init.headers = {
|
|
219
|
+
[args.apiKeyConfig.header]: args.apiKeyConfig.key
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const endpoint = `${args.baseUrl}/extended/v2/burn-blocks/${args.heightOrHash}`;
|
|
223
|
+
const res = await fetch(endpoint, init);
|
|
224
|
+
if (!res.ok) {
|
|
225
|
+
return error({
|
|
226
|
+
name: "BurnBlockGetError",
|
|
227
|
+
message: "Failed to get burn block.",
|
|
228
|
+
data: {
|
|
229
|
+
heightOrHash: args.heightOrHash,
|
|
230
|
+
status: res.status,
|
|
231
|
+
statusText: res.statusText,
|
|
232
|
+
body: await safeExtractResponseBody(res)
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
const [jsonParseError, data] = await safePromise(res.json());
|
|
237
|
+
if (jsonParseError) {
|
|
238
|
+
return error({
|
|
239
|
+
name: "ParseBodyError",
|
|
240
|
+
message: "Failed to parse response body as JSON.",
|
|
241
|
+
data: jsonParseError
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
return success(data);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// src/stacks-api/burn-blocks/index.ts
|
|
248
|
+
var burnBlocks = {
|
|
249
|
+
getBurnBlock
|
|
250
|
+
};
|
|
251
|
+
|
|
246
252
|
// src/stacks-api/faucets/stx.ts
|
|
247
253
|
async function stx(opts) {
|
|
248
254
|
const search = new URLSearchParams();
|
|
@@ -285,22 +291,22 @@ var faucets = {
|
|
|
285
291
|
};
|
|
286
292
|
|
|
287
293
|
// src/stacks-api/info/core-api.ts
|
|
288
|
-
import * as
|
|
289
|
-
var CoreApiResponseSchema =
|
|
290
|
-
peer_version:
|
|
291
|
-
pox_consensus:
|
|
292
|
-
burn_block_height:
|
|
293
|
-
stable_pox_consensus:
|
|
294
|
-
stable_burn_block_height:
|
|
295
|
-
server_version:
|
|
296
|
-
network_id:
|
|
297
|
-
parent_network_id:
|
|
298
|
-
stacks_tip_height:
|
|
299
|
-
stacks_tip:
|
|
300
|
-
stacks_tip_consensus_hash:
|
|
301
|
-
unanchored_tip:
|
|
302
|
-
unanchored_seq:
|
|
303
|
-
exit_at_block_height:
|
|
294
|
+
import * as v3 from "valibot";
|
|
295
|
+
var CoreApiResponseSchema = v3.object({
|
|
296
|
+
peer_version: v3.number(),
|
|
297
|
+
pox_consensus: v3.string(),
|
|
298
|
+
burn_block_height: v3.number(),
|
|
299
|
+
stable_pox_consensus: v3.string(),
|
|
300
|
+
stable_burn_block_height: v3.number(),
|
|
301
|
+
server_version: v3.string(),
|
|
302
|
+
network_id: v3.number(),
|
|
303
|
+
parent_network_id: v3.number(),
|
|
304
|
+
stacks_tip_height: v3.number(),
|
|
305
|
+
stacks_tip: v3.string(),
|
|
306
|
+
stacks_tip_consensus_hash: v3.string(),
|
|
307
|
+
unanchored_tip: v3.nullable(v3.string()),
|
|
308
|
+
unanchored_seq: v3.nullable(v3.string()),
|
|
309
|
+
exit_at_block_height: v3.nullable(v3.number())
|
|
304
310
|
});
|
|
305
311
|
async function coreApi(apiOpts) {
|
|
306
312
|
const init = {};
|
|
@@ -329,7 +335,7 @@ async function coreApi(apiOpts) {
|
|
|
329
335
|
data: parseBodyError
|
|
330
336
|
});
|
|
331
337
|
}
|
|
332
|
-
const validationResult =
|
|
338
|
+
const validationResult = v3.safeParse(CoreApiResponseSchema, data);
|
|
333
339
|
if (!validationResult.success) {
|
|
334
340
|
return error({
|
|
335
341
|
name: "ValidateDataError",
|
|
@@ -346,14 +352,14 @@ var info = {
|
|
|
346
352
|
};
|
|
347
353
|
|
|
348
354
|
// src/stacks-api/proof-of-transfer/cycle.ts
|
|
349
|
-
import * as
|
|
350
|
-
var
|
|
351
|
-
block_height:
|
|
352
|
-
index_block_hash:
|
|
353
|
-
cycle_number:
|
|
354
|
-
total_weight:
|
|
355
|
-
total_stacked_amount:
|
|
356
|
-
total_signers:
|
|
355
|
+
import * as v4 from "valibot";
|
|
356
|
+
var responseSchema2 = v4.object({
|
|
357
|
+
block_height: v4.number(),
|
|
358
|
+
index_block_hash: v4.string(),
|
|
359
|
+
cycle_number: v4.number(),
|
|
360
|
+
total_weight: v4.number(),
|
|
361
|
+
total_stacked_amount: v4.string(),
|
|
362
|
+
total_signers: v4.number()
|
|
357
363
|
});
|
|
358
364
|
async function cycle(opts) {
|
|
359
365
|
const init = {};
|
|
@@ -384,7 +390,7 @@ async function cycle(opts) {
|
|
|
384
390
|
data: jsonError
|
|
385
391
|
});
|
|
386
392
|
}
|
|
387
|
-
const validationResult =
|
|
393
|
+
const validationResult = v4.safeParse(responseSchema2, data);
|
|
388
394
|
if (!validationResult.success) {
|
|
389
395
|
return error({
|
|
390
396
|
name: "ValidateDataError",
|
|
@@ -396,17 +402,17 @@ async function cycle(opts) {
|
|
|
396
402
|
}
|
|
397
403
|
|
|
398
404
|
// src/stacks-api/proof-of-transfer/cycles.ts
|
|
399
|
-
import * as
|
|
400
|
-
var cycleInfoSchema =
|
|
401
|
-
block_height:
|
|
402
|
-
index_block_hash:
|
|
403
|
-
cycle_number:
|
|
404
|
-
total_weight:
|
|
405
|
-
total_stacked_amount:
|
|
406
|
-
total_signers:
|
|
405
|
+
import * as v5 from "valibot";
|
|
406
|
+
var cycleInfoSchema = v5.object({
|
|
407
|
+
block_height: v5.number(),
|
|
408
|
+
index_block_hash: v5.string(),
|
|
409
|
+
cycle_number: v5.number(),
|
|
410
|
+
total_weight: v5.number(),
|
|
411
|
+
total_stacked_amount: v5.string(),
|
|
412
|
+
total_signers: v5.number()
|
|
407
413
|
});
|
|
408
|
-
var resultsSchema =
|
|
409
|
-
var cyclesResponseSchema =
|
|
414
|
+
var resultsSchema = v5.array(cycleInfoSchema);
|
|
415
|
+
var cyclesResponseSchema = v5.object({
|
|
410
416
|
...baseListResponseSchema.entries,
|
|
411
417
|
results: resultsSchema
|
|
412
418
|
});
|
|
@@ -442,7 +448,7 @@ async function cycles(args) {
|
|
|
442
448
|
data: jsonError
|
|
443
449
|
});
|
|
444
450
|
}
|
|
445
|
-
const validationResult =
|
|
451
|
+
const validationResult = v5.safeParse(cyclesResponseSchema, data);
|
|
446
452
|
if (!validationResult.success) {
|
|
447
453
|
return error({
|
|
448
454
|
name: "ValidateDataError",
|
|
@@ -454,16 +460,16 @@ async function cycles(args) {
|
|
|
454
460
|
}
|
|
455
461
|
|
|
456
462
|
// src/stacks-api/proof-of-transfer/signer-in-cycle.ts
|
|
457
|
-
import * as
|
|
458
|
-
var signerInCycleResponseSchema =
|
|
459
|
-
signing_key:
|
|
460
|
-
signer_address:
|
|
461
|
-
weight:
|
|
462
|
-
stacked_amount:
|
|
463
|
-
weight_percent:
|
|
464
|
-
stacked_amount_percent:
|
|
465
|
-
solo_stacker_count:
|
|
466
|
-
pooled_stacker_count:
|
|
463
|
+
import * as v6 from "valibot";
|
|
464
|
+
var signerInCycleResponseSchema = v6.object({
|
|
465
|
+
signing_key: v6.string(),
|
|
466
|
+
signer_address: v6.string(),
|
|
467
|
+
weight: v6.number(),
|
|
468
|
+
stacked_amount: v6.string(),
|
|
469
|
+
weight_percent: v6.number(),
|
|
470
|
+
stacked_amount_percent: v6.number(),
|
|
471
|
+
solo_stacker_count: v6.number(),
|
|
472
|
+
pooled_stacker_count: v6.number()
|
|
467
473
|
});
|
|
468
474
|
async function signerInCycle(args) {
|
|
469
475
|
const init = {};
|
|
@@ -499,7 +505,7 @@ async function signerInCycle(args) {
|
|
|
499
505
|
}
|
|
500
506
|
});
|
|
501
507
|
}
|
|
502
|
-
const validationResult =
|
|
508
|
+
const validationResult = v6.safeParse(signerInCycleResponseSchema, data);
|
|
503
509
|
if (!validationResult.success) {
|
|
504
510
|
return error({
|
|
505
511
|
name: "ValidateDataError",
|
|
@@ -511,19 +517,19 @@ async function signerInCycle(args) {
|
|
|
511
517
|
}
|
|
512
518
|
|
|
513
519
|
// src/stacks-api/proof-of-transfer/signers-in-cycle.ts
|
|
514
|
-
import * as
|
|
515
|
-
var signerSchema =
|
|
516
|
-
signing_key:
|
|
517
|
-
signer_address:
|
|
518
|
-
weight:
|
|
519
|
-
stacked_amount:
|
|
520
|
-
weight_percent:
|
|
521
|
-
stacked_amount_percent:
|
|
522
|
-
pooled_stacker_count:
|
|
523
|
-
solo_stacker_count:
|
|
520
|
+
import * as v7 from "valibot";
|
|
521
|
+
var signerSchema = v7.object({
|
|
522
|
+
signing_key: v7.string(),
|
|
523
|
+
signer_address: v7.string(),
|
|
524
|
+
weight: v7.number(),
|
|
525
|
+
stacked_amount: v7.string(),
|
|
526
|
+
weight_percent: v7.number(),
|
|
527
|
+
stacked_amount_percent: v7.number(),
|
|
528
|
+
pooled_stacker_count: v7.number(),
|
|
529
|
+
solo_stacker_count: v7.number()
|
|
524
530
|
});
|
|
525
|
-
var resultsSchema2 =
|
|
526
|
-
var signersResponseSchema =
|
|
531
|
+
var resultsSchema2 = v7.array(signerSchema);
|
|
532
|
+
var signersResponseSchema = v7.object({
|
|
527
533
|
...baseListResponseSchema.entries,
|
|
528
534
|
results: resultsSchema2
|
|
529
535
|
});
|
|
@@ -562,7 +568,7 @@ async function signersInCycle(args) {
|
|
|
562
568
|
}
|
|
563
569
|
});
|
|
564
570
|
}
|
|
565
|
-
const validationResult =
|
|
571
|
+
const validationResult = v7.safeParse(signersResponseSchema, data);
|
|
566
572
|
if (!validationResult.success) {
|
|
567
573
|
return error({
|
|
568
574
|
name: "ValidateDataError",
|
|
@@ -894,6 +900,7 @@ var mempool = {
|
|
|
894
900
|
var stacksApi = {
|
|
895
901
|
accounts,
|
|
896
902
|
blocks,
|
|
903
|
+
burnBlocks,
|
|
897
904
|
faucets,
|
|
898
905
|
info,
|
|
899
906
|
mempool,
|
|
@@ -903,16 +910,16 @@ var stacksApi = {
|
|
|
903
910
|
};
|
|
904
911
|
|
|
905
912
|
// src/stacks-rpc-api/smart-contracts/map-entry.ts
|
|
906
|
-
import * as
|
|
907
|
-
var mapEntryResponseSchema =
|
|
913
|
+
import * as v8 from "valibot";
|
|
914
|
+
var mapEntryResponseSchema = v8.object({
|
|
908
915
|
/**
|
|
909
916
|
* Hex-encoded string of clarity value. It is always an optional tuple.
|
|
910
917
|
*/
|
|
911
|
-
data:
|
|
918
|
+
data: v8.string(),
|
|
912
919
|
/**
|
|
913
920
|
* Hex-encoded string of the MARF proof for the data
|
|
914
921
|
*/
|
|
915
|
-
proof:
|
|
922
|
+
proof: v8.optional(v8.string())
|
|
916
923
|
});
|
|
917
924
|
async function mapEntry(args) {
|
|
918
925
|
const search = new URLSearchParams();
|
|
@@ -952,7 +959,7 @@ async function mapEntry(args) {
|
|
|
952
959
|
data: jsonError
|
|
953
960
|
});
|
|
954
961
|
}
|
|
955
|
-
const validationResult =
|
|
962
|
+
const validationResult = v8.safeParse(mapEntryResponseSchema, data);
|
|
956
963
|
if (!validationResult.success) {
|
|
957
964
|
return error({
|
|
958
965
|
name: "ValidateDataError",
|