dexe-mcp 0.5.3 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +24 -18
  3. package/dist/config.d.ts +27 -4
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +105 -9
  6. package/dist/config.js.map +1 -1
  7. package/dist/lib/blacklist.d.ts +22 -0
  8. package/dist/lib/blacklist.d.ts.map +1 -0
  9. package/dist/lib/blacklist.js +43 -0
  10. package/dist/lib/blacklist.js.map +1 -0
  11. package/dist/lib/signer.d.ts +17 -4
  12. package/dist/lib/signer.d.ts.map +1 -1
  13. package/dist/lib/signer.js +33 -16
  14. package/dist/lib/signer.js.map +1 -1
  15. package/dist/rpc.d.ts +10 -5
  16. package/dist/rpc.d.ts.map +1 -1
  17. package/dist/rpc.js +18 -10
  18. package/dist/rpc.js.map +1 -1
  19. package/dist/tools/daoDeploy.d.ts.map +1 -1
  20. package/dist/tools/daoDeploy.js +27 -6
  21. package/dist/tools/daoDeploy.js.map +1 -1
  22. package/dist/tools/flow.d.ts +3 -0
  23. package/dist/tools/flow.d.ts.map +1 -1
  24. package/dist/tools/flow.js +29 -14
  25. package/dist/tools/flow.js.map +1 -1
  26. package/dist/tools/getConfig.d.ts +10 -0
  27. package/dist/tools/getConfig.d.ts.map +1 -0
  28. package/dist/tools/getConfig.js +52 -0
  29. package/dist/tools/getConfig.js.map +1 -0
  30. package/dist/tools/index.d.ts.map +1 -1
  31. package/dist/tools/index.js +2 -0
  32. package/dist/tools/index.js.map +1 -1
  33. package/dist/tools/otc.d.ts.map +1 -1
  34. package/dist/tools/otc.js +28 -6
  35. package/dist/tools/otc.js.map +1 -1
  36. package/dist/tools/proposalBuild.d.ts.map +1 -1
  37. package/dist/tools/proposalBuild.js +11 -2
  38. package/dist/tools/proposalBuild.js.map +1 -1
  39. package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
  40. package/dist/tools/proposalBuildComplex.js +49 -14
  41. package/dist/tools/proposalBuildComplex.js.map +1 -1
  42. package/dist/tools/proposalBuildMore.js +60 -20
  43. package/dist/tools/proposalBuildMore.js.map +1 -1
  44. package/dist/tools/proposalBuildOffchain.d.ts.map +1 -1
  45. package/dist/tools/proposalBuildOffchain.js +26 -15
  46. package/dist/tools/proposalBuildOffchain.js.map +1 -1
  47. package/dist/tools/txSend.d.ts +1 -1
  48. package/dist/tools/txSend.d.ts.map +1 -1
  49. package/dist/tools/txSend.js +37 -9
  50. package/dist/tools/txSend.js.map +1 -1
  51. package/package.json +1 -1
@@ -1,14 +1,22 @@
1
1
  import { z } from "zod";
