dexe-mcp 0.2.0 → 0.4.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/CHANGELOG.md +192 -85
- package/README.md +103 -80
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/addresses.js +1 -1
- package/dist/lib/ipfs.d.ts.map +1 -1
- package/dist/lib/ipfs.js +2 -1
- package/dist/lib/ipfs.js.map +1 -1
- package/dist/lib/markdownToSlate.d.ts +39 -0
- package/dist/lib/markdownToSlate.d.ts.map +1 -0
- package/dist/lib/markdownToSlate.js +203 -0
- package/dist/lib/markdownToSlate.js.map +1 -0
- package/dist/lib/merkleTree.d.ts +38 -0
- package/dist/lib/merkleTree.d.ts.map +1 -0
- package/dist/lib/merkleTree.js +83 -0
- package/dist/lib/merkleTree.js.map +1 -0
- package/dist/lib/signer.d.ts +12 -0
- package/dist/lib/signer.d.ts.map +1 -0
- package/dist/lib/signer.js +31 -0
- package/dist/lib/signer.js.map +1 -0
- package/dist/lib/subgraph.d.ts +2 -2
- package/dist/lib/subgraph.d.ts.map +1 -1
- package/dist/lib/subgraph.js +14 -9
- package/dist/lib/subgraph.js.map +1 -1
- package/dist/tools/daoDeploy.d.ts.map +1 -1
- package/dist/tools/daoDeploy.js +313 -63
- package/dist/tools/daoDeploy.js.map +1 -1
- package/dist/tools/flow.d.ts +62 -0
- package/dist/tools/flow.d.ts.map +1 -0
- package/dist/tools/flow.js +479 -0
- package/dist/tools/flow.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +12 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ipfs.d.ts.map +1 -1
- package/dist/tools/ipfs.js +94 -28
- package/dist/tools/ipfs.js.map +1 -1
- package/dist/tools/merkle.d.ts +4 -0
- package/dist/tools/merkle.d.ts.map +1 -0
- package/dist/tools/merkle.js +174 -0
- package/dist/tools/merkle.js.map +1 -0
- package/dist/tools/otc.d.ts +5 -0
- package/dist/tools/otc.d.ts.map +1 -0
- package/dist/tools/otc.js +481 -0
- package/dist/tools/otc.js.map +1 -0
- package/dist/tools/proposal.js +28 -10
- package/dist/tools/proposal.js.map +1 -1
- package/dist/tools/proposalBuild.d.ts.map +1 -1
- package/dist/tools/proposalBuild.js +28 -13
- package/dist/tools/proposalBuild.js.map +1 -1
- package/dist/tools/proposalBuildComplex.d.ts +222 -0
- package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
- package/dist/tools/proposalBuildComplex.js +511 -138
- package/dist/tools/proposalBuildComplex.js.map +1 -1
- package/dist/tools/proposalBuildInternal.js +24 -11
- package/dist/tools/proposalBuildInternal.js.map +1 -1
- package/dist/tools/proposalBuildMore.js +42 -21
- package/dist/tools/proposalBuildMore.js.map +1 -1
- package/dist/tools/proposalBuildOffchain.d.ts.map +1 -1
- package/dist/tools/proposalBuildOffchain.js +8 -5
- package/dist/tools/proposalBuildOffchain.js.map +1 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +227 -0
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/subgraph.d.ts +4 -0
- package/dist/tools/subgraph.d.ts.map +1 -0
- package/dist/tools/subgraph.js +404 -0
- package/dist/tools/subgraph.js.map +1 -0
- package/dist/tools/txSend.d.ts +5 -0
- package/dist/tools/txSend.d.ts.map +1 -0
- package/dist/tools/txSend.js +87 -0
- package/dist/tools/txSend.js.map +1 -0
- package/dist/tools/voteBuild.d.ts.map +1 -1
- package/dist/tools/voteBuild.js +420 -0
- package/dist/tools/voteBuild.js.map +1 -1
- package/package.json +83 -75
package/dist/tools/daoDeploy.js
CHANGED
|
@@ -4,6 +4,7 @@ import { buildPayload } from "../lib/calldata.js";
|
|
|
4
4
|
import { ArtifactsMissingError } from "../artifacts.js";
|
|
5
5
|
import { AddressBook, CONTRACT_NAMES } from "../lib/addresses.js";
|
|
6
6
|
import { RpcProvider } from "../rpc.js";
|
|
7
|
+
import { PinataClient } from "../lib/ipfs.js";
|
|
7
8
|
/**
|
|
8
9
|
* Phase 5 — deploy a new DAO via `PoolFactory.deployGovPool(GovPoolDeployParams)`.
|
|
9
10
|
*
|
|
@@ -17,38 +18,72 @@ import { RpcProvider } from "../rpc.js";
|
|
|
17
18
|
* VotePowerType enum: LINEAR_VOTES=0, POLYNOMIAL_VOTES=1, CUSTOM_VOTES=2.
|
|
18
19
|
*/
|
|
19
20
|
const VOTE_POWER_TYPES = ["LINEAR_VOTES", "POLYNOMIAL_VOTES", "CUSTOM_VOTES"];
|
|
21
|
+
// ---- Vote power initializer ABIs (must match deployed contracts) ----
|
|
22
|
+
// LinearPower.__LinearPower_init() — no args, just triggers OwnableUpgradeable
|
|
23
|
+
const LINEAR_POWER_ABI = [
|
|
24
|
+
"function __LinearPower_init()",
|
|
25
|
+
];
|
|
26
|
+
// PolynomialPower.__PolynomialPower_init(uint256,uint256,uint256)
|
|
27
|
+
const POLYNOMIAL_POWER_ABI = [
|
|
28
|
+
"function __PolynomialPower_init(uint256 coefficient1, uint256 coefficient2, uint256 coefficient3)",
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Encode the initData for the vote power proxy based on voteType.
|
|
32
|
+
* The PoolFactory calls `.call(initData)` on the deployed proxy during
|
|
33
|
+
* `_initGovPool` — if initData is empty (`0x`), the proxy is never
|
|
34
|
+
* initialized and downstream calls revert.
|
|
35
|
+
*/
|
|
36
|
+
function encodeVotePowerInitData(voteType, polynomialCoefficients) {
|
|
37
|
+
if (voteType === "LINEAR_VOTES") {
|
|
38
|
+
const iface = new Interface(LINEAR_POWER_ABI);
|
|
39
|
+
return iface.encodeFunctionData("__LinearPower_init", []);
|
|
40
|
+
}
|
|
41
|
+
if (voteType === "POLYNOMIAL_VOTES") {
|
|
42
|
+
if (!polynomialCoefficients) {
|
|
43
|
+
throw new Error("POLYNOMIAL_VOTES requires polynomialCoefficients (coefficient1, coefficient2, coefficient3)");
|
|
44
|
+
}
|
|
45
|
+
const iface = new Interface(POLYNOMIAL_POWER_ABI);
|
|
46
|
+
return iface.encodeFunctionData("__PolynomialPower_init", [
|
|
47
|
+
BigInt(polynomialCoefficients.coefficient1),
|
|
48
|
+
BigInt(polynomialCoefficients.coefficient2),
|
|
49
|
+
BigInt(polynomialCoefficients.coefficient3),
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
// CUSTOM_VOTES: caller provides raw initData or 0x (contract skips the call)
|
|
53
|
+
return "0x";
|
|
54
|
+
}
|
|
20
55
|
const FALLBACK_POOL_FACTORY_ABI = [
|
|
21
56
|
"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
57
|
];
|
|
23
58
|
// ---------- input schemas ----------
|
|
24
59
|
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"),
|
|
60
|
+
rewardToken: z.string().describe("Reward token address (use ZERO_ADDR if no rewards)"),
|
|
61
|
+
creationReward: z.string().default("0").describe("18-decimal wei token amount"),
|
|
62
|
+
executionReward: z.string().default("0").describe("18-decimal wei token amount"),
|
|
63
|
+
voteRewardsCoefficient: z.string().default("0").describe("25-decimal wei percentage"),
|
|
29
64
|
});
|
|
30
65
|
const MainProposalSettingsSchema = z.object({
|
|
31
66
|
earlyCompletion: z.boolean(),
|
|
32
|
-
delegatedVotingAllowed: z.boolean(),
|
|
67
|
+
delegatedVotingAllowed: z.boolean().describe("Contract-inverted: true = DISABLE delegation, false = ALLOW"),
|
|
33
68
|
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(),
|
|
69
|
+
duration: z.string().describe("Voting duration in seconds (e.g. \"86400\" for 1 day)"),
|
|
70
|
+
durationValidators: z.string().describe("Validator voting duration in seconds"),
|
|
71
|
+
executionDelay: z.string().default("0").describe("Delay before execution in seconds"),
|
|
72
|
+
quorum: z.string().describe("25-decimal wei percentage (50% = \"500000000000000000000000000\")"),
|
|
73
|
+
quorumValidators: z.string().describe("25-decimal wei percentage"),
|
|
74
|
+
minVotesForVoting: z.string().describe("18-decimal wei token amount"),
|
|
75
|
+
minVotesForCreating: z.string().describe("18-decimal wei token amount"),
|
|
41
76
|
rewardsInfo: RewardsInfoSchema,
|
|
42
|
-
executorDescription: z.string().default(""),
|
|
77
|
+
executorDescription: z.string().default("").describe("IPFS CID of settings JSON (auto-uploaded when empty and DEXE_PINATA_JWT is set)"),
|
|
43
78
|
});
|
|
44
79
|
const SettingsDeployParamsSchema = z.object({
|
|
45
|
-
proposalSettings: z.array(MainProposalSettingsSchema).min(1),
|
|
80
|
+
proposalSettings: z.array(MainProposalSettingsSchema).min(1).max(5),
|
|
46
81
|
additionalProposalExecutors: z.array(z.string()).default([]),
|
|
47
82
|
});
|
|
48
83
|
const ValidatorProposalSettingsSchema = z.object({
|
|
49
|
-
duration: z.string(),
|
|
50
|
-
executionDelay: z.string().default("0"),
|
|
51
|
-
quorum: z.string(),
|
|
84
|
+
duration: z.string().describe("Validator voting duration in seconds"),
|
|
85
|
+
executionDelay: z.string().default("0").describe("Delay before execution in seconds"),
|
|
86
|
+
quorum: z.string().describe("25-decimal wei percentage"),
|
|
52
87
|
});
|
|
53
88
|
const ValidatorsDeployParamsSchema = z.object({
|
|
54
89
|
name: z.string(),
|
|
@@ -58,23 +93,32 @@ const ValidatorsDeployParamsSchema = z.object({
|
|
|
58
93
|
balances: z.array(z.string()).default([]),
|
|
59
94
|
});
|
|
60
95
|
const UserKeeperDeployParamsSchema = z.object({
|
|
61
|
-
tokenAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
96
|
+
tokenAddress: z.string().default("0x0000000000000000000000000000000000000000").describe("Existing ERC20 governance token (auto-wired to predicted govToken when creating new token)"),
|
|
62
97
|
nftAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
63
|
-
individualPower: z.string().default("0"),
|
|
64
|
-
nftsTotalSupply: z.string().default("0"),
|
|
98
|
+
individualPower: z.string().default("0").describe("18-decimal wei — voting power per NFT"),
|
|
99
|
+
nftsTotalSupply: z.string().default("0").describe("Total NFT collection size (plain integer)"),
|
|
65
100
|
});
|
|
66
101
|
const TokenParamsSchema = z.object({
|
|
67
|
-
name: z.string().default(""),
|
|
102
|
+
name: z.string().default("").describe("Gov token name (non-empty triggers token creation)"),
|
|
68
103
|
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([]),
|
|
104
|
+
users: z.array(z.string()).default([]).describe("Initial token recipient addresses"),
|
|
105
|
+
cap: z.string().default("0").describe("18-decimal wei token cap"),
|
|
106
|
+
mintedTotal: z.string().default("0").describe("18-decimal wei total initial mint"),
|
|
107
|
+
amounts: z.array(z.string()).default([]).describe("18-decimal wei amounts per recipient"),
|
|
108
|
+
});
|
|
109
|
+
const PolynomialCoefficientsSchema = z.object({
|
|
110
|
+
coefficient1: z.string().describe("Expert delegation coefficient (18-decimal wei)"),
|
|
111
|
+
coefficient2: z.string().describe("Expert coefficient (18-decimal wei)"),
|
|
112
|
+
coefficient3: z.string().describe("Holder coefficient (18-decimal wei)"),
|
|
73
113
|
});
|
|
74
114
|
const VotePowerDeployParamsSchema = z.object({
|
|
75
115
|
voteType: z.enum(VOTE_POWER_TYPES),
|
|
76
|
-
initData
|
|
116
|
+
/** Raw initData override — only used for CUSTOM_VOTES. For LINEAR/POLYNOMIAL
|
|
117
|
+
* the tool auto-encodes the correct initializer calldata. */
|
|
118
|
+
initData: z.string().optional().describe("Raw hex initData — only for CUSTOM_VOTES. LINEAR/POLYNOMIAL are auto-encoded."),
|
|
77
119
|
presetAddress: z.string().default("0x0000000000000000000000000000000000000000"),
|
|
120
|
+
/** Required when voteType is POLYNOMIAL_VOTES. */
|
|
121
|
+
polynomialCoefficients: PolynomialCoefficientsSchema.optional().describe("Required for POLYNOMIAL_VOTES: the three curve coefficients (18-decimal wei strings)"),
|
|
78
122
|
});
|
|
79
123
|
// ---------- register ----------
|
|
80
124
|
export function registerDaoDeployTools(server, ctx) {
|
|
@@ -119,7 +163,28 @@ function payloadOutputSchema() {
|
|
|
119
163
|
function registerBuildDeploy(server, ctx, rpc) {
|
|
120
164
|
server.registerTool("dexe_dao_build_deploy", {
|
|
121
165
|
title: "Build calldata to deploy a new DAO (PoolFactory.deployGovPool)",
|
|
122
|
-
description: "Builds the `PoolFactory.deployGovPool(GovPoolDeployParams)` tx.
|
|
166
|
+
description: "Builds the `PoolFactory.deployGovPool(GovPoolDeployParams)` tx. Mirrors the frontend wizard at app.dexe.network/create-dao.\n\n" +
|
|
167
|
+
"**Proposal settings auto-expand:** Pass 1 setting → auto-expands to 5 (default, internal, validators, distributionProposal, tokenSale). " +
|
|
168
|
+
"DPSettings (index 3) forces `delegatedVotingAllowed: false` and `earlyCompletion: false`. Pass exactly 5 to override.\n\n" +
|
|
169
|
+
"**delegatedVotingAllowed inversion:** Contract semantics are inverted — pass `true` to DISABLE delegation, `false` to ALLOW it (matches frontend behavior).\n\n" +
|
|
170
|
+
"**Vote power initData:** Automatically encoded — do NOT pass `initData` for LINEAR or POLYNOMIAL types. " +
|
|
171
|
+
"For LINEAR_VOTES: auto-encodes `__LinearPower_init()`. " +
|
|
172
|
+
"For POLYNOMIAL_VOTES: auto-encodes `__PolynomialPower_init(c1,c2,c3)` — pass `polynomialCoefficients`. " +
|
|
173
|
+
"For CUSTOM_VOTES: pass `initData` manually (or omit if the custom contract skips init).\n\n" +
|
|
174
|
+
"**Predicted addresses:** `deployer` is always required. Tool calls `predictGovAddresses` and auto-wires: " +
|
|
175
|
+
"(1) `govToken` → `userKeeperParams.tokenAddress` when creating token, " +
|
|
176
|
+
"(2) `distributionProposal` + `govTokenSale` → `additionalProposalExecutors` always.\n\n" +
|
|
177
|
+
"**Validators defaults:** When no validators needed, omit `validatorsParams` — defaults to name='Validator Token', symbol='VT', empty list. " +
|
|
178
|
+
"`durationValidators`/`quorumValidators` in proposal settings fall back to `duration`/`quorum` when no validators.\n\n" +
|
|
179
|
+
"**Decimal conventions (must match frontend):**\n" +
|
|
180
|
+
"- `quorum`, `quorumValidators`, `voteRewardsCoefficient`: 25-decimal wei. 50% = `\"500000000000000000000000000\"` (50 × 10^25).\n" +
|
|
181
|
+
"- `minVotesForVoting`, `minVotesForCreating`, `creationReward`, `executionReward`, token `cap`/`mintedTotal`/`amounts`, `individualPower`: 18-decimal wei. 100 tokens = `\"100000000000000000000\"` (100 × 10^18).\n" +
|
|
182
|
+
"- `duration`, `durationValidators`, `executionDelay`: plain seconds as string. 1 day = `\"86400\"`.\n" +
|
|
183
|
+
"- `polynomialCoefficients` (coefficient1/2/3): 25-decimal wei.\n\n" +
|
|
184
|
+
"**executorDescription auto-upload:** When `DEXE_PINATA_JWT` is configured and `executorDescription` is empty, " +
|
|
185
|
+
"the tool auto-uploads proposal settings JSON to IPFS and sets the CID (matching frontend behavior). " +
|
|
186
|
+
"Without this, the DAO's proposal settings won't display correctly in the frontend UI.\n\n" +
|
|
187
|
+
"Prefer running `dexe_compile` first for strict ABI parity.",
|
|
123
188
|
inputSchema: {
|
|
124
189
|
poolFactory: z
|
|
125
190
|
.string()
|
|
@@ -127,11 +192,10 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
127
192
|
.describe("PoolFactory address override; defaults to ContractsRegistry lookup"),
|
|
128
193
|
deployer: z
|
|
129
194
|
.string()
|
|
130
|
-
.
|
|
131
|
-
.describe("tx.origin expected to send the deploy — used only for predictedGovPool"),
|
|
195
|
+
.describe("tx.origin that will send the deploy tx — required for address prediction"),
|
|
132
196
|
params: z.object({
|
|
133
197
|
settingsParams: SettingsDeployParamsSchema,
|
|
134
|
-
validatorsParams: ValidatorsDeployParamsSchema,
|
|
198
|
+
validatorsParams: ValidatorsDeployParamsSchema.optional(),
|
|
135
199
|
userKeeperParams: UserKeeperDeployParamsSchema,
|
|
136
200
|
tokenParams: TokenParamsSchema,
|
|
137
201
|
votePowerParams: VotePowerDeployParamsSchema,
|
|
@@ -143,11 +207,55 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
143
207
|
},
|
|
144
208
|
outputSchema: payloadOutputSchema(),
|
|
145
209
|
}, async ({ poolFactory, deployer, params }) => {
|
|
210
|
+
const isTokenCreation = params.tokenParams.name.length > 0;
|
|
211
|
+
const hasValidators = !!(params.validatorsParams && params.validatorsParams.validators.length > 0);
|
|
212
|
+
// ---------- auto-encode vote power initData ----------
|
|
213
|
+
let votePowerInitData;
|
|
214
|
+
try {
|
|
215
|
+
if (params.votePowerParams.voteType === "CUSTOM_VOTES") {
|
|
216
|
+
// CUSTOM_VOTES: use caller-provided initData (contract skips .call for custom)
|
|
217
|
+
votePowerInitData = params.votePowerParams.initData ?? "0x";
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
// LINEAR / POLYNOMIAL: auto-encode the correct initializer
|
|
221
|
+
votePowerInitData = encodeVotePowerInitData(params.votePowerParams.voteType, params.votePowerParams.polynomialCoefficients);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
return errorResult(`Failed to encode vote power initData: ${err instanceof Error ? err.message : String(err)}`);
|
|
226
|
+
}
|
|
227
|
+
// ---------- default validatorsParams when omitted ----------
|
|
228
|
+
const VT_SUFFIX = "-VT";
|
|
229
|
+
const rawValidatorsParams = params.validatorsParams ?? {
|
|
230
|
+
name: "Validator Token",
|
|
231
|
+
symbol: "VT",
|
|
232
|
+
proposalSettings: {
|
|
233
|
+
duration: params.settingsParams.proposalSettings[0].duration,
|
|
234
|
+
executionDelay: params.settingsParams.proposalSettings[0].executionDelay,
|
|
235
|
+
quorum: params.settingsParams.proposalSettings[0].quorum,
|
|
236
|
+
},
|
|
237
|
+
validators: [],
|
|
238
|
+
balances: [],
|
|
239
|
+
};
|
|
240
|
+
// Bug #11: Frontend appends "-VT" suffix to validator token name and symbol.
|
|
241
|
+
// The form UI always stores name/symbol with the suffix already included.
|
|
242
|
+
// Replicate that here: if the suffix isn't already present, append it.
|
|
243
|
+
const validatorsParams = {
|
|
244
|
+
...rawValidatorsParams,
|
|
245
|
+
name: rawValidatorsParams.name.endsWith(VT_SUFFIX)
|
|
246
|
+
? rawValidatorsParams.name
|
|
247
|
+
: rawValidatorsParams.name + VT_SUFFIX,
|
|
248
|
+
symbol: rawValidatorsParams.symbol.endsWith(VT_SUFFIX)
|
|
249
|
+
? rawValidatorsParams.symbol
|
|
250
|
+
: rawValidatorsParams.symbol + VT_SUFFIX,
|
|
251
|
+
};
|
|
146
252
|
// ---------- validate leaf addresses ----------
|
|
147
253
|
if (poolFactory && !isAddress(poolFactory))
|
|
148
254
|
return errorResult(`Invalid poolFactory: ${poolFactory}`);
|
|
149
|
-
if (
|
|
255
|
+
if (!isAddress(deployer))
|
|
150
256
|
return errorResult(`Invalid deployer: ${deployer}`);
|
|
257
|
+
if (isTokenCreation && params.tokenParams.users.length === 0)
|
|
258
|
+
return errorResult("tokenParams.users must have at least one recipient when creating a new token");
|
|
151
259
|
if (!isAddress(params.verifier))
|
|
152
260
|
return errorResult(`Invalid verifier: ${params.verifier}`);
|
|
153
261
|
if (!isAddress(params.userKeeperParams.tokenAddress))
|
|
@@ -156,11 +264,11 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
156
264
|
return errorResult(`Invalid userKeeperParams.nftAddress`);
|
|
157
265
|
if (!isAddress(params.votePowerParams.presetAddress))
|
|
158
266
|
return errorResult(`Invalid votePowerParams.presetAddress`);
|
|
159
|
-
for (const v of
|
|
267
|
+
for (const v of validatorsParams.validators) {
|
|
160
268
|
if (!isAddress(v))
|
|
161
269
|
return errorResult(`Invalid validator: ${v}`);
|
|
162
270
|
}
|
|
163
|
-
if (
|
|
271
|
+
if (validatorsParams.validators.length !== validatorsParams.balances.length) {
|
|
164
272
|
return errorResult("validatorsParams.validators and .balances must be the same length");
|
|
165
273
|
}
|
|
166
274
|
for (const u of params.tokenParams.users) {
|
|
@@ -186,11 +294,168 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
186
294
|
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
295
|
}
|
|
188
296
|
}
|
|
297
|
+
// ---------- predict addresses (always required — wires executors) ----------
|
|
298
|
+
let predictedGovPool;
|
|
299
|
+
let predictedGovToken;
|
|
300
|
+
let predictedDistribution;
|
|
301
|
+
let predictedTokenSale;
|
|
302
|
+
try {
|
|
303
|
+
const provider = rpc.requireProvider();
|
|
304
|
+
const predictIface = new Interface([
|
|
305
|
+
"function predictGovAddresses(address deployer, string poolName) view returns (tuple(address govPool, address govTokenSale, address govToken, address distributionProposal, address expertNft, address nftMultiplier))",
|
|
306
|
+
]);
|
|
307
|
+
const { Contract } = await import("ethers");
|
|
308
|
+
const factory = new Contract(factoryAddress, predictIface, provider);
|
|
309
|
+
const res = await factory.getFunction("predictGovAddresses").staticCall(deployer, params.name);
|
|
310
|
+
predictedGovPool = res.govPool;
|
|
311
|
+
predictedGovToken = res.govToken;
|
|
312
|
+
predictedDistribution = res.distributionProposal;
|
|
313
|
+
predictedTokenSale = res.govTokenSale;
|
|
314
|
+
}
|
|
315
|
+
catch (err) {
|
|
316
|
+
return errorResult(`Failed to predict gov addresses: ${err instanceof Error ? err.message : String(err)}`);
|
|
317
|
+
}
|
|
318
|
+
const ZERO = "0x0000000000000000000000000000000000000000";
|
|
319
|
+
// Wire predicted govToken into userKeeperParams when creating a new token
|
|
320
|
+
const effectiveTokenAddress = isTokenCreation && predictedGovToken
|
|
321
|
+
? predictedGovToken
|
|
322
|
+
: params.userKeeperParams.tokenAddress;
|
|
323
|
+
// Bug #12: When "use governance token for rewards" is checked, the frontend
|
|
324
|
+
// sets rewardToken to the predicted govToken address. When creating a new
|
|
325
|
+
// token, the address isn't known at input time, so callers pass ZERO_ADDR.
|
|
326
|
+
// Detect this case: rewardToken is zero BUT reward amounts are non-zero
|
|
327
|
+
// → substitute the predicted govToken address (matching frontend behavior).
|
|
328
|
+
if (isTokenCreation && predictedGovToken) {
|
|
329
|
+
const hasRewardAmounts = (r) => BigInt(r.creationReward) > 0n || BigInt(r.executionReward) > 0n || BigInt(r.voteRewardsCoefficient) > 0n;
|
|
330
|
+
for (const s of params.settingsParams.proposalSettings) {
|
|
331
|
+
if ((s.rewardsInfo.rewardToken === ZERO || s.rewardsInfo.rewardToken === "") &&
|
|
332
|
+
hasRewardAmounts(s.rewardsInfo)) {
|
|
333
|
+
s.rewardsInfo.rewardToken = predictedGovToken;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// Always wire predicted distribution + tokenSale into additionalProposalExecutors
|
|
338
|
+
const effectiveExecutors = [...params.settingsParams.additionalProposalExecutors];
|
|
339
|
+
if (predictedDistribution && !effectiveExecutors.includes(predictedDistribution))
|
|
340
|
+
effectiveExecutors.push(predictedDistribution);
|
|
341
|
+
if (predictedTokenSale && !effectiveExecutors.includes(predictedTokenSale))
|
|
342
|
+
effectiveExecutors.push(predictedTokenSale);
|
|
343
|
+
// Validate: after wiring, at least one governance asset must be non-zero
|
|
344
|
+
if (effectiveTokenAddress === ZERO && params.userKeeperParams.nftAddress === ZERO) {
|
|
345
|
+
return errorResult("GovUK requires at least one governance asset: set userKeeperParams.tokenAddress (existing ERC20), userKeeperParams.nftAddress (existing ERC721), or provide tokenParams.name to create a new token");
|
|
346
|
+
}
|
|
347
|
+
// ---------- auto-expand proposal settings (1 → 5) ----------
|
|
348
|
+
let expandedSettings = params.settingsParams.proposalSettings;
|
|
349
|
+
if (expandedSettings.length === 1) {
|
|
350
|
+
const base = expandedSettings[0];
|
|
351
|
+
const baseWithValidatorFallback = {
|
|
352
|
+
...base,
|
|
353
|
+
validatorsVote: true,
|
|
354
|
+
durationValidators: hasValidators ? base.durationValidators : base.duration,
|
|
355
|
+
quorumValidators: hasValidators ? base.quorumValidators : base.quorum,
|
|
356
|
+
};
|
|
357
|
+
const dpSettings = {
|
|
358
|
+
...baseWithValidatorFallback,
|
|
359
|
+
delegatedVotingAllowed: false,
|
|
360
|
+
earlyCompletion: false,
|
|
361
|
+
};
|
|
362
|
+
expandedSettings = [
|
|
363
|
+
baseWithValidatorFallback, // [0] default
|
|
364
|
+
baseWithValidatorFallback, // [1] internal
|
|
365
|
+
baseWithValidatorFallback, // [2] validators
|
|
366
|
+
dpSettings, // [3] distributionProposal
|
|
367
|
+
baseWithValidatorFallback, // [4] tokenSale
|
|
368
|
+
];
|
|
369
|
+
}
|
|
370
|
+
else if (expandedSettings.length !== 5) {
|
|
371
|
+
return errorResult(`proposalSettings must be 1 (auto-expand to 5) or exactly 5. Got ${expandedSettings.length}.`);
|
|
372
|
+
}
|
|
373
|
+
// ---------- auto-upload executorDescription to IPFS (when Pinata configured) ----------
|
|
374
|
+
// The frontend uploads each proposal settings object as JSON to IPFS and stores
|
|
375
|
+
// the CID as `executorDescription`. Without this, DAOs display broken metadata in
|
|
376
|
+
// the UI. We replicate the frontend's behavior: for each settings slot, if
|
|
377
|
+
// executorDescription is empty and Pinata is available, upload the settings JSON
|
|
378
|
+
// and set executorDescription = "ipfs://<cid>".
|
|
379
|
+
//
|
|
380
|
+
// The uploaded JSON shape matches the frontend exactly:
|
|
381
|
+
// { earlyCompletion, delegatedVotingAllowed, validatorsVote, duration, durationValidators,
|
|
382
|
+
// quorum, quorumValidators, minVotesForVoting, minVotesForCreating, executionDelay,
|
|
383
|
+
// rewardsInfo: { rewardToken, creationReward, executionReward, voteRewardsCoefficient } }
|
|
384
|
+
let pinataWarning = "";
|
|
385
|
+
if (ctx.config.pinataJwt) {
|
|
386
|
+
const pinata = new PinataClient(ctx.config.pinataJwt);
|
|
387
|
+
// We only auto-upload for default (index 0) and DP (index 3) settings,
|
|
388
|
+
// matching the frontend which shares the same CID across default/internal/validators/tokenSale
|
|
389
|
+
// and a separate CID for DP settings.
|
|
390
|
+
const settingsToUpload = [
|
|
391
|
+
{ index: 0, label: "default" },
|
|
392
|
+
{ index: 3, label: "distributionProposal" },
|
|
393
|
+
];
|
|
394
|
+
for (const { index, label } of settingsToUpload) {
|
|
395
|
+
const s = expandedSettings[index];
|
|
396
|
+
if (!s.executorDescription || s.executorDescription === "") {
|
|
397
|
+
try {
|
|
398
|
+
// Bug #13: Frontend includes minVotesForReadProposalDiscussion and
|
|
399
|
+
// minVotesForCreatingComment in the settings JSON uploaded to IPFS.
|
|
400
|
+
// Defaults from frontend: 0 (read) and 1e18 (comment = 1 token).
|
|
401
|
+
const settingsJson = {
|
|
402
|
+
earlyCompletion: s.earlyCompletion,
|
|
403
|
+
delegatedVotingAllowed: s.delegatedVotingAllowed,
|
|
404
|
+
validatorsVote: s.validatorsVote,
|
|
405
|
+
duration: s.duration,
|
|
406
|
+
durationValidators: s.durationValidators,
|
|
407
|
+
quorum: s.quorum,
|
|
408
|
+
quorumValidators: s.quorumValidators,
|
|
409
|
+
minVotesForVoting: s.minVotesForVoting,
|
|
410
|
+
minVotesForCreating: s.minVotesForCreating,
|
|
411
|
+
executionDelay: s.executionDelay,
|
|
412
|
+
rewardsInfo: {
|
|
413
|
+
rewardToken: s.rewardsInfo.rewardToken,
|
|
414
|
+
creationReward: s.rewardsInfo.creationReward,
|
|
415
|
+
executionReward: s.rewardsInfo.executionReward,
|
|
416
|
+
voteRewardsCoefficient: s.rewardsInfo.voteRewardsCoefficient,
|
|
417
|
+
},
|
|
418
|
+
minVotesForReadProposalDiscussion: "0",
|
|
419
|
+
minVotesForCreatingComment: "1000000000000000000",
|
|
420
|
+
};
|
|
421
|
+
const res = await pinata.pinJson(settingsJson, {
|
|
422
|
+
name: `dao-settings-${label}:${params.name.slice(0, 40)}`,
|
|
423
|
+
});
|
|
424
|
+
const cid = `ipfs://${res.cid}`;
|
|
425
|
+
// Apply the CID to the relevant slots (frontend shares CIDs across slots)
|
|
426
|
+
if (index === 0) {
|
|
427
|
+
// Default CID shared across: default(0), internal(1), validators(2), tokenSale(4)
|
|
428
|
+
expandedSettings[0] = { ...expandedSettings[0], executorDescription: cid };
|
|
429
|
+
expandedSettings[1] = { ...expandedSettings[1], executorDescription: cid };
|
|
430
|
+
expandedSettings[2] = { ...expandedSettings[2], executorDescription: cid };
|
|
431
|
+
expandedSettings[4] = { ...expandedSettings[4], executorDescription: cid };
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
// DP settings get their own CID
|
|
435
|
+
expandedSettings[3] = { ...expandedSettings[3], executorDescription: cid };
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
catch (err) {
|
|
439
|
+
pinataWarning += `\n⚠️ Failed to upload ${label} executorDescription: ${err instanceof Error ? err.message : String(err)}`;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
// Check if any executorDescription is missing — warn about UI impact
|
|
446
|
+
const missingDesc = expandedSettings.some((s) => !s.executorDescription || s.executorDescription === "");
|
|
447
|
+
if (missingDesc) {
|
|
448
|
+
pinataWarning =
|
|
449
|
+
"\n⚠️ DEXE_PINATA_JWT not configured — executorDescription fields are empty. " +
|
|
450
|
+
"DAOs created without executorDescription will display broken proposal settings in the frontend UI. " +
|
|
451
|
+
"Set DEXE_PINATA_JWT to enable auto-upload.";
|
|
452
|
+
}
|
|
453
|
+
}
|
|
189
454
|
// ---------- build the tuple arg ----------
|
|
190
455
|
const paramsTuple = [
|
|
191
456
|
// settingsParams
|
|
192
457
|
[
|
|
193
|
-
|
|
458
|
+
expandedSettings.map((s) => [
|
|
194
459
|
s.earlyCompletion,
|
|
195
460
|
s.delegatedVotingAllowed,
|
|
196
461
|
s.validatorsVote,
|
|
@@ -209,23 +474,23 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
209
474
|
],
|
|
210
475
|
s.executorDescription,
|
|
211
476
|
]),
|
|
212
|
-
|
|
477
|
+
effectiveExecutors,
|
|
213
478
|
],
|
|
214
479
|
// validatorsParams
|
|
215
480
|
[
|
|
216
|
-
|
|
217
|
-
|
|
481
|
+
validatorsParams.name,
|
|
482
|
+
validatorsParams.symbol,
|
|
218
483
|
[
|
|
219
|
-
BigInt(
|
|
220
|
-
BigInt(
|
|
221
|
-
BigInt(
|
|
484
|
+
BigInt(validatorsParams.proposalSettings.duration),
|
|
485
|
+
BigInt(validatorsParams.proposalSettings.executionDelay),
|
|
486
|
+
BigInt(validatorsParams.proposalSettings.quorum),
|
|
222
487
|
],
|
|
223
|
-
|
|
224
|
-
|
|
488
|
+
validatorsParams.validators,
|
|
489
|
+
validatorsParams.balances.map((b) => BigInt(b)),
|
|
225
490
|
],
|
|
226
491
|
// userKeeperParams
|
|
227
492
|
[
|
|
228
|
-
|
|
493
|
+
effectiveTokenAddress,
|
|
229
494
|
params.userKeeperParams.nftAddress,
|
|
230
495
|
BigInt(params.userKeeperParams.individualPower),
|
|
231
496
|
BigInt(params.userKeeperParams.nftsTotalSupply),
|
|
@@ -242,12 +507,12 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
242
507
|
// votePowerParams
|
|
243
508
|
[
|
|
244
509
|
VOTE_POWER_TYPES.indexOf(params.votePowerParams.voteType), // uint8 enum
|
|
245
|
-
|
|
510
|
+
votePowerInitData,
|
|
246
511
|
params.votePowerParams.presetAddress,
|
|
247
512
|
],
|
|
248
513
|
params.verifier,
|
|
249
514
|
params.onlyBABTHolders,
|
|
250
|
-
params.descriptionURL,
|
|
515
|
+
params.descriptionURL.replace(/^ipfs:\/\//, ""),
|
|
251
516
|
params.name,
|
|
252
517
|
];
|
|
253
518
|
// ---------- get ABI (artifact > fallback) ----------
|
|
@@ -297,26 +562,11 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
297
562
|
catch (err) {
|
|
298
563
|
return errorResult(`deployGovPool encoding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
299
564
|
}
|
|
300
|
-
|
|
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")
|
|
565
|
+
let note = ifaceSource.includes("fallback")
|
|
318
566
|
? "⚠️ Using fallback tuple ABI. For guaranteed parity, run dexe_compile to populate artifacts."
|
|
319
567
|
: "Encoded against compiled artifact — strict parity with deployed PoolFactory.";
|
|
568
|
+
if (pinataWarning)
|
|
569
|
+
note += pinataWarning;
|
|
320
570
|
return payloadResult(payload, { predictedGovPool, note });
|
|
321
571
|
});
|
|
322
572
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daoDeploy.js","sourceRoot":"","sources":["../../src/tools/daoDeploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daoDeploy.js","sourceRoot":"","sources":["../../src/tools/daoDeploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { ToolContext } from "./context.js";
|
|
3
|
+
import type { TxPayload } from "../lib/calldata.js";
|
|
4
|
+
import { RpcProvider } from "../rpc.js";
|
|
5
|
+
import { SignerManager } from "../lib/signer.js";
|
|
6
|
+
interface FlowStep {
|
|
7
|
+
label: string;
|
|
8
|
+
skipped: boolean;
|
|
9
|
+
reason?: string;
|
|
10
|
+
txHash?: string;
|
|
11
|
+
payload?: TxPayload;
|
|
12
|
+
}
|
|
13
|
+
export declare function sendOrCollect(signer: SignerManager, payloads: TxPayload[], opts?: {
|
|
14
|
+
dryRun?: boolean;
|
|
15
|
+
}): Promise<{
|
|
16
|
+
mode: "executed" | "payloads" | "dryRun";
|
|
17
|
+
steps: FlowStep[];
|
|
18
|
+
}>;
|
|
19
|
+
export interface ProposalCreateInput {
|
|
20
|
+
govPool: string;
|
|
21
|
+
proposalType?: "modify_dao_profile" | "custom";
|
|
22
|
+
title: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
newDaoName?: string;
|
|
25
|
+
newDaoDescription?: string;
|
|
26
|
+
newWebsiteUrl?: string;
|
|
27
|
+
newAvatarCID?: string;
|
|
28
|
+
newAvatarFileName?: string;
|
|
29
|
+
newSocialLinks?: [string, string][];
|
|
30
|
+
actionsOnFor?: {
|
|
31
|
+
executor: string;
|
|
32
|
+
value?: string;
|
|
33
|
+
data: string;
|
|
34
|
+
}[];
|
|
35
|
+
category?: string;
|
|
36
|
+
proposalMetadataExtra?: Record<string, unknown>;
|
|
37
|
+
voteAmount?: string;
|
|
38
|
+
voteNftIds?: string[];
|
|
39
|
+
user?: string;
|
|
40
|
+
/** When true, return ordered TxPayloads even if a signer is configured. */
|
|
41
|
+
dryRun?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface ProposalCreateDeps {
|
|
44
|
+
ctx: ToolContext;
|
|
45
|
+
signer: SignerManager;
|
|
46
|
+
rpc: RpcProvider;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Pure runner behind `dexe_proposal_create`. Exposed for composite tools
|
|
50
|
+
* (e.g. `dexe_otc_dao_open_sale`) that build their own `actionsOnFor` and
|
|
51
|
+
* want the same prereq + IPFS + multicall flow without going through the
|
|
52
|
+
* MCP tool layer.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runProposalCreate(inputRaw: ProposalCreateInput, deps: ProposalCreateDeps): Promise<{
|
|
55
|
+
content: {
|
|
56
|
+
type: "text";
|
|
57
|
+
text: string;
|
|
58
|
+
}[];
|
|
59
|
+
}>;
|
|
60
|
+
export declare function registerFlowTools(server: McpServer, ctx: ToolContext, signer: SignerManager): void;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAkCjD,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAyGD,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,EAAE,EACrB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAqC1E;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,kBAAkB;;;;;GAiMzB;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CAwMN"}
|