@continuumdao/ctm-mpc-defi 0.2.28 → 0.2.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/agent/catalog.cjs +1305 -21
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +1468 -1
  4. package/dist/agent/catalog.js +1236 -23
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/continuum-dao/SKILL.md +139 -0
  7. package/dist/agent/skills/ethena/SKILL.md +1 -1
  8. package/dist/agent/skills/lido/SKILL.md +4 -1
  9. package/dist/core/index.cjs +42 -39
  10. package/dist/core/index.cjs.map +1 -1
  11. package/dist/core/index.d.ts +1 -1
  12. package/dist/core/index.js +42 -39
  13. package/dist/core/index.js.map +1 -1
  14. package/dist/{eip712Multisign-xhXpUYp3.d.ts → eip712Multisign-DCW7heqX.d.ts} +11 -8
  15. package/dist/index.cjs +64 -57
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +64 -57
  19. package/dist/index.js.map +1 -1
  20. package/dist/protocols/evm/arcus/index.cjs +62 -55
  21. package/dist/protocols/evm/arcus/index.cjs.map +1 -1
  22. package/dist/protocols/evm/arcus/index.js +62 -55
  23. package/dist/protocols/evm/arcus/index.js.map +1 -1
  24. package/dist/protocols/evm/continuum-dao/index.cjs +2237 -0
  25. package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -0
  26. package/dist/protocols/evm/continuum-dao/index.d.ts +700 -0
  27. package/dist/protocols/evm/continuum-dao/index.js +2110 -0
  28. package/dist/protocols/evm/continuum-dao/index.js.map +1 -0
  29. package/dist/protocols/evm/ethena/index.cjs +41 -4
  30. package/dist/protocols/evm/ethena/index.cjs.map +1 -1
  31. package/dist/protocols/evm/ethena/index.d.ts +12 -2
  32. package/dist/protocols/evm/ethena/index.js +38 -5
  33. package/dist/protocols/evm/ethena/index.js.map +1 -1
  34. package/dist/protocols/evm/hyperliquid/index.cjs +125 -110
  35. package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
  36. package/dist/protocols/evm/hyperliquid/index.js +125 -110
  37. package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
  38. package/dist/protocols/evm/lido/index.cjs +66 -1
  39. package/dist/protocols/evm/lido/index.cjs.map +1 -1
  40. package/dist/protocols/evm/lido/index.d.ts +11 -1
  41. package/dist/protocols/evm/lido/index.js +60 -2
  42. package/dist/protocols/evm/lido/index.js.map +1 -1
  43. package/dist/protocols/evm/permit2/index.cjs +66 -59
  44. package/dist/protocols/evm/permit2/index.cjs.map +1 -1
  45. package/dist/protocols/evm/permit2/index.js +66 -59
  46. package/dist/protocols/evm/permit2/index.js.map +1 -1
  47. package/dist/protocols/evm/uniswap-v4/index.cjs +63 -56
  48. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  49. package/dist/protocols/evm/uniswap-v4/index.d.ts +1 -1
  50. package/dist/protocols/evm/uniswap-v4/index.js +63 -56
  51. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  52. package/package.json +6 -1
