@aibtc/mcp-server 1.0.0

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 (178) hide show
  1. package/README.md +340 -0
  2. package/dist/api.d.ts +9 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +79 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/config/contracts.d.ts +169 -0
  7. package/dist/config/contracts.d.ts.map +1 -0
  8. package/dist/config/contracts.js +250 -0
  9. package/dist/config/contracts.js.map +1 -0
  10. package/dist/config/index.d.ts +3 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +3 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/config/networks.d.ts +11 -0
  15. package/dist/config/networks.d.ts.map +1 -0
  16. package/dist/config/networks.js +21 -0
  17. package/dist/config/networks.js.map +1 -0
  18. package/dist/endpoints/index.d.ts +2 -0
  19. package/dist/endpoints/index.d.ts.map +1 -0
  20. package/dist/endpoints/index.js +2 -0
  21. package/dist/endpoints/index.js.map +1 -0
  22. package/dist/endpoints/registry.d.ts +38 -0
  23. package/dist/endpoints/registry.d.ts.map +1 -0
  24. package/dist/endpoints/registry.js +935 -0
  25. package/dist/endpoints/registry.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +79 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/services/bitflow.service.d.ts +159 -0
  31. package/dist/services/bitflow.service.d.ts.map +1 -0
  32. package/dist/services/bitflow.service.js +325 -0
  33. package/dist/services/bitflow.service.js.map +1 -0
  34. package/dist/services/bns.service.d.ts +87 -0
  35. package/dist/services/bns.service.d.ts.map +1 -0
  36. package/dist/services/bns.service.js +312 -0
  37. package/dist/services/bns.service.js.map +1 -0
  38. package/dist/services/defi.service.d.ts +146 -0
  39. package/dist/services/defi.service.d.ts.map +1 -0
  40. package/dist/services/defi.service.js +461 -0
  41. package/dist/services/defi.service.js.map +1 -0
  42. package/dist/services/hiro-api.d.ts +438 -0
  43. package/dist/services/hiro-api.d.ts.map +1 -0
  44. package/dist/services/hiro-api.js +376 -0
  45. package/dist/services/hiro-api.js.map +1 -0
  46. package/dist/services/nft.service.d.ts +70 -0
  47. package/dist/services/nft.service.d.ts.map +1 -0
  48. package/dist/services/nft.service.js +148 -0
  49. package/dist/services/nft.service.js.map +1 -0
  50. package/dist/services/sbtc.service.d.ts +44 -0
  51. package/dist/services/sbtc.service.d.ts.map +1 -0
  52. package/dist/services/sbtc.service.js +100 -0
  53. package/dist/services/sbtc.service.js.map +1 -0
  54. package/dist/services/scaffold.service.d.ts +41 -0
  55. package/dist/services/scaffold.service.d.ts.map +1 -0
  56. package/dist/services/scaffold.service.js +1055 -0
  57. package/dist/services/scaffold.service.js.map +1 -0
  58. package/dist/services/stacking.service.d.ts +58 -0
  59. package/dist/services/stacking.service.d.ts.map +1 -0
  60. package/dist/services/stacking.service.js +153 -0
  61. package/dist/services/stacking.service.js.map +1 -0
  62. package/dist/services/tokens.service.d.ts +62 -0
  63. package/dist/services/tokens.service.d.ts.map +1 -0
  64. package/dist/services/tokens.service.js +119 -0
  65. package/dist/services/tokens.service.js.map +1 -0
  66. package/dist/services/wallet-manager.d.ts +107 -0
  67. package/dist/services/wallet-manager.d.ts.map +1 -0
  68. package/dist/services/wallet-manager.js +389 -0
  69. package/dist/services/wallet-manager.js.map +1 -0
  70. package/dist/services/x402.service.d.ts +26 -0
  71. package/dist/services/x402.service.d.ts.map +1 -0
  72. package/dist/services/x402.service.js +125 -0
  73. package/dist/services/x402.service.js.map +1 -0
  74. package/dist/tools/bitflow.tools.d.ts +3 -0
  75. package/dist/tools/bitflow.tools.d.ts.map +1 -0
  76. package/dist/tools/bitflow.tools.js +501 -0
  77. package/dist/tools/bitflow.tools.js.map +1 -0
  78. package/dist/tools/bns.tools.d.ts +3 -0
  79. package/dist/tools/bns.tools.d.ts.map +1 -0
  80. package/dist/tools/bns.tools.js +164 -0
  81. package/dist/tools/bns.tools.js.map +1 -0
  82. package/dist/tools/contract.tools.d.ts +3 -0
  83. package/dist/tools/contract.tools.d.ts.map +1 -0
  84. package/dist/tools/contract.tools.js +126 -0
  85. package/dist/tools/contract.tools.js.map +1 -0
  86. package/dist/tools/defi.tools.d.ts +3 -0
  87. package/dist/tools/defi.tools.d.ts.map +1 -0
  88. package/dist/tools/defi.tools.js +425 -0
  89. package/dist/tools/defi.tools.js.map +1 -0
  90. package/dist/tools/endpoint.tools.d.ts +3 -0
  91. package/dist/tools/endpoint.tools.d.ts.map +1 -0
  92. package/dist/tools/endpoint.tools.js +157 -0
  93. package/dist/tools/endpoint.tools.js.map +1 -0
  94. package/dist/tools/index.d.ts +6 -0
  95. package/dist/tools/index.d.ts.map +1 -0
  96. package/dist/tools/index.js +52 -0
  97. package/dist/tools/index.js.map +1 -0
  98. package/dist/tools/nft.tools.d.ts +3 -0
  99. package/dist/tools/nft.tools.d.ts.map +1 -0
  100. package/dist/tools/nft.tools.js +154 -0
  101. package/dist/tools/nft.tools.js.map +1 -0
  102. package/dist/tools/openrouter.tools.d.ts +3 -0
  103. package/dist/tools/openrouter.tools.d.ts.map +1 -0
  104. package/dist/tools/openrouter.tools.js +664 -0
  105. package/dist/tools/openrouter.tools.js.map +1 -0
  106. package/dist/tools/query.tools.d.ts +3 -0
  107. package/dist/tools/query.tools.d.ts.map +1 -0
  108. package/dist/tools/query.tools.js +209 -0
  109. package/dist/tools/query.tools.js.map +1 -0
  110. package/dist/tools/sbtc.tools.d.ts +3 -0
  111. package/dist/tools/sbtc.tools.d.ts.map +1 -0
  112. package/dist/tools/sbtc.tools.js +103 -0
  113. package/dist/tools/sbtc.tools.js.map +1 -0
  114. package/dist/tools/scaffold.tools.d.ts +3 -0
  115. package/dist/tools/scaffold.tools.d.ts.map +1 -0
  116. package/dist/tools/scaffold.tools.js +216 -0
  117. package/dist/tools/scaffold.tools.js.map +1 -0
  118. package/dist/tools/stacking.tools.d.ts +3 -0
  119. package/dist/tools/stacking.tools.d.ts.map +1 -0
  120. package/dist/tools/stacking.tools.js +112 -0
  121. package/dist/tools/stacking.tools.js.map +1 -0
  122. package/dist/tools/tokens.tools.d.ts +3 -0
  123. package/dist/tools/tokens.tools.d.ts.map +1 -0
  124. package/dist/tools/tokens.tools.js +154 -0
  125. package/dist/tools/tokens.tools.js.map +1 -0
  126. package/dist/tools/transfer.tools.d.ts +3 -0
  127. package/dist/tools/transfer.tools.d.ts.map +1 -0
  128. package/dist/tools/transfer.tools.js +62 -0
  129. package/dist/tools/transfer.tools.js.map +1 -0
  130. package/dist/tools/wallet-management.tools.d.ts +6 -0
  131. package/dist/tools/wallet-management.tools.d.ts.map +1 -0
  132. package/dist/tools/wallet-management.tools.js +390 -0
  133. package/dist/tools/wallet-management.tools.js.map +1 -0
  134. package/dist/tools/wallet.tools.d.ts +3 -0
  135. package/dist/tools/wallet.tools.d.ts.map +1 -0
  136. package/dist/tools/wallet.tools.js +105 -0
  137. package/dist/tools/wallet.tools.js.map +1 -0
  138. package/dist/transactions/builder.d.ts +56 -0
  139. package/dist/transactions/builder.d.ts.map +1 -0
  140. package/dist/transactions/builder.js +134 -0
  141. package/dist/transactions/builder.js.map +1 -0
  142. package/dist/transactions/clarity-values.d.ts +67 -0
  143. package/dist/transactions/clarity-values.d.ts.map +1 -0
  144. package/dist/transactions/clarity-values.js +169 -0
  145. package/dist/transactions/clarity-values.js.map +1 -0
  146. package/dist/transactions/post-conditions.d.ts +27 -0
  147. package/dist/transactions/post-conditions.d.ts.map +1 -0
  148. package/dist/transactions/post-conditions.js +101 -0
  149. package/dist/transactions/post-conditions.js.map +1 -0
  150. package/dist/utils/encryption.d.ts +33 -0
  151. package/dist/utils/encryption.d.ts.map +1 -0
  152. package/dist/utils/encryption.js +110 -0
  153. package/dist/utils/encryption.js.map +1 -0
  154. package/dist/utils/errors.d.ts +84 -0
  155. package/dist/utils/errors.d.ts.map +1 -0
  156. package/dist/utils/errors.js +132 -0
  157. package/dist/utils/errors.js.map +1 -0
  158. package/dist/utils/formatting.d.ts +51 -0
  159. package/dist/utils/formatting.d.ts.map +1 -0
  160. package/dist/utils/formatting.js +114 -0
  161. package/dist/utils/formatting.js.map +1 -0
  162. package/dist/utils/index.d.ts +6 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +6 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/storage.d.ts +90 -0
  167. package/dist/utils/storage.d.ts.map +1 -0
  168. package/dist/utils/storage.js +196 -0
  169. package/dist/utils/storage.js.map +1 -0
  170. package/dist/utils/validation.d.ts +67 -0
  171. package/dist/utils/validation.d.ts.map +1 -0
  172. package/dist/utils/validation.js +74 -0
  173. package/dist/utils/validation.js.map +1 -0
  174. package/dist/wallet.d.ts +86 -0
  175. package/dist/wallet.d.ts.map +1 -0
  176. package/dist/wallet.js +279 -0
  177. package/dist/wallet.js.map +1 -0
  178. package/package.json +58 -0
