@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.
- package/README.md +340 -0
- package/dist/api.d.ts +9 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +79 -0
- package/dist/api.js.map +1 -0
- package/dist/config/contracts.d.ts +169 -0
- package/dist/config/contracts.d.ts.map +1 -0
- package/dist/config/contracts.js +250 -0
- package/dist/config/contracts.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/networks.d.ts +11 -0
- package/dist/config/networks.d.ts.map +1 -0
- package/dist/config/networks.js +21 -0
- package/dist/config/networks.js.map +1 -0
- package/dist/endpoints/index.d.ts +2 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +2 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/endpoints/registry.d.ts +38 -0
- package/dist/endpoints/registry.d.ts.map +1 -0
- package/dist/endpoints/registry.js +935 -0
- package/dist/endpoints/registry.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/services/bitflow.service.d.ts +159 -0
- package/dist/services/bitflow.service.d.ts.map +1 -0
- package/dist/services/bitflow.service.js +325 -0
- package/dist/services/bitflow.service.js.map +1 -0
- package/dist/services/bns.service.d.ts +87 -0
- package/dist/services/bns.service.d.ts.map +1 -0
- package/dist/services/bns.service.js +312 -0
- package/dist/services/bns.service.js.map +1 -0
- package/dist/services/defi.service.d.ts +146 -0
- package/dist/services/defi.service.d.ts.map +1 -0
- package/dist/services/defi.service.js +461 -0
- package/dist/services/defi.service.js.map +1 -0
- package/dist/services/hiro-api.d.ts +438 -0
- package/dist/services/hiro-api.d.ts.map +1 -0
- package/dist/services/hiro-api.js +376 -0
- package/dist/services/hiro-api.js.map +1 -0
- package/dist/services/nft.service.d.ts +70 -0
- package/dist/services/nft.service.d.ts.map +1 -0
- package/dist/services/nft.service.js +148 -0
- package/dist/services/nft.service.js.map +1 -0
- package/dist/services/sbtc.service.d.ts +44 -0
- package/dist/services/sbtc.service.d.ts.map +1 -0
- package/dist/services/sbtc.service.js +100 -0
- package/dist/services/sbtc.service.js.map +1 -0
- package/dist/services/scaffold.service.d.ts +41 -0
- package/dist/services/scaffold.service.d.ts.map +1 -0
- package/dist/services/scaffold.service.js +1055 -0
- package/dist/services/scaffold.service.js.map +1 -0
- package/dist/services/stacking.service.d.ts +58 -0
- package/dist/services/stacking.service.d.ts.map +1 -0
- package/dist/services/stacking.service.js +153 -0
- package/dist/services/stacking.service.js.map +1 -0
- package/dist/services/tokens.service.d.ts +62 -0
- package/dist/services/tokens.service.d.ts.map +1 -0
- package/dist/services/tokens.service.js +119 -0
- package/dist/services/tokens.service.js.map +1 -0
- package/dist/services/wallet-manager.d.ts +107 -0
- package/dist/services/wallet-manager.d.ts.map +1 -0
- package/dist/services/wallet-manager.js +389 -0
- package/dist/services/wallet-manager.js.map +1 -0
- package/dist/services/x402.service.d.ts +26 -0
- package/dist/services/x402.service.d.ts.map +1 -0
- package/dist/services/x402.service.js +125 -0
- package/dist/services/x402.service.js.map +1 -0
- package/dist/tools/bitflow.tools.d.ts +3 -0
- package/dist/tools/bitflow.tools.d.ts.map +1 -0
- package/dist/tools/bitflow.tools.js +501 -0
- package/dist/tools/bitflow.tools.js.map +1 -0
- package/dist/tools/bns.tools.d.ts +3 -0
- package/dist/tools/bns.tools.d.ts.map +1 -0
- package/dist/tools/bns.tools.js +164 -0
- package/dist/tools/bns.tools.js.map +1 -0
- package/dist/tools/contract.tools.d.ts +3 -0
- package/dist/tools/contract.tools.d.ts.map +1 -0
- package/dist/tools/contract.tools.js +126 -0
- package/dist/tools/contract.tools.js.map +1 -0
- package/dist/tools/defi.tools.d.ts +3 -0
- package/dist/tools/defi.tools.d.ts.map +1 -0
- package/dist/tools/defi.tools.js +425 -0
- package/dist/tools/defi.tools.js.map +1 -0
- package/dist/tools/endpoint.tools.d.ts +3 -0
- package/dist/tools/endpoint.tools.d.ts.map +1 -0
- package/dist/tools/endpoint.tools.js +157 -0
- package/dist/tools/endpoint.tools.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/nft.tools.d.ts +3 -0
- package/dist/tools/nft.tools.d.ts.map +1 -0
- package/dist/tools/nft.tools.js +154 -0
- package/dist/tools/nft.tools.js.map +1 -0
- package/dist/tools/openrouter.tools.d.ts +3 -0
- package/dist/tools/openrouter.tools.d.ts.map +1 -0
- package/dist/tools/openrouter.tools.js +664 -0
- package/dist/tools/openrouter.tools.js.map +1 -0
- package/dist/tools/query.tools.d.ts +3 -0
- package/dist/tools/query.tools.d.ts.map +1 -0
- package/dist/tools/query.tools.js +209 -0
- package/dist/tools/query.tools.js.map +1 -0
- package/dist/tools/sbtc.tools.d.ts +3 -0
- package/dist/tools/sbtc.tools.d.ts.map +1 -0
- package/dist/tools/sbtc.tools.js +103 -0
- package/dist/tools/sbtc.tools.js.map +1 -0
- package/dist/tools/scaffold.tools.d.ts +3 -0
- package/dist/tools/scaffold.tools.d.ts.map +1 -0
- package/dist/tools/scaffold.tools.js +216 -0
- package/dist/tools/scaffold.tools.js.map +1 -0
- package/dist/tools/stacking.tools.d.ts +3 -0
- package/dist/tools/stacking.tools.d.ts.map +1 -0
- package/dist/tools/stacking.tools.js +112 -0
- package/dist/tools/stacking.tools.js.map +1 -0
- package/dist/tools/tokens.tools.d.ts +3 -0
- package/dist/tools/tokens.tools.d.ts.map +1 -0
- package/dist/tools/tokens.tools.js +154 -0
- package/dist/tools/tokens.tools.js.map +1 -0
- package/dist/tools/transfer.tools.d.ts +3 -0
- package/dist/tools/transfer.tools.d.ts.map +1 -0
- package/dist/tools/transfer.tools.js +62 -0
- package/dist/tools/transfer.tools.js.map +1 -0
- package/dist/tools/wallet-management.tools.d.ts +6 -0
- package/dist/tools/wallet-management.tools.d.ts.map +1 -0
- package/dist/tools/wallet-management.tools.js +390 -0
- package/dist/tools/wallet-management.tools.js.map +1 -0
- package/dist/tools/wallet.tools.d.ts +3 -0
- package/dist/tools/wallet.tools.d.ts.map +1 -0
- package/dist/tools/wallet.tools.js +105 -0
- package/dist/tools/wallet.tools.js.map +1 -0
- package/dist/transactions/builder.d.ts +56 -0
- package/dist/transactions/builder.d.ts.map +1 -0
- package/dist/transactions/builder.js +134 -0
- package/dist/transactions/builder.js.map +1 -0
- package/dist/transactions/clarity-values.d.ts +67 -0
- package/dist/transactions/clarity-values.d.ts.map +1 -0
- package/dist/transactions/clarity-values.js +169 -0
- package/dist/transactions/clarity-values.js.map +1 -0
- package/dist/transactions/post-conditions.d.ts +27 -0
- package/dist/transactions/post-conditions.d.ts.map +1 -0
- package/dist/transactions/post-conditions.js +101 -0
- package/dist/transactions/post-conditions.js.map +1 -0
- package/dist/utils/encryption.d.ts +33 -0
- package/dist/utils/encryption.d.ts.map +1 -0
- package/dist/utils/encryption.js +110 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/errors.d.ts +84 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +132 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatting.d.ts +51 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +114 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/storage.d.ts +90 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +196 -0
- package/dist/utils/storage.js.map +1 -0
- package/dist/utils/validation.d.ts +67 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +74 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/wallet.d.ts +86 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +279 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +58 -0
package/dist/wallet.js
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { generateWallet, getStxAddress } from "@stacks/wallet-sdk";
|
|
2
|
+
import { makeSTXTokenTransfer, makeContractCall, makeContractDeploy, broadcastTransaction, PostConditionMode, stringAsciiCV, stringUtf8CV, intCV, uintCV, boolCV, principalCV, bufferCV, listCV, tupleCV, noneCV, someCV, } from "@stacks/transactions";
|
|
3
|
+
export async function mnemonicToAccount(mnemonic, network) {
|
|
4
|
+
const wallet = await generateWallet({
|
|
5
|
+
secretKey: mnemonic,
|
|
6
|
+
password: "",
|
|
7
|
+
});
|
|
8
|
+
const account = wallet.accounts[0];
|
|
9
|
+
const address = getStxAddress(account, network);
|
|
10
|
+
return {
|
|
11
|
+
address,
|
|
12
|
+
privateKey: account.stxPrivateKey,
|
|
13
|
+
network,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function getStacksNetwork(network) {
|
|
17
|
+
return network === "mainnet" ? "mainnet" : "testnet";
|
|
18
|
+
}
|
|
19
|
+
export function getApiBaseUrl(network) {
|
|
20
|
+
return network === "mainnet"
|
|
21
|
+
? "https://api.mainnet.hiro.so"
|
|
22
|
+
: "https://api.testnet.hiro.so";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get account info including nonce and balance from the Stacks API
|
|
26
|
+
*/
|
|
27
|
+
export async function getAccountInfo(address, network) {
|
|
28
|
+
const baseUrl = getApiBaseUrl(network);
|
|
29
|
+
const response = await fetch(`${baseUrl}/v2/accounts/${address}`);
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
throw new Error(`Failed to get account info: ${response.statusText}`);
|
|
32
|
+
}
|
|
33
|
+
const data = await response.json();
|
|
34
|
+
return {
|
|
35
|
+
nonce: data.nonce,
|
|
36
|
+
balance: data.balance,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get STX balance for an address
|
|
41
|
+
*/
|
|
42
|
+
export async function getStxBalance(address, network) {
|
|
43
|
+
const baseUrl = getApiBaseUrl(network);
|
|
44
|
+
const response = await fetch(`${baseUrl}/extended/v1/address/${address}/stx`);
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
throw new Error(`Failed to get STX balance: ${response.statusText}`);
|
|
47
|
+
}
|
|
48
|
+
const data = await response.json();
|
|
49
|
+
return {
|
|
50
|
+
stx: data.balance,
|
|
51
|
+
stxLocked: data.locked,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Transfer STX tokens to a recipient
|
|
56
|
+
*/
|
|
57
|
+
export async function transferStx(account, recipient, amount, memo) {
|
|
58
|
+
const networkName = getStacksNetwork(account.network);
|
|
59
|
+
const transaction = await makeSTXTokenTransfer({
|
|
60
|
+
recipient,
|
|
61
|
+
amount,
|
|
62
|
+
senderKey: account.privateKey,
|
|
63
|
+
network: networkName,
|
|
64
|
+
memo: memo || "",
|
|
65
|
+
});
|
|
66
|
+
const broadcastResponse = await broadcastTransaction({
|
|
67
|
+
transaction,
|
|
68
|
+
network: networkName,
|
|
69
|
+
});
|
|
70
|
+
if ("error" in broadcastResponse) {
|
|
71
|
+
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
txid: broadcastResponse.txid,
|
|
75
|
+
rawTx: Buffer.from(transaction.serialize()).toString("hex"),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Call a smart contract function
|
|
80
|
+
*/
|
|
81
|
+
export async function callContract(account, options) {
|
|
82
|
+
const networkName = getStacksNetwork(account.network);
|
|
83
|
+
const transaction = await makeContractCall({
|
|
84
|
+
contractAddress: options.contractAddress,
|
|
85
|
+
contractName: options.contractName,
|
|
86
|
+
functionName: options.functionName,
|
|
87
|
+
functionArgs: options.functionArgs,
|
|
88
|
+
senderKey: account.privateKey,
|
|
89
|
+
network: networkName,
|
|
90
|
+
postConditionMode: options.postConditionMode || PostConditionMode.Deny,
|
|
91
|
+
});
|
|
92
|
+
const broadcastResponse = await broadcastTransaction({
|
|
93
|
+
transaction,
|
|
94
|
+
network: networkName,
|
|
95
|
+
});
|
|
96
|
+
if ("error" in broadcastResponse) {
|
|
97
|
+
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
txid: broadcastResponse.txid,
|
|
101
|
+
rawTx: Buffer.from(transaction.serialize()).toString("hex"),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Deploy a smart contract
|
|
106
|
+
*/
|
|
107
|
+
export async function deployContract(account, options) {
|
|
108
|
+
const networkName = getStacksNetwork(account.network);
|
|
109
|
+
const transaction = await makeContractDeploy({
|
|
110
|
+
contractName: options.contractName,
|
|
111
|
+
codeBody: options.codeBody,
|
|
112
|
+
senderKey: account.privateKey,
|
|
113
|
+
network: networkName,
|
|
114
|
+
});
|
|
115
|
+
const broadcastResponse = await broadcastTransaction({
|
|
116
|
+
transaction,
|
|
117
|
+
network: networkName,
|
|
118
|
+
});
|
|
119
|
+
if ("error" in broadcastResponse) {
|
|
120
|
+
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
txid: broadcastResponse.txid,
|
|
124
|
+
rawTx: Buffer.from(transaction.serialize()).toString("hex"),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sign a transaction without broadcasting (for offline signing)
|
|
129
|
+
*/
|
|
130
|
+
export async function signStxTransfer(account, recipient, amount, memo) {
|
|
131
|
+
const networkName = getStacksNetwork(account.network);
|
|
132
|
+
const transaction = await makeSTXTokenTransfer({
|
|
133
|
+
recipient,
|
|
134
|
+
amount,
|
|
135
|
+
senderKey: account.privateKey,
|
|
136
|
+
network: networkName,
|
|
137
|
+
memo: memo || "",
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
signedTx: Buffer.from(transaction.serialize()).toString("hex"),
|
|
141
|
+
txid: transaction.txid(),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Sign a contract call without broadcasting
|
|
146
|
+
*/
|
|
147
|
+
export async function signContractCall(account, options) {
|
|
148
|
+
const networkName = getStacksNetwork(account.network);
|
|
149
|
+
const transaction = await makeContractCall({
|
|
150
|
+
contractAddress: options.contractAddress,
|
|
151
|
+
contractName: options.contractName,
|
|
152
|
+
functionName: options.functionName,
|
|
153
|
+
functionArgs: options.functionArgs,
|
|
154
|
+
senderKey: account.privateKey,
|
|
155
|
+
network: networkName,
|
|
156
|
+
postConditionMode: options.postConditionMode || PostConditionMode.Deny,
|
|
157
|
+
});
|
|
158
|
+
return {
|
|
159
|
+
signedTx: Buffer.from(transaction.serialize()).toString("hex"),
|
|
160
|
+
txid: transaction.txid(),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Broadcast a pre-signed transaction
|
|
165
|
+
*/
|
|
166
|
+
export async function broadcastSignedTransaction(signedTx, network) {
|
|
167
|
+
const baseUrl = getApiBaseUrl(network);
|
|
168
|
+
const txBuffer = Buffer.from(signedTx, "hex");
|
|
169
|
+
const response = await fetch(`${baseUrl}/v2/transactions`, {
|
|
170
|
+
method: "POST",
|
|
171
|
+
headers: {
|
|
172
|
+
"Content-Type": "application/octet-stream",
|
|
173
|
+
},
|
|
174
|
+
body: txBuffer,
|
|
175
|
+
});
|
|
176
|
+
if (!response.ok) {
|
|
177
|
+
const errorText = await response.text();
|
|
178
|
+
throw new Error(`Broadcast failed: ${response.statusText} - ${errorText}`);
|
|
179
|
+
}
|
|
180
|
+
const txid = await response.text();
|
|
181
|
+
return { txid: txid.replace(/"/g, "") };
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get transaction status
|
|
185
|
+
*/
|
|
186
|
+
export async function getTransactionStatus(txid, network) {
|
|
187
|
+
const baseUrl = getApiBaseUrl(network);
|
|
188
|
+
const response = await fetch(`${baseUrl}/extended/v1/tx/${txid}`);
|
|
189
|
+
if (!response.ok) {
|
|
190
|
+
if (response.status === 404) {
|
|
191
|
+
return { status: "pending" };
|
|
192
|
+
}
|
|
193
|
+
throw new Error(`Failed to get transaction status: ${response.statusText}`);
|
|
194
|
+
}
|
|
195
|
+
const data = await response.json();
|
|
196
|
+
return {
|
|
197
|
+
status: data.tx_status,
|
|
198
|
+
block_height: data.block_height,
|
|
199
|
+
tx_result: data.tx_result,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Parse a JSON argument into a ClarityValue
|
|
204
|
+
* Supports: string, number, boolean, principal, buffer, list, tuple, optional
|
|
205
|
+
*/
|
|
206
|
+
export function parseArgToClarityValue(arg) {
|
|
207
|
+
if (arg === null || arg === undefined) {
|
|
208
|
+
return noneCV();
|
|
209
|
+
}
|
|
210
|
+
if (typeof arg === "boolean") {
|
|
211
|
+
return boolCV(arg);
|
|
212
|
+
}
|
|
213
|
+
if (typeof arg === "number") {
|
|
214
|
+
if (Number.isInteger(arg)) {
|
|
215
|
+
return arg >= 0 ? uintCV(arg) : intCV(arg);
|
|
216
|
+
}
|
|
217
|
+
throw new Error("Floating point numbers not supported in Clarity");
|
|
218
|
+
}
|
|
219
|
+
if (typeof arg === "string") {
|
|
220
|
+
// Check if it's a principal (Stacks address pattern)
|
|
221
|
+
if (arg.match(/^S[A-Z0-9]{38,}(\.[a-zA-Z][a-zA-Z0-9-]*)?$/)) {
|
|
222
|
+
return principalCV(arg);
|
|
223
|
+
}
|
|
224
|
+
// Default to string-utf8
|
|
225
|
+
return stringUtf8CV(arg);
|
|
226
|
+
}
|
|
227
|
+
if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
|
|
228
|
+
return bufferCV(arg);
|
|
229
|
+
}
|
|
230
|
+
if (Array.isArray(arg)) {
|
|
231
|
+
return listCV(arg.map(parseArgToClarityValue));
|
|
232
|
+
}
|
|
233
|
+
if (typeof arg === "object") {
|
|
234
|
+
const obj = arg;
|
|
235
|
+
// Check for typed values with explicit type field
|
|
236
|
+
if ("type" in obj && "value" in obj) {
|
|
237
|
+
const typedArg = obj;
|
|
238
|
+
switch (typedArg.type) {
|
|
239
|
+
case "uint":
|
|
240
|
+
return uintCV(BigInt(typedArg.value));
|
|
241
|
+
case "int":
|
|
242
|
+
return intCV(BigInt(typedArg.value));
|
|
243
|
+
case "string-ascii":
|
|
244
|
+
return stringAsciiCV(typedArg.value);
|
|
245
|
+
case "string-utf8":
|
|
246
|
+
return stringUtf8CV(typedArg.value);
|
|
247
|
+
case "bool":
|
|
248
|
+
return boolCV(typedArg.value);
|
|
249
|
+
case "principal":
|
|
250
|
+
return principalCV(typedArg.value);
|
|
251
|
+
case "buffer":
|
|
252
|
+
return bufferCV(Buffer.from(typedArg.value, "hex"));
|
|
253
|
+
case "none":
|
|
254
|
+
return noneCV();
|
|
255
|
+
case "some":
|
|
256
|
+
return someCV(parseArgToClarityValue(typedArg.value));
|
|
257
|
+
case "list":
|
|
258
|
+
return listCV(typedArg.value.map(parseArgToClarityValue));
|
|
259
|
+
case "tuple": {
|
|
260
|
+
const tupleData = {};
|
|
261
|
+
for (const [key, val] of Object.entries(typedArg.value)) {
|
|
262
|
+
tupleData[key] = parseArgToClarityValue(val);
|
|
263
|
+
}
|
|
264
|
+
return tupleCV(tupleData);
|
|
265
|
+
}
|
|
266
|
+
default:
|
|
267
|
+
throw new Error(`Unknown type: ${typedArg.type}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// Treat as tuple
|
|
271
|
+
const tupleData = {};
|
|
272
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
273
|
+
tupleData[key] = parseArgToClarityValue(val);
|
|
274
|
+
}
|
|
275
|
+
return tupleCV(tupleData);
|
|
276
|
+
}
|
|
277
|
+
throw new Error(`Cannot convert argument to ClarityValue: ${JSON.stringify(arg)}`);
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aibtc/mcp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Claude Code MCP server for x402 endpoint discovery and execution with Stacks wallet integration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"aibtc-mcp-server": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"keywords": [
|
|
21
|
+
"claude",
|
|
22
|
+
"claude-code",
|
|
23
|
+
"mcp",
|
|
24
|
+
"model-context-protocol",
|
|
25
|
+
"x402",
|
|
26
|
+
"stacks",
|
|
27
|
+
"blockchain",
|
|
28
|
+
"crypto",
|
|
29
|
+
"payments",
|
|
30
|
+
"aibtc"
|
|
31
|
+
],
|
|
32
|
+
"author": "aibtcdev",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/aibtcdev/aibtc-mcp-server.git"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/aibtcdev/aibtc-mcp-server#readme",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@bitflowlabs/core-sdk": "^2.4.0",
|
|
41
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
42
|
+
"@scure/bip39": "^2.0.1",
|
|
43
|
+
"@stacks/network": "^7.3.1",
|
|
44
|
+
"@stacks/transactions": "^7.3.1",
|
|
45
|
+
"@stacks/wallet-sdk": "^7.2.0",
|
|
46
|
+
"alex-sdk": "^3.2.1",
|
|
47
|
+
"axios": "^1.13.2",
|
|
48
|
+
"dotenv": "^17.2.3",
|
|
49
|
+
"tslib": "^2.8.1",
|
|
50
|
+
"x402-stacks": "^1.1.1",
|
|
51
|
+
"zod": "^4.3.5"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^22.0.0",
|
|
55
|
+
"tsx": "^4.19.0",
|
|
56
|
+
"typescript": "^5.7.0"
|
|
57
|
+
}
|
|
58
|
+
}
|