dexe-mcp 0.7.1 → 0.8.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 +106 -0
- package/README.md +20 -2
- package/dist/cli/doctor.d.ts +11 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +44 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/init.d.ts +2 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +306 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/diag/checks.d.ts +25 -0
- package/dist/diag/checks.d.ts.map +1 -0
- package/dist/diag/checks.js +387 -0
- package/dist/diag/checks.js.map +1 -0
- package/dist/env/loader.d.ts +43 -0
- package/dist/env/loader.d.ts.map +1 -0
- package/dist/env/loader.js +121 -0
- package/dist/env/loader.js.map +1 -0
- package/dist/env/parse.d.ts +23 -0
- package/dist/env/parse.d.ts.map +1 -0
- package/dist/env/parse.js +41 -0
- package/dist/env/parse.js.map +1 -0
- package/dist/env/schema.d.ts +257 -0
- package/dist/env/schema.d.ts.map +1 -0
- package/dist/env/schema.js +240 -0
- package/dist/env/schema.js.map +1 -0
- package/dist/governor/adapter.d.ts +1 -1
- package/dist/governor/adapter.d.ts.map +1 -1
- package/dist/governor/adapter.js +2 -1
- package/dist/governor/adapter.js.map +1 -1
- package/dist/governor/tools/extras.js +14 -3
- package/dist/governor/tools/extras.js.map +1 -1
- package/dist/index.js +31 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/requireEnv.d.ts +30 -0
- package/dist/lib/requireEnv.d.ts.map +1 -0
- package/dist/lib/requireEnv.js +48 -0
- package/dist/lib/requireEnv.js.map +1 -0
- package/dist/lib/signer.d.ts +8 -0
- package/dist/lib/signer.d.ts.map +1 -1
- package/dist/lib/signer.js +18 -0
- package/dist/lib/signer.js.map +1 -1
- package/dist/rpc.d.ts +8 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +18 -0
- package/dist/rpc.js.map +1 -1
- package/dist/tools/doctor.d.ts +11 -0
- package/dist/tools/doctor.d.ts.map +1 -0
- package/dist/tools/doctor.js +75 -0
- package/dist/tools/doctor.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/read.js +40 -10
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/txSend.d.ts.map +1 -1
- package/dist/tools/txSend.js +18 -1
- package/dist/tools/txSend.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Single source of truth for every DEXE_* env var the MCP recognizes.
|
|
4
|
+
*
|
|
5
|
+
* Consumed by:
|
|
6
|
+
* - `src/env/parse.ts` — validation at startup, accumulates issues
|
|
7
|
+
* - `src/diag/checks.ts` — `dexe_doctor` walks ENV_SPEC for presence checks
|
|
8
|
+
* - `src/lib/requireEnv.ts` — fail-soft tool guards build remediation hints
|
|
9
|
+
*
|
|
10
|
+
* To add a new env var: add an entry here, update docs/ENVIRONMENT.md, and
|
|
11
|
+
* the parity test in tests/env/schema.test.ts will require .env.example to
|
|
12
|
+
* mention it. Categories drive the .env.example layout and doctor output
|
|
13
|
+
* grouping.
|
|
14
|
+
*/
|
|
15
|
+
export type EnvCategory = "core" | "rpc" | "signer" | "ipfs" | "subgraph" | "walletconnect" | "safe" | "backend" | "dev";
|
|
16
|
+
/**
|
|
17
|
+
* Feature surfaces that depend on a given env var. Used by hintFor() to tell
|
|
18
|
+
* the user which tools light up when the var is set.
|
|
19
|
+
*/
|
|
20
|
+
export type EnvFlow = "read" | "broadcast" | "ipfs-upload" | "ipfs-read" | "subgraph-read" | "dao-deploy" | "safe-tx" | "walletconnect-sign" | "backend-offchain";
|
|
21
|
+
export interface EnvEntry {
|
|
22
|
+
schema: z.ZodType<unknown>;
|
|
23
|
+
category: EnvCategory;
|
|
24
|
+
/** True only for vars without which the MCP cannot start. None today. */
|
|
25
|
+
required: boolean;
|
|
26
|
+
/** Placeholder shown in `.env.example`. */
|
|
27
|
+
example: string;
|
|
28
|
+
/** One-line description mirrored in docs/ENVIRONMENT.md. */
|
|
29
|
+
doc: string;
|
|
30
|
+
/** Which user-visible flows this var unlocks. Doctor + hintFor() use this. */
|
|
31
|
+
enablesFlows?: readonly EnvFlow[];
|
|
32
|
+
/** Mask the value when echoing it (banner, doctor, logs). */
|
|
33
|
+
secret?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare const ENV_SPEC: {
|
|
36
|
+
readonly DEXE_PROTOCOL_PATH: {
|
|
37
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
38
|
+
readonly category: "core";
|
|
39
|
+
readonly required: false;
|
|
40
|
+
readonly example: "";
|
|
41
|
+
readonly doc: "Override the DeXe-Protocol checkout path. Auto-managed when unset.";
|
|
42
|
+
};
|
|
43
|
+
readonly DEXE_RPC_URL: {
|
|
44
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
45
|
+
readonly category: "rpc";
|
|
46
|
+
readonly required: false;
|
|
47
|
+
readonly example: "https://bsc-dataseed.binance.org";
|
|
48
|
+
readonly doc: "Legacy single-chain RPC. Prefer DEXE_RPC_URL_TESTNET / _MAINNET / _<chainId>.";
|
|
49
|
+
readonly enablesFlows: readonly ["read", "broadcast"];
|
|
50
|
+
};
|
|
51
|
+
readonly DEXE_CHAIN_ID: {
|
|
52
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
53
|
+
readonly category: "rpc";
|
|
54
|
+
readonly required: false;
|
|
55
|
+
readonly example: "56";
|
|
56
|
+
readonly doc: "Chain id for legacy DEXE_RPC_URL. Inferred from hostname when unset.";
|
|
57
|
+
};
|
|
58
|
+
readonly DEXE_RPC_URL_TESTNET: {
|
|
59
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
60
|
+
readonly category: "rpc";
|
|
61
|
+
readonly required: false;
|
|
62
|
+
readonly example: "https://data-seed-prebsc-1-s1.bnbchain.org:8545";
|
|
63
|
+
readonly doc: "RPC URL for BSC testnet (chain 97).";
|
|
64
|
+
readonly enablesFlows: readonly ["read", "broadcast"];
|
|
65
|
+
};
|
|
66
|
+
readonly DEXE_RPC_URL_MAINNET: {
|
|
67
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
68
|
+
readonly category: "rpc";
|
|
69
|
+
readonly required: false;
|
|
70
|
+
readonly example: "https://bsc-dataseed.bnbchain.org";
|
|
71
|
+
readonly doc: "RPC URL for BSC mainnet (chain 56).";
|
|
72
|
+
readonly enablesFlows: readonly ["read", "broadcast"];
|
|
73
|
+
};
|
|
74
|
+
readonly DEXE_DEFAULT_CHAIN_ID: {
|
|
75
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
76
|
+
readonly category: "rpc";
|
|
77
|
+
readonly required: false;
|
|
78
|
+
readonly example: "97";
|
|
79
|
+
readonly doc: "Default chain id when a tool omits chainId. Must match a configured RPC.";
|
|
80
|
+
};
|
|
81
|
+
readonly DEXE_CONTRACTS_REGISTRY: {
|
|
82
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
83
|
+
readonly category: "rpc";
|
|
84
|
+
readonly required: false;
|
|
85
|
+
readonly example: "";
|
|
86
|
+
readonly doc: "Override ContractsRegistry address for the default chain. Rarely needed.";
|
|
87
|
+
};
|
|
88
|
+
readonly DEXE_PRIVATE_KEY: {
|
|
89
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
90
|
+
readonly category: "signer";
|
|
91
|
+
readonly required: false;
|
|
92
|
+
readonly example: "0x<64-hex>";
|
|
93
|
+
readonly doc: "Hot EOA key for dexe_tx_send broadcast. Requires an RPC.";
|
|
94
|
+
readonly enablesFlows: readonly ["broadcast"];
|
|
95
|
+
readonly secret: true;
|
|
96
|
+
};
|
|
97
|
+
readonly DEXE_SIGNER_ALLOWLIST: {
|
|
98
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
99
|
+
readonly category: "signer";
|
|
100
|
+
readonly required: false;
|
|
101
|
+
readonly example: "";
|
|
102
|
+
readonly doc: "Comma-separated destination address allowlist for dexe_tx_send (B6 guard).";
|
|
103
|
+
};
|
|
104
|
+
readonly DEXE_SIGNER_MAX_VALUE_WEI: {
|
|
105
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
106
|
+
readonly category: "signer";
|
|
107
|
+
readonly required: false;
|
|
108
|
+
readonly example: "";
|
|
109
|
+
readonly doc: "Max wei value per broadcast (B7 guard).";
|
|
110
|
+
};
|
|
111
|
+
readonly DEXE_SIGNER_MAX_BROADCASTS_PER_MIN: {
|
|
112
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
113
|
+
readonly category: "signer";
|
|
114
|
+
readonly required: false;
|
|
115
|
+
readonly example: "";
|
|
116
|
+
readonly doc: "Rate limit broadcasts per rolling minute (B10 guard).";
|
|
117
|
+
};
|
|
118
|
+
readonly DEXE_PINATA_JWT: {
|
|
119
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
120
|
+
readonly category: "ipfs";
|
|
121
|
+
readonly required: false;
|
|
122
|
+
readonly example: "eyJhbGciOiJIUzI1NiIs...";
|
|
123
|
+
readonly doc: "Pinata pinning JWT. Required for IPFS uploads; reads work without it.";
|
|
124
|
+
readonly enablesFlows: readonly ["ipfs-upload", "dao-deploy"];
|
|
125
|
+
readonly secret: true;
|
|
126
|
+
};
|
|
127
|
+
readonly DEXE_IPFS_GATEWAY: {
|
|
128
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
129
|
+
readonly category: "ipfs";
|
|
130
|
+
readonly required: false;
|
|
131
|
+
readonly example: "https://<subdomain>.mypinata.cloud";
|
|
132
|
+
readonly doc: "Primary IPFS gateway base URL for reads.";
|
|
133
|
+
readonly enablesFlows: readonly ["ipfs-read"];
|
|
134
|
+
};
|
|
135
|
+
readonly DEXE_IPFS_GATEWAYS_FALLBACK: {
|
|
136
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
137
|
+
readonly category: "ipfs";
|
|
138
|
+
readonly required: false;
|
|
139
|
+
readonly example: "";
|
|
140
|
+
readonly doc: "Comma-separated public IPFS gateway fallbacks for reads.";
|
|
141
|
+
};
|
|
142
|
+
readonly DEXE_PINATA_GATEWAY_TOKEN: {
|
|
143
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
144
|
+
readonly category: "ipfs";
|
|
145
|
+
readonly required: false;
|
|
146
|
+
readonly example: "";
|
|
147
|
+
readonly doc: "Auth token for a private Pinata dedicated gateway (optional).";
|
|
148
|
+
readonly secret: true;
|
|
149
|
+
};
|
|
150
|
+
readonly DEXE_IPFS_AVATAR_GATEWAY: {
|
|
151
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
152
|
+
readonly category: "ipfs";
|
|
153
|
+
readonly required: false;
|
|
154
|
+
readonly example: "";
|
|
155
|
+
readonly doc: "Optional override for the avatar fetch gateway.";
|
|
156
|
+
};
|
|
157
|
+
readonly DEXE_SUBGRAPH_POOLS_URL: {
|
|
158
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
159
|
+
readonly category: "subgraph";
|
|
160
|
+
readonly required: false;
|
|
161
|
+
readonly example: "https://gateway.thegraph.com/api/subgraphs/id/<id>";
|
|
162
|
+
readonly doc: "Pools subgraph endpoint.";
|
|
163
|
+
readonly enablesFlows: readonly ["subgraph-read"];
|
|
164
|
+
};
|
|
165
|
+
readonly DEXE_SUBGRAPH_VALIDATORS_URL: {
|
|
166
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
167
|
+
readonly category: "subgraph";
|
|
168
|
+
readonly required: false;
|
|
169
|
+
readonly example: "https://gateway.thegraph.com/api/subgraphs/id/<id>";
|
|
170
|
+
readonly doc: "Validators subgraph endpoint.";
|
|
171
|
+
readonly enablesFlows: readonly ["subgraph-read"];
|
|
172
|
+
};
|
|
173
|
+
readonly DEXE_SUBGRAPH_INTERACTIONS_URL: {
|
|
174
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
175
|
+
readonly category: "subgraph";
|
|
176
|
+
readonly required: false;
|
|
177
|
+
readonly example: "https://gateway.thegraph.com/api/subgraphs/id/<id>";
|
|
178
|
+
readonly doc: "Interactions subgraph endpoint.";
|
|
179
|
+
readonly enablesFlows: readonly ["subgraph-read"];
|
|
180
|
+
};
|
|
181
|
+
readonly DEXE_GRAPH_API_KEY: {
|
|
182
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
183
|
+
readonly category: "subgraph";
|
|
184
|
+
readonly required: false;
|
|
185
|
+
readonly example: "";
|
|
186
|
+
readonly doc: "The Graph API key for bearer auth (required by decentralized gateway).";
|
|
187
|
+
readonly secret: true;
|
|
188
|
+
};
|
|
189
|
+
readonly DEXE_WALLETCONNECT_PROJECT_ID: {
|
|
190
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
191
|
+
readonly category: "walletconnect";
|
|
192
|
+
readonly required: false;
|
|
193
|
+
readonly example: "";
|
|
194
|
+
readonly doc: "Reown/WalletConnect project id. Enables phone-approval signer when DEXE_PRIVATE_KEY is unset.";
|
|
195
|
+
readonly enablesFlows: readonly ["walletconnect-sign"];
|
|
196
|
+
};
|
|
197
|
+
readonly DEXE_WALLETCONNECT_RELAY_URL: {
|
|
198
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
199
|
+
readonly category: "walletconnect";
|
|
200
|
+
readonly required: false;
|
|
201
|
+
readonly example: "wss://relay.walletconnect.com";
|
|
202
|
+
readonly doc: "Override WC relay websocket URL.";
|
|
203
|
+
};
|
|
204
|
+
readonly DEXE_WALLETCONNECT_APPROVAL_TIMEOUT_MS: {
|
|
205
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
206
|
+
readonly category: "walletconnect";
|
|
207
|
+
readonly required: false;
|
|
208
|
+
readonly example: "120000";
|
|
209
|
+
readonly doc: "Per-tx phone-approval timeout in milliseconds.";
|
|
210
|
+
};
|
|
211
|
+
readonly DEXE_SAFE_TX_SERVICE_URL: {
|
|
212
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
213
|
+
readonly category: "safe";
|
|
214
|
+
readonly required: false;
|
|
215
|
+
readonly example: "https://api.safe.global/tx-service/bnb/api/v2";
|
|
216
|
+
readonly doc: "Safe Transaction Service base. Required for chains without a hosted service.";
|
|
217
|
+
readonly enablesFlows: readonly ["safe-tx"];
|
|
218
|
+
};
|
|
219
|
+
readonly DEXE_SAFE_API_KEY: {
|
|
220
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
221
|
+
readonly category: "safe";
|
|
222
|
+
readonly required: false;
|
|
223
|
+
readonly example: "";
|
|
224
|
+
readonly doc: "Bearer token for Safe Transaction Service.";
|
|
225
|
+
readonly secret: true;
|
|
226
|
+
};
|
|
227
|
+
readonly DEXE_BACKEND_API_URL: {
|
|
228
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
229
|
+
readonly category: "backend";
|
|
230
|
+
readonly required: false;
|
|
231
|
+
readonly example: "https://api.dexe.io";
|
|
232
|
+
readonly doc: "DeXe backend API root for off-chain proposal flows.";
|
|
233
|
+
readonly enablesFlows: readonly ["backend-offchain"];
|
|
234
|
+
};
|
|
235
|
+
readonly DEXE_FORK_BLOCK: {
|
|
236
|
+
readonly schema: z.ZodOptional<z.ZodString>;
|
|
237
|
+
readonly category: "dev";
|
|
238
|
+
readonly required: false;
|
|
239
|
+
readonly example: "";
|
|
240
|
+
readonly doc: "Optional fork block pin (Phase B).";
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Re-export with the structural interface so consumers see optional fields
|
|
245
|
+
* (`secret`, `enablesFlows`). `as const` narrows literals but hides any field
|
|
246
|
+
* not present on every entry, which trips `.secret`/`.enablesFlows` reads.
|
|
247
|
+
*/
|
|
248
|
+
export declare const ENV_REGISTRY: Record<EnvKey, EnvEntry>;
|
|
249
|
+
export type EnvKey = keyof typeof ENV_SPEC;
|
|
250
|
+
export declare function isKnownEnvKey(k: string): k is EnvKey;
|
|
251
|
+
export declare function envKeys(): EnvKey[];
|
|
252
|
+
/**
|
|
253
|
+
* Pattern for dynamic per-chain RPC keys (DEXE_RPC_URL_1, DEXE_RPC_URL_10…).
|
|
254
|
+
* Not in ENV_SPEC because the suffix is open-ended.
|
|
255
|
+
*/
|
|
256
|
+
export declare const DYNAMIC_PER_CHAIN_RPC_RE: RegExp;
|
|
257
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/env/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,UAAU,GACV,eAAe,GACf,MAAM,GACN,SAAS,GACT,KAAK,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,MAAM,GACN,WAAW,GACX,aAAa,GACb,WAAW,GACX,eAAe,GACf,YAAY,GACZ,SAAS,GACT,oBAAoB,GACpB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,YAAY,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAClC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgOwB,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAY,CAAC;AAE/D,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE3C,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,MAAM,CAEpD;AAED,wBAAgB,OAAO,IAAI,MAAM,EAAE,CAElC;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAyB,CAAC"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const hex64 = /^0x[0-9a-fA-F]{64}$/;
|
|
3
|
+
const hex40 = /^0x[0-9a-fA-F]{40}$/;
|
|
4
|
+
const intStr = z.string().regex(/^\d+$/);
|
|
5
|
+
const optionalUrl = z.string().url().optional();
|
|
6
|
+
export const ENV_SPEC = {
|
|
7
|
+
// ─── core / dev ───────────────────────────────────────────────────────────
|
|
8
|
+
DEXE_PROTOCOL_PATH: {
|
|
9
|
+
schema: z.string().optional(),
|
|
10
|
+
category: "core",
|
|
11
|
+
required: false,
|
|
12
|
+
example: "",
|
|
13
|
+
doc: "Override the DeXe-Protocol checkout path. Auto-managed when unset.",
|
|
14
|
+
},
|
|
15
|
+
// ─── rpc ──────────────────────────────────────────────────────────────────
|
|
16
|
+
DEXE_RPC_URL: {
|
|
17
|
+
schema: optionalUrl,
|
|
18
|
+
category: "rpc",
|
|
19
|
+
required: false,
|
|
20
|
+
example: "https://bsc-dataseed.binance.org",
|
|
21
|
+
doc: "Legacy single-chain RPC. Prefer DEXE_RPC_URL_TESTNET / _MAINNET / _<chainId>.",
|
|
22
|
+
enablesFlows: ["read", "broadcast"],
|
|
23
|
+
},
|
|
24
|
+
DEXE_CHAIN_ID: {
|
|
25
|
+
schema: intStr.optional(),
|
|
26
|
+
category: "rpc",
|
|
27
|
+
required: false,
|
|
28
|
+
example: "56",
|
|
29
|
+
doc: "Chain id for legacy DEXE_RPC_URL. Inferred from hostname when unset.",
|
|
30
|
+
},
|
|
31
|
+
DEXE_RPC_URL_TESTNET: {
|
|
32
|
+
schema: optionalUrl,
|
|
33
|
+
category: "rpc",
|
|
34
|
+
required: false,
|
|
35
|
+
example: "https://data-seed-prebsc-1-s1.bnbchain.org:8545",
|
|
36
|
+
doc: "RPC URL for BSC testnet (chain 97).",
|
|
37
|
+
enablesFlows: ["read", "broadcast"],
|
|
38
|
+
},
|
|
39
|
+
DEXE_RPC_URL_MAINNET: {
|
|
40
|
+
schema: optionalUrl,
|
|
41
|
+
category: "rpc",
|
|
42
|
+
required: false,
|
|
43
|
+
example: "https://bsc-dataseed.bnbchain.org",
|
|
44
|
+
doc: "RPC URL for BSC mainnet (chain 56).",
|
|
45
|
+
enablesFlows: ["read", "broadcast"],
|
|
46
|
+
},
|
|
47
|
+
DEXE_DEFAULT_CHAIN_ID: {
|
|
48
|
+
schema: intStr.optional(),
|
|
49
|
+
category: "rpc",
|
|
50
|
+
required: false,
|
|
51
|
+
example: "97",
|
|
52
|
+
doc: "Default chain id when a tool omits chainId. Must match a configured RPC.",
|
|
53
|
+
},
|
|
54
|
+
DEXE_CONTRACTS_REGISTRY: {
|
|
55
|
+
schema: z.string().regex(hex40).optional(),
|
|
56
|
+
category: "rpc",
|
|
57
|
+
required: false,
|
|
58
|
+
example: "",
|
|
59
|
+
doc: "Override ContractsRegistry address for the default chain. Rarely needed.",
|
|
60
|
+
},
|
|
61
|
+
// ─── signer ──────────────────────────────────────────────────────────────
|
|
62
|
+
DEXE_PRIVATE_KEY: {
|
|
63
|
+
schema: z.string().regex(hex64).optional(),
|
|
64
|
+
category: "signer",
|
|
65
|
+
required: false,
|
|
66
|
+
example: "0x<64-hex>",
|
|
67
|
+
doc: "Hot EOA key for dexe_tx_send broadcast. Requires an RPC.",
|
|
68
|
+
enablesFlows: ["broadcast"],
|
|
69
|
+
secret: true,
|
|
70
|
+
},
|
|
71
|
+
DEXE_SIGNER_ALLOWLIST: {
|
|
72
|
+
schema: z.string().optional(),
|
|
73
|
+
category: "signer",
|
|
74
|
+
required: false,
|
|
75
|
+
example: "",
|
|
76
|
+
doc: "Comma-separated destination address allowlist for dexe_tx_send (B6 guard).",
|
|
77
|
+
},
|
|
78
|
+
DEXE_SIGNER_MAX_VALUE_WEI: {
|
|
79
|
+
schema: intStr.optional(),
|
|
80
|
+
category: "signer",
|
|
81
|
+
required: false,
|
|
82
|
+
example: "",
|
|
83
|
+
doc: "Max wei value per broadcast (B7 guard).",
|
|
84
|
+
},
|
|
85
|
+
DEXE_SIGNER_MAX_BROADCASTS_PER_MIN: {
|
|
86
|
+
schema: intStr.optional(),
|
|
87
|
+
category: "signer",
|
|
88
|
+
required: false,
|
|
89
|
+
example: "",
|
|
90
|
+
doc: "Rate limit broadcasts per rolling minute (B10 guard).",
|
|
91
|
+
},
|
|
92
|
+
// ─── ipfs ────────────────────────────────────────────────────────────────
|
|
93
|
+
DEXE_PINATA_JWT: {
|
|
94
|
+
schema: z.string().optional(),
|
|
95
|
+
category: "ipfs",
|
|
96
|
+
required: false,
|
|
97
|
+
example: "eyJhbGciOiJIUzI1NiIs...",
|
|
98
|
+
doc: "Pinata pinning JWT. Required for IPFS uploads; reads work without it.",
|
|
99
|
+
enablesFlows: ["ipfs-upload", "dao-deploy"],
|
|
100
|
+
secret: true,
|
|
101
|
+
},
|
|
102
|
+
DEXE_IPFS_GATEWAY: {
|
|
103
|
+
schema: optionalUrl,
|
|
104
|
+
category: "ipfs",
|
|
105
|
+
required: false,
|
|
106
|
+
example: "https://<subdomain>.mypinata.cloud",
|
|
107
|
+
doc: "Primary IPFS gateway base URL for reads.",
|
|
108
|
+
enablesFlows: ["ipfs-read"],
|
|
109
|
+
},
|
|
110
|
+
DEXE_IPFS_GATEWAYS_FALLBACK: {
|
|
111
|
+
schema: z.string().optional(),
|
|
112
|
+
category: "ipfs",
|
|
113
|
+
required: false,
|
|
114
|
+
example: "",
|
|
115
|
+
doc: "Comma-separated public IPFS gateway fallbacks for reads.",
|
|
116
|
+
},
|
|
117
|
+
DEXE_PINATA_GATEWAY_TOKEN: {
|
|
118
|
+
schema: z.string().optional(),
|
|
119
|
+
category: "ipfs",
|
|
120
|
+
required: false,
|
|
121
|
+
example: "",
|
|
122
|
+
doc: "Auth token for a private Pinata dedicated gateway (optional).",
|
|
123
|
+
secret: true,
|
|
124
|
+
},
|
|
125
|
+
DEXE_IPFS_AVATAR_GATEWAY: {
|
|
126
|
+
schema: optionalUrl,
|
|
127
|
+
category: "ipfs",
|
|
128
|
+
required: false,
|
|
129
|
+
example: "",
|
|
130
|
+
doc: "Optional override for the avatar fetch gateway.",
|
|
131
|
+
},
|
|
132
|
+
// ─── subgraph ────────────────────────────────────────────────────────────
|
|
133
|
+
DEXE_SUBGRAPH_POOLS_URL: {
|
|
134
|
+
schema: optionalUrl,
|
|
135
|
+
category: "subgraph",
|
|
136
|
+
required: false,
|
|
137
|
+
example: "https://gateway.thegraph.com/api/subgraphs/id/<id>",
|
|
138
|
+
doc: "Pools subgraph endpoint.",
|
|
139
|
+
enablesFlows: ["subgraph-read"],
|
|
140
|
+
},
|
|
141
|
+
DEXE_SUBGRAPH_VALIDATORS_URL: {
|
|
142
|
+
schema: optionalUrl,
|
|
143
|
+
category: "subgraph",
|
|
144
|
+
required: false,
|
|
145
|
+
example: "https://gateway.thegraph.com/api/subgraphs/id/<id>",
|
|
146
|
+
doc: "Validators subgraph endpoint.",
|
|
147
|
+
enablesFlows: ["subgraph-read"],
|
|
148
|
+
},
|
|
149
|
+
DEXE_SUBGRAPH_INTERACTIONS_URL: {
|
|
150
|
+
schema: optionalUrl,
|
|
151
|
+
category: "subgraph",
|
|
152
|
+
required: false,
|
|
153
|
+
example: "https://gateway.thegraph.com/api/subgraphs/id/<id>",
|
|
154
|
+
doc: "Interactions subgraph endpoint.",
|
|
155
|
+
enablesFlows: ["subgraph-read"],
|
|
156
|
+
},
|
|
157
|
+
DEXE_GRAPH_API_KEY: {
|
|
158
|
+
schema: z.string().optional(),
|
|
159
|
+
category: "subgraph",
|
|
160
|
+
required: false,
|
|
161
|
+
example: "",
|
|
162
|
+
doc: "The Graph API key for bearer auth (required by decentralized gateway).",
|
|
163
|
+
secret: true,
|
|
164
|
+
},
|
|
165
|
+
// ─── walletconnect ───────────────────────────────────────────────────────
|
|
166
|
+
DEXE_WALLETCONNECT_PROJECT_ID: {
|
|
167
|
+
schema: z.string().optional(),
|
|
168
|
+
category: "walletconnect",
|
|
169
|
+
required: false,
|
|
170
|
+
example: "",
|
|
171
|
+
doc: "Reown/WalletConnect project id. Enables phone-approval signer when DEXE_PRIVATE_KEY is unset.",
|
|
172
|
+
enablesFlows: ["walletconnect-sign"],
|
|
173
|
+
},
|
|
174
|
+
DEXE_WALLETCONNECT_RELAY_URL: {
|
|
175
|
+
schema: optionalUrl,
|
|
176
|
+
category: "walletconnect",
|
|
177
|
+
required: false,
|
|
178
|
+
example: "wss://relay.walletconnect.com",
|
|
179
|
+
doc: "Override WC relay websocket URL.",
|
|
180
|
+
},
|
|
181
|
+
DEXE_WALLETCONNECT_APPROVAL_TIMEOUT_MS: {
|
|
182
|
+
schema: intStr.optional(),
|
|
183
|
+
category: "walletconnect",
|
|
184
|
+
required: false,
|
|
185
|
+
example: "120000",
|
|
186
|
+
doc: "Per-tx phone-approval timeout in milliseconds.",
|
|
187
|
+
},
|
|
188
|
+
// ─── safe ────────────────────────────────────────────────────────────────
|
|
189
|
+
DEXE_SAFE_TX_SERVICE_URL: {
|
|
190
|
+
schema: optionalUrl,
|
|
191
|
+
category: "safe",
|
|
192
|
+
required: false,
|
|
193
|
+
example: "https://api.safe.global/tx-service/bnb/api/v2",
|
|
194
|
+
doc: "Safe Transaction Service base. Required for chains without a hosted service.",
|
|
195
|
+
enablesFlows: ["safe-tx"],
|
|
196
|
+
},
|
|
197
|
+
DEXE_SAFE_API_KEY: {
|
|
198
|
+
schema: z.string().optional(),
|
|
199
|
+
category: "safe",
|
|
200
|
+
required: false,
|
|
201
|
+
example: "",
|
|
202
|
+
doc: "Bearer token for Safe Transaction Service.",
|
|
203
|
+
secret: true,
|
|
204
|
+
},
|
|
205
|
+
// ─── backend ─────────────────────────────────────────────────────────────
|
|
206
|
+
DEXE_BACKEND_API_URL: {
|
|
207
|
+
schema: optionalUrl,
|
|
208
|
+
category: "backend",
|
|
209
|
+
required: false,
|
|
210
|
+
example: "https://api.dexe.io",
|
|
211
|
+
doc: "DeXe backend API root for off-chain proposal flows.",
|
|
212
|
+
enablesFlows: ["backend-offchain"],
|
|
213
|
+
},
|
|
214
|
+
// ─── dev ─────────────────────────────────────────────────────────────────
|
|
215
|
+
DEXE_FORK_BLOCK: {
|
|
216
|
+
schema: intStr.optional(),
|
|
217
|
+
category: "dev",
|
|
218
|
+
required: false,
|
|
219
|
+
example: "",
|
|
220
|
+
doc: "Optional fork block pin (Phase B).",
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* Re-export with the structural interface so consumers see optional fields
|
|
225
|
+
* (`secret`, `enablesFlows`). `as const` narrows literals but hides any field
|
|
226
|
+
* not present on every entry, which trips `.secret`/`.enablesFlows` reads.
|
|
227
|
+
*/
|
|
228
|
+
export const ENV_REGISTRY = ENV_SPEC;
|
|
229
|
+
export function isKnownEnvKey(k) {
|
|
230
|
+
return Object.prototype.hasOwnProperty.call(ENV_SPEC, k);
|
|
231
|
+
}
|
|
232
|
+
export function envKeys() {
|
|
233
|
+
return Object.keys(ENV_SPEC);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Pattern for dynamic per-chain RPC keys (DEXE_RPC_URL_1, DEXE_RPC_URL_10…).
|
|
237
|
+
* Not in ENV_SPEC because the suffix is open-ended.
|
|
238
|
+
*/
|
|
239
|
+
export const DYNAMIC_PER_CHAIN_RPC_RE = /^DEXE_RPC_URL_(\d+)$/;
|
|
240
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/env/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import type { GovernorConfig } from "./loader.js";
|
|
|
14
14
|
* The canonical `ProposalState` enum order is identical across both families.
|
|
15
15
|
*/
|
|
16
16
|
export declare const GOVERNOR_OZ_READ_ABI: readonly ["function state(uint256 proposalId) view returns (uint8)", "function proposalSnapshot(uint256 proposalId) view returns (uint256)", "function proposalDeadline(uint256 proposalId) view returns (uint256)", "function proposalVotes(uint256 proposalId) view returns (uint256 againstVotes, uint256 forVotes, uint256 abstainVotes)", "function proposalThreshold() view returns (uint256)", "function quorum(uint256 blockNumber) view returns (uint256)", "function votableSupply(uint256 blockNumber) view returns (uint256)", "function votingDelay() view returns (uint256)", "function votingPeriod() view returns (uint256)", "function hasVoted(uint256 proposalId, address account) view returns (bool)", "function hashProposal(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) pure returns (uint256)", "function name() view returns (string)", "function version() view returns (string)"];
|
|
17
|
-
export declare const GOVERNOR_BRAVO_READ_ABI: readonly ["function state(uint256 proposalId) view returns (uint8)", "function proposals(uint256 proposalId) view returns (uint256 id, address proposer, uint256 eta, uint256 startBlock, uint256 endBlock, uint256 forVotes, uint256 againstVotes, uint256 abstainVotes, bool canceled, bool executed)", "function proposalThreshold() view returns (uint256)", "function quorumVotes() view returns (uint256)", "function votingDelay() view returns (uint256)", "function votingPeriod() view returns (uint256)", "function
|
|
17
|
+
export declare const GOVERNOR_BRAVO_READ_ABI: readonly ["function state(uint256 proposalId) view returns (uint8)", "function proposals(uint256 proposalId) view returns (uint256 id, address proposer, uint256 eta, uint256 startBlock, uint256 endBlock, uint256 forVotes, uint256 againstVotes, uint256 abstainVotes, bool canceled, bool executed)", "function proposalThreshold() view returns (uint256)", "function quorumVotes() view returns (uint256)", "function votingDelay() view returns (uint256)", "function votingPeriod() view returns (uint256)", "function getReceipt(uint256 proposalId, address voter) view returns (bool hasVoted, uint8 support, uint96 votes)", "function name() view returns (string)"];
|
|
18
18
|
export declare const IVOTES_ABI: readonly ["function getVotes(address account) view returns (uint256)", "function getPastVotes(address account, uint256 blockNumber) view returns (uint256)", "function delegates(address account) view returns (address)"];
|
|
19
19
|
/**
|
|
20
20
|
* Compound-style vote getters. Bravo voting tokens (COMP, UNI) expose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/governor/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,oBAAoB,m5BAiBvB,CAAC;AAEX,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/governor/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,oBAAoB,m5BAiBvB,CAAC;AAEX,eAAO,MAAM,uBAAuB,mpBAU1B,CAAC;AAEX,eAAO,MAAM,UAAU,4NAIb,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,kOAIlB,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EASlC,CAAC;AAEX,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,QAAQ,CAGzF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,QAAQ,CAGtF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,CAAC,EAAE,QAAQ,EACX,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAU5C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,CAAC,EAAE,QAAQ,EACX,GAAG,EAAE,cAAc,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,MAAM,MAAM,YAAY,GACpB,qBAAqB,GACrB,eAAe,GACf,kCAAkC,CAAC;AAEvC;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,CAAC,EAAE,QAAQ,EACX,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,CAanD;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAUjE"}
|
package/dist/governor/adapter.js
CHANGED
|
@@ -37,7 +37,8 @@ export const GOVERNOR_BRAVO_READ_ABI = [
|
|
|
37
37
|
"function quorumVotes() view returns (uint256)",
|
|
38
38
|
"function votingDelay() view returns (uint256)",
|
|
39
39
|
"function votingPeriod() view returns (uint256)",
|
|
40
|
-
|
|
40
|
+
// Bravo has NO hasVoted(proposalId,account) — it exposes getReceipt(...).hasVoted.
|
|
41
|
+
"function getReceipt(uint256 proposalId, address voter) view returns (bool hasVoted, uint8 support, uint96 votes)",
|
|
41
42
|
"function name() view returns (string)",
|
|
42
43
|
];
|
|
43
44
|
export const IVOTES_ABI = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/governor/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,QAAQ,CAAC;AAGxD;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,yDAAyD;IACzD,sEAAsE;IACtE,sEAAsE;IACtE,wHAAwH;IACxH,qDAAqD;IACrD,6DAA6D;IAC7D,2EAA2E;IAC3E,+EAA+E;IAC/E,iEAAiE;IACjE,oEAAoE;IACpE,+CAA+C;IAC/C,gDAAgD;IAChD,4EAA4E;IAC5E,+HAA+H;IAC/H,uCAAuC;IACvC,0CAA0C;CAClC,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,yDAAyD;IACzD,mOAAmO;IACnO,qDAAqD;IACrD,+CAA+C;IAC/C,+CAA+C;IAC/C,gDAAgD;IAChD,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/governor/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,8 +60,8 @@ function registerGetState(server, rpc) {
|
|
|
60
60
|
}
|
|
61
61
|
function registerHasVoted(server, rpc) {
|
|
62
62
|
server.registerTool("dexe_gov_has_voted", {
|
|
63
|
-
title: "Read
|
|
64
|
-
description: "Returns true when the account has already cast a vote on this proposal.
|
|
63
|
+
title: "Read whether an account has voted on a proposal",
|
|
64
|
+
description: "Returns true when the account has already cast a vote on this proposal. OZ reads hasVoted(proposalId, account); Bravo (Uniswap/Compound) has no hasVoted — read via getReceipt(proposalId, voter).hasVoted.",
|
|
65
65
|
inputSchema: {
|
|
66
66
|
governor: governorIdSchema,
|
|
67
67
|
proposalId: proposalIdArg,
|
|
@@ -72,12 +72,23 @@ function registerHasVoted(server, rpc) {
|
|
|
72
72
|
const cfg = resolveGovernor(governor);
|
|
73
73
|
const provider = rpc.requireProvider(cfg.chainId);
|
|
74
74
|
const c = governorContract(provider, cfg);
|
|
75
|
-
|
|
75
|
+
let voted;
|
|
76
|
+
let method;
|
|
77
|
+
if (isBravo(cfg)) {
|
|
78
|
+
const receipt = await c.getFunction("getReceipt").staticCall(BigInt(proposalId), account);
|
|
79
|
+
voted = Boolean(receipt.hasVoted);
|
|
80
|
+
method = "getReceipt";
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
voted = await c.getFunction("hasVoted").staticCall(BigInt(proposalId), account);
|
|
84
|
+
method = "hasVoted";
|
|
85
|
+
}
|
|
76
86
|
return ok({
|
|
77
87
|
governor: cfg.id,
|
|
78
88
|
proposalId,
|
|
79
89
|
account,
|
|
80
90
|
hasVoted: voted,
|
|
91
|
+
method,
|
|
81
92
|
});
|
|
82
93
|
}
|
|
83
94
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extras.js","sourceRoot":"","sources":["../../../src/governor/tools/extras.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extras.js","sourceRoot":"","sources":["../../../src/governor/tools/extras.ts"],"names":[],"mappings":"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"}
|