dexe-mcp 0.9.0 → 0.11.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 (67) hide show
  1. package/CHANGELOG.md +94 -20
  2. package/README.md +6 -6
  3. package/dist/config.d.ts +22 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +30 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/env/schema.d.ts +21 -0
  8. package/dist/env/schema.d.ts.map +1 -1
  9. package/dist/env/schema.js +21 -0
  10. package/dist/env/schema.js.map +1 -1
  11. package/dist/lib/controllingVoters.d.ts +44 -0
  12. package/dist/lib/controllingVoters.d.ts.map +1 -0
  13. package/dist/lib/controllingVoters.js +152 -0
  14. package/dist/lib/controllingVoters.js.map +1 -0
  15. package/dist/lib/dangerousSelectors.d.ts +1 -1
  16. package/dist/lib/dangerousSelectors.d.ts.map +1 -1
  17. package/dist/lib/dangerousSelectors.js +12 -22
  18. package/dist/lib/dangerousSelectors.js.map +1 -1
  19. package/dist/lib/decoders.d.ts +4 -4
  20. package/dist/lib/decoders.d.ts.map +1 -1
  21. package/dist/lib/decoders.js +2 -2
  22. package/dist/lib/govProposalView.d.ts +37 -0
  23. package/dist/lib/govProposalView.d.ts.map +1 -0
  24. package/dist/lib/govProposalView.js +42 -0
  25. package/dist/lib/govProposalView.js.map +1 -0
  26. package/dist/lib/protocolAdvisories.d.ts +12 -13
  27. package/dist/lib/protocolAdvisories.d.ts.map +1 -1
  28. package/dist/lib/protocolAdvisories.js +23 -16
  29. package/dist/lib/protocolAdvisories.js.map +1 -1
  30. package/dist/lib/quorumRisk.d.ts +92 -0
  31. package/dist/lib/quorumRisk.d.ts.map +1 -0
  32. package/dist/lib/quorumRisk.js +159 -0
  33. package/dist/lib/quorumRisk.js.map +1 -0
  34. package/dist/tools/daoDeploy.d.ts.map +1 -1
  35. package/dist/tools/daoDeploy.js +32 -0
  36. package/dist/tools/daoDeploy.js.map +1 -1
  37. package/dist/tools/flow.d.ts.map +1 -1
  38. package/dist/tools/flow.js +90 -1
  39. package/dist/tools/flow.js.map +1 -1
  40. package/dist/tools/gov.js +2 -2
  41. package/dist/tools/index.d.ts.map +1 -1
  42. package/dist/tools/index.js +2 -0
  43. package/dist/tools/index.js.map +1 -1
  44. package/dist/tools/otc.d.ts +20 -0
  45. package/dist/tools/otc.d.ts.map +1 -1
  46. package/dist/tools/otc.js +188 -58
  47. package/dist/tools/otc.js.map +1 -1
  48. package/dist/tools/proposalBuild.d.ts.map +1 -1
  49. package/dist/tools/proposalBuild.js +19 -5
  50. package/dist/tools/proposalBuild.js.map +1 -1
  51. package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
  52. package/dist/tools/proposalBuildComplex.js +12 -1
  53. package/dist/tools/proposalBuildComplex.js.map +1 -1
  54. package/dist/tools/proposalBuildMore.d.ts.map +1 -1
  55. package/dist/tools/proposalBuildMore.js +8 -5
  56. package/dist/tools/proposalBuildMore.js.map +1 -1
  57. package/dist/tools/risk.d.ts +4 -0
  58. package/dist/tools/risk.d.ts.map +1 -0
  59. package/dist/tools/risk.js +255 -0
  60. package/dist/tools/risk.js.map +1 -0
  61. package/dist/tools/subgraph.d.ts.map +1 -1
  62. package/dist/tools/subgraph.js +19 -15
  63. package/dist/tools/subgraph.js.map +1 -1
  64. package/dist/tools/voteBuild.d.ts.map +1 -1
  65. package/dist/tools/voteBuild.js +16 -4
  66. package/dist/tools/voteBuild.js.map +1 -1
  67. package/package.json +2 -2