@@ -0,0 +1,700 @@
1
+ import { b as KeyGenSubsetForPermit, K as KeyGenSubset, M as MultisignBuildResult, e as ProtocolModule } from '../../../types-PZrvtjv8.js';
2
+ import { Address } from 'viem';
3
+
4
+ declare const CONTINUUM_DAO_PROTOCOL_ID = "continuum-dao";
5
+ declare const CONTINUUM_DAO_ETHEREUM_CHAIN_ID = 1;
6
+ declare const CONTINUUM_DAO_LINEA_CHAIN_ID = 59144;
7
+ declare const CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID = 59141;
8
+ declare const CTM_TOKEN_NAME = "Continuum";
9
+ declare const CTM_TOKEN_SYMBOL = "CTM";
10
+ declare const VECTM_TOKEN_NAME = "Voting Escrow Continuum";
11
+ declare const VECTM_TOKEN_SYMBOL = "veCTM";
12
+ declare const CTM_TOKEN_DECIMALS = 18;
13
+ declare const WEEK_SECONDS: number;
14
+ declare const MAXTIME_SECONDS: number;
15
+ type ContinuumDaoDeployment = {
16
+ ctm: `0x${string}`;
17
+ votingEscrow: `0x${string}`;
18
+ nodeProperties: `0x${string}`;
19
+ rewards: `0x${string}`;
20
+ governor: `0x${string}`;
21
+ };
22
+ /** Placeholder deployments — fill after CTM / VE / NodeProperties / Rewards redeploy. */
23
+ declare const CONTINUUM_DAO_DEPLOYMENTS: Readonly<Record<number, ContinuumDaoDeployment>>;
24
+ /** Public ContinuumDAO governance API (same host continuumdao-app proxies). */
25
+ declare const CONTINUUM_DAO_GOVERNANCE_API = "https://app-api.continuumdao.org";
26
+ declare function isConfiguredAddress(addr?: string | null): boolean;
27
+ declare function continuumDaoDeployment(chainId: number): ContinuumDaoDeployment | null;
28
+ declare function isContinuumDaoLockChain(chainId: number): boolean;
29
+ declare function isContinuumDaoSupportedChainId(chainId: number): boolean;
30
+ declare function ctmTokenAddressOnEvmChain(chainId: number): `0x${string}` | null;
31
+ declare function votingEscrowAddressOnEvmChain(chainId: number): `0x${string}` | null;
32
+ declare function governorAddressOnEvmChain(chainId: number): `0x${string}` | null;
33
+ declare function isContinuumDaoCtmOnAssetsChain(assetsChainId: string, contractAddress: string): boolean;
34
+ declare function isContinuumDaoVeCtmOnAssetsChain(assetsChainId: string, contractAddress: string): boolean;
35
+ declare function isVotingEscrowContinuumName(name?: string | null): boolean;
36
+ declare function isCtmTokenSymbol(symbol?: string | null): boolean;
37
+ type ContinuumDaoDefaultAsset = {
38
+ chainId: number;
39
+ tokenType: 'CTMERC20' | 'ERC721';
40
+ contractAddress: `0x${string}`;
41
+ name: string;
42
+ symbol: string;
43
+ decimals?: number;
44
+ };
45
+ /** Default registry rows when the configured address is non-zero. */
46
+ declare function listContinuumDaoDefaultAssets(): ContinuumDaoDefaultAsset[];
47
+
48
+ /**
49
+ * ContinuumDAO multi-sign builders: CTM lock / veCTM escrow + MPA attach / request detach.
50
+ * Do not prepend billing legs — these are protocol txs, not register / deposit / syncBilling.
51
+ */
52
+
53
+ declare const CONTINUUM_DAO_APPROVE_FALLBACK = 100000n;
54
+ declare const CONTINUUM_DAO_CREATE_LOCK_FALLBACK = 550000n;
55
+ declare const CONTINUUM_DAO_INCREASE_AMOUNT_FALLBACK = 400000n;
56
+ declare const CONTINUUM_DAO_INCREASE_UNLOCK_FALLBACK = 400000n;
57
+ declare const CONTINUUM_DAO_SPLIT_FALLBACK = 650000n;
58
+ declare const CONTINUUM_DAO_MERGE_FALLBACK = 550000n;
59
+ declare const CONTINUUM_DAO_WITHDRAW_FALLBACK = 350000n;
60
+ declare const CONTINUUM_DAO_LIQUIDATE_FALLBACK = 450000n;
61
+ declare const CONTINUUM_DAO_DELEGATE_FALLBACK = 160000n;
62
+ declare const CONTINUUM_DAO_TRANSFER_FALLBACK = 160000n;
63
+ declare const CONTINUUM_DAO_ATTACH_FALLBACK = 450000n;
64
+ declare const CONTINUUM_DAO_DETACH_FALLBACK = 220000n;
65
+ declare const VECTM_NODE_INFO_TUPLE = "(string,string,uint8[4],uint16[8],string,uint256,uint256,string,string,bytes)";
66
+ declare const ATTACH_VECTM_SIGNATURE = "attachVeCtm(string,uint256,(string,string,uint8[4],uint16[8],string,uint256,uint256,string,string,bytes))";
67
+ declare const CONTINUUM_DAO_EVM_TYPES: Set<string>;
68
+ type ChainRow = {
69
+ legacy?: boolean;
70
+ gasLimit?: number;
71
+ gasMultiplier?: number;
72
+ gasPrice?: number;
73
+ baseFee?: number;
74
+ priorityFee?: number;
75
+ baseFeeMultiplier?: number;
76
+ };
77
+ type ContinuumDaoCommonArgs = {
78
+ keyGen: KeyGenSubsetForPermit;
79
+ chainId: number;
80
+ rpcUrl: string;
81
+ chainDetail: ChainRow;
82
+ useCustomGas: boolean;
83
+ customGasChainDetails?: Record<string, unknown> | null;
84
+ executorAddress: Address;
85
+ purposeText: string;
86
+ };
87
+ declare function buildEvmMultisignBodyContinuumDaoCreateLock(args: ContinuumDaoCommonArgs & {
88
+ amountHuman: string;
89
+ lockDurationSeconds: string | number | bigint;
90
+ ctm?: string;
91
+ votingEscrow?: string;
92
+ }): Promise<{
93
+ bodyForSign: Record<string, unknown>;
94
+ messageToSign: string;
95
+ }>;
96
+ declare function buildEvmMultisignBodyContinuumDaoIncreaseAmount(args: ContinuumDaoCommonArgs & {
97
+ tokenId: string | number | bigint;
98
+ amountHuman: string;
99
+ ctm?: string;
100
+ votingEscrow?: string;
101
+ }): Promise<{
102
+ bodyForSign: Record<string, unknown>;
103
+ messageToSign: string;
104
+ }>;
105
+ declare function buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime(args: ContinuumDaoCommonArgs & {
106
+ tokenId: string | number | bigint;
107
+ lockDurationSeconds: string | number | bigint;
108
+ votingEscrow?: string;
109
+ }): Promise<{
110
+ bodyForSign: Record<string, unknown>;
111
+ messageToSign: string;
112
+ }>;
113
+ declare function buildEvmMultisignBodyContinuumDaoSplit(args: ContinuumDaoCommonArgs & {
114
+ tokenId: string | number | bigint;
115
+ extractedHuman: string;
116
+ votingEscrow?: string;
117
+ }): Promise<{
118
+ bodyForSign: Record<string, unknown>;
119
+ messageToSign: string;
120
+ }>;
121
+ declare function buildEvmMultisignBodyContinuumDaoMerge(args: ContinuumDaoCommonArgs & {
122
+ fromTokenId: string | number | bigint;
123
+ toTokenId: string | number | bigint;
124
+ votingEscrow?: string;
125
+ }): Promise<{
126
+ bodyForSign: Record<string, unknown>;
127
+ messageToSign: string;
128
+ }>;
129
+ declare function buildEvmMultisignBodyContinuumDaoWithdraw(args: ContinuumDaoCommonArgs & {
130
+ tokenId: string | number | bigint;
131
+ votingEscrow?: string;
132
+ }): Promise<{
133
+ bodyForSign: Record<string, unknown>;
134
+ messageToSign: string;
135
+ }>;
136
+ declare function buildEvmMultisignBodyContinuumDaoLiquidate(args: ContinuumDaoCommonArgs & {
137
+ tokenId: string | number | bigint;
138
+ votingEscrow?: string;
139
+ }): Promise<{
140
+ bodyForSign: Record<string, unknown>;
141
+ messageToSign: string;
142
+ }>;
143
+ declare function buildEvmMultisignBodyContinuumDaoDelegate(args: ContinuumDaoCommonArgs & {
144
+ delegatee: string;
145
+ votingEscrow?: string;
146
+ }): Promise<{
147
+ bodyForSign: Record<string, unknown>;
148
+ messageToSign: string;
149
+ }>;
150
+ /** veCTM has no undelegate(). Delegating to self (or address(0), which becomes self) returns voting power. */
151
+ declare function buildEvmMultisignBodyContinuumDaoUndelegate(args: ContinuumDaoCommonArgs & {
152
+ votingEscrow?: string;
153
+ }): Promise<{
154
+ bodyForSign: Record<string, unknown>;
155
+ messageToSign: string;
156
+ }>;
157
+ declare function continuumDaoFetchDelegates(args: {
158
+ chainId: number | string;
159
+ rpcUrl: string;
160
+ account: string;
161
+ votingEscrow?: string;
162
+ }): Promise<{
163
+ account: string;
164
+ delegatee: string;
165
+ self: boolean;
166
+ }>;
167
+ declare function buildEvmMultisignBodyContinuumDaoTransfer(args: ContinuumDaoCommonArgs & {
168
+ tokenId: string | number | bigint;
169
+ to: string;
170
+ votingEscrow?: string;
171
+ }): Promise<{
172
+ bodyForSign: Record<string, unknown>;
173
+ messageToSign: string;
174
+ }>;
175
+ type ContinuumDaoNodeInfoTuple = [
176
+ string,
177
+ string,
178
+ readonly [number, number, number, number],
179
+ readonly [number, number, number, number, number, number, number, number],
180
+ string,
181
+ bigint,
182
+ bigint,
183
+ string,
184
+ string,
185
+ `0x${string}`
186
+ ];
187
+ declare function encodeContinuumDaoNodeInfo(info?: {
188
+ forumHandle?: string;
189
+ email?: string;
190
+ ipv4?: number[];
191
+ ipv6?: number[];
192
+ vps?: string;
193
+ ram?: number | string;
194
+ cpu?: number | string;
195
+ dIDType?: string;
196
+ dID?: string;
197
+ extra?: string;
198
+ }): ContinuumDaoNodeInfoTuple;
199
+ declare function buildEvmMultisignBodyContinuumDaoAttachVeCtm(args: ContinuumDaoCommonArgs & {
200
+ nodeKey: string;
201
+ tokenId: string | number | bigint;
202
+ mpaWallet: string;
203
+ nodeInfo?: Parameters<typeof encodeContinuumDaoNodeInfo>[0];
204
+ nodeInfoTuple?: ContinuumDaoNodeInfoTuple;
205
+ }): Promise<{
206
+ bodyForSign: Record<string, unknown>;
207
+ messageToSign: string;
208
+ }>;
209
+ declare function buildEvmMultisignBodyContinuumDaoRequestDetach(args: ContinuumDaoCommonArgs & {
210
+ tokenId: string | number | bigint;
211
+ nodeProperties: string;
212
+ }): Promise<{
213
+ bodyForSign: Record<string, unknown>;
214
+ messageToSign: string;
215
+ }>;
216
+ /** MCP adapter: flatten NodeInfo fields onto the attach builder. */
217
+ declare function buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp(args: ContinuumDaoCommonArgs & {
218
+ nodeKey: string;
219
+ tokenId: string | number | bigint;
220
+ mpaWallet: string;
221
+ forumHandle?: string;
222
+ email?: string;
223
+ vps?: string;
224
+ ram?: number | string;
225
+ cpu?: number | string;
226
+ dIDType?: string;
227
+ dID?: string;
228
+ }): Promise<{
229
+ bodyForSign: Record<string, unknown>;
230
+ messageToSign: string;
231
+ }>;
232
+
233
+ /**
234
+ * ContinuumDAO governor encode + Multi-Sign builders.
235
+ * Do not prepend billing legs. Queue is not implemented on-chain (no timelock).
236
+ */
237
+
238
+ declare const CONTINUUM_DAO_PROPOSE_FALLBACK = 550000n;
239
+ declare const CONTINUUM_DAO_VOTE_FALLBACK = 220000n;
240
+ declare const CONTINUUM_DAO_EXECUTE_FALLBACK = 800000n;
241
+ declare const CONTINUUM_DAO_CANCEL_FALLBACK = 180000n;
242
+ declare const CONTINUUM_DAO_GOV_EVM_TYPES: Set<string>;
243
+ type GovActionInput = {
244
+ target: string;
245
+ value?: string;
246
+ signature?: string;
247
+ inputs?: {
248
+ name?: string;
249
+ type: string;
250
+ value: string;
251
+ }[];
252
+ };
253
+ type GovOptionInput = {
254
+ label: string;
255
+ actions: GovActionInput[];
256
+ };
257
+ declare function encodeGovActionCalldata(signature: string, inputs?: {
258
+ type: string;
259
+ value: string;
260
+ }[]): `0x${string}`;
261
+ declare function proposalDescriptionHash(description: string): `0x${string}`;
262
+ declare function encodeDeltaMetadata(nOptions: number, nWinners: number, optionStartIndices: number[]): `0x${string}`;
263
+ /** Delta vote params: one uint256 per option plus a final NOTA slot. */
264
+ declare function encodeDeltaVoteParams(weights: Array<string | number | bigint>): `0x${string}`;
265
+ declare function buildBravoProposalArgs(actions: GovActionInput[], description: string, noOpTarget: string): {
266
+ targets: Address[];
267
+ values: bigint[];
268
+ calldatas: `0x${string}`[];
269
+ description: string;
270
+ };
271
+ declare function buildDeltaProposalArgs(options: GovOptionInput[], nWinners: number, description: string, noOpTarget: string): {
272
+ targets: Address[];
273
+ values: bigint[];
274
+ calldatas: `0x${string}`[];
275
+ description: string;
276
+ };
277
+ declare function buildEvmMultisignBodyContinuumDaoProposeBravo(args: ContinuumDaoCommonArgs & {
278
+ title: string;
279
+ actions?: GovActionInput[];
280
+ governor?: string;
281
+ noOpTarget?: string;
282
+ forumKey: string;
283
+ forumUrl?: string;
284
+ }): Promise<{
285
+ bodyForSign: Record<string, unknown>;
286
+ messageToSign: string;
287
+ proposalArgs: ReturnType<typeof buildBravoProposalArgs>;
288
+ }>;
289
+ declare function buildEvmMultisignBodyContinuumDaoProposeDelta(args: ContinuumDaoCommonArgs & {
290
+ title: string;
291
+ options: GovOptionInput[];
292
+ nWinners: number;
293
+ governor?: string;
294
+ noOpTarget?: string;
295
+ forumKey: string;
296
+ forumUrl?: string;
297
+ }): Promise<{
298
+ bodyForSign: Record<string, unknown>;
299
+ messageToSign: string;
300
+ proposalArgs: ReturnType<typeof buildDeltaProposalArgs>;
301
+ }>;
302
+ declare function buildEvmMultisignBodyContinuumDaoCastVoteBravo(args: ContinuumDaoCommonArgs & {
303
+ proposalId: string | number | bigint;
304
+ support: 0 | 1 | 2;
305
+ governor?: string;
306
+ }): Promise<{
307
+ bodyForSign: Record<string, unknown>;
308
+ messageToSign: string;
309
+ }>;
310
+ declare function buildEvmMultisignBodyContinuumDaoCastVoteDelta(args: ContinuumDaoCommonArgs & {
311
+ proposalId: string | number | bigint;
312
+ weights: Array<string | number | bigint>;
313
+ governor?: string;
314
+ }): Promise<{
315
+ bodyForSign: Record<string, unknown>;
316
+ messageToSign: string;
317
+ }>;
318
+ declare function buildEvmMultisignBodyContinuumDaoExecute(args: ContinuumDaoCommonArgs & {
319
+ proposalId: string | number | bigint;
320
+ governor?: string;
321
+ }): Promise<{
322
+ bodyForSign: Record<string, unknown>;
323
+ messageToSign: string;
324
+ }>;
325
+ declare function buildEvmMultisignBodyContinuumDaoCancel(args: ContinuumDaoCommonArgs & {
326
+ proposalId: string | number | bigint;
327
+ governor?: string;
328
+ }): Promise<{
329
+ bodyForSign: Record<string, unknown>;
330
+ messageToSign: string;
331
+ }>;
332
+ declare function continuumDaoHashProposal(args: {
333
+ chainId: number | string;
334
+ rpcUrl: string;
335
+ targets: Address[];
336
+ values: bigint[];
337
+ calldatas: `0x${string}`[];
338
+ description: string;
339
+ governor?: string;
340
+ }): Promise<{
341
+ proposalId: string;
342
+ }>;
343
+ declare function continuumDaoFetchVotingPower(args: {
344
+ chainId: number | string;
345
+ rpcUrl: string;
346
+ account: string;
347
+ governor?: string;
348
+ }): Promise<{
349
+ votes: string;
350
+ threshold: string;
351
+ clock: string;
352
+ }>;
353
+ declare function continuumDaoFetchProposalState(args: {
354
+ chainId: number | string;
355
+ rpcUrl: string;
356
+ proposalId: string | number | bigint;
357
+ governor?: string;
358
+ }): Promise<{
359
+ state: number;
360
+ againstVotes: string;
361
+ forVotes: string;
362
+ abstainVotes: string;
363
+ }>;
364
+ declare function continuumDaoFetchProposalCount(args: {
365
+ chainId: number;
366
+ rpcUrl: string;
367
+ governor?: string;
368
+ }): Promise<{
369
+ count: string;
370
+ }>;
371
+ declare function continuumDaoFetchProposals(args: {
372
+ start?: number;
373
+ end?: number;
374
+ }): Promise<{
375
+ proposals: unknown[];
376
+ total?: number;
377
+ }>;
378
+ declare const GOVERNOR_STATE: {
379
+ readonly Pending: 0;
380
+ readonly Active: 1;
381
+ readonly Canceled: 2;
382
+ readonly Defeated: 3;
383
+ readonly Succeeded: 4;
384
+ readonly Queued: 5;
385
+ readonly Expired: 6;
386
+ readonly Executed: 7;
387
+ };
388
+ declare const GOVERNOR_STATE_LABELS: readonly ["Pending", "Active", "Canceled", "Defeated", "Succeeded", "Queued", "Expired", "Executed"];
389
+ type LiveProposalBucket = 'live' | 'pending' | 'readyToExecute' | 'recentlyCompleted' | 'unknown';
390
+ declare function bucketGovernorState(state: number | null | undefined): LiveProposalBucket;
391
+ type LiveProposalRow = {
392
+ id?: number;
393
+ onchainId: string;
394
+ title: string;
395
+ configuration?: number;
396
+ state: number | null;
397
+ stateLabel: string;
398
+ bucket: LiveProposalBucket;
399
+ againstVotes?: string;
400
+ forVotes?: string;
401
+ abstainVotes?: string;
402
+ };
403
+ type ContinuumDaoLiveProposalsResult = {
404
+ overlay: 'on-chain' | 'backend-only';
405
+ scanned: number;
406
+ live: LiveProposalRow[];
407
+ pending: LiveProposalRow[];
408
+ readyToExecute: LiveProposalRow[];
409
+ recentlyCompleted: LiveProposalRow[];
410
+ unknown: LiveProposalRow[];
411
+ note: string;
412
+ };
413
+ declare function summarizeLiveProposals(result: Omit<ContinuumDaoLiveProposalsResult, 'note'>): string;
414
+ declare function continuumDaoFetchLiveProposals(args: {
415
+ chainId?: number | string;
416
+ rpcUrl?: string;
417
+ governor?: string;
418
+ limit?: number;
419
+ completedLimit?: number;
420
+ }): Promise<ContinuumDaoLiveProposalsResult>;
421
+ declare function continuumDaoFetchProposal(args: {
422
+ id: string | number;
423
+ }): Promise<{
424
+ proposal: unknown;
425
+ }>;
426
+ type ContinuumDaoRegisterProposalPayload = {
427
+ onchainId: string;
428
+ title: string;
429
+ description: string;
430
+ proposer: string;
431
+ forumKey: string;
432
+ type: number;
433
+ configuration: 0 | 1;
434
+ actions?: unknown[];
435
+ options?: unknown[];
436
+ };
437
+ declare function buildEvmMultisignBodyContinuumDaoProposeDeltaFromMcp(args: ContinuumDaoCommonArgs & {
438
+ title: string;
439
+ options: GovOptionInput[];
440
+ nWinners: string | number;
441
+ governor?: string;
442
+ noOpTarget?: string;
443
+ forumKey: string;
444
+ forumUrl?: string;
445
+ }): Promise<{
446
+ bodyForSign: Record<string, unknown>;
447
+ messageToSign: string;
448
+ proposalArgs: ReturnType<typeof buildDeltaProposalArgs>;
449
+ }>;
450
+ declare function buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp(args: ContinuumDaoCommonArgs & {
451
+ proposalId: string | number | bigint;
452
+ support: 0 | 1 | 2 | string;
453
+ governor?: string;
454
+ }): Promise<{
455
+ bodyForSign: Record<string, unknown>;
456
+ messageToSign: string;
457
+ }>;
458
+ declare function continuumDaoRegisterProposal(payload: ContinuumDaoRegisterProposalPayload): Promise<{
459
+ ok: true;
460
+ result: unknown;
461
+ }>;
462
+
463
+ declare const PROPOSAL_TYPE_LABELS: readonly ["Admin", "Constitution", "Decision", "Election", "Treasury"];
464
+ type ExplainedAction = {
465
+ line: string;
466
+ noOp: boolean;
467
+ networkLabel: string;
468
+ chainId: string;
469
+ viaC3: boolean;
470
+ target: string;
471
+ value: string;
472
+ signature: string;
473
+ flags: string[];
474
+ };
475
+ type ExplainedOption = {
476
+ label: string;
477
+ actions: ExplainedAction[];
478
+ };
479
+ type ContinuumDaoExplainProposalResult = {
480
+ id?: number;
481
+ onchainId: string;
482
+ title: string;
483
+ description: string;
484
+ proposer: string;
485
+ forumKey: string;
486
+ forumSection?: string | null;
487
+ forumCid?: number | null;
488
+ typeLabel: string;
489
+ configuration: 'bravo' | 'delta';
490
+ nWinners?: number;
491
+ briefing: string;
492
+ actions: ExplainedAction[];
493
+ options: ExplainedOption[];
494
+ risks: string[];
495
+ };
496
+ declare function isGovNoOpAction(action: {
497
+ target?: string;
498
+ value?: string;
499
+ signature?: string;
500
+ calldata?: string;
501
+ }): boolean;
502
+ declare function explainGovAction(raw: unknown): ExplainedAction;
503
+ declare function explainProposalRecord(raw: unknown): ContinuumDaoExplainProposalResult;
504
+ declare function continuumDaoExplainProposal(args: {
505
+ id?: string | number;
506
+ onchainId?: string;
507
+ forumUrl?: string;
508
+ }): Promise<ContinuumDaoExplainProposalResult>;
509
+
510
+ declare const FORUM_GOVERNANCE_SECTIONS: readonly ["decision", "election", "treasury", "constitution", "admin"];
511
+ type ForumGovernanceSection = (typeof FORUM_GOVERNANCE_SECTIONS)[number];
512
+ declare const FORUM_IDEA_SECTION: "ideas";
513
+ declare const PROPOSAL_TYPE_TO_FORUM_SECTION: Record<string, ForumGovernanceSection>;
514
+ declare function expectedForumSectionForProposalType(typeLabel: string): ForumGovernanceSection | null;
515
+ declare function isForumIdeaSection(section?: string): boolean;
516
+ declare function applyForumSectionCheck<T extends {
517
+ typeLabel: string;
518
+ briefing: string;
519
+ risks: string[];
520
+ }>(out: T, section: string | null | undefined, cid?: number | null): T & {
521
+ forumSection: string | null;
522
+ forumCid: number | null;
523
+ };
524
+ declare const FORUM_LOGIN_DELIVERY_KIND: "forumLogin";
525
+ declare function continuumDaoForumUrl(explicit?: string): string;
526
+ /** Homepage or empty string is refused. A proposal must point at a created /topic/:tid or /t/:tid. */
527
+ declare function assertContinuumDaoForumTopicKey(forumKey: string, forumUrl?: string): string;
528
+ declare function continuumDaoForumResolve(args: {
529
+ url?: string;
530
+ tid?: string | number;
531
+ forumUrl?: string;
532
+ }): Promise<any>;
533
+ declare function continuumDaoForumFetchThread(args: {
534
+ url?: string;
535
+ tid?: string | number;
536
+ index?: number;
537
+ start?: number;
538
+ limit?: number;
539
+ forumUrl?: string;
540
+ }): Promise<any>;
541
+ declare function continuumDaoForumReplyCount(args: {
542
+ url?: string;
543
+ tid?: string | number;
544
+ forumUrl?: string;
545
+ }): Promise<any>;
546
+ declare function continuumDaoForumFetchPost(args: {
547
+ pid: string | number;
548
+ forumUrl?: string;
549
+ }): Promise<any>;
550
+ declare function assertContinuumDaoForumSearchInput(args: {
551
+ query?: string;
552
+ hours?: number;
553
+ since?: string;
554
+ }): void;
555
+ declare function assertContinuumDaoForumRecentInput(args: {
556
+ hours?: number;
557
+ since?: string;
558
+ }): void;
559
+ /** Search thread titles (original posts) and post bodies. Returns `{ id, title, username, timestamp, createdAt }` (`id` is pid). */
560
+ declare function continuumDaoForumSearch(args: {
561
+ query?: string;
562
+ hours?: number;
563
+ since?: string;
564
+ start?: number;
565
+ limit?: number;
566
+ forumUrl?: string;
567
+ }): Promise<any>;
568
+ /** Newest readable posts across the whole forum. Returns `{ id, title, username, timestamp, createdAt }`. */
569
+ declare function continuumDaoForumRecent(args: {
570
+ hours?: number;
571
+ since?: string;
572
+ start?: number;
573
+ limit?: number;
574
+ ticket?: string;
575
+ forumUrl?: string;
576
+ }): Promise<any>;
577
+ declare function assertContinuumDaoForumDeleteInput(args: {
578
+ pid?: string | number;
579
+ tid?: string | number;
580
+ url?: string;
581
+ username?: string;
582
+ hours?: number;
583
+ since?: string;
584
+ ticket?: string;
585
+ }): void;
586
+ /** Admin/moderator soft-delete. Recency (`hours` / `since`) is optional; default is all. */
587
+ declare function continuumDaoForumDelete(args: {
588
+ pid?: string | number;
589
+ tid?: string | number;
590
+ url?: string;
591
+ username?: string;
592
+ hours?: number;
593
+ since?: string;
594
+ ticket?: string;
595
+ forumUrl?: string;
596
+ }): Promise<any>;
597
+ declare function continuumDaoForumUserPostIds(args: {
598
+ username: string;
599
+ start?: number;
600
+ limit?: number;
601
+ forumUrl?: string;
602
+ }): Promise<any>;
603
+ declare function continuumDaoForumReply(args: {
604
+ url?: string;
605
+ tid?: string | number;
606
+ content: string;
607
+ toPid?: number;
608
+ ticket?: string;
609
+ forumUrl?: string;
610
+ }): Promise<any>;
611
+ declare function continuumDaoForumReact(args: {
612
+ pid: string | number;
613
+ emoji: string;
614
+ ticket?: string;
615
+ forumUrl?: string;
616
+ }): Promise<any>;
617
+ declare function continuumDaoForumCreateTopic(args: {
618
+ section?: string;
619
+ cid?: number;
620
+ title: string;
621
+ content: string;
622
+ ticket?: string;
623
+ forumUrl?: string;
624
+ }): Promise<any>;
625
+ /** Informal Ideas & Suggestions post. Not a proposal and not a valid forumKey. */
626
+ declare function continuumDaoForumCreateIdea(args: {
627
+ title: string;
628
+ content: string;
629
+ ticket?: string;
630
+ forumUrl?: string;
631
+ }): Promise<any>;
632
+ declare function continuumDaoForumMe(args?: {
633
+ ticket?: string;
634
+ forumUrl?: string;
635
+ }): Promise<any>;
636
+ declare function assertContinuumDaoForumMarkReadInput(args: {
637
+ ticket?: string;
638
+ tid?: string | number;
639
+ url?: string;
640
+ tids?: Array<string | number>;
641
+ all?: boolean;
642
+ }): void;
643
+ declare function continuumDaoForumUnread(args: {
644
+ ticket?: string;
645
+ filter?: string;
646
+ start?: number;
647
+ limit?: number;
648
+ forumUrl?: string;
649
+ }): Promise<any>;
650
+ declare function continuumDaoForumMarkRead(args: {
651
+ ticket?: string;
652
+ tid?: string | number;
653
+ url?: string;
654
+ tids?: Array<string | number>;
655
+ all?: boolean;
656
+ forumUrl?: string;
657
+ }): Promise<any>;
658
+ declare function continuumDaoForumMarkUnread(args: {
659
+ ticket?: string;
660
+ tid?: string | number;
661
+ url?: string;
662
+ forumUrl?: string;
663
+ }): Promise<any>;
664
+ declare function continuumDaoForumSections(args?: {
665
+ forumUrl?: string;
666
+ }): Promise<any>;
667
+ declare function continuumDaoForumSignOut(args?: {
668
+ ticket?: string;
669
+ forumUrl?: string;
670
+ }): Promise<any>;
671
+ type ForumSignInEligible = {
672
+ ok: boolean;
673
+ eligible: boolean;
674
+ address?: string;
675
+ reason?: string;
676
+ };
677
+ declare function continuumDaoForumSignInEligible(args: {
678
+ address: string;
679
+ forumUrl?: string;
680
+ }): Promise<ForumSignInEligible>;
681
+ declare function continuumDaoForumSignInNonce(args: {
682
+ address: string;
683
+ nodeKey?: string;
684
+ username?: string;
685
+ forumUrl?: string;
686
+ }): Promise<any>;
687
+ declare function buildEvmMultisignBodyContinuumDaoForumSignIn(args: {
688
+ keyGen: KeyGenSubset;
689
+ executorAddress: string;
690
+ chainId: number;
691
+ purposeText: string;
692
+ nodeKey?: string;
693
+ username?: string;
694
+ forumUrl?: string;
695
+ expiryDate?: number;
696
+ }): Promise<MultisignBuildResult>;
697
+
698
+ declare const continuumDaoProtocolModule: ProtocolModule;
699
+
700
+ export { ATTACH_VECTM_SIGNATURE, CONTINUUM_DAO_APPROVE_FALLBACK, CONTINUUM_DAO_ATTACH_FALLBACK, CONTINUUM_DAO_CANCEL_FALLBACK, CONTINUUM_DAO_CREATE_LOCK_FALLBACK, CONTINUUM_DAO_DELEGATE_FALLBACK, CONTINUUM_DAO_DEPLOYMENTS, CONTINUUM_DAO_DETACH_FALLBACK, CONTINUUM_DAO_ETHEREUM_CHAIN_ID, CONTINUUM_DAO_EVM_TYPES, CONTINUUM_DAO_EXECUTE_FALLBACK, CONTINUUM_DAO_GOVERNANCE_API, CONTINUUM_DAO_GOV_EVM_TYPES, CONTINUUM_DAO_INCREASE_AMOUNT_FALLBACK, CONTINUUM_DAO_INCREASE_UNLOCK_FALLBACK, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CONTINUUM_DAO_LIQUIDATE_FALLBACK, CONTINUUM_DAO_MERGE_FALLBACK, CONTINUUM_DAO_PROPOSE_FALLBACK, CONTINUUM_DAO_PROTOCOL_ID, CONTINUUM_DAO_SPLIT_FALLBACK, CONTINUUM_DAO_TRANSFER_FALLBACK, CONTINUUM_DAO_VOTE_FALLBACK, CONTINUUM_DAO_WITHDRAW_FALLBACK, CTM_TOKEN_DECIMALS, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, type ContinuumDaoCommonArgs, type ContinuumDaoDefaultAsset, type ContinuumDaoDeployment, type ContinuumDaoExplainProposalResult, type ContinuumDaoLiveProposalsResult, type ContinuumDaoNodeInfoTuple, type ContinuumDaoRegisterProposalPayload, type ExplainedAction, type ExplainedOption, FORUM_GOVERNANCE_SECTIONS, FORUM_IDEA_SECTION, FORUM_LOGIN_DELIVERY_KIND, type ForumGovernanceSection, type ForumSignInEligible, GOVERNOR_STATE, GOVERNOR_STATE_LABELS, type GovActionInput, type GovOptionInput, type LiveProposalBucket, type LiveProposalRow, MAXTIME_SECONDS, PROPOSAL_TYPE_LABELS, PROPOSAL_TYPE_TO_FORUM_SECTION, VECTM_NODE_INFO_TUPLE, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, WEEK_SECONDS, applyForumSectionCheck, assertContinuumDaoForumDeleteInput, assertContinuumDaoForumMarkReadInput, assertContinuumDaoForumRecentInput, assertContinuumDaoForumSearchInput, assertContinuumDaoForumTopicKey, bucketGovernorState, buildBravoProposalArgs, buildDeltaProposalArgs, buildEvmMultisignBodyContinuumDaoAttachVeCtm, buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp, buildEvmMultisignBodyContinuumDaoCancel, buildEvmMultisignBodyContinuumDaoCastVoteBravo, buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp, buildEvmMultisignBodyContinuumDaoCastVoteDelta, buildEvmMultisignBodyContinuumDaoCreateLock, buildEvmMultisignBodyContinuumDaoDelegate, buildEvmMultisignBodyContinuumDaoExecute, buildEvmMultisignBodyContinuumDaoForumSignIn, buildEvmMultisignBodyContinuumDaoIncreaseAmount, buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime, buildEvmMultisignBodyContinuumDaoLiquidate, buildEvmMultisignBodyContinuumDaoMerge, buildEvmMultisignBodyContinuumDaoProposeBravo, buildEvmMultisignBodyContinuumDaoProposeDelta, buildEvmMultisignBodyContinuumDaoProposeDeltaFromMcp, buildEvmMultisignBodyContinuumDaoRequestDetach, buildEvmMultisignBodyContinuumDaoSplit, buildEvmMultisignBodyContinuumDaoTransfer, buildEvmMultisignBodyContinuumDaoUndelegate, buildEvmMultisignBodyContinuumDaoWithdraw, continuumDaoDeployment, continuumDaoExplainProposal, continuumDaoFetchDelegates, continuumDaoFetchLiveProposals, continuumDaoFetchProposal, continuumDaoFetchProposalCount, continuumDaoFetchProposalState, continuumDaoFetchProposals, continuumDaoFetchVotingPower, continuumDaoForumCreateIdea, continuumDaoForumCreateTopic, continuumDaoForumDelete, continuumDaoForumFetchPost, continuumDaoForumFetchThread, continuumDaoForumMarkRead, continuumDaoForumMarkUnread, continuumDaoForumMe, continuumDaoForumReact, continuumDaoForumRecent, continuumDaoForumReply, continuumDaoForumReplyCount, continuumDaoForumResolve, continuumDaoForumSearch, continuumDaoForumSections, continuumDaoForumSignInEligible, continuumDaoForumSignInNonce, continuumDaoForumSignOut, continuumDaoForumUnread, continuumDaoForumUrl, continuumDaoForumUserPostIds, continuumDaoHashProposal, continuumDaoProtocolModule, continuumDaoRegisterProposal, ctmTokenAddressOnEvmChain, encodeContinuumDaoNodeInfo, encodeDeltaMetadata, encodeDeltaVoteParams, encodeGovActionCalldata, expectedForumSectionForProposalType, explainGovAction, explainProposalRecord, governorAddressOnEvmChain, isConfiguredAddress, isContinuumDaoCtmOnAssetsChain, isContinuumDaoLockChain, isContinuumDaoSupportedChainId, isContinuumDaoVeCtmOnAssetsChain, isCtmTokenSymbol, isForumIdeaSection, isGovNoOpAction, isVotingEscrowContinuumName, listContinuumDaoDefaultAssets, proposalDescriptionHash, summarizeLiveProposals, votingEscrowAddressOnEvmChain };