blackbox-mcp 0.1.1 → 0.2.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/api.d.ts +2 -0
- package/dist/api.js +17 -12
- package/dist/api.js.map +1 -1
- package/dist/crypto.d.ts +12 -0
- package/dist/crypto.js +82 -0
- package/dist/crypto.js.map +1 -1
- package/dist/index.js +368 -6
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
package/dist/api.d.ts
CHANGED
package/dist/api.js
CHANGED
|
@@ -108,21 +108,26 @@ export class BlackBoxAPI {
|
|
|
108
108
|
const errors = [];
|
|
109
109
|
for (const nodeUrl of this.config.nodeUrls) {
|
|
110
110
|
try {
|
|
111
|
+
const body = {
|
|
112
|
+
chain: params.chain,
|
|
113
|
+
chain_type: params.chainType,
|
|
114
|
+
recipient: params.recipient,
|
|
115
|
+
amount: params.amount,
|
|
116
|
+
token: params.token,
|
|
117
|
+
signature: params.signature,
|
|
118
|
+
merkle_proof: params.merkleProof,
|
|
119
|
+
merkle_root_id: params.merkleRootId,
|
|
120
|
+
key_index: params.keyIndex,
|
|
121
|
+
max_relayer_fee: params.maxRelayerFee || '0',
|
|
122
|
+
};
|
|
123
|
+
if (params.publicKey)
|
|
124
|
+
body.public_key = params.publicKey;
|
|
125
|
+
if (params.treasuryTokenAccount)
|
|
126
|
+
body.treasury_token_account = params.treasuryTokenAccount;
|
|
111
127
|
const resp = await fetch(`${nodeUrl}/api/v2/relay/withdraw`, {
|
|
112
128
|
method: 'POST',
|
|
113
129
|
headers: { 'Content-Type': 'application/json' },
|
|
114
|
-
body: JSON.stringify(
|
|
115
|
-
chain: params.chain,
|
|
116
|
-
chain_type: params.chainType,
|
|
117
|
-
recipient: params.recipient,
|
|
118
|
-
amount: params.amount,
|
|
119
|
-
token: params.token,
|
|
120
|
-
signature: params.signature,
|
|
121
|
-
merkle_proof: params.merkleProof,
|
|
122
|
-
merkle_root_id: params.merkleRootId,
|
|
123
|
-
key_index: params.keyIndex,
|
|
124
|
-
max_relayer_fee: params.maxRelayerFee || '0',
|
|
125
|
-
}),
|
|
130
|
+
body: JSON.stringify(body),
|
|
126
131
|
});
|
|
127
132
|
const data = await resp.json();
|
|
128
133
|
if (resp.ok)
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAiDA,MAAM,OAAO,WAAW;IACd,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAI,IAAY;QAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/C,SAAS;gBACX,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,IAAI,EAAO,CAAC;YAChC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAM,oBAAoB,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAC1C,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU;YACvC,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ;YACjC,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU;YACvC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU;YACrD,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO;YAC9B,gBAAgB,EAAE,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,gBAAgB;YACzD,cAAc,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,cAAc;YACnD,eAAe,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,eAAe;YACtD,gBAAgB,EAAE,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,gBAAgB,IAAI,EAAE;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAM,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAc;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC5F,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAM,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnF,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAChB,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY;YAC9C,uBAAuB,EAAE,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,uBAAuB;YAC3E,YAAY,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK;YACtD,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU;SACxC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAM,qBAAqB,CAAC,CAAC;QACrE,iGAAiG;QACjG,eAAe;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAK,GAAG,GAAG;QAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAStB;QACC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,0BAA0B,EAAE;oBAC7D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,eAAe,EAAE,MAAM,CAAC,aAAa;wBACrC,YAAY,EAAE,MAAM,CAAC,WAAW;wBAChC,mBAAmB,EAAE,MAAM,CAAC,kBAAkB;wBAC9C,YAAY,EAAE,MAAM,CAAC,WAAW;wBAChC,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC;wBAC/C,gBAAgB,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;qBAC9C,CAAC;iBACH,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,OAAO,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC9E,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA0B,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,IAAY,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;gBAC3E,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,aAAa,EAAE,IAAI,CAAC,cAAc;oBAClC,aAAa,EAAE,IAAI,CAAC,cAAc;oBAClC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;iBACzC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -7,7 +7,11 @@ export declare function reconstructPrivateKey(keyshares: Array<{
|
|
|
7
7
|
privateKey: bigint;
|
|
8
8
|
privateKeyHex: string;
|
|
9
9
|
};
|
|
10
|
+
export declare function isSolanaAddress(address: string): boolean;
|
|
11
|
+
export declare function secp256k1ToEd25519Seed(secp256k1PrivKeyHex: string): Promise<Uint8Array>;
|
|
12
|
+
export declare function verifySolanaKeyMatchesAddress(privateKeyHex: string, expectedAddress: string): Promise<boolean>;
|
|
10
13
|
export declare function verifyKeyMatchesAddress(privateKeyHex: string, expectedAddress: string): boolean;
|
|
14
|
+
export declare function getSolanaPrivateKeyFromSecp256k1(ed25519Seed: Uint8Array): string;
|
|
11
15
|
export declare function sortKeysRecursive(obj: any): any;
|
|
12
16
|
export declare function createProofMessage(depositTxHash: string, sourceChain: string, withdrawalRequests: Array<{
|
|
13
17
|
target_chain: string;
|
|
@@ -16,3 +20,11 @@ export declare function createProofMessage(depositTxHash: string, sourceChain: s
|
|
|
16
20
|
}>, userAddress: string, timestamp: number): string;
|
|
17
21
|
export declare function createWithdrawalSignature(privateKeyHex: string, recipient: string, tokenAddress: string, amountWei: ethers.BigNumber, merkleRootId: number, keyIndex: number, chainId: number): Promise<string>;
|
|
18
22
|
export declare function createRelayWithdrawalSignature(privateKeyHex: string, recipient: string, tokenAddress: string, amountWei: ethers.BigNumber, merkleRootId: number, keyIndex: number, chainId: number, relayerAddress: string, maxRelayerFee: ethers.BigNumber): Promise<string>;
|
|
23
|
+
export declare function createSolanaWithdrawalSignature(ed25519Seed: Uint8Array, recipient: string, tokenAddress: string, amount: bigint): Promise<{
|
|
24
|
+
signature: string;
|
|
25
|
+
publicKey: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function createSolanaRelaySignature(ed25519Seed: Uint8Array, recipient: string, tokenAddress: string, amount: bigint, relayerAddress: string, maxRelayerFee: bigint): Promise<{
|
|
28
|
+
signature: string;
|
|
29
|
+
publicKey: string;
|
|
30
|
+
}>;
|
package/dist/crypto.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
+
import * as ed from '@noble/ed25519';
|
|
3
|
+
import { sha512, sha256 } from '@noble/hashes/sha2.js';
|
|
4
|
+
import bs58 from 'bs58';
|
|
5
|
+
// Configure SHA-512 for @noble/ed25519 v3
|
|
6
|
+
ed.hashes.sha512 = (...m) => sha512(ed.etc.concatBytes(...m));
|
|
2
7
|
const SECP256K1_N = BigInt('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141');
|
|
3
8
|
function modInverse(a, m) {
|
|
4
9
|
a = ((a % m) + m) % m;
|
|
@@ -51,10 +56,37 @@ export function reconstructPrivateKey(keyshares, threshold = 3) {
|
|
|
51
56
|
const privateKeyHex = '0x' + result.toString(16).padStart(64, '0');
|
|
52
57
|
return { privateKey: result, privateKeyHex };
|
|
53
58
|
}
|
|
59
|
+
export function isSolanaAddress(address) {
|
|
60
|
+
if (address.startsWith('0x'))
|
|
61
|
+
return false;
|
|
62
|
+
const base58Regex = /^[1-9A-HJ-NP-Za-km-z]+$/;
|
|
63
|
+
return base58Regex.test(address) && address.length >= 32 && address.length <= 44;
|
|
64
|
+
}
|
|
65
|
+
export async function secp256k1ToEd25519Seed(secp256k1PrivKeyHex) {
|
|
66
|
+
const signingKey = new ethers.utils.SigningKey(secp256k1PrivKeyHex);
|
|
67
|
+
let pubKeyHex = signingKey.compressedPublicKey;
|
|
68
|
+
if (pubKeyHex.startsWith('0x'))
|
|
69
|
+
pubKeyHex = pubKeyHex.slice(2);
|
|
70
|
+
const pubKeyBytes = Buffer.from(pubKeyHex, 'hex');
|
|
71
|
+
const domainSeparator = new TextEncoder().encode('ed25519');
|
|
72
|
+
const combined = new Uint8Array(pubKeyBytes.length + domainSeparator.length);
|
|
73
|
+
combined.set(pubKeyBytes);
|
|
74
|
+
combined.set(domainSeparator, pubKeyBytes.length);
|
|
75
|
+
return sha256(combined);
|
|
76
|
+
}
|
|
77
|
+
export async function verifySolanaKeyMatchesAddress(privateKeyHex, expectedAddress) {
|
|
78
|
+
const seed = await secp256k1ToEd25519Seed(privateKeyHex);
|
|
79
|
+
const pubKey = await ed.getPublicKey(seed);
|
|
80
|
+
const solanaAddress = bs58.encode(pubKey);
|
|
81
|
+
return solanaAddress === expectedAddress;
|
|
82
|
+
}
|
|
54
83
|
export function verifyKeyMatchesAddress(privateKeyHex, expectedAddress) {
|
|
55
84
|
const wallet = new ethers.Wallet(privateKeyHex);
|
|
56
85
|
return wallet.address.toLowerCase() === expectedAddress.toLowerCase();
|
|
57
86
|
}
|
|
87
|
+
export function getSolanaPrivateKeyFromSecp256k1(ed25519Seed) {
|
|
88
|
+
return '0x' + Buffer.from(ed25519Seed).toString('hex');
|
|
89
|
+
}
|
|
58
90
|
export function sortKeysRecursive(obj) {
|
|
59
91
|
if (Array.isArray(obj))
|
|
60
92
|
return obj.map(sortKeysRecursive);
|
|
@@ -97,4 +129,54 @@ export function createRelayWithdrawalSignature(privateKeyHex, recipient, tokenAd
|
|
|
97
129
|
const wallet = new ethers.Wallet(privateKeyHex);
|
|
98
130
|
return wallet.signMessage(ethers.utils.arrayify(messageHash));
|
|
99
131
|
}
|
|
132
|
+
// ── Solana Ed25519 signing ──
|
|
133
|
+
const CHAIN_ID_SOLANA = 900n;
|
|
134
|
+
function u64LE(value) {
|
|
135
|
+
const buf = Buffer.alloc(8);
|
|
136
|
+
buf.writeBigUInt64LE(value);
|
|
137
|
+
return buf;
|
|
138
|
+
}
|
|
139
|
+
function pubkeyBytes(base58Addr) {
|
|
140
|
+
if (!base58Addr || base58Addr === '' || base58Addr === '0x0000000000000000000000000000000000000000') {
|
|
141
|
+
return Buffer.alloc(32); // all zeros = native SOL
|
|
142
|
+
}
|
|
143
|
+
return Buffer.from(bs58.decode(base58Addr));
|
|
144
|
+
}
|
|
145
|
+
function solanaKeccak256(data) {
|
|
146
|
+
return Buffer.from(ethers.utils.arrayify(ethers.utils.keccak256(data)));
|
|
147
|
+
}
|
|
148
|
+
// Direct withdrawal: keccak256(recipient[32] + token[32] + amount_le[8] + chainId_le[8])
|
|
149
|
+
export async function createSolanaWithdrawalSignature(ed25519Seed, recipient, tokenAddress, amount) {
|
|
150
|
+
const messageData = Buffer.concat([
|
|
151
|
+
pubkeyBytes(recipient),
|
|
152
|
+
pubkeyBytes(tokenAddress),
|
|
153
|
+
u64LE(amount),
|
|
154
|
+
u64LE(CHAIN_ID_SOLANA),
|
|
155
|
+
]);
|
|
156
|
+
const messageHash = solanaKeccak256(messageData);
|
|
157
|
+
const signature = await ed.sign(messageHash, ed25519Seed);
|
|
158
|
+
const pubKey = await ed.getPublicKey(ed25519Seed);
|
|
159
|
+
return {
|
|
160
|
+
signature: Buffer.from(signature).toString('hex'),
|
|
161
|
+
publicKey: bs58.encode(pubKey),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// Relay withdrawal: keccak256(recipient[32] + token[32] + amount_le[8] + chainId_le[8] + relayer[32] + maxRelayerFee_le[8])
|
|
165
|
+
export async function createSolanaRelaySignature(ed25519Seed, recipient, tokenAddress, amount, relayerAddress, maxRelayerFee) {
|
|
166
|
+
const messageData = Buffer.concat([
|
|
167
|
+
pubkeyBytes(recipient),
|
|
168
|
+
pubkeyBytes(tokenAddress),
|
|
169
|
+
u64LE(amount),
|
|
170
|
+
u64LE(CHAIN_ID_SOLANA),
|
|
171
|
+
pubkeyBytes(relayerAddress),
|
|
172
|
+
u64LE(maxRelayerFee),
|
|
173
|
+
]);
|
|
174
|
+
const messageHash = solanaKeccak256(messageData);
|
|
175
|
+
const signature = await ed.sign(messageHash, ed25519Seed);
|
|
176
|
+
const pubKey = await ed.getPublicKey(ed25519Seed);
|
|
177
|
+
return {
|
|
178
|
+
signature: Buffer.from(signature).toString('hex'),
|
|
179
|
+
publicKey: bs58.encode(pubKey),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
100
182
|
//# sourceMappingURL=crypto.js.map
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,11 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { ethers } from 'ethers';
|
|
7
|
+
import bs58 from 'bs58';
|
|
7
8
|
import { loadConfig } from './config.js';
|
|
8
9
|
import { WalletManager } from './wallet.js';
|
|
9
10
|
import { BlackBoxAPI } from './api.js';
|
|
10
|
-
import { reconstructPrivateKey, verifyKeyMatchesAddress, createProofMessage, createWithdrawalSignature, createRelayWithdrawalSignature, } from './crypto.js';
|
|
11
|
+
import { reconstructPrivateKey, verifyKeyMatchesAddress, verifySolanaKeyMatchesAddress, isSolanaAddress, secp256k1ToEd25519Seed, getSolanaPrivateKeyFromSecp256k1, createProofMessage, createWithdrawalSignature, createRelayWithdrawalSignature, createSolanaWithdrawalSignature, createSolanaRelaySignature, } from './crypto.js';
|
|
11
12
|
const config = loadConfig();
|
|
12
13
|
const walletManager = new WalletManager(config.walletStorePath);
|
|
13
14
|
const api = new BlackBoxAPI(config);
|
|
@@ -53,13 +54,53 @@ async function processKeyshares(successful, _failed, withdrawal_requests, thresh
|
|
|
53
54
|
if (ks.keyIndex !== expectedKeyIndex)
|
|
54
55
|
throw new Error(`Nodes returned different key indices for key ${wrIdx}`);
|
|
55
56
|
}
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
const isSolana = isSolanaAddress(expectedAddress);
|
|
58
|
+
let finalPrivateKeyHex;
|
|
59
|
+
if (isSolana) {
|
|
60
|
+
// Solana: reconstruct secp256k1 key, convert to Ed25519, try all share combinations
|
|
61
|
+
const result = await (async () => {
|
|
62
|
+
// Try default first-N shares
|
|
63
|
+
const { privateKeyHex: pkHex } = reconstructPrivateKey(keyshareData, threshold);
|
|
64
|
+
if (await verifySolanaKeyMatchesAddress(pkHex, expectedAddress)) {
|
|
65
|
+
const seed = await secp256k1ToEd25519Seed(pkHex);
|
|
66
|
+
return getSolanaPrivateKeyFromSecp256k1(seed);
|
|
67
|
+
}
|
|
68
|
+
// Try all C(N, threshold) combinations
|
|
69
|
+
for (let a = 0; a < keyshareData.length; a++) {
|
|
70
|
+
for (let b = a + 1; b < keyshareData.length; b++) {
|
|
71
|
+
for (let c = b + 1; c < keyshareData.length; c++) {
|
|
72
|
+
if (a === 0 && b === 1 && c === 2)
|
|
73
|
+
continue;
|
|
74
|
+
const subset = [keyshareData[a], keyshareData[b], keyshareData[c]];
|
|
75
|
+
try {
|
|
76
|
+
const { privateKeyHex: altPk } = reconstructPrivateKey(subset, threshold);
|
|
77
|
+
if (await verifySolanaKeyMatchesAddress(altPk, expectedAddress)) {
|
|
78
|
+
const seed = await secp256k1ToEd25519Seed(altPk);
|
|
79
|
+
return getSolanaPrivateKeyFromSecp256k1(seed);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch { /* skip invalid combination */ }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
})();
|
|
88
|
+
if (!result) {
|
|
89
|
+
throw new Error(`Key reconstruction failed for withdrawal ${wrIdx}: no share combination produces expected Solana address ${expectedAddress}`);
|
|
90
|
+
}
|
|
91
|
+
finalPrivateKeyHex = result;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// EVM: standard secp256k1 verification
|
|
95
|
+
const { privateKeyHex: pkHex } = reconstructPrivateKey(keyshareData, threshold);
|
|
96
|
+
if (!verifyKeyMatchesAddress(pkHex, expectedAddress)) {
|
|
97
|
+
throw new Error(`Key reconstruction failed for withdrawal ${wrIdx}: address mismatch`);
|
|
98
|
+
}
|
|
99
|
+
finalPrivateKeyHex = pkHex;
|
|
59
100
|
}
|
|
60
101
|
keys.push({
|
|
61
102
|
index: wrIdx,
|
|
62
|
-
private_key:
|
|
103
|
+
private_key: finalPrivateKeyHex,
|
|
63
104
|
address: expectedAddress,
|
|
64
105
|
key_index: expectedKeyIndex,
|
|
65
106
|
merkle_root_id: keyshareData[0].merkleRootId,
|
|
@@ -244,12 +285,50 @@ Call \`get_supported_chains\` and \`get_available_denominations\` for current da
|
|
|
244
285
|
token_address: z.string().optional().describe('ERC20 token contract address (omit for native balance only)'),
|
|
245
286
|
}, async ({ wallet_name, password, chain_name, token_address }) => {
|
|
246
287
|
try {
|
|
288
|
+
const wallet = walletManager.getWallet(wallet_name);
|
|
289
|
+
if (!wallet)
|
|
290
|
+
return { content: [{ type: 'text', text: `Wallet "${wallet_name}" not found` }], isError: true };
|
|
247
291
|
const chains = await api.getChains();
|
|
248
292
|
const chain = chains.find(c => c.chain_name === chain_name);
|
|
249
293
|
if (!chain)
|
|
250
294
|
return { content: [{ type: 'text', text: `Chain "${chain_name}" not found` }], isError: true };
|
|
251
295
|
if (!chain.rpc_url)
|
|
252
296
|
return { content: [{ type: 'text', text: `No RPC URL configured for ${chain_name}` }], isError: true };
|
|
297
|
+
// Solana balance check
|
|
298
|
+
if (chain.chain_type === 'solana' || wallet.walletType === 'solana') {
|
|
299
|
+
const { Connection, PublicKey, LAMPORTS_PER_SOL } = await import('@solana/web3.js');
|
|
300
|
+
const connection = new Connection(chain.rpc_url, 'confirmed');
|
|
301
|
+
const pubkey = new PublicKey(wallet.address);
|
|
302
|
+
const lamports = await connection.getBalance(pubkey);
|
|
303
|
+
const result = {
|
|
304
|
+
address: wallet.address,
|
|
305
|
+
chain: chain_name,
|
|
306
|
+
native_balance: (lamports / LAMPORTS_PER_SOL).toString(),
|
|
307
|
+
native_currency: chain.native_currency || 'SOL',
|
|
308
|
+
};
|
|
309
|
+
// SPL token balance
|
|
310
|
+
if (token_address) {
|
|
311
|
+
try {
|
|
312
|
+
const tokenPubkey = new PublicKey(token_address);
|
|
313
|
+
const tokenAccounts = await connection.getParsedTokenAccountsByOwner(pubkey, { mint: tokenPubkey });
|
|
314
|
+
if (tokenAccounts.value.length > 0) {
|
|
315
|
+
const parsed = tokenAccounts.value[0].account.data.parsed.info;
|
|
316
|
+
result.token_balance = parsed.tokenAmount.uiAmountString;
|
|
317
|
+
result.token_symbol = token_address;
|
|
318
|
+
result.token_address = token_address;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
result.token_balance = '0';
|
|
322
|
+
result.token_address = token_address;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
catch (tokenErr) {
|
|
326
|
+
result.token_error = `Failed to fetch SPL token: ${tokenErr.message}`;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
330
|
+
}
|
|
331
|
+
// EVM balance check
|
|
253
332
|
const provider = new ethers.providers.JsonRpcProvider(chain.rpc_url);
|
|
254
333
|
const signer = walletManager.getSigner(wallet_name, password, provider);
|
|
255
334
|
const address = await signer.getAddress();
|
|
@@ -281,7 +360,22 @@ Call \`get_supported_chains\` and \`get_available_denominations\` for current da
|
|
|
281
360
|
server.tool('get_supported_chains', 'Get all chains supported by the BlackBox protocol, including RPC URLs, treasury addresses, and supported tokens.', {}, async () => {
|
|
282
361
|
try {
|
|
283
362
|
const chains = await api.getChains();
|
|
284
|
-
|
|
363
|
+
// Enrich each chain with its token details from the tokens endpoint
|
|
364
|
+
const enriched = await Promise.all(chains.map(async (chain) => {
|
|
365
|
+
try {
|
|
366
|
+
const tokens = await api.getTokens(chain.chain_name);
|
|
367
|
+
const tokenList = (tokens || []).map((t) => ({
|
|
368
|
+
symbol: t.Symbol || t.symbol,
|
|
369
|
+
address: t.Address || t.address,
|
|
370
|
+
decimals: t.Decimals || t.decimals,
|
|
371
|
+
}));
|
|
372
|
+
return { ...chain, supported_tokens: tokenList };
|
|
373
|
+
}
|
|
374
|
+
catch {
|
|
375
|
+
return chain; // If token fetch fails, return chain as-is
|
|
376
|
+
}
|
|
377
|
+
}));
|
|
378
|
+
return { content: [{ type: 'text', text: JSON.stringify({ chains: enriched }, null, 2) }] };
|
|
285
379
|
}
|
|
286
380
|
catch (e) {
|
|
287
381
|
return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
|
|
@@ -661,6 +755,274 @@ Call \`get_supported_chains\` and \`get_available_denominations\` for current da
|
|
|
661
755
|
return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
|
|
662
756
|
}
|
|
663
757
|
});
|
|
758
|
+
// ─── Unified Withdraw Tool ──────────────────────────────────────────────────
|
|
759
|
+
server.tool('withdraw', 'Smart withdrawal — automatically picks relay (private, gas-free) or direct based on preference and chain type. Supports both EVM and Solana. Default: relay for privacy (relayer address appears on-chain, not yours).', {
|
|
760
|
+
withdrawal_key: z.string().describe('Private key from claim_keys result (hex with 0x prefix)'),
|
|
761
|
+
recipient: z.string().describe('Address to receive funds (EVM 0x... or Solana base58)'),
|
|
762
|
+
token_address: z.string().describe('Token contract address (EVM hex or Solana base58 mint). Zero address or empty for native.'),
|
|
763
|
+
amount: z.string().describe('Human-readable amount (e.g., "1" for 1 USDC)'),
|
|
764
|
+
token_decimals: z.number().describe('Token decimals (6 for USDC, 18 for ETH, 9 for SOL)'),
|
|
765
|
+
merkle_root_id: z.number().describe('Merkle root ID from claim_keys result'),
|
|
766
|
+
merkle_proof: z.array(z.string()).describe('Merkle proof from claim_keys result'),
|
|
767
|
+
key_index: z.number().describe('Key index from claim_keys result'),
|
|
768
|
+
chain_name: z.string().describe('Chain name (e.g., "sepolia", "solana-devnet")'),
|
|
769
|
+
treasury_address: z.string().describe('Treasury contract address from claim_keys result'),
|
|
770
|
+
wallet_name: z.string().describe('Wallet name to pay gas from (only used for direct withdrawal)'),
|
|
771
|
+
password: z.string().describe('Wallet password'),
|
|
772
|
+
method: z.enum(['relay', 'direct', 'auto']).optional().describe('Withdrawal method. "relay" = private (default), "direct" = self-submit, "auto" = relay if available else direct'),
|
|
773
|
+
max_relayer_fee: z.string().optional().describe('Max relay fee in base units. Defaults to 10% of amount.'),
|
|
774
|
+
}, async (params) => {
|
|
775
|
+
try {
|
|
776
|
+
const chains = await api.getChains();
|
|
777
|
+
const chain = chains.find((c) => c.chain_name === params.chain_name);
|
|
778
|
+
if (!chain)
|
|
779
|
+
return { content: [{ type: 'text', text: `Chain "${params.chain_name}" not found` }], isError: true };
|
|
780
|
+
const isSolana = chain.chain_type === 'solana';
|
|
781
|
+
const method = params.method || 'relay';
|
|
782
|
+
// Check relay availability
|
|
783
|
+
let relayAvailable = false;
|
|
784
|
+
let relayInfo = null;
|
|
785
|
+
if (method !== 'direct') {
|
|
786
|
+
try {
|
|
787
|
+
const resp = await api.getRelayInfo();
|
|
788
|
+
relayInfo = resp.info || resp;
|
|
789
|
+
relayAvailable = relayInfo.enabled !== false;
|
|
790
|
+
}
|
|
791
|
+
catch {
|
|
792
|
+
relayAvailable = false;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
const useRelay = method === 'relay'
|
|
796
|
+
? relayAvailable
|
|
797
|
+
: method === 'direct'
|
|
798
|
+
? false
|
|
799
|
+
: relayAvailable; // auto: prefer relay
|
|
800
|
+
if (method === 'relay' && !relayAvailable) {
|
|
801
|
+
return { content: [{ type: 'text', text: 'Relay service is disabled. Use method: "direct" or "auto" to fall back.' }], isError: true };
|
|
802
|
+
}
|
|
803
|
+
// ── Parse amounts ──
|
|
804
|
+
const amountBN = ethers.utils.parseUnits(params.amount, params.token_decimals);
|
|
805
|
+
const amountBigint = BigInt(amountBN.toString());
|
|
806
|
+
const defaultFee = amountBN.div(10);
|
|
807
|
+
const maxRelayerFee = params.max_relayer_fee
|
|
808
|
+
? ethers.BigNumber.from(params.max_relayer_fee)
|
|
809
|
+
: (defaultFee.gt(0) ? defaultFee : ethers.BigNumber.from(1));
|
|
810
|
+
const maxRelayerFeeBigint = BigInt(maxRelayerFee.toString());
|
|
811
|
+
// ── RELAY PATH ──
|
|
812
|
+
if (useRelay) {
|
|
813
|
+
if (isSolana) {
|
|
814
|
+
// Solana relay: Ed25519 signing
|
|
815
|
+
const seedHex = params.withdrawal_key.startsWith('0x') ? params.withdrawal_key.slice(2) : params.withdrawal_key;
|
|
816
|
+
const ed25519Seed = new Uint8Array(Buffer.from(seedHex, 'hex'));
|
|
817
|
+
const relayerAddr = relayInfo.solana_relayer_address;
|
|
818
|
+
if (!relayerAddr)
|
|
819
|
+
return { content: [{ type: 'text', text: 'Solana relayer address not available in relay info' }], isError: true };
|
|
820
|
+
const { signature, publicKey } = await createSolanaRelaySignature(ed25519Seed, params.recipient, params.token_address, amountBigint, relayerAddr, maxRelayerFeeBigint);
|
|
821
|
+
// Derive treasury token account for SPL tokens
|
|
822
|
+
const isNativeSOL = !params.token_address || params.token_address === '' || params.token_address === '11111111111111111111111111111111';
|
|
823
|
+
let treasuryTokenAccount;
|
|
824
|
+
if (!isNativeSOL) {
|
|
825
|
+
const { PublicKey } = await import('@solana/web3.js');
|
|
826
|
+
const { getAssociatedTokenAddress } = await import('@solana/spl-token');
|
|
827
|
+
const programId = new PublicKey('5zjh95A1KgD6R7MidR6vDUCYAoKpmKcfNhMbRBkiLsmE');
|
|
828
|
+
const [treasuryPDA] = PublicKey.findProgramAddressSync([Buffer.from('treasury')], programId);
|
|
829
|
+
const tokenMint = new PublicKey(params.token_address);
|
|
830
|
+
const ata = await getAssociatedTokenAddress(tokenMint, treasuryPDA, true);
|
|
831
|
+
treasuryTokenAccount = ata.toString();
|
|
832
|
+
}
|
|
833
|
+
const merkleProof = params.merkle_proof.map(p => p.startsWith('0x') ? p : '0x' + p);
|
|
834
|
+
const result = await api.relayWithdraw({
|
|
835
|
+
chain: params.chain_name,
|
|
836
|
+
chainType: 'solana',
|
|
837
|
+
recipient: params.recipient,
|
|
838
|
+
amount: amountBN.toString(),
|
|
839
|
+
token: params.token_address,
|
|
840
|
+
signature: '0x' + signature,
|
|
841
|
+
merkleProof,
|
|
842
|
+
merkleRootId: params.merkle_root_id,
|
|
843
|
+
keyIndex: params.key_index,
|
|
844
|
+
maxRelayerFee: maxRelayerFee.toString(),
|
|
845
|
+
publicKey,
|
|
846
|
+
treasuryTokenAccount,
|
|
847
|
+
});
|
|
848
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
849
|
+
success: true, method: 'relay', chain: params.chain_name, chain_type: 'solana',
|
|
850
|
+
job_id: result.job_id || result.job?.id, ...result,
|
|
851
|
+
}, null, 2) }] };
|
|
852
|
+
}
|
|
853
|
+
else {
|
|
854
|
+
// EVM relay: secp256k1 signing
|
|
855
|
+
const provider = new ethers.providers.JsonRpcProvider(chain.rpc_url);
|
|
856
|
+
const network = await provider.getNetwork();
|
|
857
|
+
const relayerAddress = relayInfo.evm_relayer_address || ethers.constants.AddressZero;
|
|
858
|
+
const withdrawalSig = await createRelayWithdrawalSignature(params.withdrawal_key, params.recipient, params.token_address, amountBN, params.merkle_root_id, params.key_index, network.chainId, relayerAddress, maxRelayerFee);
|
|
859
|
+
const merkleProof = params.merkle_proof.map(p => p.startsWith('0x') ? p : '0x' + p);
|
|
860
|
+
const result = await api.relayWithdraw({
|
|
861
|
+
chain: params.chain_name,
|
|
862
|
+
chainType: 'evm',
|
|
863
|
+
recipient: params.recipient,
|
|
864
|
+
amount: amountBN.toString(),
|
|
865
|
+
token: params.token_address,
|
|
866
|
+
signature: withdrawalSig,
|
|
867
|
+
merkleProof,
|
|
868
|
+
merkleRootId: params.merkle_root_id,
|
|
869
|
+
keyIndex: params.key_index,
|
|
870
|
+
maxRelayerFee: maxRelayerFee.toString(),
|
|
871
|
+
});
|
|
872
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
873
|
+
success: true, method: 'relay', chain: params.chain_name, chain_type: 'evm',
|
|
874
|
+
job_id: result.job_id || result.job?.id, ...result,
|
|
875
|
+
}, null, 2) }] };
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
// ── DIRECT PATH ──
|
|
879
|
+
if (isSolana) {
|
|
880
|
+
// Solana direct withdrawal: build and send tx via @solana/web3.js
|
|
881
|
+
const { Connection, PublicKey, TransactionMessage, VersionedTransaction, Ed25519Program, SystemProgram, SYSVAR_INSTRUCTIONS_PUBKEY } = await import('@solana/web3.js');
|
|
882
|
+
const connection = new Connection(chain.rpc_url, 'confirmed');
|
|
883
|
+
const seedHex = params.withdrawal_key.startsWith('0x') ? params.withdrawal_key.slice(2) : params.withdrawal_key;
|
|
884
|
+
const ed25519Seed = new Uint8Array(Buffer.from(seedHex, 'hex'));
|
|
885
|
+
// Get the Solana wallet keypair for paying fees
|
|
886
|
+
const walletPrivKey = walletManager.getPrivateKey(params.wallet_name, params.password);
|
|
887
|
+
const { Keypair } = await import('@solana/web3.js');
|
|
888
|
+
const payerKeypair = Keypair.fromSecretKey(bs58.decode(walletPrivKey));
|
|
889
|
+
// Sign with Ed25519 OTS key
|
|
890
|
+
const { signature, publicKey } = await createSolanaWithdrawalSignature(ed25519Seed, params.recipient, params.token_address, amountBigint);
|
|
891
|
+
const sigBytes = Buffer.from(signature, 'hex');
|
|
892
|
+
const otsPublicKey = bs58.decode(publicKey);
|
|
893
|
+
// Message hash for Ed25519 instruction
|
|
894
|
+
const messageHash = Buffer.from(ethers.utils.arrayify(ethers.utils.keccak256(Buffer.concat([
|
|
895
|
+
Buffer.from(bs58.decode(params.recipient)),
|
|
896
|
+
params.token_address && params.token_address !== '' && !params.token_address.startsWith('0x')
|
|
897
|
+
? Buffer.from(bs58.decode(params.token_address))
|
|
898
|
+
: Buffer.alloc(32),
|
|
899
|
+
(() => { const b = Buffer.alloc(8); b.writeBigUInt64LE(amountBigint); return b; })(),
|
|
900
|
+
(() => { const b = Buffer.alloc(8); b.writeBigUInt64LE(900n); return b; })(),
|
|
901
|
+
]))));
|
|
902
|
+
const ed25519Ix = Ed25519Program.createInstructionWithPublicKey({
|
|
903
|
+
publicKey: otsPublicKey,
|
|
904
|
+
message: messageHash,
|
|
905
|
+
signature: sigBytes,
|
|
906
|
+
});
|
|
907
|
+
// Derive PDAs
|
|
908
|
+
const programId = new PublicKey('5zjh95A1KgD6R7MidR6vDUCYAoKpmKcfNhMbRBkiLsmE');
|
|
909
|
+
const [treasuryPDA] = PublicKey.findProgramAddressSync([Buffer.from('treasury')], programId);
|
|
910
|
+
const merkleRootIdBuf = Buffer.alloc(8);
|
|
911
|
+
merkleRootIdBuf.writeBigUInt64LE(BigInt(params.merkle_root_id));
|
|
912
|
+
const [merkleRootPDA] = PublicKey.findProgramAddressSync([Buffer.from('merkroot'), merkleRootIdBuf], programId);
|
|
913
|
+
const keyIndexBuf = Buffer.alloc(8);
|
|
914
|
+
keyIndexBuf.writeBigUInt64LE(BigInt(params.key_index));
|
|
915
|
+
const [nullifierPDA] = PublicKey.findProgramAddressSync([Buffer.from('nullifr\0'), merkleRootIdBuf, keyIndexBuf], programId);
|
|
916
|
+
const recipientPubkey = new PublicKey(params.recipient);
|
|
917
|
+
const isNativeSOL = !params.token_address || params.token_address === '' || params.token_address === '11111111111111111111111111111111';
|
|
918
|
+
// Build instruction data
|
|
919
|
+
const merkleProof = params.merkle_proof.map(p => {
|
|
920
|
+
const clean = p.startsWith('0x') ? p.slice(2) : p;
|
|
921
|
+
return Array.from(Buffer.from(clean, 'hex'));
|
|
922
|
+
});
|
|
923
|
+
// Discriminator + amount(u64) + merkleRootId(u32) + proofLen(u32) + proof + treeIndex(u32)
|
|
924
|
+
let discriminator;
|
|
925
|
+
let accounts;
|
|
926
|
+
const TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');
|
|
927
|
+
const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL');
|
|
928
|
+
if (isNativeSOL) {
|
|
929
|
+
discriminator = [113, 227, 26, 32, 53, 66, 90, 250]; // withdraw_native
|
|
930
|
+
accounts = [
|
|
931
|
+
{ pubkey: treasuryPDA, isSigner: false, isWritable: true },
|
|
932
|
+
{ pubkey: merkleRootPDA, isSigner: false, isWritable: true },
|
|
933
|
+
{ pubkey: nullifierPDA, isSigner: false, isWritable: true },
|
|
934
|
+
{ pubkey: recipientPubkey, isSigner: false, isWritable: true },
|
|
935
|
+
{ pubkey: payerKeypair.publicKey, isSigner: true, isWritable: true },
|
|
936
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
937
|
+
{ pubkey: SYSVAR_INSTRUCTIONS_PUBKEY, isSigner: false, isWritable: false },
|
|
938
|
+
];
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
discriminator = [136, 235, 181, 5, 101, 109, 57, 81]; // withdraw_token
|
|
942
|
+
const tokenMint = new PublicKey(params.token_address);
|
|
943
|
+
const { getAssociatedTokenAddress } = await import('@solana/spl-token');
|
|
944
|
+
const recipientATA = await getAssociatedTokenAddress(tokenMint, recipientPubkey);
|
|
945
|
+
const treasuryATA = await getAssociatedTokenAddress(tokenMint, treasuryPDA, true);
|
|
946
|
+
const [tokenConfigPDA] = PublicKey.findProgramAddressSync([Buffer.from('token_config'), tokenMint.toBuffer()], programId);
|
|
947
|
+
accounts = [
|
|
948
|
+
{ pubkey: treasuryPDA, isSigner: false, isWritable: true },
|
|
949
|
+
{ pubkey: tokenConfigPDA, isSigner: false, isWritable: true },
|
|
950
|
+
{ pubkey: merkleRootPDA, isSigner: false, isWritable: true },
|
|
951
|
+
{ pubkey: nullifierPDA, isSigner: false, isWritable: true },
|
|
952
|
+
{ pubkey: tokenMint, isSigner: false, isWritable: false },
|
|
953
|
+
{ pubkey: recipientPubkey, isSigner: false, isWritable: false },
|
|
954
|
+
{ pubkey: recipientATA, isSigner: false, isWritable: true },
|
|
955
|
+
{ pubkey: treasuryATA, isSigner: false, isWritable: true },
|
|
956
|
+
{ pubkey: payerKeypair.publicKey, isSigner: true, isWritable: true },
|
|
957
|
+
{ pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
958
|
+
{ pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
959
|
+
{ pubkey: SystemProgram.programId, isSigner: false, isWritable: false },
|
|
960
|
+
{ pubkey: SYSVAR_INSTRUCTIONS_PUBKEY, isSigner: false, isWritable: false },
|
|
961
|
+
];
|
|
962
|
+
}
|
|
963
|
+
// Serialize instruction data
|
|
964
|
+
const proofBuf = Buffer.concat(merkleProof.map(p => Buffer.from(p)));
|
|
965
|
+
const ixData = Buffer.alloc(8 + 8 + 4 + 4 + proofBuf.length + 4);
|
|
966
|
+
let offset = 0;
|
|
967
|
+
Buffer.from(discriminator).copy(ixData, offset);
|
|
968
|
+
offset += 8;
|
|
969
|
+
ixData.writeBigUInt64LE(amountBigint, offset);
|
|
970
|
+
offset += 8;
|
|
971
|
+
ixData.writeUInt32LE(params.merkle_root_id, offset);
|
|
972
|
+
offset += 4;
|
|
973
|
+
ixData.writeUInt32LE(merkleProof.length, offset);
|
|
974
|
+
offset += 4;
|
|
975
|
+
proofBuf.copy(ixData, offset);
|
|
976
|
+
offset += proofBuf.length;
|
|
977
|
+
ixData.writeUInt32LE(params.key_index, offset);
|
|
978
|
+
const { TransactionInstruction } = await import('@solana/web3.js');
|
|
979
|
+
const withdrawIx = new TransactionInstruction({ keys: accounts, programId, data: ixData });
|
|
980
|
+
const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash();
|
|
981
|
+
const messageV0 = new TransactionMessage({
|
|
982
|
+
payerKey: payerKeypair.publicKey,
|
|
983
|
+
recentBlockhash: blockhash,
|
|
984
|
+
instructions: [ed25519Ix, withdrawIx],
|
|
985
|
+
}).compileToV0Message();
|
|
986
|
+
const tx = new VersionedTransaction(messageV0);
|
|
987
|
+
tx.sign([payerKeypair]);
|
|
988
|
+
const txSig = await connection.sendRawTransaction(tx.serialize(), {
|
|
989
|
+
skipPreflight: false,
|
|
990
|
+
preflightCommitment: 'confirmed',
|
|
991
|
+
});
|
|
992
|
+
// Wait for confirmation
|
|
993
|
+
await connection.confirmTransaction({ signature: txSig, blockhash, lastValidBlockHeight }, 'confirmed');
|
|
994
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
995
|
+
success: true, method: 'direct', chain: params.chain_name, chain_type: 'solana',
|
|
996
|
+
tx_hash: txSig,
|
|
997
|
+
explorer_url: `${chain.block_explorer}tx/${txSig}?cluster=devnet`,
|
|
998
|
+
}, null, 2) }] };
|
|
999
|
+
}
|
|
1000
|
+
else {
|
|
1001
|
+
// EVM direct: existing logic
|
|
1002
|
+
const walletPrivKey = walletManager.getPrivateKey(params.wallet_name, params.password);
|
|
1003
|
+
const provider = new ethers.providers.JsonRpcProvider(chain.rpc_url);
|
|
1004
|
+
const wallet = new ethers.Wallet(walletPrivKey, provider);
|
|
1005
|
+
const network = await provider.getNetwork();
|
|
1006
|
+
const withdrawalSig = await createWithdrawalSignature(params.withdrawal_key, params.recipient, params.token_address, amountBN, params.merkle_root_id, params.key_index, network.chainId);
|
|
1007
|
+
const merkleProof = params.merkle_proof.map(p => p.startsWith('0x') ? p : '0x' + p);
|
|
1008
|
+
const treasuryABI = [
|
|
1009
|
+
'function withdraw(address token, address recipient, uint256 amount, uint256 merkleRootId, bytes calldata signature, bytes32[] calldata merkleProof, uint256 keyIndex) external',
|
|
1010
|
+
];
|
|
1011
|
+
const treasury = new ethers.Contract(params.treasury_address, treasuryABI, wallet);
|
|
1012
|
+
const tx = await treasury.withdraw(params.token_address, params.recipient, amountBN, params.merkle_root_id, withdrawalSig, merkleProof, params.key_index);
|
|
1013
|
+
const receipt = await tx.wait();
|
|
1014
|
+
return { content: [{ type: 'text', text: JSON.stringify({
|
|
1015
|
+
success: true, method: 'direct', chain: params.chain_name, chain_type: 'evm',
|
|
1016
|
+
tx_hash: receipt.transactionHash,
|
|
1017
|
+
block_number: receipt.blockNumber,
|
|
1018
|
+
explorer_url: `${chain.block_explorer}/tx/${receipt.transactionHash}`,
|
|
1019
|
+
}, null, 2) }] };
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
catch (e) {
|
|
1023
|
+
return { content: [{ type: 'text', text: `Withdrawal failed: ${e.message}` }], isError: true };
|
|
1024
|
+
}
|
|
1025
|
+
});
|
|
664
1026
|
// ─── Utility Tools ──────────────────────────────────────────────────────────
|
|
665
1027
|
server.tool('check_health', 'Check health and status of the BlackBox DKG network.', {}, async () => {
|
|
666
1028
|
try {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blackbox-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MCP server for AI agents to interact with the BlackBox privacy protocol — deposit, claim keys, withdraw across chains via 3-of-5 distributed threshold cryptography",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -44,6 +44,9 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
47
|
+
"@noble/ed25519": "^3.0.0",
|
|
48
|
+
"@noble/hashes": "^2.0.1",
|
|
49
|
+
"@solana/spl-token": "^0.4.14",
|
|
47
50
|
"@solana/web3.js": "^1.98.4",
|
|
48
51
|
"bs58": "^6.0.0",
|
|
49
52
|
"ethers": "^5.7.2",
|