@sherwoodagent/cli 0.38.3 → 0.38.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-6GJP2WAY.js → addresses-5BITNIGX.js} +2 -2
- package/dist/{chat-36TB53HK.js → chat-CLBWW7PV.js} +5 -5
- package/dist/{chunk-4EG4TSRE.js → chunk-IQNYBIFE.js} +2 -2
- package/dist/{chunk-PNUBECG2.js → chunk-JQBGEYAK.js} +2 -2
- package/dist/{chunk-SP2SI63D.js → chunk-OPEVMNEY.js} +2 -2
- package/dist/{chunk-XKDB5D4E.js → chunk-PHU6MI3J.js} +2 -2
- package/dist/{chunk-6SKMCZ7I.js → chunk-QZSKBYZ2.js} +2 -2
- package/dist/{chunk-OPKMVIYJ.js → chunk-RFTJBEZI.js} +11 -11
- package/dist/chunk-RFTJBEZI.js.map +1 -0
- package/dist/{eas-XNLD5PTV.js → eas-LVJEPWBY.js} +3 -3
- package/dist/{governor-ZOIXGEVS.js → governor-HU3CPXMU.js} +3 -3
- package/dist/index.js +56 -22
- package/dist/index.js.map +1 -1
- package/dist/{price-WGV6NYK3.js → price-OZRLJH3X.js} +2 -2
- package/dist/{research-AYT6QDJP.js → research-5WEM4WZC.js} +3 -3
- package/dist/{session-46SXKEKP.js → session-XRTKPC4Q.js} +5 -5
- package/dist/{trade-LIRSGOV7.js → trade-HN4BXDVU.js} +6 -6
- package/dist/{xmtp-XQGWSO72.js → xmtp-25RHTLIA.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-OPKMVIYJ.js.map +0 -1
- /package/dist/{addresses-6GJP2WAY.js.map → addresses-5BITNIGX.js.map} +0 -0
- /package/dist/{chat-36TB53HK.js.map → chat-CLBWW7PV.js.map} +0 -0
- /package/dist/{chunk-4EG4TSRE.js.map → chunk-IQNYBIFE.js.map} +0 -0
- /package/dist/{chunk-PNUBECG2.js.map → chunk-JQBGEYAK.js.map} +0 -0
- /package/dist/{chunk-SP2SI63D.js.map → chunk-OPEVMNEY.js.map} +0 -0
- /package/dist/{chunk-XKDB5D4E.js.map → chunk-PHU6MI3J.js.map} +0 -0
- /package/dist/{chunk-6SKMCZ7I.js.map → chunk-QZSKBYZ2.js.map} +0 -0
- /package/dist/{eas-XNLD5PTV.js.map → eas-LVJEPWBY.js.map} +0 -0
- /package/dist/{governor-ZOIXGEVS.js.map → governor-HU3CPXMU.js.map} +0 -0
- /package/dist/{price-WGV6NYK3.js.map → price-OZRLJH3X.js.map} +0 -0
- /package/dist/{research-AYT6QDJP.js.map → research-5WEM4WZC.js.map} +0 -0
- /package/dist/{session-46SXKEKP.js.map → session-XRTKPC4Q.js.map} +0 -0
- /package/dist/{trade-LIRSGOV7.js.map → trade-HN4BXDVU.js.map} +0 -0
- /package/dist/{xmtp-XQGWSO72.js.map → xmtp-25RHTLIA.js.map} +0 -0
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
TOKENS,
|
|
14
14
|
UNISWAP,
|
|
15
15
|
VENICE
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-RFTJBEZI.js";
|
|
17
17
|
import "./chunk-IJG4CTOI.js";
|
|
18
18
|
import "./chunk-WCBG44IQ.js";
|
|
19
19
|
export {
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
UNISWAP,
|
|
33
33
|
VENICE
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=addresses-
|
|
35
|
+
//# sourceMappingURL=addresses-5BITNIGX.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSyndicate,
|
|
3
3
|
updateMetadata
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OPEVMNEY.js";
|
|
5
5
|
import {
|
|
6
6
|
getTextRecord,
|
|
7
7
|
resolveSyndicate,
|
|
8
8
|
setTextRecord
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IQNYBIFE.js";
|
|
10
10
|
import {
|
|
11
11
|
fetchMetadata,
|
|
12
12
|
uploadMetadata
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import "./chunk-OQUGUIYM.js";
|
|
15
15
|
import {
|
|
16
16
|
ENS
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-RFTJBEZI.js";
|
|
18
18
|
import {
|
|
19
19
|
formatContractError,
|
|
20
20
|
getAccount
|
|
@@ -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-25RHTLIA.js");
|
|
33
33
|
}
|
|
34
34
|
function formatTimestamp(date) {
|
|
35
35
|
return `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`;
|
|
@@ -411,4 +411,4 @@ function registerChatCommands(program) {
|
|
|
411
411
|
export {
|
|
412
412
|
registerChatCommands
|
|
413
413
|
};
|
|
414
|
-
//# sourceMappingURL=chat-
|
|
414
|
+
//# sourceMappingURL=chat-CLBWW7PV.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ENS,
|
|
9
9
|
SHERWOOD,
|
|
10
10
|
TOKENS
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RFTJBEZI.js";
|
|
12
12
|
import {
|
|
13
13
|
getAccount,
|
|
14
14
|
getPublicClient,
|
|
@@ -524,4 +524,4 @@ export {
|
|
|
524
524
|
setTextRecord,
|
|
525
525
|
getTextRecord
|
|
526
526
|
};
|
|
527
|
-
//# sourceMappingURL=chunk-
|
|
527
|
+
//# sourceMappingURL=chunk-IQNYBIFE.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
EAS_CONTRACTS,
|
|
6
6
|
EAS_SCHEMAS
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RFTJBEZI.js";
|
|
8
8
|
import {
|
|
9
9
|
getAccount,
|
|
10
10
|
getPublicClient,
|
|
@@ -411,4 +411,4 @@ export {
|
|
|
411
411
|
queryApprovals,
|
|
412
412
|
queryJoinRequests
|
|
413
413
|
};
|
|
414
|
-
//# sourceMappingURL=chunk-
|
|
414
|
+
//# sourceMappingURL=chunk-JQBGEYAK.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-OQUGUIYM.js";
|
|
4
4
|
import {
|
|
5
5
|
SHERWOOD
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFTJBEZI.js";
|
|
7
7
|
import {
|
|
8
8
|
getAccount,
|
|
9
9
|
getPublicClient,
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
getActiveSyndicates,
|
|
140
140
|
updateMetadata
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-OPEVMNEY.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-OQUGUIYM.js";
|
|
4
4
|
import {
|
|
5
5
|
SHERWOOD
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFTJBEZI.js";
|
|
7
7
|
import {
|
|
8
8
|
getAccount,
|
|
9
9
|
getPublicClient,
|
|
@@ -429,4 +429,4 @@ export {
|
|
|
429
429
|
vetoProposal,
|
|
430
430
|
setProtocolFeeBps
|
|
431
431
|
};
|
|
432
|
-
//# sourceMappingURL=chunk-
|
|
432
|
+
//# sourceMappingURL=chunk-PHU6MI3J.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-OQUGUIYM.js";
|
|
4
4
|
import {
|
|
5
5
|
UNISWAP
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RFTJBEZI.js";
|
|
7
7
|
import {
|
|
8
8
|
getAccount,
|
|
9
9
|
getPublicClient,
|
|
@@ -451,4 +451,4 @@ export {
|
|
|
451
451
|
encodeSwapPath,
|
|
452
452
|
getMultiHopQuote
|
|
453
453
|
};
|
|
454
|
-
//# sourceMappingURL=chunk-
|
|
454
|
+
//# sourceMappingURL=chunk-QZSKBYZ2.js.map
|
|
@@ -214,20 +214,20 @@ var ROBINHOOD_TESTNET_AERODROME = {
|
|
|
214
214
|
};
|
|
215
215
|
var HYPEREVM_AERODROME = { ROUTER: ZERO, FACTORY: ZERO };
|
|
216
216
|
var BASE_STRATEGY_TEMPLATES = {
|
|
217
|
-
MOONWELL_SUPPLY: "
|
|
218
|
-
AERODROME_LP: "
|
|
219
|
-
VENICE_INFERENCE: "
|
|
220
|
-
WSTETH_MOONWELL: "
|
|
221
|
-
MAMO_YIELD: "
|
|
217
|
+
MOONWELL_SUPPLY: "0x649f8d24096a5eb17b8C73ee5113825AcA259F00",
|
|
218
|
+
AERODROME_LP: "0x6ccdD48C6A83cCdD6712DEB02E85FbEA8CF426CE",
|
|
219
|
+
VENICE_INFERENCE: "0x49BFDae8353ba15954924274573D427211CCe41b",
|
|
220
|
+
WSTETH_MOONWELL: "0xA31851Ab35F9992b0411749ec02Df053e904D1e6",
|
|
221
|
+
MAMO_YIELD: "0x9ca8A9B75a46261F107B610b634ecE69D7E6DF42",
|
|
222
222
|
HYPERLIQUID_PERP: ZERO,
|
|
223
223
|
PORTFOLIO: "0x7865eEA4063c22d0F55FdD412D345495c7b73f64"
|
|
224
224
|
};
|
|
225
225
|
var BASE_SEPOLIA_STRATEGY_TEMPLATES = {
|
|
226
|
-
MOONWELL_SUPPLY:
|
|
227
|
-
AERODROME_LP:
|
|
228
|
-
VENICE_INFERENCE:
|
|
229
|
-
WSTETH_MOONWELL:
|
|
230
|
-
MAMO_YIELD:
|
|
226
|
+
MOONWELL_SUPPLY: "0xf67107afd786b6CB8829e55634b1686B8Bb7937a",
|
|
227
|
+
AERODROME_LP: "0xDf45018C64f5d6fd254B5d5437e96A27D5F01D09",
|
|
228
|
+
VENICE_INFERENCE: "0xB3E20A505D6e086eaEE02a58C264D41cb746E76E",
|
|
229
|
+
WSTETH_MOONWELL: "0x8F75B609519cEC5a9B9DF3cb74BcF095be5Ee2fD",
|
|
230
|
+
MAMO_YIELD: "0x49ea76685D79ff41bF7F60e22d9D367d0981bD58",
|
|
231
231
|
HYPERLIQUID_PERP: ZERO,
|
|
232
232
|
PORTFOLIO: ZERO
|
|
233
233
|
};
|
|
@@ -453,4 +453,4 @@ export {
|
|
|
453
453
|
SYNTHRA,
|
|
454
454
|
CHAINLINK
|
|
455
455
|
};
|
|
456
|
-
//# sourceMappingURL=chunk-
|
|
456
|
+
//# sourceMappingURL=chunk-RFTJBEZI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/addresses.ts"],"sourcesContent":["/**\n * Contract addresses by network.\n *\n * All exports are functions — they resolve at call time based on the\n * current network set via setNetwork(). This ensures --chain works\n * even when modules are imported before the flag is parsed.\n *\n * Zero addresses = protocol not deployed on that chain. Strategies that\n * need them will fail at execution time with a clear allowlist error.\n */\n\nimport type { Address } from \"viem\";\nimport { type Network, getNetwork } from \"./network.js\";\n\nconst ZERO: Address = \"0x0000000000000000000000000000000000000000\";\nconst ZERO_BYTES32 =\n \"0x0000000000000000000000000000000000000000000000000000000000000000\" as `0x${string}`;\n\n// ── Base Mainnet ──\n\nconst BASE_TOKENS = {\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\" as Address,\n WETH: \"0x4200000000000000000000000000000000000006\" as Address,\n cbETH: \"0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22\" as Address,\n wstETH: \"0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452\" as Address,\n cbBTC: \"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\" as Address,\n DAI: \"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb\" as Address,\n AERO: \"0x940181a94A35A4569E4529A3CDfB74e38FD98631\" as Address,\n} as const;\n\nconst BASE_MOONWELL = {\n COMPTROLLER: \"0xfBb21d0380beE3312B33c4353c8936a0F13EF26C\" as Address,\n mUSDC: \"0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22\" as Address,\n mWETH: \"0x628ff693426583D9a7FB391E54366292F509D457\" as Address,\n mCbETH: \"0x3bf93770f2d4a794c3d9EBEfBAeBAE2a8f09A5E5\" as Address,\n mWstETH: \"0x627Fe393Bc6EdDA28e99AE648fD6fF362514304b\" as Address,\n mCbBTC: \"0xF877ACaFA28c19b96727966690b2f44d35aD5976\" as Address,\n mDAI: \"0x73b06D8d18De422E269645eaCe15400DE7462417\" as Address,\n mAERO: \"0x73902f619CEB9B31FD8EFecf435CbDf89E369Ba6\" as Address,\n} as const;\n\nconst BASE_UNISWAP = {\n SWAP_ROUTER: \"0x2626664c2603336E57B271c5C0b26F421741e481\" as Address,\n QUOTER_V2: \"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a\" as Address,\n SWAP_ADAPTER: \"0x121AaC2B96Ec365e457fcCc1C2ED5a6142064069\" as Address,\n} as const;\n\nconst BASE_INFRA = {\n MULTICALL3: \"0xcA11bde05977b3631167028862bE2a173976CA11\" as Address,\n} as const;\n\n// ── Base Sepolia ──\n\nconst BASE_SEPOLIA_TOKENS = {\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\" as Address, // Circle test USDC\n WETH: \"0x4200000000000000000000000000000000000006\" as Address, // Canonical bridged WETH\n cbETH: ZERO,\n wstETH: ZERO,\n cbBTC: ZERO,\n DAI: ZERO,\n AERO: ZERO,\n} as const;\n\nconst BASE_SEPOLIA_MOONWELL = {\n COMPTROLLER: ZERO,\n mUSDC: ZERO,\n mWETH: ZERO,\n mCbETH: ZERO,\n mWstETH: ZERO,\n mCbBTC: ZERO,\n mDAI: ZERO,\n mAERO: ZERO,\n} as const;\n\nconst BASE_SEPOLIA_UNISWAP = {\n SWAP_ROUTER: \"0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4\" as Address, // Uniswap V3 SwapRouter02\n QUOTER_V2: \"0xC5290058841028F1614F3A6F0F5816cAd0df5E27\" as Address, // Uniswap V3 QuoterV2\n SWAP_ADAPTER: ZERO as Address,\n} as const;\n\nconst BASE_SEPOLIA_INFRA = {\n MULTICALL3: \"0xcA11bde05977b3631167028862bE2a173976CA11\" as Address, // Deterministic, same everywhere\n} as const;\n\n// ── Robinhood L2 Testnet (Arbitrum Orbit, chain 46630) ──\n// Synthra DEX for swaps. Stock tokens available.\n\nconst ROBINHOOD_TESTNET_TOKENS = {\n USDC: ZERO,\n WETH: \"0x7943e237c7F95DA44E0301572D358911207852Fa\" as Address,\n cbETH: ZERO,\n wstETH: ZERO,\n cbBTC: ZERO,\n DAI: ZERO,\n AERO: ZERO,\n TSLA: \"0xC9f9c86933092BbbfFF3CCb4b105A4A94bf3Bd4E\" as Address,\n AMZN: \"0x5884aD2f920c162CFBbACc88C9C51AA75eC09E02\" as Address,\n PLTR: \"0x1FBE1a0e43594b3455993B5dE5Fd0A7A266298d0\" as Address,\n NFLX: \"0x3b8262A63d25f0477c4DDE23F83cfe22Cb768C93\" as Address,\n AMD: \"0x71178BAc73cBeb415514eB542a8995b82669778d\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_MOONWELL = {\n COMPTROLLER: ZERO,\n mUSDC: ZERO,\n mWETH: ZERO,\n mCbETH: ZERO,\n mWstETH: ZERO,\n mCbBTC: ZERO,\n mDAI: ZERO,\n mAERO: ZERO,\n} as const;\n\nconst ROBINHOOD_TESTNET_UNISWAP = {\n SWAP_ROUTER: ZERO,\n QUOTER_V2: ZERO,\n SWAP_ADAPTER: ZERO as Address,\n} as const;\n\n// ── Synthra DEX (Robinhood L2 — Uniswap V3-compatible concentrated liquidity) ──\n\nconst BASE_SYNTHRA = { ROUTER: ZERO, QUOTER: ZERO, FACTORY: ZERO } as const;\nconst BASE_SEPOLIA_SYNTHRA = { ROUTER: ZERO, QUOTER: ZERO, FACTORY: ZERO } as const;\nconst ROBINHOOD_TESTNET_SYNTHRA = {\n ROUTER: \"0x3Ce954107b1A675826B33bF23060Dd655e3758fE\" as Address,\n QUOTER: \"0x231606c321A99DE81e28fE48B07a93F1ba49e713\" as Address,\n FACTORY: \"0x911b4000D3422F482F4062a913885f7b035382Df\" as Address,\n} as const;\n\n// ── Chainlink (Data Streams verifier proxy) ──\n\nconst BASE_CHAINLINK = { VERIFIER_PROXY: \"0xDE1A28D87Afd0f546505B28AB50410A5c3a7387a\" as Address } as const;\nconst BASE_SEPOLIA_CHAINLINK = { VERIFIER_PROXY: ZERO } as const;\nconst ROBINHOOD_TESTNET_CHAINLINK = {\n VERIFIER_PROXY: \"0x72790f9eB82db492a7DDb6d2af22A270Dcc3Db64\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_INFRA = {\n MULTICALL3: \"0xcA11bde05977b3631167028862bE2a173976CA11\" as Address, // Deterministic, same everywhere\n} as const;\n\n// ── HyperEVM (chain 999) ──\n// No Moonwell, no Uniswap, no Venice, no ENS/Durin, no ERC-8004, no EAS.\n// USDC: native USDC on HyperEVM.\n\nconst HYPEREVM_TOKENS = {\n USDC: \"0xb88339CB7199b77E23DB6E890353E22632Ba630f\" as Address,\n WETH: ZERO,\n cbETH: ZERO,\n wstETH: ZERO,\n cbBTC: ZERO,\n DAI: ZERO,\n AERO: ZERO,\n} as const;\n\nconst HYPEREVM_TESTNET_TOKENS = {\n USDC: ZERO,\n WETH: ZERO,\n cbETH: ZERO,\n wstETH: ZERO,\n cbBTC: ZERO,\n DAI: ZERO,\n AERO: ZERO,\n} as const;\n\nconst HYPEREVM_MOONWELL = {\n COMPTROLLER: ZERO, mUSDC: ZERO, mWETH: ZERO, mCbETH: ZERO,\n mWstETH: ZERO, mCbBTC: ZERO, mDAI: ZERO, mAERO: ZERO,\n} as const;\n\nconst HYPEREVM_UNISWAP = { SWAP_ROUTER: ZERO, QUOTER_V2: ZERO, SWAP_ADAPTER: ZERO as Address } as const;\n\nconst HYPEREVM_INFRA = {\n MULTICALL3: \"0xcA11bde05977b3631167028862bE2a173976CA11\" as Address,\n} as const;\n\n// ── ENS / Durin ──\n\nconst BASE_ENS = {\n L2_REGISTRAR: \"0x866996c808E6244216a3d0df15464FCF5d495394\" as Address,\n L2_REGISTRY: \"0x7a019ce699e27b0ad1e5b51344a58116b9f3b9b1\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_ENS = {\n L2_REGISTRAR: \"0x1fCbe9dFC25e3fa3F7C55b26c7992684A4758b47\" as Address,\n L2_REGISTRY: \"0x06eb7b85b59bc3e50fe4837be776cdd26de602cf\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_ENS = {\n L2_REGISTRAR: ZERO,\n L2_REGISTRY: ZERO,\n} as const;\n\nconst HYPEREVM_ENS = { L2_REGISTRAR: ZERO, L2_REGISTRY: ZERO } as const;\n\n// ── ERC-8004 Agent Identity ──\n\nconst BASE_AGENT_REGISTRY = {\n IDENTITY_REGISTRY: \"0x8004A169FB4a3325136EB29fA0ceB6D2e539a432\" as Address,\n REPUTATION_REGISTRY:\n \"0x8004BAa17C55a88189AE136b182e5fdA19dE9b63\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_AGENT_REGISTRY = {\n IDENTITY_REGISTRY: \"0x8004A818BFB912233c491871b3d84c89A494BD9e\" as Address,\n REPUTATION_REGISTRY:\n \"0x8004B663056A597Dffe9eCcC1965A193B7388713\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_AGENT_REGISTRY = {\n IDENTITY_REGISTRY: ZERO,\n REPUTATION_REGISTRY: ZERO,\n} as const;\n\nconst HYPEREVM_AGENT_REGISTRY = { IDENTITY_REGISTRY: ZERO, REPUTATION_REGISTRY: ZERO } as const;\n\n// ── Sherwood Protocol (our deployed contracts) ──\n\nconst BASE_SHERWOOD = {\n FACTORY: \"0xd5C4eE2E4c5B606b9401E69A3B3FeE169037C284\" as Address,\n GOVERNOR: \"0x358AD8B492BcC710BE0D7c902D8702164c35DC34\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_SHERWOOD = {\n FACTORY: \"0x121AaC2B96Ec365e457fcCc1C2ED5a6142064069\" as Address,\n GOVERNOR: \"0xE5ecf2B06E3f3e298B632C0cf6575f9d9422F55E\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_SHERWOOD = {\n FACTORY: \"0x6d026e2f5Ff0C34A01690EC46Cb601B8fF391985\" as Address,\n GOVERNOR: \"0xd882056ba6b0aEd8908c541884B327121E2f2C9C\" as Address,\n} as const;\n\nconst HYPEREVM_SHERWOOD = {\n FACTORY: \"0x4085EEa1E6d3D20E84D8Ae14964FAb8b899DA40a\" as Address,\n GOVERNOR: \"0x7B4a2f3480FE101f88b2e3547A1bCf3eaaDE46bc\" as Address,\n} as const;\n\n// ── Venice (VVV governance + sVVV staking + DIEM compute) ──\n\nconst BASE_VENICE = {\n VVV: \"0xacfe6019ed1a7dc6f7b508c02d1b04ec88cc21bf\" as Address,\n STAKING: \"0x321b7ff75154472b18edb199033ff4d116f340ff\" as Address, // also the sVVV ERC-20\n DIEM: \"0xF4d97F2da56e8c3098f3a8D538DB630A2606a024\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_VENICE = {\n VVV: ZERO,\n STAKING: ZERO,\n DIEM: ZERO,\n} as const;\n\nconst ROBINHOOD_TESTNET_VENICE = {\n VVV: ZERO,\n STAKING: ZERO,\n DIEM: ZERO,\n} as const;\n\nconst HYPEREVM_VENICE = { VVV: ZERO, STAKING: ZERO, DIEM: ZERO } as const;\n\n// ── Aerodrome (Base ve(3,3) DEX) ──\n\nconst BASE_AERODROME = {\n ROUTER: \"0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43\" as Address,\n FACTORY: \"0x420DD381b31aEf6683db6B902084cB0FFECe40Da\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_AERODROME = {\n ROUTER: ZERO,\n FACTORY: ZERO,\n} as const;\n\nconst ROBINHOOD_TESTNET_AERODROME = {\n ROUTER: ZERO,\n FACTORY: ZERO,\n} as const;\n\nconst HYPEREVM_AERODROME = { ROUTER: ZERO, FACTORY: ZERO } as const;\n\n// ── Strategy Templates (ERC-1167 clonable singletons) ──\n// Populated after running script/DeployTemplates.s.sol\n\nconst BASE_STRATEGY_TEMPLATES = {\n MOONWELL_SUPPLY: \"0x649f8d24096a5eb17b8C73ee5113825AcA259F00\" as Address,\n AERODROME_LP: \"0x6ccdD48C6A83cCdD6712DEB02E85FbEA8CF426CE\" as Address,\n VENICE_INFERENCE: \"0x49BFDae8353ba15954924274573D427211CCe41b\" as Address,\n WSTETH_MOONWELL: \"0xA31851Ab35F9992b0411749ec02Df053e904D1e6\" as Address,\n MAMO_YIELD: \"0x9ca8A9B75a46261F107B610b634ecE69D7E6DF42\" as Address,\n HYPERLIQUID_PERP: ZERO as Address,\n PORTFOLIO: \"0x7865eEA4063c22d0F55FdD412D345495c7b73f64\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_STRATEGY_TEMPLATES = {\n MOONWELL_SUPPLY: \"0xf67107afd786b6CB8829e55634b1686B8Bb7937a\" as Address,\n AERODROME_LP: \"0xDf45018C64f5d6fd254B5d5437e96A27D5F01D09\" as Address,\n VENICE_INFERENCE: \"0xB3E20A505D6e086eaEE02a58C264D41cb746E76E\" as Address,\n WSTETH_MOONWELL: \"0x8F75B609519cEC5a9B9DF3cb74BcF095be5Ee2fD\" as Address,\n MAMO_YIELD: \"0x49ea76685D79ff41bF7F60e22d9D367d0981bD58\" as Address,\n HYPERLIQUID_PERP: ZERO as Address,\n PORTFOLIO: ZERO as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_STRATEGY_TEMPLATES = {\n MOONWELL_SUPPLY: ZERO as Address,\n AERODROME_LP: ZERO as Address,\n VENICE_INFERENCE: ZERO as Address,\n WSTETH_MOONWELL: ZERO as Address,\n MAMO_YIELD: ZERO as Address,\n HYPERLIQUID_PERP: ZERO as Address,\n PORTFOLIO: \"0xAe981882923E0C76A7F10E7cAa3782023c0abd9B\" as Address,\n} as const;\n\nconst HYPEREVM_STRATEGY_TEMPLATES = {\n MOONWELL_SUPPLY: ZERO as Address,\n AERODROME_LP: ZERO as Address,\n VENICE_INFERENCE: ZERO as Address,\n WSTETH_MOONWELL: ZERO as Address,\n MAMO_YIELD: ZERO as Address,\n HYPERLIQUID_PERP: \"0x2efD194ADb3Db40E0e6faAe06c4e602c7a3D9199\" as Address,\n PORTFOLIO: ZERO as Address,\n} as const;\n\n// ── EAS (Ethereum Attestation Service) — Base predeploys ──\n\nconst BASE_EAS = {\n EAS: \"0x4200000000000000000000000000000000000021\" as Address,\n SCHEMA_REGISTRY: \"0x4200000000000000000000000000000000000020\" as Address,\n} as const;\n\nconst BASE_SEPOLIA_EAS = {\n EAS: \"0x4200000000000000000000000000000000000021\" as Address,\n SCHEMA_REGISTRY: \"0x4200000000000000000000000000000000000020\" as Address,\n} as const;\n\nconst ROBINHOOD_TESTNET_EAS = {\n EAS: ZERO,\n SCHEMA_REGISTRY: ZERO,\n} as const;\n\nconst HYPEREVM_EAS = { EAS: ZERO, SCHEMA_REGISTRY: ZERO } as const;\n\n// ── EAS Schema UIDs (populated after running scripts/register-eas-schemas.ts) ──\n\nconst BASE_EAS_SCHEMAS = {\n SYNDICATE_JOIN_REQUEST:\n \"0x1e7ce17b16233977ba913b156033e98f52029f4bee273a4abefe6c15ce11d5ef\" as `0x${string}`,\n AGENT_APPROVED:\n \"0x1013f7b38f433b2a93fc5ac162482813081c64edd67cea9b5a90698531ddb607\" as `0x${string}`,\n X402_RESEARCH:\n \"0x86c67f0a59acb3093ecbeb6c4d1d4352e4a48143672e92ef9dd2fdfc8a9ca708\" as `0x${string}`,\n VENICE_PROVISION:\n \"0x76d4d6baa72307826cd2fd4ce069bb42ee54cdda6ed6ab208c8d233c893fb7f1\" as `0x${string}`,\n VENICE_INFERENCE:\n \"0xf9b4e530f3016c19439b67372a1c213c9339857627fb817032614b97433a2a14\" as `0x${string}`,\n TRADE_EXECUTED:\n \"0x06bb488363a468f7f857ddc8cfffe918d048b8746a0d59eca9cd7f58dbdb4af6\" as `0x${string}`,\n} as const;\n\nconst BASE_SEPOLIA_EAS_SCHEMAS = {\n SYNDICATE_JOIN_REQUEST:\n \"0x1e7ce17b16233977ba913b156033e98f52029f4bee273a4abefe6c15ce11d5ef\" as `0x${string}`,\n AGENT_APPROVED:\n \"0x1013f7b38f433b2a93fc5ac162482813081c64edd67cea9b5a90698531ddb607\" as `0x${string}`,\n X402_RESEARCH:\n \"0x86c67f0a59acb3093ecbeb6c4d1d4352e4a48143672e92ef9dd2fdfc8a9ca708\" as `0x${string}`,\n VENICE_PROVISION:\n \"0x76d4d6baa72307826cd2fd4ce069bb42ee54cdda6ed6ab208c8d233c893fb7f1\" as `0x${string}`,\n VENICE_INFERENCE:\n \"0xf9b4e530f3016c19439b67372a1c213c9339857627fb817032614b97433a2a14\" as `0x${string}`,\n TRADE_EXECUTED:\n \"0x06bb488363a468f7f857ddc8cfffe918d048b8746a0d59eca9cd7f58dbdb4af6\" as `0x${string}`,\n} as const;\n\nconst ROBINHOOD_TESTNET_EAS_SCHEMAS = {\n SYNDICATE_JOIN_REQUEST: ZERO_BYTES32,\n AGENT_APPROVED: ZERO_BYTES32,\n X402_RESEARCH: ZERO_BYTES32,\n VENICE_PROVISION: ZERO_BYTES32,\n VENICE_INFERENCE: ZERO_BYTES32,\n TRADE_EXECUTED: ZERO_BYTES32,\n} as const;\n\nconst HYPEREVM_EAS_SCHEMAS = {\n SYNDICATE_JOIN_REQUEST: ZERO_BYTES32, AGENT_APPROVED: ZERO_BYTES32,\n X402_RESEARCH: ZERO_BYTES32, VENICE_PROVISION: ZERO_BYTES32,\n VENICE_INFERENCE: ZERO_BYTES32, TRADE_EXECUTED: ZERO_BYTES32,\n} as const;\n\n// ── Registries (map-based lookup) ──\n\nconst TOKEN_REGISTRY: Record<Network, typeof BASE_TOKENS> = {\n base: BASE_TOKENS,\n \"base-sepolia\": BASE_SEPOLIA_TOKENS,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_TOKENS,\n hyperevm: HYPEREVM_TOKENS,\n \"hyperevm-testnet\": HYPEREVM_TESTNET_TOKENS,\n};\n\nconst MOONWELL_REGISTRY: Record<Network, typeof BASE_MOONWELL> = {\n base: BASE_MOONWELL,\n \"base-sepolia\": BASE_SEPOLIA_MOONWELL,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_MOONWELL,\n hyperevm: HYPEREVM_MOONWELL,\n \"hyperevm-testnet\": HYPEREVM_MOONWELL,\n};\n\nconst UNISWAP_REGISTRY: Record<Network, typeof BASE_UNISWAP> = {\n base: BASE_UNISWAP,\n \"base-sepolia\": BASE_SEPOLIA_UNISWAP,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_UNISWAP,\n hyperevm: HYPEREVM_UNISWAP,\n \"hyperevm-testnet\": HYPEREVM_UNISWAP,\n};\n\nconst INFRA_REGISTRY: Record<Network, typeof BASE_INFRA> = {\n base: BASE_INFRA,\n \"base-sepolia\": BASE_SEPOLIA_INFRA,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_INFRA,\n hyperevm: HYPEREVM_INFRA,\n \"hyperevm-testnet\": HYPEREVM_INFRA,\n};\n\nconst ENS_REGISTRY: Record<Network, typeof BASE_ENS> = {\n base: BASE_ENS,\n \"base-sepolia\": BASE_SEPOLIA_ENS,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_ENS,\n hyperevm: HYPEREVM_ENS,\n \"hyperevm-testnet\": HYPEREVM_ENS,\n};\n\nconst AGENT_REGISTRY_MAP: Record<Network, typeof BASE_AGENT_REGISTRY> = {\n base: BASE_AGENT_REGISTRY,\n \"base-sepolia\": BASE_SEPOLIA_AGENT_REGISTRY,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_AGENT_REGISTRY,\n hyperevm: HYPEREVM_AGENT_REGISTRY,\n \"hyperevm-testnet\": HYPEREVM_AGENT_REGISTRY,\n};\n\nconst SHERWOOD_REGISTRY: Record<Network, typeof BASE_SHERWOOD> = {\n base: BASE_SHERWOOD,\n \"base-sepolia\": BASE_SEPOLIA_SHERWOOD,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_SHERWOOD,\n hyperevm: HYPEREVM_SHERWOOD,\n \"hyperevm-testnet\": HYPEREVM_SHERWOOD,\n};\n\nconst VENICE_REGISTRY: Record<Network, typeof BASE_VENICE> = {\n base: BASE_VENICE,\n \"base-sepolia\": BASE_SEPOLIA_VENICE,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_VENICE,\n hyperevm: HYPEREVM_VENICE,\n \"hyperevm-testnet\": HYPEREVM_VENICE,\n};\n\nconst AERODROME_REGISTRY: Record<Network, typeof BASE_AERODROME> = {\n base: BASE_AERODROME,\n \"base-sepolia\": BASE_SEPOLIA_AERODROME,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_AERODROME,\n hyperevm: HYPEREVM_AERODROME,\n \"hyperevm-testnet\": HYPEREVM_AERODROME,\n};\n\nconst STRATEGY_TEMPLATE_REGISTRY: Record<Network, typeof BASE_STRATEGY_TEMPLATES> = {\n base: BASE_STRATEGY_TEMPLATES,\n \"base-sepolia\": BASE_SEPOLIA_STRATEGY_TEMPLATES,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_STRATEGY_TEMPLATES,\n hyperevm: HYPEREVM_STRATEGY_TEMPLATES,\n \"hyperevm-testnet\": HYPEREVM_STRATEGY_TEMPLATES,\n};\n\nconst HYPEREVM_SYNTHRA = { ROUTER: ZERO, QUOTER: ZERO, FACTORY: ZERO } as const;\nconst HYPEREVM_CHAINLINK = { VERIFIER_PROXY: ZERO } as const;\n\nconst SYNTHRA_REGISTRY: Record<Network, typeof BASE_SYNTHRA> = {\n base: BASE_SYNTHRA,\n \"base-sepolia\": BASE_SEPOLIA_SYNTHRA,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_SYNTHRA,\n hyperevm: HYPEREVM_SYNTHRA,\n \"hyperevm-testnet\": HYPEREVM_SYNTHRA,\n};\n\nconst CHAINLINK_REGISTRY: Record<Network, typeof BASE_CHAINLINK> = {\n base: BASE_CHAINLINK,\n \"base-sepolia\": BASE_SEPOLIA_CHAINLINK,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_CHAINLINK,\n hyperevm: HYPEREVM_CHAINLINK,\n \"hyperevm-testnet\": HYPEREVM_CHAINLINK,\n};\n\nconst EAS_CONTRACT_REGISTRY: Record<Network, typeof BASE_EAS> = {\n base: BASE_EAS,\n \"base-sepolia\": BASE_SEPOLIA_EAS,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_EAS,\n hyperevm: HYPEREVM_EAS,\n \"hyperevm-testnet\": HYPEREVM_EAS,\n};\n\nconst EAS_SCHEMA_REGISTRY: Record<Network, typeof BASE_EAS_SCHEMAS> = {\n base: BASE_EAS_SCHEMAS,\n \"base-sepolia\": BASE_SEPOLIA_EAS_SCHEMAS,\n \"robinhood-testnet\": ROBINHOOD_TESTNET_EAS_SCHEMAS,\n hyperevm: HYPEREVM_EAS_SCHEMAS,\n \"hyperevm-testnet\": HYPEREVM_EAS_SCHEMAS,\n};\n\n// ── Exports (functions, resolved at call time) ──\n\nexport function TOKENS() {\n return TOKEN_REGISTRY[getNetwork()];\n}\n\nexport function MOONWELL() {\n return MOONWELL_REGISTRY[getNetwork()];\n}\n\nexport function UNISWAP() {\n return UNISWAP_REGISTRY[getNetwork()];\n}\n\nexport function INFRA() {\n return INFRA_REGISTRY[getNetwork()];\n}\n\nexport function ENS() {\n return ENS_REGISTRY[getNetwork()];\n}\n\nexport function AGENT_REGISTRY() {\n return AGENT_REGISTRY_MAP[getNetwork()];\n}\n\nexport function VENICE() {\n return VENICE_REGISTRY[getNetwork()];\n}\n\nexport function SHERWOOD() {\n return SHERWOOD_REGISTRY[getNetwork()];\n}\n\nexport function AERODROME() {\n return AERODROME_REGISTRY[getNetwork()];\n}\n\nexport function STRATEGY_TEMPLATES() {\n return STRATEGY_TEMPLATE_REGISTRY[getNetwork()];\n}\n\nexport function EAS_CONTRACTS() {\n return EAS_CONTRACT_REGISTRY[getNetwork()];\n}\n\nexport function EAS_SCHEMAS() {\n return EAS_SCHEMA_REGISTRY[getNetwork()];\n}\n\nexport function SYNTHRA() {\n return SYNTHRA_REGISTRY[getNetwork()];\n}\n\nexport function CHAINLINK() {\n return CHAINLINK_REGISTRY[getNetwork()];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
queryJoinRequests,
|
|
13
13
|
revokeAttestation,
|
|
14
14
|
stripReferrerPrefix
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JQBGEYAK.js";
|
|
16
16
|
import "./chunk-OQUGUIYM.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-RFTJBEZI.js";
|
|
18
18
|
import "./chunk-OFR3LCYE.js";
|
|
19
19
|
import "./chunk-IJG4CTOI.js";
|
|
20
20
|
import "./chunk-WCBG44IQ.js";
|
|
@@ -33,4 +33,4 @@ export {
|
|
|
33
33
|
revokeAttestation,
|
|
34
34
|
stripReferrerPrefix
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=eas-
|
|
36
|
+
//# sourceMappingURL=eas-LVJEPWBY.js.map
|
|
@@ -34,9 +34,9 @@ import {
|
|
|
34
34
|
settleProposal,
|
|
35
35
|
vetoProposal,
|
|
36
36
|
vote
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-PHU6MI3J.js";
|
|
38
38
|
import "./chunk-OQUGUIYM.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-RFTJBEZI.js";
|
|
40
40
|
import "./chunk-OFR3LCYE.js";
|
|
41
41
|
import "./chunk-IJG4CTOI.js";
|
|
42
42
|
import "./chunk-WCBG44IQ.js";
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
vetoProposal,
|
|
78
78
|
vote
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=governor-
|
|
80
|
+
//# sourceMappingURL=governor-HU3CPXMU.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-QZSKBYZ2.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-JQBGEYAK.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-OPEVMNEY.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-IQNYBIFE.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-PHU6MI3J.js";
|
|
85
85
|
import {
|
|
86
86
|
fetchMetadata,
|
|
87
87
|
uploadMetadata
|
|
@@ -107,7 +107,7 @@ import {
|
|
|
107
107
|
TOKENS,
|
|
108
108
|
UNISWAP,
|
|
109
109
|
VENICE
|
|
110
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-RFTJBEZI.js";
|
|
111
111
|
import {
|
|
112
112
|
formatContractError,
|
|
113
113
|
getAccount,
|
|
@@ -1325,6 +1325,42 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1325
1325
|
process.exit(1);
|
|
1326
1326
|
}
|
|
1327
1327
|
const { def, address: templateAddr } = resolveTemplate(templateKey);
|
|
1328
|
+
const account = getAccount();
|
|
1329
|
+
const preflightSpinner = ora("Preflight checks...").start();
|
|
1330
|
+
try {
|
|
1331
|
+
const publicClient = getPublicClient();
|
|
1332
|
+
const isRegistered = await publicClient.readContract({
|
|
1333
|
+
address: vault,
|
|
1334
|
+
abi: SYNDICATE_VAULT_ABI,
|
|
1335
|
+
functionName: "isAgent",
|
|
1336
|
+
args: [account.address]
|
|
1337
|
+
});
|
|
1338
|
+
if (!isRegistered) {
|
|
1339
|
+
preflightSpinner.fail("Preflight failed");
|
|
1340
|
+
console.error(
|
|
1341
|
+
chalk.red(
|
|
1342
|
+
` Signer ${account.address} is not a registered agent on ${vault}.
|
|
1343
|
+
Register first via: sherwood syndicate approve --wallet ${account.address}`
|
|
1344
|
+
)
|
|
1345
|
+
);
|
|
1346
|
+
process.exit(1);
|
|
1347
|
+
}
|
|
1348
|
+
const paused = await publicClient.readContract({
|
|
1349
|
+
address: vault,
|
|
1350
|
+
abi: SYNDICATE_VAULT_ABI,
|
|
1351
|
+
functionName: "paused"
|
|
1352
|
+
});
|
|
1353
|
+
if (paused) {
|
|
1354
|
+
preflightSpinner.fail("Preflight failed");
|
|
1355
|
+
console.error(chalk.red(` Vault ${vault} is paused. Cannot propose.`));
|
|
1356
|
+
process.exit(1);
|
|
1357
|
+
}
|
|
1358
|
+
preflightSpinner.succeed("Preflight OK");
|
|
1359
|
+
} catch (err) {
|
|
1360
|
+
preflightSpinner.fail("Preflight failed");
|
|
1361
|
+
console.error(chalk.red(formatContractError(err)));
|
|
1362
|
+
process.exit(1);
|
|
1363
|
+
}
|
|
1328
1364
|
const cloneSpinner = ora(`Cloning ${def.name} template...`).start();
|
|
1329
1365
|
let clone;
|
|
1330
1366
|
try {
|
|
@@ -1346,14 +1382,13 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1346
1382
|
asset = built.asset;
|
|
1347
1383
|
assetAmount = built.assetAmount;
|
|
1348
1384
|
extraApprovals = built.extraApprovals;
|
|
1349
|
-
const account2 = getAccount();
|
|
1350
1385
|
const initHash = await writeContractWithRetry({
|
|
1351
|
-
account
|
|
1386
|
+
account,
|
|
1352
1387
|
chain: getChain(),
|
|
1353
1388
|
address: clone,
|
|
1354
1389
|
abi: BASE_STRATEGY_ABI,
|
|
1355
1390
|
functionName: "initialize",
|
|
1356
|
-
args: [vault,
|
|
1391
|
+
args: [vault, account.address, built.initData]
|
|
1357
1392
|
});
|
|
1358
1393
|
const initReceipt = await waitForReceipt(initHash);
|
|
1359
1394
|
if (initReceipt.status === "reverted") {
|
|
@@ -1409,16 +1444,15 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1409
1444
|
console.error(chalk.red("Missing --name, --performance-fee, or --duration. Use --write-calls to skip proposal submission."));
|
|
1410
1445
|
process.exit(1);
|
|
1411
1446
|
}
|
|
1412
|
-
const { propose: propose2 } = await import("./governor-
|
|
1447
|
+
const { propose: propose2 } = await import("./governor-HU3CPXMU.js");
|
|
1413
1448
|
const { pinJSON } = await import("./ipfs-IGXLLJCF.js");
|
|
1414
|
-
const { parseDuration: parseDuration2 } = await import("./governor-
|
|
1449
|
+
const { parseDuration: parseDuration2 } = await import("./governor-HU3CPXMU.js");
|
|
1415
1450
|
const performanceFeeBps = BigInt(opts.performanceFee);
|
|
1416
1451
|
if (performanceFeeBps < 0n || performanceFeeBps > 10000n) {
|
|
1417
1452
|
console.error(chalk.red("--performance-fee must be 0-10000 (basis points)"));
|
|
1418
1453
|
process.exit(1);
|
|
1419
1454
|
}
|
|
1420
1455
|
const strategyDuration = parseDuration2(opts.duration);
|
|
1421
|
-
const account = getAccount();
|
|
1422
1456
|
const metaSpinner = ora("Pinning metadata to IPFS...").start();
|
|
1423
1457
|
let metadataURI;
|
|
1424
1458
|
try {
|
|
@@ -1519,7 +1553,7 @@ function registerStrategyTemplateCommands(strategy2) {
|
|
|
1519
1553
|
let prices = [];
|
|
1520
1554
|
let priceSource = null;
|
|
1521
1555
|
try {
|
|
1522
|
-
const { getTokenPricesInAsset } = await import("./price-
|
|
1556
|
+
const { getTokenPricesInAsset } = await import("./price-OZRLJH3X.js");
|
|
1523
1557
|
prices = await getTokenPricesInAsset({
|
|
1524
1558
|
tokens: allocations.map((a, i) => ({
|
|
1525
1559
|
token: a.token,
|
|
@@ -1948,7 +1982,7 @@ function registerVeniceCommands(program2) {
|
|
|
1948
1982
|
console.log(chalk2.dim(` Key: ${apiKey.slice(0, 8)}...${apiKey.slice(-4)}`));
|
|
1949
1983
|
console.log(chalk2.dim(" Saved to ~/.sherwood/config.json"));
|
|
1950
1984
|
try {
|
|
1951
|
-
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
1985
|
+
const { createVeniceProvisionAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-LVJEPWBY.js");
|
|
1952
1986
|
const { uid } = await createVeniceProvisionAttestation(account.address);
|
|
1953
1987
|
if (uid !== "0x0000000000000000000000000000000000000000000000000000000000000000") {
|
|
1954
1988
|
console.log(chalk2.dim(` Attested: ${getEasScanUrl2(uid)}`));
|
|
@@ -2099,7 +2133,7 @@ ${opts.prompt}`;
|
|
|
2099
2133
|
console.log(chalk2.dim(`Model: ${result.model} | Tokens: ${result.usage.promptTokens} in, ${result.usage.completionTokens} out, ${result.usage.totalTokens} total`));
|
|
2100
2134
|
}
|
|
2101
2135
|
try {
|
|
2102
|
-
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-
|
|
2136
|
+
const { createVeniceInferenceAttestation, getEasScanUrl: getEasScanUrl2 } = await import("./eas-LVJEPWBY.js");
|
|
2103
2137
|
const { keccak256, toHex, isAddress: isAddr } = await import("viem");
|
|
2104
2138
|
const { getChainContracts: getChainContracts2 } = await import("./config-LS7FKZL5.js");
|
|
2105
2139
|
const { getChain: getActiveChain } = await import("./network-KSMKPKNL.js");
|
|
@@ -3231,7 +3265,7 @@ function printSimulationResult(result, callType) {
|
|
|
3231
3265
|
}
|
|
3232
3266
|
async function sendSimulationAlert(subdomain, proposalId, vault, execResult, settleResult) {
|
|
3233
3267
|
try {
|
|
3234
|
-
const xmtp = await import("./xmtp-
|
|
3268
|
+
const xmtp = await import("./xmtp-25RHTLIA.js");
|
|
3235
3269
|
const { getAccount: getAccount2 } = await import("./client-HKAG55PQ.js");
|
|
3236
3270
|
const group = await xmtp.getGroup("", subdomain);
|
|
3237
3271
|
const allRisks = [...execResult.risks, ...settleResult?.risks ?? []];
|
|
@@ -4048,7 +4082,7 @@ try {
|
|
|
4048
4082
|
var require2 = createRequire(import.meta.url);
|
|
4049
4083
|
var { version: CLI_VERSION } = require2("../package.json");
|
|
4050
4084
|
async function loadXmtp() {
|
|
4051
|
-
return import("./xmtp-
|
|
4085
|
+
return import("./xmtp-25RHTLIA.js");
|
|
4052
4086
|
}
|
|
4053
4087
|
async function loadCron() {
|
|
4054
4088
|
return import("./cron-EOULYO3R.js");
|
|
@@ -4516,7 +4550,7 @@ syndicate.command("add").description("Register an agent on a syndicate vault (cr
|
|
|
4516
4550
|
if (opts.agentId) {
|
|
4517
4551
|
agentId = BigInt(opts.agentId);
|
|
4518
4552
|
} else {
|
|
4519
|
-
const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-
|
|
4553
|
+
const { AGENT_REGISTRY: AGENT_REGISTRY2 } = await import("./addresses-5BITNIGX.js");
|
|
4520
4554
|
const registry = AGENT_REGISTRY2().IDENTITY_REGISTRY;
|
|
4521
4555
|
if (registry === "0x0000000000000000000000000000000000000000") {
|
|
4522
4556
|
agentId = 0n;
|
|
@@ -5126,7 +5160,7 @@ ${info.name} (${info.type})`);
|
|
|
5126
5160
|
}
|
|
5127
5161
|
});
|
|
5128
5162
|
try {
|
|
5129
|
-
const { registerChatCommands } = await import("./chat-
|
|
5163
|
+
const { registerChatCommands } = await import("./chat-CLBWW7PV.js");
|
|
5130
5164
|
registerChatCommands(program);
|
|
5131
5165
|
} catch {
|
|
5132
5166
|
program.command("chat <name> [action] [actionArgs...]").description("Syndicate chat (XMTP) \u2014 requires @xmtp/cli").action(() => {
|
|
@@ -5136,18 +5170,18 @@ try {
|
|
|
5136
5170
|
process.exit(1);
|
|
5137
5171
|
});
|
|
5138
5172
|
}
|
|
5139
|
-
var { registerSessionCommands } = await import("./session-
|
|
5173
|
+
var { registerSessionCommands } = await import("./session-XRTKPC4Q.js");
|
|
5140
5174
|
registerSessionCommands(program);
|
|
5141
5175
|
registerVeniceCommands(program);
|
|
5142
5176
|
registerAllowanceCommands(program);
|
|
5143
5177
|
registerIdentityCommands(program);
|
|
5144
5178
|
registerProposalCommands(program);
|
|
5145
5179
|
registerGovernorCommands(program);
|
|
5146
|
-
var { registerResearchCommands } = await import("./research-
|
|
5180
|
+
var { registerResearchCommands } = await import("./research-5WEM4WZC.js");
|
|
5147
5181
|
registerResearchCommands(program);
|
|
5148
5182
|
var { registerAgentCommands } = await import("./agent-TB7VNLFH.js");
|
|
5149
5183
|
registerAgentCommands(program);
|
|
5150
|
-
var { registerTradeCommands } = await import("./trade-
|
|
5184
|
+
var { registerTradeCommands } = await import("./trade-HN4BXDVU.js");
|
|
5151
5185
|
registerTradeCommands(program);
|
|
5152
5186
|
var configCmd = program.command("config");
|
|
5153
5187
|
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) => {
|