@continuumdao/ctm-mpc-defi 0.2.54 → 0.2.56
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 +398 -180
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +118 -58
- package/dist/agent/catalog.js +395 -182
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/circle-cctp/SKILL.md +5 -4
- package/dist/agent/skills/continuum-dao/SKILL.md +2 -2
- package/dist/agent/skills/continuum-dao-marketplace/SKILL.md +4 -4
- package/dist/protocols/evm/circle-cctp/index.cjs +77 -19
- package/dist/protocols/evm/circle-cctp/index.cjs.map +1 -1
- package/dist/protocols/evm/circle-cctp/index.d.ts +53 -3
- package/dist/protocols/evm/circle-cctp/index.js +76 -20
- package/dist/protocols/evm/circle-cctp/index.js.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.cjs +304 -35
- package/dist/protocols/evm/continuum-dao/index.cjs.map +1 -1
- package/dist/protocols/evm/continuum-dao/index.d.ts +14 -1
- package/dist/protocols/evm/continuum-dao/index.js +303 -36
- package/dist/protocols/evm/continuum-dao/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -189,10 +189,10 @@ function docsBaseUrl() {
|
|
|
189
189
|
return raw.replace(/\/+$/, "");
|
|
190
190
|
}
|
|
191
191
|
function parseCommitteeAddressesFromConstitution(markdown) {
|
|
192
|
-
const
|
|
193
|
-
const start =
|
|
192
|
+
const text2 = String(markdown || "");
|
|
193
|
+
const start = text2.search(/^### Committee List\s*$/m);
|
|
194
194
|
if (start < 0) return [];
|
|
195
|
-
const lines =
|
|
195
|
+
const lines = text2.slice(start).split("\n");
|
|
196
196
|
const addresses = [];
|
|
197
197
|
for (let i = 1; i < lines.length; i += 1) {
|
|
198
198
|
const line = lines[i] ?? "";
|
|
@@ -258,9 +258,10 @@ function checksumOrEmpty(value) {
|
|
|
258
258
|
if (!raw) return "";
|
|
259
259
|
return getAddress(raw);
|
|
260
260
|
}
|
|
261
|
-
function normalizeInput(inp) {
|
|
261
|
+
function normalizeInput(inp, index) {
|
|
262
|
+
const explicit = String(inp?.name || "").trim();
|
|
262
263
|
return {
|
|
263
|
-
name:
|
|
264
|
+
name: explicit || `arg${index}`,
|
|
264
265
|
type: String(inp?.type || ""),
|
|
265
266
|
value: String(inp?.value ?? "")
|
|
266
267
|
};
|
|
@@ -277,7 +278,7 @@ function normalizeAction(action) {
|
|
|
277
278
|
target: checksumOrEmpty(action.target),
|
|
278
279
|
value: String(action.value || "0"),
|
|
279
280
|
signature: String(action.signature || ""),
|
|
280
|
-
inputs: (action.inputs || []).map(normalizeInput)
|
|
281
|
+
inputs: (action.inputs || []).map((inp, index) => normalizeInput(inp, index))
|
|
281
282
|
};
|
|
282
283
|
}
|
|
283
284
|
function assertProposalCatalogConstants() {
|
|
@@ -349,11 +350,11 @@ var init_defiEvmClient = __esm({
|
|
|
349
350
|
// src/core/purpose.ts
|
|
350
351
|
function mergePurposeText(purposeText, purposeSuffix) {
|
|
351
352
|
const t = (purposeText ?? "").trim();
|
|
352
|
-
const
|
|
353
|
-
if (!
|
|
353
|
+
const suffix2 = (purposeSuffix ?? "").trim();
|
|
354
|
+
if (!suffix2) return t;
|
|
354
355
|
return t ? `${t}
|
|
355
356
|
|
|
356
|
-
${
|
|
357
|
+
${suffix2}` : suffix2;
|
|
357
358
|
}
|
|
358
359
|
var init_purpose = __esm({
|
|
359
360
|
"src/core/purpose.ts"() {
|
|
@@ -927,8 +928,8 @@ async function continuumDaoForumUnread(args) {
|
|
|
927
928
|
if (args.filter?.trim()) qs2.set("filter", args.filter.trim());
|
|
928
929
|
if (args.start != null) qs2.set("start", String(args.start));
|
|
929
930
|
if (args.limit != null) qs2.set("limit", String(args.limit));
|
|
930
|
-
const
|
|
931
|
-
return forumFetch(`/api/continuum/forum/unread${
|
|
931
|
+
const suffix2 = qs2.toString() ? `?${qs2}` : "";
|
|
932
|
+
return forumFetch(`/api/continuum/forum/unread${suffix2}`, {
|
|
932
933
|
forumUrl: args.forumUrl,
|
|
933
934
|
ticket: args.ticket
|
|
934
935
|
});
|
|
@@ -1451,8 +1452,8 @@ function buildFoundryProposalSimulatePlan(args) {
|
|
|
1451
1452
|
)
|
|
1452
1453
|
});
|
|
1453
1454
|
args.batches.forEach((batch, bi) => {
|
|
1454
|
-
const
|
|
1455
|
-
const contractName = `ContinuumDaoSimulateExecute${
|
|
1455
|
+
const suffix2 = batch.label != null ? solIdent(batch.label, `Option${(batch.optionIndex ?? bi) + 1}`) : "Bravo";
|
|
1456
|
+
const contractName = `ContinuumDaoSimulateExecute${suffix2}`;
|
|
1456
1457
|
const path = `script/${contractName}.s.sol`;
|
|
1457
1458
|
const body = [
|
|
1458
1459
|
" function run() external {",
|
|
@@ -2682,13 +2683,25 @@ async function buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp(args) {
|
|
|
2682
2683
|
}
|
|
2683
2684
|
async function continuumDaoRegisterProposal(payload) {
|
|
2684
2685
|
assertContinuumDaoForumTopicKey(payload.forumKey);
|
|
2686
|
+
const body = JSON.stringify(payload);
|
|
2685
2687
|
const res = await fetch(`${CONTINUUM_DAO_GOVERNANCE_API}/proposals/create`, {
|
|
2686
2688
|
method: "POST",
|
|
2687
2689
|
headers: { "Content-Type": "application/json" },
|
|
2688
|
-
body
|
|
2690
|
+
body
|
|
2689
2691
|
});
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
+
const text2 = await res.text();
|
|
2693
|
+
if (res.status === 409) {
|
|
2694
|
+
const repair = await fetch(`${CONTINUUM_DAO_GOVERNANCE_API}/proposals/repair`, {
|
|
2695
|
+
method: "POST",
|
|
2696
|
+
headers: { "Content-Type": "application/json" },
|
|
2697
|
+
body
|
|
2698
|
+
});
|
|
2699
|
+
const repairText = await repair.text();
|
|
2700
|
+
if (!repair.ok) throw new Error(`proposals/repair: ${repair.status} ${repairText}`);
|
|
2701
|
+
return { ok: true, result: JSON.parse(repairText) };
|
|
2702
|
+
}
|
|
2703
|
+
if (!res.ok) throw new Error(`proposals/create: ${res.status} ${text2}`);
|
|
2704
|
+
return { ok: true, result: JSON.parse(text2) };
|
|
2692
2705
|
}
|
|
2693
2706
|
var CONTINUUM_DAO_PROPOSE_FALLBACK, CONTINUUM_DAO_VOTE_FALLBACK, CONTINUUM_DAO_EXECUTE_FALLBACK, CONTINUUM_DAO_CANCEL_FALLBACK, CONTINUUM_DAO_GOV_EVM_TYPES, governorWriteAbi, governorReadAbi, FORUM_SECTION_TO_PROPOSAL_TYPE, GOVERNOR_STATE, GOVERNOR_STATE_LABELS;
|
|
2694
2707
|
var init_governance = __esm({
|
|
@@ -5284,10 +5297,20 @@ function foldMarketplaceEvents(events, initial) {
|
|
|
5284
5297
|
for (const ev of events) applyMarketplaceEvent(book, ev);
|
|
5285
5298
|
return book;
|
|
5286
5299
|
}
|
|
5300
|
+
function auctionDeadlineUnix(auction) {
|
|
5301
|
+
const unix = Number(auction.deadlineUnix);
|
|
5302
|
+
if (Number.isFinite(unix) && unix > 0) return unix;
|
|
5303
|
+
if (auction.deadlineAt) {
|
|
5304
|
+
const ms = Date.parse(auction.deadlineAt);
|
|
5305
|
+
if (Number.isFinite(ms) && ms > 0) return Math.floor(ms / 1e3);
|
|
5306
|
+
}
|
|
5307
|
+
return unix;
|
|
5308
|
+
}
|
|
5287
5309
|
function deriveAuctionStatus(auction, nowUnix) {
|
|
5288
|
-
const deadline =
|
|
5310
|
+
const deadline = auctionDeadlineUnix(auction);
|
|
5289
5311
|
if (auction.storedStatus === "Pending" && Number.isFinite(deadline) && nowUnix >= deadline) return "Expired";
|
|
5290
5312
|
if (auction.storedStatus === "Active" && Number.isFinite(deadline) && nowUnix >= deadline) return "Complete";
|
|
5313
|
+
if (auction.storedStatus === "Pending") return "Active";
|
|
5291
5314
|
return auction.derivedStatus || auction.storedStatus;
|
|
5292
5315
|
}
|
|
5293
5316
|
function applyDerivedStatuses(book, nowUnix) {
|
|
@@ -5397,7 +5420,11 @@ function keyGenOwnsVeCtm(snap, seller) {
|
|
|
5397
5420
|
return false;
|
|
5398
5421
|
}
|
|
5399
5422
|
function assertNotOwn(snap, seller, tokenId) {
|
|
5400
|
-
|
|
5423
|
+
const listedByKeyGen = seller != null && same2(seller, snap.executor) || snap.listing != null && snap.listing.status === 1 && same2(snap.listing.creator, snap.executor);
|
|
5424
|
+
if (listedByKeyGen && !snap.executorLiveAuction) {
|
|
5425
|
+
throw new Error(`This KeyGen listed veCTM #${tokenId.toString()}. Delist it instead of buying it.`);
|
|
5426
|
+
}
|
|
5427
|
+
if (same2(snap.owner, snap.executor) || snap.executorLiveAuction) {
|
|
5401
5428
|
throw new Error(`This KeyGen already owns veCTM #${tokenId.toString()} and cannot buy or bid on it.`);
|
|
5402
5429
|
}
|
|
5403
5430
|
}
|
|
@@ -5469,6 +5496,7 @@ function planMarketplaceSteps(input, snap) {
|
|
|
5469
5496
|
const m = snap.marketplace;
|
|
5470
5497
|
switch (input.action) {
|
|
5471
5498
|
case "createListing": {
|
|
5499
|
+
assertNotAttached(snap, input.tokenId);
|
|
5472
5500
|
assertPayment(snap);
|
|
5473
5501
|
assertDeadline(snap, input.deadline);
|
|
5474
5502
|
if (!same2(snap.owner, snap.executor)) throw new Error("Only the veCTM owner can create a listing.");
|
|
@@ -5495,7 +5523,9 @@ function planMarketplaceSteps(input, snap) {
|
|
|
5495
5523
|
]);
|
|
5496
5524
|
}
|
|
5497
5525
|
case "delist": {
|
|
5498
|
-
|
|
5526
|
+
const listing = snap.listing;
|
|
5527
|
+
const openForKeyGen = listing != null && listing.status === 1 && same2(listing.creator, snap.executor);
|
|
5528
|
+
if (!openForKeyGen) throw new Error("No open listing for this KeyGen.");
|
|
5499
5529
|
return [
|
|
5500
5530
|
{
|
|
5501
5531
|
to: m,
|
|
@@ -5540,6 +5570,7 @@ function planMarketplaceSteps(input, snap) {
|
|
|
5540
5570
|
]);
|
|
5541
5571
|
}
|
|
5542
5572
|
case "createOffering": {
|
|
5573
|
+
assertNotAttached(snap, input.tokenId);
|
|
5543
5574
|
assertNotOwn(snap, void 0, input.tokenId);
|
|
5544
5575
|
assertPayment(snap);
|
|
5545
5576
|
assertDeadline(snap, input.deadline);
|
|
@@ -6230,8 +6261,8 @@ async function getJson(url) {
|
|
|
6230
6261
|
try {
|
|
6231
6262
|
const res = await fetch(url);
|
|
6232
6263
|
if (!res.ok) {
|
|
6233
|
-
const
|
|
6234
|
-
return { ok: false, status: res.status, error: new Error(`${url}: ${res.status} ${
|
|
6264
|
+
const text2 = await res.text().catch(() => "");
|
|
6265
|
+
return { ok: false, status: res.status, error: new Error(`${url}: ${res.status} ${text2}`.trim()) };
|
|
6235
6266
|
}
|
|
6236
6267
|
return { ok: true, body: await res.json() };
|
|
6237
6268
|
} catch (err) {
|
|
@@ -6271,6 +6302,37 @@ function matchAuction(row, args, includeInactive) {
|
|
|
6271
6302
|
if (args.seller && row.seller.toLowerCase() !== args.seller.toLowerCase()) return false;
|
|
6272
6303
|
return true;
|
|
6273
6304
|
}
|
|
6305
|
+
function presentAddress(value) {
|
|
6306
|
+
const text2 = (value ?? "").trim();
|
|
6307
|
+
if (!text2 || /^0x0+$/i.test(text2)) return "";
|
|
6308
|
+
return text2;
|
|
6309
|
+
}
|
|
6310
|
+
function sameAddress(a, b) {
|
|
6311
|
+
const left = (a ?? "").trim();
|
|
6312
|
+
const right = (b ?? "").trim();
|
|
6313
|
+
return Boolean(left && right && left.toLowerCase() === right.toLowerCase());
|
|
6314
|
+
}
|
|
6315
|
+
function annotateListingViewer(items, viewer) {
|
|
6316
|
+
const who = presentAddress(viewer);
|
|
6317
|
+
if (!who) return items;
|
|
6318
|
+
return items.map((row) => {
|
|
6319
|
+
const seller = presentAddress(row.seller) || presentAddress(row.creator) || presentAddress(row.currentOwner);
|
|
6320
|
+
const closed = row.storedStatus === "Fulfilled" || row.storedStatus === "Delisted" || row.storedStatus === "DelistedOrRescinded";
|
|
6321
|
+
const open = !closed && (row.storedStatus === "Open" || row.protocolStatus === "Open");
|
|
6322
|
+
const mine = sameAddress(seller, who);
|
|
6323
|
+
return { ...row, viewerAction: mine && open ? "delist" : mine ? "none" : open ? "buy" : "none" };
|
|
6324
|
+
});
|
|
6325
|
+
}
|
|
6326
|
+
function presentAuction(row, nowUnix = Math.floor(Date.now() / 1e3)) {
|
|
6327
|
+
const derivedStatus = deriveAuctionStatus({ ...row, bids: row.bids ?? [] }, nowUnix);
|
|
6328
|
+
const closed = derivedStatus === "Complete" || derivedStatus === "Expired";
|
|
6329
|
+
return {
|
|
6330
|
+
...row,
|
|
6331
|
+
bids: row.bids ?? [],
|
|
6332
|
+
derivedStatus,
|
|
6333
|
+
needsSettle: closed ? true : row.needsSettle
|
|
6334
|
+
};
|
|
6335
|
+
}
|
|
6274
6336
|
function listFrom(items, source) {
|
|
6275
6337
|
return { items, nextCursor: null, source };
|
|
6276
6338
|
}
|
|
@@ -6300,11 +6362,18 @@ async function fetchContinuumDaoMarketplaceListings(args = {}) {
|
|
|
6300
6362
|
const res = await getJson(url);
|
|
6301
6363
|
if (res.ok) {
|
|
6302
6364
|
const body = res.body;
|
|
6303
|
-
return {
|
|
6365
|
+
return {
|
|
6366
|
+
items: annotateListingViewer(body.items ?? [], args.viewer),
|
|
6367
|
+
nextCursor: body.nextCursor ?? null,
|
|
6368
|
+
source: "api"
|
|
6369
|
+
};
|
|
6304
6370
|
}
|
|
6305
6371
|
if (args.cursor || !isOffline(res.status)) throw res.error;
|
|
6306
6372
|
const book = await logsBook(args);
|
|
6307
|
-
return listFrom(
|
|
6373
|
+
return listFrom(
|
|
6374
|
+
annotateListingViewer(book.listings.filter((row) => matchOrder(row, args, includeInactive)), args.viewer),
|
|
6375
|
+
"logs"
|
|
6376
|
+
);
|
|
6308
6377
|
}
|
|
6309
6378
|
async function fetchContinuumDaoMarketplaceOfferings(args = {}) {
|
|
6310
6379
|
const includeInactive = Boolean(args.includeInactive);
|
|
@@ -6341,20 +6410,30 @@ async function fetchContinuumDaoMarketplaceAuctions(args = {}) {
|
|
|
6341
6410
|
if (res.ok) {
|
|
6342
6411
|
const body = res.body;
|
|
6343
6412
|
return {
|
|
6344
|
-
items: (body.items ?? []).map((row) => (
|
|
6413
|
+
items: (body.items ?? []).map((row) => presentAuction(row)).filter((row) => includeInactive || isLiveAuctionStatus(row.derivedStatus)),
|
|
6345
6414
|
nextCursor: body.nextCursor ?? null,
|
|
6346
6415
|
source: "api"
|
|
6347
6416
|
};
|
|
6348
6417
|
}
|
|
6349
6418
|
if (args.cursor || !isOffline(res.status)) throw res.error;
|
|
6350
6419
|
const book = await logsBook(args);
|
|
6351
|
-
return listFrom(book.auctions.filter((row) => matchAuction(row, args, includeInactive)), "logs");
|
|
6420
|
+
return listFrom(book.auctions.filter((row) => matchAuction(row, args, includeInactive)).map((row) => presentAuction(row)), "logs");
|
|
6352
6421
|
}
|
|
6353
6422
|
async function fetchContinuumDaoMarketplaceToken(args) {
|
|
6354
6423
|
const url = `${apiBase(args)}/marketplace/tokens/${encodeURIComponent(args.tokenId)}${qs({ viewer: args.viewer })}`;
|
|
6355
6424
|
const res = await getJson(url);
|
|
6356
6425
|
if (res.ok && res.body && typeof res.body === "object") {
|
|
6357
|
-
|
|
6426
|
+
const body = res.body;
|
|
6427
|
+
return {
|
|
6428
|
+
...body,
|
|
6429
|
+
auction: body.auction ? presentAuction(body.auction) : null,
|
|
6430
|
+
history: {
|
|
6431
|
+
listings: body.history?.listings ?? [],
|
|
6432
|
+
offerings: body.history?.offerings ?? [],
|
|
6433
|
+
auctions: (body.history?.auctions ?? []).map((row) => presentAuction(row))
|
|
6434
|
+
},
|
|
6435
|
+
source: "api"
|
|
6436
|
+
};
|
|
6358
6437
|
}
|
|
6359
6438
|
if (!res.ok && !isOffline(res.status)) throw res.error;
|
|
6360
6439
|
const book = await logsBook(args);
|
|
@@ -6365,11 +6444,14 @@ async function fetchContinuumDaoMarketplaceToken(args) {
|
|
|
6365
6444
|
token: { tokenId: args.tokenId },
|
|
6366
6445
|
listing: listings.find((row) => isOpenOrder(row)) ?? null,
|
|
6367
6446
|
offerings: offerings.filter((row) => isOpenOrder(row)),
|
|
6368
|
-
auction:
|
|
6447
|
+
auction: (() => {
|
|
6448
|
+
const live = auctions.find((row) => isLiveAuctionStatus(row.derivedStatus));
|
|
6449
|
+
return live ? presentAuction(live) : null;
|
|
6450
|
+
})(),
|
|
6369
6451
|
history: {
|
|
6370
6452
|
listings: listings.filter((row) => !isOpenOrder(row)),
|
|
6371
6453
|
offerings: offerings.filter((row) => !isOpenOrder(row)),
|
|
6372
|
-
auctions: auctions.filter((row) => !isLiveAuctionStatus(row.derivedStatus))
|
|
6454
|
+
auctions: auctions.filter((row) => !isLiveAuctionStatus(row.derivedStatus)).map((row) => presentAuction(row))
|
|
6373
6455
|
},
|
|
6374
6456
|
source: "logs"
|
|
6375
6457
|
};
|
|
@@ -6396,7 +6478,7 @@ async function fetchContinuumDaoMarketplaceActivity(args) {
|
|
|
6396
6478
|
return {
|
|
6397
6479
|
address: args.address,
|
|
6398
6480
|
orders: body.orders ?? [],
|
|
6399
|
-
auctions: (body.auctions ?? []).map((row) => (
|
|
6481
|
+
auctions: (body.auctions ?? []).map((row) => presentAuction(row)),
|
|
6400
6482
|
source: "api"
|
|
6401
6483
|
};
|
|
6402
6484
|
}
|
|
@@ -6409,7 +6491,7 @@ async function fetchContinuumDaoMarketplaceActivity(args) {
|
|
|
6409
6491
|
const auctions = book.auctions.filter((row) => {
|
|
6410
6492
|
return row.seller.toLowerCase() === address || (row.buyer ?? "").toLowerCase() === address || (row.highestBidder ?? "").toLowerCase() === address || row.bids.some((bid) => bid.bidder.toLowerCase() === address);
|
|
6411
6493
|
});
|
|
6412
|
-
return { address: args.address, orders, auctions, source: "logs" };
|
|
6494
|
+
return { address: args.address, orders, auctions: auctions.map((row) => presentAuction(row)), source: "logs" };
|
|
6413
6495
|
}
|
|
6414
6496
|
|
|
6415
6497
|
// src/protocols/evm/continuum-dao/marketplaceSearch.ts
|
|
@@ -6481,6 +6563,13 @@ function positive(value) {
|
|
|
6481
6563
|
const trimmed = (value ?? "").trim();
|
|
6482
6564
|
return trimmed && trimmed !== "0" ? trimmed : "";
|
|
6483
6565
|
}
|
|
6566
|
+
function party(...values) {
|
|
6567
|
+
for (const value of values) {
|
|
6568
|
+
const text2 = (value ?? "").trim();
|
|
6569
|
+
if (text2 && !/^0x0+$/i.test(text2)) return text2;
|
|
6570
|
+
}
|
|
6571
|
+
return "";
|
|
6572
|
+
}
|
|
6484
6573
|
function unlockUnixFrom(row) {
|
|
6485
6574
|
const iso2 = positive(row.unlockTimeAt);
|
|
6486
6575
|
if (iso2) {
|
|
@@ -6500,7 +6589,7 @@ function listingCandidate(row) {
|
|
|
6500
6589
|
kind: "listing",
|
|
6501
6590
|
tokenId: row.tokenId,
|
|
6502
6591
|
onchainIndex: row.onchainIndex,
|
|
6503
|
-
seller: row.seller
|
|
6592
|
+
seller: party(row.seller, row.creator, row.currentOwner),
|
|
6504
6593
|
paymentToken: row.paymentToken,
|
|
6505
6594
|
price: asBig(row.price),
|
|
6506
6595
|
priceBasis: "ask",
|
|
@@ -6558,7 +6647,7 @@ function rankMarketplaceSearchHits(rows, query, nowUnix = Math.floor(Date.now()
|
|
|
6558
6647
|
const excludeOwned = query.excludeOwned !== false && Boolean(executor);
|
|
6559
6648
|
let matched = rows.filter((row) => {
|
|
6560
6649
|
if (query.paymentToken && !same3(row.paymentToken, query.paymentToken)) return false;
|
|
6561
|
-
if (excludeOwned && same3(row.seller, executor)) return false;
|
|
6650
|
+
if (excludeOwned && row.kind !== "listing" && same3(row.seller, executor)) return false;
|
|
6562
6651
|
if (minLocked != null && row.locked < minLocked) return false;
|
|
6563
6652
|
if (maxLocked != null && row.locked > maxLocked) return false;
|
|
6564
6653
|
if (unlockAfter != null && row.unlockUnix < unlockAfter) return false;
|
|
@@ -6566,6 +6655,10 @@ function rankMarketplaceSearchHits(rows, query, nowUnix = Math.floor(Date.now()
|
|
|
6566
6655
|
if (monthCap != null && (row.unlockUnix <= nowUnix || row.unlockUnix > monthCap)) return false;
|
|
6567
6656
|
return true;
|
|
6568
6657
|
});
|
|
6658
|
+
matched = matched.map((row) => {
|
|
6659
|
+
const ownListing = Boolean(executor && row.kind === "listing" && same3(row.seller, executor));
|
|
6660
|
+
return ownListing ? { ...row, fillable: false } : row;
|
|
6661
|
+
});
|
|
6569
6662
|
const priceSort = sort === "price" || sort === "pricePerLockedCtm";
|
|
6570
6663
|
if (priceSort && !query.paymentToken) {
|
|
6571
6664
|
const tokens = new Set(matched.map((row) => row.paymentToken.toLowerCase()));
|
|
@@ -6590,9 +6683,16 @@ function rankMarketplaceSearchHits(rows, query, nowUnix = Math.floor(Date.now()
|
|
|
6590
6683
|
return a.tokenId.localeCompare(b.tokenId);
|
|
6591
6684
|
});
|
|
6592
6685
|
const limit = Math.min(MAX_LIMIT, Math.max(1, query.limit ?? DEFAULT_LIMIT));
|
|
6593
|
-
return matched.slice(0, limit).map((row) =>
|
|
6686
|
+
return matched.slice(0, limit).map((row) => {
|
|
6687
|
+
const ownListing = Boolean(executor && row.kind === "listing" && same3(row.seller, executor));
|
|
6688
|
+
return toHit(
|
|
6689
|
+
ownListing ? { ...row, fillable: false } : row,
|
|
6690
|
+
nowUnix,
|
|
6691
|
+
ownListing ? "delist" : row.kind === "auction" ? "bid" : "buy"
|
|
6692
|
+
);
|
|
6693
|
+
});
|
|
6594
6694
|
}
|
|
6595
|
-
function toHit(row, nowUnix) {
|
|
6695
|
+
function toHit(row, nowUnix, action) {
|
|
6596
6696
|
const meta4 = paymentMeta(row.paymentToken);
|
|
6597
6697
|
const perCtm = row.locked > 0n ? row.price * 10n ** 18n / row.locked : 0n;
|
|
6598
6698
|
const months = row.unlockUnix > nowUnix ? ((row.unlockUnix - nowUnix) / MONTH_SECONDS).toFixed(1) : row.unlockUnix > 0 ? "0" : "";
|
|
@@ -6613,7 +6713,8 @@ function toHit(row, nowUnix) {
|
|
|
6613
6713
|
pricePerLockedCtm: row.locked > 0n ? humanAmount(perCtm, meta4.decimals) : "",
|
|
6614
6714
|
deadlineAt: row.deadlineUnix > 0 ? new Date(row.deadlineUnix * 1e3).toISOString() : "",
|
|
6615
6715
|
attached: row.attached,
|
|
6616
|
-
fillable: row.fillable
|
|
6716
|
+
fillable: row.fillable,
|
|
6717
|
+
action
|
|
6617
6718
|
};
|
|
6618
6719
|
}
|
|
6619
6720
|
async function fillMissingLocks(rows, rpcUrl, chainId) {
|
|
@@ -7154,6 +7255,172 @@ function marketplaceVeCtmReceivedBy(detail, executor) {
|
|
|
7154
7255
|
return null;
|
|
7155
7256
|
}
|
|
7156
7257
|
|
|
7258
|
+
// src/protocols/evm/continuum-dao/purpose.ts
|
|
7259
|
+
init_constants();
|
|
7260
|
+
function chainParts(chainId) {
|
|
7261
|
+
const n = typeof chainId === "number" ? chainId : Number.parseInt(String(chainId ?? "").trim(), 10);
|
|
7262
|
+
const id = Number.isFinite(n) ? n : 0;
|
|
7263
|
+
if (id === CONTINUUM_DAO_LINEA_CHAIN_ID) return { name: "Linea Mainnet", id };
|
|
7264
|
+
if (id === CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID) return { name: "Linea Sepolia", id };
|
|
7265
|
+
if (id === CONTINUUM_DAO_ETHEREUM_CHAIN_ID) return { name: "Ethereum Mainnet", id };
|
|
7266
|
+
return { name: "chain", id };
|
|
7267
|
+
}
|
|
7268
|
+
function suffix(chainId) {
|
|
7269
|
+
const { name, id } = chainParts(chainId);
|
|
7270
|
+
return `on ${name} (chainId ${id})`;
|
|
7271
|
+
}
|
|
7272
|
+
function text(value) {
|
|
7273
|
+
return String(value ?? "").trim();
|
|
7274
|
+
}
|
|
7275
|
+
function tokenLabel(value) {
|
|
7276
|
+
const id = text(value);
|
|
7277
|
+
return id ? `#${id}` : "#\u2026";
|
|
7278
|
+
}
|
|
7279
|
+
function shortAddr(value) {
|
|
7280
|
+
const trimmed = text(value);
|
|
7281
|
+
if (!trimmed) return "\u2026";
|
|
7282
|
+
try {
|
|
7283
|
+
if (!isAddress(trimmed)) return trimmed;
|
|
7284
|
+
const addr2 = getAddress(trimmed);
|
|
7285
|
+
return `${addr2.slice(0, 6)}\u2026${addr2.slice(-4)}`;
|
|
7286
|
+
} catch {
|
|
7287
|
+
return trimmed;
|
|
7288
|
+
}
|
|
7289
|
+
}
|
|
7290
|
+
function weeksLabel(seconds) {
|
|
7291
|
+
const n = Number(text(seconds));
|
|
7292
|
+
if (!Number.isFinite(n) || n <= 0) return "\u2026 weeks";
|
|
7293
|
+
const weeks = Math.max(1, Math.round(n / WEEK_SECONDS));
|
|
7294
|
+
return `${weeks} week${weeks === 1 ? "" : "s"}`;
|
|
7295
|
+
}
|
|
7296
|
+
function paymentMeta3(address) {
|
|
7297
|
+
const lower = text(address).toLowerCase();
|
|
7298
|
+
if (lower === MARKETPLACE_USDC_LINEA_ADDRESS.toLowerCase()) return { symbol: "USDC", decimals: 6 };
|
|
7299
|
+
if (lower === MARKETPLACE_WETH_LINEA_ADDRESS.toLowerCase()) return { symbol: "WETH", decimals: 18 };
|
|
7300
|
+
if (lower === CTM_TOKEN_ADDRESS.toLowerCase()) return { symbol: "CTM", decimals: 18 };
|
|
7301
|
+
return { symbol: "token", decimals: 18 };
|
|
7302
|
+
}
|
|
7303
|
+
function moneyFromWei(wei, paymentToken) {
|
|
7304
|
+
const raw = text(wei);
|
|
7305
|
+
if (!raw) return "\u2026 token";
|
|
7306
|
+
try {
|
|
7307
|
+
const meta4 = paymentMeta3(paymentToken);
|
|
7308
|
+
const human2 = formatUnits(BigInt(raw), meta4.decimals).replace(/(\.\d*?[1-9])0+$/, "$1").replace(/\.0+$/, "");
|
|
7309
|
+
return `${human2} ${meta4.symbol}`;
|
|
7310
|
+
} catch {
|
|
7311
|
+
return raw;
|
|
7312
|
+
}
|
|
7313
|
+
}
|
|
7314
|
+
function deadlineLabel(value) {
|
|
7315
|
+
const n = Number(text(value));
|
|
7316
|
+
if (!Number.isFinite(n) || n <= 0) return "\u2026";
|
|
7317
|
+
const date = new Date(n * 1e3);
|
|
7318
|
+
if (Number.isNaN(date.getTime())) return "\u2026";
|
|
7319
|
+
return `${date.toISOString().slice(0, 16).replace("T", " ")} UTC`;
|
|
7320
|
+
}
|
|
7321
|
+
function bravoLabel(support) {
|
|
7322
|
+
const raw = text(support).toLowerCase();
|
|
7323
|
+
if (raw === "0" || raw === "against") return "Against";
|
|
7324
|
+
if (raw === "1" || raw === "for") return "For";
|
|
7325
|
+
if (raw === "2" || raw === "abstain") return "Abstain";
|
|
7326
|
+
return null;
|
|
7327
|
+
}
|
|
7328
|
+
function proposalLabel(input) {
|
|
7329
|
+
const title = text(input.title || input.proposalTitle);
|
|
7330
|
+
if (title) return title;
|
|
7331
|
+
const id = text(input.proposalId);
|
|
7332
|
+
return id ? `proposal ${id}` : "proposal";
|
|
7333
|
+
}
|
|
7334
|
+
function buildContinuumDaoMcpPurpose(action, input) {
|
|
7335
|
+
const end = suffix(input.chainId);
|
|
7336
|
+
const id = tokenLabel(input.tokenId);
|
|
7337
|
+
switch (action) {
|
|
7338
|
+
case "createLock":
|
|
7339
|
+
return `ContinuumDAO: create lock ${text(input.amountHuman) || "\u2026"} CTM for ${weeksLabel(input.lockDurationSeconds)} ${end}`;
|
|
7340
|
+
case "increaseAmount":
|
|
7341
|
+
return `ContinuumDAO: increase lock ${id} by ${text(input.amountHuman) || "\u2026"} CTM ${end}`;
|
|
7342
|
+
case "increaseUnlockTime":
|
|
7343
|
+
return `ContinuumDAO: extend lock ${id} by ${weeksLabel(input.lockDurationSeconds)} ${end}`;
|
|
7344
|
+
case "split":
|
|
7345
|
+
return `ContinuumDAO: split lock ${id}, extract ${text(input.extractedHuman) || "\u2026"} CTM ${end}`;
|
|
7346
|
+
case "merge": {
|
|
7347
|
+
const from = tokenLabel(input.fromTokenId);
|
|
7348
|
+
const into = text(input.toTokenId);
|
|
7349
|
+
return into ? `ContinuumDAO: merge lock ${from} into #${into} ${end}` : `ContinuumDAO: merge lock ${from} into \u2026 ${end}`;
|
|
7350
|
+
}
|
|
7351
|
+
case "withdraw":
|
|
7352
|
+
return `ContinuumDAO: withdraw expired lock ${id} ${end}`;
|
|
7353
|
+
case "liquidate":
|
|
7354
|
+
return `ContinuumDAO: liquidate lock ${id} ${end}`;
|
|
7355
|
+
case "delegate":
|
|
7356
|
+
return text(input.delegatee) ? `ContinuumDAO: delegate voting power to ${shortAddr(input.delegatee)} ${end}` : `ContinuumDAO: delegate voting power ${end}`;
|
|
7357
|
+
case "undelegate":
|
|
7358
|
+
return `ContinuumDAO: undelegate (return voting power to this KeyGen) ${end}`;
|
|
7359
|
+
case "transfer":
|
|
7360
|
+
return text(input.to) ? `ContinuumDAO: transfer veCTM ${id} to ${shortAddr(input.to)} ${end}` : `ContinuumDAO: transfer veCTM ${id} ${end}`;
|
|
7361
|
+
case "attach":
|
|
7362
|
+
return text(input.tokenId) ? `ContinuumDAO: attach veCTM ${id} to this node ${end}` : `ContinuumDAO: attach veCTM to this node ${end}`;
|
|
7363
|
+
case "requestDetach":
|
|
7364
|
+
return `ContinuumDAO: request detach veCTM ${id} ${end}`;
|
|
7365
|
+
case "proposeBravo": {
|
|
7366
|
+
const title = text(input.title);
|
|
7367
|
+
return title ? `ContinuumDAO: propose "${title}" (Bravo) ${end}` : `ContinuumDAO: propose governance proposal (Bravo) ${end}`;
|
|
7368
|
+
}
|
|
7369
|
+
case "proposeDelta": {
|
|
7370
|
+
const title = text(input.title);
|
|
7371
|
+
return title ? `ContinuumDAO: propose "${title}" (Delta) ${end}` : `ContinuumDAO: propose governance proposal (Delta) ${end}`;
|
|
7372
|
+
}
|
|
7373
|
+
case "castVoteBravo": {
|
|
7374
|
+
const label = proposalLabel(input);
|
|
7375
|
+
const support = bravoLabel(input.support);
|
|
7376
|
+
return support ? `ContinuumDAO: vote ${support} on "${label}" ${end}` : `ContinuumDAO: vote on "${label}" ${end}`;
|
|
7377
|
+
}
|
|
7378
|
+
case "castVoteDelta":
|
|
7379
|
+
return `ContinuumDAO: vote on "${proposalLabel(input)}" (Delta) ${end}`;
|
|
7380
|
+
case "execute":
|
|
7381
|
+
return `ContinuumDAO: execute "${proposalLabel(input)}" ${end}`;
|
|
7382
|
+
case "cancel":
|
|
7383
|
+
return `ContinuumDAO: cancel "${proposalLabel(input)}" ${end}`;
|
|
7384
|
+
case "forumSignIn": {
|
|
7385
|
+
const who = text(input.username);
|
|
7386
|
+
return who ? `ContinuumDAO: sign in to the forum as ${who} ${end}` : `ContinuumDAO: sign in to the forum ${end}`;
|
|
7387
|
+
}
|
|
7388
|
+
case "marketplaceCreateListing":
|
|
7389
|
+
return `ContinuumDAO: list veCTM ${id} for ${moneyFromWei(input.askWei, input.paymentToken)} until ${deadlineLabel(input.deadline)} ${end}`;
|
|
7390
|
+
case "marketplaceDelist":
|
|
7391
|
+
return `ContinuumDAO: delist veCTM ${id} ${end}`;
|
|
7392
|
+
case "marketplaceFulfillListing":
|
|
7393
|
+
return `ContinuumDAO: buy veCTM ${id} for ${moneyFromWei(input.priceWei, input.paymentToken)} ${end}`;
|
|
7394
|
+
case "marketplaceCreateOffering":
|
|
7395
|
+
return `ContinuumDAO: offer ${moneyFromWei(input.bidWei, input.paymentToken)} for veCTM ${id} until ${deadlineLabel(input.deadline)} ${end}`;
|
|
7396
|
+
case "marketplaceRescind":
|
|
7397
|
+
return `ContinuumDAO: rescind offer on veCTM ${id} ${end}`;
|
|
7398
|
+
case "marketplaceFulfillOffering":
|
|
7399
|
+
return `ContinuumDAO: accept offer of ${moneyFromWei(input.priceWei, input.paymentToken)} on veCTM ${id} ${end}`;
|
|
7400
|
+
case "marketplaceCreateAuction":
|
|
7401
|
+
return `ContinuumDAO: auction veCTM ${id} reserve ${moneyFromWei(input.reserveWei, input.paymentToken)}, minimum increment ${moneyFromWei(input.minIncrementWei, input.paymentToken)}, until ${deadlineLabel(input.deadline)} ${end}`;
|
|
7402
|
+
case "marketplaceCancelAuction":
|
|
7403
|
+
return `ContinuumDAO: cancel auction for veCTM ${id} ${end}`;
|
|
7404
|
+
case "marketplaceAuctionBid":
|
|
7405
|
+
return `ContinuumDAO: bid ${moneyFromWei(input.priceWei, input.paymentToken)} on veCTM ${id} ${end}`;
|
|
7406
|
+
case "marketplaceSettleAuction":
|
|
7407
|
+
return `ContinuumDAO: settle auction for veCTM ${id} ${end}`;
|
|
7408
|
+
default:
|
|
7409
|
+
return `ContinuumDAO: ${end}`;
|
|
7410
|
+
}
|
|
7411
|
+
}
|
|
7412
|
+
function preprocessContinuumDaoPurpose(action, raw) {
|
|
7413
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
|
|
7414
|
+
const o = { ...raw };
|
|
7415
|
+
const supplied = text(o.purposeText ?? o.purpose);
|
|
7416
|
+
if (supplied) {
|
|
7417
|
+
o.purposeText = supplied;
|
|
7418
|
+
return o;
|
|
7419
|
+
}
|
|
7420
|
+
o.purposeText = buildContinuumDaoMcpPurpose(action, o);
|
|
7421
|
+
return o;
|
|
7422
|
+
}
|
|
7423
|
+
|
|
7157
7424
|
// src/protocols/evm/continuum-dao/index.ts
|
|
7158
7425
|
registerProtocolModule(continuumDaoMarketplaceProtocolModule);
|
|
7159
7426
|
var continuumDaoProtocolModule = {
|
|
@@ -7207,6 +7474,6 @@ var continuumDaoProtocolModule = {
|
|
|
7207
7474
|
};
|
|
7208
7475
|
registerProtocolModule(continuumDaoProtocolModule);
|
|
7209
7476
|
|
|
7210
|
-
export { ATTACH_VECTM_SIGNATURE, AUCTION_STATUS, BRAVO_SUPPORT_LABELS, 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_CATALOG_NETWORK, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS, CONTINUUM_DAO_LINEA_GOVERNOR_LEGACY_ADDRESS, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CONTINUUM_DAO_LIQUIDATE_FALLBACK, CONTINUUM_DAO_MARKETPLACE_API, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, 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_FEE_RATE_SCALE, CTM_TOKEN_ADDRESS, CTM_TOKEN_DECIMALS, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, FEE_TIER_NAMES, FORUM_GOVERNANCE_SECTIONS, FORUM_IDEA_SECTION, FORUM_LOGIN_DELIVERY_KIND, FOUNDRY_PROPOSAL_REQUIRED_SERVERS, GOVERNOR_STATE, GOVERNOR_STATE_LABELS, INCREASE_UNLOCK_TIME_SIGNATURE, MARKETPLACE_APPROVE_FALLBACK, MARKETPLACE_AUCTION_CREATE_FALLBACK, MARKETPLACE_BID_FALLBACK, MARKETPLACE_FULFILL_FALLBACK, MARKETPLACE_LISTING_FALLBACK, MARKETPLACE_OFFERING_FALLBACK, MARKETPLACE_SETTLE_FALLBACK, MARKETPLACE_USDC_LINEA_ADDRESS, MARKETPLACE_WETH_LINEA_ADDRESS, MARKET_ORDER_STATUS, MAXTIME_SECONDS, MULTISIGN_AGENT_WALLET_LINEA_ADDRESS, PROPOSAL_TYPE_LABELS, PROPOSAL_TYPE_TO_FORUM_SECTION, VECTM_DEFAULT_MINIMUM_LOCK_WEI, VECTM_LIQ_MIN_LOCKED_WEI, VECTM_LIQ_PENALTY_DEN, VECTM_LIQ_PENALTY_NUM, VECTM_MAX_LOCK_WEEKS, VECTM_NODE_INFO_TUPLE, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, VOTE_CAST_EVENT, VOTE_CAST_WITH_PARAMS_EVENT, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_START_BLOCK, WEEK_SECONDS, addressInCommitteeList, applyDerivedStatuses, applyForumSectionCheck, applyMarketplaceEvent, applyNodeAttachments, assertContinuumDaoForumDeleteInput, assertContinuumDaoForumMarkReadInput, assertContinuumDaoForumRecentInput, assertContinuumDaoForumSearchInput, assertContinuumDaoForumTopicKey, assertContinuumDaoProposalSimulation, assertCreateLockAmount, assertCtmAmountAtLeastMinimum, assertDelegatee, assertExecutorOwnsLock, assertIncreaseAmount, assertIncreaseUnlockTime, assertLiquidate, assertLockDurationSeconds, assertMerge, assertProposalCatalogConstants, assertSplitExtracted, assertTransfer, assertUndelegateNotAlreadySelf, assertWithdraw, auctionCandidate, auctionStatusName, bravoSupportLabel, bucketGovernorState, buildBravoProposalArgs, buildDeltaProposalArgs, buildEvmMultisignBodyContinuumDaoAttachVeCtm, buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp, buildEvmMultisignBodyContinuumDaoCancel, buildEvmMultisignBodyContinuumDaoCastVoteBravo, buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp, buildEvmMultisignBodyContinuumDaoCastVoteDelta, buildEvmMultisignBodyContinuumDaoCreateLock, buildEvmMultisignBodyContinuumDaoDelegate, buildEvmMultisignBodyContinuumDaoExecute, buildEvmMultisignBodyContinuumDaoForumSignIn, buildEvmMultisignBodyContinuumDaoIncreaseAmount, buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime, buildEvmMultisignBodyContinuumDaoLiquidate, buildEvmMultisignBodyContinuumDaoMarketplaceAuctionBid, buildEvmMultisignBodyContinuumDaoMarketplaceCancelAuction, buildEvmMultisignBodyContinuumDaoMarketplaceCreateAuction, buildEvmMultisignBodyContinuumDaoMarketplaceCreateListing, buildEvmMultisignBodyContinuumDaoMarketplaceCreateOffering, buildEvmMultisignBodyContinuumDaoMarketplaceDelist, buildEvmMultisignBodyContinuumDaoMarketplaceFulfillListing, buildEvmMultisignBodyContinuumDaoMarketplaceFulfillOffering, buildEvmMultisignBodyContinuumDaoMarketplaceRescind, buildEvmMultisignBodyContinuumDaoMarketplaceSettleAuction, buildEvmMultisignBodyContinuumDaoMerge, buildEvmMultisignBodyContinuumDaoProposeBravo, buildEvmMultisignBodyContinuumDaoProposeDelta, buildEvmMultisignBodyContinuumDaoProposeDeltaFromMcp, buildEvmMultisignBodyContinuumDaoRequestDetach, buildEvmMultisignBodyContinuumDaoSplit, buildEvmMultisignBodyContinuumDaoTransfer, buildEvmMultisignBodyContinuumDaoUndelegate, buildEvmMultisignBodyContinuumDaoWithdraw, buildFeeAlternativeSummary, buildFoundryProposalSimulatePlan, calculateMarketplaceFee, collectVotesFromLogs, computeLiquidationAmounts, continuumDaoComposeProposalAction, continuumDaoDeployment, continuumDaoExplainProposal, continuumDaoFetchDelegates, continuumDaoFetchLiveProposals, continuumDaoFetchProposal, continuumDaoFetchProposalCount, continuumDaoFetchProposalState, continuumDaoFetchProposalVoteEligibility, continuumDaoFetchProposalVotes, continuumDaoFetchProposals, continuumDaoFetchVotingPower, continuumDaoForumCreateIdea, continuumDaoForumCreateTopic, continuumDaoForumDelete, continuumDaoForumFetchPost, continuumDaoForumFetchThread, continuumDaoForumMarkRead, continuumDaoForumMarkUnread, continuumDaoForumMe, continuumDaoForumReact, continuumDaoForumRecent, continuumDaoForumReply, continuumDaoForumReplyCount, continuumDaoForumResolve, continuumDaoForumSearch, continuumDaoForumSections, continuumDaoForumSignInEligible, continuumDaoForumSignInNonce, continuumDaoForumSignOut, continuumDaoForumUnread, continuumDaoForumUrl, continuumDaoForumUserPostIds, continuumDaoHashProposal, continuumDaoMarketplaceProtocolModule, continuumDaoMpaFlag, continuumDaoMpaListing, continuumDaoMpaMailboxList, continuumDaoMpaMailboxOpen, continuumDaoMpaMailboxSend, continuumDaoMpaRetract, continuumDaoProtocolModule, continuumDaoRegisterProposal, continuumDaoSignatureText, continuumDaoSimulateProposal, continuumDaoTechnocoreBind, ctmTokenAddressOnEvmChain, decodeDeltaVoteParams, deriveAuctionStatus, emptyMarketplaceIndexCache, encodeContinuumDaoNodeInfo, encodeDeltaMetadata, encodeDeltaVoteParams, encodeGovActionCalldata, estimateBlockAtTimestamp, executableGovBatches, expectedForumSectionForProposalType, explainGovAction, explainProposalRecord, explorerBase, fetchContinuumDaoCommitteeAddresses, fetchContinuumDaoMarketplaceActivity, fetchContinuumDaoMarketplaceAuctions, fetchContinuumDaoMarketplaceConfig, fetchContinuumDaoMarketplaceFeePreview, fetchContinuumDaoMarketplaceListings, fetchContinuumDaoMarketplaceOfferings, fetchContinuumDaoMarketplaceToken, floorUnlockTimeSeconds, foldMarketplaceEvents, formatProposalSimulationFailure, foundryPlanHasSequentialExecute, foundryScriptContainsCall, getMarketplaceIndexMemoryCache, governorAddressOnEvmChain, governorWriteAbi, howVoted, isConfiguredAddress, isContinuumDaoCtmOnAssetsChain, isContinuumDaoLockChain, isContinuumDaoSupportedChainId, isContinuumDaoVeCtmOnAssetsChain, isCtmTokenSymbol, isForumIdeaSection, isGovNoOpAction, isLegacyContinuumDaoGovernor, isLineaHomeNetwork, isLiveAuctionStatus, isOpenOrder, isRemoteC3Action, isVotingEscrowContinuumName, keyGenOwnsVeCtm, listContinuumDaoDefaultAssets, listingCandidate, loadMarketplacePlanSnapshot, looksLikeProposalCatalogId, looksLikeUnixSeconds, marketplacePublicClient, marketplaceVeCtmReceivedBy, maxLockDurationSeconds, monthsOfFees, normalizeGovConfiguration, normalizeNodeInfo, orderStatusName, parseCommitteeAddressesFromConstitution, pickFeeAlternativeExample, planMarketplaceSteps, preflightAttachVeCtm, preflightCreateLock, preflightDelegate, preflightIncreaseAmount, preflightIncreaseUnlockTime, preflightLiquidate, preflightMerge, preflightRequestDetach, preflightSplit, preflightTransfer, preflightUndelegate, preflightWithdraw, proposalCatalogCanonical, proposalCatalogDocument, proposalDescriptionHash, publicClient2 as publicClient, quoteContinuumDaoMarketplaceFeeAlternative, rankMarketplaceSearchHits, readCtmBalanceWei, readMarketplaceConfigFromChain, readMarketplaceFeePreviewFromChain, readMinimumLockWei, readVeCtmLockState, requireGovernor, resetContinuumDaoCommitteeCache, resolveAttachGroupId, resolveGovernorProposalRef, resolveProposalCatalogRange, scanMarketplaceLogs, searchContinuumDaoMarketplace, setMarketplaceIndexMemoryCache, stampLineaCatalogActions, summarizeLiveProposals, summarizeProposalVotes, throwIfProposalSimulationFailed, validateAbiParameter, votingEscrowAddressOnEvmChain, votingEscrowMarketplaceAddressOnEvmChain, votingPowerAboveUntil, votingPowerRefuse, votingPowerWarning };
|
|
7477
|
+
export { ATTACH_VECTM_SIGNATURE, AUCTION_STATUS, BRAVO_SUPPORT_LABELS, 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_CATALOG_NETWORK, CONTINUUM_DAO_LINEA_CHAIN_ID, CONTINUUM_DAO_LINEA_GOVERNOR_ADDRESS, CONTINUUM_DAO_LINEA_GOVERNOR_LEGACY_ADDRESS, CONTINUUM_DAO_LINEA_SEPOLIA_CHAIN_ID, CONTINUUM_DAO_LIQUIDATE_FALLBACK, CONTINUUM_DAO_MARKETPLACE_API, CONTINUUM_DAO_MARKETPLACE_PROTOCOL_ID, 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_FEE_RATE_SCALE, CTM_TOKEN_ADDRESS, CTM_TOKEN_DECIMALS, CTM_TOKEN_NAME, CTM_TOKEN_SYMBOL, FEE_TIER_NAMES, FORUM_GOVERNANCE_SECTIONS, FORUM_IDEA_SECTION, FORUM_LOGIN_DELIVERY_KIND, FOUNDRY_PROPOSAL_REQUIRED_SERVERS, GOVERNOR_STATE, GOVERNOR_STATE_LABELS, INCREASE_UNLOCK_TIME_SIGNATURE, MARKETPLACE_APPROVE_FALLBACK, MARKETPLACE_AUCTION_CREATE_FALLBACK, MARKETPLACE_BID_FALLBACK, MARKETPLACE_FULFILL_FALLBACK, MARKETPLACE_LISTING_FALLBACK, MARKETPLACE_OFFERING_FALLBACK, MARKETPLACE_SETTLE_FALLBACK, MARKETPLACE_USDC_LINEA_ADDRESS, MARKETPLACE_WETH_LINEA_ADDRESS, MARKET_ORDER_STATUS, MAXTIME_SECONDS, MULTISIGN_AGENT_WALLET_LINEA_ADDRESS, PROPOSAL_TYPE_LABELS, PROPOSAL_TYPE_TO_FORUM_SECTION, VECTM_DEFAULT_MINIMUM_LOCK_WEI, VECTM_LIQ_MIN_LOCKED_WEI, VECTM_LIQ_PENALTY_DEN, VECTM_LIQ_PENALTY_NUM, VECTM_MAX_LOCK_WEEKS, VECTM_NODE_INFO_TUPLE, VECTM_TOKEN_NAME, VECTM_TOKEN_SYMBOL, VOTE_CAST_EVENT, VOTE_CAST_WITH_PARAMS_EVENT, VOTING_ESCROW_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_LINEA_ADDRESS, VOTING_ESCROW_MARKETPLACE_START_BLOCK, WEEK_SECONDS, addressInCommitteeList, applyDerivedStatuses, applyForumSectionCheck, applyMarketplaceEvent, applyNodeAttachments, assertContinuumDaoForumDeleteInput, assertContinuumDaoForumMarkReadInput, assertContinuumDaoForumRecentInput, assertContinuumDaoForumSearchInput, assertContinuumDaoForumTopicKey, assertContinuumDaoProposalSimulation, assertCreateLockAmount, assertCtmAmountAtLeastMinimum, assertDelegatee, assertExecutorOwnsLock, assertIncreaseAmount, assertIncreaseUnlockTime, assertLiquidate, assertLockDurationSeconds, assertMerge, assertProposalCatalogConstants, assertSplitExtracted, assertTransfer, assertUndelegateNotAlreadySelf, assertWithdraw, auctionCandidate, auctionStatusName, bravoSupportLabel, bucketGovernorState, buildBravoProposalArgs, buildContinuumDaoMcpPurpose, buildDeltaProposalArgs, buildEvmMultisignBodyContinuumDaoAttachVeCtm, buildEvmMultisignBodyContinuumDaoAttachVeCtmFromMcp, buildEvmMultisignBodyContinuumDaoCancel, buildEvmMultisignBodyContinuumDaoCastVoteBravo, buildEvmMultisignBodyContinuumDaoCastVoteBravoFromMcp, buildEvmMultisignBodyContinuumDaoCastVoteDelta, buildEvmMultisignBodyContinuumDaoCreateLock, buildEvmMultisignBodyContinuumDaoDelegate, buildEvmMultisignBodyContinuumDaoExecute, buildEvmMultisignBodyContinuumDaoForumSignIn, buildEvmMultisignBodyContinuumDaoIncreaseAmount, buildEvmMultisignBodyContinuumDaoIncreaseUnlockTime, buildEvmMultisignBodyContinuumDaoLiquidate, buildEvmMultisignBodyContinuumDaoMarketplaceAuctionBid, buildEvmMultisignBodyContinuumDaoMarketplaceCancelAuction, buildEvmMultisignBodyContinuumDaoMarketplaceCreateAuction, buildEvmMultisignBodyContinuumDaoMarketplaceCreateListing, buildEvmMultisignBodyContinuumDaoMarketplaceCreateOffering, buildEvmMultisignBodyContinuumDaoMarketplaceDelist, buildEvmMultisignBodyContinuumDaoMarketplaceFulfillListing, buildEvmMultisignBodyContinuumDaoMarketplaceFulfillOffering, buildEvmMultisignBodyContinuumDaoMarketplaceRescind, buildEvmMultisignBodyContinuumDaoMarketplaceSettleAuction, buildEvmMultisignBodyContinuumDaoMerge, buildEvmMultisignBodyContinuumDaoProposeBravo, buildEvmMultisignBodyContinuumDaoProposeDelta, buildEvmMultisignBodyContinuumDaoProposeDeltaFromMcp, buildEvmMultisignBodyContinuumDaoRequestDetach, buildEvmMultisignBodyContinuumDaoSplit, buildEvmMultisignBodyContinuumDaoTransfer, buildEvmMultisignBodyContinuumDaoUndelegate, buildEvmMultisignBodyContinuumDaoWithdraw, buildFeeAlternativeSummary, buildFoundryProposalSimulatePlan, calculateMarketplaceFee, collectVotesFromLogs, computeLiquidationAmounts, continuumDaoComposeProposalAction, continuumDaoDeployment, continuumDaoExplainProposal, continuumDaoFetchDelegates, continuumDaoFetchLiveProposals, continuumDaoFetchProposal, continuumDaoFetchProposalCount, continuumDaoFetchProposalState, continuumDaoFetchProposalVoteEligibility, continuumDaoFetchProposalVotes, continuumDaoFetchProposals, continuumDaoFetchVotingPower, continuumDaoForumCreateIdea, continuumDaoForumCreateTopic, continuumDaoForumDelete, continuumDaoForumFetchPost, continuumDaoForumFetchThread, continuumDaoForumMarkRead, continuumDaoForumMarkUnread, continuumDaoForumMe, continuumDaoForumReact, continuumDaoForumRecent, continuumDaoForumReply, continuumDaoForumReplyCount, continuumDaoForumResolve, continuumDaoForumSearch, continuumDaoForumSections, continuumDaoForumSignInEligible, continuumDaoForumSignInNonce, continuumDaoForumSignOut, continuumDaoForumUnread, continuumDaoForumUrl, continuumDaoForumUserPostIds, continuumDaoHashProposal, continuumDaoMarketplaceProtocolModule, continuumDaoMpaFlag, continuumDaoMpaListing, continuumDaoMpaMailboxList, continuumDaoMpaMailboxOpen, continuumDaoMpaMailboxSend, continuumDaoMpaRetract, continuumDaoProtocolModule, continuumDaoRegisterProposal, continuumDaoSignatureText, continuumDaoSimulateProposal, continuumDaoTechnocoreBind, ctmTokenAddressOnEvmChain, decodeDeltaVoteParams, deriveAuctionStatus, emptyMarketplaceIndexCache, encodeContinuumDaoNodeInfo, encodeDeltaMetadata, encodeDeltaVoteParams, encodeGovActionCalldata, estimateBlockAtTimestamp, executableGovBatches, expectedForumSectionForProposalType, explainGovAction, explainProposalRecord, explorerBase, fetchContinuumDaoCommitteeAddresses, fetchContinuumDaoMarketplaceActivity, fetchContinuumDaoMarketplaceAuctions, fetchContinuumDaoMarketplaceConfig, fetchContinuumDaoMarketplaceFeePreview, fetchContinuumDaoMarketplaceListings, fetchContinuumDaoMarketplaceOfferings, fetchContinuumDaoMarketplaceToken, floorUnlockTimeSeconds, foldMarketplaceEvents, formatProposalSimulationFailure, foundryPlanHasSequentialExecute, foundryScriptContainsCall, getMarketplaceIndexMemoryCache, governorAddressOnEvmChain, governorWriteAbi, howVoted, isConfiguredAddress, isContinuumDaoCtmOnAssetsChain, isContinuumDaoLockChain, isContinuumDaoSupportedChainId, isContinuumDaoVeCtmOnAssetsChain, isCtmTokenSymbol, isForumIdeaSection, isGovNoOpAction, isLegacyContinuumDaoGovernor, isLineaHomeNetwork, isLiveAuctionStatus, isOpenOrder, isRemoteC3Action, isVotingEscrowContinuumName, keyGenOwnsVeCtm, listContinuumDaoDefaultAssets, listingCandidate, loadMarketplacePlanSnapshot, looksLikeProposalCatalogId, looksLikeUnixSeconds, marketplacePublicClient, marketplaceVeCtmReceivedBy, maxLockDurationSeconds, monthsOfFees, normalizeGovConfiguration, normalizeNodeInfo, orderStatusName, parseCommitteeAddressesFromConstitution, pickFeeAlternativeExample, planMarketplaceSteps, preflightAttachVeCtm, preflightCreateLock, preflightDelegate, preflightIncreaseAmount, preflightIncreaseUnlockTime, preflightLiquidate, preflightMerge, preflightRequestDetach, preflightSplit, preflightTransfer, preflightUndelegate, preflightWithdraw, preprocessContinuumDaoPurpose, proposalCatalogCanonical, proposalCatalogDocument, proposalDescriptionHash, publicClient2 as publicClient, quoteContinuumDaoMarketplaceFeeAlternative, rankMarketplaceSearchHits, readCtmBalanceWei, readMarketplaceConfigFromChain, readMarketplaceFeePreviewFromChain, readMinimumLockWei, readVeCtmLockState, requireGovernor, resetContinuumDaoCommitteeCache, resolveAttachGroupId, resolveGovernorProposalRef, resolveProposalCatalogRange, scanMarketplaceLogs, searchContinuumDaoMarketplace, setMarketplaceIndexMemoryCache, stampLineaCatalogActions, summarizeLiveProposals, summarizeProposalVotes, throwIfProposalSimulationFailed, validateAbiParameter, votingEscrowAddressOnEvmChain, votingEscrowMarketplaceAddressOnEvmChain, votingPowerAboveUntil, votingPowerRefuse, votingPowerWarning };
|
|
7211
7478
|
//# sourceMappingURL=index.js.map
|
|
7212
7479
|
//# sourceMappingURL=index.js.map
|