dexe-mcp 0.9.0 → 0.11.1
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 +109 -20
- package/README.md +6 -6
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -0
- package/dist/config.js.map +1 -1
- package/dist/env/schema.d.ts +21 -0
- package/dist/env/schema.d.ts.map +1 -1
- package/dist/env/schema.js +21 -0
- package/dist/env/schema.js.map +1 -1
- package/dist/lib/controllingVoters.d.ts +44 -0
- package/dist/lib/controllingVoters.d.ts.map +1 -0
- package/dist/lib/controllingVoters.js +152 -0
- package/dist/lib/controllingVoters.js.map +1 -0
- package/dist/lib/dangerousSelectors.d.ts +1 -1
- package/dist/lib/dangerousSelectors.d.ts.map +1 -1
- package/dist/lib/dangerousSelectors.js +12 -22
- package/dist/lib/dangerousSelectors.js.map +1 -1
- package/dist/lib/decoders.d.ts +4 -4
- package/dist/lib/decoders.d.ts.map +1 -1
- package/dist/lib/decoders.js +2 -2
- package/dist/lib/govProposalView.d.ts +37 -0
- package/dist/lib/govProposalView.d.ts.map +1 -0
- package/dist/lib/govProposalView.js +42 -0
- package/dist/lib/govProposalView.js.map +1 -0
- package/dist/lib/protocolAdvisories.d.ts +12 -13
- package/dist/lib/protocolAdvisories.d.ts.map +1 -1
- package/dist/lib/protocolAdvisories.js +23 -16
- package/dist/lib/protocolAdvisories.js.map +1 -1
- package/dist/lib/quorumRisk.d.ts +92 -0
- package/dist/lib/quorumRisk.d.ts.map +1 -0
- package/dist/lib/quorumRisk.js +159 -0
- package/dist/lib/quorumRisk.js.map +1 -0
- package/dist/lib/time.d.ts +16 -0
- package/dist/lib/time.d.ts.map +1 -0
- package/dist/lib/time.js +24 -0
- package/dist/lib/time.js.map +1 -0
- package/dist/tools/daoDeploy.d.ts.map +1 -1
- package/dist/tools/daoDeploy.js +32 -0
- package/dist/tools/daoDeploy.js.map +1 -1
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +90 -1
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/gov.js +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/otc.d.ts +20 -0
- package/dist/tools/otc.d.ts.map +1 -1
- package/dist/tools/otc.js +191 -58
- package/dist/tools/otc.js.map +1 -1
- package/dist/tools/proposalBuild.d.ts.map +1 -1
- package/dist/tools/proposalBuild.js +19 -5
- package/dist/tools/proposalBuild.js.map +1 -1
- package/dist/tools/proposalBuildComplex.d.ts.map +1 -1
- package/dist/tools/proposalBuildComplex.js +12 -1
- package/dist/tools/proposalBuildComplex.js.map +1 -1
- package/dist/tools/proposalBuildMore.d.ts.map +1 -1
- package/dist/tools/proposalBuildMore.js +8 -5
- package/dist/tools/proposalBuildMore.js.map +1 -1
- package/dist/tools/risk.d.ts +4 -0
- package/dist/tools/risk.d.ts.map +1 -0
- package/dist/tools/risk.js +255 -0
- package/dist/tools/risk.js.map +1 -0
- package/dist/tools/subgraph.d.ts.map +1 -1
- package/dist/tools/subgraph.js +22 -15
- package/dist/tools/subgraph.js.map +1 -1
- package/dist/tools/voteBuild.d.ts.map +1 -1
- package/dist/tools/voteBuild.js +16 -4
- package/dist/tools/voteBuild.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { id, Interface } from "ethers";
|
|
2
|
+
import { selectorOf } from "./dangerousSelectors.js";
|
|
3
|
+
/** Worst (most dangerous) of a set of risk levels. Empty → SAFE. */
|
|
4
|
+
export function worstRisk(...levels) {
|
|
5
|
+
if (levels.includes("DANGER"))
|
|
6
|
+
return "DANGER";
|
|
7
|
+
if (levels.includes("CAUTION"))
|
|
8
|
+
return "CAUTION";
|
|
9
|
+
return "SAFE";
|
|
10
|
+
}
|
|
11
|
+
// ─── quorum units ──────────────────────────────────────────────────────────
|
|
12
|
+
// DeXe stores quorum as a fraction of PERCENTAGE_100 = 1e27 (so 50% = 5e26).
|
|
13
|
+
// The on-chain getProposalRequiredQuorum(id) instead returns an ABSOLUTE
|
|
14
|
+
// token-weight (pct × totalVoteWeight already applied) — never pass that here.
|
|
15
|
+
const PERCENTAGE_100 = 10n ** 27n;
|
|
16
|
+
/** Convert a raw quorum setting (pct × 1e25) to a human percentage. 5e26 → 50. */
|
|
17
|
+
export function quorumPctFromRaw(raw) {
|
|
18
|
+
let v;
|
|
19
|
+
try {
|
|
20
|
+
v = typeof raw === "bigint" ? raw : BigInt(raw);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return NaN;
|
|
24
|
+
}
|
|
25
|
+
// 2-decimal precision via integer math (avoids float drift on 1e27-scale ints).
|
|
26
|
+
return Number((v * 10000n) / PERCENTAGE_100) / 100;
|
|
27
|
+
}
|
|
28
|
+
/** SAFE ≥ floor; CAUTION ≥ 0.8×floor; DANGER below. NaN → DANGER (unparseable). */
|
|
29
|
+
export function judgeQuorum(pct, floorPct) {
|
|
30
|
+
if (!Number.isFinite(pct))
|
|
31
|
+
return "DANGER";
|
|
32
|
+
if (pct >= floorPct)
|
|
33
|
+
return "SAFE";
|
|
34
|
+
if (pct >= 0.8 * floorPct)
|
|
35
|
+
return "CAUTION";
|
|
36
|
+
return "DANGER";
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Value-moving / allowance-granting selectors. ERC20 `transferFrom` and ERC721
|
|
40
|
+
* `transferFrom` share selector 0x23b872dd → classified as `transferFrom`; the
|
|
41
|
+
* ERC721-only `safeTransferFrom` overloads classify as `nftTransfer`.
|
|
42
|
+
*/
|
|
43
|
+
const TREASURY_SELECTORS = new Map([
|
|
44
|
+
{ kind: "approve", sig: "approve(address,uint256)", recipientArg: 0, amountArg: 1 },
|
|
45
|
+
{ kind: "transfer", sig: "transfer(address,uint256)", recipientArg: 0, amountArg: 1 },
|
|
46
|
+
{ kind: "transferFrom", sig: "transferFrom(address,address,uint256)", recipientArg: 1, amountArg: 2 },
|
|
47
|
+
{ kind: "increaseAllowance", sig: "increaseAllowance(address,uint256)", recipientArg: 0, amountArg: 1 },
|
|
48
|
+
{ kind: "nftTransfer", sig: "safeTransferFrom(address,address,uint256)", recipientArg: 1, amountArg: 2 },
|
|
49
|
+
{ kind: "nftTransfer", sig: "safeTransferFrom(address,address,uint256,bytes)", recipientArg: 1, amountArg: 2 },
|
|
50
|
+
].map((e) => [id(e.sig).slice(0, 10).toLowerCase(), e]));
|
|
51
|
+
/** Decimal selectors of every treasury-touching function (for docs/tests). */
|
|
52
|
+
export function treasurySelectors() {
|
|
53
|
+
return [...TREASURY_SELECTORS.keys()];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Scan a proposal's actions and report every one that moves treasury value or
|
|
57
|
+
* grants an allowance. Best-effort recipient/amount decode — NEVER throws.
|
|
58
|
+
* A single action can yield two hits (native value + an ERC20 call).
|
|
59
|
+
*/
|
|
60
|
+
export function classifyTreasuryActions(actions) {
|
|
61
|
+
const hits = [];
|
|
62
|
+
actions.forEach((a, index) => {
|
|
63
|
+
const sel = selectorOf(a.data);
|
|
64
|
+
// Native coin transfer (value > 0) is a treasury movement regardless of data.
|
|
65
|
+
try {
|
|
66
|
+
if (a.value && BigInt(a.value) > 0n) {
|
|
67
|
+
hits.push({
|
|
68
|
+
index,
|
|
69
|
+
executor: a.executor,
|
|
70
|
+
selector: sel,
|
|
71
|
+
kind: "nativeValue",
|
|
72
|
+
recipient: a.executor,
|
|
73
|
+
amount: String(a.value),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
/* non-numeric value — ignore */
|
|
79
|
+
}
|
|
80
|
+
if (sel === null)
|
|
81
|
+
return;
|
|
82
|
+
const match = TREASURY_SELECTORS.get(sel);
|
|
83
|
+
if (!match)
|
|
84
|
+
return;
|
|
85
|
+
let recipient = null;
|
|
86
|
+
let amount = null;
|
|
87
|
+
try {
|
|
88
|
+
const iface = new Interface([`function ${match.sig}`]);
|
|
89
|
+
const decoded = iface.decodeFunctionData(match.sig, a.data);
|
|
90
|
+
recipient = String(decoded[match.recipientArg]);
|
|
91
|
+
amount = decoded[match.amountArg].toString();
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* undecodable — leave null, never throw */
|
|
95
|
+
}
|
|
96
|
+
hits.push({ index, executor: a.executor, selector: sel, kind: match.kind, recipient, amount });
|
|
97
|
+
});
|
|
98
|
+
return hits;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Estimate the share of token supply required to meet a proposal's quorum.
|
|
102
|
+
* Prefers the on-chain `requiredWeight` (getProposalRequiredQuorum); otherwise
|
|
103
|
+
* derives it from `quorumPct × totalVoteWeight`. When the percentage cannot be
|
|
104
|
+
* computed the verdict is CAUTION (unknown is never SAFE).
|
|
105
|
+
*/
|
|
106
|
+
export function quorumConcentration(args) {
|
|
107
|
+
const floorPct = args.floorPct ?? 50;
|
|
108
|
+
let requiredWeight = args.requiredWeight ?? null;
|
|
109
|
+
if (requiredWeight === null && args.totalVoteWeight !== undefined && Number.isFinite(args.quorumPct)) {
|
|
110
|
+
// quorumPct% of totalVoteWeight, 2-decimal precision via integer math.
|
|
111
|
+
const bps = BigInt(Math.round(args.quorumPct * 100)); // pct → basis points
|
|
112
|
+
requiredWeight = (args.totalVoteWeight * bps) / 10000n;
|
|
113
|
+
}
|
|
114
|
+
const totalSupply = args.totalSupply ?? null;
|
|
115
|
+
let pctOfSupplyForQuorum = null;
|
|
116
|
+
if (requiredWeight !== null && totalSupply !== null && totalSupply > 0n) {
|
|
117
|
+
pctOfSupplyForQuorum = Number((requiredWeight * 10000n) / totalSupply) / 100;
|
|
118
|
+
}
|
|
119
|
+
const verdict = pctOfSupplyForQuorum === null ? "CAUTION" : judgeQuorum(pctOfSupplyForQuorum, floorPct);
|
|
120
|
+
return { requiredWeight, totalSupply, pctOfSupplyForQuorum, verdict };
|
|
121
|
+
}
|
|
122
|
+
// ─── advisory strings (tone mirrors protocolAdvisories.ts) ────────────────────
|
|
123
|
+
const ADVISORY_TAG = "[governance-safety advisory]";
|
|
124
|
+
/** Flag a below-floor quorum SETTING (deploy / change-voting-settings). */
|
|
125
|
+
export function lowQuorumAdvisory(pct, floorPct) {
|
|
126
|
+
const shown = Number.isFinite(pct) ? `${pct}%` : "unparseable";
|
|
127
|
+
return (`⚠ quorum=${shown} is below the ${floorPct}% safe floor (DEXE_MIN_SAFE_QUORUM_PCT). ` +
|
|
128
|
+
`Low quorum reduces the participation required to pass a proposal. For a DAO that holds ` +
|
|
129
|
+
`treasury assets, set quorum ≥50% (51%+ recommended) and verify stakeholder participation ` +
|
|
130
|
+
`before executing treasury-moving proposals; the safe value is DAO-specific. ${ADVISORY_TAG}`);
|
|
131
|
+
}
|
|
132
|
+
/** Flag a treasury-touching proposal at build time (static, no RPC needed). */
|
|
133
|
+
export const TREASURY_RISK_ADVISORY = `⚠ This proposal moves treasury value (ERC20 approve/transfer/transferFrom or native value). ` +
|
|
134
|
+
`Confirm the DAO's quorum is adequate (≥50%) and that key stakeholders have participated before ` +
|
|
135
|
+
`executing. Run dexe_proposal_risk_assess for a full readout. ${ADVISORY_TAG}`;
|
|
136
|
+
/**
|
|
137
|
+
* Build-time advisory for any builder whose actions move treasury value.
|
|
138
|
+
* Returns the static advisory string when there is at least one treasury hit
|
|
139
|
+
* and the guard is enabled, else null. Build-time is WARN-only — it never
|
|
140
|
+
* blocks (refusing would just route users to hand-crafted custom_abi).
|
|
141
|
+
*/
|
|
142
|
+
export function buildTimeTreasuryAdvisory(actions, guard) {
|
|
143
|
+
if (guard === "off")
|
|
144
|
+
return null;
|
|
145
|
+
return classifyTreasuryActions(actions).length > 0 ? TREASURY_RISK_ADVISORY : null;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Advisory message for the vote_and_execute treasury alert. `reasons` are the
|
|
149
|
+
* failing checks (below-floor quorum, no controlling-member participation).
|
|
150
|
+
* Advisory ONLY — the guard never blocks; it surfaces this and proceeds. The
|
|
151
|
+
* durable control is an adequate on-chain quorum threshold configured per DAO.
|
|
152
|
+
*/
|
|
153
|
+
export function treasuryExecuteAdvisory(reasons) {
|
|
154
|
+
return (`⚠ Treasury-safety advisory: this proposal moves treasury value AND ${reasons.join("; ")}. ` +
|
|
155
|
+
`Verify adequate quorum and stakeholder participation before executing — ` +
|
|
156
|
+
`responsibility for executing rests with whoever broadcasts it. Run dexe_proposal_risk_assess for a full ` +
|
|
157
|
+
`readout. ${ADVISORY_TAG}`);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=quorumRisk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quorumRisk.js","sourceRoot":"","sources":["../../src/lib/quorumRisk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time formatting helpers for on-chain timestamps.
|
|
3
|
+
*
|
|
4
|
+
* Contracts store times as Unix seconds (UTC-based, timezone-agnostic). Raw
|
|
5
|
+
* seconds are unreadable to humans, so read tools should surface a companion
|
|
6
|
+
* UTC string alongside the raw value to avoid any local-timezone confusion.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Format a Unix timestamp (seconds) as an unambiguous UTC string.
|
|
10
|
+
*
|
|
11
|
+
* @example unixToUtc(1783100759) // "2026-07-03 17:45:59 UTC"
|
|
12
|
+
* @returns "" for zero/invalid input — `0` is the contract's "unset" sentinel
|
|
13
|
+
* (e.g. no vesting), and an empty string reads better than "1970-...".
|
|
14
|
+
*/
|
|
15
|
+
export declare function unixToUtc(sec: bigint | number | string): string;
|
|
16
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/lib/time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAO/D"}
|
package/dist/lib/time.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time formatting helpers for on-chain timestamps.
|
|
3
|
+
*
|
|
4
|
+
* Contracts store times as Unix seconds (UTC-based, timezone-agnostic). Raw
|
|
5
|
+
* seconds are unreadable to humans, so read tools should surface a companion
|
|
6
|
+
* UTC string alongside the raw value to avoid any local-timezone confusion.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Format a Unix timestamp (seconds) as an unambiguous UTC string.
|
|
10
|
+
*
|
|
11
|
+
* @example unixToUtc(1783100759) // "2026-07-03 17:45:59 UTC"
|
|
12
|
+
* @returns "" for zero/invalid input — `0` is the contract's "unset" sentinel
|
|
13
|
+
* (e.g. no vesting), and an empty string reads better than "1970-...".
|
|
14
|
+
*/
|
|
15
|
+
export function unixToUtc(sec) {
|
|
16
|
+
const n = Number(sec);
|
|
17
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
18
|
+
return "";
|
|
19
|
+
return new Date(n * 1000)
|
|
20
|
+
.toISOString()
|
|
21
|
+
.replace("T", " ")
|
|
22
|
+
.replace(/\.\d{3}Z$/, " UTC");
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/lib/time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAA6B;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;SACtB,WAAW,EAAE;SACb,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daoDeploy.d.ts","sourceRoot":"","sources":["../../src/tools/daoDeploy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"daoDeploy.d.ts","sourceRoot":"","sources":["../../src/tools/daoDeploy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA2JhD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAGhF"}
|
package/dist/tools/daoDeploy.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ArtifactsMissingError } from "../artifacts.js";
|
|
|
6
6
|
import { AddressBook, CONTRACT_NAMES } from "../lib/addresses.js";
|
|
7
7
|
import { RpcProvider } from "../rpc.js";
|
|
8
8
|
import { PinataClient } from "../lib/ipfs.js";
|
|
9
|
+
import { quorumPctFromRaw, judgeQuorum } from "../lib/quorumRisk.js";
|
|
9
10
|
/**
|
|
10
11
|
* Phase 5 — deploy a new DAO via `PoolFactory.deployGovPool(GovPoolDeployParams)`.
|
|
11
12
|
*
|
|
@@ -397,6 +398,35 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
397
398
|
else if (expandedSettings.length !== 5) {
|
|
398
399
|
return errorResult(`proposalSettings must be 1 (auto-expand to 5) or exactly 5. Got ${expandedSettings.length}.`);
|
|
399
400
|
}
|
|
401
|
+
// ---------- treasury-safety advisory: quorum floor (Layer 2) ----------
|
|
402
|
+
// Low quorum reduces the participation required to pass a proposal — a
|
|
403
|
+
// governance-safety risk for a DAO that will hold treasury assets. Flag it
|
|
404
|
+
// at birth so the operator sets an adequate quorum.
|
|
405
|
+
let quorumWarning = "";
|
|
406
|
+
if (ctx.config.treasuryGuard !== "off") {
|
|
407
|
+
const floor = ctx.config.minSafeQuorumPct;
|
|
408
|
+
const showPct = (p) => (Number.isFinite(p) ? `${p}%` : "unparseable");
|
|
409
|
+
const lowQuorum = [];
|
|
410
|
+
expandedSettings.forEach((s, i) => {
|
|
411
|
+
const pct = quorumPctFromRaw(s.quorum);
|
|
412
|
+
if (judgeQuorum(pct, floor) !== "SAFE") {
|
|
413
|
+
lowQuorum.push(`proposalSettings[${i}] quorum=${showPct(pct)}`);
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
const vpct = quorumPctFromRaw(validatorsParams.proposalSettings.quorum);
|
|
417
|
+
if (judgeQuorum(vpct, floor) !== "SAFE") {
|
|
418
|
+
lowQuorum.push(`validatorsParams quorum=${showPct(vpct)}`);
|
|
419
|
+
}
|
|
420
|
+
if (lowQuorum.length > 0) {
|
|
421
|
+
const detail = `Quorum below the ${floor}% safe floor (DEXE_MIN_SAFE_QUORUM_PCT): ${lowQuorum.join(", ")}. ` +
|
|
422
|
+
`Low quorum reduces the participation required to pass a proposal; for a DAO that will hold ` +
|
|
423
|
+
`treasury assets, set quorum ≥50% (51%+ recommended). The safe value is DAO-specific and must ` +
|
|
424
|
+
`be verified. [governance-safety advisory]`;
|
|
425
|
+
// Advisory only — never blocks the deploy. The durable control is an
|
|
426
|
+
// adequate on-chain quorum threshold configured per DAO.
|
|
427
|
+
quorumWarning = `\n⚠️ ${detail}`;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
400
430
|
// ---------- auto-upload executorDescription to IPFS (when Pinata configured) ----------
|
|
401
431
|
// The frontend uploads each proposal settings object as JSON to IPFS and stores
|
|
402
432
|
// the CID as `executorDescription`. Without this, DAOs display broken metadata in
|
|
@@ -594,6 +624,8 @@ function registerBuildDeploy(server, ctx, rpc) {
|
|
|
594
624
|
: "Encoded against compiled artifact — strict parity with deployed PoolFactory.";
|
|
595
625
|
if (pinataWarning)
|
|
596
626
|
note += pinataWarning;
|
|
627
|
+
if (quorumWarning)
|
|
628
|
+
note += quorumWarning;
|
|
597
629
|
return payloadResult(payload, { predictedGovPool, note });
|
|
598
630
|
});
|
|
599
631
|
}
|
|
@@ -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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"}
|
package/dist/tools/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;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;
|
|
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;AAmDjD,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;AAoID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAQnF;AAyGD,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS,EAAE,EACrB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC,CAyD1E;AAID,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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;;;;;GAiRzB;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,GACpB,IAAI,CA6ON"}
|
package/dist/tools/flow.js
CHANGED
|
@@ -7,6 +7,9 @@ import { markdownToSlate } from "../lib/markdownToSlate.js";
|
|
|
7
7
|
import { resolveChain } from "../config.js";
|
|
8
8
|
import { runBroadcastGuards } from "../lib/broadcastGuards.js";
|
|
9
9
|
import { AddressBook, CONTRACT_NAMES } from "../lib/addresses.js";
|
|
10
|
+
import { classifyTreasuryActions, quorumPctFromRaw, judgeQuorum, treasuryExecuteAdvisory, TREASURY_RISK_ADVISORY, } from "../lib/quorumRisk.js";
|
|
11
|
+
import { GET_PROPOSALS_FRAGMENT, decodeProposalView } from "../lib/govProposalView.js";
|
|
12
|
+
import { resolveControllingHoldersVotedFor } from "../lib/controllingVoters.js";
|
|
10
13
|
// ---------- ABI fragments ----------
|
|
11
14
|
const ERC20_ABI = new Interface([
|
|
12
15
|
"function balanceOf(address) view returns (uint256)",
|
|
@@ -23,6 +26,10 @@ const GOV_POOL_ABI = new Interface([
|
|
|
23
26
|
"function deposit(uint256 amount, uint256[] nftIds) payable",
|
|
24
27
|
"function editDescriptionURL(string newDescriptionURL)",
|
|
25
28
|
"function getProposalState(uint256 proposalId) view returns (uint8)",
|
|
29
|
+
"function getProposalRequiredQuorum(uint256 proposalId) view returns (uint256)",
|
|
30
|
+
// Full IGovPool.ProposalView[] — lets the execute-gate read a proposal's
|
|
31
|
+
// on-chain actions + its own quorum setting without compiled artifacts.
|
|
32
|
+
GET_PROPOSALS_FRAGMENT,
|
|
26
33
|
]);
|
|
27
34
|
const USER_KEEPER_ABI = new Interface([
|
|
28
35
|
"function tokenAddress() view returns (address)",
|
|
@@ -52,6 +59,72 @@ function makeTxPayload(to, iface, method, args, chainId, description, value) {
|
|
|
52
59
|
description,
|
|
53
60
|
};
|
|
54
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Read a proposal's on-chain `actionsOnFor` + its own quorum setting and judge
|
|
64
|
+
* treasury-safety risk. Pure-ish: one getProposals read, then quorumRisk logic.
|
|
65
|
+
* Returns `{ error }` when the read fails (caller fails soft — never bricks
|
|
66
|
+
* execute on an RPC hiccup).
|
|
67
|
+
*/
|
|
68
|
+
async function assessExecuteRisk(provider, govPool, proposalId, cfg) {
|
|
69
|
+
let value;
|
|
70
|
+
try {
|
|
71
|
+
const [res] = await multicall(provider, [
|
|
72
|
+
{ target: govPool, iface: GOV_POOL_ABI, method: "getProposals", args: [proposalId - 1, 1] },
|
|
73
|
+
]);
|
|
74
|
+
if (!res?.success)
|
|
75
|
+
return { error: res?.error ?? "getProposals reverted" };
|
|
76
|
+
value = res.value;
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
return { error: e instanceof Error ? e.message : String(e) };
|
|
80
|
+
}
|
|
81
|
+
const arr = value;
|
|
82
|
+
if (!Array.isArray(arr) || arr.length === 0)
|
|
83
|
+
return { error: `Proposal ${proposalId} not found` };
|
|
84
|
+
const decoded = decodeProposalView(arr[0]);
|
|
85
|
+
if (!decoded)
|
|
86
|
+
return { error: "failed to decode proposal view" };
|
|
87
|
+
const floor = cfg.minSafeQuorumPct;
|
|
88
|
+
const quorumPct = quorumPctFromRaw(decoded.quorumRaw);
|
|
89
|
+
const belowFloor = judgeQuorum(quorumPct, floor) !== "SAFE";
|
|
90
|
+
const treasuryHits = classifyTreasuryActions(decoded.actionsOnFor);
|
|
91
|
+
const reasons = [];
|
|
92
|
+
if (belowFloor) {
|
|
93
|
+
reasons.push(`the proposal's quorum=${Number.isFinite(quorumPct) ? `${quorumPct}%` : "unparseable"} is below the ${floor}% safe floor (DEXE_MIN_SAFE_QUORUM_PCT)`);
|
|
94
|
+
}
|
|
95
|
+
// Founder/validator participation signal. Subgraph/mainnet-only; resolves
|
|
96
|
+
// to null off-chain. Informational alert only — a confirmed `false` (set
|
|
97
|
+
// enumerated, nobody voted For) adds an advisory reason but never blocks.
|
|
98
|
+
const controllingHoldersVotedFor = await resolveControllingHoldersVotedFor({
|
|
99
|
+
provider,
|
|
100
|
+
govPool,
|
|
101
|
+
proposalId,
|
|
102
|
+
cfg,
|
|
103
|
+
chainId: cfg.chainId,
|
|
104
|
+
});
|
|
105
|
+
if (treasuryHits.length > 0 && controllingHoldersVotedFor === false) {
|
|
106
|
+
reasons.push("no controlling member (validator / top token-holder) voted For — possible low-participation capture");
|
|
107
|
+
}
|
|
108
|
+
return { treasuryHits, quorumPct, belowFloor, controllingHoldersVotedFor, reasons };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Compute a treasury-safety advisory string for an execute step, or null when
|
|
112
|
+
* there's nothing to say. ADVISORY ONLY — never blocks; it surfaces the note and
|
|
113
|
+
* proceeds. Fail-soft on read errors. The durable control is an adequate on-chain
|
|
114
|
+
* quorum threshold configured per DAO.
|
|
115
|
+
*/
|
|
116
|
+
async function treasuryExecuteGuard(args) {
|
|
117
|
+
if (args.cfg.treasuryGuard === "off")
|
|
118
|
+
return null;
|
|
119
|
+
const risk = await assessExecuteRisk(args.provider, args.govPool, args.proposalId, args.cfg);
|
|
120
|
+
if ("error" in risk)
|
|
121
|
+
return `⚠ treasury-risk pre-check skipped: ${risk.error}`;
|
|
122
|
+
if (risk.treasuryHits.length === 0)
|
|
123
|
+
return null;
|
|
124
|
+
// Treasury-touching with a failing check (low quorum or no controlling
|
|
125
|
+
// participation) → the pointed advisory; otherwise the static one.
|
|
126
|
+
return risk.reasons.length > 0 ? treasuryExecuteAdvisory(risk.reasons) : TREASURY_RISK_ADVISORY;
|
|
127
|
+
}
|
|
55
128
|
const POOL_REGISTRY_ISGOV_ABI = ["function isGovPool(address) view returns (bool)"];
|
|
56
129
|
/**
|
|
57
130
|
* W10 refusal decision: a definitive `isGovPool === false` aborts the flow; a
|
|
@@ -548,6 +621,12 @@ export function registerFlowTools(server, ctx, signer) {
|
|
|
548
621
|
// earlyCompletion, the proposal lands directly in Locked, so we must
|
|
549
622
|
// recognize it here as executable.
|
|
550
623
|
if ((stateNum === 4 || stateNum === 5 || stateNum === 6) && input.autoExecute) {
|
|
624
|
+
const treasuryRisk = await treasuryExecuteGuard({
|
|
625
|
+
provider,
|
|
626
|
+
govPool,
|
|
627
|
+
proposalId,
|
|
628
|
+
cfg: ctx.config,
|
|
629
|
+
});
|
|
551
630
|
const execResult = await sendOrCollect(signer, [
|
|
552
631
|
makeTxPayload(govPool, GOV_POOL_ABI, "execute", [proposalId], chainId, `GovPool.execute(${proposalId})`),
|
|
553
632
|
], { dryRun: input.dryRun, chainId });
|
|
@@ -555,6 +634,7 @@ export function registerFlowTools(server, ctx, signer) {
|
|
|
555
634
|
mode: execResult.mode,
|
|
556
635
|
proposalId,
|
|
557
636
|
proposalStateBefore: stateName,
|
|
637
|
+
...(treasuryRisk ? { treasuryRisk } : {}),
|
|
558
638
|
steps: [
|
|
559
639
|
{ label: "GovPool.vote", skipped: true, reason: `Proposal already in "${stateName}" — no vote needed` },
|
|
560
640
|
...execResult.steps,
|
|
@@ -610,7 +690,16 @@ export function registerFlowTools(server, ctx, signer) {
|
|
|
610
690
|
const postState = Number(postRes[0].value);
|
|
611
691
|
const postStateName = STATE_NAMES[postState] ?? `Unknown(${postState})`;
|
|
612
692
|
if (postState === 4 || postState === 5) {
|
|
613
|
-
// SucceededFor or SucceededAgainst — execute
|
|
693
|
+
// SucceededFor or SucceededAgainst — execute (attach treasury advisory).
|
|
694
|
+
const treasuryRisk = await treasuryExecuteGuard({
|
|
695
|
+
provider,
|
|
696
|
+
govPool,
|
|
697
|
+
proposalId,
|
|
698
|
+
cfg: ctx.config,
|
|
699
|
+
});
|
|
700
|
+
if (treasuryRisk) {
|
|
701
|
+
skippedSteps.push({ label: "treasury-risk", skipped: true, reason: treasuryRisk });
|
|
702
|
+
}
|
|
614
703
|
const execResult = await sendOrCollect(signer, [
|
|
615
704
|
makeTxPayload(govPool, GOV_POOL_ABI, "execute", [proposalId], chainId, `GovPool.execute(${proposalId})`),
|
|
616
705
|
], { dryRun: input.dryRun, chainId });
|