@secretkeylabs/stacks-tools 0.1.0-77af370

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +17 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/pox4-api/burn-height-to-reward-cycle.d.ts +7 -0
  6. package/dist/pox4-api/burn-height-to-reward-cycle.js +6 -0
  7. package/dist/pox4-api/burn-height-to-reward-cycle.js.map +1 -0
  8. package/dist/pox4-api/current-pox-reward-cycle.d.ts +1 -0
  9. package/dist/pox4-api/current-pox-reward-cycle.js +3 -0
  10. package/dist/pox4-api/current-pox-reward-cycle.js.map +1 -0
  11. package/dist/pox4-api/get-stacker-info.d.ts +1 -0
  12. package/dist/pox4-api/get-stacker-info.js +3 -0
  13. package/dist/pox4-api/get-stacker-info.js.map +1 -0
  14. package/dist/pox4-api/reward-cycle-to-burn-height.d.ts +1 -0
  15. package/dist/pox4-api/reward-cycle-to-burn-height.js +3 -0
  16. package/dist/pox4-api/reward-cycle-to-burn-height.js.map +1 -0
  17. package/dist/queries/get-signer-total-locked.d.ts +10 -0
  18. package/dist/queries/get-signer-total-locked.js +49 -0
  19. package/dist/queries/get-signer-total-locked.js.map +1 -0
  20. package/dist/queries/index.d.ts +4 -0
  21. package/dist/queries/index.js +5 -0
  22. package/dist/queries/index.js.map +1 -0
  23. package/dist/stacks-api/accounts/balances.d.ts +34 -0
  24. package/dist/stacks-api/accounts/balances.js +70 -0
  25. package/dist/stacks-api/accounts/balances.js.map +1 -0
  26. package/dist/stacks-api/accounts/index.d.ts +4 -0
  27. package/dist/stacks-api/accounts/index.js +5 -0
  28. package/dist/stacks-api/accounts/index.js.map +1 -0
  29. package/dist/stacks-api/blocks/get-block.d.ts +29 -0
  30. package/dist/stacks-api/blocks/get-block.js +62 -0
  31. package/dist/stacks-api/blocks/get-block.js.map +1 -0
  32. package/dist/stacks-api/blocks/index.d.ts +4 -0
  33. package/dist/stacks-api/blocks/index.js +5 -0
  34. package/dist/stacks-api/blocks/index.js.map +1 -0
  35. package/dist/stacks-api/index.d.ts +28 -0
  36. package/dist/stacks-api/index.js +17 -0
  37. package/dist/stacks-api/index.js.map +1 -0
  38. package/dist/stacks-api/info/core-api.d.ts +21 -0
  39. package/dist/stacks-api/info/core-api.js +55 -0
  40. package/dist/stacks-api/info/core-api.js.map +1 -0
  41. package/dist/stacks-api/info/index.d.ts +6 -0
  42. package/dist/stacks-api/info/index.js +7 -0
  43. package/dist/stacks-api/info/index.js.map +1 -0
  44. package/dist/stacks-api/info/pox-details.d.ts +59 -0
  45. package/dist/stacks-api/info/pox-details.js +92 -0
  46. package/dist/stacks-api/info/pox-details.js.map +1 -0
  47. package/dist/stacks-api/proof-of-transfer/cycle.d.ts +16 -0
  48. package/dist/stacks-api/proof-of-transfer/cycle.js +50 -0
  49. package/dist/stacks-api/proof-of-transfer/cycle.js.map +1 -0
  50. package/dist/stacks-api/proof-of-transfer/cycles.d.ts +37 -0
  51. package/dist/stacks-api/proof-of-transfer/cycles.js +61 -0
  52. package/dist/stacks-api/proof-of-transfer/cycles.js.map +1 -0
  53. package/dist/stacks-api/proof-of-transfer/index.d.ts +10 -0
  54. package/dist/stacks-api/proof-of-transfer/index.js +11 -0
  55. package/dist/stacks-api/proof-of-transfer/index.js.map +1 -0
  56. package/dist/stacks-api/proof-of-transfer/signers-in-cycle.d.ts +45 -0
  57. package/dist/stacks-api/proof-of-transfer/signers-in-cycle.js +66 -0
  58. package/dist/stacks-api/proof-of-transfer/signers-in-cycle.js.map +1 -0
  59. package/dist/stacks-api/proof-of-transfer/stackers-for-signer-in-cycle.d.ts +34 -0
  60. package/dist/stacks-api/proof-of-transfer/stackers-for-signer-in-cycle.js +59 -0
  61. package/dist/stacks-api/proof-of-transfer/stackers-for-signer-in-cycle.js.map +1 -0
  62. package/dist/stacks-api/smart-contracts/index.d.ts +4 -0
  63. package/dist/stacks-api/smart-contracts/index.js +5 -0
  64. package/dist/stacks-api/smart-contracts/index.js.map +1 -0
  65. package/dist/stacks-api/smart-contracts/read-only.d.ts +19 -0
  66. package/dist/stacks-api/smart-contracts/read-only.js +50 -0
  67. package/dist/stacks-api/smart-contracts/read-only.js.map +1 -0
  68. package/dist/stacks-api/stacking-pool/index.d.ts +4 -0
  69. package/dist/stacks-api/stacking-pool/index.js +5 -0
  70. package/dist/stacks-api/stacking-pool/index.js.map +1 -0
  71. package/dist/stacks-api/stacking-pool/members.d.ts +34 -0
  72. package/dist/stacks-api/stacking-pool/members.js +64 -0
  73. package/dist/stacks-api/stacking-pool/members.js.map +1 -0
  74. package/dist/stacks-api/transactions/address-transactions.d.ts +487 -0
  75. package/dist/stacks-api/transactions/address-transactions.js +75 -0
  76. package/dist/stacks-api/transactions/address-transactions.js.map +1 -0
  77. package/dist/stacks-api/transactions/get-transaction.d.ts +8 -0
  78. package/dist/stacks-api/transactions/get-transaction.js +42 -0
  79. package/dist/stacks-api/transactions/get-transaction.js.map +1 -0
  80. package/dist/stacks-api/transactions/index.d.ts +6 -0
  81. package/dist/stacks-api/transactions/index.js +7 -0
  82. package/dist/stacks-api/transactions/index.js.map +1 -0
  83. package/dist/stacks-api/transactions/schemas.d.ts +327 -0
  84. package/dist/stacks-api/transactions/schemas.js +85 -0
  85. package/dist/stacks-api/transactions/schemas.js.map +1 -0
  86. package/dist/stacks-api/types.d.ts +26 -0
  87. package/dist/stacks-api/types.js +8 -0
  88. package/dist/stacks-api/types.js.map +1 -0
  89. package/dist/utils/call-rate-limited-api.d.ts +8 -0
  90. package/dist/utils/call-rate-limited-api.js +28 -0
  91. package/dist/utils/call-rate-limited-api.js.map +1 -0
  92. package/dist/utils/safe.d.ts +10 -0
  93. package/dist/utils/safe.js +31 -0
  94. package/dist/utils/safe.js.map +1 -0
  95. package/package.json +30 -0
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # stacks-tools
2
+
3
+ A collection of methods for calling the Stacks API and managing Stacks pools.
4
+
5
+ ## Quickstart
6
+
7
+ Install dependencies with
8
+
9
+ ```shell
10
+ bun install
11
+ ```
12
+
13
+ and build the package with
14
+
15
+ ```shell
16
+ bun run build
17
+ ```
@@ -0,0 +1,2 @@
1
+ export { stacksApi } from "./stacks-api/index.js";
2
+ export { queries } from "./queries/index.js";
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { stacksApi } from "./stacks-api/index.js";
2
+ export { queries } from "./queries/index.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ApiRequestOptions } from "../stacks-api/types.js";
2
+ import { type Result } from "../utils/safe.js";
3
+ type Args = {
4
+ burnHeight: number;
5
+ } & ApiRequestOptions;
6
+ export declare function burnHeightToRewardCycle(_args: Args): Promise<Result<number>>;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ import { success } from "../utils/safe.js";
2
+ export async function burnHeightToRewardCycle(_args) {
3
+ // TODO
4
+ return success(0);
5
+ }
6
+ //# sourceMappingURL=burn-height-to-reward-cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"burn-height-to-reward-cycle.js","sourceRoot":"","sources":["../../src/pox4-api/burn-height-to-reward-cycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAW;IAEX,OAAO;IACP,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // TODO
3
+ //# sourceMappingURL=current-pox-reward-cycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-pox-reward-cycle.js","sourceRoot":"","sources":["../../src/pox4-api/current-pox-reward-cycle.ts"],"names":[],"mappings":";AAAA,OAAO"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // TODO
3
+ //# sourceMappingURL=get-stacker-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-stacker-info.js","sourceRoot":"","sources":["../../src/pox4-api/get-stacker-info.ts"],"names":[],"mappings":";AAAA,OAAO"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // TODO
3
+ //# sourceMappingURL=reward-cycle-to-burn-height.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reward-cycle-to-burn-height.js","sourceRoot":"","sources":["../../src/pox4-api/reward-cycle-to-burn-height.ts"],"names":[],"mappings":";AAAA,OAAO"}
@@ -0,0 +1,10 @@
1
+ import type { ApiRequestOptions } from "../stacks-api/types.js";
2
+ import { type Result, type SafeError } from "../utils/safe.js";
3
+ export type Args = {
4
+ cycleNumber: number;
5
+ signerAddress: string;
6
+ } & ApiRequestOptions;
7
+ /**
8
+ * Return the total locked amount for a signer in a PoX cycle.
9
+ */
10
+ export declare function getSignerTotalLocked(args: Args): Promise<Result<bigint, SafeError<"SignerNotFound" | string>>>;
@@ -0,0 +1,49 @@
1
+ import { signersInCycle } from "../stacks-api/proof-of-transfer/signers-in-cycle.js";
2
+ import { safeCallRateLimitedApi } from "../utils/call-rate-limited-api.js";
3
+ import { error as safeError, success, } from "../utils/safe.js";
4
+ /**
5
+ * Return the total locked amount for a signer in a PoX cycle.
6
+ */
7
+ export async function getSignerTotalLocked(args) {
8
+ let totalLocked = 0n;
9
+ const { signerAddress, ...rest } = args;
10
+ let hasMore = true;
11
+ let offset = 0;
12
+ let found = false;
13
+ const limit = 200;
14
+ while (hasMore && !found) {
15
+ const [error, data] = await safeCallRateLimitedApi(() => signersInCycle({
16
+ ...rest,
17
+ limit,
18
+ }));
19
+ if (error) {
20
+ return safeError({
21
+ name: "GetSignerTotalLockedError",
22
+ message: "Failed to get signer total locked.",
23
+ data: {
24
+ error,
25
+ },
26
+ });
27
+ }
28
+ for (const signer of data.results) {
29
+ if (signer.signer_address === signerAddress) {
30
+ totalLocked = BigInt(signer.stacked_amount);
31
+ found = true;
32
+ break;
33
+ }
34
+ }
35
+ offset += limit + data.results.length;
36
+ hasMore = offset < data.total;
37
+ }
38
+ if (!found) {
39
+ return safeError({
40
+ name: "SignerNotFound",
41
+ message: "Signer not found.",
42
+ data: {
43
+ signerAddress,
44
+ },
45
+ });
46
+ }
47
+ return success(totalLocked);
48
+ }
49
+ //# sourceMappingURL=get-signer-total-locked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-signer-total-locked.js","sourceRoot":"","sources":["../../src/queries/get-signer-total-locked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EACL,KAAK,IAAI,SAAS,EAClB,OAAO,GAGR,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAU;IAEV,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAExC,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,OAAO,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,CACtD,cAAc,CAAC;YACb,GAAG,IAAI;YACP,KAAK;SACN,CAAC,CACH,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;gBACf,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,oCAAoC;gBAC7C,IAAI,EAAE;oBACJ,KAAK;iBACN;aACF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,cAAc,KAAK,aAAa,EAAE,CAAC;gBAC5C,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC5C,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACtC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,mBAAmB;YAC5B,IAAI,EAAE;gBACJ,aAAa;aACd;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { getSignerTotalLocked } from "./get-signer-total-locked.js";
2
+ export declare const queries: {
3
+ getSignerTotalLocked: typeof getSignerTotalLocked;
4
+ };
@@ -0,0 +1,5 @@
1
+ import { getSignerTotalLocked } from "./get-signer-total-locked.js";
2
+ export const queries = {
3
+ getSignerTotalLocked,
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,oBAAoB;CACrB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type Result, type SafeError } from "../../utils/safe.js";
2
+ import type { ApiRequestOptions } from "../types.js";
3
+ import * as v from "valibot";
4
+ export type Args = {
5
+ principal: string;
6
+ unanchored?: boolean;
7
+ untilBlock?: number;
8
+ } & ApiRequestOptions;
9
+ export declare const responseSchema: v.ObjectSchema<{
10
+ readonly stx: v.ObjectSchema<{
11
+ readonly balance: v.StringSchema<undefined>;
12
+ readonly total_sent: v.StringSchema<undefined>;
13
+ readonly total_received: v.StringSchema<undefined>;
14
+ readonly total_fees_sent: v.StringSchema<undefined>;
15
+ readonly total_miner_rewards_received: v.StringSchema<undefined>;
16
+ readonly lock_tx_id: v.StringSchema<undefined>;
17
+ readonly locked: v.StringSchema<undefined>;
18
+ readonly lock_height: v.NumberSchema<undefined>;
19
+ readonly burnchain_lock_height: v.NumberSchema<undefined>;
20
+ readonly burnchain_unlock_height: v.NumberSchema<undefined>;
21
+ }, undefined>;
22
+ readonly fungible_tokens: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
23
+ readonly balance: v.StringSchema<undefined>;
24
+ readonly total_sent: v.StringSchema<undefined>;
25
+ readonly total_received: v.StringSchema<undefined>;
26
+ }, undefined>, undefined>;
27
+ readonly non_fungible_tokens: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
28
+ readonly count: v.StringSchema<undefined>;
29
+ readonly total_sent: v.StringSchema<undefined>;
30
+ readonly total_received: v.StringSchema<undefined>;
31
+ }, undefined>, undefined>;
32
+ }, undefined>;
33
+ export type Response = v.InferOutput<typeof responseSchema>;
34
+ export declare function balances(opts: Args): Promise<Result<Response, SafeError<"FetchBalancesError" | "ParseBodyError" | "ValidateDataError">>>;
@@ -0,0 +1,70 @@
1
+ import { error, safePromise, success, } from "../../utils/safe.js";
2
+ import * as v from "valibot";
3
+ export const responseSchema = v.object({
4
+ stx: v.object({
5
+ balance: v.string(),
6
+ total_sent: v.string(),
7
+ total_received: v.string(),
8
+ total_fees_sent: v.string(),
9
+ total_miner_rewards_received: v.string(),
10
+ lock_tx_id: v.string(),
11
+ locked: v.string(),
12
+ lock_height: v.number(),
13
+ burnchain_lock_height: v.number(),
14
+ burnchain_unlock_height: v.number(),
15
+ }),
16
+ fungible_tokens: v.record(v.string(), v.object({
17
+ balance: v.string(),
18
+ total_sent: v.string(),
19
+ total_received: v.string(),
20
+ })),
21
+ non_fungible_tokens: v.record(v.string(), v.object({
22
+ count: v.string(),
23
+ total_sent: v.string(),
24
+ total_received: v.string(),
25
+ })),
26
+ });
27
+ export async function balances(opts) {
28
+ const search = new URLSearchParams();
29
+ if (opts.unanchored)
30
+ search.append("unanchored", "true");
31
+ if (opts.untilBlock)
32
+ search.append("until_block", opts.untilBlock.toString());
33
+ const init = {};
34
+ if (opts.apiKeyConfig) {
35
+ init.headers = {
36
+ [opts.apiKeyConfig.header]: opts.apiKeyConfig.key,
37
+ };
38
+ }
39
+ const endpoint = `${opts.baseUrl}/extended/v1/address/${opts.principal}/balances?${search}`;
40
+ const res = await fetch(endpoint, init);
41
+ if (!res.ok) {
42
+ return error({
43
+ name: "FetchBalancesError",
44
+ message: "Failed to fetch balances.",
45
+ data: {
46
+ status: res.status,
47
+ statusText: res.statusText,
48
+ bodyParseResult: await safePromise(res.json()),
49
+ },
50
+ });
51
+ }
52
+ const [jsonError, data] = await safePromise(res.json());
53
+ if (jsonError) {
54
+ return error({
55
+ name: "ParseBodyError",
56
+ message: "Failed to parse response body as JSON.",
57
+ data: jsonError,
58
+ });
59
+ }
60
+ const validationResult = v.safeParse(responseSchema, data);
61
+ if (!validationResult.success) {
62
+ return error({
63
+ name: "ValidateDataError",
64
+ message: "Failed to validate data.",
65
+ data: validationResult,
66
+ });
67
+ }
68
+ return success(validationResult.output);
69
+ }
70
+ //# sourceMappingURL=balances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../src/stacks-api/accounts/balances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { balances } from "./balances.js";
2
+ export declare const accounts: {
3
+ balances: typeof balances;
4
+ };
@@ -0,0 +1,5 @@
1
+ import { balances } from "./balances.js";
2
+ export const accounts = {
3
+ balances,
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stacks-api/accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ;CACT,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { type Result, type SafeError } from "../../utils/safe.js";
2
+ import { type ApiRequestOptions } from "../types.js";
3
+ import * as v from "valibot";
4
+ export type Args = {
5
+ heightOrHash: string | number;
6
+ } & ApiRequestOptions;
7
+ export declare const responseSchema: v.ObjectSchema<{
8
+ readonly canonical: v.BooleanSchema<undefined>;
9
+ readonly height: v.NumberSchema<undefined>;
10
+ readonly hash: v.StringSchema<undefined>;
11
+ readonly block_time: v.NumberSchema<undefined>;
12
+ readonly block_time_iso: v.StringSchema<undefined>;
13
+ readonly index_block_hash: v.StringSchema<undefined>;
14
+ readonly parent_block_hash: v.StringSchema<undefined>;
15
+ readonly parent_index_block_hash: v.StringSchema<undefined>;
16
+ readonly burn_block_time: v.NumberSchema<undefined>;
17
+ readonly burn_block_time_iso: v.StringSchema<undefined>;
18
+ readonly burn_block_hash: v.StringSchema<undefined>;
19
+ readonly burn_block_height: v.NumberSchema<undefined>;
20
+ readonly miner_txid: v.StringSchema<undefined>;
21
+ readonly tx_count: v.NumberSchema<undefined>;
22
+ readonly execution_cost_read_count: v.NumberSchema<undefined>;
23
+ readonly execution_cost_read_length: v.NumberSchema<undefined>;
24
+ readonly execution_cost_runtime: v.NumberSchema<undefined>;
25
+ readonly execution_cost_write_count: v.NumberSchema<undefined>;
26
+ readonly execution_cost_write_length: v.NumberSchema<undefined>;
27
+ }, undefined>;
28
+ export type Response = v.InferOutput<typeof responseSchema>;
29
+ export declare function getBlock(opts: Args): Promise<Result<Response, SafeError<"FetchBlockError" | "ParseBodyError" | "ValidateDataError">>>;
@@ -0,0 +1,62 @@
1
+ import { error, safePromise, success, } from "../../utils/safe.js";
2
+ import {} from "../types.js";
3
+ import * as v from "valibot";
4
+ export const responseSchema = v.object({
5
+ canonical: v.boolean(),
6
+ height: v.number(),
7
+ hash: v.string(),
8
+ block_time: v.number(),
9
+ block_time_iso: v.string(),
10
+ index_block_hash: v.string(),
11
+ parent_block_hash: v.string(),
12
+ parent_index_block_hash: v.string(),
13
+ burn_block_time: v.number(),
14
+ burn_block_time_iso: v.string(),
15
+ burn_block_hash: v.string(),
16
+ burn_block_height: v.number(),
17
+ miner_txid: v.string(),
18
+ tx_count: v.number(),
19
+ execution_cost_read_count: v.number(),
20
+ execution_cost_read_length: v.number(),
21
+ execution_cost_runtime: v.number(),
22
+ execution_cost_write_count: v.number(),
23
+ execution_cost_write_length: v.number(),
24
+ });
25
+ export async function getBlock(opts) {
26
+ const init = {};
27
+ if (opts.apiKeyConfig) {
28
+ init.headers = {
29
+ [opts.apiKeyConfig.header]: opts.apiKeyConfig.key,
30
+ };
31
+ }
32
+ const res = await fetch(`${opts.baseUrl}/extended/v2/blocks/${opts.heightOrHash}`, init);
33
+ if (!res.ok) {
34
+ return error({
35
+ name: "FetchBlockError",
36
+ message: "Failed to fetch block.",
37
+ data: {
38
+ status: res.status,
39
+ statusText: res.statusText,
40
+ bodyParseResult: await safePromise(res.json()),
41
+ },
42
+ });
43
+ }
44
+ const [jsonError, data] = await safePromise(res.json());
45
+ if (jsonError) {
46
+ return error({
47
+ name: "ParseBodyError",
48
+ message: "Failed to parse body.",
49
+ data: jsonError,
50
+ });
51
+ }
52
+ const validationResult = v.safeParse(responseSchema, data);
53
+ if (!validationResult.success) {
54
+ return error({
55
+ name: "ValidateDataError",
56
+ message: "Failed to validate data.",
57
+ data: validationResult,
58
+ });
59
+ }
60
+ return success(validationResult.output);
61
+ }
62
+ //# sourceMappingURL=get-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-block.js","sourceRoot":"","sources":["../../../src/stacks-api/blocks/get-block.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { getBlock } from "./get-block.js";
2
+ export declare const blocks: {
3
+ getBlock: typeof getBlock;
4
+ };
@@ -0,0 +1,5 @@
1
+ import { getBlock } from "./get-block.js";
2
+ export const blocks = {
3
+ getBlock,
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stacks-api/blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ;CACT,CAAC"}
@@ -0,0 +1,28 @@
1
+ export declare const stacksApi: {
2
+ accounts: {
3
+ balances: typeof import("./accounts/balances.js").balances;
4
+ };
5
+ blocks: {
6
+ getBlock: typeof import("./blocks/get-block.js").getBlock;
7
+ };
8
+ info: {
9
+ coreApi: typeof import("./info/core-api.js").coreApi;
10
+ poxDetails: typeof import("./info/pox-details.js").poxDetails;
11
+ };
12
+ proofOfTransfer: {
13
+ cycle: typeof import("./proof-of-transfer/cycle.js").cycle;
14
+ cycles: typeof import("./proof-of-transfer/cycles.js").cycles;
15
+ signersInCycle: typeof import("./proof-of-transfer/signers-in-cycle.js").signersInCycle;
16
+ stackersForSignerInCycle: typeof import("./proof-of-transfer/stackers-for-signer-in-cycle.js").stackersForSignerInCycle;
17
+ };
18
+ smartContracts: {
19
+ readOnly: typeof import("./smart-contracts/read-only.js").readOnly;
20
+ };
21
+ stackingPool: {
22
+ members: typeof import("./stacking-pool/members.js").members;
23
+ };
24
+ transactions: {
25
+ addressTransactions: typeof import("./transactions/address-transactions.js").addressTransactions;
26
+ getTransaction: typeof import("./transactions/get-transaction.js").getTransaction;
27
+ };
28
+ };
@@ -0,0 +1,17 @@
1
+ import { accounts } from "./accounts/index.js";
2
+ import { blocks } from "./blocks/index.js";
3
+ import { info } from "./info/index.js";
4
+ import { proofOfTransfer } from "./proof-of-transfer/index.js";
5
+ import { smartContracts } from "./smart-contracts/index.js";
6
+ import { stackingPool } from "./stacking-pool/index.js";
7
+ import { transactions } from "./transactions/index.js";
8
+ export const stacksApi = {
9
+ accounts,
10
+ blocks,
11
+ info,
12
+ proofOfTransfer,
13
+ smartContracts,
14
+ stackingPool,
15
+ transactions,
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stacks-api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,eAAe;IACf,cAAc;IACd,YAAY;IACZ,YAAY;CACb,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type Result } from "../../utils/safe.js";
2
+ import type { ApiRequestOptions } from "../types.js";
3
+ import * as v from "valibot";
4
+ declare const CoreApiResponseSchema: v.ObjectSchema<{
5
+ readonly peer_version: v.NumberSchema<undefined>;
6
+ readonly pox_consensus: v.StringSchema<undefined>;
7
+ readonly burn_block_height: v.NumberSchema<undefined>;
8
+ readonly stable_pox_consensus: v.StringSchema<undefined>;
9
+ readonly stable_burn_block_height: v.NumberSchema<undefined>;
10
+ readonly server_version: v.StringSchema<undefined>;
11
+ readonly network_id: v.NumberSchema<undefined>;
12
+ readonly parent_network_id: v.NumberSchema<undefined>;
13
+ readonly stacks_tip_height: v.NumberSchema<undefined>;
14
+ readonly stacks_tip: v.StringSchema<undefined>;
15
+ readonly stacks_tip_consensus_hash: v.StringSchema<undefined>;
16
+ readonly unanchored_tip: v.StringSchema<undefined>;
17
+ readonly exit_at_block_height: v.NumberSchema<undefined>;
18
+ }, undefined>;
19
+ export type CoreApiResponse = v.InferOutput<typeof CoreApiResponseSchema>;
20
+ export declare function coreApi(apiOpts: ApiRequestOptions): Promise<Result<CoreApiResponse>>;
21
+ export {};
@@ -0,0 +1,55 @@
1
+ import { error, safePromise, success } from "../../utils/safe.js";
2
+ import * as v from "valibot";
3
+ const CoreApiResponseSchema = v.object({
4
+ peer_version: v.number(),
5
+ pox_consensus: v.string(),
6
+ burn_block_height: v.number(),
7
+ stable_pox_consensus: v.string(),
8
+ stable_burn_block_height: v.number(),
9
+ server_version: v.string(),
10
+ network_id: v.number(),
11
+ parent_network_id: v.number(),
12
+ stacks_tip_height: v.number(),
13
+ stacks_tip: v.string(),
14
+ stacks_tip_consensus_hash: v.string(),
15
+ unanchored_tip: v.string(),
16
+ exit_at_block_height: v.number(),
17
+ });
18
+ export async function coreApi(apiOpts) {
19
+ const init = {};
20
+ if (apiOpts.apiKeyConfig) {
21
+ init.headers = {
22
+ [apiOpts.apiKeyConfig.header]: apiOpts.apiKeyConfig.key,
23
+ };
24
+ }
25
+ const res = await fetch(`${apiOpts.baseUrl}/v2/info`, init);
26
+ if (!res.ok) {
27
+ return error({
28
+ name: "FetchCoreApiError",
29
+ message: "Failed to fetch.",
30
+ data: {
31
+ status: res.status,
32
+ statusText: res.statusText,
33
+ bodyParseResult: await safePromise(res.json()),
34
+ },
35
+ });
36
+ }
37
+ const [parseBodyError, data] = await safePromise(res.json());
38
+ if (parseBodyError) {
39
+ return error({
40
+ name: "ParseBodyError",
41
+ message: "Failed to parse response body as JSON.",
42
+ data: parseBodyError,
43
+ });
44
+ }
45
+ const validationResult = v.safeParse(CoreApiResponseSchema, data);
46
+ if (!validationResult.success) {
47
+ return error({
48
+ name: "ValidateDataError",
49
+ message: "Failed to validate data.",
50
+ data: validationResult,
51
+ });
52
+ }
53
+ return success(validationResult.output);
54
+ }
55
+ //# sourceMappingURL=core-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-api.js","sourceRoot":"","sources":["../../../src/stacks-api/info/core-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAE/E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;CACjC,CAAC,CAAC;AAGH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAA0B;IAE1B,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG;YACb,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;SACxD,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,UAAU,EAAE,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;YACX,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,kBAAkB;YAC3B,IAAI,EAAE;gBACJ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,eAAe,EAAE,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aAC/C;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,wCAAwC;YACjD,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;YACX,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { coreApi } from "./core-api.js";
2
+ import { poxDetails } from "./pox-details.js";
3
+ export declare const info: {
4
+ coreApi: typeof coreApi;
5
+ poxDetails: typeof poxDetails;
6
+ };
@@ -0,0 +1,7 @@
1
+ import { coreApi } from "./core-api.js";
2
+ import { poxDetails } from "./pox-details.js";
3
+ export const info = {
4
+ coreApi,
5
+ poxDetails,
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stacks-api/info/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO;IACP,UAAU;CACX,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { type Result } from "../../utils/safe.js";
2
+ import type { ApiRequestOptions } from "../types.js";
3
+ import * as v from "valibot";
4
+ type Args = ApiRequestOptions;
5
+ declare const poxDetailsResponseSchema: v.ObjectSchema<{
6
+ readonly contract_id: v.StringSchema<undefined>;
7
+ readonly pox_activation_threshold_ustx: v.NumberSchema<undefined>;
8
+ readonly first_burnchain_block_height: v.NumberSchema<undefined>;
9
+ readonly current_burnchain_block_height: v.NumberSchema<undefined>;
10
+ readonly prepare_phase_block_length: v.NumberSchema<undefined>;
11
+ readonly reward_phase_block_length: v.NumberSchema<undefined>;
12
+ readonly reward_slots: v.NumberSchema<undefined>;
13
+ readonly rejection_fraction: v.NullSchema<undefined>;
14
+ readonly total_liquid_supply_ustx: v.NumberSchema<undefined>;
15
+ readonly current_cycle: v.ObjectSchema<{
16
+ readonly id: v.NumberSchema<undefined>;
17
+ readonly min_threshold_ustx: v.NumberSchema<undefined>;
18
+ readonly stacked_ustx: v.NumberSchema<undefined>;
19
+ readonly is_pox_active: v.BooleanSchema<undefined>;
20
+ }, undefined>;
21
+ readonly next_cycle: v.ObjectSchema<{
22
+ readonly id: v.NumberSchema<undefined>;
23
+ readonly min_threshold_ustx: v.NumberSchema<undefined>;
24
+ readonly min_increment_ustx: v.NumberSchema<undefined>;
25
+ readonly stacked_ustx: v.NumberSchema<undefined>;
26
+ readonly prepare_phase_start_block_height: v.NumberSchema<undefined>;
27
+ readonly blocks_until_prepare_phase: v.NumberSchema<undefined>;
28
+ readonly reward_phase_start_block_height: v.NumberSchema<undefined>;
29
+ readonly blocks_until_reward_phase: v.NumberSchema<undefined>;
30
+ readonly ustx_until_pox_rejection: v.NullSchema<undefined>;
31
+ }, undefined>;
32
+ readonly epochs: v.ArraySchema<v.ObjectSchema<{
33
+ readonly epoch_id: v.StringSchema<undefined>;
34
+ readonly start_height: v.NumberSchema<undefined>;
35
+ readonly end_height: v.NumberSchema<undefined>;
36
+ readonly block_limit: v.ObjectSchema<{
37
+ readonly write_length: v.NumberSchema<undefined>;
38
+ readonly write_count: v.NumberSchema<undefined>;
39
+ readonly read_length: v.NumberSchema<undefined>;
40
+ readonly read_count: v.NumberSchema<undefined>;
41
+ readonly runtime: v.NumberSchema<undefined>;
42
+ }, undefined>;
43
+ readonly network_epoch: v.NumberSchema<undefined>;
44
+ }, undefined>, undefined>;
45
+ readonly min_amount_ustx: v.NumberSchema<undefined>;
46
+ readonly prepare_cycle_length: v.NumberSchema<undefined>;
47
+ readonly reward_cycle_id: v.NumberSchema<undefined>;
48
+ readonly reward_cycle_length: v.NumberSchema<undefined>;
49
+ readonly rejection_votes_left_required: v.NullSchema<undefined>;
50
+ readonly next_reward_cycle_in: v.NumberSchema<undefined>;
51
+ readonly contract_versions: v.ArraySchema<v.ObjectSchema<{
52
+ readonly contract_id: v.StringSchema<undefined>;
53
+ readonly activation_burnchain_block_height: v.NumberSchema<undefined>;
54
+ readonly first_reward_cycle_id: v.NumberSchema<undefined>;
55
+ }, undefined>, undefined>;
56
+ }, undefined>;
57
+ type PoxDetailsResponse = v.InferOutput<typeof poxDetailsResponseSchema>;
58
+ export declare function poxDetails(args: Args): Promise<Result<PoxDetailsResponse>>;
59
+ export {};