@aibtc/mcp-server 1.26.0 → 1.27.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 +5 -3
- package/dist/transactions/inscription-builder.js +2 -2
- package/dist/transactions/inscription-builder.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +1 -1
- package/dist/wallet.d.ts +0 -114
- package/dist/wallet.d.ts.map +0 -1
- package/dist/wallet.js +0 -295
- package/dist/wallet.js.map +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg,
|
|
|
10
10
|
- **Bitcoin L1** - Check balances, send BTC, manage UTXOs via mempool.space
|
|
11
11
|
- **Agent's Own Wallet** - Agents get their own wallet to perform blockchain transactions
|
|
12
12
|
- **Secure Storage** - Wallets encrypted with AES-256-GCM and stored locally
|
|
13
|
-
- **
|
|
13
|
+
- **150+ Tools** - Bitcoin L1 + comprehensive Stacks L2 operations
|
|
14
14
|
- **sBTC Support** - Native Bitcoin on Stacks operations
|
|
15
15
|
- **Token Operations** - SIP-010 fungible token transfers and queries
|
|
16
16
|
- **NFT Support** - SIP-009 NFT holdings, transfers, and metadata
|
|
@@ -194,7 +194,7 @@ Claude: Done! Transaction broadcast: abc123...
|
|
|
194
194
|
|
|
195
195
|
Both addresses are derived from the same recovery phrase, making it easy to manage both Layer 1 (Bitcoin) and Layer 2 (Stacks) assets.
|
|
196
196
|
|
|
197
|
-
## Available Tools (
|
|
197
|
+
## Available Tools (150+ total)
|
|
198
198
|
|
|
199
199
|
### Wallet Management
|
|
200
200
|
| Tool | Description |
|
|
@@ -438,11 +438,13 @@ Or use any SIP-010 token by contract ID: `SP2X...::token-name`
|
|
|
438
438
|
|
|
439
439
|
| Environment Variable | Description | Default |
|
|
440
440
|
|---------------------|-------------|---------|
|
|
441
|
-
| `NETWORK` | `mainnet` or `testnet` | `mainnet` |
|
|
441
|
+
| `NETWORK` | `mainnet` or `testnet` | `mainnet` (installer) / `testnet` (if unset) |
|
|
442
442
|
| `API_URL` | Default x402 API base URL | `https://x402.biwas.xyz` |
|
|
443
443
|
| `CLIENT_MNEMONIC` | (Optional) Pre-configured mnemonic | - |
|
|
444
444
|
| `HIRO_API_KEY` | (Optional) Hiro API key for higher rate limits | - |
|
|
445
445
|
|
|
446
|
+
**Note on `NETWORK`:** The `--install` command writes `NETWORK=mainnet` by default (pass `--testnet` to use testnet). If you omit `NETWORK` from your config entirely, the runtime fallback is `testnet`. Most users should set this explicitly.
|
|
447
|
+
|
|
446
448
|
**Note:** `CLIENT_MNEMONIC` is optional. The recommended approach is to let Claude create its own wallet. `HIRO_API_KEY` is optional but recommended for production use — without it, you may hit Hiro's public rate limits (429 responses). Get a key at [platform.hiro.so](https://platform.hiro.so).
|
|
447
449
|
|
|
448
450
|
## Architecture
|
|
@@ -82,7 +82,7 @@ export function buildCommitTransaction(options) {
|
|
|
82
82
|
const revealScriptData = p2tr_ord_reveal(xOnlyPubkey, [inscriptionData]);
|
|
83
83
|
// Create P2TR output from the reveal script
|
|
84
84
|
// For script path spending, we use the internal pubkey and the script tree
|
|
85
|
-
const p2trReveal = btc.p2tr(xOnlyPubkey, revealScriptData, btcNetwork);
|
|
85
|
+
const p2trReveal = btc.p2tr(xOnlyPubkey, revealScriptData, btcNetwork, true);
|
|
86
86
|
if (!p2trReveal.address) {
|
|
87
87
|
throw new Error("Failed to generate reveal address");
|
|
88
88
|
}
|
|
@@ -212,7 +212,7 @@ export function buildRevealTransaction(options) {
|
|
|
212
212
|
}
|
|
213
213
|
// Build the reveal transaction
|
|
214
214
|
const btcNetwork = getBtcNetwork(network);
|
|
215
|
-
const tx = new btc.Transaction();
|
|
215
|
+
const tx = new btc.Transaction({ allowUnknownOutputs: true, allowUnknownInputs: true });
|
|
216
216
|
// Add input spending from commit transaction
|
|
217
217
|
// For Taproot script path spending, we need to provide the witness data
|
|
218
218
|
tx.addInput({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inscription-builder.js","sourceRoot":"","sources":["../../src/transactions/inscription-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AA8HxC;;GAEG;AACH,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,GACzE,OAAO,CAAC;IAEV,kBAAkB;IAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,wDAAwD;IACxD,6DAA6D;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;QAC9C,IAAI,EAAE,WAAW,CAAC,IAAI;KACvB,CAAC;IAEF,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1C,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEzE,4CAA4C;IAC5C,2EAA2E;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"inscription-builder.js","sourceRoot":"","sources":["../../src/transactions/inscription-builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aibtc/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0",
|
|
4
4
|
"description": "Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.",
|
|
5
5
|
"mcpName": "io.github.aibtcdev/mcp-server",
|
|
6
6
|
"type": "module",
|
package/skill/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Bitcoin L1 wallet for agents - check balances, send BTC, manage UTX
|
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
author: aibtcdev
|
|
7
|
-
version: 1.
|
|
7
|
+
version: 1.27.0 # x-release-please-version
|
|
8
8
|
npm: "@aibtc/mcp-server"
|
|
9
9
|
github: https://github.com/aibtcdev/aibtc-mcp-server
|
|
10
10
|
---
|
package/dist/wallet.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { PostConditionMode, PostCondition, ClarityValue } from "@stacks/transactions";
|
|
2
|
-
import { StacksNetworkName } from "@stacks/network";
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated This module is superseded by modular replacements.
|
|
5
|
-
* - mnemonicToAccount → src/services/x402.service.ts
|
|
6
|
-
* - transferStx, callContract, deployContract, sign*, broadcast* → src/transactions/builder.ts
|
|
7
|
-
* - getAccountInfo, getStxBalance, getTransactionStatus → src/services/hiro-api.ts
|
|
8
|
-
* - parseArgToClarityValue → src/transactions/clarity-values.ts
|
|
9
|
-
* - Network, getStacksNetwork, getApiBaseUrl → src/config/networks.ts
|
|
10
|
-
* This file will be removed in a future version.
|
|
11
|
-
*/
|
|
12
|
-
/** @deprecated Use Network type from src/config/networks.ts */
|
|
13
|
-
export type Network = "mainnet" | "testnet";
|
|
14
|
-
/** @deprecated Use Account type from src/services/x402.service.ts */
|
|
15
|
-
export interface Account {
|
|
16
|
-
address: string;
|
|
17
|
-
privateKey: string;
|
|
18
|
-
network: Network;
|
|
19
|
-
}
|
|
20
|
-
/** @deprecated Use TransactionResult from src/transactions/builder.ts */
|
|
21
|
-
export interface TransferResult {
|
|
22
|
-
txid: string;
|
|
23
|
-
rawTx: string;
|
|
24
|
-
}
|
|
25
|
-
/** @deprecated Use ContractCallOptions from src/transactions/builder.ts */
|
|
26
|
-
export interface ContractCallOptions {
|
|
27
|
-
contractAddress: string;
|
|
28
|
-
contractName: string;
|
|
29
|
-
functionName: string;
|
|
30
|
-
functionArgs: ClarityValue[];
|
|
31
|
-
postConditionMode?: PostConditionMode;
|
|
32
|
-
postConditions?: PostCondition[];
|
|
33
|
-
}
|
|
34
|
-
/** @deprecated Use ContractDeployOptions from src/transactions/builder.ts */
|
|
35
|
-
export interface ContractDeployOptions {
|
|
36
|
-
contractName: string;
|
|
37
|
-
codeBody: string;
|
|
38
|
-
}
|
|
39
|
-
/** @deprecated Use mnemonicToAccount from src/services/x402.service.ts */
|
|
40
|
-
export declare function mnemonicToAccount(mnemonic: string, network: Network): Promise<Account>;
|
|
41
|
-
/** @deprecated Use getStacksNetwork from src/config/networks.ts */
|
|
42
|
-
export declare function getStacksNetwork(network: Network): StacksNetworkName;
|
|
43
|
-
/** @deprecated Use getApiBaseUrl from src/config/networks.ts */
|
|
44
|
-
export declare function getApiBaseUrl(network: Network): string;
|
|
45
|
-
/**
|
|
46
|
-
* Get account info including nonce and balance from the Stacks API
|
|
47
|
-
* @deprecated Use HiroApiService.getAccountInfo from src/services/hiro-api.ts
|
|
48
|
-
*/
|
|
49
|
-
export declare function getAccountInfo(address: string, network: Network): Promise<{
|
|
50
|
-
nonce: number;
|
|
51
|
-
balance: string;
|
|
52
|
-
}>;
|
|
53
|
-
/**
|
|
54
|
-
* Get STX balance for an address
|
|
55
|
-
* @deprecated Use HiroApiService.getStxBalance from src/services/hiro-api.ts
|
|
56
|
-
*/
|
|
57
|
-
export declare function getStxBalance(address: string, network: Network): Promise<{
|
|
58
|
-
stx: string;
|
|
59
|
-
stxLocked: string;
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* Transfer STX tokens to a recipient
|
|
63
|
-
* @deprecated Use TransactionBuilder.transferStx from src/transactions/builder.ts
|
|
64
|
-
*/
|
|
65
|
-
export declare function transferStx(account: Account, recipient: string, amount: bigint, memo?: string): Promise<TransferResult>;
|
|
66
|
-
/**
|
|
67
|
-
* Call a smart contract function
|
|
68
|
-
* @deprecated Use TransactionBuilder.callContract from src/transactions/builder.ts
|
|
69
|
-
*/
|
|
70
|
-
export declare function callContract(account: Account, options: ContractCallOptions): Promise<TransferResult>;
|
|
71
|
-
/**
|
|
72
|
-
* Deploy a smart contract
|
|
73
|
-
* @deprecated Use TransactionBuilder.deployContract from src/transactions/builder.ts
|
|
74
|
-
*/
|
|
75
|
-
export declare function deployContract(account: Account, options: ContractDeployOptions): Promise<TransferResult>;
|
|
76
|
-
/**
|
|
77
|
-
* Sign a transaction without broadcasting (for offline signing)
|
|
78
|
-
* @deprecated Use TransactionBuilder.signStxTransfer from src/transactions/builder.ts
|
|
79
|
-
*/
|
|
80
|
-
export declare function signStxTransfer(account: Account, recipient: string, amount: bigint, memo?: string): Promise<{
|
|
81
|
-
signedTx: string;
|
|
82
|
-
txid: string;
|
|
83
|
-
}>;
|
|
84
|
-
/**
|
|
85
|
-
* Sign a contract call without broadcasting
|
|
86
|
-
* @deprecated Use TransactionBuilder.signContractCall from src/transactions/builder.ts
|
|
87
|
-
*/
|
|
88
|
-
export declare function signContractCall(account: Account, options: ContractCallOptions): Promise<{
|
|
89
|
-
signedTx: string;
|
|
90
|
-
txid: string;
|
|
91
|
-
}>;
|
|
92
|
-
/**
|
|
93
|
-
* Broadcast a pre-signed transaction
|
|
94
|
-
* @deprecated Use TransactionBuilder.broadcastSignedTransaction from src/transactions/builder.ts
|
|
95
|
-
*/
|
|
96
|
-
export declare function broadcastSignedTransaction(signedTx: string, network: Network): Promise<{
|
|
97
|
-
txid: string;
|
|
98
|
-
}>;
|
|
99
|
-
/**
|
|
100
|
-
* Get transaction status
|
|
101
|
-
* @deprecated Use HiroApiService.getTransactionStatus from src/services/hiro-api.ts
|
|
102
|
-
*/
|
|
103
|
-
export declare function getTransactionStatus(txid: string, network: Network): Promise<{
|
|
104
|
-
status: string;
|
|
105
|
-
block_height?: number;
|
|
106
|
-
tx_result?: unknown;
|
|
107
|
-
}>;
|
|
108
|
-
/**
|
|
109
|
-
* Parse a JSON argument into a ClarityValue
|
|
110
|
-
* Supports: string, number, boolean, principal, buffer, list, tuple, optional
|
|
111
|
-
* @deprecated Use parseArgToClarityValue from src/transactions/clarity-values.ts
|
|
112
|
-
*/
|
|
113
|
-
export declare function parseArgToClarityValue(arg: unknown): ClarityValue;
|
|
114
|
-
//# sourceMappingURL=wallet.d.ts.map
|
package/dist/wallet.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
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
|
-
import { hexToBytes } from "@stacks/common";
|
|
4
|
-
/** @deprecated Use mnemonicToAccount from src/services/x402.service.ts */
|
|
5
|
-
export async function mnemonicToAccount(mnemonic, network) {
|
|
6
|
-
const wallet = await generateWallet({
|
|
7
|
-
secretKey: mnemonic,
|
|
8
|
-
password: "",
|
|
9
|
-
});
|
|
10
|
-
const account = wallet.accounts[0];
|
|
11
|
-
const address = getStxAddress(account, network);
|
|
12
|
-
return {
|
|
13
|
-
address,
|
|
14
|
-
privateKey: account.stxPrivateKey,
|
|
15
|
-
network,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
/** @deprecated Use getStacksNetwork from src/config/networks.ts */
|
|
19
|
-
export function getStacksNetwork(network) {
|
|
20
|
-
return network === "mainnet" ? "mainnet" : "testnet";
|
|
21
|
-
}
|
|
22
|
-
/** @deprecated Use getApiBaseUrl from src/config/networks.ts */
|
|
23
|
-
export function getApiBaseUrl(network) {
|
|
24
|
-
return network === "mainnet"
|
|
25
|
-
? "https://api.mainnet.hiro.so"
|
|
26
|
-
: "https://api.testnet.hiro.so";
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get account info including nonce and balance from the Stacks API
|
|
30
|
-
* @deprecated Use HiroApiService.getAccountInfo from src/services/hiro-api.ts
|
|
31
|
-
*/
|
|
32
|
-
export async function getAccountInfo(address, network) {
|
|
33
|
-
const baseUrl = getApiBaseUrl(network);
|
|
34
|
-
const response = await fetch(`${baseUrl}/v2/accounts/${address}`);
|
|
35
|
-
if (!response.ok) {
|
|
36
|
-
throw new Error(`Failed to get account info: ${response.statusText}`);
|
|
37
|
-
}
|
|
38
|
-
const data = await response.json();
|
|
39
|
-
return {
|
|
40
|
-
nonce: data.nonce,
|
|
41
|
-
balance: data.balance,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get STX balance for an address
|
|
46
|
-
* @deprecated Use HiroApiService.getStxBalance from src/services/hiro-api.ts
|
|
47
|
-
*/
|
|
48
|
-
export async function getStxBalance(address, network) {
|
|
49
|
-
const baseUrl = getApiBaseUrl(network);
|
|
50
|
-
const response = await fetch(`${baseUrl}/extended/v1/address/${address}/stx`);
|
|
51
|
-
if (!response.ok) {
|
|
52
|
-
throw new Error(`Failed to get STX balance: ${response.statusText}`);
|
|
53
|
-
}
|
|
54
|
-
const data = await response.json();
|
|
55
|
-
return {
|
|
56
|
-
stx: data.balance,
|
|
57
|
-
stxLocked: data.locked,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Transfer STX tokens to a recipient
|
|
62
|
-
* @deprecated Use TransactionBuilder.transferStx from src/transactions/builder.ts
|
|
63
|
-
*/
|
|
64
|
-
export async function transferStx(account, recipient, amount, memo) {
|
|
65
|
-
const networkName = getStacksNetwork(account.network);
|
|
66
|
-
const transaction = await makeSTXTokenTransfer({
|
|
67
|
-
recipient,
|
|
68
|
-
amount,
|
|
69
|
-
senderKey: account.privateKey,
|
|
70
|
-
network: networkName,
|
|
71
|
-
memo: memo || "",
|
|
72
|
-
});
|
|
73
|
-
const broadcastResponse = await broadcastTransaction({
|
|
74
|
-
transaction,
|
|
75
|
-
network: networkName,
|
|
76
|
-
});
|
|
77
|
-
if ("error" in broadcastResponse) {
|
|
78
|
-
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
txid: broadcastResponse.txid,
|
|
82
|
-
rawTx: transaction.serialize(),
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Call a smart contract function
|
|
87
|
-
* @deprecated Use TransactionBuilder.callContract from src/transactions/builder.ts
|
|
88
|
-
*/
|
|
89
|
-
export async function callContract(account, options) {
|
|
90
|
-
const networkName = getStacksNetwork(account.network);
|
|
91
|
-
const transaction = await makeContractCall({
|
|
92
|
-
contractAddress: options.contractAddress,
|
|
93
|
-
contractName: options.contractName,
|
|
94
|
-
functionName: options.functionName,
|
|
95
|
-
functionArgs: options.functionArgs,
|
|
96
|
-
senderKey: account.privateKey,
|
|
97
|
-
network: networkName,
|
|
98
|
-
postConditionMode: options.postConditionMode || PostConditionMode.Deny,
|
|
99
|
-
postConditions: options.postConditions || [],
|
|
100
|
-
});
|
|
101
|
-
const broadcastResponse = await broadcastTransaction({
|
|
102
|
-
transaction,
|
|
103
|
-
network: networkName,
|
|
104
|
-
});
|
|
105
|
-
if ("error" in broadcastResponse) {
|
|
106
|
-
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
txid: broadcastResponse.txid,
|
|
110
|
-
rawTx: transaction.serialize(),
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Deploy a smart contract
|
|
115
|
-
* @deprecated Use TransactionBuilder.deployContract from src/transactions/builder.ts
|
|
116
|
-
*/
|
|
117
|
-
export async function deployContract(account, options) {
|
|
118
|
-
const networkName = getStacksNetwork(account.network);
|
|
119
|
-
const transaction = await makeContractDeploy({
|
|
120
|
-
contractName: options.contractName,
|
|
121
|
-
codeBody: options.codeBody,
|
|
122
|
-
senderKey: account.privateKey,
|
|
123
|
-
network: networkName,
|
|
124
|
-
});
|
|
125
|
-
const broadcastResponse = await broadcastTransaction({
|
|
126
|
-
transaction,
|
|
127
|
-
network: networkName,
|
|
128
|
-
});
|
|
129
|
-
if ("error" in broadcastResponse) {
|
|
130
|
-
throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
|
|
131
|
-
}
|
|
132
|
-
return {
|
|
133
|
-
txid: broadcastResponse.txid,
|
|
134
|
-
rawTx: transaction.serialize(),
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Sign a transaction without broadcasting (for offline signing)
|
|
139
|
-
* @deprecated Use TransactionBuilder.signStxTransfer from src/transactions/builder.ts
|
|
140
|
-
*/
|
|
141
|
-
export async function signStxTransfer(account, recipient, amount, memo) {
|
|
142
|
-
const networkName = getStacksNetwork(account.network);
|
|
143
|
-
const transaction = await makeSTXTokenTransfer({
|
|
144
|
-
recipient,
|
|
145
|
-
amount,
|
|
146
|
-
senderKey: account.privateKey,
|
|
147
|
-
network: networkName,
|
|
148
|
-
memo: memo || "",
|
|
149
|
-
});
|
|
150
|
-
return {
|
|
151
|
-
signedTx: transaction.serialize(),
|
|
152
|
-
txid: transaction.txid(),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Sign a contract call without broadcasting
|
|
157
|
-
* @deprecated Use TransactionBuilder.signContractCall from src/transactions/builder.ts
|
|
158
|
-
*/
|
|
159
|
-
export async function signContractCall(account, options) {
|
|
160
|
-
const networkName = getStacksNetwork(account.network);
|
|
161
|
-
const transaction = await makeContractCall({
|
|
162
|
-
contractAddress: options.contractAddress,
|
|
163
|
-
contractName: options.contractName,
|
|
164
|
-
functionName: options.functionName,
|
|
165
|
-
functionArgs: options.functionArgs,
|
|
166
|
-
senderKey: account.privateKey,
|
|
167
|
-
network: networkName,
|
|
168
|
-
postConditionMode: options.postConditionMode || PostConditionMode.Deny,
|
|
169
|
-
postConditions: options.postConditions || [],
|
|
170
|
-
});
|
|
171
|
-
return {
|
|
172
|
-
signedTx: transaction.serialize(),
|
|
173
|
-
txid: transaction.txid(),
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Broadcast a pre-signed transaction
|
|
178
|
-
* @deprecated Use TransactionBuilder.broadcastSignedTransaction from src/transactions/builder.ts
|
|
179
|
-
*/
|
|
180
|
-
export async function broadcastSignedTransaction(signedTx, network) {
|
|
181
|
-
const baseUrl = getApiBaseUrl(network);
|
|
182
|
-
const txBytes = Buffer.from(hexToBytes(signedTx));
|
|
183
|
-
const response = await fetch(`${baseUrl}/v2/transactions`, {
|
|
184
|
-
method: "POST",
|
|
185
|
-
headers: {
|
|
186
|
-
"Content-Type": "application/octet-stream",
|
|
187
|
-
},
|
|
188
|
-
body: txBytes,
|
|
189
|
-
});
|
|
190
|
-
if (!response.ok) {
|
|
191
|
-
const errorText = await response.text();
|
|
192
|
-
throw new Error(`Broadcast failed: ${response.statusText} - ${errorText}`);
|
|
193
|
-
}
|
|
194
|
-
const txid = await response.text();
|
|
195
|
-
return { txid: txid.replace(/"/g, "") };
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Get transaction status
|
|
199
|
-
* @deprecated Use HiroApiService.getTransactionStatus from src/services/hiro-api.ts
|
|
200
|
-
*/
|
|
201
|
-
export async function getTransactionStatus(txid, network) {
|
|
202
|
-
const baseUrl = getApiBaseUrl(network);
|
|
203
|
-
const response = await fetch(`${baseUrl}/extended/v1/tx/${txid}`);
|
|
204
|
-
if (!response.ok) {
|
|
205
|
-
if (response.status === 404) {
|
|
206
|
-
return { status: "pending" };
|
|
207
|
-
}
|
|
208
|
-
throw new Error(`Failed to get transaction status: ${response.statusText}`);
|
|
209
|
-
}
|
|
210
|
-
const data = await response.json();
|
|
211
|
-
return {
|
|
212
|
-
status: data.tx_status,
|
|
213
|
-
block_height: data.block_height,
|
|
214
|
-
tx_result: data.tx_result,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Parse a JSON argument into a ClarityValue
|
|
219
|
-
* Supports: string, number, boolean, principal, buffer, list, tuple, optional
|
|
220
|
-
* @deprecated Use parseArgToClarityValue from src/transactions/clarity-values.ts
|
|
221
|
-
*/
|
|
222
|
-
export function parseArgToClarityValue(arg) {
|
|
223
|
-
if (arg === null || arg === undefined) {
|
|
224
|
-
return noneCV();
|
|
225
|
-
}
|
|
226
|
-
if (typeof arg === "boolean") {
|
|
227
|
-
return boolCV(arg);
|
|
228
|
-
}
|
|
229
|
-
if (typeof arg === "number") {
|
|
230
|
-
if (Number.isInteger(arg)) {
|
|
231
|
-
return arg >= 0 ? uintCV(arg) : intCV(arg);
|
|
232
|
-
}
|
|
233
|
-
throw new Error("Floating point numbers not supported in Clarity");
|
|
234
|
-
}
|
|
235
|
-
if (typeof arg === "string") {
|
|
236
|
-
// Check if it's a principal (Stacks address pattern)
|
|
237
|
-
if (arg.match(/^S[A-Z0-9]{38,}(\.[a-zA-Z][a-zA-Z0-9-]*)?$/)) {
|
|
238
|
-
return principalCV(arg);
|
|
239
|
-
}
|
|
240
|
-
// Default to string-utf8
|
|
241
|
-
return stringUtf8CV(arg);
|
|
242
|
-
}
|
|
243
|
-
if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
|
|
244
|
-
return bufferCV(arg);
|
|
245
|
-
}
|
|
246
|
-
if (Array.isArray(arg)) {
|
|
247
|
-
return listCV(arg.map(parseArgToClarityValue));
|
|
248
|
-
}
|
|
249
|
-
if (typeof arg === "object") {
|
|
250
|
-
const obj = arg;
|
|
251
|
-
// Check for typed values with explicit type field
|
|
252
|
-
if ("type" in obj && "value" in obj) {
|
|
253
|
-
const typedArg = obj;
|
|
254
|
-
switch (typedArg.type) {
|
|
255
|
-
case "uint":
|
|
256
|
-
return uintCV(BigInt(typedArg.value));
|
|
257
|
-
case "int":
|
|
258
|
-
return intCV(BigInt(typedArg.value));
|
|
259
|
-
case "string-ascii":
|
|
260
|
-
return stringAsciiCV(typedArg.value);
|
|
261
|
-
case "string-utf8":
|
|
262
|
-
return stringUtf8CV(typedArg.value);
|
|
263
|
-
case "bool":
|
|
264
|
-
return boolCV(typedArg.value);
|
|
265
|
-
case "principal":
|
|
266
|
-
return principalCV(typedArg.value);
|
|
267
|
-
case "buffer":
|
|
268
|
-
return bufferCV(Buffer.from(typedArg.value, "hex"));
|
|
269
|
-
case "none":
|
|
270
|
-
return noneCV();
|
|
271
|
-
case "some":
|
|
272
|
-
return someCV(parseArgToClarityValue(typedArg.value));
|
|
273
|
-
case "list":
|
|
274
|
-
return listCV(typedArg.value.map(parseArgToClarityValue));
|
|
275
|
-
case "tuple": {
|
|
276
|
-
const tupleData = {};
|
|
277
|
-
for (const [key, val] of Object.entries(typedArg.value)) {
|
|
278
|
-
tupleData[key] = parseArgToClarityValue(val);
|
|
279
|
-
}
|
|
280
|
-
return tupleCV(tupleData);
|
|
281
|
-
}
|
|
282
|
-
default:
|
|
283
|
-
throw new Error(`Unknown type: ${typedArg.type}`);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
// Treat as tuple
|
|
287
|
-
const tupleData = {};
|
|
288
|
-
for (const [key, val] of Object.entries(obj)) {
|
|
289
|
-
tupleData[key] = parseArgToClarityValue(val);
|
|
290
|
-
}
|
|
291
|
-
return tupleCV(tupleData);
|
|
292
|
-
}
|
|
293
|
-
throw new Error(`Cannot convert argument to ClarityValue: ${JSON.stringify(arg)}`);
|
|
294
|
-
}
|
|
295
|
-
//# sourceMappingURL=wallet.js.map
|
package/dist/wallet.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
|