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,6 @@
1
1
  import { z } from "zod";
2
- import { Interface, isAddress, ZeroAddress } from "ethers";
2
+ import { AbiCoder, Interface, isAddress, ZeroAddress, getAddress } from "ethers";
3
+ import { buildAddressMerkleTree } from "../lib/merkleTree.js";
3
4
  /**
4
5
  * Phase 3c — 10 complex named wrappers. Same contract as 3a/3b:
5
6
  * every wrapper returns `{ metadata, actions: Action[] }`. Actions are fed
@@ -15,10 +16,51 @@ import { Interface, isAddress, ZeroAddress } from "ethers";
15
16
  const DISTRIBUTION_PROPOSAL_ABI = [
16
17
  "function execute(uint256 proposalId, address token, uint256 amount)",
17
18
  ];
18
- const TOKEN_SALE_PROPOSAL_ABI = [
19
- "function createTiers(tuple(tuple(string name, string description) metadata, uint256 totalTokenProvided, uint256 saleStartTime, uint256 saleEndTime, address saleTokenAddress, uint256 claimLockDuration, address[] purchaseTokenAddresses, uint256[] exchangeRates, uint256 minAllocationPerUser, uint256 maxAllocationPerUser, tuple(uint256 cliffPeriod, uint256 unlockStep, uint256 vestingDuration, uint256 vestingPercentage) vestingSettings, tuple(uint8 participationType, bytes data)[] participationDetails)[] tiers)",
19
+ // Canonical TokenSaleProposal signatures — verified against
20
+ // `dexe_get_methods TokenSaleProposal` (selectors createTiers=0x6a6effda,
21
+ // addToWhitelist=0xce6c2d91, recover=0xc59b695a) and the interface at
22
+ // `contracts/interfaces/gov/proposals/ITokenSaleProposal.sol`.
23
+ export const TOKEN_SALE_PROPOSAL_ABI = [
24
+ "function createTiers(tuple(tuple(string name, string description) metadata, uint256 totalTokenProvided, uint64 saleStartTime, uint64 saleEndTime, uint64 claimLockDuration, address saleTokenAddress, address[] purchaseTokenAddresses, uint256[] exchangeRates, uint256 minAllocationPerUser, uint256 maxAllocationPerUser, tuple(uint256 vestingPercentage, uint64 vestingDuration, uint64 cliffPeriod, uint64 unlockStep) vestingSettings, tuple(uint8 participationType, bytes data)[] participationDetails)[] tiers)",
25
+ "function addToWhitelist(tuple(uint256 tierId, address[] users, string uri)[] requests)",
20
26
  "function recover(uint256[] tierIds)",
21
27
  ];
28
+ const PARTICIPATION_TYPE_INDEX = {
29
+ DAOVotes: 0,
30
+ Whitelist: 1,
31
+ BABT: 2,
32
+ TokenLock: 3,
33
+ NftLock: 4,
34
+ MerkleWhitelist: 5,
35
+ };
36
+ const participationSchema = z.discriminatedUnion("type", [
37
+ z.object({ type: z.literal("DAOVotes"), requiredVotes: z.string() }),
38
+ z.object({
39
+ type: z.literal("Whitelist"),
40
+ users: z.array(z.string()).default([]),
41
+ uri: z.string().default(""),
42
+ }),
43
+ z.object({ type: z.literal("BABT") }),
44
+ z.object({
45
+ type: z.literal("TokenLock"),
46
+ token: z.string(),
47
+ amount: z.string(),
48
+ }),
49
+ z.object({
50
+ type: z.literal("NftLock"),
51
+ nft: z.string(),
52
+ amount: z.string(),
53
+ }),
54
+ z.object({
55
+ type: z.literal("MerkleWhitelist"),
56
+ users: z.array(z.string()).default([]),
57
+ uri: z.string().default(""),
58
+ root: z
59
+ .string()
60
+ .optional()
61
+ .describe("Optional pre-computed merkle root. If omitted but `users` is set, the tool computes it."),
62
+ }),
63
+ ]);
22
64
  const STAKING_PROPOSAL_ABI = [
23
65
  "function createStaking(address rewardToken, uint256 rewardAmount, uint256 startedAt, uint256 deadline, string metadata)",
24
66
  ];
@@ -68,6 +110,8 @@ function wrapperResult(params) {
68
110
  export function registerProposalBuildComplexTools(server, _ctx) {
69
111
  registerTokenDistribution(server);
70
112
  registerTokenSale(server);
113
+ registerTokenSaleMulti(server);
114
+ registerTokenSaleWhitelist(server);
71
115
  registerTokenSaleRecover(server);
72
116
  registerCreateStakingTier(server);
73
117
  registerChangeMathModel(server);
@@ -141,90 +185,295 @@ function registerTokenDistribution(server) {
141
185
  });
142
186
  }
143
187
  // ---------- 2. token_sale ----------
188
+ // Vesting settings shape — keys match the contract's VestingSettings struct
189
+ // order (vestingPercentage, vestingDuration, cliffPeriod, unlockStep).
190
+ const vestingSchema = z
191
+ .object({
192
+ vestingPercentage: z.string().default("0"),
193
+ vestingDuration: z.string().default("0"),
194
+ cliffPeriod: z.string().default("0"),
195
+ unlockStep: z.string().default("0"),
196
+ })
197
+ .default({
198
+ vestingPercentage: "0",
199
+ vestingDuration: "0",
200
+ cliffPeriod: "0",
201
+ unlockStep: "0",
202
+ });
203
+ export const tierSchema = z.object({
204
+ name: z.string(),
205
+ description: z.string().default(""),
206
+ totalTokenProvided: z.string(),
207
+ saleStartTime: z.string().describe("Unix seconds"),
208
+ saleEndTime: z.string().describe("Unix seconds"),
209
+ claimLockDuration: z.string().default("0"),
210
+ saleTokenAddress: z.string(),
211
+ purchaseTokenAddresses: z.array(z.string()).min(1),
212
+ exchangeRates: z.array(z.string()).min(1),
213
+ minAllocationPerUser: z.string().default("0"),
214
+ maxAllocationPerUser: z.string().default("0"),
215
+ vestingSettings: vestingSchema,
216
+ participation: z
217
+ .array(participationSchema)
218
+ .default([])
219
+ .describe("Participation requirements (joined with AND on-chain). Leave empty for an open tier."),
220
+ });
221
+ const dataCoder = AbiCoder.defaultAbiCoder();
222
+ function encodeParticipationData(spec) {
223
+ const typeIdx = PARTICIPATION_TYPE_INDEX[spec.type];
224
+ switch (spec.type) {
225
+ case "DAOVotes": {
226
+ const data = dataCoder.encode(["uint256"], [BigInt(spec.requiredVotes)]);
227
+ return { detail: { type: typeIdx, data } };
228
+ }
229
+ case "Whitelist": {
230
+ // Plain whitelist: NFT-mint mode. Empty data; users are added via
231
+ // `addToWhitelist` in a follow-up action.
232
+ const users = (spec.users ?? []).map((u) => {
233
+ if (!isAddress(u))
234
+ throw new Error(`Invalid whitelist user: ${u}`);
235
+ return getAddress(u);
236
+ });
237
+ return {
238
+ detail: { type: typeIdx, data: "0x" },
239
+ whitelistUsers: users,
240
+ whitelistUri: spec.uri ?? "",
241
+ };
242
+ }
243
+ case "BABT": {
244
+ return { detail: { type: typeIdx, data: "0x" } };
245
+ }
246
+ case "TokenLock": {
247
+ if (!isAddress(spec.token))
248
+ throw new Error(`Invalid TokenLock token: ${spec.token}`);
249
+ const data = dataCoder.encode(["address", "uint256"], [getAddress(spec.token), BigInt(spec.amount)]);
250
+ return { detail: { type: typeIdx, data } };
251
+ }
252
+ case "NftLock": {
253
+ if (!isAddress(spec.nft))
254
+ throw new Error(`Invalid NftLock nft: ${spec.nft}`);
255
+ const data = dataCoder.encode(["address", "uint256"], [getAddress(spec.nft), BigInt(spec.amount)]);
256
+ return { detail: { type: typeIdx, data } };
257
+ }
258
+ case "MerkleWhitelist": {
259
+ let root = spec.root;
260
+ let users;
261
+ if (!root) {
262
+ if (!spec.users || spec.users.length === 0) {
263
+ throw new Error("MerkleWhitelist needs either `root` or non-empty `users`.");
264
+ }
265
+ users = spec.users.map((u) => {
266
+ if (!isAddress(u))
267
+ throw new Error(`Invalid MerkleWhitelist user: ${u}`);
268
+ return getAddress(u);
269
+ });
270
+ root = buildAddressMerkleTree(users).root;
271
+ }
272
+ const data = dataCoder.encode(["bytes32", "string"], [root, spec.uri ?? ""]);
273
+ return {
274
+ detail: { type: typeIdx, data },
275
+ derived: { root, users: users ?? [] },
276
+ };
277
+ }
278
+ }
279
+ }
280
+ export function buildTierTuple(tier) {
281
+ if (!isAddress(tier.saleTokenAddress)) {
282
+ throw new Error(`Invalid saleTokenAddress for tier "${tier.name}".`);
283
+ }
284
+ if (tier.purchaseTokenAddresses.length !== tier.exchangeRates.length) {
285
+ throw new Error(`Tier "${tier.name}": purchaseTokenAddresses and exchangeRates must be parallel arrays.`);
286
+ }
287
+ for (const pt of tier.purchaseTokenAddresses) {
288
+ if (!isAddress(pt))
289
+ throw new Error(`Tier "${tier.name}": invalid purchase token ${pt}.`);
290
+ }
291
+ const participationDetails = [];
292
+ let whitelistUsers = [];
293
+ let whitelistUri = "";
294
+ const derivedRoots = [];
295
+ for (const spec of tier.participation ?? []) {
296
+ const encoded = encodeParticipationData(spec);
297
+ participationDetails.push(encoded.detail);
298
+ if (encoded.whitelistUsers && encoded.whitelistUsers.length > 0) {
299
+ whitelistUsers = whitelistUsers.concat(encoded.whitelistUsers);
300
+ whitelistUri = encoded.whitelistUri ?? whitelistUri;
301
+ }
302
+ if (encoded.derived)
303
+ derivedRoots.push(encoded.derived);
304
+ }
305
+ const tuple = [
306
+ [tier.name, tier.description],
307
+ BigInt(tier.totalTokenProvided),
308
+ BigInt(tier.saleStartTime),
309
+ BigInt(tier.saleEndTime),
310
+ BigInt(tier.claimLockDuration),
311
+ getAddress(tier.saleTokenAddress),
312
+ tier.purchaseTokenAddresses.map((p) => getAddress(p)),
313
+ tier.exchangeRates.map((r) => BigInt(r)),
314
+ BigInt(tier.minAllocationPerUser),
315
+ BigInt(tier.maxAllocationPerUser),
316
+ [
317
+ BigInt(tier.vestingSettings.vestingPercentage),
318
+ BigInt(tier.vestingSettings.vestingDuration),
319
+ BigInt(tier.vestingSettings.cliffPeriod),
320
+ BigInt(tier.vestingSettings.unlockStep),
321
+ ],
322
+ participationDetails.map((d) => [d.type, d.data]),
323
+ ];
324
+ return { tuple, whitelistUsers, whitelistUri, derivedRoots };
325
+ }
326
+ export function buildSaleApprovals(tiers, tokenSaleProposal) {
327
+ // Sum total token provided per sale token (matches frontend's saleTokensMap
328
+ // reducer in `useGovPoolCreateTokenSaleProposal.ts`).
329
+ const totals = new Map();
330
+ for (const tier of tiers) {
331
+ const key = getAddress(tier.saleTokenAddress);
332
+ totals.set(key, (totals.get(key) ?? 0n) + BigInt(tier.totalTokenProvided));
333
+ }
334
+ const erc20Iface = new Interface(ERC20_GOV_ABI);
335
+ const actions = [];
336
+ for (const [token, amount] of totals.entries()) {
337
+ actions.push({
338
+ executor: token,
339
+ value: "0",
340
+ data: erc20Iface.encodeFunctionData("approve", [tokenSaleProposal, amount]),
341
+ });
342
+ }
343
+ return actions;
344
+ }
345
+ /**
346
+ * Pure builder for a multi-tier Token Sale proposal envelope. Used by both
347
+ * the `dexe_proposal_build_token_sale_multi` registrar and the OTC composite
348
+ * tools in `src/tools/otc.ts`.
349
+ */
350
+ export function buildTokenSaleMultiActions(input) {
351
+ const { tokenSaleProposal, tiers, latestTierId = "0", proposalName = "Token Sale", proposalDescription = "", } = input;
352
+ if (!isAddress(tokenSaleProposal)) {
353
+ throw new Error(`Invalid tokenSaleProposal: ${tokenSaleProposal}`);
354
+ }
355
+ const iface = new Interface(TOKEN_SALE_PROPOSAL_ABI);
356
+ const built = tiers.map((t) => buildTierTuple(t));
357
+ const whitelistRequests = [];
358
+ const baseTierId = BigInt(latestTierId);
359
+ built.forEach((w, i) => {
360
+ if (w.whitelistUsers.length > 0) {
361
+ whitelistRequests.push({
362
+ tierId: baseTierId + 1n + BigInt(i),
363
+ users: w.whitelistUsers,
364
+ uri: w.whitelistUri,
365
+ });
366
+ }
367
+ });
368
+ const tierTuples = built.map((b) => b.tuple);
369
+ const createData = iface.encodeFunctionData("createTiers", [tierTuples]);
370
+ const actions = [];
371
+ actions.push(...buildSaleApprovals(tiers, tokenSaleProposal));
372
+ actions.push({ executor: tokenSaleProposal, value: "0", data: createData });
373
+ if (whitelistRequests.length > 0) {
374
+ const wlData = iface.encodeFunctionData("addToWhitelist", [
375
+ whitelistRequests.map((r) => [r.tierId, r.users, r.uri]),
376
+ ]);
377
+ actions.push({ executor: tokenSaleProposal, value: "0", data: wlData });
378
+ }
379
+ const derivedMerkleRoots = built.flatMap((b) => b.derivedRoots);
380
+ const metadata = {
381
+ proposalName,
382
+ proposalDescription: JSON.stringify(proposalDescription),
383
+ category: "tokenSale",
384
+ isMeta: false,
385
+ changes: {
386
+ proposedChanges: { tiers, derivedMerkleRoots },
387
+ currentChanges: {},
388
+ },
389
+ };
390
+ return {
391
+ metadata,
392
+ actions,
393
+ derivedMerkleRoots,
394
+ whitelistRequests: whitelistRequests.map((r) => ({
395
+ tierId: r.tierId.toString(),
396
+ users: r.users,
397
+ uri: r.uri,
398
+ })),
399
+ tierNames: tiers.map((t) => t.name).join(", "),
400
+ };
401
+ }
402
+ function registerTokenSaleMulti(server) {
403
+ server.registerTool("dexe_proposal_build_token_sale_multi", {
404
+ title: "Build a multi-tier Token Sale proposal (createTiers + optional addToWhitelist)",
405
+ description: "Wraps `TokenSaleProposal.createTiers([...])` for one or more tiers. Each tier may declare zero or more participation requirements (DAOVotes, Whitelist, BABT, TokenLock, NftLock, MerkleWhitelist) — the data payload is encoded per-type to match `TokenSaleProposalCreate.sol`. ERC20 approves are summed and deduped per sale token. For tiers using plain `Whitelist`, the matching `addToWhitelist` action is appended automatically when users are supplied.",
406
+ inputSchema: {
407
+ tokenSaleProposal: z.string().describe("TokenSaleProposal contract address"),
408
+ tiers: z.array(tierSchema).min(1),
409
+ latestTierId: z
410
+ .string()
411
+ .default("0")
412
+ .describe("Current `latestTierId()` on TokenSaleProposal. Defaults to 0 — bump when extending an existing sale so addToWhitelist tier ids are correct."),
413
+ proposalName: z.string().default("Token Sale"),
414
+ proposalDescription: z.string().default(""),
415
+ },
416
+ outputSchema: payloadOutputSchema(),
417
+ }, async (input) => {
418
+ try {
419
+ const built = buildTokenSaleMultiActions(input);
420
+ return wrapperResult({
421
+ metadata: built.metadata,
422
+ actions: built.actions,
423
+ title: `Token Sale tiers → ${built.tierNames}`,
424
+ detail: `Target: TokenSaleProposal(${input.tokenSaleProposal}).createTiers (${input.tiers.length} tier${input.tiers.length === 1 ? "" : "s"}${built.whitelistRequests.length > 0
425
+ ? ` + addToWhitelist(${built.whitelistRequests.length})`
426
+ : ""})`,
427
+ });
428
+ }
429
+ catch (err) {
430
+ return errorResult(err instanceof Error ? err.message : String(err));
431
+ }
432
+ });
433
+ }
144
434
  function registerTokenSale(server) {
435
+ // Back-compat shim around the multi-tier builder. Same single-tier API as
436
+ // before, plus an optional `participation` field. Delegates encoding to
437
+ // `buildTierTuple` so calldata stays canonical.
145
438
  server.registerTool("dexe_proposal_build_token_sale", {
146
439
  title: "Wrapper: launch a token-sale tier via TokenSaleProposal.createTiers",
147
- description: "Builds a Token Sale proposal with a single tier. Covers the common case (basic tier, optional plain whitelist, no merkle participation). For advanced merkle-whitelist tiers, encode `participationDetails` externally and use `dexe_proposal_build_custom_abi` instead.",
440
+ description: "Builds a Token Sale proposal with a single tier. Forwards to `dexe_proposal_build_token_sale_multi` internally. For multi-tier sales or merkle whitelists, call `_multi` directly.",
148
441
  inputSchema: {
149
442
  tokenSaleProposal: z.string().describe("TokenSaleProposal contract address"),
150
- tier: z.object({
151
- name: z.string(),
152
- description: z.string().default(""),
153
- totalTokenProvided: z.string(),
154
- saleStartTime: z.string().describe("Unix seconds"),
155
- saleEndTime: z.string().describe("Unix seconds"),
156
- saleTokenAddress: z.string(),
157
- claimLockDuration: z.string().default("0"),
158
- purchaseTokenAddresses: z.array(z.string()).min(1),
159
- exchangeRates: z.array(z.string()).min(1),
160
- minAllocationPerUser: z.string().default("0"),
161
- maxAllocationPerUser: z.string().default("0"),
162
- vestingSettings: z
163
- .object({
164
- cliffPeriod: z.string().default("0"),
165
- unlockStep: z.string().default("0"),
166
- vestingDuration: z.string().default("0"),
167
- vestingPercentage: z.string().default("0"),
168
- })
169
- .default({
170
- cliffPeriod: "0",
171
- unlockStep: "0",
172
- vestingDuration: "0",
173
- vestingPercentage: "0",
174
- }),
175
- }),
443
+ tier: tierSchema,
444
+ latestTierId: z.string().default("0"),
176
445
  proposalName: z.string().default("Token Sale"),
177
446
  proposalDescription: z.string().default(""),
178
447
  },
179
448
  outputSchema: payloadOutputSchema(),
180
- }, async ({ tokenSaleProposal, tier, proposalName = "Token Sale", proposalDescription = "" }) => {
181
- if (!isAddress(tokenSaleProposal))
449
+ }, async ({ tokenSaleProposal, tier, latestTierId = "0", proposalName = "Token Sale", proposalDescription = "", }) => {
450
+ if (!isAddress(tokenSaleProposal)) {
182
451
  return errorResult(`Invalid tokenSaleProposal: ${tokenSaleProposal}`);
183
- if (!isAddress(tier.saleTokenAddress))
184
- return errorResult(`Invalid saleTokenAddress`);
185
- if (tier.purchaseTokenAddresses.length !== tier.exchangeRates.length) {
186
- return errorResult("purchaseTokenAddresses and exchangeRates must be parallel arrays");
187
452
  }
188
453
  try {
189
454
  const iface = new Interface(TOKEN_SALE_PROPOSAL_ABI);
190
- const tierTuple = [
191
- [tier.name, tier.description],
192
- BigInt(tier.totalTokenProvided),
193
- BigInt(tier.saleStartTime),
194
- BigInt(tier.saleEndTime),
195
- tier.saleTokenAddress,
196
- BigInt(tier.claimLockDuration),
197
- tier.purchaseTokenAddresses,
198
- tier.exchangeRates.map((r) => BigInt(r)),
199
- BigInt(tier.minAllocationPerUser),
200
- BigInt(tier.maxAllocationPerUser),
201
- [
202
- BigInt(tier.vestingSettings.cliffPeriod),
203
- BigInt(tier.vestingSettings.unlockStep),
204
- BigInt(tier.vestingSettings.vestingDuration),
205
- BigInt(tier.vestingSettings.vestingPercentage),
206
- ],
207
- [], // participationDetails — empty for the common case
208
- ];
209
- const data = iface.encodeFunctionData("createTiers", [[tierTuple]]);
455
+ const built = buildTierTuple(tier);
210
456
  const actions = [];
211
- // Prepend ERC20.approve for the sale token (required for on-chain execution)
212
- if (isAddress(tier.saleTokenAddress)) {
213
- const erc20Iface = new Interface(ERC20_GOV_ABI);
214
- const approveData = erc20Iface.encodeFunctionData("approve", [
215
- tokenSaleProposal,
216
- BigInt(tier.totalTokenProvided),
457
+ actions.push(...buildSaleApprovals([tier], tokenSaleProposal));
458
+ actions.push({
459
+ executor: tokenSaleProposal,
460
+ value: "0",
461
+ data: iface.encodeFunctionData("createTiers", [[built.tuple]]),
462
+ });
463
+ if (built.whitelistUsers.length > 0) {
464
+ const baseTierId = BigInt(latestTierId);
465
+ const wlData = iface.encodeFunctionData("addToWhitelist", [
466
+ [[baseTierId + 1n, built.whitelistUsers, built.whitelistUri]],
217
467
  ]);
218
- actions.push({ executor: tier.saleTokenAddress, value: "0", data: approveData });
468
+ actions.push({ executor: tokenSaleProposal, value: "0", data: wlData });
219
469
  }
220
- actions.push({ executor: tokenSaleProposal, value: "0", data });
221
470
  const metadata = {
222
471
  proposalName,
223
472
  proposalDescription: JSON.stringify(proposalDescription),
224
473
  category: "tokenSale",
225
474
  isMeta: false,
226
475
  changes: {
227
- proposedChanges: { tier },
476
+ proposedChanges: { tier, derivedMerkleRoots: built.derivedRoots },
228
477
  currentChanges: {},
229
478
  },
230
479
  };
@@ -232,7 +481,65 @@ function registerTokenSale(server) {
232
481
  metadata,
233
482
  actions,
234
483
  title: `Token Sale tier → ${tier.name}`,
235
- detail: `Target: TokenSaleProposal(${tokenSaleProposal}).createTiers (1 tier)`,
484
+ detail: `Target: TokenSaleProposal(${tokenSaleProposal}).createTiers (1 tier${built.whitelistUsers.length > 0 ? " + addToWhitelist" : ""})`,
485
+ });
486
+ }
487
+ catch (err) {
488
+ return errorResult(err instanceof Error ? err.message : String(err));
489
+ }
490
+ });
491
+ }
492
+ function registerTokenSaleWhitelist(server) {
493
+ server.registerTool("dexe_proposal_build_token_sale_whitelist", {
494
+ title: "Build an addToWhitelist proposal for existing token-sale tiers",
495
+ description: "Builds an external proposal calling `TokenSaleProposal.addToWhitelist([{tierId, users, uri}, ...])`. Use this to extend the whitelist of a tier that's already live (plain `Whitelist` participation type only — merkle tiers are gated by their root, not this list).",
496
+ inputSchema: {
497
+ tokenSaleProposal: z.string(),
498
+ requests: z
499
+ .array(z.object({
500
+ tierId: z.string(),
501
+ users: z.array(z.string()).min(1),
502
+ uri: z.string().default(""),
503
+ }))
504
+ .min(1),
505
+ proposalName: z.string().default("Whitelist Token Sale Tier"),
506
+ proposalDescription: z.string().default(""),
507
+ },
508
+ outputSchema: payloadOutputSchema(),
509
+ }, async ({ tokenSaleProposal, requests, proposalName = "Whitelist Token Sale Tier", proposalDescription = "", }) => {
510
+ if (!isAddress(tokenSaleProposal)) {
511
+ return errorResult(`Invalid tokenSaleProposal: ${tokenSaleProposal}`);
512
+ }
513
+ try {
514
+ const normalised = requests.map((r) => {
515
+ for (const u of r.users) {
516
+ if (!isAddress(u))
517
+ throw new Error(`Invalid whitelist user: ${u}`);
518
+ }
519
+ return [
520
+ BigInt(r.tierId),
521
+ r.users.map((u) => getAddress(u)),
522
+ r.uri ?? "",
523
+ ];
524
+ });
525
+ const iface = new Interface(TOKEN_SALE_PROPOSAL_ABI);
526
+ const data = iface.encodeFunctionData("addToWhitelist", [normalised]);
527
+ const actions = [{ executor: tokenSaleProposal, value: "0", data }];
528
+ const metadata = {
529
+ proposalName,
530
+ proposalDescription: JSON.stringify(proposalDescription),
531
+ category: "tokenSale",
532
+ isMeta: false,
533
+ changes: {
534
+ proposedChanges: { requests },
535
+ currentChanges: {},
536
+ },
537
+ };
538
+ return wrapperResult({
539
+ metadata,
540
+ actions,
541
+ title: `addToWhitelist (${requests.length} request${requests.length === 1 ? "" : "s"})`,
542
+ detail: `Target: TokenSaleProposal(${tokenSaleProposal}).addToWhitelist`,
236
543
  });
237
544
  }
238
545
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"proposalBuildComplex.js","sourceRoot":"","sources":["../../src/tools/proposalBuildComplex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposalBuildComplex.js","sourceRoot":"","sources":["../../src/tools/proposalBuildComplex.ts"],"names":[],"mappings":"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"}