@aibtc/mcp-server 1.40.0 → 1.42.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/dist/services/credentials.d.ts +31 -0
- package/dist/services/credentials.d.ts.map +1 -0
- package/dist/services/credentials.js +162 -0
- package/dist/services/credentials.js.map +1 -0
- package/dist/services/erc8004.service.d.ts +28 -0
- package/dist/services/erc8004.service.d.ts.map +1 -1
- package/dist/services/erc8004.service.js +115 -0
- package/dist/services/erc8004.service.js.map +1 -1
- package/dist/services/unisat-indexer.d.ts +97 -0
- package/dist/services/unisat-indexer.d.ts.map +1 -0
- package/dist/services/unisat-indexer.js +178 -0
- package/dist/services/unisat-indexer.js.map +1 -0
- package/dist/tools/bounty-scanner.tools.d.ts +29 -0
- package/dist/tools/bounty-scanner.tools.d.ts.map +1 -0
- package/dist/tools/bounty-scanner.tools.js +405 -0
- package/dist/tools/bounty-scanner.tools.js.map +1 -0
- package/dist/tools/credentials.tools.d.ts +9 -0
- package/dist/tools/credentials.tools.d.ts.map +1 -0
- package/dist/tools/credentials.tools.js +151 -0
- package/dist/tools/credentials.tools.js.map +1 -0
- package/dist/tools/identity.tools.d.ts +22 -0
- package/dist/tools/identity.tools.d.ts.map +1 -0
- package/dist/tools/identity.tools.js +404 -0
- package/dist/tools/identity.tools.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/jingswap.tools.d.ts.map +1 -1
- package/dist/tools/jingswap.tools.js +19 -7
- package/dist/tools/jingswap.tools.js.map +1 -1
- package/dist/tools/ordinals-p2p.tools.js +2 -2
- package/dist/tools/ordinals-p2p.tools.js.map +1 -1
- package/dist/tools/runes.tools.d.ts +25 -0
- package/dist/tools/runes.tools.d.ts.map +1 -0
- package/dist/tools/runes.tools.js +464 -0
- package/dist/tools/runes.tools.js.map +1 -0
- package/dist/tools/skill-mappings.d.ts.map +1 -1
- package/dist/tools/skill-mappings.js +40 -0
- package/dist/tools/skill-mappings.js.map +1 -1
- package/dist/tools/souldinals.tools.d.ts +18 -0
- package/dist/tools/souldinals.tools.d.ts.map +1 -0
- package/dist/tools/souldinals.tools.js +551 -0
- package/dist/tools/souldinals.tools.js.map +1 -0
- package/dist/tools/stacking-lottery.tools.d.ts.map +1 -1
- package/dist/tools/stacking-lottery.tools.js +7 -4
- package/dist/tools/stacking-lottery.tools.js.map +1 -1
- package/dist/transactions/rune-transfer-builder.d.ts +46 -0
- package/dist/transactions/rune-transfer-builder.d.ts.map +1 -0
- package/dist/transactions/rune-transfer-builder.js +130 -0
- package/dist/transactions/rune-transfer-builder.js.map +1 -0
- package/dist/transactions/runestone-builder.d.ts +40 -0
- package/dist/transactions/runestone-builder.d.ts.map +1 -0
- package/dist/transactions/runestone-builder.js +76 -0
- package/dist/transactions/runestone-builder.js.map +1 -0
- package/package.json +2 -1
- package/skill/SKILL.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stacking-lottery.tools.js","sourceRoot":"","sources":["../../src/tools/stacking-lottery.tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stacking-lottery.tools.js","sourceRoot":"","sources":["../../src/tools/stacking-lottery.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rune Transfer Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a transaction to transfer runes from one address to another.
|
|
5
|
+
* Transaction structure:
|
|
6
|
+
* - P2TR inputs: rune UTXOs (signed with taproot key)
|
|
7
|
+
* - P2WPKH inputs: cardinal UTXOs for fees (signed with segwit key)
|
|
8
|
+
* - OP_RETURN output: Runestone with edict + change pointer
|
|
9
|
+
* - P2TR output: recipient receives runes (dust amount)
|
|
10
|
+
* - P2TR output: rune change back to sender (if partial transfer)
|
|
11
|
+
* - P2WPKH output: BTC change back to sender
|
|
12
|
+
*/
|
|
13
|
+
import * as btc from "@scure/btc-signer";
|
|
14
|
+
import type { Network } from "../config/networks.js";
|
|
15
|
+
import type { UTXO } from "../services/mempool-api.js";
|
|
16
|
+
export interface RuneTransferOptions {
|
|
17
|
+
runeId: string;
|
|
18
|
+
amount: bigint;
|
|
19
|
+
runeUtxos: UTXO[];
|
|
20
|
+
feeUtxos: UTXO[];
|
|
21
|
+
recipientAddress: string;
|
|
22
|
+
feeRate: number;
|
|
23
|
+
senderPubKey: Uint8Array;
|
|
24
|
+
senderTaprootPubKey: Uint8Array;
|
|
25
|
+
senderAddress: string;
|
|
26
|
+
senderTaprootAddress: string;
|
|
27
|
+
network: Network;
|
|
28
|
+
}
|
|
29
|
+
export interface RuneTransferResult {
|
|
30
|
+
tx: btc.Transaction;
|
|
31
|
+
fee: number;
|
|
32
|
+
btcChange: number;
|
|
33
|
+
vsize: number;
|
|
34
|
+
taprootInputIndices: number[];
|
|
35
|
+
feeInputIndices: number[];
|
|
36
|
+
}
|
|
37
|
+
export declare function buildRuneTransfer(options: RuneTransferOptions): RuneTransferResult;
|
|
38
|
+
/**
|
|
39
|
+
* Sign a rune transfer transaction with mixed key types (P2TR + P2WPKH).
|
|
40
|
+
*/
|
|
41
|
+
export declare function signRuneTransfer(tx: btc.Transaction, taprootPrivateKey: Uint8Array, btcPrivateKey: Uint8Array, taprootInputIndices: number[], feeInputIndices: number[]): {
|
|
42
|
+
txHex: string;
|
|
43
|
+
txid: string;
|
|
44
|
+
vsize: number;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=rune-transfer-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rune-transfer-builder.d.ts","sourceRoot":"","sources":["../../src/transactions/rune-transfer-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AASrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,UAAU,CAAC;IACzB,mBAAmB,EAAE,UAAU,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAQD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgIlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,GAAG,CAAC,WAAW,EACnB,iBAAiB,EAAE,UAAU,EAC7B,aAAa,EAAE,UAAU,EACzB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,eAAe,EAAE,MAAM,EAAE,GACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAUhD"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rune Transfer Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a transaction to transfer runes from one address to another.
|
|
5
|
+
* Transaction structure:
|
|
6
|
+
* - P2TR inputs: rune UTXOs (signed with taproot key)
|
|
7
|
+
* - P2WPKH inputs: cardinal UTXOs for fees (signed with segwit key)
|
|
8
|
+
* - OP_RETURN output: Runestone with edict + change pointer
|
|
9
|
+
* - P2TR output: recipient receives runes (dust amount)
|
|
10
|
+
* - P2TR output: rune change back to sender (if partial transfer)
|
|
11
|
+
* - P2WPKH output: BTC change back to sender
|
|
12
|
+
*/
|
|
13
|
+
import * as btc from "@scure/btc-signer";
|
|
14
|
+
import { P2WPKH_INPUT_VBYTES, P2WPKH_OUTPUT_VBYTES, P2TR_OUTPUT_VBYTES, P2TR_INPUT_BASE_VBYTES, TX_OVERHEAD_VBYTES, DUST_THRESHOLD, } from "../config/bitcoin-constants.js";
|
|
15
|
+
import { buildRunestoneScript, parseRuneId } from "./runestone-builder.js";
|
|
16
|
+
function getBtcNetwork(network) {
|
|
17
|
+
return network === "testnet" ? btc.TEST_NETWORK : btc.NETWORK;
|
|
18
|
+
}
|
|
19
|
+
const OP_RETURN_VBYTES = 50;
|
|
20
|
+
export function buildRuneTransfer(options) {
|
|
21
|
+
const { runeId, amount, runeUtxos, feeUtxos, recipientAddress, feeRate, senderPubKey, senderTaprootPubKey, senderAddress, senderTaprootAddress, network, } = options;
|
|
22
|
+
if (runeUtxos.length === 0)
|
|
23
|
+
throw new Error("No rune UTXOs provided");
|
|
24
|
+
if (feeUtxos.length === 0)
|
|
25
|
+
throw new Error("No fee UTXOs provided");
|
|
26
|
+
if (feeRate <= 0)
|
|
27
|
+
throw new Error("Fee rate must be positive");
|
|
28
|
+
if (amount <= 0n)
|
|
29
|
+
throw new Error("Amount must be positive");
|
|
30
|
+
const btcNetwork = getBtcNetwork(network);
|
|
31
|
+
const tx = new btc.Transaction();
|
|
32
|
+
const { block, txIndex } = parseRuneId(runeId);
|
|
33
|
+
// Rune UTXOs (P2TR inputs)
|
|
34
|
+
const taprootPayment = btc.p2tr(senderTaprootPubKey, undefined, btcNetwork);
|
|
35
|
+
const taprootInputIndices = [];
|
|
36
|
+
for (let i = 0; i < runeUtxos.length; i++) {
|
|
37
|
+
const utxo = runeUtxos[i];
|
|
38
|
+
tx.addInput({
|
|
39
|
+
txid: utxo.txid,
|
|
40
|
+
index: utxo.vout,
|
|
41
|
+
witnessUtxo: { script: taprootPayment.script, amount: BigInt(utxo.value) },
|
|
42
|
+
});
|
|
43
|
+
taprootInputIndices.push(i);
|
|
44
|
+
}
|
|
45
|
+
// Fee UTXOs (P2WPKH inputs)
|
|
46
|
+
const senderP2wpkh = btc.p2wpkh(senderPubKey, btcNetwork);
|
|
47
|
+
const sortedFeeUtxos = [...feeUtxos]
|
|
48
|
+
.filter((u) => u.status.confirmed)
|
|
49
|
+
.sort((a, b) => b.value - a.value);
|
|
50
|
+
if (sortedFeeUtxos.length === 0)
|
|
51
|
+
throw new Error("No confirmed fee UTXOs available");
|
|
52
|
+
const selectedFeeUtxos = [];
|
|
53
|
+
let feeTotal = 0;
|
|
54
|
+
const feeInputIndices = [];
|
|
55
|
+
for (const utxo of sortedFeeUtxos) {
|
|
56
|
+
selectedFeeUtxos.push(utxo);
|
|
57
|
+
feeTotal += utxo.value;
|
|
58
|
+
const estimatedVsize = TX_OVERHEAD_VBYTES +
|
|
59
|
+
runeUtxos.length * P2TR_INPUT_BASE_VBYTES +
|
|
60
|
+
selectedFeeUtxos.length * P2WPKH_INPUT_VBYTES +
|
|
61
|
+
OP_RETURN_VBYTES +
|
|
62
|
+
P2TR_OUTPUT_VBYTES + // recipient
|
|
63
|
+
P2TR_OUTPUT_VBYTES + // rune change
|
|
64
|
+
P2WPKH_OUTPUT_VBYTES; // BTC change
|
|
65
|
+
if (feeTotal >= Math.ceil(estimatedVsize * feeRate) + DUST_THRESHOLD) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const feeInputStartIdx = runeUtxos.length;
|
|
70
|
+
for (let i = 0; i < selectedFeeUtxos.length; i++) {
|
|
71
|
+
const utxo = selectedFeeUtxos[i];
|
|
72
|
+
tx.addInput({
|
|
73
|
+
txid: utxo.txid,
|
|
74
|
+
index: utxo.vout,
|
|
75
|
+
witnessUtxo: { script: senderP2wpkh.script, amount: BigInt(utxo.value) },
|
|
76
|
+
});
|
|
77
|
+
feeInputIndices.push(feeInputStartIdx + i);
|
|
78
|
+
}
|
|
79
|
+
// Outputs:
|
|
80
|
+
// 0: OP_RETURN Runestone
|
|
81
|
+
// 1: Recipient
|
|
82
|
+
// 2: Rune change (sender taproot)
|
|
83
|
+
// 3: BTC change (sender segwit)
|
|
84
|
+
const edict = { block, txIndex, amount, outputIndex: 1 };
|
|
85
|
+
const runestoneScript = buildRunestoneScript({ edict, changeOutput: 2 });
|
|
86
|
+
tx.addOutput({ script: runestoneScript, amount: 0n });
|
|
87
|
+
tx.addOutputAddress(recipientAddress, BigInt(DUST_THRESHOLD), btcNetwork);
|
|
88
|
+
const runeSats = runeUtxos.reduce((sum, u) => sum + u.value, 0);
|
|
89
|
+
const runeChangeSats = runeSats - DUST_THRESHOLD;
|
|
90
|
+
if (runeChangeSats >= DUST_THRESHOLD) {
|
|
91
|
+
tx.addOutputAddress(senderTaprootAddress, BigInt(runeChangeSats), btcNetwork);
|
|
92
|
+
}
|
|
93
|
+
const actualOutputCount = 3 + (runeChangeSats >= DUST_THRESHOLD ? 1 : 0);
|
|
94
|
+
const finalVsize = TX_OVERHEAD_VBYTES +
|
|
95
|
+
runeUtxos.length * P2TR_INPUT_BASE_VBYTES +
|
|
96
|
+
selectedFeeUtxos.length * P2WPKH_INPUT_VBYTES +
|
|
97
|
+
OP_RETURN_VBYTES +
|
|
98
|
+
(actualOutputCount - 1) * P2TR_OUTPUT_VBYTES +
|
|
99
|
+
P2WPKH_OUTPUT_VBYTES;
|
|
100
|
+
const finalFee = Math.ceil(finalVsize * feeRate);
|
|
101
|
+
const btcChange = feeTotal - finalFee;
|
|
102
|
+
if (btcChange < 0) {
|
|
103
|
+
throw new Error(`Insufficient fee UTXOs: have ${feeTotal} sats, need ${finalFee} sats for fee`);
|
|
104
|
+
}
|
|
105
|
+
if (btcChange >= DUST_THRESHOLD) {
|
|
106
|
+
tx.addOutputAddress(senderAddress, BigInt(btcChange), btcNetwork);
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
tx,
|
|
110
|
+
fee: finalFee,
|
|
111
|
+
btcChange: btcChange >= DUST_THRESHOLD ? btcChange : 0,
|
|
112
|
+
vsize: Math.ceil(finalVsize),
|
|
113
|
+
taprootInputIndices,
|
|
114
|
+
feeInputIndices,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Sign a rune transfer transaction with mixed key types (P2TR + P2WPKH).
|
|
119
|
+
*/
|
|
120
|
+
export function signRuneTransfer(tx, taprootPrivateKey, btcPrivateKey, taprootInputIndices, feeInputIndices) {
|
|
121
|
+
for (const idx of taprootInputIndices) {
|
|
122
|
+
tx.signIdx(taprootPrivateKey, idx);
|
|
123
|
+
}
|
|
124
|
+
for (const idx of feeInputIndices) {
|
|
125
|
+
tx.signIdx(btcPrivateKey, idx);
|
|
126
|
+
}
|
|
127
|
+
tx.finalize();
|
|
128
|
+
return { txHex: tx.hex, txid: tx.id, vsize: tx.vsize };
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=rune-transfer-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rune-transfer-builder.js","sourceRoot":"","sources":["../../src/transactions/rune-transfer-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runestone Builder
|
|
3
|
+
*
|
|
4
|
+
* Minimal Runestone OP_RETURN encoder for single-edict rune transfers.
|
|
5
|
+
* Encodes a Runestone message as an OP_RETURN output script.
|
|
6
|
+
*
|
|
7
|
+
* Protocol spec: https://docs.ordinals.com/runes.html
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Encode a bigint as unsigned LEB128 bytes.
|
|
11
|
+
*/
|
|
12
|
+
export declare function encodeLEB128(value: bigint): Uint8Array;
|
|
13
|
+
export interface RuneEdict {
|
|
14
|
+
/** Rune ID block height (e.g., 840000) */
|
|
15
|
+
block: bigint;
|
|
16
|
+
/** Rune ID transaction index within block */
|
|
17
|
+
txIndex: bigint;
|
|
18
|
+
/** Amount of runes to transfer (in smallest unit) */
|
|
19
|
+
amount: bigint;
|
|
20
|
+
/** Output index to send runes to */
|
|
21
|
+
outputIndex: number;
|
|
22
|
+
}
|
|
23
|
+
export interface RunestoneOptions {
|
|
24
|
+
edict: RuneEdict;
|
|
25
|
+
/** Output index for remaining rune balance (change pointer) */
|
|
26
|
+
changeOutput: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build a Runestone OP_RETURN script for a single-edict rune transfer.
|
|
30
|
+
* Always includes an explicit change pointer to avoid burning remaining runes.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildRunestoneScript(options: RunestoneOptions): Uint8Array;
|
|
33
|
+
/**
|
|
34
|
+
* Parse a rune ID string (e.g., "840000:1") into block and tx components.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseRuneId(runeId: string): {
|
|
37
|
+
block: bigint;
|
|
38
|
+
txIndex: bigint;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=runestone-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runestone-builder.d.ts","sourceRoot":"","sources":["../../src/transactions/runestone-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CActD;AAMD,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAmC1E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAS9E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runestone Builder
|
|
3
|
+
*
|
|
4
|
+
* Minimal Runestone OP_RETURN encoder for single-edict rune transfers.
|
|
5
|
+
* Encodes a Runestone message as an OP_RETURN output script.
|
|
6
|
+
*
|
|
7
|
+
* Protocol spec: https://docs.ordinals.com/runes.html
|
|
8
|
+
*/
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// LEB128 encoding
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
/**
|
|
13
|
+
* Encode a bigint as unsigned LEB128 bytes.
|
|
14
|
+
*/
|
|
15
|
+
export function encodeLEB128(value) {
|
|
16
|
+
if (value < 0n)
|
|
17
|
+
throw new Error("LEB128 only encodes unsigned values");
|
|
18
|
+
const bytes = [];
|
|
19
|
+
do {
|
|
20
|
+
let byte = Number(value & 0x7fn);
|
|
21
|
+
value >>= 7n;
|
|
22
|
+
if (value !== 0n) {
|
|
23
|
+
byte |= 0x80;
|
|
24
|
+
}
|
|
25
|
+
bytes.push(byte);
|
|
26
|
+
} while (value !== 0n);
|
|
27
|
+
return new Uint8Array(bytes);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build a Runestone OP_RETURN script for a single-edict rune transfer.
|
|
31
|
+
* Always includes an explicit change pointer to avoid burning remaining runes.
|
|
32
|
+
*/
|
|
33
|
+
export function buildRunestoneScript(options) {
|
|
34
|
+
const { edict, changeOutput } = options;
|
|
35
|
+
const parts = [];
|
|
36
|
+
// Tag 0: edicts body
|
|
37
|
+
const tag0 = encodeLEB128(0n);
|
|
38
|
+
parts.push(tag0, encodeLEB128(edict.block));
|
|
39
|
+
parts.push(tag0, encodeLEB128(edict.txIndex));
|
|
40
|
+
parts.push(tag0, encodeLEB128(edict.amount));
|
|
41
|
+
parts.push(tag0, encodeLEB128(BigInt(edict.outputIndex)));
|
|
42
|
+
// Tag 22: default output (change pointer)
|
|
43
|
+
parts.push(encodeLEB128(22n), encodeLEB128(BigInt(changeOutput)));
|
|
44
|
+
const payloadLength = parts.reduce((sum, p) => sum + p.length, 0);
|
|
45
|
+
// OP_RETURN (0x6a) OP_13 (0x5d) <pushdata>
|
|
46
|
+
const script = [0x6a, 0x5d];
|
|
47
|
+
if (payloadLength < 76) {
|
|
48
|
+
script.push(payloadLength);
|
|
49
|
+
}
|
|
50
|
+
else if (payloadLength < 256) {
|
|
51
|
+
script.push(0x4c, payloadLength);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
script.push(0x4d, payloadLength & 0xff, (payloadLength >> 8) & 0xff);
|
|
55
|
+
}
|
|
56
|
+
for (const part of parts) {
|
|
57
|
+
for (const byte of part) {
|
|
58
|
+
script.push(byte);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return new Uint8Array(script);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parse a rune ID string (e.g., "840000:1") into block and tx components.
|
|
65
|
+
*/
|
|
66
|
+
export function parseRuneId(runeId) {
|
|
67
|
+
const [blockStr, txStr] = runeId.split(":");
|
|
68
|
+
if (!blockStr || !txStr) {
|
|
69
|
+
throw new Error(`Invalid rune ID format: "${runeId}". Expected "block:tx" (e.g., "840000:1")`);
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
block: BigInt(blockStr),
|
|
73
|
+
txIndex: BigInt(txStr),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=runestone-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runestone-builder.js","sourceRoot":"","sources":["../../src/transactions/runestone-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.42.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",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"@faktoryfun/styx-sdk": "^1.3.5",
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
49
49
|
"@noble/curves": "^2.0.1",
|
|
50
|
+
"@noble/hashes": "^2.0.1",
|
|
50
51
|
"@scure/base": "^2.0.0",
|
|
51
52
|
"@scure/bip32": "^1.4.0",
|
|
52
53
|
"@scure/bip39": "^2.0.1",
|
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.42.0 # x-release-please-version
|
|
8
8
|
npm: "@aibtc/mcp-server"
|
|
9
9
|
github: https://github.com/aibtcdev/aibtc-mcp-server
|
|
10
10
|
---
|