@@ -0,0 +1,196 @@
1
+ import fs from "fs/promises";
2
+ import { existsSync, renameSync } from "fs";
3
+ import path from "path";
4
+ import os from "os";
5
+ /**
6
+ * Storage directory location
7
+ * Migrated from ~/.stx402/ to ~/.aibtc/ in v1.0.0
8
+ */
9
+ const OLD_STORAGE_DIR = path.join(os.homedir(), ".stx402");
10
+ const STORAGE_DIR = path.join(os.homedir(), ".aibtc");
11
+ const WALLETS_DIR = path.join(STORAGE_DIR, "wallets");
12
+ const WALLET_INDEX_FILE = path.join(STORAGE_DIR, "wallets.json");
13
+ const CONFIG_FILE = path.join(STORAGE_DIR, "config.json");
14
+ /**
15
+ * Migrate storage from ~/.stx402/ to ~/.aibtc/ (one-time migration)
16
+ */
17
+ function migrateStorageDirectory() {
18
+ if (existsSync(OLD_STORAGE_DIR) && !existsSync(STORAGE_DIR)) {
19
+ try {
20
+ renameSync(OLD_STORAGE_DIR, STORAGE_DIR);
21
+ console.error(`Migrated wallet storage from ${OLD_STORAGE_DIR} to ${STORAGE_DIR}`);
22
+ }
23
+ catch (error) {
24
+ console.error(`Failed to migrate storage directory: ${error}`);
25
+ }
26
+ }
27
+ }
28
+ // Run migration on module load
29
+ migrateStorageDirectory();
30
+ const CURRENT_INDEX_VERSION = 1;
31
+ const CURRENT_CONFIG_VERSION = 1;
32
+ /**
33
+ * Get storage directory path
34
+ */
35
+ export function getStorageDir() {
36
+ return STORAGE_DIR;
37
+ }
38
+ /**
39
+ * Check if storage directory exists
40
+ */
41
+ export async function storageExists() {
42
+ try {
43
+ await fs.access(STORAGE_DIR);
44
+ return true;
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ }
50
+ /**
51
+ * Initialize storage directory structure
52
+ */
53
+ export async function initializeStorage() {
54
+ // Create directories
55
+ await fs.mkdir(WALLETS_DIR, { recursive: true, mode: 0o700 });
56
+ // Create wallet index if it doesn't exist
57
+ try {
58
+ await fs.access(WALLET_INDEX_FILE);
59
+ }
60
+ catch {
61
+ const defaultIndex = {
62
+ version: CURRENT_INDEX_VERSION,
63
+ wallets: [],
64
+ };
65
+ await writeWalletIndex(defaultIndex);
66
+ }
67
+ // Create config if it doesn't exist
68
+ try {
69
+ await fs.access(CONFIG_FILE);
70
+ }
71
+ catch {
72
+ const defaultConfig = {
73
+ version: CURRENT_CONFIG_VERSION,
74
+ activeWalletId: null,
75
+ autoLockTimeout: 15, // 15 minutes default
76
+ };
77
+ await writeAppConfig(defaultConfig);
78
+ }
79
+ }
80
+ /**
81
+ * Read wallet index
82
+ */
83
+ export async function readWalletIndex() {
84
+ try {
85
+ const content = await fs.readFile(WALLET_INDEX_FILE, "utf8");
86
+ return JSON.parse(content);
87
+ }
88
+ catch {
89
+ return {
90
+ version: CURRENT_INDEX_VERSION,
91
+ wallets: [],
92
+ };
93
+ }
94
+ }
95
+ /**
96
+ * Write wallet index (atomic write with temp file)
97
+ */
98
+ export async function writeWalletIndex(index) {
99
+ const tempFile = `${WALLET_INDEX_FILE}.tmp`;
100
+ await fs.writeFile(tempFile, JSON.stringify(index, null, 2), {
101
+ mode: 0o600,
102
+ });
103
+ await fs.rename(tempFile, WALLET_INDEX_FILE);
104
+ }
105
+ /**
106
+ * Read app config
107
+ */
108
+ export async function readAppConfig() {
109
+ try {
110
+ const content = await fs.readFile(CONFIG_FILE, "utf8");
111
+ return JSON.parse(content);
112
+ }
113
+ catch {
114
+ return {
115
+ version: CURRENT_CONFIG_VERSION,
116
+ activeWalletId: null,
117
+ autoLockTimeout: 15,
118
+ };
119
+ }
120
+ }
121
+ /**
122
+ * Write app config (atomic write)
123
+ */
124
+ export async function writeAppConfig(config) {
125
+ const tempFile = `${CONFIG_FILE}.tmp`;
126
+ await fs.writeFile(tempFile, JSON.stringify(config, null, 2), {
127
+ mode: 0o600,
128
+ });
129
+ await fs.rename(tempFile, CONFIG_FILE);
130
+ }
131
+ /**
132
+ * Get keystore file path for a wallet
133
+ */
134
+ function getKeystorePath(walletId) {
135
+ return path.join(WALLETS_DIR, walletId, "keystore.json");
136
+ }
137
+ /**
138
+ * Read keystore for a wallet
139
+ */
140
+ export async function readKeystore(walletId) {
141
+ const keystorePath = getKeystorePath(walletId);
142
+ const content = await fs.readFile(keystorePath, "utf8");
143
+ return JSON.parse(content);
144
+ }
145
+ /**
146
+ * Write keystore for a wallet (creates directory if needed)
147
+ */
148
+ export async function writeKeystore(walletId, keystore) {
149
+ const walletDir = path.join(WALLETS_DIR, walletId);
150
+ await fs.mkdir(walletDir, { recursive: true, mode: 0o700 });
151
+ const keystorePath = getKeystorePath(walletId);
152
+ const tempFile = `${keystorePath}.tmp`;
153
+ await fs.writeFile(tempFile, JSON.stringify(keystore, null, 2), {
154
+ mode: 0o600,
155
+ });
156
+ await fs.rename(tempFile, keystorePath);
157
+ }
158
+ /**
159
+ * Delete a wallet directory and its contents
160
+ */
161
+ export async function deleteWalletStorage(walletId) {
162
+ const walletDir = path.join(WALLETS_DIR, walletId);
163
+ await fs.rm(walletDir, { recursive: true, force: true });
164
+ }
165
+ /**
166
+ * Update wallet metadata in index
167
+ */
168
+ export async function updateWalletMetadata(walletId, updates) {
169
+ const index = await readWalletIndex();
170
+ const walletIndex = index.wallets.findIndex((w) => w.id === walletId);
171
+ if (walletIndex === -1) {
172
+ throw new Error(`Wallet not found: ${walletId}`);
173
+ }
174
+ index.wallets[walletIndex] = {
175
+ ...index.wallets[walletIndex],
176
+ ...updates,
177
+ };
178
+ await writeWalletIndex(index);
179
+ }
180
+ /**
181
+ * Add wallet to index
182
+ */
183
+ export async function addWalletToIndex(wallet) {
184
+ const index = await readWalletIndex();
185
+ index.wallets.push(wallet);
186
+ await writeWalletIndex(index);
187
+ }
188
+ /**
189
+ * Remove wallet from index
190
+ */
191
+ export async function removeWalletFromIndex(walletId) {
192
+ const index = await readWalletIndex();
193
+ index.wallets = index.wallets.filter((w) => w.id !== walletId);
194
+ await writeWalletIndex(index);
195
+ }
196
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/utils/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Validate a Stacks address
4
+ */
5
+ export declare function isValidStacksAddress(address: string): boolean;
6
+ /**
7
+ * Validate a contract ID
8
+ */
9
+ export declare function isValidContractId(contractId: string): boolean;
10
+ /**
11
+ * Validate a transaction ID
12
+ */
13
+ export declare function isValidTxId(txid: string): boolean;
14
+ /**
15
+ * Zod schema for Stacks address
16
+ */
17
+ export declare const stacksAddressSchema: z.ZodString;
18
+ /**
19
+ * Zod schema for contract ID
20
+ */
21
+ export declare const contractIdSchema: z.ZodString;
22
+ /**
23
+ * Zod schema for transaction ID
24
+ */
25
+ export declare const txIdSchema: z.ZodString;
26
+ /**
27
+ * Zod schema for STX amount (micro-STX as string)
28
+ */
29
+ export declare const stxAmountSchema: z.ZodString;
30
+ /**
31
+ * Zod schema for network
32
+ */
33
+ export declare const networkSchema: z.ZodEnum<{
34
+ mainnet: "mainnet";
35
+ testnet: "testnet";
36
+ }>;
37
+ /**
38
+ * Zod schema for HTTP method
39
+ */
40
+ export declare const httpMethodSchema: z.ZodEnum<{
41
+ POST: "POST";
42
+ GET: "GET";
43
+ DELETE: "DELETE";
44
+ PUT: "PUT";
45
+ }>;
46
+ /**
47
+ * Zod schema for post condition mode
48
+ */
49
+ export declare const postConditionModeSchema: z.ZodEnum<{
50
+ allow: "allow";
51
+ deny: "deny";
52
+ }>;
53
+ /**
54
+ * Common input schemas for tools
55
+ */
56
+ export declare const commonSchemas: {
57
+ address: z.ZodString;
58
+ optionalAddress: z.ZodOptional<z.ZodString>;
59
+ contractId: z.ZodString;
60
+ txid: z.ZodString;
61
+ amount: z.ZodString;
62
+ tokenAmount: z.ZodString;
63
+ memo: z.ZodOptional<z.ZodString>;
64
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
65
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
66
+ };
67
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,aAG/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,aAG5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,aAGtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,aAG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;;;EAAiC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;EAA2C,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;EAA4B,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAUzB,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Stacks address validation regex
4
+ */
5
+ const STACKS_ADDRESS_REGEX = /^S[PM][A-Z0-9]{38,}$/;
6
+ /**
7
+ * Contract ID validation regex (address.contract-name)
8
+ */
9
+ const CONTRACT_ID_REGEX = /^S[PM][A-Z0-9]{38,}\.[a-zA-Z][a-zA-Z0-9-]*$/;
10
+ /**
11
+ * Transaction ID validation regex (64 hex chars)
12
+ */
13
+ const TXID_REGEX = /^(0x)?[a-fA-F0-9]{64}$/;
14
+ /**
15
+ * Validate a Stacks address
16
+ */
17
+ export function isValidStacksAddress(address) {
18
+ return STACKS_ADDRESS_REGEX.test(address);
19
+ }
20
+ /**
21
+ * Validate a contract ID
22
+ */
23
+ export function isValidContractId(contractId) {
24
+ return CONTRACT_ID_REGEX.test(contractId);
25
+ }
26
+ /**
27
+ * Validate a transaction ID
28
+ */
29
+ export function isValidTxId(txid) {
30
+ return TXID_REGEX.test(txid);
31
+ }
32
+ /**
33
+ * Zod schema for Stacks address
34
+ */
35
+ export const stacksAddressSchema = z.string().refine((val) => isValidStacksAddress(val), { message: "Invalid Stacks address. Must start with SP (mainnet) or ST (testnet)" });
36
+ /**
37
+ * Zod schema for contract ID
38
+ */
39
+ export const contractIdSchema = z.string().refine((val) => isValidContractId(val), { message: "Invalid contract ID. Must be in format: address.contract-name" });
40
+ /**
41
+ * Zod schema for transaction ID
42
+ */
43
+ export const txIdSchema = z.string().refine((val) => isValidTxId(val), { message: "Invalid transaction ID. Must be 64 hex characters" });
44
+ /**
45
+ * Zod schema for STX amount (micro-STX as string)
46
+ */
47
+ export const stxAmountSchema = z.string().refine((val) => /^\d+$/.test(val), { message: "Amount must be a positive integer string (micro-STX)" });
48
+ /**
49
+ * Zod schema for network
50
+ */
51
+ export const networkSchema = z.enum(["mainnet", "testnet"]);
52
+ /**
53
+ * Zod schema for HTTP method
54
+ */
55
+ export const httpMethodSchema = z.enum(["GET", "POST", "PUT", "DELETE"]);
56
+ /**
57
+ * Zod schema for post condition mode
58
+ */
59
+ export const postConditionModeSchema = z.enum(["allow", "deny"]);
60
+ /**
61
+ * Common input schemas for tools
62
+ */
63
+ export const commonSchemas = {
64
+ address: z.string().describe("Stacks address (starts with SP or ST)"),
65
+ optionalAddress: z.string().optional().describe("Optional Stacks address"),
66
+ contractId: z.string().describe("Contract ID in format: address.contract-name"),
67
+ txid: z.string().describe("Transaction ID (64 character hex string)"),
68
+ amount: z.string().describe("Amount in micro-STX (1 STX = 1,000,000 micro-STX)"),
69
+ tokenAmount: z.string().describe("Token amount in smallest unit"),
70
+ memo: z.string().optional().describe("Optional memo message"),
71
+ limit: z.number().optional().default(20).describe("Maximum number of results"),
72
+ offset: z.number().optional().default(0).describe("Offset for pagination"),
73
+ };
74
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { PostConditionMode, ClarityValue } from "@stacks/transactions";
2
+ import { StacksNetworkName } from "@stacks/network";
3
+ export type Network = "mainnet" | "testnet";
4
+ export interface Account {
5
+ address: string;
6
+ privateKey: string;
7
+ network: Network;
8
+ }
9
+ export interface TransferResult {
10
+ txid: string;
11
+ rawTx: string;
12
+ }
13
+ export interface ContractCallOptions {
14
+ contractAddress: string;
15
+ contractName: string;
16
+ functionName: string;
17
+ functionArgs: ClarityValue[];
18
+ postConditionMode?: PostConditionMode;
19
+ }
20
+ export interface ContractDeployOptions {
21
+ contractName: string;
22
+ codeBody: string;
23
+ }
24
+ export declare function mnemonicToAccount(mnemonic: string, network: Network): Promise<Account>;
25
+ export declare function getStacksNetwork(network: Network): StacksNetworkName;
26
+ export declare function getApiBaseUrl(network: Network): string;
27
+ /**
28
+ * Get account info including nonce and balance from the Stacks API
29
+ */
30
+ export declare function getAccountInfo(address: string, network: Network): Promise<{
31
+ nonce: number;
32
+ balance: string;
33
+ }>;
34
+ /**
35
+ * Get STX balance for an address
36
+ */
37
+ export declare function getStxBalance(address: string, network: Network): Promise<{
38
+ stx: string;
39
+ stxLocked: string;
40
+ }>;
41
+ /**
42
+ * Transfer STX tokens to a recipient
43
+ */
44
+ export declare function transferStx(account: Account, recipient: string, amount: bigint, memo?: string): Promise<TransferResult>;
45
+ /**
46
+ * Call a smart contract function
47
+ */
48
+ export declare function callContract(account: Account, options: ContractCallOptions): Promise<TransferResult>;
49
+ /**
50
+ * Deploy a smart contract
51
+ */
52
+ export declare function deployContract(account: Account, options: ContractDeployOptions): Promise<TransferResult>;
53
+ /**
54
+ * Sign a transaction without broadcasting (for offline signing)
55
+ */
56
+ export declare function signStxTransfer(account: Account, recipient: string, amount: bigint, memo?: string): Promise<{
57
+ signedTx: string;
58
+ txid: string;
59
+ }>;
60
+ /**
61
+ * Sign a contract call without broadcasting
62
+ */
63
+ export declare function signContractCall(account: Account, options: ContractCallOptions): Promise<{
64
+ signedTx: string;
65
+ txid: string;
66
+ }>;
67
+ /**
68
+ * Broadcast a pre-signed transaction
69
+ */
70
+ export declare function broadcastSignedTransaction(signedTx: string, network: Network): Promise<{
71
+ txid: string;
72
+ }>;
73
+ /**
74
+ * Get transaction status
75
+ */
76
+ export declare function getTransactionStatus(txid: string, network: Network): Promise<{
77
+ status: string;
78
+ block_height?: number;
79
+ tx_result?: unknown;
80
+ }>;
81
+ /**
82
+ * Parse a JSON argument into a ClarityValue
83
+ * Supports: string, number, boolean, principal, buffer, list, tuple, optional
84
+ */
85
+ export declare function parseArgToClarityValue(arg: unknown): ClarityValue;
86
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}