dexe-mcp 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp.example.json +12 -2
- package/CHANGELOG.md +48 -0
- package/FUTURE.md +26 -5
- package/README.md +80 -195
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +10 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -1
- package/dist/config.js.map +1 -1
- package/dist/hardhat.d.ts.map +1 -1
- package/dist/hardhat.js +10 -5
- package/dist/hardhat.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/addresses.d.ts +57 -0
- package/dist/lib/addresses.d.ts.map +1 -0
- package/dist/lib/addresses.js +83 -0
- package/dist/lib/addresses.js.map +1 -0
- package/dist/lib/calldata.d.ts +32 -0
- package/dist/lib/calldata.d.ts.map +1 -0
- package/dist/lib/calldata.js +28 -0
- package/dist/lib/calldata.js.map +1 -0
- package/dist/lib/govEnums.d.ts +12 -0
- package/dist/lib/govEnums.d.ts.map +1 -0
- package/dist/lib/govEnums.js +35 -0
- package/dist/lib/govEnums.js.map +1 -0
- package/dist/lib/ipfs.d.ts +60 -0
- package/dist/lib/ipfs.d.ts.map +1 -0
- package/dist/lib/ipfs.js +167 -0
- package/dist/lib/ipfs.js.map +1 -0
- package/dist/lib/multicall.d.ts +33 -0
- package/dist/lib/multicall.d.ts.map +1 -0
- package/dist/lib/multicall.js +46 -0
- package/dist/lib/multicall.js.map +1 -0
- package/dist/lib/proposalCatalog.d.ts +45 -0
- package/dist/lib/proposalCatalog.d.ts.map +1 -0
- package/dist/lib/proposalCatalog.js +416 -0
- package/dist/lib/proposalCatalog.js.map +1 -0
- package/dist/lib/subgraph.d.ts +15 -0
- package/dist/lib/subgraph.d.ts.map +1 -0
- package/dist/lib/subgraph.js +37 -0
- package/dist/lib/subgraph.js.map +1 -0
- package/dist/runtime.d.ts +51 -13
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +149 -26
- package/dist/runtime.js.map +1 -1
- package/dist/tools/dao.d.ts +4 -0
- package/dist/tools/dao.d.ts.map +1 -0
- package/dist/tools/dao.js +242 -0
- package/dist/tools/dao.js.map +1 -0
- package/dist/tools/daoDeploy.d.ts +4 -0
- package/dist/tools/daoDeploy.d.ts.map +1 -0
- package/dist/tools/daoDeploy.js +323 -0
- package/dist/tools/daoDeploy.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +24 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ipfs.d.ts +6 -0
- package/dist/tools/ipfs.d.ts.map +1 -0
- package/dist/tools/ipfs.js +310 -0
- package/dist/tools/ipfs.js.map +1 -0
- package/dist/tools/proposal.d.ts +4 -0
- package/dist/tools/proposal.d.ts.map +1 -0
- package/dist/tools/proposal.js +199 -0
- package/dist/tools/proposal.js.map +1 -0
- package/dist/tools/proposalBuild.d.ts +4 -0
- package/dist/tools/proposalBuild.d.ts.map +1 -0
- package/dist/tools/proposalBuild.js +357 -0
- package/dist/tools/proposalBuild.js.map +1 -0
- package/dist/tools/proposalBuildComplex.d.ts +4 -0
- package/dist/tools/proposalBuildComplex.d.ts.map +1 -0
- package/dist/tools/proposalBuildComplex.js +700 -0
- package/dist/tools/proposalBuildComplex.js.map +1 -0
- package/dist/tools/proposalBuildInternal.d.ts +4 -0
- package/dist/tools/proposalBuildInternal.d.ts.map +1 -0
- package/dist/tools/proposalBuildInternal.js +211 -0
- package/dist/tools/proposalBuildInternal.js.map +1 -0
- package/dist/tools/proposalBuildMore.d.ts +4 -0
- package/dist/tools/proposalBuildMore.d.ts.map +1 -0
- package/dist/tools/proposalBuildMore.js +436 -0
- package/dist/tools/proposalBuildMore.js.map +1 -0
- package/dist/tools/proposalBuildOffchain.d.ts +4 -0
- package/dist/tools/proposalBuildOffchain.d.ts.map +1 -0
- package/dist/tools/proposalBuildOffchain.js +386 -0
- package/dist/tools/proposalBuildOffchain.js.map +1 -0
- package/dist/tools/read.d.ts +4 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +353 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/vote.d.ts +4 -0
- package/dist/tools/vote.d.ts.map +1 -0
- package/dist/tools/vote.js +196 -0
- package/dist/tools/vote.js.map +1 -0
- package/dist/tools/voteBuild.d.ts +4 -0
- package/dist/tools/voteBuild.d.ts.map +1 -0
- package/dist/tools/voteBuild.js +563 -0
- package/dist/tools/voteBuild.js.map +1 -0
- package/package.json +9 -4
- package/PLAN.md +0 -132
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { Interface, isAddress } from "ethers";
|
|
3
|
+
import { buildPayload } from "../lib/calldata.js";
|
|
4
|
+
import { ArtifactsMissingError } from "../artifacts.js";
|
|
5
|
+
import { AddressBook, CONTRACT_NAMES } from "../lib/addresses.js";
|
|
6
|
+
import { RpcProvider } from "../rpc.js";
|
|
7
|
+
/**
|
|
8
|
+
* Phase 5 — deploy a new DAO via `PoolFactory.deployGovPool(GovPoolDeployParams)`.
|
|
9
|
+
*
|
|
10
|
+
* The input struct is large and deeply nested. We load the PoolFactory ABI
|
|
11
|
+
* from the compiled Hardhat artifacts so encoding stays in lockstep with the
|
|
12
|
+
* on-chain contract — run `dexe_compile` before calling if artifacts are
|
|
13
|
+
* missing. Falls back to a hand-rolled tuple signature if artifacts are not
|
|
14
|
+
* available (the fallback is carefully matched to
|
|
15
|
+
* `contracts/interfaces/factory/IPoolFactory.sol`).
|
|
16
|
+
*
|
|
17
|
+
* VotePowerType enum: LINEAR_VOTES=0, POLYNOMIAL_VOTES=1, CUSTOM_VOTES=2.
|
|
18
|
+
*/
|
|
19
|
+
const VOTE_POWER_TYPES = ["LINEAR_VOTES", "POLYNOMIAL_VOTES", "CUSTOM_VOTES"];
|
|
20
|
+
const FALLBACK_POOL_FACTORY_ABI = [
|
|
21
|
+
"function deployGovPool(tuple(tuple(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)[] proposalSettings, address[] additionalProposalExecutors) settingsParams, tuple(string name, string symbol, tuple(uint64 duration, uint64 executionDelay, uint128 quorum) proposalSettings, address[] validators, uint256[] balances) validatorsParams, tuple(address tokenAddress, address nftAddress, uint256 individualPower, uint256 nftsTotalSupply) userKeeperParams, tuple(string name, string symbol, address[] users, uint256 cap, uint256 mintedTotal, uint256[] amounts) tokenParams, tuple(uint8 voteType, bytes initData, address presetAddress) votePowerParams, address verifier, bool onlyBABTHolders, string descriptionURL, string name) parameters) returns (address)",
|
|
22
|
+
];
|
|
23
|
+
// ---------- input schemas ----------
|
|
24
|
+
const RewardsInfoSchema = z.object({
|
|
25
|
+
rewardToken: z.string(),
|
|
26
|
+
creationReward: z.string().default("0"),
|
|
27
|
+
executionReward: z.string().default("0"),
|
|
28
|
+
voteRewardsCoefficient: z.string().default("0"),
|
|
29
|
+
});
|
|
30
|
+
const MainProposalSettingsSchema = z.object({
|
|
31
|
+
earlyCompletion: z.boolean(),
|
|
32
|
+
delegatedVotingAllowed: z.boolean(),
|
|
33
|
+
validatorsVote: z.boolean(),
|
|
34
|
+
duration: z.string(),
|
|
35
|
+
durationValidators: z.string(),
|
|
36
|
+
executionDelay: z.string().default("0"),
|
|
37
|
+
quorum: z.string(),
|
|
38
|
+
quorumValidators: z.string(),
|
|
39
|
+
minVotesForVoting: z.string(),
|
|
40
|
+
minVotesForCreating: z.string(),
|
|
41
|
+
rewardsInfo: RewardsInfoSchema,
|
|
42
|
+
executorDescription: z.string().default(""),
|
|
43
|
+
});
|
|
44
|
+
const SettingsDeployParamsSchema = z.object({
|
|
45
|
+
proposalSettings: z.array(MainProposalSettingsSchema).min(1),
|
|
46
|
+
additionalProposalExecutors: z.array(z.string()).default([]),
|
|
47
|
+
});
|
|
48
|
+
const ValidatorProposalSettingsSchema = z.object({
|
|
49
|
+
duration: z.string(),
|
|
50
|
+
executionDelay: z.string().default("0"),
|
|
51
|
+
quorum: z.string(),
|
|
52
|
+
});
|
|
53
|
+
const ValidatorsDeployParamsSchema = z.object({
|
|
54
|
+
name: z.string(),
|
|
55
|
+
symbol: z.string(),
|
|
56
|
+
proposalSettings: ValidatorProposalSettingsSchema,
|
|
57
|
+
validators: z.array(z.string()).default([]),
|
|
58
|
+
balances: z.array(z.string()).default([]),
|
|
59
|
+
});
|
|
60
|
+
const UserKeeperDeployParamsSchema = z.object({
|
|
61
|
+
tokenAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
62
|
+
nftAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
63
|
+
individualPower: z.string().default("0"),
|
|
64
|
+
nftsTotalSupply: z.string().default("0"),
|
|
65
|
+
});
|
|
66
|
+
const TokenParamsSchema = z.object({
|
|
67
|
+
name: z.string().default(""),
|
|
68
|
+
symbol: z.string().default(""),
|
|
69
|
+
users: z.array(z.string()).default([]),
|
|
70
|
+
cap: z.string().default("0"),
|
|
71
|
+
mintedTotal: z.string().default("0"),
|
|
72
|
+
amounts: z.array(z.string()).default([]),
|
|
73
|
+
});
|
|
74
|
+
const VotePowerDeployParamsSchema = z.object({
|
|
75
|
+
voteType: z.enum(VOTE_POWER_TYPES),
|
|
76
|
+
initData: z.string().default("0x"),
|
|
77
|
+
presetAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
78
|
+
});
|
|
79
|
+
// ---------- register ----------
|
|
80
|
+
export function registerDaoDeployTools(server, ctx) {
|
|
81
|
+
const rpc = new RpcProvider(ctx.config);
|
|
82
|
+
registerBuildDeploy(server, ctx, rpc);
|
|
83
|
+
}
|
|
84
|
+
function errorResult(message) {
|
|
85
|
+
return { content: [{ type: "text", text: message }], isError: true };
|
|
86
|
+
}
|
|
87
|
+
function payloadResult(payload, extra) {
|
|
88
|
+
const lines = [
|
|
89
|
+
payload.description,
|
|
90
|
+
` to : ${payload.to}`,
|
|
91
|
+
` value: ${payload.value}`,
|
|
92
|
+
` data : ${payload.data.slice(0, 66)}…`,
|
|
93
|
+
];
|
|
94
|
+
if (extra?.predictedGovPool)
|
|
95
|
+
lines.push(` predicted govPool: ${extra.predictedGovPool}`);
|
|
96
|
+
if (extra?.note)
|
|
97
|
+
lines.push(`\n${extra.note}`);
|
|
98
|
+
return {
|
|
99
|
+
content: [{ type: "text", text: lines.join("\n") }],
|
|
100
|
+
structuredContent: {
|
|
101
|
+
payload: { ...payload },
|
|
102
|
+
predictedGovPool: extra?.predictedGovPool ?? null,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function payloadOutputSchema() {
|
|
107
|
+
return {
|
|
108
|
+
payload: z.object({
|
|
109
|
+
to: z.string(),
|
|
110
|
+
data: z.string(),
|
|
111
|
+
value: z.string(),
|
|
112
|
+
chainId: z.number(),
|
|
113
|
+
description: z.string(),
|
|
114
|
+
}),
|
|
115
|
+
predictedGovPool: z.string().nullable(),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// ---------- dexe_dao_build_deploy ----------
|
|
119
|
+
function registerBuildDeploy(server, ctx, rpc) {
|
|
120
|
+
server.registerTool("dexe_dao_build_deploy", {
|
|
121
|
+
title: "Build calldata to deploy a new DAO (PoolFactory.deployGovPool)",
|
|
122
|
+
description: "Builds the `PoolFactory.deployGovPool(GovPoolDeployParams)` tx. Input mirrors the nested struct from `IPoolFactory.sol` — settings + validators + userKeeper + token + votePower + verifier + onlyBABTHolders + descriptionURL + name. If `poolFactory` is omitted, resolves via the configured ContractsRegistry. If `deployer` is provided AND RPC is configured, also returns `predictedGovPool` so you can wire it into follow-up txs before the DAO is actually deployed.\n\nPrefer running `dexe_compile` first so we encode against the compiled ABI (strict parity); the tool falls back to a hand-rolled tuple signature otherwise.",
|
|
123
|
+
inputSchema: {
|
|
124
|
+
poolFactory: z
|
|
125
|
+
.string()
|
|
126
|
+
.optional()
|
|
127
|
+
.describe("PoolFactory address override; defaults to ContractsRegistry lookup"),
|
|
128
|
+
deployer: z
|
|
129
|
+
.string()
|
|
130
|
+
.optional()
|
|
131
|
+
.describe("tx.origin expected to send the deploy — used only for predictedGovPool"),
|
|
132
|
+
params: z.object({
|
|
133
|
+
settingsParams: SettingsDeployParamsSchema,
|
|
134
|
+
validatorsParams: ValidatorsDeployParamsSchema,
|
|
135
|
+
userKeeperParams: UserKeeperDeployParamsSchema,
|
|
136
|
+
tokenParams: TokenParamsSchema,
|
|
137
|
+
votePowerParams: VotePowerDeployParamsSchema,
|
|
138
|
+
verifier: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
139
|
+
onlyBABTHolders: z.boolean().default(false),
|
|
140
|
+
descriptionURL: z.string().describe("ipfs://<cid> of DAO metadata JSON"),
|
|
141
|
+
name: z.string().min(1),
|
|
142
|
+
}),
|
|
143
|
+
},
|
|
144
|
+
outputSchema: payloadOutputSchema(),
|
|
145
|
+
}, async ({ poolFactory, deployer, params }) => {
|
|
146
|
+
// ---------- validate leaf addresses ----------
|
|
147
|
+
if (poolFactory && !isAddress(poolFactory))
|
|
148
|
+
return errorResult(`Invalid poolFactory: ${poolFactory}`);
|
|
149
|
+
if (deployer && !isAddress(deployer))
|
|
150
|
+
return errorResult(`Invalid deployer: ${deployer}`);
|
|
151
|
+
if (!isAddress(params.verifier))
|
|
152
|
+
return errorResult(`Invalid verifier: ${params.verifier}`);
|
|
153
|
+
if (!isAddress(params.userKeeperParams.tokenAddress))
|
|
154
|
+
return errorResult(`Invalid userKeeperParams.tokenAddress`);
|
|
155
|
+
if (!isAddress(params.userKeeperParams.nftAddress))
|
|
156
|
+
return errorResult(`Invalid userKeeperParams.nftAddress`);
|
|
157
|
+
if (!isAddress(params.votePowerParams.presetAddress))
|
|
158
|
+
return errorResult(`Invalid votePowerParams.presetAddress`);
|
|
159
|
+
for (const v of params.validatorsParams.validators) {
|
|
160
|
+
if (!isAddress(v))
|
|
161
|
+
return errorResult(`Invalid validator: ${v}`);
|
|
162
|
+
}
|
|
163
|
+
if (params.validatorsParams.validators.length !== params.validatorsParams.balances.length) {
|
|
164
|
+
return errorResult("validatorsParams.validators and .balances must be the same length");
|
|
165
|
+
}
|
|
166
|
+
for (const u of params.tokenParams.users) {
|
|
167
|
+
if (!isAddress(u))
|
|
168
|
+
return errorResult(`Invalid tokenParams.users entry: ${u}`);
|
|
169
|
+
}
|
|
170
|
+
if (params.tokenParams.users.length !== params.tokenParams.amounts.length) {
|
|
171
|
+
return errorResult("tokenParams.users and .amounts must be the same length");
|
|
172
|
+
}
|
|
173
|
+
// ---------- resolve PoolFactory address ----------
|
|
174
|
+
let factoryAddress = poolFactory;
|
|
175
|
+
if (!factoryAddress) {
|
|
176
|
+
try {
|
|
177
|
+
const provider = rpc.requireProvider();
|
|
178
|
+
const book = new AddressBook({
|
|
179
|
+
provider,
|
|
180
|
+
chainId: ctx.config.chainId,
|
|
181
|
+
registryOverride: ctx.config.registryOverride,
|
|
182
|
+
});
|
|
183
|
+
factoryAddress = await book.resolve(CONTRACT_NAMES.POOL_FACTORY);
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
return errorResult(`poolFactory address needed: pass it explicitly, or configure DEXE_RPC_URL so the ContractsRegistry lookup works. (${err instanceof Error ? err.message : String(err)})`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// ---------- build the tuple arg ----------
|
|
190
|
+
const paramsTuple = [
|
|
191
|
+
// settingsParams
|
|
192
|
+
[
|
|
193
|
+
params.settingsParams.proposalSettings.map((s) => [
|
|
194
|
+
s.earlyCompletion,
|
|
195
|
+
s.delegatedVotingAllowed,
|
|
196
|
+
s.validatorsVote,
|
|
197
|
+
BigInt(s.duration),
|
|
198
|
+
BigInt(s.durationValidators),
|
|
199
|
+
BigInt(s.executionDelay),
|
|
200
|
+
BigInt(s.quorum),
|
|
201
|
+
BigInt(s.quorumValidators),
|
|
202
|
+
BigInt(s.minVotesForVoting),
|
|
203
|
+
BigInt(s.minVotesForCreating),
|
|
204
|
+
[
|
|
205
|
+
s.rewardsInfo.rewardToken,
|
|
206
|
+
BigInt(s.rewardsInfo.creationReward),
|
|
207
|
+
BigInt(s.rewardsInfo.executionReward),
|
|
208
|
+
BigInt(s.rewardsInfo.voteRewardsCoefficient),
|
|
209
|
+
],
|
|
210
|
+
s.executorDescription,
|
|
211
|
+
]),
|
|
212
|
+
params.settingsParams.additionalProposalExecutors,
|
|
213
|
+
],
|
|
214
|
+
// validatorsParams
|
|
215
|
+
[
|
|
216
|
+
params.validatorsParams.name,
|
|
217
|
+
params.validatorsParams.symbol,
|
|
218
|
+
[
|
|
219
|
+
BigInt(params.validatorsParams.proposalSettings.duration),
|
|
220
|
+
BigInt(params.validatorsParams.proposalSettings.executionDelay),
|
|
221
|
+
BigInt(params.validatorsParams.proposalSettings.quorum),
|
|
222
|
+
],
|
|
223
|
+
params.validatorsParams.validators,
|
|
224
|
+
params.validatorsParams.balances.map((b) => BigInt(b)),
|
|
225
|
+
],
|
|
226
|
+
// userKeeperParams
|
|
227
|
+
[
|
|
228
|
+
params.userKeeperParams.tokenAddress,
|
|
229
|
+
params.userKeeperParams.nftAddress,
|
|
230
|
+
BigInt(params.userKeeperParams.individualPower),
|
|
231
|
+
BigInt(params.userKeeperParams.nftsTotalSupply),
|
|
232
|
+
],
|
|
233
|
+
// tokenParams
|
|
234
|
+
[
|
|
235
|
+
params.tokenParams.name,
|
|
236
|
+
params.tokenParams.symbol,
|
|
237
|
+
params.tokenParams.users,
|
|
238
|
+
BigInt(params.tokenParams.cap),
|
|
239
|
+
BigInt(params.tokenParams.mintedTotal),
|
|
240
|
+
params.tokenParams.amounts.map((a) => BigInt(a)),
|
|
241
|
+
],
|
|
242
|
+
// votePowerParams
|
|
243
|
+
[
|
|
244
|
+
VOTE_POWER_TYPES.indexOf(params.votePowerParams.voteType), // uint8 enum
|
|
245
|
+
params.votePowerParams.initData,
|
|
246
|
+
params.votePowerParams.presetAddress,
|
|
247
|
+
],
|
|
248
|
+
params.verifier,
|
|
249
|
+
params.onlyBABTHolders,
|
|
250
|
+
params.descriptionURL,
|
|
251
|
+
params.name,
|
|
252
|
+
];
|
|
253
|
+
// ---------- get ABI (artifact > fallback) ----------
|
|
254
|
+
let iface;
|
|
255
|
+
let ifaceSource;
|
|
256
|
+
try {
|
|
257
|
+
const records = ctx.artifacts.get("PoolFactory");
|
|
258
|
+
if (records.length > 0) {
|
|
259
|
+
iface = new Interface(records[0].abi);
|
|
260
|
+
ifaceSource = "compiled artifact";
|
|
261
|
+
// Sanity: ensure it has deployGovPool
|
|
262
|
+
try {
|
|
263
|
+
iface.getFunction("deployGovPool");
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
iface = new Interface(FALLBACK_POOL_FACTORY_ABI);
|
|
267
|
+
ifaceSource = "fallback (compiled artifact missing deployGovPool)";
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
iface = new Interface(FALLBACK_POOL_FACTORY_ABI);
|
|
272
|
+
ifaceSource = "fallback (artifacts not loaded — run dexe_compile for strict parity)";
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (err) {
|
|
276
|
+
if (err instanceof ArtifactsMissingError) {
|
|
277
|
+
iface = new Interface(FALLBACK_POOL_FACTORY_ABI);
|
|
278
|
+
ifaceSource = "fallback (no artifacts — run dexe_compile for strict parity)";
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
return errorResult(`Failed to load PoolFactory ABI: ${err instanceof Error ? err.message : String(err)}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// ---------- encode ----------
|
|
285
|
+
let payload;
|
|
286
|
+
try {
|
|
287
|
+
payload = buildPayload({
|
|
288
|
+
to: factoryAddress,
|
|
289
|
+
iface,
|
|
290
|
+
method: "deployGovPool",
|
|
291
|
+
args: [paramsTuple],
|
|
292
|
+
chainId: ctx.config.chainId,
|
|
293
|
+
contractLabel: "PoolFactory",
|
|
294
|
+
description: `PoolFactory.deployGovPool("${params.name}") via ${ifaceSource}`,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
catch (err) {
|
|
298
|
+
return errorResult(`deployGovPool encoding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
299
|
+
}
|
|
300
|
+
// ---------- optional: predict govPool ----------
|
|
301
|
+
let predictedGovPool;
|
|
302
|
+
if (deployer && ctx.config.rpcUrl) {
|
|
303
|
+
try {
|
|
304
|
+
const provider = rpc.requireProvider();
|
|
305
|
+
const predictIface = new Interface([
|
|
306
|
+
"function predictGovAddresses(address deployer, string poolName) view returns (tuple(address govPool, address govTokenSale, address govToken, address distributionProposal, address expertNft, address nftMultiplier))",
|
|
307
|
+
]);
|
|
308
|
+
const { Contract } = await import("ethers");
|
|
309
|
+
const factory = new Contract(factoryAddress, predictIface, provider);
|
|
310
|
+
const res = await factory.getFunction("predictGovAddresses").staticCall(deployer, params.name);
|
|
311
|
+
predictedGovPool = res.govPool;
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
// best-effort; absence is not fatal
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
const note = ifaceSource.includes("fallback")
|
|
318
|
+
? "⚠️ Using fallback tuple ABI. For guaranteed parity, run dexe_compile to populate artifacts."
|
|
319
|
+
: "Encoded against compiled artifact — strict parity with deployed PoolFactory.";
|
|
320
|
+
return payloadResult(payload, { predictedGovPool, note });
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=daoDeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daoDeploy.js","sourceRoot":"","sources":["../../src/tools/daoDeploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqB/C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAqBvE"}
|
package/dist/tools/index.js
CHANGED
|
@@ -4,6 +4,18 @@ import { SelectorIndex } from "../lib/selectors.js";
|
|
|
4
4
|
import { registerBuildTools } from "./build.js";
|
|
5
5
|
import { registerIntrospectTools } from "./introspect.js";
|
|
6
6
|
import { registerGovTools } from "./gov.js";
|
|
7
|
+
import { registerDaoTools } from "./dao.js";
|
|
8
|
+
import { registerProposalTools } from "./proposal.js";
|
|
9
|
+
import { registerVoteTools } from "./vote.js";
|
|
10
|
+
import { registerReadTools } from "./read.js";
|
|
11
|
+
import { registerIpfsTools } from "./ipfs.js";
|
|
12
|
+
import { registerProposalBuildTools } from "./proposalBuild.js";
|
|
13
|
+
import { registerProposalBuildMoreTools } from "./proposalBuildMore.js";
|
|
14
|
+
import { registerProposalBuildComplexTools } from "./proposalBuildComplex.js";
|
|
15
|
+
import { registerProposalBuildOffchainTools } from "./proposalBuildOffchain.js";
|
|
16
|
+
import { registerProposalBuildInternalTools } from "./proposalBuildInternal.js";
|
|
17
|
+
import { registerVoteBuildTools } from "./voteBuild.js";
|
|
18
|
+
import { registerDaoDeployTools } from "./daoDeploy.js";
|
|
7
19
|
/**
|
|
8
20
|
* Wire every dexe-mcp tool onto the given server instance. Builds the shared
|
|
9
21
|
* ToolContext (artifacts cache, hardhat runner, selector index) once so all
|
|
@@ -17,5 +29,17 @@ export function registerAll(server, config) {
|
|
|
17
29
|
registerBuildTools(server, ctx);
|
|
18
30
|
registerIntrospectTools(server, ctx);
|
|
19
31
|
registerGovTools(server, ctx);
|
|
32
|
+
registerDaoTools(server, ctx);
|
|
33
|
+
registerProposalTools(server, ctx);
|
|
34
|
+
registerVoteTools(server, ctx);
|
|
35
|
+
registerReadTools(server, ctx);
|
|
36
|
+
registerIpfsTools(server, ctx);
|
|
37
|
+
registerProposalBuildTools(server, ctx);
|
|
38
|
+
registerProposalBuildMoreTools(server, ctx);
|
|
39
|
+
registerProposalBuildComplexTools(server, ctx);
|
|
40
|
+
registerProposalBuildOffchainTools(server, ctx);
|
|
41
|
+
registerProposalBuildInternalTools(server, ctx);
|
|
42
|
+
registerVoteBuildTools(server, ctx);
|
|
43
|
+
registerDaoDeployTools(server, ctx);
|
|
20
44
|
}
|
|
21
45
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,MAAkB;IAC/D,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAElE,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,8BAA8B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,iCAAiC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { ToolContext } from "./context.js";
|
|
3
|
+
import { cidForBytes } from "../lib/ipfs.js";
|
|
4
|
+
export declare function registerIpfsTools(server: McpServer, ctx: ToolContext): void;
|
|
5
|
+
export { cidForBytes };
|
|
6
|
+
//# sourceMappingURL=ipfs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/ipfs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,WAAW,EAKZ,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAS3E;AA6UD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|