dexe-mcp 0.3.0 → 0.5.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +262 -136
  2. package/dist/lib/merkleTree.d.ts +38 -0
  3. package/dist/lib/merkleTree.d.ts.map +1 -0
  4. package/dist/lib/merkleTree.js +83 -0
  5. package/dist/lib/merkleTree.js.map +1 -0
  6. package/dist/tools/flow.d.ts +57 -0
  7. package/dist/tools/flow.d.ts.map +1 -1
  8. package/dist/tools/flow.js +204 -176
  9. package/dist/tools/flow.js.map +1 -1
  10. package/dist/tools/inbox.d.ts +4 -0
  11. package/dist/tools/inbox.d.ts.map +1 -0
  12. package/dist/tools/inbox.js +251 -0
  13. package/dist/tools/inbox.js.map +1 -0
  14. package/dist/tools/index.d.ts.map +1 -1
  15. package/dist/tools/index.js +10 -0
  16. package/dist/tools/index.js.map +1 -1
  17. package/dist/tools/merkle.d.ts +4 -0
  18. package/dist/tools/merkle.d.ts.map +1 -0
  19. package/dist/tools/merkle.js +174 -0
  20. package/dist/tools/merkle.js.map +1 -0
  21. package/dist/tools/otc.d.ts +5 -0
  22. package/dist/tools/otc.d.ts.map +1 -0
  23. package/dist/tools/otc.js +504 -0
  24. package/dist/tools/otc.js.map +1 -0
  25. package/dist/tools/predict.d.ts +4 -0
  26. package/dist/tools/predict.d.ts.map +1 -0
  27. package/dist/tools/predict.js +209 -0
  28. package/dist/tools/predict.js.map +1 -0
  29. package/dist/tools/proposalBuildComplex.d.ts +222 -0
  30. package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
  31. package/dist/tools/proposalBuildComplex.js +373 -66
  32. package/dist/tools/proposalBuildComplex.js.map +1 -1
  33. package/dist/tools/read.js +2 -2
  34. package/dist/tools/read.js.map +1 -1
  35. package/dist/tools/simulate.d.ts +27 -0
  36. package/dist/tools/simulate.d.ts.map +1 -0
  37. package/dist/tools/simulate.js +278 -0
  38. package/dist/tools/simulate.js.map +1 -0
  39. package/dist/tools/subgraph.d.ts.map +1 -1
  40. package/dist/tools/subgraph.js +303 -163
  41. package/dist/tools/subgraph.js.map +1 -1
  42. package/package.json +84 -83
@@ -1,5 +1,62 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { ToolContext } from "./context.js";
3
+ import type { TxPayload } from "../lib/calldata.js";
4
+ import { RpcProvider } from "../rpc.js";
3
5
  import { SignerManager } from "../lib/signer.js";
6
+ interface FlowStep {
7
+ label: string;
8
+ skipped: boolean;
9
+ reason?: string;
10
+ txHash?: string;
11
+ payload?: TxPayload;
12
+ }
13
+ export declare function sendOrCollect(signer: SignerManager, payloads: TxPayload[], opts?: {
14
+ dryRun?: boolean;
15
+ }): Promise<{
16
+ mode: "executed" | "payloads" | "dryRun";
17
+ steps: FlowStep[];
18
+ }>;
19
+ export interface ProposalCreateInput {
20
+ govPool: string;
21
+ proposalType?: "modify_dao_profile" | "custom";
22
+ title: string;
23
+ description?: string;
24
+ newDaoName?: string;
25
+ newDaoDescription?: string;
26
+ newWebsiteUrl?: string;
27
+ newAvatarCID?: string;
28
+ newAvatarFileName?: string;
29
+ newSocialLinks?: [string, string][];
30
+ actionsOnFor?: {
31
+ executor: string;
32
+ value?: string;
33
+ data: string;
34
+ }[];
35
+ category?: string;
36
+ proposalMetadataExtra?: Record<string, unknown>;
37
+ voteAmount?: string;
38
+ voteNftIds?: string[];
39
+ user?: string;
40
+ /** When true, return ordered TxPayloads even if a signer is configured. */
41
+ dryRun?: boolean;
42
+ }
43
+ export interface ProposalCreateDeps {
44
+ ctx: ToolContext;
45
+ signer: SignerManager;
46
+ rpc: RpcProvider;
47
+ }
48
+ /**
49
+ * Pure runner behind `dexe_proposal_create`. Exposed for composite tools
50
+ * (e.g. `dexe_otc_dao_open_sale`) that build their own `actionsOnFor` and
51
+ * want the same prereq + IPFS + multicall flow without going through the
52
+ * MCP tool layer.
53
+ */
54
+ export declare function runProposalCreate(inputRaw: ProposalCreateInput, deps: ProposalCreateDeps): Promise<{
55
+ content: {
56
+ type: "text";
57
+ text: string;
58
+ }[];
59
+ }>;
4
60
  export declare function registerFlowTools(server: McpServer, ctx: ToolContext, signer: SignerManager): void;