2
+ import { resolveChain } from "../config.js";
2
3
  export function registerTxTools(server, config, signer) {
3
4
  server.tool("dexe_tx_send", "Sign and broadcast a transaction using the configured DEXE_PRIVATE_KEY. " +
4
5
  "Pass the TxPayload fields returned by any dexe_*_build_* tool. " +
5
- "Waits for on-chain confirmation and returns the receipt.", {
6
+ "Waits for on-chain confirmation and returns the receipt. " +
7
+ "When the MCP has multiple chains configured, pass `chainId` explicitly to pick which one to broadcast on; otherwise the default chain is used.", {
6
8
  to: z.string().describe("Destination contract address"),
7
9
  data: z.string().describe("ABI-encoded calldata (0x-prefixed hex)"),
8
10
  value: z
9
11
  .string()
10
12
  .default("0")
11
13
  .describe("Wei value as decimal string"),
14
+ chainId: z
15
+ .number()
16
+ .int()
17
+ .positive()
18
+ .optional()
19
+ .describe("Target chain id. Defaults to the MCP's default chain. Tool rejects if no RPC is configured for the requested chain."),
12
20
  gasLimit: z
13
21
  .string()
14
22
  .optional()
@@ -20,13 +28,14 @@ export function registerTxTools(server, config, signer) {
20
28
  .max(12)
21
29
  .default(1)
22
30
  .describe("Confirmations to wait (0 = fire-and-forget)"),
23
- }, async ({ to, data, value, gasLimit, waitConfirmations }) => {
24
- const wallet = signer.requireSigner();
31
+ }, async ({ to, data, value, chainId, gasLimit, waitConfirmations }) => {
32
+ const chain = resolveChain(config, chainId);
33
+ const wallet = signer.requireSigner(chain.chainId);
25
34
  const tx = await wallet.sendTransaction({
26
35
  to,
27
36
  data,
28
37
  value: BigInt(value),
29
- chainId: BigInt(config.chainId),
38
+ chainId: BigInt(chain.chainId),
30
39
  ...(gasLimit ? { gasLimit: BigInt(gasLimit) } : {}),
31
40
  });
32
41
  if (waitConfirmations === 0) {
@@ -34,7 +43,12 @@ export function registerTxTools(server, config, signer) {
34
43
  content: [
35
44
  {
36
45
  type: "text",
37
- text: JSON.stringify({ txHash: tx.hash, from: wallet.address, status: "submitted" }, null, 2),
46
+ text: JSON.stringify({
47
+ txHash: tx.hash,
48
+ from: wallet.address,
49
+ chainId: chain.chainId,
50
+ status: "submitted",
51
+ }, null, 2),
38
52
  },
39
53
  ],
40
54
  };
@@ -45,7 +59,7 @@ export function registerTxTools(server, config, signer) {
45
59
  content: [
46
60
  {
47
61
  type: "text",
48
- text: JSON.stringify({ txHash: tx.hash, status: "unknown" }, null, 2),
62
+ text: JSON.stringify({ txHash: tx.hash, chainId: chain.chainId, status: "unknown" }, null, 2),
49
63
  },
50
64
  ],
51
65
  };
@@ -53,6 +67,7 @@ export function registerTxTools(server, config, signer) {
53
67
  const result = {
54
68
  txHash: receipt.hash,
55
69
  from: wallet.address,
70
+ chainId: chain.chainId,
56
71
  blockNumber: receipt.blockNumber,
57
72
  gasUsed: receipt.gasUsed.toString(),
58
73
  status: receipt.status,
@@ -63,17 +78,30 @@ export function registerTxTools(server, config, signer) {
63
78
  });
64
79
  server.tool("dexe_tx_status", "Check the receipt/status of a previously submitted transaction hash.", {
65
80
  txHash: z.string().describe("Transaction hash to look up"),
66
- }, async ({ txHash }) => {
67
- const wallet = signer.requireSigner();
81
+ chainId: z
82
+ .number()
83
+ .int()
84
+ .positive()
85
+ .optional()
86
+ .describe("Chain id to look up the receipt on. Defaults to the MCP's default chain."),
87
+ }, async ({ txHash, chainId }) => {
88
+ const chain = resolveChain(config, chainId);
89
+ const wallet = signer.requireSigner(chain.chainId);
68
90
  const provider = wallet.provider;
69
91
  const receipt = await provider.getTransactionReceipt(txHash);
70
92
  if (!receipt) {
71
93
  return {
72
- content: [{ type: "text", text: JSON.stringify({ status: "pending" }) }],
94
+ content: [
95
+ {
96
+ type: "text",
97
+ text: JSON.stringify({ chainId: chain.chainId, status: "pending" }),
98
+ },
99
+ ],
73
100
  };
74
101
  }
75
102
  const result = {
76
103
  txHash: receipt.hash,
104
+ chainId: chain.chainId,
77
105
  status: receipt.status,
78
106
  blockNumber: receipt.blockNumber,
79
107
  gasUsed: receipt.gasUsed.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"txSend.js","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txSend.js","sourceRoot":"","sources":["../../src/tools/txSend.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dexe-mcp",
3
- "version": "0.5.3",
3
+ "version": "0.5.7",
4
4
  "description": "MCP server for the DeXe Protocol — full DAO operations coverage: deploy DAOs, build every proposal type, IPFS metadata, stake/vote/delegate/execute/claim calldata. Plus dev tooling (build/test/introspect/decode).",
5
5
  "type": "module",
6
6
  "license": "MIT",