@@ -0,0 +1,255 @@
1
+ import { z } from "zod";
2
+ import { Interface, isAddress } from "ethers";
3
+ import { RpcProvider } from "../rpc.js";
4
+ import { multicall } from "../lib/multicall.js";
5
+ import { resolveChain } from "../config.js";
6
+ import { classifyTreasuryActions, quorumPctFromRaw, judgeQuorum, quorumConcentration, worstRisk, } from "../lib/quorumRisk.js";
7
+ import { GET_PROPOSALS_FRAGMENT, decodeProposalView } from "../lib/govProposalView.js";
8
+ import { resolveControllingHoldersVotedFor } from "../lib/controllingVoters.js";
9
+ /**
10
+ * Layer 6 — `dexe_proposal_risk_assess`. A treasury-safety risk readout for a
11
+ * proposal, addressed to whoever votes / creates / executes it. Read-only;
12
+ * assesses either an on-chain
13
+ * proposal (`proposalId`) or a hypothetical action set (`actions`).
14
+ *
15
+ * Founder/validator participation is subgraph/mainnet-only — reported as
16
+ * `controllingHoldersVotedFor: null` (unknown) until that enrichment lands; null
17
+ * is never treated as "safe".
18
+ */
19
+ const GOV_POOL_ABI = new Interface([
20
+ "function getHelperContracts() view returns (address settings, address userKeeper, address validators, address poolRegistry, address votePower)",
21
+ "function getProposalRequiredQuorum(uint256 proposalId) view returns (uint256)",
22
+ GET_PROPOSALS_FRAGMENT,
23
+ ]);
24
+ const SETTINGS_ABI = new Interface([
25
+ "function getDefaultSettings() view returns (tuple(bool earlyCompletion, bool delegatedVotingAllowed, bool validatorsVote, uint64 duration, uint64 durationValidators, uint64 executionDelay, uint128 quorum, uint128 quorumValidators, uint256 minVotesForVoting, uint256 minVotesForCreating, tuple(address rewardToken, uint256 creationReward, uint256 executionReward, uint256 voteRewardsCoefficient) rewardsInfo, string executorDescription))",
26
+ ]);
27
+ const USER_KEEPER_ABI = new Interface([
28
+ "function tokenAddress() view returns (address)",
29
+ ]);
30
+ const ERC20_ABI = new Interface([
31
+ "function totalSupply() view returns (uint256)",
32
+ "function balanceOf(address) view returns (uint256)",
33
+ "function symbol() view returns (string)",
34
+ "function decimals() view returns (uint8)",
35
+ ]);
36
+ const ActionSchema = z.object({
37
+ executor: z.string(),
38
+ value: z.string().default("0"),
39
+ data: z.string().default("0x"),
40
+ });
41
+ function errorResult(message) {
42
+ return { content: [{ type: "text", text: message }], isError: true };
43
+ }
44
+ function recommend(verdict, floorPct, treasuryTouching) {
45
+ if (!treasuryTouching) {
46
+ return "No treasury-moving action detected (no ERC20 approve/transfer/transferFrom or native value). Standard governance review applies.";
47
+ }
48
+ if (verdict === "DANGER") {
49
+ return `HIGH RISK: this is a treasury-moving proposal under a low quorum. Confirm quorum ≥${floorPct}% AND participation by key stakeholders (validators / majority holders) before executing. Responsibility rests with the voter/creator/executor.`;
50
+ }
51
+ if (verdict === "CAUTION") {
52
+ return `CAUTION: treasury-moving with quorum near or below the ${floorPct}% floor, or supply concentration unknown. Verify stakeholder participation before executing.`;
53
+ }
54
+ return `Quorum ≥${floorPct}% — a true majority is required to pass. Still confirm the recipient and amounts before executing.`;
55
+ }
56
+ export function registerRiskTools(server, ctx) {
57
+ const rpc = new RpcProvider(ctx.config);
58
+ server.registerTool("dexe_proposal_risk_assess", {
59
+ title: "Treasury-safety risk readout for a proposal (or hypothetical actions)",
60
+ description: "Assesses low-quorum governance-safety risk for a treasury-moving DAO proposal. Pass `proposalId` to assess an on-chain proposal's actionsOnFor + its own quorum, or `actions` to assess a hypothetical action set against the DAO's default settings. Reports quorum %, the safe floor (DEXE_MIN_SAFE_QUORUM_PCT), the treasury tokens an action would move, the indicative share of supply required to meet quorum, and a verdict (SAFE/CAUTION/DANGER) with a recommendation. Read-only; never broadcasts. Stakeholder participation is reported only when a subgraph is available (else null).",
61
+ inputSchema: {
62
+ govPool: z.string().describe("GovPool contract address"),
63
+ proposalId: z.number().int().min(1).optional().describe("On-chain proposal id (1-indexed) to assess"),
64
+ actions: z
65
+ .array(ActionSchema)
66
+ .optional()
67
+ .describe("Hypothetical actionsOnFor to assess instead of an on-chain proposal"),
68
+ chainId: z.number().int().positive().optional().describe("Target chain id; defaults to the MCP default chain"),
69
+ },
70
+ outputSchema: {
71
+ govPool: z.string(),
72
+ proposalId: z.number().nullable(),
73
+ quorumPct: z.number(),
74
+ safeFloorPct: z.number(),
75
+ quorumVerdict: z.string(),
76
+ verdict: z.string(),
77
+ treasuryTouching: z.boolean(),
78
+ treasuryHits: z.array(z.object({
79
+ index: z.number(),
80
+ executor: z.string(),
81
+ kind: z.string(),
82
+ recipient: z.string().nullable(),
83
+ amount: z.string().nullable(),
84
+ })),
85
+ treasuryAtRisk: z.array(z.object({ token: z.string(), symbol: z.string().nullable(), balance: z.string().nullable() })),
86
+ totalSupply: z.string().nullable(),
87
+ requiredWeight: z.string().nullable(),
88
+ quorumSupplyPct: z.number().nullable(),
89
+ controllingHoldersVotedFor: z.boolean().nullable(),
90
+ recommendation: z.string(),
91
+ },
92
+ }, async ({ govPool, proposalId, actions, chainId }) => {
93
+ if (!isAddress(govPool))
94
+ return errorResult(`Invalid govPool: ${govPool}`);
95
+ if (proposalId === undefined && (!actions || actions.length === 0)) {
96
+ return errorResult("Provide either `proposalId` (on-chain) or a non-empty `actions` array (hypothetical).");
97
+ }
98
+ const floorPct = ctx.config.minSafeQuorumPct;
99
+ let chain;
100
+ try {
101
+ chain = resolveChain(ctx.config, chainId);
102
+ }
103
+ catch (e) {
104
+ return errorResult(e instanceof Error ? e.message : String(e));
105
+ }
106
+ const pr = rpc.tryProvider(chain.chainId);
107
+ if ("error" in pr)
108
+ return errorResult(`${pr.error}\n${pr.remediation}`);
109
+ const provider = pr.ok;
110
+ try {
111
+ // ---- round A: helpers (+ on-chain proposal when proposalId given) ----
112
+ const callsA = [
113
+ { target: govPool, iface: GOV_POOL_ABI, method: "getHelperContracts", args: [] },
114
+ ];
115
+ if (proposalId !== undefined) {
116
+ callsA.push({ target: govPool, iface: GOV_POOL_ABI, method: "getProposals", args: [proposalId - 1, 1], allowFailure: true });
117
+ }
118
+ const resA = await multicall(provider, callsA);
119
+ if (!resA[0]?.success)
120
+ return errorResult("getHelperContracts reverted — is this a GovPool?");
121
+ const helpers = resA[0].value;
122
+ let assessedActions;
123
+ let quorumRaw;
124
+ let requiredWeight = null;
125
+ if (proposalId !== undefined) {
126
+ const views = resA[1]?.success ? resA[1].value : null;
127
+ if (!views || views.length === 0)
128
+ return errorResult(`Proposal ${proposalId} not found at ${govPool}`);
129
+ const decoded = decodeProposalView(views[0]);
130
+ if (!decoded)
131
+ return errorResult("Failed to decode proposal view");
132
+ assessedActions = decoded.actionsOnFor;
133
+ quorumRaw = decoded.quorumRaw;
134
+ requiredWeight = decoded.requiredQuorum;
135
+ }
136
+ else {
137
+ assessedActions = actions.map((a) => ({ executor: a.executor, value: a.value, data: a.data }));
138
+ // Hypothetical: use the DAO's default-settings quorum.
139
+ const resS = await multicall(provider, [
140
+ { target: helpers.settings, iface: SETTINGS_ABI, method: "getDefaultSettings", args: [] },
141
+ ]);
142
+ if (!resS[0]?.success)
143
+ return errorResult("getDefaultSettings reverted");
144
+ quorumRaw = resS[0].value[6];
145
+ }
146
+ const quorumPct = quorumPctFromRaw(quorumRaw);
147
+ const quorumVerdict = judgeQuorum(quorumPct, floorPct);
148
+ const treasuryHits = classifyTreasuryActions(assessedActions);
149
+ const treasuryTouching = treasuryHits.length > 0;
150
+ // ---- gov token total supply ----
151
+ const resTok = await multicall(provider, [
152
+ { target: helpers.userKeeper, iface: USER_KEEPER_ABI, method: "tokenAddress", args: [], allowFailure: true },
153
+ ]);
154
+ const govToken = resTok[0]?.success ? resTok[0].value : null;
155
+ let totalSupply = null;
156
+ if (govToken && isAddress(govToken) && govToken !== "0x0000000000000000000000000000000000000000") {
157
+ const resSupply = await multicall(provider, [
158
+ { target: govToken, iface: ERC20_ABI, method: "totalSupply", args: [], allowFailure: true },
159
+ ]);
160
+ totalSupply = resSupply[0]?.success ? resSupply[0].value : null;
161
+ }
162
+ // ---- treasury balances for the tokens an action would move ----
163
+ const tokenExecutors = [
164
+ ...new Set(treasuryHits
165
+ .filter((h) => h.kind !== "nativeValue" && isAddress(h.executor))
166
+ .map((h) => h.executor)),
167
+ ];
168
+ const treasuryAtRisk = [];
169
+ if (tokenExecutors.length > 0) {
170
+ const balCalls = [];
171
+ for (const t of tokenExecutors) {
172
+ balCalls.push({ target: t, iface: ERC20_ABI, method: "balanceOf", args: [govPool], allowFailure: true });
173
+ balCalls.push({ target: t, iface: ERC20_ABI, method: "symbol", args: [], allowFailure: true });
174
+ }
175
+ const balRes = await multicall(provider, balCalls);
176
+ tokenExecutors.forEach((t, i) => {
177
+ treasuryAtRisk.push({
178
+ token: t,
179
+ balance: balRes[i * 2]?.success ? balRes[i * 2].value.toString() : null,
180
+ symbol: balRes[i * 2 + 1]?.success ? balRes[i * 2 + 1].value : null,
181
+ });
182
+ });
183
+ }
184
+ if (treasuryHits.some((h) => h.kind === "nativeValue")) {
185
+ const nativeBal = (await provider.getBalance(govPool)).toString();
186
+ treasuryAtRisk.push({ token: "native", symbol: chain.chainId === 56 || chain.chainId === 97 ? "BNB" : "native", balance: nativeBal });
187
+ }
188
+ // ---- quorum-concentration metric ----
189
+ const qConc = quorumConcentration({
190
+ quorumPct,
191
+ floorPct,
192
+ totalSupply: totalSupply ?? undefined,
193
+ requiredWeight: requiredWeight ?? undefined,
194
+ // hypothetical: approximate total vote weight by total supply (indicative).
195
+ totalVoteWeight: requiredWeight === null ? totalSupply ?? undefined : undefined,
196
+ });
197
+ // Founder/validator participation signal. On-chain proposal only —
198
+ // a hypothetical actions[] assessment has no voters. Subgraph/mainnet-only;
199
+ // null = unknown (never forces a refuse).
200
+ const controllingHoldersVotedFor = proposalId !== undefined
201
+ ? await resolveControllingHoldersVotedFor({
202
+ provider,
203
+ govPool,
204
+ proposalId,
205
+ cfg: ctx.config,
206
+ chainId: chain.chainId,
207
+ })
208
+ : null;
209
+ const verdict = treasuryTouching
210
+ ? worstRisk(quorumVerdict, qConc.verdict)
211
+ : "SAFE";
212
+ const structured = {
213
+ govPool,
214
+ proposalId: proposalId ?? null,
215
+ quorumPct,
216
+ safeFloorPct: floorPct,
217
+ quorumVerdict,
218
+ verdict,
219
+ treasuryTouching,
220
+ treasuryHits: treasuryHits.map((h) => ({
221
+ index: h.index,
222
+ executor: h.executor,
223
+ kind: h.kind,
224
+ recipient: h.recipient,
225
+ amount: h.amount,
226
+ })),
227
+ treasuryAtRisk,
228
+ totalSupply: totalSupply !== null ? totalSupply.toString() : null,
229
+ requiredWeight: requiredWeight !== null ? requiredWeight.toString() : null,
230
+ quorumSupplyPct: qConc.pctOfSupplyForQuorum,
231
+ controllingHoldersVotedFor,
232
+ recommendation: recommend(verdict, floorPct, treasuryTouching),
233
+ };
234
+ const lines = [
235
+ `Risk assessment for ${govPool}${proposalId !== undefined ? ` proposal #${proposalId}` : " (hypothetical actions)"}`,
236
+ ` verdict: ${verdict} (quorum=${Number.isFinite(quorumPct) ? `${quorumPct}%` : "?"}, floor=${floorPct}%, quorumVerdict=${quorumVerdict})`,
237
+ ` treasury-touching: ${treasuryTouching} (${treasuryHits.length} hit${treasuryHits.length === 1 ? "" : "s"})`,
238
+ qConc.pctOfSupplyForQuorum !== null
239
+ ? ` quorum threshold: ~${qConc.pctOfSupplyForQuorum}% of token supply required to meet quorum (indicative)`
240
+ : ` quorum threshold: unknown (supply/weight unavailable)`,
241
+ treasuryAtRisk.length > 0
242
+ ? ` treasury at risk: ${treasuryAtRisk.map((t) => `${t.symbol ?? "?"}=${t.balance ?? "?"}`).join(", ")}`
243
+ : "",
244
+ ` controlling-holders voted For: ${controllingHoldersVotedFor === null ? "unknown (no subgraph)" : controllingHoldersVotedFor}`,
245
+ ``,
246
+ structured.recommendation,
247
+ ].filter(Boolean);
248
+ return { content: [{ type: "text", text: lines.join("\n") }], structuredContent: structured };
249
+ }
250
+ catch (err) {
251
+ return errorResult(`risk_assess failed: ${err instanceof Error ? err.message : String(err)}`);
252
+ }
253
+ });
254
+ }
255
+ //# sourceMappingURL=risk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk.js","sourceRoot":"","sources":["../../src/tools/risk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAa,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,SAAS,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;;;GASG;AAEH,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC;IACjC,gJAAgJ;IAChJ,+EAA+E;IAC/E,sBAAsB;CACvB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC;IACjC,sbAAsb;CACvb,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC;IACpC,gDAAgD;CACjD,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;IAC9B,+CAA+C;IAC/C,oDAAoD;IACpD,yCAAyC;IACzC,0CAA0C;CAC3C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC/B,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,OAAkB,EAAE,QAAgB,EAAE,gBAAyB;IAChF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,kIAAkI,CAAC;IAC5I,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,qFAAqF,QAAQ,iJAAiJ,CAAC;IACxP,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,0DAA0D,QAAQ,8FAA8F,CAAC;IAC1K,CAAC;IACD,OAAO,WAAW,QAAQ,oGAAoG,CAAC;AACjI,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,GAAgB;IACnE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,uEAAuE;QAC9E,WAAW,EACT,mkBAAmkB;QACrkB,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACrG,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,YAAY,CAAC;iBACnB,QAAQ,EAAE;iBACV,QAAQ,CAAC,qEAAqE,CAAC;YAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SAC/G;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;YACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;YACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;YAC7B,YAAY,EAAE,CAAC,CAAC,KAAK,CACnB,CAAC,CAAC,MAAM,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gBACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC9B,CAAC,CACH;YACD,cAAc,EAAE,CAAC,CAAC,KAAK,CACrB,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC/F;YACD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SAC3B;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,WAAW,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC3E,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACnE,OAAO,WAAW,CAAC,uFAAuF,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAE7C,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,MAAM,GAAW;gBACrB,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE;aACjF,CAAC;YACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO;gBAAE,OAAO,WAAW,CAAC,kDAAkD,CAAC,CAAC;YAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,KAA4D,CAAC;YAEtF,IAAI,eAAoE,CAAC;YACzE,IAAI,SAAiB,CAAC;YACtB,IAAI,cAAc,GAAkB,IAAI,CAAC;YAEzC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,KAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,WAAW,CAAC,YAAY,UAAU,iBAAiB,OAAO,EAAE,CAAC,CAAC;gBACvG,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO;oBAAE,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;gBACnE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;gBACvC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC9B,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,OAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChG,uDAAuD;gBACvD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;oBACrC,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE;iBAC1F,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO;oBAAE,OAAO,WAAW,CAAC,6BAA6B,CAAC,CAAC;gBACzE,SAAS,GAAI,IAAI,CAAC,CAAC,CAAE,CAAC,KAAmB,CAAC,CAAC,CAAW,CAAC;YACzD,CAAC;YAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAEjD,mCAAmC;YACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBACvC,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;aAC7G,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAE,CAAC,KAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAI,WAAW,GAAkB,IAAI,CAAC;YACtC,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,4CAA4C,EAAE,CAAC;gBACjG,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;oBAC1C,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;iBAC5F,CAAC,CAAC;gBACH,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAE,SAAS,CAAC,CAAC,CAAE,CAAC,KAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/E,CAAC;YAED,kEAAkE;YAClE,MAAM,cAAc,GAAG;gBACrB,GAAG,IAAI,GAAG,CACR,YAAY;qBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;qBAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC1B;aACF,CAAC;YACF,MAAM,cAAc,GAAuE,EAAE,CAAC;YAC9F,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAW,EAAE,CAAC;gBAC5B,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjG,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACnD,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC9B,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;wBACpF,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,KAAgB,CAAC,CAAC,CAAC,IAAI;qBACjF,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBACvD,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAClE,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACxI,CAAC;YAED,wCAAwC;YACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,SAAS;gBACT,QAAQ;gBACR,WAAW,EAAE,WAAW,IAAI,SAAS;gBACrC,cAAc,EAAE,cAAc,IAAI,SAAS;gBAC3C,4EAA4E;gBAC5E,eAAe,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS;aAChF,CAAC,CAAC;YAEH,mEAAmE;YACnE,4EAA4E;YAC5E,0CAA0C;YAC1C,MAAM,0BAA0B,GAC9B,UAAU,KAAK,SAAS;gBACtB,CAAC,CAAC,MAAM,iCAAiC,CAAC;oBACtC,QAAQ;oBACR,OAAO;oBACP,UAAU;oBACV,GAAG,EAAE,GAAG,CAAC,MAAM;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAC;YAEX,MAAM,OAAO,GAAc,gBAAgB;gBACzC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,MAAM,CAAC;YAEX,MAAM,UAAU,GAAG;gBACjB,OAAO;gBACP,UAAU,EAAE,UAAU,IAAI,IAAI;gBAC9B,SAAS;gBACT,YAAY,EAAE,QAAQ;gBACtB,aAAa;gBACb,OAAO;gBACP,gBAAgB;gBAChB,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;iBACjB,CAAC,CAAC;gBACH,cAAc;gBACd,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBACjE,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC1E,eAAe,EAAE,KAAK,CAAC,oBAAoB;gBAC3C,0BAA0B;gBAC1B,cAAc,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC;aAC/D,CAAC;YAEF,MAAM,KAAK,GAAG;gBACZ,uBAAuB,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC,CAAC,yBAAyB,EAAE;gBACpH,cAAc,OAAO,aAAa,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,QAAQ,oBAAoB,aAAa,GAAG;gBAC3I,wBAAwB,gBAAgB,KAAK,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;gBAC9G,KAAK,CAAC,oBAAoB,KAAK,IAAI;oBACjC,CAAC,CAAC,wBAAwB,KAAK,CAAC,oBAAoB,wDAAwD;oBAC5G,CAAC,CAAC,yDAAyD;gBAC7D,cAAc,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,uBAAuB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACzG,CAAC,CAAC,EAAE;gBACN,oCAAoC,0BAA0B,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBAChI,EAAE;gBACF,UAAU,CAAC,cAAc;aAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAElB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;QACzG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../src/tools/subgraph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAoNhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAQ/E"}
1
+ {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../src/tools/subgraph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAqNhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAQ/E"}
@@ -3,6 +3,7 @@ import { Interface, isAddress } from "ethers";
3
3
  import { RpcProvider } from "../rpc.js";
4
4
  import { multicall } from "../lib/multicall.js";
5
5
  import { gqlRequest } from "../lib/subgraph.js";
6
+ import { GET_TIER_VIEWS_FRAGMENT } from "./otc.js";
6
7
  /**
7
8
  * Subgraph-backed read tools. Each tool queries one of the three DeXe
8
9
  * subgraphs (pools, validators, interactions) and returns structured data
@@ -405,9 +406,11 @@ function registerDaoExperts(server, ctx) {
405
406
  });
406
407
  }
407
408
  // ---------- OTC discovery ----------
409
+ // Nested TierView decode — single source of truth in src/tools/otc.ts
410
+ // (mirrors ITokenSaleProposal.TierView; the old flat shape decoded garbage).
408
411
  const TOKEN_SALE_DISCOVERY_ABI = new Interface([
409
412
  "function latestTierId() view returns (uint256)",
410
- "function getTierViews(uint256 offset, uint256 limit) view returns (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)",
413
+ GET_TIER_VIEWS_FRAGMENT,
411
414
  ]);
412
415
  const GOV_POOL_HELPERS_DISCOVERY_ABI = new Interface([
413
416
  // Some deployments expose the TokenSaleProposal address via a custom getter;
@@ -419,7 +422,7 @@ function registerOtcListSalesForDao(server, ctx) {
419
422
  const rpc = new RpcProvider(ctx.config);
420
423
  server.registerTool("dexe_otc_list_sales_for_dao", {
421
424
  title: "List OTC sale tiers for a DAO",
422
- description: "Reads `latestTierId()` then `getTierViews(0, latestTierId)` on the DAO's TokenSaleProposal helper. Returns tier list with status (`upcoming` / `active` / `ended`) computed against current block timestamp. Works on chain 56 (mainnet) and 97 (testnet) — no subgraph required. " +
425
+ description: "Reads `latestTierId()` then `getTierViews(0, latestTierId)` on the DAO's TokenSaleProposal helper. Returns tier list with `totalSold` and status (`upcoming` / `active` / `ended` / `off`) computed against current block timestamp and the tier's on-chain isOff flag. Works on chain 56 (mainnet) and 97 (testnet) — no subgraph required. " +
423
426
  "When `tokenSaleProposal` is omitted the tool returns an error pointing at the helper-discovery follow-up; supply it explicitly until per-DAO helper discovery lands.",
424
427
  inputSchema: {
425
428
  govPool: z.string().describe("GovPool address"),
@@ -497,25 +500,25 @@ function registerOtcListSalesForDao(server, ctx) {
497
500
  const rawTiers = tiersR.value;
498
501
  const tiers = rawTiers.map((t, i) => {
499
502
  const tierId = String(i + 1);
503
+ const p = t.tierInitParams;
500
504
  let status;
501
- if (nowSec < t.saleStartTime)
505
+ if (t.tierInfo.isOff)
506
+ status = "off";
507
+ else if (nowSec < p.saleStartTime)
502
508
  status = "upcoming";
503
- else if (nowSec <= t.saleEndTime)
509
+ else if (nowSec <= p.saleEndTime)
504
510
  status = "active";
505
511
  else
506
512
  status = "ended";
507
513
  return {
508
514
  tierId,
509
- name: t.metadata.name,
510
- saleStartTime: t.saleStartTime.toString(),
511
- saleEndTime: t.saleEndTime.toString(),
512
- saleToken: t.saleTokenAddress,
513
- purchaseTokens: t.purchaseTokenAddresses,
514
- totalProvided: t.totalTokenProvided.toString(),
515
- // totalSold is not exposed via getTierViews — would require an
516
- // event/subgraph query. v1 leaves this null; caller can derive
517
- // from getUserViews aggregation.
518
- totalSold: null,
515
+ name: p.metadata.name,
516
+ saleStartTime: p.saleStartTime.toString(),
517
+ saleEndTime: p.saleEndTime.toString(),
518
+ saleToken: p.saleTokenAddress,
519
+ purchaseTokens: [...p.purchaseTokenAddresses],
520
+ totalProvided: p.totalTokenProvided.toString(),
521
+ totalSold: t.tierInfo.totalSold.toString(),
519
522
  status,
520
523
  };
521
524
  });
@@ -523,12 +526,13 @@ function registerOtcListSalesForDao(server, ctx) {
523
526
  upcoming: tiers.filter((t) => t.status === "upcoming").length,
524
527
  active: tiers.filter((t) => t.status === "active").length,
525
528
  ended: tiers.filter((t) => t.status === "ended").length,
529
+ off: tiers.filter((t) => t.status === "off").length,
526
530
  };
527
531
  return {
528
532
  content: [
529
533
  {
530
534
  type: "text",
531
- text: `${tokenSaleProposal}: ${tiers.length} tier(s) — ${counts.active} active, ${counts.upcoming} upcoming, ${counts.ended} ended (block ts ${nowSec}).`,
535
+ text: `${tokenSaleProposal}: ${tiers.length} tier(s) — ${counts.active} active, ${counts.upcoming} upcoming, ${counts.ended} ended, ${counts.off} off (block ts ${nowSec}).`,
532
536
  },
533
537
  ],
534
538
  structuredContent: {
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/tools/subgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/tools/subgraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;;;;;;GASG;AAEH,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,UAAU,CAAC,GAAgB,EAAE,GAA6E;IACjH,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,QAAQ,GAA2B;IACvC,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,8BAA8B;IACrD,uBAAuB,EAAE,gCAAgC;CAC1D,CAAC;AAEF,gCAAgC;AAEhC,MAAM,cAAc,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBpC,CAAC;AAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvC,CAAC;AAEF,MAAM,oBAAoB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC1C,CAAC;AAEF,MAAM,yBAAyB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwB/C,CAAC;AAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;CActC,CAAC;AAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;CAgBzC,CAAC;AAEF,MAAM,aAAa,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBnC,CAAC;AAEF,iCAAiC;AAEjC,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,GAAgB;IACvE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,8BAA8B;AAE9B,SAAS,eAAe,CAAC,MAAiB,EAAE,GAAgB;IAC1D,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EACT,yJAAyJ;QAC3J,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAA0B,GAAG,EAAE,cAAc,EAAE;gBAC1E,MAAM;gBACN,KAAK;gBACL,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,MAAM,mBAAmB,MAAM,WAAW,KAAK,YAAY,KAAK,IAAI,CAAC;YACjG,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB,EAAE,GAAgB;IAC7D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,+CAA+C;QACtD,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,WAAW,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAA8B,GAAG,EAAE,iBAAiB,EAAE;gBACjF,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;gBAC7B,MAAM;gBACN,KAAK;aACN,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,iBAAiB,OAAO,YAAY,MAAM,WAAW,KAAK,GAAG,CAAC;YAC5F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;aACvD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAiB,EAAE,GAAgB;IAChE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,4DAA4D;QACnE,WAAW,EACT,wLAAwL;QAC1L,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;YAC5G,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YACzI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QACtE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,yBAAyB,CAAC;YAC1F,MAAM,SAAS,GACb,SAAS,KAAK,UAAU;gBACtB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;gBACpC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAkC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACtF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,sBAAsB,SAAS,CAAC,MAAM,cAAc,CAAC;YAC9F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;aAC/E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAiB,EAAE,GAAgB;IAChE,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EACT,gGAAgG;QAClG,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,WAAW,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,qBAAqB,cAAc,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAkC,GAAG,EAAE,gBAAgB,EAAE;gBACpF,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;aAC/B,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,oBAAoB,OAAO,YAAY,MAAM,WAAW,KAAK,GAAG,CAAC;YAClG,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;aAC1D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAiB,EAAE,GAAgB;IAC/D,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,iDAAiD;QACxD,WAAW,EACT,0KAA0K;QAC5K,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,WAAW,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,uBAAuB,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAA8B,GAAG,EAAE,mBAAmB,EAAE;gBACnF,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE;aAC5B,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,uBAAuB,IAAI,YAAY,MAAM,WAAW,KAAK,GAAG,CAAC;YAC3F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE;aAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAiB,EAAE,GAAgB;IAC7D,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,wCAAwC;QAC/C,WAAW,EACT,qIAAqI;QACvI,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,WAAW,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,WAAW,CAAC,GAAG,QAAQ,CAAC,gBAAgB,cAAc,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAA8B,GAAG,EAAE,aAAa,EAAE;gBAC7E,MAAM;gBACN,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE;aAClC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAClC,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,iBAAiB,OAAO,YAAY,MAAM,WAAW,KAAK,GAAG,CAAC;YAC5F,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;gBAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;aACvD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sCAAsC;AAEtC,sEAAsE;AACtE,6EAA6E;AAC7E,MAAM,wBAAwB,GAAG,IAAI,SAAS,CAAC;IAC7C,gDAAgD;IAChD,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,IAAI,SAAS,CAAC;IACnD,6EAA6E;IAC7E,2EAA2E;IAC3E,0CAA0C;IAC1C,gJAAgJ;CACjJ,CAAC,CAAC;AAEH,SAAS,0BAA0B,CAAC,MAAiB,EAAE,GAAgB;IACrE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EACT,+UAA+U;YAC/U,sKAAsK;QACxK,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,iBAAiB,EAAE,CAAC;iBACjB,MAAM,EAAE;iBACR,QAAQ,CAAC,iGAAiG,CAAC;SAC/G;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,WAAW,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;YAC/B,OAAO,WAAW,CAAC,8BAA8B,iBAAiB,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC7B,IAAI,OAAO,IAAI,EAAE;gBAAE,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC;YAEvB,oEAAoE;YACpE,sDAAsD;YACtD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBAC3C;oBACE,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,8BAA8B;oBACrC,MAAM,EAAE,oBAAoB;oBAC5B,IAAI,EAAE,EAAE;oBACR,YAAY,EAAE,IAAI;iBACnB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACvB,OAAO,WAAW,CAChB,GAAG,OAAO,gEAAgE,QAAQ,EAAE,KAAK,IAAI,SAAS,EAAE,CACzG,CAAC;YACJ,CAAC;YAED,iEAAiE;YACjE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBAC1C;oBACE,MAAM,EAAE,iBAAiB;oBACzB,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,cAAc;oBACtB,IAAI,EAAE,EAAE;oBACR,YAAY,EAAE,IAAI;iBACnB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;gBACtB,OAAO,WAAW,CAChB,GAAG,iBAAiB,oEAAoE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CACtH,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC;YACrD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,GAAG,iBAAiB,+DAA+D;yBAC1F;qBACF;oBACD,iBAAiB,EAAE;wBACjB,OAAO;wBACP,iBAAiB;wBACjB,KAAK,EAAE,EAAE;qBACV;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBACzC;oBACE,MAAM,EAAE,iBAAiB;oBACzB,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,cAAc;oBACtB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;oBAChC,YAAY,EAAE,IAAI;iBACnB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,OAAO,WAAW,CAAC,mBAAmB,YAAY,eAAe,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;YACjG,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAEzE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAUtB,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC;gBAC3B,IAAI,MAA+C,CAAC;gBACpD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK;oBAAE,MAAM,GAAG,KAAK,CAAC;qBAChC,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa;oBAAE,MAAM,GAAG,UAAU,CAAC;qBAClD,IAAI,MAAM,IAAI,CAAC,CAAC,WAAW;oBAAE,MAAM,GAAG,QAAQ,CAAC;;oBAC/C,MAAM,GAAG,OAAO,CAAC;gBAEtB,OAAO;oBACL,MAAM;oBACN,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;oBACrB,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE;oBACzC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE;oBACrC,SAAS,EAAE,CAAC,CAAC,gBAAgB;oBAC7B,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC;oBAC7C,aAAa,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAC9C,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAmB;oBAC3D,MAAM;iBACP,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;gBAC7D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;gBACzD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;gBACvD,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM;aACpD,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,GAAG,iBAAiB,KAAK,KAAK,CAAC,MAAM,cAAc,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,GAAG,kBAAkB,MAAM,IAAI;qBAC7K;iBACF;gBACD,iBAAiB,EAAE;oBACjB,OAAO;oBACP,iBAAiB;oBACjB,KAAK;oBACL,MAAM;iBACP;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAChB,kCAAkC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"voteBuild.d.ts","sourceRoot":"","sources":["../../src/tools/voteBuild.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA4GhD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA+BhF"}
1
+ {"version":3,"file":"voteBuild.d.ts","sourceRoot":"","sources":["../../src/tools/voteBuild.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA6GhD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA+BhF"}
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { Interface, isAddress } from "ethers";
3
3
  import { buildPayload } from "../lib/calldata.js";
4
4
  import { parseUintString } from "../lib/amount.js";
5
+ import { ETHEREUM_ADDRESS, isNativeSentinel } from "./otc.js";
5
6
  /**
6
7
  * Phase 4 — user-facing write calldata builders.
7
8
  *
@@ -628,11 +629,13 @@ function registerNftMultiplierUnlock(server, ctx) {
628
629
  function registerTokenSaleBuy(server, ctx) {
629
630
  server.registerTool("dexe_vote_build_token_sale_buy", {
630
631
  title: "Buy tokens from a token sale tier",
631
- description: "Builds calldata for `TokenSaleProposal.buy(tierId, tokenToBuyWith, amount, proof)`. Pass `value` for native-coin purchases. Pass Merkle `proof` if the tier is whitelisted (empty array otherwise).",
632
+ description: "Builds calldata for `TokenSaleProposal.buy(tierId, tokenToBuyWith, amount, proof)`. For native-coin purchases pass ETHEREUM_ADDRESS (0xEeee…EEeE) as `tokenToBuyWith` — `value` is auto-set to `amount` when left at 0 (the contract requires msg.value == amount). Pass Merkle `proof` if the tier is whitelisted (empty array otherwise).",
632
633
  inputSchema: {
633
634
  tokenSaleProposal: z.string().describe("TokenSaleProposal contract address"),
634
635
  tierId: z.string().describe("Tier ID to buy from"),
635
- tokenToBuyWith: z.string().describe("Payment token address (zero address for native coin)"),
636
+ tokenToBuyWith: z
637
+ .string()
638
+ .describe("Payment token address. For native coin pass 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE (protocol ETHEREUM_ADDRESS); the zero address is accepted as an alias but calldata always carries ETHEREUM_ADDRESS."),
636
639
  amount: z
637
640
  .string()
638
641
  .describe("Payment amount as an 18-decimal-normalized quantity. On-chain buy() converts it via from18Safe(token) to the payment token's native decimals: for an 18-decimal token this equals raw wei; for a token with d<18 decimals pass rawAmount * 10^(18-d). Passing raw native wei for a non-18-decimal token under-pays by 10^(18-d) and reverts below 1e(18-d)."),
@@ -647,12 +650,21 @@ function registerTokenSaleBuy(server, ctx) {
647
650
  return errorResult(`Invalid tokenToBuyWith: ${tokenToBuyWith}`);
648
651
  try {
649
652
  const iface = new Interface(TOKEN_SALE_WRITE_ABI);
653
+ // Contract keys exchange rates by ETHEREUM_ADDRESS for native buys —
654
+ // the zero address reverts "TSP: incorrect token". Native also
655
+ // requires msg.value == amount ("TSP: wrong native amount").
656
+ const native = isNativeSentinel(tokenToBuyWith);
657
+ const tokenArg = native ? ETHEREUM_ADDRESS : tokenToBuyWith;
658
+ const amountBn = parseUintString(amount, "amount");
659
+ let valueBn = parseUintString(value, "value");
660
+ if (native && valueBn === 0n)
661
+ valueBn = amountBn;
650
662
  const payload = buildPayload({
651
663
  to: tokenSaleProposal,
652
664
  iface,
653
665
  method: "buy",
654
- args: [parseUintString(tierId, "tierId"), tokenToBuyWith, parseUintString(amount, "amount"), proof],
655
- value: parseUintString(value, "value"),
666
+ args: [parseUintString(tierId, "tierId"), tokenArg, amountBn, proof],
667
+ value: valueBn,
656
668
  chainId: ctx.config.chainId,
657
669
  contractLabel: "TokenSaleProposal",
658
670
  });