61
+ export {};
5
62
  //# sourceMappingURL=flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAkLjD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAkYN"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAkCjD,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAyGD,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,EAAE,EACrB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAqC1E;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,kBAAkB;;;;;GAiMzB;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAwMN"}
@@ -103,8 +103,19 @@ async function resolvePrereqs(rpc, govPool, user) {
103
103
  minVotesForVoting: defaultSettings.minVotesForVoting,
104
104
  };
105
105
  }
106
- async function sendOrCollect(signer, payloads) {
106
+ export async function sendOrCollect(signer, payloads, opts) {
107
107
  const steps = [];
108
+ // `dryRun` and "no signer" both return calldata without broadcasting, but
109
+ // they're tagged distinctly so the swarm orchestrator's mcpFallbackDispatcher
110
+ // (which auto-broadcasts on `mode === "payloads"`) leaves dryRun responses
111
+ // alone. No-signer remains "payloads" so external callers get the same
112
+ // ordered TxPayload contract the public docs promise.
113
+ if (opts?.dryRun) {
114
+ for (const p of payloads) {
115
+ steps.push({ label: p.description, skipped: false, payload: p });
116
+ }
117
+ return { mode: "dryRun", steps };
118
+ }
108
119
  if (!signer.hasSigner()) {
109
120
  for (const p of payloads) {
110
121
  steps.push({ label: p.description, skipped: false, payload: p });
@@ -128,11 +139,186 @@ async function sendOrCollect(signer, payloads) {
128
139
  }
129
140
  return { mode: "executed", steps };
130
141
  }
142
+ /**
143
+ * Pure runner behind `dexe_proposal_create`. Exposed for composite tools
144
+ * (e.g. `dexe_otc_dao_open_sale`) that build their own `actionsOnFor` and
145
+ * want the same prereq + IPFS + multicall flow without going through the
146
+ * MCP tool layer.
147
+ */
148
+ export async function runProposalCreate(inputRaw, deps) {
149
+ const input = {
150
+ proposalType: "custom",
151
+ description: "",
152
+ actionsOnFor: [],
153
+ voteNftIds: [],
154
+ ...inputRaw,
155
+ };
156
+ const { ctx, signer, rpc } = deps;
157
+ if (!ctx.config.pinataJwt)
158
+ return err("DEXE_PINATA_JWT required for proposal creation (IPFS metadata upload).");
159
+ const user = input.user ?? (signer.hasSigner() ? signer.getAddress() : undefined);
160
+ if (!user)
161
+ return err("Provide 'user' address or set DEXE_PRIVATE_KEY.");
162
+ const pinata = new PinataClient(ctx.config.pinataJwt);
163
+ const chainId = ctx.config.chainId;
164
+ const govPool = input.govPool;
165
+ // Step 1: resolve prerequisites
166
+ let prereqs;
167
+ try {
168
+ prereqs = await resolvePrereqs(rpc, govPool, user);
169
+ }
170
+ catch (e) {
171
+ return err(`Failed to resolve prerequisites: ${e instanceof Error ? e.message : String(e)}`);
172
+ }
173
+ // Step 2: check creation threshold
174
+ const totalAvailable = prereqs.walletBalance + prereqs.depositedPower;
175
+ if (prereqs.minVotesForCreating > 0n && totalAvailable < prereqs.minVotesForCreating) {
176
+ return err(`Insufficient tokens for proposal creation. Need ${prereqs.minVotesForCreating} but have ${totalAvailable} (wallet: ${prereqs.walletBalance}, deposited: ${prereqs.depositedPower}).`);
177
+ }
178
+ // Step 3: build actions + metadata based on type
179
+ let actionsOnFor;
180
+ let proposalExtra;
181
+ if (input.proposalType === "modify_dao_profile") {
182
+ // Upload new DAO metadata
183
+ const descSlate = markdownToSlate(input.newDaoDescription ?? input.description ?? "");
184
+ const descRes = await pinata.pinJson(descSlate, { name: `dao-desc:${govPool.slice(0, 10)}` });
185
+ const daoMeta = {
186
+ daoName: input.newDaoName ?? "",
187
+ websiteUrl: input.newWebsiteUrl ?? "",
188
+ description: `ipfs://${descRes.cid}`,
189
+ socialLinks: input.newSocialLinks ?? [],
190
+ documents: [],
191
+ };
192
+ if (input.newAvatarCID) {
193
+ daoMeta.avatarCID = input.newAvatarCID;
194
+ daoMeta.avatarFileName = input.newAvatarFileName ?? "avatar";
195
+ daoMeta.avatarUrl = `https://${input.newAvatarCID}.ipfs.4everland.io/${daoMeta.avatarFileName}`;
196
+ }
197
+ const daoMetaRes = await pinata.pinJson(daoMeta, { name: `dao-meta:${govPool.slice(0, 10)}` });
198
+ const newDescriptionURL = `ipfs://${daoMetaRes.cid}`;
199
+ // Read current descriptionURL for "currentChanges"
200
+ let currentDescriptionURL = "";
201
+ try {
202
+ const provider = rpc.requireProvider();
203
+ const descIface = new Interface(["function descriptionURL() view returns (string)"]);
204
+ const batch = [{ target: govPool, iface: descIface, method: "descriptionURL", args: [] }];
205
+ const res = await multicall(provider, batch);
206
+ if (res[0].success)
207
+ currentDescriptionURL = res[0].value;
208
+ }
209
+ catch { /* best effort */ }
210
+ actionsOnFor = [{
211
+ executor: govPool,
212
+ value: 0n,
213
+ data: GOV_POOL_ABI.encodeFunctionData("editDescriptionURL", [newDescriptionURL]),
214
+ }];
215
+ proposalExtra = {
216
+ category: "daoProfileModification",
217
+ isMeta: false,
218
+ changes: {
219
+ proposedChanges: { descriptionUrl: newDescriptionURL },
220
+ currentChanges: { descriptionUrl: currentDescriptionURL },
221
+ },
222
+ };
223
+ }
224
+ else {
225
+ // custom
226
+ actionsOnFor = input.actionsOnFor.map(a => ({
227
+ executor: a.executor,
228
+ value: BigInt(a.value ?? "0"),
229
+ data: a.data,
230
+ }));
231
+ proposalExtra = {
232
+ ...(input.category ? { category: input.category } : {}),
233
+ isMeta: false,
234
+ ...(input.proposalMetadataExtra ?? {}),
235
+ };
236
+ }
237
+ // Step 4: upload proposal metadata (field names must match frontend exactly)
238
+ const proposalMeta = {
239
+ proposalName: input.title,
240
+ proposalDescription: JSON.stringify(markdownToSlate(input.description)),
241
+ ...proposalExtra,
242
+ };
243
+ const proposalMetaRes = await pinata.pinJson(proposalMeta, { name: `proposal:${input.title.slice(0, 30)}` });
244
+ const descriptionURL = `ipfs://${proposalMetaRes.cid}`;
245
+ // Step 5: build tx payloads
246
+ const payloads = [];
247
+ const skippedSteps = [];
248
+ // Determine how much to deposit
249
+ const voteAmount = input.voteAmount ? BigInt(input.voteAmount) : prereqs.depositedPower + prereqs.walletBalance;
250
+ if (voteAmount === 0n) {
251
+ return err("No voting power available (wallet + deposited = 0). Deposit tokens first.");
252
+ }
253
+ const needDeposit = voteAmount > prereqs.depositedPower ? voteAmount - prereqs.depositedPower : 0n;
254
+ if (needDeposit > prereqs.walletBalance) {
255
+ return err(`Need to deposit ${needDeposit} but wallet only has ${prereqs.walletBalance}. Missing ${needDeposit - prereqs.walletBalance}.`);
256
+ }
257
+ // Approve (if needed)
258
+ if (needDeposit > 0n && prereqs.currentAllowance < needDeposit) {
259
+ payloads.push(makeTxPayload(prereqs.tokenAddress, ERC20_ABI, "approve", [prereqs.userKeeper, MaxUint256], chainId, `ERC20.approve(${prereqs.userKeeper}, MAX_UINT256)`));
260
+ }
261
+ else {
262
+ skippedSteps.push({ label: "ERC20.approve", skipped: true, reason: "Allowance sufficient" });
263
+ }
264
+ // Build GovPool calls to batch via multicall
265
+ const govPoolCalls = [];
266
+ // Deposit (if needed)
267
+ if (needDeposit > 0n) {
268
+ govPoolCalls.push(GOV_POOL_ABI.encodeFunctionData("deposit", [needDeposit, []]));
269
+ }
270
+ else {
271
+ skippedSteps.push({ label: "GovPool.deposit", skipped: true, reason: "Sufficient deposited power" });
272
+ }
273
+ // createProposalAndVote
274
+ const actionsForTuple = actionsOnFor.map(a => [a.executor, a.value, a.data]);
275
+ govPoolCalls.push(GOV_POOL_ABI.encodeFunctionData("createProposalAndVote", [
276
+ descriptionURL,
277
+ actionsForTuple,
278
+ [], // actionsOnAgainst
279
+ voteAmount,
280
+ input.voteNftIds.map(id => BigInt(id)),
281
+ ]));
282
+ // Wrap in multicall if >1 call, otherwise single tx
283
+ if (govPoolCalls.length > 1) {
284
+ payloads.push({
285
+ to: govPool,
286
+ data: GOV_POOL_ABI.encodeFunctionData("multicall", [govPoolCalls]),
287
+ value: "0",
288
+ chainId,
289
+ description: `GovPool.multicall([deposit, createProposalAndVote])`,
290
+ });
291
+ }
292
+ else {
293
+ payloads.push({
294
+ to: govPool,
295
+ data: govPoolCalls[0],
296
+ value: "0",
297
+ chainId,
298
+ description: `GovPool.createProposalAndVote("${input.title}")`,
299
+ });
300
+ }
301
+ // Step 6: send or return
302
+ const result = await sendOrCollect(signer, payloads, { dryRun: input.dryRun });
303
+ return ok({
304
+ mode: result.mode,
305
+ descriptionURL,
306
+ proposalMetadataCID: proposalMetaRes.cid,
307
+ prereqs: {
308
+ walletBalance: prereqs.walletBalance.toString(),
309
+ depositedPower: prereqs.depositedPower.toString(),
310
+ allowance: prereqs.currentAllowance.toString(),
311
+ minVotesForCreating: prereqs.minVotesForCreating.toString(),
312
+ tokenAddress: prereqs.tokenAddress,
313
+ },
314
+ steps: [...skippedSteps, ...result.steps],
315
+ });
316
+ }
131
317
  // ---------- register ----------
132
318
  export function registerFlowTools(server, ctx, signer) {
133
319
  const rpc = new RpcProvider(ctx.config);
134
320
  // =============================================
135
- // dexe_proposal_create
321
+ // dexe_proposal_create — thin shim around runProposalCreate
136
322
  // =============================================
137
323
  server.tool("dexe_proposal_create", "Create a governance proposal with full prerequisite handling. " +
138
324
  "Automatically checks token balance, approves if needed, deposits if needed, " +
@@ -147,187 +333,24 @@ export function registerFlowTools(server, ctx, signer) {
147
333
  proposalType: z.enum(["modify_dao_profile", "custom"]).default("custom"),
148
334
  title: z.string().describe("Proposal title"),
149
335
  description: z.string().default("").describe("Proposal description (markdown supported)"),
150
- // modify_dao_profile fields
151
- newDaoName: z.string().optional().describe("New DAO name (for modify_dao_profile)"),
152
- newDaoDescription: z.string().optional().describe("New DAO description markdown"),
153
- newWebsiteUrl: z.string().optional().describe("New website URL"),
154
- newAvatarCID: z.string().optional().describe("CID of avatar image (from dexe_ipfs_upload_file)"),
155
- newAvatarFileName: z.string().optional().describe("Avatar filename e.g. 'avatar.jpeg'"),
336
+ newDaoName: z.string().optional(),
337
+ newDaoDescription: z.string().optional(),
338
+ newWebsiteUrl: z.string().optional(),
339
+ newAvatarCID: z.string().optional(),
340
+ newAvatarFileName: z.string().optional(),
156
341
  newSocialLinks: z.array(z.tuple([z.string(), z.string()])).optional(),
157
- // custom fields
158
342
  actionsOnFor: z.array(z.object({
159
343
  executor: z.string(),
160
344
  value: z.string().default("0"),
161
345
  data: z.string(),
162
346
  })).default([]).describe("Actions for custom proposals"),
163
- category: z.string().optional().describe("Proposal category (e.g. 'Token Transfer', 'Change Voting Settings'). Included in IPFS metadata."),
164
- proposalMetadataExtra: z.record(z.unknown()).optional().describe("Extra fields merged into IPFS metadata (e.g. changes, isMeta). From dexe_proposal_build_* output."),
165
- // voting
347
+ category: z.string().optional().describe("Proposal category (included in IPFS metadata)."),
348
+ proposalMetadataExtra: z.record(z.unknown()).optional().describe("Extra fields merged into IPFS metadata."),
166
349
  voteAmount: z.string().optional().describe("Auto-vote amount (18-dec wei). Defaults to all deposited power."),
167
350
  voteNftIds: z.array(z.string()).default([]),
168
- // override
169
351
  user: z.string().optional().describe("User address. Required when DEXE_PRIVATE_KEY not set."),
170
- }, async (input) => {
171
- if (!ctx.config.pinataJwt)
172
- return err("DEXE_PINATA_JWT required for proposal creation (IPFS metadata upload).");
173
- const user = input.user ?? (signer.hasSigner() ? signer.getAddress() : undefined);
174
- if (!user)
175
- return err("Provide 'user' address or set DEXE_PRIVATE_KEY.");
176
- const pinata = new PinataClient(ctx.config.pinataJwt);
177
- const chainId = ctx.config.chainId;
178
- const govPool = input.govPool;
179
- // Step 1: resolve prerequisites
180
- let prereqs;
181
- try {
182
- prereqs = await resolvePrereqs(rpc, govPool, user);
183
- }
184
- catch (e) {
185
- return err(`Failed to resolve prerequisites: ${e instanceof Error ? e.message : String(e)}`);
186
- }
187
- // Step 2: check creation threshold
188
- const totalAvailable = prereqs.walletBalance + prereqs.depositedPower;
189
- if (prereqs.minVotesForCreating > 0n && totalAvailable < prereqs.minVotesForCreating) {
190
- return err(`Insufficient tokens for proposal creation. Need ${prereqs.minVotesForCreating} but have ${totalAvailable} (wallet: ${prereqs.walletBalance}, deposited: ${prereqs.depositedPower}).`);
191
- }
192
- // Step 3: build actions + metadata based on type
193
- let actionsOnFor;
194
- let proposalExtra;
195
- if (input.proposalType === "modify_dao_profile") {
196
- // Upload new DAO metadata
197
- const descSlate = markdownToSlate(input.newDaoDescription ?? input.description ?? "");
198
- const descRes = await pinata.pinJson(descSlate, { name: `dao-desc:${govPool.slice(0, 10)}` });
199
- const daoMeta = {
200
- daoName: input.newDaoName ?? "",
201
- websiteUrl: input.newWebsiteUrl ?? "",
202
- description: `ipfs://${descRes.cid}`,
203
- socialLinks: input.newSocialLinks ?? [],
204
- documents: [],
205
- };
206
- if (input.newAvatarCID) {
207
- daoMeta.avatarCID = input.newAvatarCID;
208
- daoMeta.avatarFileName = input.newAvatarFileName ?? "avatar";
209
- daoMeta.avatarUrl = `https://${input.newAvatarCID}.ipfs.4everland.io/${daoMeta.avatarFileName}`;
210
- }
211
- const daoMetaRes = await pinata.pinJson(daoMeta, { name: `dao-meta:${govPool.slice(0, 10)}` });
212
- const newDescriptionURL = `ipfs://${daoMetaRes.cid}`;
213
- // Read current descriptionURL for "currentChanges"
214
- let currentDescriptionURL = "";
215
- try {
216
- const provider = rpc.requireProvider();
217
- const descIface = new Interface(["function descriptionURL() view returns (string)"]);
218
- const batch = [{ target: govPool, iface: descIface, method: "descriptionURL", args: [] }];
219
- const res = await multicall(provider, batch);
220
- if (res[0].success)
221
- currentDescriptionURL = res[0].value;
222
- }
223
- catch { /* best effort */ }
224
- actionsOnFor = [{
225
- executor: govPool,
226
- value: 0n,
227
- data: GOV_POOL_ABI.encodeFunctionData("editDescriptionURL", [newDescriptionURL]),
228
- }];
229
- proposalExtra = {
230
- category: "daoProfileModification",
231
- isMeta: false,
232
- changes: {
233
- proposedChanges: { descriptionUrl: newDescriptionURL },
234
- currentChanges: { descriptionUrl: currentDescriptionURL },
235
- },
236
- };
237
- }
238
- else {
239
- // custom
240
- actionsOnFor = input.actionsOnFor.map(a => ({
241
- executor: a.executor,
242
- value: BigInt(a.value),
243
- data: a.data,
244
- }));
245
- proposalExtra = {
246
- ...(input.category ? { category: input.category } : {}),
247
- isMeta: false,
248
- ...(input.proposalMetadataExtra ?? {}),
249
- };
250
- }
251
- // Step 4: upload proposal metadata (field names must match frontend exactly)
252
- const proposalMeta = {
253
- proposalName: input.title,
254
- proposalDescription: JSON.stringify(markdownToSlate(input.description)),
255
- ...proposalExtra,
256
- };
257
- const proposalMetaRes = await pinata.pinJson(proposalMeta, { name: `proposal:${input.title.slice(0, 30)}` });
258
- const descriptionURL = `ipfs://${proposalMetaRes.cid}`;
259
- // Step 5: build tx payloads
260
- const payloads = [];
261
- const skippedSteps = [];
262
- // Determine how much to deposit
263
- const voteAmount = input.voteAmount ? BigInt(input.voteAmount) : prereqs.depositedPower + prereqs.walletBalance;
264
- if (voteAmount === 0n) {
265
- return err("No voting power available (wallet + deposited = 0). Deposit tokens first.");
266
- }
267
- const needDeposit = voteAmount > prereqs.depositedPower ? voteAmount - prereqs.depositedPower : 0n;
268
- if (needDeposit > prereqs.walletBalance) {
269
- return err(`Need to deposit ${needDeposit} but wallet only has ${prereqs.walletBalance}. Missing ${needDeposit - prereqs.walletBalance}.`);
270
- }
271
- // Approve (if needed)
272
- if (needDeposit > 0n && prereqs.currentAllowance < needDeposit) {
273
- payloads.push(makeTxPayload(prereqs.tokenAddress, ERC20_ABI, "approve", [prereqs.userKeeper, MaxUint256], chainId, `ERC20.approve(${prereqs.userKeeper}, MAX_UINT256)`));
274
- }
275
- else {
276
- skippedSteps.push({ label: "ERC20.approve", skipped: true, reason: "Allowance sufficient" });
277
- }
278
- // Build GovPool calls to batch via multicall
279
- const govPoolCalls = [];
280
- // Deposit (if needed)
281
- if (needDeposit > 0n) {
282
- govPoolCalls.push(GOV_POOL_ABI.encodeFunctionData("deposit", [needDeposit, []]));
283
- }
284
- else {
285
- skippedSteps.push({ label: "GovPool.deposit", skipped: true, reason: "Sufficient deposited power" });
286
- }
287
- // createProposalAndVote
288
- const actionsForTuple = actionsOnFor.map(a => [a.executor, a.value, a.data]);
289
- govPoolCalls.push(GOV_POOL_ABI.encodeFunctionData("createProposalAndVote", [
290
- descriptionURL,
291
- actionsForTuple,
292
- [], // actionsOnAgainst
293
- voteAmount,
294
- input.voteNftIds.map(id => BigInt(id)),
295
- ]));
296
- // Wrap in multicall if >1 call, otherwise single tx
297
- if (govPoolCalls.length > 1) {
298
- payloads.push({
299
- to: govPool,
300
- data: GOV_POOL_ABI.encodeFunctionData("multicall", [govPoolCalls]),
301
- value: "0",
302
- chainId,
303
- description: `GovPool.multicall([deposit, createProposalAndVote])`,
304
- });
305
- }
306
- else {
307
- payloads.push({
308
- to: govPool,
309
- data: govPoolCalls[0],
310
- value: "0",
311
- chainId,
312
- description: `GovPool.createProposalAndVote("${input.title}")`,
313
- });
314
- }
315
- // Step 6: send or return
316
- const result = await sendOrCollect(signer, payloads);
317
- return ok({
318
- mode: result.mode,
319
- descriptionURL,
320
- proposalMetadataCID: proposalMetaRes.cid,
321
- prereqs: {
322
- walletBalance: prereqs.walletBalance.toString(),
323
- depositedPower: prereqs.depositedPower.toString(),
324
- allowance: prereqs.currentAllowance.toString(),
325
- minVotesForCreating: prereqs.minVotesForCreating.toString(),
326
- tokenAddress: prereqs.tokenAddress,
327
- },
328
- steps: [...skippedSteps, ...result.steps],
329
- });
330
- });
352
+ dryRun: z.boolean().default(false).describe("If true, return ordered TxPayloads even when DEXE_PRIVATE_KEY is set."),
353
+ }, (input) => runProposalCreate(input, { ctx, signer, rpc }));
331
354
  // =============================================
332
355
  // dexe_proposal_vote_and_execute
333
356
  // =============================================
@@ -361,8 +384,13 @@ export function registerFlowTools(server, ctx, signer) {
361
384
  const STATE_NAMES = ["Voting", "WaitingForVotingTransfer", "ValidatorVoting", "Defeated", "SucceededFor", "SucceededAgainst", "Locked", "ExecutedFor", "ExecutedAgainst", "Undefined"];
362
385
  const stateNum = Number(stateRes[0].value);
363
386
  const stateName = STATE_NAMES[stateNum] ?? `Unknown(${stateNum})`;
364
- // Already succeeded — skip voting, go straight to execute
365
- if ((stateNum === 4 || stateNum === 5) && input.autoExecute) {
387
+ // Already past voting — skip vote, go straight to execute. State 4 =
388
+ // SucceededFor, 5 = SucceededAgainst, 6 = Locked (post-quorum, post-
389
+ // validator window if any, executable once delay elapsed). When the
390
+ // open_sale composite votes with enough power to clear quorum +
391
+ // earlyCompletion, the proposal lands directly in Locked, so we must
392
+ // recognize it here as executable.
393
+ if ((stateNum === 4 || stateNum === 5 || stateNum === 6) && input.autoExecute) {
366
394
  const execResult = await sendOrCollect(signer, [
367
395
  makeTxPayload(govPool, GOV_POOL_ABI, "execute", [proposalId], chainId, `GovPool.execute(${proposalId})`),
368
396
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolContext } from "./context.js";
3
+ export declare function registerInboxTools(server: McpServer, ctx: ToolContext): void;
4
+ //# sourceMappingURL=inbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/tools/inbox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAmFhD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA2M5E"}