@sherwoodagent/cli 0.80.0 → 0.82.0
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/{abis-OLIDCWDS.js → abis-ZQ6I3S6L.js} +2 -4
- package/dist/{addresses-EF5OQSKV.js → addresses-FGJ4I4IG.js} +3 -3
- package/dist/{agent-VLYILEUP.js → agent-QUINV725.js} +7 -7
- package/dist/{chat-56DDAGA2.js → chat-5TUHBSIA.js} +9 -9
- package/dist/{chunk-QK3FUTVI.js → chunk-27XY2HXV.js} +5 -5
- package/dist/{chunk-VJKZDHH3.js → chunk-3TLKNRZV.js} +10 -9
- package/dist/chunk-3TLKNRZV.js.map +1 -0
- package/dist/{chunk-RFJSV3EZ.js → chunk-4KJUX5SS.js} +5 -5
- package/dist/{chunk-K2NEFUEP.js → chunk-54CLRBPB.js} +5 -5
- package/dist/{chunk-QSYLZA4Z.js → chunk-6BVA4RIH.js} +2 -2
- package/dist/{chunk-MAG63U53.js → chunk-76DLC7CM.js} +4 -4
- package/dist/{chunk-BJ4G3TPP.js → chunk-EPQR6PJ4.js} +2 -2
- package/dist/{chunk-54WMDJTL.js → chunk-LZEV772I.js} +386 -5
- package/dist/chunk-LZEV772I.js.map +1 -0
- package/dist/{chunk-2LUTKS24.js → chunk-MC5QEPW3.js} +6 -6
- package/dist/{chunk-XW6NDXBA.js → chunk-PMRYC6SF.js} +12 -12
- package/dist/{chunk-XW6NDXBA.js.map → chunk-PMRYC6SF.js.map} +1 -1
- package/dist/{chunk-XDWYX5ZM.js → chunk-UHGWEJ24.js} +2 -2
- package/dist/{chunk-XDGCHURW.js → chunk-VR4VHX4D.js} +3 -3
- package/dist/chunk-VR4VHX4D.js.map +1 -0
- package/dist/{chunk-TU655ZTV.js → chunk-XSP64L7L.js} +1102 -480
- package/dist/chunk-XSP64L7L.js.map +1 -0
- package/dist/{chunk-UO4UITOY.js → chunk-Y6XOH23Y.js} +28 -7
- package/dist/chunk-Y6XOH23Y.js.map +1 -0
- package/dist/{client-25LF2O4P.js → client-VNSFNDF4.js} +3 -3
- package/dist/{eas-HHMRO37P.js → eas-PJ3Y4NDB.js} +6 -6
- package/dist/{governor-AL2XUGBE.js → governor-4ASVLOCI.js} +6 -6
- package/dist/index.js +4857 -4569
- package/dist/index.js.map +1 -1
- package/dist/{ipfs-RWSTXTZM.js → ipfs-EJ7IHXCU.js} +2 -2
- package/dist/{network-R45QDUYO.js → network-RI54LT2Y.js} +2 -2
- package/dist/{price-QO22NF5Q.js → price-JX2LFKFW.js} +6 -6
- package/dist/{providers-ALMXBRNW.js → providers-F6MNPMR4.js} +4 -4
- package/dist/{research-ICDDAAGV.js → research-5ZJTRILJ.js} +8 -8
- package/dist/{session-RSWSCMM5.js → session-AXLPYJHX.js} +11 -11
- package/dist/{trade-YNQVWUYZ.js → trade-BZM7K2F4.js} +15 -15
- package/dist/{vault-QKURBBSL.js → vault-AWQBFD4C.js} +9 -9
- package/dist/{xmtp-M2OBCCNR.js → xmtp-M74BRF3G.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-54WMDJTL.js.map +0 -1
- package/dist/chunk-TU655ZTV.js.map +0 -1
- package/dist/chunk-UO4UITOY.js.map +0 -1
- package/dist/chunk-VJKZDHH3.js.map +0 -1
- package/dist/chunk-XDGCHURW.js.map +0 -1
- /package/dist/{abis-OLIDCWDS.js.map → abis-ZQ6I3S6L.js.map} +0 -0
- /package/dist/{addresses-EF5OQSKV.js.map → addresses-FGJ4I4IG.js.map} +0 -0
- /package/dist/{agent-VLYILEUP.js.map → agent-QUINV725.js.map} +0 -0
- /package/dist/{chat-56DDAGA2.js.map → chat-5TUHBSIA.js.map} +0 -0
- /package/dist/{chunk-QK3FUTVI.js.map → chunk-27XY2HXV.js.map} +0 -0
- /package/dist/{chunk-RFJSV3EZ.js.map → chunk-4KJUX5SS.js.map} +0 -0
- /package/dist/{chunk-K2NEFUEP.js.map → chunk-54CLRBPB.js.map} +0 -0
- /package/dist/{chunk-QSYLZA4Z.js.map → chunk-6BVA4RIH.js.map} +0 -0
- /package/dist/{chunk-MAG63U53.js.map → chunk-76DLC7CM.js.map} +0 -0
- /package/dist/{chunk-BJ4G3TPP.js.map → chunk-EPQR6PJ4.js.map} +0 -0
- /package/dist/{chunk-2LUTKS24.js.map → chunk-MC5QEPW3.js.map} +0 -0
- /package/dist/{chunk-XDWYX5ZM.js.map → chunk-UHGWEJ24.js.map} +0 -0
- /package/dist/{client-25LF2O4P.js.map → client-VNSFNDF4.js.map} +0 -0
- /package/dist/{eas-HHMRO37P.js.map → eas-PJ3Y4NDB.js.map} +0 -0
- /package/dist/{governor-AL2XUGBE.js.map → governor-4ASVLOCI.js.map} +0 -0
- /package/dist/{ipfs-RWSTXTZM.js.map → ipfs-EJ7IHXCU.js.map} +0 -0
- /package/dist/{network-R45QDUYO.js.map → network-RI54LT2Y.js.map} +0 -0
- /package/dist/{price-QO22NF5Q.js.map → price-JX2LFKFW.js.map} +0 -0
- /package/dist/{providers-ALMXBRNW.js.map → providers-F6MNPMR4.js.map} +0 -0
- /package/dist/{research-ICDDAAGV.js.map → research-5ZJTRILJ.js.map} +0 -0
- /package/dist/{session-RSWSCMM5.js.map → session-AXLPYJHX.js.map} +0 -0
- /package/dist/{trade-YNQVWUYZ.js.map → trade-BZM7K2F4.js.map} +0 -0
- /package/dist/{vault-QKURBBSL.js.map → vault-AWQBFD4C.js.map} +0 -0
- /package/dist/{xmtp-M2OBCCNR.js.map → xmtp-M74BRF3G.js.map} +0 -0
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
BASE_STRATEGY_ABI,
|
|
3
3
|
EAS_ABI,
|
|
4
4
|
ERC20_ABI,
|
|
5
|
-
HYPERLIQUID_PERP_STRATEGY_ABI,
|
|
6
5
|
L2_REGISTRY_ABI,
|
|
7
6
|
PORTFOLIO_STRATEGY_ABI,
|
|
8
7
|
PROTOCOL_CONFIG_ABI,
|
|
@@ -16,12 +15,11 @@ import {
|
|
|
16
15
|
SYNTHRA_QUOTER_ABI,
|
|
17
16
|
UNISWAP_QUOTER_V2_ABI,
|
|
18
17
|
VENICE_STAKING_ABI
|
|
19
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XSP64L7L.js";
|
|
20
19
|
export {
|
|
21
20
|
BASE_STRATEGY_ABI,
|
|
22
21
|
EAS_ABI,
|
|
23
22
|
ERC20_ABI,
|
|
24
|
-
HYPERLIQUID_PERP_STRATEGY_ABI,
|
|
25
23
|
L2_REGISTRY_ABI,
|
|
26
24
|
PORTFOLIO_STRATEGY_ABI,
|
|
27
25
|
PROTOCOL_CONFIG_ABI,
|
|
@@ -36,4 +34,4 @@ export {
|
|
|
36
34
|
UNISWAP_QUOTER_V2_ABI,
|
|
37
35
|
VENICE_STAKING_ABI
|
|
38
36
|
};
|
|
39
|
-
//# sourceMappingURL=abis-
|
|
37
|
+
//# sourceMappingURL=abis-ZQ6I3S6L.js.map
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
isRobinhoodEquityFeed,
|
|
19
19
|
robinhoodEquityMaxAge,
|
|
20
20
|
symbolForTokenAddress
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-PMRYC6SF.js";
|
|
22
|
+
import "./chunk-3TLKNRZV.js";
|
|
23
23
|
import "./chunk-3TZIOAPH.js";
|
|
24
24
|
export {
|
|
25
25
|
AERODROME,
|
|
@@ -42,4 +42,4 @@ export {
|
|
|
42
42
|
robinhoodEquityMaxAge,
|
|
43
43
|
symbolForTokenAddress
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=addresses-
|
|
45
|
+
//# sourceMappingURL=addresses-FGJ4I4IG.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
getResearchProvider,
|
|
14
14
|
isX402WalletFunded
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UHGWEJ24.js";
|
|
16
16
|
import {
|
|
17
17
|
HyperliquidProvider,
|
|
18
18
|
calculateATR,
|
|
@@ -29,9 +29,9 @@ import {
|
|
|
29
29
|
} from "./chunk-DBOINZYU.js";
|
|
30
30
|
import {
|
|
31
31
|
chatCompletion
|
|
32
|
-
} from "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
32
|
+
} from "./chunk-6BVA4RIH.js";
|
|
33
|
+
import "./chunk-EPQR6PJ4.js";
|
|
34
|
+
import "./chunk-3TLKNRZV.js";
|
|
35
35
|
import {
|
|
36
36
|
getVeniceApiKey
|
|
37
37
|
} from "./chunk-3TZIOAPH.js";
|
|
@@ -5573,8 +5573,8 @@ var PortfolioTracker = class {
|
|
|
5573
5573
|
}
|
|
5574
5574
|
try {
|
|
5575
5575
|
const { createPublicClient, http } = await import("viem");
|
|
5576
|
-
const { getChain } = await import("./network-
|
|
5577
|
-
const { BASE_STRATEGY_ABI, SYNDICATE_VAULT_ABI } = await import("./abis-
|
|
5576
|
+
const { getChain } = await import("./network-RI54LT2Y.js");
|
|
5577
|
+
const { BASE_STRATEGY_ABI, SYNDICATE_VAULT_ABI } = await import("./abis-ZQ6I3S6L.js");
|
|
5578
5578
|
void chain;
|
|
5579
5579
|
const client = createPublicClient({
|
|
5580
5580
|
chain: getChain(),
|
|
@@ -9550,4 +9550,4 @@ function formatFearGreed(value) {
|
|
|
9550
9550
|
export {
|
|
9551
9551
|
registerAgentCommands
|
|
9552
9552
|
};
|
|
9553
|
-
//# sourceMappingURL=agent-
|
|
9553
|
+
//# sourceMappingURL=agent-QUINV725.js.map
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getFund,
|
|
3
3
|
updateMetadata
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4KJUX5SS.js";
|
|
5
5
|
import {
|
|
6
6
|
getTextRecord,
|
|
7
7
|
resolveFund,
|
|
8
8
|
setTextRecord
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-27XY2HXV.js";
|
|
10
10
|
import {
|
|
11
11
|
ENS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PMRYC6SF.js";
|
|
13
13
|
import {
|
|
14
14
|
formatContractError,
|
|
15
15
|
getAccount
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
17
|
+
import "./chunk-3TLKNRZV.js";
|
|
18
18
|
import {
|
|
19
19
|
cacheGroupId,
|
|
20
20
|
getCachedGroupId
|
|
21
21
|
} from "./chunk-3TZIOAPH.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-XSP64L7L.js";
|
|
23
23
|
import {
|
|
24
24
|
fetchMetadata,
|
|
25
25
|
uploadMetadata
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-VR4VHX4D.js";
|
|
27
27
|
|
|
28
28
|
// src/commands/chat.ts
|
|
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-M74BRF3G.js");
|
|
33
33
|
}
|
|
34
34
|
function formatTimestamp(date) {
|
|
35
35
|
return `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`;
|
|
@@ -563,4 +563,4 @@ function registerChatCommands(program) {
|
|
|
563
563
|
export {
|
|
564
564
|
registerChatCommands
|
|
565
565
|
};
|
|
566
|
-
//# sourceMappingURL=chat-
|
|
566
|
+
//# sourceMappingURL=chat-5TUHBSIA.js.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ENS,
|
|
3
3
|
SHERWOOD
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PMRYC6SF.js";
|
|
5
5
|
import {
|
|
6
6
|
getPublicClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
8
8
|
import {
|
|
9
9
|
VALID_NETWORKS,
|
|
10
10
|
withNetwork
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3TLKNRZV.js";
|
|
12
12
|
import {
|
|
13
13
|
L2_REGISTRY_ABI,
|
|
14
14
|
SYNDICATE_FACTORY_ABI
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XSP64L7L.js";
|
|
16
16
|
|
|
17
17
|
// src/lib/ens.ts
|
|
18
18
|
import { namehash } from "viem/ens";
|
|
@@ -111,4 +111,4 @@ export {
|
|
|
111
111
|
setTextRecord,
|
|
112
112
|
getTextRecord
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-27XY2HXV.js.map
|
|
@@ -19,21 +19,21 @@ var robinhoodTestnet = defineChain({
|
|
|
19
19
|
},
|
|
20
20
|
testnet: true
|
|
21
21
|
});
|
|
22
|
+
var ROBINHOOD_FORK_PUBLIC_RPC = "https://virtual.robinhood-chain.eu.rpc.tenderly.co/moonwell/wormhole-bridge/231af1";
|
|
23
|
+
var ROBINHOOD_FORK_EXPLORER = "https://dashboard.tenderly.co/explorer/vnet/6ad5961e-fbca-452f-939f-ca9a8c020933";
|
|
22
24
|
var robinhoodFork = defineChain({
|
|
23
25
|
id: 9994663,
|
|
24
26
|
name: "Robinhood Chain (fork)",
|
|
25
27
|
nativeCurrency: { name: "Ethereum", symbol: "ETH", decimals: 18 },
|
|
26
28
|
rpcUrls: {
|
|
27
29
|
default: {
|
|
28
|
-
http: [
|
|
29
|
-
"https://virtual.robinhood-chain.eu.rpc.tenderly.co/moonwell/wormhole-bridge/f4e186"
|
|
30
|
-
]
|
|
30
|
+
http: [ROBINHOOD_FORK_PUBLIC_RPC]
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
blockExplorers: {
|
|
34
34
|
default: {
|
|
35
35
|
name: "Tenderly",
|
|
36
|
-
url:
|
|
36
|
+
url: ROBINHOOD_FORK_EXPLORER
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
testnet: true
|
|
@@ -56,11 +56,10 @@ var CHAIN_REGISTRY = {
|
|
|
56
56
|
},
|
|
57
57
|
"robinhood-fork": {
|
|
58
58
|
chain: robinhoodFork,
|
|
59
|
-
rpcFallbacks: [
|
|
60
|
-
"https://virtual.robinhood-chain.eu.rpc.tenderly.co/moonwell/wormhole-bridge/f4e186"
|
|
61
|
-
],
|
|
59
|
+
rpcFallbacks: [ROBINHOOD_FORK_PUBLIC_RPC],
|
|
62
60
|
rpcEnvVar: "ROBINHOOD_FORK_RPC_URL",
|
|
63
61
|
explorerHost: "dashboard.tenderly.co",
|
|
62
|
+
explorerBaseUrl: ROBINHOOD_FORK_EXPLORER,
|
|
64
63
|
easGraphqlUrl: null,
|
|
65
64
|
easScanHost: null,
|
|
66
65
|
xmtpEnv: "production",
|
|
@@ -128,7 +127,9 @@ function getRpcUrl() {
|
|
|
128
127
|
return getRpcUrls()[0];
|
|
129
128
|
}
|
|
130
129
|
function getExplorerUrl(txHash) {
|
|
131
|
-
|
|
130
|
+
const cfg = CHAIN_REGISTRY[_network];
|
|
131
|
+
const base = cfg.explorerBaseUrl ?? `https://${cfg.explorerHost}`;
|
|
132
|
+
return `${base}/tx/${txHash}`;
|
|
132
133
|
}
|
|
133
134
|
function isTestnet() {
|
|
134
135
|
return CHAIN_REGISTRY[_network].isTestnet;
|
|
@@ -153,4 +154,4 @@ export {
|
|
|
153
154
|
getExplorerUrl,
|
|
154
155
|
isTestnet
|
|
155
156
|
};
|
|
156
|
-
//# sourceMappingURL=chunk-
|
|
157
|
+
//# sourceMappingURL=chunk-3TLKNRZV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/network.ts"],"sourcesContent":["/**\n * Network state singleton.\n *\n * Called once at CLI startup via the --chain flag's preAction hook.\n * Every other module reads from here — never hardcodes a chain.\n *\n * Current deployment target: Robinhood L2 testnet (chain 46630) only. Sherwood\n * launches on Robinhood first; other chains may be added back later, at which\n * point they re-enter the Network union + CHAIN_REGISTRY below.\n */\n\nimport { type Chain, defineChain, parseEther } from \"viem\";\nimport { getConfigRpcUrl } from \"./config.js\";\n\n// ── Robinhood L2 Testnet (Arbitrum Orbit, chain ID 46630) ──\n\nexport const robinhoodTestnet = defineChain({\n id: 46630,\n name: \"Robinhood Chain Testnet\",\n nativeCurrency: { name: \"Ethereum\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: { http: [\"https://rpc.testnet.chain.robinhood.com\"] },\n },\n blockExplorers: {\n default: {\n name: \"Blockscout\",\n url: \"https://explorer.testnet.chain.robinhood.com\",\n },\n },\n testnet: true,\n});\n\n// ── Robinhood Chain mainnet fork (Tenderly Virtual TestNet, chain ID 9994663) ──\n//\n// A fork of Robinhood Chain *mainnet* (USDG stablecoin, official Uniswap v3+v4,\n// Chainlink push feeds, tokenized-stock liquidity). Used for mainnet-faithful\n// e2e + guardian-network simulations. Ephemeral: Tenderly vnets expire — the RPC\n// is overridable via ROBINHOOD_FORK_RPC_URL when a new vnet is minted.\n\n/**\n * The PUBLIC RPC endpoint of vnet `a3fb16`\n * (id 6ad5961e-fbca-452f-939f-ca9a8c020933) — safe to bundle and to hand to\n * users: it serves reads and accepts broadcast txs, but exposes no\n * state-cheat surface.\n *\n * Admin/cheat calls (`tenderly_setBalance`, `tenderly_setStorageAt`,\n * `evm_increaseTime`, …) need that vnet's *admin* RPC, which is private —\n * pull it from the Tenderly dashboard and pass it via ROBINHOOD_FORK_RPC_URL.\n *\n * Two vnets answer to chain id 9994663; block height is the tell — the live\n * one is past block 21,170,000, the stale one forked at ~4.4M.\n */\nconst ROBINHOOD_FORK_PUBLIC_RPC =\n \"https://virtual.robinhood-chain.eu.rpc.tenderly.co/moonwell/wormhole-bridge/231af1\";\n\n/**\n * Tenderly scopes a vnet explorer under its vnet id — the bare\n * `dashboard.tenderly.co` host resolves to the user's own dashboard, not to\n * this fork's blocks, so tx/address links must carry the full prefix.\n */\nconst ROBINHOOD_FORK_EXPLORER =\n \"https://dashboard.tenderly.co/explorer/vnet/6ad5961e-fbca-452f-939f-ca9a8c020933\";\n\nexport const robinhoodFork = defineChain({\n id: 9994663,\n name: \"Robinhood Chain (fork)\",\n nativeCurrency: { name: \"Ethereum\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [ROBINHOOD_FORK_PUBLIC_RPC],\n },\n },\n blockExplorers: {\n default: {\n name: \"Tenderly\",\n url: ROBINHOOD_FORK_EXPLORER,\n },\n },\n testnet: true,\n});\n\n// ── Types ──\n\nexport type Network = \"robinhood-testnet\" | \"robinhood-fork\";\n\nexport interface ChainConfig {\n chain: Chain;\n /**\n * Ordered list of public RPC URLs tried in sequence when no user RPC is set.\n * First entry is the primary; the rest are fallbacks used transparently via\n * viem's `fallback` transport on rate-limit / network errors.\n */\n rpcFallbacks: string[];\n /** Legacy env var for backwards compat (optional per chain) */\n rpcEnvVar?: string;\n explorerHost: string;\n /**\n * Full URL prefix for explorer links, when the explorer is not rooted at\n * `https://${explorerHost}` — a Tenderly vnet scopes its blocks under\n * `/explorer/vnet/<id>`. Defaults to `https://${explorerHost}`.\n */\n explorerBaseUrl?: string;\n /** EAS GraphQL endpoint — null if EAS is not available on this chain */\n easGraphqlUrl: string | null;\n /** EAS scan host — null if unavailable */\n easScanHost: string | null;\n xmtpEnv: \"production\" | \"dev\";\n isTestnet: boolean;\n /**\n * ETH held back for gas in the native-ETH-wrap deposit path — the floor and\n * fallback for the live per-tx cushion estimate (`estimateGasCushion` in\n * client.ts), NOT a fixed requirement. High-fee chains (Base) want a\n * Base-scale reserve; near-zero-fee chains (Robinhood testnet, ~14-wei base\n * fee) want a tiny one so a valid deposit isn't rejected client-side. Unset →\n * `DEFAULT_MIN_GAS_RESERVE`.\n */\n minGasReserve?: bigint;\n}\n\n/**\n * Base-scale default reserve, used when a chain omits `minGasReserve`. Matches\n * the old hardcoded 0.0005-ETH cushion so higher-fee chains keep prior behavior.\n */\nexport const DEFAULT_MIN_GAS_RESERVE = parseEther(\"0.0005\");\n\n// ── Chain Registry ──\n\nexport const CHAIN_REGISTRY: Record<Network, ChainConfig> = {\n \"robinhood-testnet\": {\n chain: robinhoodTestnet,\n rpcFallbacks: [\"https://rpc.testnet.chain.robinhood.com\"],\n rpcEnvVar: \"ROBINHOOD_TESTNET_RPC_URL\",\n explorerHost: \"explorer.testnet.chain.robinhood.com\",\n easGraphqlUrl: null,\n easScanHost: null,\n xmtpEnv: \"production\",\n isTestnet: true,\n // ~14-wei base fee: a full wrap+approve+deposit sequence costs a few\n // million wei (~1e-11 ETH). 0.00002 ETH is a generous floor that still\n // leaves a 0.00058-ETH wallet room to wrap 0.0005 and deposit.\n minGasReserve: parseEther(\"0.00002\"),\n },\n \"robinhood-fork\": {\n chain: robinhoodFork,\n rpcFallbacks: [ROBINHOOD_FORK_PUBLIC_RPC],\n rpcEnvVar: \"ROBINHOOD_FORK_RPC_URL\",\n explorerHost: \"dashboard.tenderly.co\",\n explorerBaseUrl: ROBINHOOD_FORK_EXPLORER,\n easGraphqlUrl: null,\n easScanHost: null,\n xmtpEnv: \"production\",\n isTestnet: true,\n // Robinhood-mainnet-fork gas (~0.17 gwei) is higher than testnet's ~14 wei —\n // keep a modest reserve so the ETH-wrap deposit path isn't rejected.\n minGasReserve: parseEther(\"0.0005\"),\n },\n};\n\nexport const VALID_NETWORKS = Object.keys(CHAIN_REGISTRY) as Network[];\n\nexport const DEFAULT_NETWORK: Network = \"robinhood-testnet\";\n\n// ── Singleton state ──\n\nlet _network: Network = DEFAULT_NETWORK;\n\nexport function setNetwork(n: Network) {\n const config = CHAIN_REGISTRY[n];\n if (!config) {\n throw new Error(\n `Unknown network: ${n}. Valid: ${VALID_NETWORKS.join(\", \")}`,\n );\n }\n _network = n;\n}\n\nexport function getNetwork(): Network {\n return _network;\n}\n\n/**\n * Run `fn` with the network singleton temporarily switched to `network`,\n * restoring the previous network in `finally`.\n *\n * The viem clients (`getPublicClient`, `getWalletClient`) auto-invalidate on\n * chain change, so callers get fresh per-chain RPC + chain context inside the\n * block. Used for cross-chain fund resolution.\n */\nexport async function withNetwork<T>(\n network: Network,\n fn: () => Promise<T>,\n): Promise<T> {\n const previous = _network;\n _network = network;\n try {\n return await fn();\n } finally {\n _network = previous;\n }\n}\n\nexport function getChainConfig(): ChainConfig {\n return CHAIN_REGISTRY[_network];\n}\n\n/**\n * Per-chain ETH gas reserve floor/fallback for the ETH-wrap deposit path.\n * Falls back to the Base-scale default when the active chain doesn't set one.\n */\nexport function getMinGasReserve(): bigint {\n return CHAIN_REGISTRY[_network].minGasReserve ?? DEFAULT_MIN_GAS_RESERVE;\n}\n\n/**\n * Dev/CI-only chain-id override (`SIM_CHAIN_ID`) for custom-chainId vnet forks.\n * viem asserts the node's chainId matches the chain definition on every write,\n * so signing for such a fork requires the id to be swapped at the source.\n *\n * Interlock: honored ONLY while `SIM_ADDRESSES_FILE` is also set (the vnet\n * e2e harness's address override). A bare SIM_CHAIN_ID does nothing, so this\n * can never redirect signing on a real network run.\n */\nexport function applyChainIdOverride(chain: Chain): Chain {\n const raw = process.env.SIM_CHAIN_ID;\n if (!raw || !process.env.SIM_ADDRESSES_FILE) return chain;\n const id = Number(raw);\n if (!Number.isInteger(id) || id <= 0) return chain;\n return { ...chain, id };\n}\n\nexport function getChain(): Chain {\n return applyChainIdOverride(CHAIN_REGISTRY[_network].chain);\n}\n\n/**\n * Ordered list of RPC URLs to try, deduped:\n * 1. User config (~/.sherwood/config.json) — honored first\n * 2. Legacy env var (ROBINHOOD_TESTNET_RPC_URL)\n * 3. Public fallback list from CHAIN_REGISTRY\n *\n * Fed to viem's `fallback()` transport so rate-limited RPCs transparently\n * advance to the next entry. See issue #182.\n */\nexport function getRpcUrls(): string[] {\n const cfg = CHAIN_REGISTRY[_network];\n const urls: string[] = [];\n\n const fromConfig = getConfigRpcUrl(_network);\n if (fromConfig) urls.push(fromConfig);\n\n if (cfg.rpcEnvVar && process.env[cfg.rpcEnvVar]) {\n urls.push(process.env[cfg.rpcEnvVar]!);\n }\n\n // Vnet harness (SIM_CHAIN_ID + SIM_ADDRESSES_FILE interlock): the fork RPC\n // is the ONLY valid endpoint — the public fallbacks point at the real\n // network. viem's fallback() otherwise rotates there on a vnet hiccup and\n // silently estimates gas/fees against MAINNET state (live finding: an\n // approve estimated at 21.9k gas on mainnet — no code at that address —\n // reverted out-of-gas on the vnet where it needs ~46k). A vnet call must\n // fail loudly, never retarget the real chain.\n if (process.env.SIM_CHAIN_ID && process.env.SIM_ADDRESSES_FILE && urls.length > 0) {\n return Array.from(new Set(urls));\n }\n\n urls.push(...cfg.rpcFallbacks);\n\n return Array.from(new Set(urls));\n}\n\nexport function getRpcUrl(): string {\n return getRpcUrls()[0];\n}\n\nexport function getExplorerUrl(txHash: string): string {\n const cfg = CHAIN_REGISTRY[_network];\n const base = cfg.explorerBaseUrl ?? `https://${cfg.explorerHost}`;\n return `${base}/tx/${txHash}`;\n}\n\nexport function isTestnet(): boolean {\n return CHAIN_REGISTRY[_network].isTestnet;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SHERWOOD
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PMRYC6SF.js";
|
|
4
4
|
import {
|
|
5
5
|
getAccount,
|
|
6
6
|
getPublicClient,
|
|
7
7
|
waitForReceipt,
|
|
8
8
|
writeContractWithRetry
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
10
10
|
import {
|
|
11
11
|
getChain
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3TLKNRZV.js";
|
|
13
13
|
import {
|
|
14
14
|
SYNDICATE_FACTORY_ABI
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XSP64L7L.js";
|
|
16
16
|
|
|
17
17
|
// src/lib/factory.ts
|
|
18
18
|
import { decodeEventLog } from "viem";
|
|
@@ -144,4 +144,4 @@ export {
|
|
|
144
144
|
getActiveFunds,
|
|
145
145
|
updateMetadata
|
|
146
146
|
};
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-4KJUX5SS.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EAS_CONTRACTS,
|
|
3
3
|
EAS_SCHEMAS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PMRYC6SF.js";
|
|
5
5
|
import {
|
|
6
6
|
getAccount,
|
|
7
7
|
getPublicClient,
|
|
8
8
|
waitForReceipt,
|
|
9
9
|
writeContractWithRetry
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
11
11
|
import {
|
|
12
12
|
CHAIN_REGISTRY,
|
|
13
13
|
getChain,
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
getNetwork,
|
|
16
16
|
isTestnet,
|
|
17
17
|
withNetwork
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-3TLKNRZV.js";
|
|
19
19
|
import {
|
|
20
20
|
EAS_ABI
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-XSP64L7L.js";
|
|
22
22
|
|
|
23
23
|
// src/lib/eas.ts
|
|
24
24
|
import { encodeAbiParameters, parseAbiParameters, decodeAbiParameters } from "viem";
|
|
@@ -453,4 +453,4 @@ export {
|
|
|
453
453
|
queryApprovals,
|
|
454
454
|
queryJoinRequests
|
|
455
455
|
};
|
|
456
|
-
//# sourceMappingURL=chunk-
|
|
456
|
+
//# sourceMappingURL=chunk-54CLRBPB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getAccount
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
4
4
|
import {
|
|
5
5
|
getVeniceApiKey,
|
|
6
6
|
setVeniceApiKey
|
|
@@ -186,4 +186,4 @@ export {
|
|
|
186
186
|
chatCompletion,
|
|
187
187
|
listModels
|
|
188
188
|
};
|
|
189
|
-
//# sourceMappingURL=chunk-
|
|
189
|
+
//# sourceMappingURL=chunk-6BVA4RIH.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PROPOSAL_STATES,
|
|
3
3
|
getProposal
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Y6XOH23Y.js";
|
|
5
5
|
import {
|
|
6
6
|
getPublicClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EPQR6PJ4.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveMetadataSummary
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VR4VHX4D.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/events.ts
|
|
13
13
|
import { parseAbiItem } from "viem";
|
|
@@ -170,4 +170,4 @@ export {
|
|
|
170
170
|
getCurrentBlock,
|
|
171
171
|
enrichProposalEvents
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-76DLC7CM.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
getChain,
|
|
3
3
|
getMinGasReserve,
|
|
4
4
|
getRpcUrls
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3TLKNRZV.js";
|
|
6
6
|
import {
|
|
7
7
|
requirePrivateKey
|
|
8
8
|
} from "./chunk-3TZIOAPH.js";
|
|
@@ -524,4 +524,4 @@ export {
|
|
|
524
524
|
writeContractWithRetry,
|
|
525
525
|
waitForReceipt
|
|
526
526
|
};
|
|
527
|
-
//# sourceMappingURL=chunk-
|
|
527
|
+
//# sourceMappingURL=chunk-EPQR6PJ4.js.map
|