@sherwoodagent/cli 0.41.4 → 0.41.5
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/{addresses-JBIU5U3T.js → addresses-RQ7DTIBS.js} +4 -4
- package/dist/{agent-LBF6OZRW.js → agent-SXEV65ME.js} +6 -6
- package/dist/{chat-3GE6474H.js → chat-D5OF4OTL.js} +8 -8
- package/dist/{chunk-IJG4CTOI.js → chunk-2YOXRATG.js} +2 -2
- package/dist/{chunk-WCBG44IQ.js → chunk-4EHI4SKM.js} +25 -1
- package/dist/chunk-4EHI4SKM.js.map +1 -0
- package/dist/{chunk-JJ4EF7ZE.js → chunk-4QNPS5LI.js} +5 -5
- package/dist/{chunk-DNX3P5YK.js → chunk-D2UYGUV2.js} +2 -2
- package/dist/{chunk-CECQNUS6.js → chunk-DG2K6CPY.js} +4 -4
- package/dist/{chunk-OFR3LCYE.js → chunk-M2NJPATE.js} +3 -3
- package/dist/{chunk-VMNB4ARO.js → chunk-MT3VS3GZ.js} +2 -2
- package/dist/{chunk-JGJAKTKK.js → chunk-XZHIZVJ3.js} +5 -5
- package/dist/{chunk-AGKCDHKI.js → chunk-YRCJ3NUX.js} +4 -4
- package/dist/{chunk-ARHM3CYN.js → chunk-YYB4TF6D.js} +4 -4
- package/dist/{client-HKAG55PQ.js → client-VSBQM2LU.js} +4 -4
- package/dist/{config-LS7FKZL5.js → config-YRERDZSL.js} +2 -2
- package/dist/{eas-27JA63VQ.js → eas-QNZKCEP7.js} +6 -6
- package/dist/{governor-YLZJIQOB.js → governor-RE6IJMUJ.js} +6 -6
- package/dist/index.js +26 -26
- package/dist/{network-KSMKPKNL.js → network-R5NFPIAF.js} +3 -3
- package/dist/{price-5RAPTAYW.js → price-GY3JQ2OK.js} +5 -5
- package/dist/research-PB22GPXC.js +14 -0
- package/dist/{research-HDEPP2SL.js → research-SVWNPHIN.js} +9 -9
- package/dist/{session-EST3O7W3.js → session-3Z6I2IM3.js} +10 -10
- package/dist/{trade-XTLUZJB6.js → trade-E5HSZE44.js} +16 -16
- package/dist/{xmtp-LPCRZRHX.js → xmtp-VPGQE4IP.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-WCBG44IQ.js.map +0 -1
- package/dist/research-4UA4UB5P.js +0 -14
- /package/dist/{addresses-JBIU5U3T.js.map → addresses-RQ7DTIBS.js.map} +0 -0
- /package/dist/{agent-LBF6OZRW.js.map → agent-SXEV65ME.js.map} +0 -0
- /package/dist/{chat-3GE6474H.js.map → chat-D5OF4OTL.js.map} +0 -0
- /package/dist/{chunk-IJG4CTOI.js.map → chunk-2YOXRATG.js.map} +0 -0
- /package/dist/{chunk-JJ4EF7ZE.js.map → chunk-4QNPS5LI.js.map} +0 -0
- /package/dist/{chunk-DNX3P5YK.js.map → chunk-D2UYGUV2.js.map} +0 -0
- /package/dist/{chunk-CECQNUS6.js.map → chunk-DG2K6CPY.js.map} +0 -0
- /package/dist/{chunk-OFR3LCYE.js.map → chunk-M2NJPATE.js.map} +0 -0
- /package/dist/{chunk-VMNB4ARO.js.map → chunk-MT3VS3GZ.js.map} +0 -0
- /package/dist/{chunk-JGJAKTKK.js.map → chunk-XZHIZVJ3.js.map} +0 -0
- /package/dist/{chunk-AGKCDHKI.js.map → chunk-YRCJ3NUX.js.map} +0 -0
- /package/dist/{chunk-ARHM3CYN.js.map → chunk-YYB4TF6D.js.map} +0 -0
- /package/dist/{client-HKAG55PQ.js.map → client-VSBQM2LU.js.map} +0 -0
- /package/dist/{config-LS7FKZL5.js.map → config-YRERDZSL.js.map} +0 -0
- /package/dist/{eas-27JA63VQ.js.map → eas-QNZKCEP7.js.map} +0 -0
- /package/dist/{governor-YLZJIQOB.js.map → governor-RE6IJMUJ.js.map} +0 -0
- /package/dist/{network-KSMKPKNL.js.map → network-R5NFPIAF.js.map} +0 -0
- /package/dist/{price-5RAPTAYW.js.map → price-GY3JQ2OK.js.map} +0 -0
- /package/dist/{research-4UA4UB5P.js.map → research-PB22GPXC.js.map} +0 -0
- /package/dist/{research-HDEPP2SL.js.map → research-SVWNPHIN.js.map} +0 -0
- /package/dist/{session-EST3O7W3.js.map → session-3Z6I2IM3.js.map} +0 -0
- /package/dist/{trade-XTLUZJB6.js.map → trade-E5HSZE44.js.map} +0 -0
- /package/dist/{xmtp-LPCRZRHX.js.map → xmtp-VPGQE4IP.js.map} +0 -0
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
TOKENS,
|
|
14
14
|
UNISWAP,
|
|
15
15
|
VENICE
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
17
|
+
import "./chunk-2YOXRATG.js";
|
|
18
|
+
import "./chunk-4EHI4SKM.js";
|
|
19
19
|
export {
|
|
20
20
|
AERODROME,
|
|
21
21
|
AGENT_REGISTRY,
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
UNISWAP,
|
|
33
33
|
VENICE
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=addresses-
|
|
35
|
+
//# sourceMappingURL=addresses-RQ7DTIBS.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getResearchProvider,
|
|
3
3
|
isX402WalletFunded
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-D2UYGUV2.js";
|
|
5
|
+
import "./chunk-M2NJPATE.js";
|
|
6
6
|
import {
|
|
7
7
|
hyperevm,
|
|
8
8
|
hyperevmTestnet
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-2YOXRATG.js";
|
|
10
|
+
import "./chunk-4EHI4SKM.js";
|
|
11
11
|
import {
|
|
12
12
|
BASE_STRATEGY_ABI
|
|
13
13
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -5099,7 +5099,7 @@ var PortfolioTracker = class {
|
|
|
5099
5099
|
}
|
|
5100
5100
|
try {
|
|
5101
5101
|
const { createPublicClient, http: http2 } = await import("viem");
|
|
5102
|
-
const { hyperevm: hyperevm2, hyperevmTestnet: hyperevmTestnet2 } = await import("./network-
|
|
5102
|
+
const { hyperevm: hyperevm2, hyperevmTestnet: hyperevmTestnet2 } = await import("./network-R5NFPIAF.js");
|
|
5103
5103
|
const { BASE_STRATEGY_ABI: BASE_STRATEGY_ABI2, SYNDICATE_VAULT_ABI } = await import("./abis-RGCO5GHC.js");
|
|
5104
5104
|
const selectedChain = chain === "hyperevm-testnet" ? hyperevmTestnet2 : hyperevm2;
|
|
5105
5105
|
const client = createPublicClient({
|
|
@@ -8644,4 +8644,4 @@ function formatFearGreed(value) {
|
|
|
8644
8644
|
export {
|
|
8645
8645
|
registerAgentCommands
|
|
8646
8646
|
};
|
|
8647
|
-
//# sourceMappingURL=agent-
|
|
8647
|
+
//# sourceMappingURL=agent-SXEV65ME.js.map
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSyndicate,
|
|
3
3
|
updateMetadata
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YRCJ3NUX.js";
|
|
5
5
|
import {
|
|
6
6
|
getTextRecord,
|
|
7
7
|
resolveSyndicate,
|
|
8
8
|
setTextRecord
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4QNPS5LI.js";
|
|
10
10
|
import {
|
|
11
11
|
ENS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
13
13
|
import {
|
|
14
14
|
formatContractError,
|
|
15
15
|
getAccount
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-M2NJPATE.js";
|
|
17
|
+
import "./chunk-2YOXRATG.js";
|
|
18
18
|
import {
|
|
19
19
|
cacheGroupId,
|
|
20
20
|
getCachedGroupId
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4EHI4SKM.js";
|
|
22
22
|
import "./chunk-D77JGXIV.js";
|
|
23
23
|
import {
|
|
24
24
|
fetchMetadata,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
import chalk from "chalk";
|
|
30
30
|
import ora from "ora";
|
|
31
31
|
async function loadXmtp() {
|
|
32
|
-
return import("./xmtp-
|
|
32
|
+
return import("./xmtp-VPGQE4IP.js");
|
|
33
33
|
}
|
|
34
34
|
function formatTimestamp(date) {
|
|
35
35
|
return `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`;
|
|
@@ -428,4 +428,4 @@ function registerChatCommands(program) {
|
|
|
428
428
|
export {
|
|
429
429
|
registerChatCommands
|
|
430
430
|
};
|
|
431
|
-
//# sourceMappingURL=chat-
|
|
431
|
+
//# sourceMappingURL=chat-D5OF4OTL.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getConfigRpcUrl
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4EHI4SKM.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/network.ts
|
|
6
6
|
import { defineChain } from "viem";
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
getExplorerUrl,
|
|
174
174
|
isTestnet
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=chunk-
|
|
176
|
+
//# sourceMappingURL=chunk-2YOXRATG.js.map
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import os from "os";
|
|
4
4
|
import path from "path";
|
|
5
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
5
6
|
var CONFIG_DIR = path.join(os.homedir(), ".sherwood");
|
|
6
7
|
var CONFIG_PATH = path.join(CONFIG_DIR, "config.json");
|
|
8
|
+
var DASHBOARD_BRIDGE_PATH = path.join(CONFIG_DIR, "dashboard.json");
|
|
7
9
|
function loadConfig() {
|
|
8
10
|
if (fs.existsSync(CONFIG_PATH)) {
|
|
9
11
|
const config = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8"));
|
|
@@ -15,6 +17,28 @@ function loadConfig() {
|
|
|
15
17
|
function saveConfig(config) {
|
|
16
18
|
fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 448 });
|
|
17
19
|
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), { mode: 384 });
|
|
20
|
+
writeDashboardBridge(config);
|
|
21
|
+
}
|
|
22
|
+
function writeDashboardBridge(config) {
|
|
23
|
+
try {
|
|
24
|
+
let agentWallet = null;
|
|
25
|
+
if (config.privateKey) {
|
|
26
|
+
const key = config.privateKey.startsWith("0x") ? config.privateKey : `0x${config.privateKey}`;
|
|
27
|
+
agentWallet = privateKeyToAccount(key).address;
|
|
28
|
+
}
|
|
29
|
+
const bridge = {
|
|
30
|
+
version: 1,
|
|
31
|
+
agentWallet,
|
|
32
|
+
syndicates: config.syndicates ?? {},
|
|
33
|
+
primarySyndicate: config.primarySyndicate ?? {}
|
|
34
|
+
};
|
|
35
|
+
fs.writeFileSync(
|
|
36
|
+
DASHBOARD_BRIDGE_PATH,
|
|
37
|
+
JSON.stringify(bridge, null, 2),
|
|
38
|
+
{ mode: 384 }
|
|
39
|
+
);
|
|
40
|
+
} catch {
|
|
41
|
+
}
|
|
18
42
|
}
|
|
19
43
|
function cacheGroupId(subdomain, groupId) {
|
|
20
44
|
const config = loadConfig();
|
|
@@ -190,4 +214,4 @@ export {
|
|
|
190
214
|
cacheSwapRoute,
|
|
191
215
|
clearSwapRoutes
|
|
192
216
|
};
|
|
193
|
-
//# sourceMappingURL=chunk-
|
|
217
|
+
//# sourceMappingURL=chunk-4EHI4SKM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/config.ts"],"sourcesContent":["/**\n * Local config management — ~/.sherwood/config.json\n *\n * Stores group ID cache, per-chain contract addresses, and wallet config.\n */\n\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { privateKeyToAccount } from \"viem/accounts\";\n\nconst CONFIG_DIR = path.join(os.homedir(), \".sherwood\");\nconst CONFIG_PATH = path.join(CONFIG_DIR, \"config.json\");\nconst DASHBOARD_BRIDGE_PATH = path.join(CONFIG_DIR, \"dashboard.json\");\n\n/** Per-chain user-specific addresses (stored by chainId). */\nexport interface ChainContracts {\n vault?: string; // user's default vault address\n}\n\n/** A syndicate the agent belongs to (creator or member). */\nexport interface SyndicateMembership {\n subdomain: string;\n vault: string;\n role: \"creator\" | \"agent\";\n}\n\nexport interface SherwoodConfig {\n dbEncryptionKey?: string; // legacy — no longer used, XMTP CLI manages its own DB\n privateKey?: string; // wallet private key (0x-prefixed)\n xmtpInboxId?: string;\n groupCache: Record<string, string>; // subdomain → XMTP group ID\n veniceApiKey?: string; // Venice AI inference API key\n agentId?: number; // ERC-8004 identity token ID\n contracts?: Record<string, ChainContracts>; // chainId → user addresses\n syndicates?: Record<string, SyndicateMembership[]>; // chainId → syndicate memberships\n primarySyndicate?: Record<string, string>; // chainId → subdomain of the active syndicate\n rpc?: Record<string, string>; // network name → custom RPC URL\n notifyTo?: string; // destination for cron summaries (Telegram chat ID, phone, etc.)\n uniswapApiKey?: string; // Uniswap Trading API key (from developers.uniswap.org)\n positions?: unknown[]; // open trade positions (typed in positions.ts)\n closedPositions?: unknown[]; // historical closed positions\n _xmtpMigrated?: boolean; // one-time flag: revoked stale installations from ~/.xmtp/ era\n /** Cached swap routes per chain: chainId → { tokenPair → SwapRoute } */\n swapRoutes?: Record<string, Record<string, SwapRoute>>;\n}\n\n/** Persisted swap route detected by the CLI during portfolio strategy proposal. */\nexport interface SwapRoute {\n mode: \"direct\" | \"multi-hop\";\n feeTier: number; // direct pool fee tier\n hop?: { via: string; feeIn: number; feeOut: number }; // multi-hop details\n detectedAt: number; // unix timestamp\n}\n\nexport function loadConfig(): SherwoodConfig {\n if (fs.existsSync(CONFIG_PATH)) {\n const config = JSON.parse(fs.readFileSync(CONFIG_PATH, \"utf-8\"));\n if (!config.groupCache) config.groupCache = {};\n return config;\n }\n\n return { groupCache: {} };\n}\n\nexport function saveConfig(config: SherwoodConfig): void {\n fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), { mode: 0o600 });\n writeDashboardBridge(config);\n}\n\n/**\n * Public-safe derivation of config.json for Hermes dashboard plugins to read.\n * Excludes privateKey + every other sensitive field. Hermes' sherwood-companion\n * plugin reads ~/.sherwood/dashboard.json to auto-detect the operator's\n * primary syndicate without prompting.\n *\n * Wrapped in try/catch — bridge-write failure must not break a config save.\n */\nfunction writeDashboardBridge(config: SherwoodConfig): void {\n try {\n let agentWallet: string | null = null;\n if (config.privateKey) {\n const key = config.privateKey.startsWith(\"0x\")\n ? (config.privateKey as `0x${string}`)\n : (`0x${config.privateKey}` as `0x${string}`);\n agentWallet = privateKeyToAccount(key).address;\n }\n const bridge = {\n version: 1,\n agentWallet,\n syndicates: config.syndicates ?? {},\n primarySyndicate: config.primarySyndicate ?? {},\n };\n fs.writeFileSync(\n DASHBOARD_BRIDGE_PATH,\n JSON.stringify(bridge, null, 2),\n { mode: 0o600 },\n );\n } catch {\n // Non-fatal: plugin will fall back to manual subdomain entry.\n }\n}\n\nexport function cacheGroupId(subdomain: string, groupId: string): void {\n const config = loadConfig();\n config.groupCache[subdomain] = groupId;\n saveConfig(config);\n}\n\nexport function getCachedGroupId(subdomain: string): string | undefined {\n const config = loadConfig();\n return config.groupCache[subdomain];\n}\n\nexport function invalidateCachedGroupId(subdomain: string): void {\n const config = loadConfig();\n if (config.groupCache[subdomain]) {\n delete config.groupCache[subdomain];\n saveConfig(config);\n }\n}\n\nexport function setVeniceApiKey(apiKey: string): void {\n const config = loadConfig();\n config.veniceApiKey = apiKey;\n saveConfig(config);\n}\n\nexport function getVeniceApiKey(): string | undefined {\n return loadConfig().veniceApiKey ?? process.env.VENICE_API_KEY;\n}\n\nexport function setAgentId(agentId: number): void {\n const config = loadConfig();\n config.agentId = agentId;\n saveConfig(config);\n}\n\nexport function getAgentId(): number | undefined {\n return loadConfig().agentId;\n}\n\nexport function setPrivateKey(key: string): void {\n const config = loadConfig();\n config.privateKey = key.startsWith(\"0x\") ? key : `0x${key}`;\n saveConfig(config);\n}\n\nexport function getPrivateKey(): string | undefined {\n return loadConfig().privateKey;\n}\n\n// ── Uniswap Trading API Key ──\n\nexport function setUniswapApiKey(apiKey: string): void {\n const config = loadConfig();\n config.uniswapApiKey = apiKey;\n saveConfig(config);\n}\n\nexport function getUniswapApiKey(): string | undefined {\n return loadConfig().uniswapApiKey ?? process.env.UNISWAP_API_KEY;\n}\n\n// ── Per-network RPC URLs ──\n\nexport function getConfigRpcUrl(network: string): string | undefined {\n return loadConfig().rpc?.[network];\n}\n\nexport function setConfigRpcUrl(network: string, url: string): void {\n const config = loadConfig();\n if (!config.rpc) config.rpc = {};\n config.rpc[network] = url;\n saveConfig(config);\n}\n\n// ── Per-chain contract addresses ──\n\nexport function getChainContracts(chainId: number): ChainContracts {\n const config = loadConfig();\n return config.contracts?.[String(chainId)] ?? {};\n}\n\nexport function getNotifyTo(): string | undefined {\n return loadConfig().notifyTo;\n}\n\nexport function setNotifyTo(id: string): void {\n const config = loadConfig();\n config.notifyTo = id;\n saveConfig(config);\n}\n\nexport function setChainContract(\n chainId: number,\n key: keyof ChainContracts,\n value: string,\n): void {\n const config = loadConfig();\n if (!config.contracts) config.contracts = {};\n const cid = String(chainId);\n if (!config.contracts[cid]) config.contracts[cid] = {};\n config.contracts[cid][key] = value;\n saveConfig(config);\n}\n\n// ── Syndicate Membership ──\n\n/**\n * Add (or update) a syndicate membership. Deduplicates by subdomain.\n * Automatically sets it as primary if it's the first syndicate on this chain.\n */\nexport function addSyndicate(\n chainId: number,\n membership: SyndicateMembership,\n): void {\n const config = loadConfig();\n const cid = String(chainId);\n if (!config.syndicates) config.syndicates = {};\n if (!config.syndicates[cid]) config.syndicates[cid] = [];\n\n // Upsert — replace existing entry with same subdomain\n const idx = config.syndicates[cid].findIndex(\n (s) => s.subdomain === membership.subdomain,\n );\n if (idx >= 0) {\n config.syndicates[cid][idx] = membership;\n } else {\n config.syndicates[cid].push(membership);\n }\n\n // Auto-set as primary if it's the first syndicate (or no primary set)\n if (!config.primarySyndicate) config.primarySyndicate = {};\n if (!config.primarySyndicate[cid]) {\n config.primarySyndicate[cid] = membership.subdomain;\n }\n\n saveConfig(config);\n}\n\n/** Get all syndicate memberships for a chain. */\nexport function getSyndicates(chainId: number): SyndicateMembership[] {\n const config = loadConfig();\n return config.syndicates?.[String(chainId)] ?? [];\n}\n\n/** Set which syndicate is the active/primary one for CLI commands. */\nexport function setPrimarySyndicate(\n chainId: number,\n subdomain: string,\n): void {\n const config = loadConfig();\n if (!config.primarySyndicate) config.primarySyndicate = {};\n config.primarySyndicate[String(chainId)] = subdomain;\n saveConfig(config);\n}\n\n/**\n * Get the primary syndicate for this chain.\n * Falls back to ChainContracts.vault for backwards compat with older configs.\n */\nexport function getPrimarySyndicate(\n chainId: number,\n): SyndicateMembership | undefined {\n const config = loadConfig();\n const cid = String(chainId);\n\n // Check new syndicates store first\n const primarySubdomain = config.primarySyndicate?.[cid];\n if (primarySubdomain && config.syndicates?.[cid]) {\n const found = config.syndicates[cid].find(\n (s) => s.subdomain === primarySubdomain,\n );\n if (found) return found;\n }\n\n // Backwards compat: if syndicates list has entries but no primary, use the first one\n if (config.syndicates?.[cid]?.length) {\n return config.syndicates[cid][0];\n }\n\n // Legacy fallback: config only has a vault address, no subdomain\n const vault = config.contracts?.[cid]?.vault;\n if (vault) {\n return { subdomain: \"\", vault, role: \"creator\" };\n }\n\n return undefined;\n}\n\n// ── Swap Route Cache ──\n\nfunction swapRouteKey(asset: string, token: string): string {\n return `${asset.toLowerCase()}→${token.toLowerCase()}`;\n}\n\n/** Get a cached swap route for a token pair on a chain. */\nexport function getCachedSwapRoute(chainId: number, asset: string, token: string): SwapRoute | undefined {\n const config = loadConfig();\n return config.swapRoutes?.[String(chainId)]?.[swapRouteKey(asset, token)];\n}\n\n/** Save a detected swap route to the config cache. */\nexport function cacheSwapRoute(chainId: number, asset: string, token: string, route: SwapRoute): void {\n const config = loadConfig();\n const cid = String(chainId);\n if (!config.swapRoutes) config.swapRoutes = {};\n if (!config.swapRoutes[cid]) config.swapRoutes[cid] = {};\n config.swapRoutes[cid][swapRouteKey(asset, token)] = route;\n saveConfig(config);\n}\n\n/** Clear all cached swap routes for a chain (e.g. after pool migration). */\nexport function clearSwapRoutes(chainId: number): void {\n const config = loadConfig();\n delete config.swapRoutes?.[String(chainId)];\n saveConfig(config);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,20 +2,20 @@ import {
|
|
|
2
2
|
ENS,
|
|
3
3
|
SHERWOOD,
|
|
4
4
|
TOKENS
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
6
6
|
import {
|
|
7
7
|
getAccount,
|
|
8
8
|
getPublicClient,
|
|
9
9
|
getWalletClient,
|
|
10
10
|
waitForReceipt,
|
|
11
11
|
writeContractWithRetry
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-M2NJPATE.js";
|
|
13
13
|
import {
|
|
14
14
|
getChain
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2YOXRATG.js";
|
|
16
16
|
import {
|
|
17
17
|
getChainContracts
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-4EHI4SKM.js";
|
|
19
19
|
import {
|
|
20
20
|
ERC20_ABI,
|
|
21
21
|
L2_REGISTRY_ABI,
|
|
@@ -524,4 +524,4 @@ export {
|
|
|
524
524
|
setTextRecord,
|
|
525
525
|
getTextRecord
|
|
526
526
|
};
|
|
527
|
-
//# sourceMappingURL=chunk-
|
|
527
|
+
//# sourceMappingURL=chunk-4QNPS5LI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getAccount
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-M2NJPATE.js";
|
|
4
4
|
|
|
5
5
|
// src/providers/research/messari.ts
|
|
6
6
|
import { base, baseSepolia } from "viem/chains";
|
|
@@ -580,4 +580,4 @@ export {
|
|
|
580
580
|
NansenProvider,
|
|
581
581
|
getResearchProvider
|
|
582
582
|
};
|
|
583
|
-
//# sourceMappingURL=chunk-
|
|
583
|
+
//# sourceMappingURL=chunk-D2UYGUV2.js.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EAS_CONTRACTS,
|
|
3
3
|
EAS_SCHEMAS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
5
5
|
import {
|
|
6
6
|
getAccount,
|
|
7
7
|
getPublicClient,
|
|
8
8
|
waitForReceipt,
|
|
9
9
|
writeContractWithRetry
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-M2NJPATE.js";
|
|
11
11
|
import {
|
|
12
12
|
getChain,
|
|
13
13
|
getChainConfig,
|
|
14
14
|
getNetwork
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2YOXRATG.js";
|
|
16
16
|
import {
|
|
17
17
|
EAS_ABI
|
|
18
18
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -411,4 +411,4 @@ export {
|
|
|
411
411
|
queryApprovals,
|
|
412
412
|
queryJoinRequests
|
|
413
413
|
};
|
|
414
|
-
//# sourceMappingURL=chunk-
|
|
414
|
+
//# sourceMappingURL=chunk-DG2K6CPY.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getChain,
|
|
3
3
|
getRpcUrls
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2YOXRATG.js";
|
|
5
5
|
import {
|
|
6
6
|
loadConfig
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4EHI4SKM.js";
|
|
8
8
|
|
|
9
9
|
// src/lib/client.ts
|
|
10
10
|
import { createPublicClient, createWalletClient, fallback, http } from "viem";
|
|
@@ -489,4 +489,4 @@ export {
|
|
|
489
489
|
writeContractWithRetry,
|
|
490
490
|
waitForReceipt
|
|
491
491
|
};
|
|
492
|
-
//# sourceMappingURL=chunk-
|
|
492
|
+
//# sourceMappingURL=chunk-M2NJPATE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getNetwork
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2YOXRATG.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/addresses.ts
|
|
6
6
|
var ZERO = "0x0000000000000000000000000000000000000000";
|
|
@@ -467,4 +467,4 @@ export {
|
|
|
467
467
|
SYNTHRA,
|
|
468
468
|
CHAINLINK
|
|
469
469
|
};
|
|
470
|
-
//# sourceMappingURL=chunk-
|
|
470
|
+
//# sourceMappingURL=chunk-MT3VS3GZ.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
UNISWAP
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
4
4
|
import {
|
|
5
5
|
getAccount,
|
|
6
6
|
getPublicClient,
|
|
7
7
|
sendTxWithRetry,
|
|
8
8
|
waitForReceipt
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-M2NJPATE.js";
|
|
10
10
|
import {
|
|
11
11
|
getChain
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2YOXRATG.js";
|
|
13
13
|
import {
|
|
14
14
|
getUniswapApiKey,
|
|
15
15
|
getVeniceApiKey,
|
|
16
16
|
setVeniceApiKey
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4EHI4SKM.js";
|
|
18
18
|
import {
|
|
19
19
|
UNISWAP_QUOTER_V2_ABI
|
|
20
20
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -443,4 +443,4 @@ export {
|
|
|
443
443
|
encodeSwapPath,
|
|
444
444
|
getMultiHopQuote
|
|
445
445
|
};
|
|
446
|
-
//# sourceMappingURL=chunk-
|
|
446
|
+
//# sourceMappingURL=chunk-XZHIZVJ3.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SHERWOOD
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
4
4
|
import {
|
|
5
5
|
getAccount,
|
|
6
6
|
getPublicClient,
|
|
7
7
|
waitForReceipt,
|
|
8
8
|
writeContractWithRetry
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-M2NJPATE.js";
|
|
10
10
|
import {
|
|
11
11
|
getChain
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2YOXRATG.js";
|
|
13
13
|
import {
|
|
14
14
|
SYNDICATE_FACTORY_ABI
|
|
15
15
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
getActiveSyndicates,
|
|
140
140
|
updateMetadata
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-YRCJ3NUX.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SHERWOOD
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
4
4
|
import {
|
|
5
5
|
getAccount,
|
|
6
6
|
getPublicClient,
|
|
7
7
|
waitForReceipt,
|
|
8
8
|
writeContractWithRetry
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-M2NJPATE.js";
|
|
10
10
|
import {
|
|
11
11
|
getChain
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2YOXRATG.js";
|
|
13
13
|
import {
|
|
14
14
|
SYNDICATE_GOVERNOR_ABI
|
|
15
15
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -429,4 +429,4 @@ export {
|
|
|
429
429
|
vetoProposal,
|
|
430
430
|
setProtocolFeeBps
|
|
431
431
|
};
|
|
432
|
-
//# sourceMappingURL=chunk-
|
|
432
|
+
//# sourceMappingURL=chunk-YYB4TF6D.js.map
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
unstickWallet,
|
|
11
11
|
waitForReceipt,
|
|
12
12
|
writeContractWithRetry
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-M2NJPATE.js";
|
|
14
|
+
import "./chunk-2YOXRATG.js";
|
|
15
|
+
import "./chunk-4EHI4SKM.js";
|
|
16
16
|
export {
|
|
17
17
|
detectStuckNonce,
|
|
18
18
|
estimateFeesWithBuffer,
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
waitForReceipt,
|
|
27
27
|
writeContractWithRetry
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=client-
|
|
29
|
+
//# sourceMappingURL=client-VSBQM2LU.js.map
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
setPrivateKey,
|
|
26
26
|
setUniswapApiKey,
|
|
27
27
|
setVeniceApiKey
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-4EHI4SKM.js";
|
|
29
29
|
export {
|
|
30
30
|
addSyndicate,
|
|
31
31
|
cacheGroupId,
|
|
@@ -54,4 +54,4 @@ export {
|
|
|
54
54
|
setUniswapApiKey,
|
|
55
55
|
setVeniceApiKey
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=config-
|
|
57
|
+
//# sourceMappingURL=config-YRERDZSL.js.map
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
queryJoinRequests,
|
|
13
13
|
revokeAttestation,
|
|
14
14
|
stripReferrerPrefix
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-DG2K6CPY.js";
|
|
16
|
+
import "./chunk-MT3VS3GZ.js";
|
|
17
|
+
import "./chunk-M2NJPATE.js";
|
|
18
|
+
import "./chunk-2YOXRATG.js";
|
|
19
|
+
import "./chunk-4EHI4SKM.js";
|
|
20
20
|
import "./chunk-D77JGXIV.js";
|
|
21
21
|
export {
|
|
22
22
|
createApproval,
|
|
@@ -33,4 +33,4 @@ export {
|
|
|
33
33
|
revokeAttestation,
|
|
34
34
|
stripReferrerPrefix
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=eas-
|
|
36
|
+
//# sourceMappingURL=eas-QNZKCEP7.js.map
|
|
@@ -34,11 +34,11 @@ import {
|
|
|
34
34
|
settleProposal,
|
|
35
35
|
vetoProposal,
|
|
36
36
|
vote
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-YYB4TF6D.js";
|
|
38
|
+
import "./chunk-MT3VS3GZ.js";
|
|
39
|
+
import "./chunk-M2NJPATE.js";
|
|
40
|
+
import "./chunk-2YOXRATG.js";
|
|
41
|
+
import "./chunk-4EHI4SKM.js";
|
|
42
42
|
import "./chunk-D77JGXIV.js";
|
|
43
43
|
export {
|
|
44
44
|
PROPOSAL_STATE,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
vetoProposal,
|
|
78
78
|
vote
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=governor-
|
|
80
|
+
//# sourceMappingURL=governor-RE6IJMUJ.js.map
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
getQuote,
|
|
10
10
|
listModels,
|
|
11
11
|
provisionApiKey
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XZHIZVJ3.js";
|
|
13
13
|
import {
|
|
14
14
|
createApproval,
|
|
15
15
|
createJoinRequest,
|
|
@@ -19,14 +19,14 @@ import {
|
|
|
19
19
|
queryJoinRequests,
|
|
20
20
|
revokeAttestation,
|
|
21
21
|
stripReferrerPrefix
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-DG2K6CPY.js";
|
|
23
23
|
import {
|
|
24
24
|
createSyndicate,
|
|
25
25
|
getActiveSyndicates,
|
|
26
26
|
getSyndicate,
|
|
27
27
|
subdomainExists,
|
|
28
28
|
updateMetadata
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-YRCJ3NUX.js";
|
|
30
30
|
import {
|
|
31
31
|
approveDepositor,
|
|
32
32
|
deposit,
|
|
@@ -49,7 +49,7 @@ import {
|
|
|
49
49
|
resolveVaultSyndicate,
|
|
50
50
|
setTextRecord,
|
|
51
51
|
setVaultAddress
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-4QNPS5LI.js";
|
|
53
53
|
import {
|
|
54
54
|
PROPOSAL_STATE,
|
|
55
55
|
PROPOSAL_STATES,
|
|
@@ -81,7 +81,7 @@ import {
|
|
|
81
81
|
setVotingPeriod,
|
|
82
82
|
settleProposal,
|
|
83
83
|
vote
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-YYB4TF6D.js";
|
|
85
85
|
import {
|
|
86
86
|
AERODROME,
|
|
87
87
|
AGENT_REGISTRY,
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
TOKENS,
|
|
95
95
|
UNISWAP,
|
|
96
96
|
VENICE
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
98
98
|
import {
|
|
99
99
|
formatContractError,
|
|
100
100
|
getAccount,
|
|
@@ -103,7 +103,7 @@ import {
|
|
|
103
103
|
sendTxWithRetry,
|
|
104
104
|
waitForReceipt,
|
|
105
105
|
writeContractWithRetry
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-M2NJPATE.js";
|
|
107
107
|
import {
|
|
108
108
|
CHAIN_REGISTRY,
|
|
109
109
|
VALID_NETWORKS,
|
|
@@ -113,7 +113,7 @@ import {
|
|
|
113
113
|
getRpcUrl,
|
|
114
114
|
isTestnet,
|
|
115
115
|
setNetwork
|
|
116
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-2YOXRATG.js";
|
|
117
117
|
import {
|
|
118
118
|
addSyndicate,
|
|
119
119
|
cacheGroupId,
|
|
@@ -136,7 +136,7 @@ import {
|
|
|
136
136
|
setPrivateKey,
|
|
137
137
|
setUniswapApiKey,
|
|
138
138
|
setVeniceApiKey
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-4EHI4SKM.js";
|
|
140
140
|
import {
|
|
141
141
|
BASE_STRATEGY_ABI,
|
|
142
142
|
ERC20_ABI,
|
|
@@ -1445,9 +1445,9 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1445
1445
|
console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
|
|
1446
1446
|
process.exit(1);
|
|
1447
1447
|
}
|
|
1448
|
-
const { propose: propose2 } = await import("./governor-
|
|
1448
|
+
const { propose: propose2 } = await import("./governor-RE6IJMUJ.js");
|
|
1449
1449
|
const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
|
|
1450
|
-
const { parseDuration: parseDuration2 } = await import("./governor-
|
|
1450
|
+
const { parseDuration: parseDuration2 } = await import("./governor-RE6IJMUJ.js");
|
|
1451
1451
|
const performanceFeeBps = BigInt(opts.performanceFee);
|
|
1452
1452
|
if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
|
|
1453
1453
|
console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
|
|
@@ -1554,7 +1554,7 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1554
1554
|
let prices = [];
|
|
1555
1555
|
let priceSource = null;
|
|
1556
1556
|
try {
|
|
1557
|
-
const { getTokenPricesInAsset } = await import("./price-
|
|
1557
|
+
const { getTokenPricesInAsset } = await import("./price-GY3JQ2OK.js");
|
|
1558
1558
|
prices = await getTokenPricesInAsset({
|
|
1559
1559
|
tokens: allocations.map((a, i) => ({
|
|
1560
1560
|
token: a.token,
|
|
@@ -1984,7 +1984,7 @@ function registerVeniceCommands(program2) {
|
|
|
1984
1984
|
console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
|
|
1985
1985
|
console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
|
|
1986
1986
|
try {
|
|
1987
|
-
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
1987
|
+
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-QNZKCEP7.js");
|
|
1988
1988
|
const { uid } = await createVeniceProvisionAttestation(account.address);
|
|
1989
1989
|
if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
|
|
1990
1990
|
console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
|
|
@@ -2340,10 +2340,10 @@ ${opts.prompt}`;
|
|
|
2340
2340
|
console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
|
|
2341
2341
|
}
|
|
2342
2342
|
try {
|
|
2343
|
-
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
2343
|
+
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-QNZKCEP7.js");
|
|
2344
2344
|
const { keccak256, toHex, isAddress: isAddr } = await import("viem");
|
|
2345
|
-
const { getChainContracts: getChainContracts2 } = await import("./config-
|
|
2346
|
-
const { getChain: getActiveChain } = await import("./network-
|
|
2345
|
+
const { getChainContracts: getChainContracts2 } = await import("./config-YRERDZSL.js");
|
|
2346
|
+
const { getChain: getActiveChain } = await import("./network-R5NFPIAF.js");
|
|
2347
2347
|
const vaultRecipient = opts.vault && isAddr(opts.vault) ? opts.vault : getChainContracts2(getActiveChain().id).vault;
|
|
2348
2348
|
const promptHash = keccak256(toHex(userContent)).slice(0, 18);
|
|
2349
2349
|
const { uid } = await createVeniceInferenceAttestation(
|
|
@@ -3472,8 +3472,8 @@ function printSimulationResult(result, callType) {
|
|
|
3472
3472
|
}
|
|
3473
3473
|
async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
|
|
3474
3474
|
try {
|
|
3475
|
-
const xmtp = await import("./xmtp-
|
|
3476
|
-
const { getAccount: getAccount2 } = await import("./client-
|
|
3475
|
+
const xmtp = await import("./xmtp-VPGQE4IP.js");
|
|
3476
|
+
const { getAccount: getAccount2 } = await import("./client-VSBQM2LU.js");
|
|
3477
3477
|
const group = await xmtp.getGroup("", subdomain);
|
|
3478
3478
|
const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
|
|
3479
3479
|
const criticals = allRisks.filter((r) => r.level === "critical");
|
|
@@ -4572,7 +4572,7 @@ try {
|
|
|
4572
4572
|
var require2 = createRequire(import.meta.url);
|
|
4573
4573
|
var { version: CLI_VERSION } = require2("../package.json");
|
|
4574
4574
|
async function loadXmtp() {
|
|
4575
|
-
return import("./xmtp-
|
|
4575
|
+
return import("./xmtp-VPGQE4IP.js");
|
|
4576
4576
|
}
|
|
4577
4577
|
async function loadCron() {
|
|
4578
4578
|
return import("./cron-EOULYO3R.js");
|
|
@@ -5040,7 +5040,7 @@ syndicate.command("add").description("Register an agent on a syndicate vault (cr
|
|
|
5040
5040
|
if (opts.agentId) {
|
|
5041
5041
|
agentId = BigInt(opts.agentId);
|
|
5042
5042
|
} else {
|
|
5043
|
-
const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-
|
|
5043
|
+
const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-RQ7DTIBS.js");
|
|
5044
5044
|
const registry2 = AGENT_REGISTRY2().IDENTITY_REGISTRY;
|
|
5045
5045
|
if (registry2 === "0x0000000000000000000000000000000000000000") {
|
|
5046
5046
|
agentId = 0n;
|
|
@@ -5639,7 +5639,7 @@ vaultCmd.command("redeem").description("Redeem vault shares for the underlying a
|
|
|
5639
5639
|
var strategy = program.command("strategy").description("Strategy templates \u2014 list, clone, propose");
|
|
5640
5640
|
registerStrategyTemplateCommands(strategy);
|
|
5641
5641
|
program.command("providers").description("List available DeFi providers").action(async () => {
|
|
5642
|
-
const { MessariProvider, NansenProvider } = await import("./research-
|
|
5642
|
+
const { MessariProvider, NansenProvider } = await import("./research-PB22GPXC.js");
|
|
5643
5643
|
const providers = [new MoonwellProvider(), new UniswapProvider(), new MessariProvider(), new NansenProvider()];
|
|
5644
5644
|
for (const p of providers) {
|
|
5645
5645
|
const info = p.info();
|
|
@@ -5650,7 +5650,7 @@ ${info.name} (${info.type})`);
|
|
|
5650
5650
|
}
|
|
5651
5651
|
});
|
|
5652
5652
|
try {
|
|
5653
|
-
const { registerChatCommands } = await import("./chat-
|
|
5653
|
+
const { registerChatCommands } = await import("./chat-D5OF4OTL.js");
|
|
5654
5654
|
registerChatCommands(program);
|
|
5655
5655
|
} catch {
|
|
5656
5656
|
program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
|
|
@@ -5660,7 +5660,7 @@ try {
|
|
|
5660
5660
|
process.exit(1);
|
|
5661
5661
|
});
|
|
5662
5662
|
}
|
|
5663
|
-
var { registerSessionCommands } = await import("./session-
|
|
5663
|
+
var { registerSessionCommands } = await import("./session-3Z6I2IM3.js");
|
|
5664
5664
|
registerSessionCommands(program);
|
|
5665
5665
|
registerVeniceCommands(program);
|
|
5666
5666
|
registerAllowanceCommands(program);
|
|
@@ -5668,11 +5668,11 @@ registerIdentityCommands(program);
|
|
|
5668
5668
|
registerProposalCommands(program);
|
|
5669
5669
|
registerGovernorCommands(program);
|
|
5670
5670
|
registerGuardianCommands(program);
|
|
5671
|
-
var { registerResearchCommands } = await import("./research-
|
|
5671
|
+
var { registerResearchCommands } = await import("./research-SVWNPHIN.js");
|
|
5672
5672
|
registerResearchCommands(program);
|
|
5673
|
-
var { registerAgentCommands } = await import("./agent-
|
|
5673
|
+
var { registerAgentCommands } = await import("./agent-SXEV65ME.js");
|
|
5674
5674
|
registerAgentCommands(program);
|
|
5675
|
-
var { registerTradeCommands } = await import("./trade-
|
|
5675
|
+
var { registerTradeCommands } = await import("./trade-E5HSZE44.js");
|
|
5676
5676
|
registerTradeCommands(program);
|
|
5677
5677
|
var configCmd = program.command("config");
|
|
5678
5678
|
configCmd.command("set").description("Save settings to ~/.sherwood/config.json (persists across sessions)").option("--private-key <key>", "Wallet private key (0x-prefixed)").option("--vault <address>", "Default SyndicateVault address").option("--rpc <url>", "Custom RPC URL for the active --chain network").option("--notify-to <id>", "Destination for cron summaries (Telegram chat ID, phone, etc.)").option("--uniswap-api-key <key>", "Uniswap Trading API key (from developers.uniswap.org)").option("--venice-api-key <key>", "Venice AI inference API key").option("--xmtp-group <subdomain:groupId>", "Cache an XMTP group ID for a syndicate (e.g. my-fund:abc123)").action((opts) => {
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
isTestnet,
|
|
13
13
|
robinhoodTestnet,
|
|
14
14
|
setNetwork
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-2YOXRATG.js";
|
|
16
|
+
import "./chunk-4EHI4SKM.js";
|
|
17
17
|
export {
|
|
18
18
|
CHAIN_REGISTRY,
|
|
19
19
|
VALID_NETWORKS,
|
|
@@ -29,4 +29,4 @@ export {
|
|
|
29
29
|
robinhoodTestnet,
|
|
30
30
|
setNetwork
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=network-
|
|
32
|
+
//# sourceMappingURL=network-R5NFPIAF.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SYNTHRA,
|
|
3
3
|
UNISWAP
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
5
5
|
import {
|
|
6
6
|
getPublicClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-M2NJPATE.js";
|
|
8
8
|
import {
|
|
9
9
|
getNetwork
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-2YOXRATG.js";
|
|
11
|
+
import "./chunk-4EHI4SKM.js";
|
|
12
12
|
import {
|
|
13
13
|
UNISWAP_QUOTER_V2_ABI
|
|
14
14
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -155,4 +155,4 @@ export {
|
|
|
155
155
|
getTokenPriceInAsset,
|
|
156
156
|
getTokenPricesInAsset
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=price-
|
|
158
|
+
//# sourceMappingURL=price-GY3JQ2OK.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MessariProvider,
|
|
3
|
+
NansenProvider,
|
|
4
|
+
getResearchProvider
|
|
5
|
+
} from "./chunk-D2UYGUV2.js";
|
|
6
|
+
import "./chunk-M2NJPATE.js";
|
|
7
|
+
import "./chunk-2YOXRATG.js";
|
|
8
|
+
import "./chunk-4EHI4SKM.js";
|
|
9
|
+
export {
|
|
10
|
+
MessariProvider,
|
|
11
|
+
NansenProvider,
|
|
12
|
+
getResearchProvider
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=research-PB22GPXC.js.map
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
MESSARI_COST_ESTIMATE,
|
|
3
3
|
NANSEN_COST_ESTIMATE,
|
|
4
4
|
getResearchProvider
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-D2UYGUV2.js";
|
|
6
6
|
import {
|
|
7
7
|
formatContractError,
|
|
8
8
|
getAccount
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-M2NJPATE.js";
|
|
10
|
+
import "./chunk-2YOXRATG.js";
|
|
11
|
+
import "./chunk-4EHI4SKM.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/research.ts
|
|
14
14
|
import chalk from "chalk";
|
|
@@ -16,7 +16,7 @@ import ora from "ora";
|
|
|
16
16
|
import { confirm } from "@inquirer/prompts";
|
|
17
17
|
import { isAddress } from "viem";
|
|
18
18
|
async function loadXmtp() {
|
|
19
|
-
return import("./xmtp-
|
|
19
|
+
return import("./xmtp-VPGQE4IP.js");
|
|
20
20
|
}
|
|
21
21
|
var COST_ESTIMATES = {
|
|
22
22
|
messari: MESSARI_COST_ESTIMATE,
|
|
@@ -83,7 +83,7 @@ function formatValue(value) {
|
|
|
83
83
|
}
|
|
84
84
|
async function postResearch(syndicateName, result, prompt) {
|
|
85
85
|
const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
|
|
86
|
-
const { createResearchAttestation, getEasScanUrl } = await import("./eas-
|
|
86
|
+
const { createResearchAttestation, getEasScanUrl } = await import("./eas-QNZKCEP7.js");
|
|
87
87
|
const xmtp = await loadXmtp();
|
|
88
88
|
const pinSpinner = ora("Pinning research result to IPFS...").start();
|
|
89
89
|
let resultUri;
|
|
@@ -112,8 +112,8 @@ async function postResearch(syndicateName, result, prompt) {
|
|
|
112
112
|
const easSpinner = ora("Creating EAS attestation...").start();
|
|
113
113
|
let attestationUid;
|
|
114
114
|
try {
|
|
115
|
-
const { getChainContracts } = await import("./config-
|
|
116
|
-
const { getChain } = await import("./network-
|
|
115
|
+
const { getChainContracts } = await import("./config-YRERDZSL.js");
|
|
116
|
+
const { getChain } = await import("./network-R5NFPIAF.js");
|
|
117
117
|
const vaultRecipient = getChainContracts(getChain().id).vault;
|
|
118
118
|
const { uid } = await createResearchAttestation(
|
|
119
119
|
result.provider,
|
|
@@ -312,4 +312,4 @@ function registerResearchCommands(program) {
|
|
|
312
312
|
export {
|
|
313
313
|
registerResearchCommands
|
|
314
314
|
};
|
|
315
|
-
//# sourceMappingURL=research-
|
|
315
|
+
//# sourceMappingURL=research-SVWNPHIN.js.map
|
|
@@ -6,21 +6,21 @@ import {
|
|
|
6
6
|
} from "./chunk-W2ZUPR3W.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveSyndicate
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4QNPS5LI.js";
|
|
10
10
|
import {
|
|
11
11
|
PROPOSAL_STATES,
|
|
12
12
|
getProposal
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YYB4TF6D.js";
|
|
14
14
|
import {
|
|
15
15
|
SHERWOOD
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
17
17
|
import {
|
|
18
18
|
getPublicClient
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-M2NJPATE.js";
|
|
20
|
+
import "./chunk-2YOXRATG.js";
|
|
21
21
|
import {
|
|
22
22
|
loadConfig
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-4EHI4SKM.js";
|
|
24
24
|
import {
|
|
25
25
|
SYNDICATE_VAULT_ABI
|
|
26
26
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -187,7 +187,7 @@ async function enrichProposalEvents(events, metadataCache) {
|
|
|
187
187
|
|
|
188
188
|
// src/commands/session.ts
|
|
189
189
|
async function loadXmtp() {
|
|
190
|
-
return import("./xmtp-
|
|
190
|
+
return import("./xmtp-VPGQE4IP.js");
|
|
191
191
|
}
|
|
192
192
|
async function resolveGovernor(vaultAddress) {
|
|
193
193
|
const client = getPublicClient();
|
|
@@ -435,8 +435,8 @@ function registerSessionCommands(program) {
|
|
|
435
435
|
);
|
|
436
436
|
session.command("cron <name>").description("Manage participation crons (OpenClaw agents)").option("--remove", "Remove participation crons", false).option("--status", "Show cron status", false).action(async (name, opts) => {
|
|
437
437
|
const { isOpenClaw, registerSyndicateCrons, unregisterSyndicateCrons, getSyndicateCronStatus } = await import("./cron-EOULYO3R.js");
|
|
438
|
-
const { isTestnet } = await import("./network-
|
|
439
|
-
const { getNotifyTo } = await import("./config-
|
|
438
|
+
const { isTestnet } = await import("./network-R5NFPIAF.js");
|
|
439
|
+
const { getNotifyTo } = await import("./config-YRERDZSL.js");
|
|
440
440
|
if (!isOpenClaw()) {
|
|
441
441
|
console.log(chalk.yellow("Not running on OpenClaw \u2014 cron commands unavailable"));
|
|
442
442
|
console.log(chalk.dim(` Set up your own scheduler: sherwood session check ${name} --stream`));
|
|
@@ -477,4 +477,4 @@ function registerSessionCommands(program) {
|
|
|
477
477
|
export {
|
|
478
478
|
registerSessionCommands
|
|
479
479
|
};
|
|
480
|
-
//# sourceMappingURL=session-
|
|
480
|
+
//# sourceMappingURL=session-3Z6I2IM3.js.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getResearchProvider
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-D2UYGUV2.js";
|
|
4
4
|
import {
|
|
5
5
|
UniswapProvider,
|
|
6
6
|
chatCompletion,
|
|
7
7
|
getQuote
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XZHIZVJ3.js";
|
|
9
9
|
import {
|
|
10
10
|
TOKENS
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MT3VS3GZ.js";
|
|
12
12
|
import {
|
|
13
13
|
formatContractError,
|
|
14
14
|
getAccount,
|
|
15
15
|
getPublicClient
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-M2NJPATE.js";
|
|
17
17
|
import {
|
|
18
18
|
getExplorerUrl
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2YOXRATG.js";
|
|
20
20
|
import {
|
|
21
21
|
loadConfig,
|
|
22
22
|
saveConfig
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-4EHI4SKM.js";
|
|
24
24
|
import {
|
|
25
25
|
ERC20_ABI
|
|
26
26
|
} from "./chunk-D77JGXIV.js";
|
|
@@ -332,7 +332,7 @@ async function getCurrentPrice(tokenAddress, tokenDecimals, feeTier) {
|
|
|
332
332
|
// src/commands/trade.ts
|
|
333
333
|
var uniswap = new UniswapProvider();
|
|
334
334
|
async function loadXmtp() {
|
|
335
|
-
return import("./xmtp-
|
|
335
|
+
return import("./xmtp-VPGQE4IP.js");
|
|
336
336
|
}
|
|
337
337
|
var ETH_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
338
338
|
var KNOWN_MEMECOINS = {
|
|
@@ -516,7 +516,7 @@ function registerTradeCommands(program) {
|
|
|
516
516
|
}
|
|
517
517
|
const wrapSpinner = ora("Wrapping ETH \u2192 WETH...").start();
|
|
518
518
|
try {
|
|
519
|
-
const { writeContractWithRetry, waitForReceipt: waitForReceiptFn } = await import("./client-
|
|
519
|
+
const { writeContractWithRetry, waitForReceipt: waitForReceiptFn } = await import("./client-VSBQM2LU.js");
|
|
520
520
|
const wethAddr = TOKENS().WETH;
|
|
521
521
|
const wrapHash = await writeContractWithRetry({
|
|
522
522
|
address: wethAddr,
|
|
@@ -525,7 +525,7 @@ function registerTradeCommands(program) {
|
|
|
525
525
|
args: [],
|
|
526
526
|
value: inputAmount,
|
|
527
527
|
account,
|
|
528
|
-
chain: (await import("./network-
|
|
528
|
+
chain: (await import("./network-R5NFPIAF.js")).getChain()
|
|
529
529
|
});
|
|
530
530
|
await waitForReceiptFn(wrapHash);
|
|
531
531
|
wrapSpinner.succeed(`Wrapped ${opts.amount} ETH \u2192 WETH`);
|
|
@@ -639,9 +639,9 @@ function registerTradeCommands(program) {
|
|
|
639
639
|
}
|
|
640
640
|
console.log(` Tx: ${chalk.dim(getExplorerUrl(txHash))}`);
|
|
641
641
|
try {
|
|
642
|
-
const { createTradeAttestation, getEasScanUrl } = await import("./eas-
|
|
643
|
-
const { getChainContracts } = await import("./config-
|
|
644
|
-
const { getChain: getActiveChain } = await import("./network-
|
|
642
|
+
const { createTradeAttestation, getEasScanUrl } = await import("./eas-QNZKCEP7.js");
|
|
643
|
+
const { getChainContracts } = await import("./config-YRERDZSL.js");
|
|
644
|
+
const { getChain: getActiveChain } = await import("./network-R5NFPIAF.js");
|
|
645
645
|
const vaultRecipient = getChainContracts(getActiveChain().id).vault;
|
|
646
646
|
const { uid } = await createTradeAttestation(
|
|
647
647
|
inputAddr,
|
|
@@ -767,9 +767,9 @@ function registerTradeCommands(program) {
|
|
|
767
767
|
}
|
|
768
768
|
console.log(` Tx: ${chalk.dim(getExplorerUrl(txHash))}`);
|
|
769
769
|
try {
|
|
770
|
-
const { createTradeAttestation, getEasScanUrl } = await import("./eas-
|
|
771
|
-
const { getChainContracts } = await import("./config-
|
|
772
|
-
const { getChain: getActiveChain } = await import("./network-
|
|
770
|
+
const { createTradeAttestation, getEasScanUrl } = await import("./eas-QNZKCEP7.js");
|
|
771
|
+
const { getChainContracts } = await import("./config-YRERDZSL.js");
|
|
772
|
+
const { getChain: getActiveChain } = await import("./network-R5NFPIAF.js");
|
|
773
773
|
const vaultRecipient = getChainContracts(getActiveChain().id).vault;
|
|
774
774
|
const { uid } = await createTradeAttestation(
|
|
775
775
|
tokenAddr,
|
|
@@ -944,4 +944,4 @@ function sleep(ms) {
|
|
|
944
944
|
export {
|
|
945
945
|
registerTradeCommands
|
|
946
946
|
};
|
|
947
|
-
//# sourceMappingURL=trade-
|
|
947
|
+
//# sourceMappingURL=trade-E5HSZE44.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getTextRecord
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-4QNPS5LI.js";
|
|
4
|
+
import "./chunk-MT3VS3GZ.js";
|
|
5
5
|
import {
|
|
6
6
|
getAccount
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-M2NJPATE.js";
|
|
8
8
|
import {
|
|
9
9
|
getChainConfig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2YOXRATG.js";
|
|
11
11
|
import {
|
|
12
12
|
cacheGroupId,
|
|
13
13
|
getCachedGroupId,
|
|
14
14
|
invalidateCachedGroupId,
|
|
15
15
|
loadConfig,
|
|
16
16
|
saveConfig
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4EHI4SKM.js";
|
|
18
18
|
import "./chunk-D77JGXIV.js";
|
|
19
19
|
|
|
20
20
|
// src/lib/xmtp.ts
|
|
@@ -281,4 +281,4 @@ export {
|
|
|
281
281
|
sendReaction,
|
|
282
282
|
streamMessages
|
|
283
283
|
};
|
|
284
|
-
//# sourceMappingURL=xmtp-
|
|
284
|
+
//# sourceMappingURL=xmtp-VPGQE4IP.js.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/config.ts"],"sourcesContent":["/**\n * Local config management — ~/.sherwood/config.json\n *\n * Stores group ID cache, per-chain contract addresses, and wallet config.\n */\n\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nconst CONFIG_DIR = path.join(os.homedir(), \".sherwood\");\nconst CONFIG_PATH = path.join(CONFIG_DIR, \"config.json\");\n\n/** Per-chain user-specific addresses (stored by chainId). */\nexport interface ChainContracts {\n vault?: string; // user's default vault address\n}\n\n/** A syndicate the agent belongs to (creator or member). */\nexport interface SyndicateMembership {\n subdomain: string;\n vault: string;\n role: \"creator\" | \"agent\";\n}\n\nexport interface SherwoodConfig {\n dbEncryptionKey?: string; // legacy — no longer used, XMTP CLI manages its own DB\n privateKey?: string; // wallet private key (0x-prefixed)\n xmtpInboxId?: string;\n groupCache: Record<string, string>; // subdomain → XMTP group ID\n veniceApiKey?: string; // Venice AI inference API key\n agentId?: number; // ERC-8004 identity token ID\n contracts?: Record<string, ChainContracts>; // chainId → user addresses\n syndicates?: Record<string, SyndicateMembership[]>; // chainId → syndicate memberships\n primarySyndicate?: Record<string, string>; // chainId → subdomain of the active syndicate\n rpc?: Record<string, string>; // network name → custom RPC URL\n notifyTo?: string; // destination for cron summaries (Telegram chat ID, phone, etc.)\n uniswapApiKey?: string; // Uniswap Trading API key (from developers.uniswap.org)\n positions?: unknown[]; // open trade positions (typed in positions.ts)\n closedPositions?: unknown[]; // historical closed positions\n _xmtpMigrated?: boolean; // one-time flag: revoked stale installations from ~/.xmtp/ era\n /** Cached swap routes per chain: chainId → { tokenPair → SwapRoute } */\n swapRoutes?: Record<string, Record<string, SwapRoute>>;\n}\n\n/** Persisted swap route detected by the CLI during portfolio strategy proposal. */\nexport interface SwapRoute {\n mode: \"direct\" | \"multi-hop\";\n feeTier: number; // direct pool fee tier\n hop?: { via: string; feeIn: number; feeOut: number }; // multi-hop details\n detectedAt: number; // unix timestamp\n}\n\nexport function loadConfig(): SherwoodConfig {\n if (fs.existsSync(CONFIG_PATH)) {\n const config = JSON.parse(fs.readFileSync(CONFIG_PATH, \"utf-8\"));\n if (!config.groupCache) config.groupCache = {};\n return config;\n }\n\n return { groupCache: {} };\n}\n\nexport function saveConfig(config: SherwoodConfig): void {\n fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), { mode: 0o600 });\n}\n\nexport function cacheGroupId(subdomain: string, groupId: string): void {\n const config = loadConfig();\n config.groupCache[subdomain] = groupId;\n saveConfig(config);\n}\n\nexport function getCachedGroupId(subdomain: string): string | undefined {\n const config = loadConfig();\n return config.groupCache[subdomain];\n}\n\nexport function invalidateCachedGroupId(subdomain: string): void {\n const config = loadConfig();\n if (config.groupCache[subdomain]) {\n delete config.groupCache[subdomain];\n saveConfig(config);\n }\n}\n\nexport function setVeniceApiKey(apiKey: string): void {\n const config = loadConfig();\n config.veniceApiKey = apiKey;\n saveConfig(config);\n}\n\nexport function getVeniceApiKey(): string | undefined {\n return loadConfig().veniceApiKey ?? process.env.VENICE_API_KEY;\n}\n\nexport function setAgentId(agentId: number): void {\n const config = loadConfig();\n config.agentId = agentId;\n saveConfig(config);\n}\n\nexport function getAgentId(): number | undefined {\n return loadConfig().agentId;\n}\n\nexport function setPrivateKey(key: string): void {\n const config = loadConfig();\n config.privateKey = key.startsWith(\"0x\") ? key : `0x${key}`;\n saveConfig(config);\n}\n\nexport function getPrivateKey(): string | undefined {\n return loadConfig().privateKey;\n}\n\n// ── Uniswap Trading API Key ──\n\nexport function setUniswapApiKey(apiKey: string): void {\n const config = loadConfig();\n config.uniswapApiKey = apiKey;\n saveConfig(config);\n}\n\nexport function getUniswapApiKey(): string | undefined {\n return loadConfig().uniswapApiKey ?? process.env.UNISWAP_API_KEY;\n}\n\n// ── Per-network RPC URLs ──\n\nexport function getConfigRpcUrl(network: string): string | undefined {\n return loadConfig().rpc?.[network];\n}\n\nexport function setConfigRpcUrl(network: string, url: string): void {\n const config = loadConfig();\n if (!config.rpc) config.rpc = {};\n config.rpc[network] = url;\n saveConfig(config);\n}\n\n// ── Per-chain contract addresses ──\n\nexport function getChainContracts(chainId: number): ChainContracts {\n const config = loadConfig();\n return config.contracts?.[String(chainId)] ?? {};\n}\n\nexport function getNotifyTo(): string | undefined {\n return loadConfig().notifyTo;\n}\n\nexport function setNotifyTo(id: string): void {\n const config = loadConfig();\n config.notifyTo = id;\n saveConfig(config);\n}\n\nexport function setChainContract(\n chainId: number,\n key: keyof ChainContracts,\n value: string,\n): void {\n const config = loadConfig();\n if (!config.contracts) config.contracts = {};\n const cid = String(chainId);\n if (!config.contracts[cid]) config.contracts[cid] = {};\n config.contracts[cid][key] = value;\n saveConfig(config);\n}\n\n// ── Syndicate Membership ──\n\n/**\n * Add (or update) a syndicate membership. Deduplicates by subdomain.\n * Automatically sets it as primary if it's the first syndicate on this chain.\n */\nexport function addSyndicate(\n chainId: number,\n membership: SyndicateMembership,\n): void {\n const config = loadConfig();\n const cid = String(chainId);\n if (!config.syndicates) config.syndicates = {};\n if (!config.syndicates[cid]) config.syndicates[cid] = [];\n\n // Upsert — replace existing entry with same subdomain\n const idx = config.syndicates[cid].findIndex(\n (s) => s.subdomain === membership.subdomain,\n );\n if (idx >= 0) {\n config.syndicates[cid][idx] = membership;\n } else {\n config.syndicates[cid].push(membership);\n }\n\n // Auto-set as primary if it's the first syndicate (or no primary set)\n if (!config.primarySyndicate) config.primarySyndicate = {};\n if (!config.primarySyndicate[cid]) {\n config.primarySyndicate[cid] = membership.subdomain;\n }\n\n saveConfig(config);\n}\n\n/** Get all syndicate memberships for a chain. */\nexport function getSyndicates(chainId: number): SyndicateMembership[] {\n const config = loadConfig();\n return config.syndicates?.[String(chainId)] ?? [];\n}\n\n/** Set which syndicate is the active/primary one for CLI commands. */\nexport function setPrimarySyndicate(\n chainId: number,\n subdomain: string,\n): void {\n const config = loadConfig();\n if (!config.primarySyndicate) config.primarySyndicate = {};\n config.primarySyndicate[String(chainId)] = subdomain;\n saveConfig(config);\n}\n\n/**\n * Get the primary syndicate for this chain.\n * Falls back to ChainContracts.vault for backwards compat with older configs.\n */\nexport function getPrimarySyndicate(\n chainId: number,\n): SyndicateMembership | undefined {\n const config = loadConfig();\n const cid = String(chainId);\n\n // Check new syndicates store first\n const primarySubdomain = config.primarySyndicate?.[cid];\n if (primarySubdomain && config.syndicates?.[cid]) {\n const found = config.syndicates[cid].find(\n (s) => s.subdomain === primarySubdomain,\n );\n if (found) return found;\n }\n\n // Backwards compat: if syndicates list has entries but no primary, use the first one\n if (config.syndicates?.[cid]?.length) {\n return config.syndicates[cid][0];\n }\n\n // Legacy fallback: config only has a vault address, no subdomain\n const vault = config.contracts?.[cid]?.vault;\n if (vault) {\n return { subdomain: \"\", vault, role: \"creator\" };\n }\n\n return undefined;\n}\n\n// ── Swap Route Cache ──\n\nfunction swapRouteKey(asset: string, token: string): string {\n return `${asset.toLowerCase()}→${token.toLowerCase()}`;\n}\n\n/** Get a cached swap route for a token pair on a chain. */\nexport function getCachedSwapRoute(chainId: number, asset: string, token: string): SwapRoute | undefined {\n const config = loadConfig();\n return config.swapRoutes?.[String(chainId)]?.[swapRouteKey(asset, token)];\n}\n\n/** Save a detected swap route to the config cache. */\nexport function cacheSwapRoute(chainId: number, asset: string, token: string, route: SwapRoute): void {\n const config = loadConfig();\n const cid = String(chainId);\n if (!config.swapRoutes) config.swapRoutes = {};\n if (!config.swapRoutes[cid]) config.swapRoutes[cid] = {};\n config.swapRoutes[cid][swapRouteKey(asset, token)] = route;\n saveConfig(config);\n}\n\n/** Clear all cached swap routes for a chain (e.g. after pool migration). */\nexport function clearSwapRoutes(chainId: number): void {\n const config = loadConfig();\n delete config.swapRoutes?.[String(chainId)];\n saveConfig(config);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MessariProvider,
|
|
3
|
-
NansenProvider,
|
|
4
|
-
getResearchProvider
|
|
5
|
-
} from "./chunk-DNX3P5YK.js";
|
|
6
|
-
import "./chunk-OFR3LCYE.js";
|
|
7
|
-
import "./chunk-IJG4CTOI.js";
|
|
8
|
-
import "./chunk-WCBG44IQ.js";
|
|
9
|
-
export {
|
|
10
|
-
MessariProvider,
|
|
11
|
-
NansenProvider,
|
|
12
|
-
getResearchProvider
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=research-4UA4UB5P.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|