@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.cjs
CHANGED
|
@@ -1066,7 +1066,9 @@ var evmAddressSchema = zod.z.string().min(1).describe("EVM address (0x-prefixed,
|
|
|
1066
1066
|
var keyGenSchema = zod.z.object({
|
|
1067
1067
|
pubkeyhex: zod.z.string().min(1).describe("MPC secp256k1 public key hex (required for multiSignRequest pubKey)"),
|
|
1068
1068
|
keylist: zod.z.array(zod.z.string()).optional().describe("Key list on the sign request"),
|
|
1069
|
-
ClientKeys: zod.z.record(zod.z.string()).optional().describe("Optional client key map from keyGen")
|
|
1069
|
+
ClientKeys: zod.z.record(zod.z.string()).optional().describe("Optional client key map from keyGen"),
|
|
1070
|
+
groupId: zod.z.string().optional().describe("mpc-auth GroupId of this KeyGen (server-filled from getKeyGenGroupId)"),
|
|
1071
|
+
GroupId: zod.z.string().optional().describe("Alias for groupId from KeyGen result payloads")
|
|
1070
1072
|
}).describe(
|
|
1071
1073
|
"MPC key slice: { pubkeyhex, keylist?, ClientKeys? }. Used for pubKey/keyList on POST /multiSignRequest."
|
|
1072
1074
|
);
|
|
@@ -2807,8 +2809,8 @@ var mcpMorphoMidnightRepayInputSchema = withMultisignKeySourceRefine(
|
|
|
2807
2809
|
)
|
|
2808
2810
|
);
|
|
2809
2811
|
var mcpContinuumDaoCreateLockInputSchema = mcpMultisignInput({
|
|
2810
|
-
amountHuman: zod.z.string().min(1).describe("CTM amount to lock"),
|
|
2811
|
-
lockDurationSeconds: zod.z.union([zod.z.string(), zod.z.number()]).describe("Lock duration in seconds"),
|
|
2812
|
+
amountHuman: zod.z.string().min(1).describe("CTM amount to lock. Must be >= VotingEscrow.minimumLock (default 1 CTM)."),
|
|
2813
|
+
lockDurationSeconds: zod.z.union([zod.z.string(), zod.z.number()]).describe("Lock duration in seconds. Must be 1\u2013208 weeks (week-aligned on-chain)."),
|
|
2812
2814
|
ctm: evmAddressSchema.optional(),
|
|
2813
2815
|
votingEscrow: evmAddressSchema.optional()
|
|
2814
2816
|
});
|
|
@@ -2825,7 +2827,7 @@ var mcpContinuumDaoIncreaseUnlockTimeInputSchema = mcpMultisignInput({
|
|
|
2825
2827
|
});
|
|
2826
2828
|
var mcpContinuumDaoSplitInputSchema = mcpMultisignInput({
|
|
2827
2829
|
tokenId: zod.z.union([zod.z.string(), zod.z.number()]),
|
|
2828
|
-
extractedHuman: zod.z.string().min(1),
|
|
2830
|
+
extractedHuman: zod.z.string().min(1).describe("CTM extracted into the new lock. Minimum 1 CTM; original lock must also keep 1 CTM."),
|
|
2829
2831
|
votingEscrow: evmAddressSchema.optional()
|
|
2830
2832
|
});
|
|
2831
2833
|
var mcpContinuumDaoMergeInputSchema = mcpMultisignInput({
|
|
@@ -5451,8 +5453,14 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5451
5453
|
actionId: "continuum-dao.create-lock",
|
|
5452
5454
|
protocolId: "continuum-dao",
|
|
5453
5455
|
chainCategory: "evm",
|
|
5454
|
-
description: "Build batch: CTM approve (if needed) + VotingEscrow.create_lock. Linea only. Do not prepend billing legs.",
|
|
5455
|
-
prerequisites: [
|
|
5456
|
+
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.",
|
|
5457
|
+
prerequisites: [
|
|
5458
|
+
"keyGen",
|
|
5459
|
+
"executorAddress",
|
|
5460
|
+
"Linea RPC",
|
|
5461
|
+
"amountHuman >= 1 CTM (or live minimumLock)",
|
|
5462
|
+
"lockDurationSeconds 1\u2013208 weeks"
|
|
5463
|
+
],
|
|
5456
5464
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCreateLock" },
|
|
5457
5465
|
inputZod: mcpContinuumDaoCreateLockInputSchema
|
|
5458
5466
|
}),
|
|
@@ -5461,8 +5469,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5461
5469
|
actionId: "continuum-dao.increase-amount",
|
|
5462
5470
|
protocolId: "continuum-dao",
|
|
5463
5471
|
chainCategory: "evm",
|
|
5464
|
-
description: "Build batch: CTM approve (if needed) + increase_amount.",
|
|
5465
|
-
prerequisites: ["keyGen", "tokenId", "Linea RPC"],
|
|
5472
|
+
description: "Build batch: CTM approve (if needed) + increase_amount. Refuses expired locks, zero amount, and amounts above KeyGen CTM balance.",
|
|
5473
|
+
prerequisites: ["keyGen", "tokenId", "unexpired lock", "Linea RPC"],
|
|
5466
5474
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoIncreaseAmount" },
|
|
5467
5475
|
inputZod: mcpContinuumDaoIncreaseAmountInputSchema
|
|
5468
5476
|
}),
|
|
@@ -5471,8 +5479,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5471
5479
|
actionId: "continuum-dao.increase-unlock-time",
|
|
5472
5480
|
protocolId: "continuum-dao",
|
|
5473
5481
|
chainCategory: "evm",
|
|
5474
|
-
description: "Build increase_unlock_time. lockDurationSeconds is from the week boundary to the new unlock.",
|
|
5475
|
-
prerequisites: ["keyGen", "tokenId", "Linea RPC"],
|
|
5482
|
+
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.",
|
|
5483
|
+
prerequisites: ["keyGen", "tokenId", "unexpired lock", "Linea RPC"],
|
|
5476
5484
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime" },
|
|
5477
5485
|
inputZod: mcpContinuumDaoIncreaseUnlockTimeInputSchema
|
|
5478
5486
|
}),
|
|
@@ -5481,8 +5489,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5481
5489
|
actionId: "continuum-dao.split",
|
|
5482
5490
|
protocolId: "continuum-dao",
|
|
5483
5491
|
chainCategory: "evm",
|
|
5484
|
-
description: "Build VotingEscrow.split.
|
|
5485
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5492
|
+
description: "Build VotingEscrow.split. New lock and remainder must each keep at least minimumLock (default 1 CTM). Blocked while node-attached or expired.",
|
|
5493
|
+
prerequisites: ["keyGen", "tokenId", "extractedHuman >= 1 CTM", "remainder >= 1 CTM", "unattached lock"],
|
|
5486
5494
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoSplit" },
|
|
5487
5495
|
inputZod: mcpContinuumDaoSplitInputSchema
|
|
5488
5496
|
}),
|
|
@@ -5491,8 +5499,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5491
5499
|
actionId: "continuum-dao.merge",
|
|
5492
5500
|
protocolId: "continuum-dao",
|
|
5493
5501
|
chainCategory: "evm",
|
|
5494
|
-
description: "Build VotingEscrow.merge. Blocked
|
|
5495
|
-
prerequisites: ["keyGen", "fromTokenId", "toTokenId", "
|
|
5502
|
+
description: "Build VotingEscrow.merge. Both NFTs must be owned by the KeyGen and unattached. Blocked if either token is node-attached.",
|
|
5503
|
+
prerequisites: ["keyGen", "fromTokenId", "toTokenId", "same owner", "neither attached"],
|
|
5496
5504
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoMerge" },
|
|
5497
5505
|
inputZod: mcpContinuumDaoMergeInputSchema
|
|
5498
5506
|
}),
|
|
@@ -5501,8 +5509,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5501
5509
|
actionId: "continuum-dao.withdraw",
|
|
5502
5510
|
protocolId: "continuum-dao",
|
|
5503
5511
|
chainCategory: "evm",
|
|
5504
|
-
description: "Build VotingEscrow.withdraw for an expired, unattached lock.",
|
|
5505
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5512
|
+
description: "Build VotingEscrow.withdraw for an expired, unattached lock. Refuses if still locked or node-attached.",
|
|
5513
|
+
prerequisites: ["keyGen", "tokenId", "lock expired", "unattached"],
|
|
5506
5514
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoWithdraw" },
|
|
5507
5515
|
inputZod: mcpContinuumDaoTokenIdInputSchema
|
|
5508
5516
|
}),
|
|
@@ -5511,8 +5519,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5511
5519
|
actionId: "continuum-dao.liquidate",
|
|
5512
5520
|
protocolId: "continuum-dao",
|
|
5513
5521
|
chainCategory: "evm",
|
|
5514
|
-
description: "Build VotingEscrow.liquidate.
|
|
5515
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5522
|
+
description: "Build VotingEscrow.liquidate. Refuses if attached, liquidations disabled, locked amount <= 100 gwei, or penalty would be zero. Expired locks withdraw instead on-chain.",
|
|
5523
|
+
prerequisites: ["keyGen", "tokenId", "liquidationsEnabled", "unattached"],
|
|
5516
5524
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoLiquidate" },
|
|
5517
5525
|
inputZod: mcpContinuumDaoTokenIdInputSchema
|
|
5518
5526
|
}),
|
|
@@ -5521,7 +5529,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5521
5529
|
actionId: "continuum-dao.delegate",
|
|
5522
5530
|
protocolId: "continuum-dao",
|
|
5523
5531
|
chainCategory: "evm",
|
|
5524
|
-
description: "Build VotingEscrow.delegate(delegatee). Moves all veCTM voting power from the KeyGen to delegatee. Governor getVotes is then at the delegatee.
|
|
5532
|
+
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.",
|
|
5525
5533
|
prerequisites: ["keyGen", "delegatee", "Linea RPC"],
|
|
5526
5534
|
followUp: ["ctm_continuum_dao_fetch_delegates", "ctm_continuum_dao_build_undelegate_multisign"],
|
|
5527
5535
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoDelegate" },
|
|
@@ -5532,7 +5540,7 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5532
5540
|
actionId: "continuum-dao.undelegate",
|
|
5533
5541
|
protocolId: "continuum-dao",
|
|
5534
5542
|
chainCategory: "evm",
|
|
5535
|
-
description: "Return veCTM voting power to the KeyGen. There is no undelegate() on VotingEscrow \u2014 this calls delegate(self).
|
|
5543
|
+
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.",
|
|
5536
5544
|
prerequisites: ["keyGen", "Linea RPC"],
|
|
5537
5545
|
followUp: ["ctm_continuum_dao_fetch_delegates"],
|
|
5538
5546
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoUndelegate" },
|
|
@@ -5543,8 +5551,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5543
5551
|
actionId: "continuum-dao.transfer",
|
|
5544
5552
|
protocolId: "continuum-dao",
|
|
5545
5553
|
chainCategory: "evm",
|
|
5546
|
-
description: "Build VotingEscrow.transferFrom.
|
|
5547
|
-
prerequisites: ["keyGen", "tokenId", "to", "
|
|
5554
|
+
description: "Build VotingEscrow.transferFrom. Refuses node-attached tokens, the zero address, and self-transfers.",
|
|
5555
|
+
prerequisites: ["keyGen", "tokenId", "to", "unattached"],
|
|
5548
5556
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoTransfer" },
|
|
5549
5557
|
inputZod: mcpContinuumDaoTransferInputSchema
|
|
5550
5558
|
}),
|
|
@@ -5553,8 +5561,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5553
5561
|
actionId: "continuum-dao.attach",
|
|
5554
5562
|
protocolId: "continuum-dao",
|
|
5555
5563
|
chainCategory: "evm",
|
|
5556
|
-
description: "Build MultiSignAgentWallet.attachVeCtm.
|
|
5557
|
-
prerequisites: ["keyGen", "
|
|
5564
|
+
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.",
|
|
5565
|
+
prerequisites: ["keyGen is nodeWithdrawAuthority", "owns tokenId", "this KeyGen has no attach", "mpaWallet"],
|
|
5558
5566
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp" },
|
|
5559
5567
|
inputZod: mcpContinuumDaoAttachInputSchema
|
|
5560
5568
|
}),
|
|
@@ -5563,8 +5571,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5563
5571
|
actionId: "continuum-dao.request-detach",
|
|
5564
5572
|
protocolId: "continuum-dao",
|
|
5565
5573
|
chainCategory: "evm",
|
|
5566
|
-
description: "Build NodeProperties.setNodeRemovalStatus(tokenId, true).
|
|
5567
|
-
prerequisites: ["keyGen", "tokenId", "
|
|
5574
|
+
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.",
|
|
5575
|
+
prerequisites: ["keyGen is attached owner", "tokenId attached", "detach not already requested"],
|
|
5568
5576
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoRequestDetach" },
|
|
5569
5577
|
inputZod: mcpContinuumDaoRequestDetachInputSchema
|
|
5570
5578
|
}),
|
|
@@ -5607,8 +5615,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5607
5615
|
actionId: "continuum-dao.cast-vote-bravo",
|
|
5608
5616
|
protocolId: "continuum-dao",
|
|
5609
5617
|
chainCategory: "evm",
|
|
5610
|
-
description: "Build ContinuumDAO.castVote. support: 0 against, 1 for, 2 abstain.",
|
|
5611
|
-
prerequisites: ["keyGen", "proposalId", "Active proposal"],
|
|
5618
|
+
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.",
|
|
5619
|
+
prerequisites: ["keyGen", "proposalId", "Active proposal", "snapshot votes > 0", "hasVoted false"],
|
|
5612
5620
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp" },
|
|
5613
5621
|
inputZod: mcpContinuumDaoCastVoteBravoInputSchema
|
|
5614
5622
|
}),
|
|
@@ -5617,8 +5625,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5617
5625
|
actionId: "continuum-dao.cast-vote-delta",
|
|
5618
5626
|
protocolId: "continuum-dao",
|
|
5619
5627
|
chainCategory: "evm",
|
|
5620
|
-
description: "Build ContinuumDAO.castVoteWithReasonAndParams. weights must be nOptions + 1 (final slot is NOTA).",
|
|
5621
|
-
prerequisites: ["keyGen", "proposalId", "weights including NOTA"],
|
|
5628
|
+
description: "Build ContinuumDAO.castVoteWithReasonAndParams. weights must be nOptions + 1 (final slot is NOTA). Same Active / snapshot / hasVoted gates as Bravo.",
|
|
5629
|
+
prerequisites: ["keyGen", "proposalId", "weights including NOTA", "Active proposal", "snapshot votes > 0"],
|
|
5622
5630
|
handler: { importPath: "protocols/evm/continuum-dao", exportName: "buildEvmMultisignBodyContinuumDaoCastVoteDelta" },
|
|
5623
5631
|
inputZod: mcpContinuumDaoCastVoteDeltaInputSchema
|
|
5624
5632
|
}),
|
|
@@ -9578,15 +9586,18 @@ var UNSET = {
|
|
|
9578
9586
|
rewards: viem.zeroAddress,
|
|
9579
9587
|
governor: viem.zeroAddress
|
|
9580
9588
|
};
|
|
9589
|
+
var CTM_TOKEN_ADDRESS = viem.getAddress("0x2026027054F5beBCEB650aBD62dC623e327658e7");
|
|
9590
|
+
var VOTING_ESCROW_LINEA_ADDRESS = viem.getAddress("0x221EC90B3B083A8501A37bdeb7035CeaedF3C31f");
|
|
9581
9591
|
var CONTINUUM_DAO_DEPLOYMENTS = {
|
|
9582
|
-
[CONTINUUM_DAO_LINEA_CHAIN_ID]: {
|
|
9592
|
+
[CONTINUUM_DAO_LINEA_CHAIN_ID]: {
|
|
9593
|
+
...UNSET,
|
|
9594
|
+
ctm: CTM_TOKEN_ADDRESS,
|
|
9595
|
+
votingEscrow: VOTING_ESCROW_LINEA_ADDRESS
|
|
9596
|
+
},
|
|
9583
9597
|
[CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID]: { ...UNSET },
|
|
9584
9598
|
[CONTINUUM_DAO_ETHEREUM_CHAIN_ID]: {
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
nodeProperties: viem.zeroAddress,
|
|
9588
|
-
rewards: viem.zeroAddress,
|
|
9589
|
-
governor: viem.zeroAddress
|
|
9599
|
+
...UNSET,
|
|
9600
|
+
ctm: CTM_TOKEN_ADDRESS
|
|
9590
9601
|
}
|
|
9591
9602
|
};
|
|
9592
9603
|
function isConfiguredAddress(addr) {
|
|
@@ -9670,7 +9681,7 @@ var continuumDaoProtocolModule = {
|
|
|
9670
9681
|
{ 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: {} },
|
|
9671
9682
|
{ 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" } } },
|
|
9672
9683
|
{ 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" } } },
|
|
9673
|
-
{ 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" } } },
|
|
9684
|
+
{ 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" } } },
|
|
9674
9685
|
{ 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" } } },
|
|
9675
9686
|
{ 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" } } },
|
|
9676
9687
|
{ 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" } } },
|
|
@@ -11164,7 +11175,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
11164
11175
|
if (ve) tokens.push({ address: ve, symbol: "veCTM", roles: ["position_nft"] });
|
|
11165
11176
|
return {
|
|
11166
11177
|
tokens,
|
|
11167
|
-
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.`
|
|
11178
|
+
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.`
|
|
11168
11179
|
};
|
|
11169
11180
|
}
|
|
11170
11181
|
}),
|