@secretkeylabs/stacks-tools 0.8.0-44889a2 → 0.8.0-caef9a1

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 CHANGED
@@ -223,6 +223,28 @@ var baseListResponseSchema = v2.object({
223
223
  });
224
224
 
225
225
  // src/stacks-api/blocks/get-block.ts
226
+ var v3 = __toESM(require("valibot"), 1);
227
+ var responseSchema2 = v3.object({
228
+ canonical: v3.boolean(),
229
+ height: v3.number(),
230
+ hash: v3.string(),
231
+ block_time: v3.number(),
232
+ block_time_iso: v3.string(),
233
+ index_block_hash: v3.string(),
234
+ parent_block_hash: v3.string(),
235
+ parent_index_block_hash: v3.string(),
236
+ burn_block_time: v3.number(),
237
+ burn_block_time_iso: v3.string(),
238
+ burn_block_hash: v3.string(),
239
+ burn_block_height: v3.number(),
240
+ miner_txid: v3.string(),
241
+ tx_count: v3.number(),
242
+ execution_cost_read_count: v3.number(),
243
+ execution_cost_read_length: v3.number(),
244
+ execution_cost_runtime: v3.number(),
245
+ execution_cost_write_count: v3.number(),
246
+ execution_cost_write_length: v3.number()
247
+ });
226
248
  async function getBlock(opts) {
227
249
  const init = {};
228
250
  if (opts.apiKeyConfig) {
@@ -230,8 +252,10 @@ async function getBlock(opts) {
230
252
  [opts.apiKeyConfig.header]: opts.apiKeyConfig.key
231
253
  };
232
254
  }
233
- const endpoint = `${opts.baseUrl}/extended/v2/blocks/${opts.heightOrHash}`;
234
- const res = await fetch(endpoint, init);
255
+ const res = await fetch(
256
+ `${opts.baseUrl}/extended/v2/blocks/${opts.heightOrHash}`,
257
+ init
258
+ );
235
259
  if (!res.ok) {
236
260
  return error({
237
261
  name: "FetchBlockError",
@@ -251,50 +275,20 @@ async function getBlock(opts) {
251
275
  data: jsonError
252
276
  });
253
277
  }
254
- return success(data);
255
- }
256
-
257
- // src/stacks-api/blocks/index.ts
258
- var blocks = {
259
- getBlock
260
- };
261
-
262
- // src/stacks-api/burn-blocks/get-burn-block.ts
263
- async function getBurnBlock(args) {
264
- const init = {};
265
- if (args.apiKeyConfig) {
266
- init.headers = {
267
- [args.apiKeyConfig.header]: args.apiKeyConfig.key
268
- };
269
- }
270
- const endpoint = `${args.baseUrl}/extended/v2/burn-blocks/${args.heightOrHash}`;
271
- const res = await fetch(endpoint, init);
272
- if (!res.ok) {
273
- return error({
274
- name: "BurnBlockGetError",
275
- message: "Failed to get burn block.",
276
- data: {
277
- heightOrHash: args.heightOrHash,
278
- status: res.status,
279
- statusText: res.statusText,
280
- body: await safeExtractResponseBody(res)
281
- }
282
- });
283
- }
284
- const [jsonParseError, data] = await safePromise(res.json());
285
- if (jsonParseError) {
278
+ const validationResult = v3.safeParse(responseSchema2, data);
279
+ if (!validationResult.success) {
286
280
  return error({
287
- name: "ParseBodyError",
288
- message: "Failed to parse response body as JSON.",
289
- data: jsonParseError
281
+ name: "ValidateDataError",
282
+ message: "Failed to validate data.",
283
+ data: validationResult
290
284
  });
291
285
  }
292
- return success(data);
286
+ return success(validationResult.output);
293
287
  }
294
288
 
295
- // src/stacks-api/burn-blocks/index.ts
296
- var burnBlocks = {
297
- getBurnBlock
289
+ // src/stacks-api/blocks/index.ts
290
+ var blocks = {
291
+ getBlock
298
292
  };
299
293
 
300
294
  // src/stacks-api/faucets/stx.ts
@@ -339,22 +333,22 @@ var faucets = {
339
333
  };
340
334
 
341
335
  // src/stacks-api/info/core-api.ts
342
- var v3 = __toESM(require("valibot"), 1);
343
- var CoreApiResponseSchema = v3.object({
344
- peer_version: v3.number(),
345
- pox_consensus: v3.string(),
346
- burn_block_height: v3.number(),
347
- stable_pox_consensus: v3.string(),
348
- stable_burn_block_height: v3.number(),
349
- server_version: v3.string(),
350
- network_id: v3.number(),
351
- parent_network_id: v3.number(),
352
- stacks_tip_height: v3.number(),
353
- stacks_tip: v3.string(),
354
- stacks_tip_consensus_hash: v3.string(),
355
- unanchored_tip: v3.nullable(v3.string()),
356
- unanchored_seq: v3.nullable(v3.string()),
357
- exit_at_block_height: v3.nullable(v3.number())
336
+ var v4 = __toESM(require("valibot"), 1);
337
+ var CoreApiResponseSchema = v4.object({
338
+ peer_version: v4.number(),
339
+ pox_consensus: v4.string(),
340
+ burn_block_height: v4.number(),
341
+ stable_pox_consensus: v4.string(),
342
+ stable_burn_block_height: v4.number(),
343
+ server_version: v4.string(),
344
+ network_id: v4.number(),
345
+ parent_network_id: v4.number(),
346
+ stacks_tip_height: v4.number(),
347
+ stacks_tip: v4.string(),
348
+ stacks_tip_consensus_hash: v4.string(),
349
+ unanchored_tip: v4.nullable(v4.string()),
350
+ unanchored_seq: v4.nullable(v4.string()),
351
+ exit_at_block_height: v4.nullable(v4.number())
358
352
  });
359
353
  async function coreApi(apiOpts) {
360
354
  const init = {};
@@ -383,7 +377,7 @@ async function coreApi(apiOpts) {
383
377
  data: parseBodyError
384
378
  });
385
379
  }
386
- const validationResult = v3.safeParse(CoreApiResponseSchema, data);
380
+ const validationResult = v4.safeParse(CoreApiResponseSchema, data);
387
381
  if (!validationResult.success) {
388
382
  return error({
389
383
  name: "ValidateDataError",
@@ -400,14 +394,14 @@ var info = {
400
394
  };
401
395
 
402
396
  // src/stacks-api/proof-of-transfer/cycle.ts
403
- var v4 = __toESM(require("valibot"), 1);
404
- var responseSchema2 = v4.object({
405
- block_height: v4.number(),
406
- index_block_hash: v4.string(),
407
- cycle_number: v4.number(),
408
- total_weight: v4.number(),
409
- total_stacked_amount: v4.string(),
410
- total_signers: v4.number()
397
+ var v5 = __toESM(require("valibot"), 1);
398
+ var responseSchema3 = v5.object({
399
+ block_height: v5.number(),
400
+ index_block_hash: v5.string(),
401
+ cycle_number: v5.number(),
402
+ total_weight: v5.number(),
403
+ total_stacked_amount: v5.string(),
404
+ total_signers: v5.number()
411
405
  });
412
406
  async function cycle(opts) {
413
407
  const init = {};
@@ -438,7 +432,7 @@ async function cycle(opts) {
438
432
  data: jsonError
439
433
  });
440
434
  }
441
- const validationResult = v4.safeParse(responseSchema2, data);
435
+ const validationResult = v5.safeParse(responseSchema3, data);
442
436
  if (!validationResult.success) {
443
437
  return error({
444
438
  name: "ValidateDataError",
@@ -450,17 +444,17 @@ async function cycle(opts) {
450
444
  }
451
445
 
452
446
  // src/stacks-api/proof-of-transfer/cycles.ts
453
- var v5 = __toESM(require("valibot"), 1);
454
- var cycleInfoSchema = v5.object({
455
- block_height: v5.number(),
456
- index_block_hash: v5.string(),
457
- cycle_number: v5.number(),
458
- total_weight: v5.number(),
459
- total_stacked_amount: v5.string(),
460
- total_signers: v5.number()
447
+ var v6 = __toESM(require("valibot"), 1);
448
+ var cycleInfoSchema = v6.object({
449
+ block_height: v6.number(),
450
+ index_block_hash: v6.string(),
451
+ cycle_number: v6.number(),
452
+ total_weight: v6.number(),
453
+ total_stacked_amount: v6.string(),
454
+ total_signers: v6.number()
461
455
  });
462
- var resultsSchema = v5.array(cycleInfoSchema);
463
- var cyclesResponseSchema = v5.object({
456
+ var resultsSchema = v6.array(cycleInfoSchema);
457
+ var cyclesResponseSchema = v6.object({
464
458
  ...baseListResponseSchema.entries,
465
459
  results: resultsSchema
466
460
  });
@@ -496,7 +490,7 @@ async function cycles(args) {
496
490
  data: jsonError
497
491
  });
498
492
  }
499
- const validationResult = v5.safeParse(cyclesResponseSchema, data);
493
+ const validationResult = v6.safeParse(cyclesResponseSchema, data);
500
494
  if (!validationResult.success) {
501
495
  return error({
502
496
  name: "ValidateDataError",
@@ -508,16 +502,16 @@ async function cycles(args) {
508
502
  }
509
503
 
510
504
  // src/stacks-api/proof-of-transfer/signer-in-cycle.ts
511
- var v6 = __toESM(require("valibot"), 1);
512
- var signerInCycleResponseSchema = v6.object({
513
- signing_key: v6.string(),
514
- signer_address: v6.string(),
515
- weight: v6.number(),
516
- stacked_amount: v6.string(),
517
- weight_percent: v6.number(),
518
- stacked_amount_percent: v6.number(),
519
- solo_stacker_count: v6.number(),
520
- pooled_stacker_count: v6.number()
505
+ var v7 = __toESM(require("valibot"), 1);
506
+ var signerInCycleResponseSchema = v7.object({
507
+ signing_key: v7.string(),
508
+ signer_address: v7.string(),
509
+ weight: v7.number(),
510
+ stacked_amount: v7.string(),
511
+ weight_percent: v7.number(),
512
+ stacked_amount_percent: v7.number(),
513
+ solo_stacker_count: v7.number(),
514
+ pooled_stacker_count: v7.number()
521
515
  });
522
516
  async function signerInCycle(args) {
523
517
  const init = {};
@@ -553,7 +547,7 @@ async function signerInCycle(args) {
553
547
  }
554
548
  });
555
549
  }
556
- const validationResult = v6.safeParse(signerInCycleResponseSchema, data);
550
+ const validationResult = v7.safeParse(signerInCycleResponseSchema, data);
557
551
  if (!validationResult.success) {
558
552
  return error({
559
553
  name: "ValidateDataError",
@@ -565,19 +559,19 @@ async function signerInCycle(args) {
565
559
  }
566
560
 
567
561
  // src/stacks-api/proof-of-transfer/signers-in-cycle.ts
568
- var v7 = __toESM(require("valibot"), 1);
569
- var signerSchema = v7.object({
570
- signing_key: v7.string(),
571
- signer_address: v7.string(),
572
- weight: v7.number(),
573
- stacked_amount: v7.string(),
574
- weight_percent: v7.number(),
575
- stacked_amount_percent: v7.number(),
576
- pooled_stacker_count: v7.number(),
577
- solo_stacker_count: v7.number()
562
+ var v8 = __toESM(require("valibot"), 1);
563
+ var signerSchema = v8.object({
564
+ signing_key: v8.string(),
565
+ signer_address: v8.string(),
566
+ weight: v8.number(),
567
+ stacked_amount: v8.string(),
568
+ weight_percent: v8.number(),
569
+ stacked_amount_percent: v8.number(),
570
+ pooled_stacker_count: v8.number(),
571
+ solo_stacker_count: v8.number()
578
572
  });
579
- var resultsSchema2 = v7.array(signerSchema);
580
- var signersResponseSchema = v7.object({
573
+ var resultsSchema2 = v8.array(signerSchema);
574
+ var signersResponseSchema = v8.object({
581
575
  ...baseListResponseSchema.entries,
582
576
  results: resultsSchema2
583
577
  });
@@ -616,7 +610,7 @@ async function signersInCycle(args) {
616
610
  }
617
611
  });
618
612
  }
619
- const validationResult = v7.safeParse(signersResponseSchema, data);
613
+ const validationResult = v8.safeParse(signersResponseSchema, data);
620
614
  if (!validationResult.success) {
621
615
  return error({
622
616
  name: "ValidateDataError",
@@ -948,7 +942,6 @@ var mempool = {
948
942
  var stacksApi = {
949
943
  accounts,
950
944
  blocks,
951
- burnBlocks,
952
945
  faucets,
953
946
  info,
954
947
  mempool,
@@ -958,16 +951,16 @@ var stacksApi = {
958
951
  };
959
952
 
960
953
  // src/stacks-rpc-api/smart-contracts/map-entry.ts
961
- var v8 = __toESM(require("valibot"), 1);
962
- var mapEntryResponseSchema = v8.object({
954
+ var v9 = __toESM(require("valibot"), 1);
955
+ var mapEntryResponseSchema = v9.object({
963
956
  /**
964
957
  * Hex-encoded string of clarity value. It is always an optional tuple.
965
958
  */
966
- data: v8.string(),
959
+ data: v9.string(),
967
960
  /**
968
961
  * Hex-encoded string of the MARF proof for the data
969
962
  */
970
- proof: v8.optional(v8.string())
963
+ proof: v9.optional(v9.string())
971
964
  });
972
965
  async function mapEntry(args) {
973
966
  const search = new URLSearchParams();
@@ -1007,7 +1000,7 @@ async function mapEntry(args) {
1007
1000
  data: jsonError
1008
1001
  });
1009
1002
  }
1010
- const validationResult = v8.safeParse(mapEntryResponseSchema, data);
1003
+ const validationResult = v9.safeParse(mapEntryResponseSchema, data);
1011
1004
  if (!validationResult.success) {
1012
1005
  return error({
1013
1006
  name: "ValidateDataError",
@@ -1138,8 +1131,51 @@ var pox = {
1138
1131
  poxDetails
1139
1132
  };
1140
1133
 
1134
+ // src/stacks-rpc-api/accounts/info.ts
1135
+ var info2 = async (args) => {
1136
+ const search = new URLSearchParams();
1137
+ if (args.proof === 0) search.append("proof", "0");
1138
+ if (args.tip) search.append("tip", args.tip);
1139
+ const init = {};
1140
+ if (args.apiKeyConfig) {
1141
+ init.headers = {
1142
+ [args.apiKeyConfig.header]: args.apiKeyConfig.key
1143
+ };
1144
+ }
1145
+ init.method = "GET";
1146
+ const endpoint = `${args.baseUrl}/v2/accounts/${args.principal}?${search}`;
1147
+ const res = await fetch(endpoint, init);
1148
+ if (!res.ok)
1149
+ return error({
1150
+ name: "InfoFetchError",
1151
+ message: "Failed to fetch info.",
1152
+ data: {
1153
+ init,
1154
+ status: res.status,
1155
+ statusText: res.statusText,
1156
+ endpoint,
1157
+ body: await safeExtractResponseBody(res)
1158
+ }
1159
+ });
1160
+ const [jsonError, data] = await safePromise(res.json());
1161
+ if (jsonError) {
1162
+ return error({
1163
+ name: "ParseBodyError",
1164
+ message: "Failed to parse response body as JSON.",
1165
+ data: jsonError
1166
+ });
1167
+ }
1168
+ return success(data);
1169
+ };
1170
+
1171
+ // src/stacks-rpc-api/accounts/index.ts
1172
+ var accounts2 = {
1173
+ info: info2
1174
+ };
1175
+
1141
1176
  // src/stacks-rpc-api/index.ts
1142
1177
  var stacksRpcApi = {
1178
+ accounts: accounts2,
1143
1179
  pox,
1144
1180
  smartContracts
1145
1181
  };