@continuumdao/ctm-mpc-defi 0.2.37 → 0.2.38
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/dist/agent/catalog.cjs +49 -38
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +722 -2
- package/dist/agent/catalog.js +49 -38
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/continuum-dao/SKILL.md +18 -2
- package/dist/{buildBatch-CngvebiD.d.ts → buildBatch-tsEUVn_a.d.ts} +3 -3
- package/dist/chains/evm/index.cjs +33 -22
- package/dist/chains/evm/index.cjs.map +1 -1
- package/dist/chains/evm/index.d.ts +10 -6
- package/dist/chains/evm/index.js +33 -22
- package/dist/chains/evm/index.js.map +1 -1
- package/dist/chains/near/index.d.ts +1 -1
- package/dist/chains/solana/index.d.ts +1 -1
- package/dist/core/index.d.ts +5 -5
- package/dist/{eip712Multisign-DCW7heqX.d.ts → eip712Multisign-6oNIlObj.d.ts} +1 -1
- package/dist/{envelope-C_bfuKab.d.ts → envelope-Cm-llShH.d.ts} +1 -1
- package/dist/index.cjs +33 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +33 -22
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +1 -1
- package/dist/protocols/evm/aerodrome/index.d.ts +4 -4
- package/dist/protocols/evm/arcus/index.d.ts +2 -2
- package/dist/protocols/evm/circle-cctp/index.d.ts +2 -2
- package/dist/protocols/evm/compound-v3/index.d.ts +1 -1
- package/dist/protocols/evm/continuum-dao/index.cjs +797 -46
- package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.d.ts +189 -5
- package/dist/protocols/evm/continuum-dao/index.js +759 -48
- package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
- package/dist/protocols/evm/curve-dao/index.d.ts +2 -2
- package/dist/protocols/evm/ethena/index.d.ts +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +33 -22
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +1 -1
- package/dist/protocols/evm/euler-v2/index.js +33 -22
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/gmx/index.d.ts +2 -2
- package/dist/protocols/evm/hyperliquid/index.d.ts +2 -2
- package/dist/protocols/evm/lido/index.d.ts +1 -1
- package/dist/protocols/evm/maple/index.d.ts +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +1 -1
- package/dist/protocols/evm/pendle/index.d.ts +4 -4
- package/dist/protocols/evm/permit2/index.d.ts +1 -1
- package/dist/protocols/evm/sky/index.d.ts +1 -1
- package/dist/protocols/evm/uniswap-v4/index.d.ts +3 -3
- package/dist/protocols/evm/venice/index.d.ts +1 -1
- package/dist/{registry-DxDSPQ-p.d.ts → registry-BvsXh0-r.d.ts} +1 -1
- package/dist/{types-RZWOTm8c.d.ts → types-RJpoU4Pc.d.ts} +1 -1
- package/dist/{types-PZrvtjv8.d.ts → types-lIfv59N1.d.ts} +2 -0
- package/package.json +1 -1
package/dist/agent/catalog.js
CHANGED
|
@@ -1063,7 +1063,9 @@ var evmAddressSchema = z.string().min(1).describe("EVM address (0x-prefixed, 40
|
|
|
1063
1063
|
var keyGenSchema = z.object({
|
|
1064
1064
|
pubkeyhex: z.string().min(1).describe("MPC secp256k1 public key hex (required for multiSignRequest pubKey)"),
|
|
1065
1065
|
keylist: z.array(z.string()).optional().describe("Key list on the sign request"),
|
|
1066
|
-
ClientKeys: z.record(z.string()).optional().describe("Optional client key map from keyGen")
|
|
1066
|
+
ClientKeys: z.record(z.string()).optional().describe("Optional client key map from keyGen"),
|
|
1067
|
+
groupId: z.string().optional().describe("mpc-auth GroupId of this KeyGen (server-filled from getKeyGenGroupId)"),
|
|
1068
|
+
GroupId: z.string().optional().describe("Alias for groupId from KeyGen result payloads")
|
|
1067
1069
|
}).describe(
|
|
1068
1070
|
"MPC key slice: { pubkeyhex, keylist?, ClientKeys? }. Used for pubKey/keyList on POST /multiSignRequest."
|
|
1069
1071
|
);
|
|
@@ -2804,8 +2806,8 @@ var mcpMorphoMidnightRepayInputSchema = withMultisignKeySourceRefine(
|
|
|
2804
2806
|
)
|
|
2805
2807
|
);
|
|
2806
2808
|
var mcpContinuumDaoCreateLockInputSchema = mcpMultisignInput({
|
|
2807
|
-
amountHuman: z.string().min(1).describe("CTM amount to lock"),
|
|
2808
|
-
lockDurationSeconds: z.union([z.string(), z.number()]).describe("Lock duration in seconds"),
|
|
2809
|
+
amountHuman: z.string().min(1).describe("CTM amount to lock. Must be >= VotingEscrow.minimumLock (default 1 CTM)."),
|
|
2810
|
+
lockDurationSeconds: z.union([z.string(), z.number()]).describe("Lock duration in seconds. Must be 1\u2013208 weeks (week-aligned on-chain)."),
|
|
2809
2811
|
ctm: evmAddressSchema.optional(),
|
|
2810
2812
|
votingEscrow: evmAddressSchema.optional()
|
|
2811
2813
|
});
|
|
@@ -2822,7 +2824,7 @@ var mcpContinuumDaoIncreaseUnlockTimeInputSchema = mcpMultisignInput({
|
|
|
2822
2824
|
});
|
|
2823
2825
|
var mcpContinuumDaoSplitInputSchema = mcpMultisignInput({
|
|
2824
2826
|
tokenId: z.union([z.string(), z.number()]),
|
|
2825
|
-
extractedHuman: z.string().min(1),
|
|
2827
|
+
extractedHuman: z.string().min(1).describe("CTM extracted into the new lock. Minimum 1 CTM; original lock must also keep 1 CTM."),
|
|
2826
2828
|
votingEscrow: evmAddressSchema.optional()
|
|
2827
2829
|
});
|
|
2828
2830
|
var mcpContinuumDaoMergeInputSchema = mcpMultisignInput({
|
|
@@ -5448,8 +5450,14 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5448
5450
|
actionId: "continuum-dao.create-lock",
|
|
5449
5451
|
protocolId: "continuum-dao",
|
|
5450
5452
|
chainCategory: "evm",
|
|
5451
|
-
description: "Build batch: CTM approve (if needed) + VotingEscrow.create_lock. Linea only. Do not prepend billing legs.",
|
|
5452
|
-
prerequisites: [
|
|
5453
|
+
description: "Build batch: CTM approve (if needed) + VotingEscrow.create_lock. Amount must be >= on-chain minimumLock (default 1 CTM). Duration 1\u2013208 weeks. Linea only. Do not prepend billing legs.",
|
|
5454
|
+
prerequisites: [
|
|
5455
|
+
"keyGen",
|
|
5456
|
+
"executorAddress",
|
|
5457
|
+
"Linea RPC",
|
|
5458
|
+
"amountHuman >= 1 CTM (or live minimumLock)",
|
|
5459
|
+
"lockDurationSeconds 1\u2013208 weeks"
|
|
5460
|
+
],
|
|
5453
5461
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCreateLock" },
|
|
5454
5462
|
inputZod: mcpContinuumDaoCreateLockInputSchema
|
|
5455
5463
|
}),
|
|
@@ -5458,8 +5466,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5458
5466
|
actionId: "continuum-dao.increase-amount",
|
|
5459
5467
|
protocolId: "continuum-dao",
|
|
5460
5468
|
chainCategory: "evm",
|
|
5461
|
-
description: "Build batch: CTM approve (if needed) + increase_amount.",
|
|
5462
|
-
prerequisites: ["keyGen", "tokenId", "Linea RPC"],
|
|
5469
|
+
description: "Build batch: CTM approve (if needed) + increase_amount. Refuses expired locks, zero amount, and amounts above KeyGen CTM balance.",
|
|
5470
|
+
prerequisites: ["keyGen", "tokenId", "unexpired lock", "Linea RPC"],
|
|
5463
5471
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoIncreaseAmount" },
|
|
5464
5472
|
inputZod: mcpContinuumDaoIncreaseAmountInputSchema
|
|
5465
5473
|
}),
|
|
@@ -5468,8 +5476,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5468
5476
|
actionId: "continuum-dao.increase-unlock-time",
|
|
5469
5477
|
protocolId: "continuum-dao",
|
|
5470
5478
|
chainCategory: "evm",
|
|
5471
|
-
description: "Build increase_unlock_time. lockDurationSeconds is from the week boundary to the new unlock.",
|
|
5472
|
-
prerequisites: ["keyGen", "tokenId", "Linea RPC"],
|
|
5479
|
+
description: "Build increase_unlock_time. lockDurationSeconds is from the week boundary to the new unlock (1\u2013208 weeks) and must land after the current lock end.",
|
|
5480
|
+
prerequisites: ["keyGen", "tokenId", "unexpired lock", "Linea RPC"],
|
|
5473
5481
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime" },
|
|
5474
5482
|
inputZod: mcpContinuumDaoIncreaseUnlockTimeInputSchema
|
|
5475
5483
|
}),
|
|
@@ -5478,8 +5486,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5478
5486
|
actionId: "continuum-dao.split",
|
|
5479
5487
|
protocolId: "continuum-dao",
|
|
5480
5488
|
chainCategory: "evm",
|
|
5481
|
-
description: "Build VotingEscrow.split.
|
|
5482
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5489
|
+
description: "Build VotingEscrow.split. New lock and remainder must each keep at least minimumLock (default 1 CTM). Blocked while node-attached or expired.",
|
|
5490
|
+
prerequisites: ["keyGen", "tokenId", "extractedHuman >= 1 CTM", "remainder >= 1 CTM", "unattached lock"],
|
|
5483
5491
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoSplit" },
|
|
5484
5492
|
inputZod: mcpContinuumDaoSplitInputSchema
|
|
5485
5493
|
}),
|
|
@@ -5488,8 +5496,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5488
5496
|
actionId: "continuum-dao.merge",
|
|
5489
5497
|
protocolId: "continuum-dao",
|
|
5490
5498
|
chainCategory: "evm",
|
|
5491
|
-
description: "Build VotingEscrow.merge. Blocked
|
|
5492
|
-
prerequisites: ["keyGen", "fromTokenId", "toTokenId", "
|
|
5499
|
+
description: "Build VotingEscrow.merge. Both NFTs must be owned by the KeyGen and unattached. Blocked if either token is node-attached.",
|
|
5500
|
+
prerequisites: ["keyGen", "fromTokenId", "toTokenId", "same owner", "neither attached"],
|
|
5493
5501
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoMerge" },
|
|
5494
5502
|
inputZod: mcpContinuumDaoMergeInputSchema
|
|
5495
5503
|
}),
|
|
@@ -5498,8 +5506,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5498
5506
|
actionId: "continuum-dao.withdraw",
|
|
5499
5507
|
protocolId: "continuum-dao",
|
|
5500
5508
|
chainCategory: "evm",
|
|
5501
|
-
description: "Build VotingEscrow.withdraw for an expired, unattached lock.",
|
|
5502
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5509
|
+
description: "Build VotingEscrow.withdraw for an expired, unattached lock. Refuses if still locked or node-attached.",
|
|
5510
|
+
prerequisites: ["keyGen", "tokenId", "lock expired", "unattached"],
|
|
5503
5511
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoWithdraw" },
|
|
5504
5512
|
inputZod: mcpContinuumDaoTokenIdInputSchema
|
|
5505
5513
|
}),
|
|
@@ -5508,8 +5516,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5508
5516
|
actionId: "continuum-dao.liquidate",
|
|
5509
5517
|
protocolId: "continuum-dao",
|
|
5510
5518
|
chainCategory: "evm",
|
|
5511
|
-
description: "Build VotingEscrow.liquidate.
|
|
5512
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5519
|
+
description: "Build VotingEscrow.liquidate. Refuses if attached, liquidations disabled, locked amount <= 100 gwei, or penalty would be zero. Expired locks withdraw instead on-chain.",
|
|
5520
|
+
prerequisites: ["keyGen", "tokenId", "liquidationsEnabled", "unattached"],
|
|
5513
5521
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoLiquidate" },
|
|
5514
5522
|
inputZod: mcpContinuumDaoTokenIdInputSchema
|
|
5515
5523
|
}),
|
|
@@ -5518,7 +5526,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5518
5526
|
actionId: "continuum-dao.delegate",
|
|
5519
5527
|
protocolId: "continuum-dao",
|
|
5520
5528
|
chainCategory: "evm",
|
|
5521
|
-
description: "Build VotingEscrow.delegate(delegatee). Moves all veCTM voting power from the KeyGen to delegatee. Governor getVotes is then at the delegatee.
|
|
5529
|
+
description: "Build VotingEscrow.delegate(delegatee). Moves all veCTM voting power from the KeyGen to delegatee. Refuses the zero address and this KeyGen (use undelegate). Governor getVotes is then at the delegatee. Does not change the fee waiver or VPN gate \u2014 those use the attached NFT balanceOfNFTAt at UTC month start, not getVotes.",
|
|
5522
5530
|
prerequisites: ["keyGen", "delegatee", "Linea RPC"],
|
|
5523
5531
|
followUp: ["ctm_continuum_dao_fetch_delegates", "ctm_continuum_dao_build_undelegate_multisign"],
|
|
5524
5532
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoDelegate" },
|
|
@@ -5529,7 +5537,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5529
5537
|
actionId: "continuum-dao.undelegate",
|
|
5530
5538
|
protocolId: "continuum-dao",
|
|
5531
5539
|
chainCategory: "evm",
|
|
5532
|
-
description: "Return veCTM voting power to the KeyGen. There is no undelegate() on VotingEscrow \u2014 this calls delegate(self).
|
|
5540
|
+
description: "Return veCTM voting power to the KeyGen. There is no undelegate() on VotingEscrow \u2014 this calls delegate(self). Refuses if power is already at this KeyGen.",
|
|
5533
5541
|
prerequisites: ["keyGen", "Linea RPC"],
|
|
5534
5542
|
followUp: ["ctm_continuum_dao_fetch_delegates"],
|
|
5535
5543
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoUndelegate" },
|
|
@@ -5540,8 +5548,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5540
5548
|
actionId: "continuum-dao.transfer",
|
|
5541
5549
|
protocolId: "continuum-dao",
|
|
5542
5550
|
chainCategory: "evm",
|
|
5543
|
-
description: "Build VotingEscrow.transferFrom.
|
|
5544
|
-
prerequisites: ["keyGen", "tokenId", "to", "
|
|
5551
|
+
description: "Build VotingEscrow.transferFrom. Refuses node-attached tokens, the zero address, and self-transfers.",
|
|
5552
|
+
prerequisites: ["keyGen", "tokenId", "to", "unattached"],
|
|
5545
5553
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoTransfer" },
|
|
5546
5554
|
inputZod: mcpContinuumDaoTransferInputSchema
|
|
5547
5555
|
}),
|
|
@@ -5550,8 +5558,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5550
5558
|
actionId: "continuum-dao.attach",
|
|
5551
5559
|
protocolId: "continuum-dao",
|
|
5552
5560
|
chainCategory: "evm",
|
|
5553
|
-
description: "Build MultiSignAgentWallet.attachVeCtm.
|
|
5554
|
-
prerequisites: ["keyGen", "
|
|
5561
|
+
description: "Build MultiSignAgentWallet.attachVeCtm(nodeKey, tokenId, nodeInfo, groupId). groupId is the attaching KeyGen's mpc-auth GroupId (server-filled; do not pick another group) and binds the fee waiver immediately. Caller must be nodeWithdrawAuthority and own the NFT. This KeyGen cannot attach a second NFT; a second group on the same node attaches after rotating authority to that group's secp256k1 KeyGen. Locked CTM must meet veCtmThresholdPower at attach; the monthly waiver/VPN then use that NFT's balanceOfNFTAt at UTC month start (governor getVotes and inbound delegation do not count). No billing legs.",
|
|
5562
|
+
prerequisites: ["keyGen is nodeWithdrawAuthority", "owns tokenId", "this KeyGen has no attach", "mpaWallet"],
|
|
5555
5563
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp" },
|
|
5556
5564
|
inputZod: mcpContinuumDaoAttachInputSchema
|
|
5557
5565
|
}),
|
|
@@ -5560,8 +5568,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5560
5568
|
actionId: "continuum-dao.request-detach",
|
|
5561
5569
|
protocolId: "continuum-dao",
|
|
5562
5570
|
chainCategory: "evm",
|
|
5563
|
-
description: "Build NodeProperties.setNodeRemovalStatus(tokenId, true).
|
|
5564
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5571
|
+
description: "Build NodeProperties.setNodeRemovalStatus(tokenId, true). Compose from the KeyGen that owns the attached NFT (not the current withdraw authority unless they are the same). Refuses if not attached or detach already requested. Only governance detachNode actually detaches.",
|
|
5572
|
+
prerequisites: ["keyGen is attached owner", "tokenId attached", "detach not already requested"],
|
|
5565
5573
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoRequestDetach" },
|
|
5566
5574
|
inputZod: mcpContinuumDaoRequestDetachInputSchema
|
|
5567
5575
|
}),
|
|
@@ -5604,8 +5612,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5604
5612
|
actionId: "continuum-dao.cast-vote-bravo",
|
|
5605
5613
|
protocolId: "continuum-dao",
|
|
5606
5614
|
chainCategory: "evm",
|
|
5607
|
-
description: "Build ContinuumDAO.castVote. support: 0 against, 1 for, 2 abstain.",
|
|
5608
|
-
prerequisites: ["keyGen", "proposalId", "Active proposal"],
|
|
5615
|
+
description: "Build ContinuumDAO.castVote. support: 0 against, 1 for, 2 abstain. Refuses unless the proposal is Active, the KeyGen has snapshot voting power, and has not already voted.",
|
|
5616
|
+
prerequisites: ["keyGen", "proposalId", "Active proposal", "snapshot votes > 0", "hasVoted false"],
|
|
5609
5617
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp" },
|
|
5610
5618
|
inputZod: mcpContinuumDaoCastVoteBravoInputSchema
|
|
5611
5619
|
}),
|
|
@@ -5614,8 +5622,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5614
5622
|
actionId: "continuum-dao.cast-vote-delta",
|
|
5615
5623
|
protocolId: "continuum-dao",
|
|
5616
5624
|
chainCategory: "evm",
|
|
5617
|
-
description: "Build ContinuumDAO.castVoteWithReasonAndParams. weights must be nOptions + 1 (final slot is NOTA).",
|
|
5618
|
-
prerequisites: ["keyGen", "proposalId", "weights including NOTA"],
|
|
5625
|
+
description: "Build ContinuumDAO.castVoteWithReasonAndParams. weights must be nOptions + 1 (final slot is NOTA). Same Active / snapshot / hasVoted gates as Bravo.",
|
|
5626
|
+
prerequisites: ["keyGen", "proposalId", "weights including NOTA", "Active proposal", "snapshot votes > 0"],
|
|
5619
5627
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCastVoteDelta" },
|
|
5620
5628
|
inputZod: mcpContinuumDaoCastVoteDeltaInputSchema
|
|
5621
5629
|
}),
|
|
@@ -9575,15 +9583,18 @@ var UNSET = {
|
|
|
9575
9583
|
rewards: zeroAddress,
|
|
9576
9584
|
governor: zeroAddress
|
|
9577
9585
|
};
|
|
9586
|
+
var CTM_TOKEN_ADDRESS = getAddress("0x2026027054F5beBCEB650aBD62dC623e327658e7");
|
|
9587
|
+
var VOTING_ESCROW_LINEA_ADDRESS = getAddress("0x221EC90B3B083A8501A37bdeb7035CeaedF3C31f");
|
|
9578
9588
|
var CONTINUUM_DAO_DEPLOYMENTS = {
|
|
9579
|
-
[CONTINUUM_DAO_LINEA_CHAIN_ID]: {
|
|
9589
|
+
[CONTINUUM_DAO_LINEA_CHAIN_ID]: {
|
|
9590
|
+
...UNSET,
|
|
9591
|
+
ctm: CTM_TOKEN_ADDRESS,
|
|
9592
|
+
votingEscrow: VOTING_ESCROW_LINEA_ADDRESS
|
|
9593
|
+
},
|
|
9580
9594
|
[CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID]: { ...UNSET },
|
|
9581
9595
|
[CONTINUUM_DAO_ETHEREUM_CHAIN_ID]: {
|
|
9582
|
-
|
|
9583
|
-
|
|
9584
|
-
nodeProperties: zeroAddress,
|
|
9585
|
-
rewards: zeroAddress,
|
|
9586
|
-
governor: zeroAddress
|
|
9596
|
+
...UNSET,
|
|
9597
|
+
ctm: CTM_TOKEN_ADDRESS
|
|
9587
9598
|
}
|
|
9588
9599
|
};
|
|
9589
9600
|
function isConfiguredAddress(addr) {
|
|
@@ -9667,7 +9678,7 @@ var continuumDaoProtocolModule = {
|
|
|
9667
9678
|
{ id: "continuum-dao.undelegate", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Return voting power to the KeyGen (delegate to self)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
9668
9679
|
{ id: "continuum-dao.fetch-delegates", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Read VotingEscrow.delegates(account)", commonParams: [], params: { account: { type: "string", required: true, description: "KeyGen or wallet address" } } },
|
|
9669
9680
|
{ id: "continuum-dao.transfer", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Transfer a veCTM NFT", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { tokenId: { type: "string", required: true, description: "veCTM token id" }, to: { type: "string", required: true, description: "Recipient" } } },
|
|
9670
|
-
{ id: "continuum-dao.attach", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Attach veCTM to the node (authority KeyGen)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { nodeKey: { type: "string", required: true, description: "Node key" }, tokenId: { type: "string", required: true, description: "veCTM token id" }, mpaWallet: { type: "string", required: true, description: "MultiSignAgentWallet address" } } },
|
|
9681
|
+
{ id: "continuum-dao.attach", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Attach veCTM to the node (authority KeyGen). groupId is implicit from that KeyGen and binds the fee waiver. A second group attaches after rotating authority.", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { nodeKey: { type: "string", required: true, description: "Node key" }, tokenId: { type: "string", required: true, description: "veCTM token id" }, mpaWallet: { type: "string", required: true, description: "MultiSignAgentWallet address" } } },
|
|
9671
9682
|
{ id: "continuum-dao.request-detach", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Request governance detach", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { tokenId: { type: "string", required: true, description: "Attached token id" }, nodeProperties: { type: "string", required: true, description: "NodeProperties address" } } },
|
|
9672
9683
|
{ id: "continuum-dao.propose-bravo", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Propose a Bravo (For/Against/Abstain) proposal", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { title: { type: "string", required: true, description: "On-chain description (title)" }, forumKey: { type: "string", required: true, description: "Created forum thread URL from forum_create_topic" } } },
|
|
9673
9684
|
{ id: "continuum-dao.propose-delta", protocolId: CONTINUUM_DAO_PROTOCOL_ID, chainCategory: "evm", description: "Propose a Delta multi-option proposal", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: { title: { type: "string", required: true, description: "On-chain description (title)" }, nWinners: { type: "number", required: true, description: "Winning options to execute" }, forumKey: { type: "string", required: true, description: "Created forum thread URL from forum_create_topic" } } },
|
|
@@ -11161,7 +11172,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
11161
11172
|
if (ve) tokens.push({ address: ve, symbol: "veCTM", roles: ["position_nft"] });
|
|
11162
11173
|
return {
|
|
11163
11174
|
tokens,
|
|
11164
|
-
notes: tokens.length === 0 ? "ContinuumDAO addresses are placeholders until redeploy. Lock/attach/governance stay Linea-only. Prefer live GET /protocol/dao. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals (not fetch_proposals). Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented." : `Default ContinuumDAO assets: ${listContinuumDaoDefaultAssets().filter((a) => a.chainId === chainId).map((a) => a.symbol).join(", ")}. Lock/attach/governance stay Linea-only. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals. Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented.`
|
|
11175
|
+
notes: tokens.length === 0 ? "ContinuumDAO addresses are placeholders until redeploy. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. Prefer live GET /protocol/dao. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals (not fetch_proposals). Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented." : `Default ContinuumDAO assets: ${listContinuumDaoDefaultAssets().filter((a) => a.chainId === chainId).map((a) => a.symbol).join(", ")}. Lock/attach/governance stay Linea-only. Create lock needs >= 1 CTM (live minimumLock) and 1\u2013208 weeks. For \u201Cwhat proposals are live now?\u201D use ctm_continuum_dao_fetch_live_proposals. Propose requires getVotes >= live proposalThreshold() (max of 1000e18 ve power and 1% of total votes). Bravo empty actions insert a KeyGen no-op; Delta votes need nOptions+1 weights (last is NOTA). No billing legs. After propose is mined, ctm_continuum_dao_register_proposal. Queue is not implemented.`
|
|
11165
11176
|
};
|
|
11166
11177
|
}
|
|
11167
11178
|
}),
|