@temporalabs/treasury 0.1.2 → 0.1.3
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/README.md +44 -12
- package/THIRD_PARTY_NOTICES.connect-page.md +416 -0
- package/THIRD_PARTY_NOTICES.md +575 -2
- package/dist/cli.js +28 -5
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +149 -7
- package/dist/client.js +66 -11
- package/dist/client.js.map +1 -1
- package/dist/config/earn.d.ts +16 -1
- package/dist/config/earn.js +16 -1
- package/dist/config/earn.js.map +1 -1
- package/dist/connect/ack.d.ts +18 -1
- package/dist/connect/ack.js +42 -6
- package/dist/connect/ack.js.map +1 -1
- package/dist/connect/commands.d.ts +3 -0
- package/dist/connect/commands.js +168 -24
- package/dist/connect/commands.js.map +1 -1
- package/dist/connect/config.d.ts +7 -5
- package/dist/connect/config.js +8 -6
- package/dist/connect/config.js.map +1 -1
- package/dist/connect/gate-solana.d.ts +8 -0
- package/dist/connect/gate-solana.js +147 -0
- package/dist/connect/gate-solana.js.map +1 -0
- package/dist/connect/http.d.ts +7 -1
- package/dist/connect/http.js +41 -11
- package/dist/connect/http.js.map +1 -1
- package/dist/connect/page.d.ts +1 -1
- package/dist/connect/page.js +2 -2
- package/dist/connect/page.js.map +1 -1
- package/dist/connect/session.d.ts +23 -0
- package/dist/connect/session.js +126 -1
- package/dist/connect/session.js.map +1 -1
- package/dist/connect/solana.d.ts +73 -0
- package/dist/connect/solana.js +267 -0
- package/dist/connect/solana.js.map +1 -0
- package/dist/connect-page.js +604 -602
- package/dist/disclosures.d.ts +5 -4
- package/dist/disclosures.js +5 -4
- package/dist/disclosures.js.map +1 -1
- package/dist/earn/commands.js +127 -54
- package/dist/earn/commands.js.map +1 -1
- package/dist/earn/solana.d.ts +278 -0
- package/dist/earn/solana.js +302 -0
- package/dist/earn/solana.js.map +1 -0
- package/dist/guide.d.ts +15 -0
- package/dist/guide.js +50 -0
- package/dist/guide.js.map +1 -0
- package/dist/links.js +2 -0
- package/dist/links.js.map +1 -1
- package/dist/position.d.ts +3 -2
- package/dist/position.js +6 -3
- package/dist/position.js.map +1 -1
- package/dist/quote.js +2 -2
- package/dist/quote.js.map +1 -1
- package/dist/registry-schema.d.ts +79 -2
- package/dist/registry-schema.js +77 -1
- package/dist/registry-schema.js.map +1 -1
- package/dist/registry.d.ts +21 -1
- package/dist/registry.js +48 -10
- package/dist/registry.js.map +1 -1
- package/dist/solana/constants.d.ts +49 -0
- package/dist/solana/constants.js +50 -0
- package/dist/solana/constants.js.map +1 -0
- package/dist/solana/kvault.d.ts +99 -0
- package/dist/solana/kvault.js +192 -0
- package/dist/solana/kvault.js.map +1 -0
- package/dist/solana/layout.d.ts +143 -0
- package/dist/solana/layout.js +209 -0
- package/dist/solana/layout.js.map +1 -0
- package/dist/solana/rpc.d.ts +24 -0
- package/dist/solana/rpc.js +66 -0
- package/dist/solana/rpc.js.map +1 -0
- package/dist/solana/vault.d.ts +153 -0
- package/dist/solana/vault.js +324 -0
- package/dist/solana/vault.js.map +1 -0
- package/dist/treasury.mjs +8123 -1082
- package/dist/version.js +5 -10
- package/dist/version.js.map +1 -1
- package/llms.txt +621 -0
- package/package.json +9 -6
- package/registry/vaults.json +113 -0
package/dist/disclosures.d.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* An agent skill IS a distribution surface, so `earn_terms` returns these verbatim and the
|
|
4
4
|
* skill instructs the agent to show them and get an explicit acknowledgement before building a
|
|
5
5
|
* first deposit. They are written for the vaults this registry actually offers — Tempora Labs test
|
|
6
|
-
* vaults on ERC-4626 chassis
|
|
7
|
-
* those, not of a fund that has not launched. Change them when the offering changes,
|
|
6
|
+
* vaults on ERC-4626 chassis on Base, Arbitrum One, Robinhood Chain, Ethereum and Monad, and a Kamino
|
|
7
|
+
* vault on Solana — and say what is true of those, not of a fund that has not launched. Change them when the offering changes,
|
|
8
|
+
* and nowhere else.
|
|
8
9
|
*/
|
|
9
10
|
export declare const DISCLOSURES: {
|
|
10
|
-
readonly source: "Agent Treasury — pre-deposit disclosures, 2026-09-15 (wording revised 2026-10-04: Tempora Labs named in full)";
|
|
11
|
+
readonly source: "Agent Treasury — pre-deposit disclosures, 2026-09-15 (wording revised 2026-10-04: Tempora Labs named in full; 2026-10-12: withdrawals subject to liquidity, and the Solana co-signer)";
|
|
11
12
|
readonly presentBefore: "the depositor's first deposit, on every distribution surface";
|
|
12
|
-
readonly items: readonly ["EVERY VAULT THIS CLIENT OFFERS TODAY IS A TEST VAULT — unproven, and named as such on-chain. They exist to exercise the product, not to hold savings. Deposit only an amount you are fully prepared to lose entirely, and do not move significant funds into one.", "This is a smart-contract vault, not a bank deposit. No deposit insurance of any kind applies.", "The share token's value is a function of the vault's underlying holdings and is not guaranteed. It can go down.", "The vault holds positions in third-party protocols, each of which carries smart-contract, custody, and mechanism risk that Tempora Labs does not control.", "Any yield figure is a measurement over a past window, not a promise. Historical performance is not indicative of future results.", "A withdrawal is served from the vault's liquid balance and then by unwinding its positions. In stressed conditions part of a position may not be withdrawable immediately; earn_balance reports what is exitable now, simulated at the current block.", "Deposits into a whitelist-gated vault are accepted only from accounts the fund has admitted. Withdrawals are
|
|
13
|
+
readonly items: readonly ["EVERY VAULT THIS CLIENT OFFERS TODAY IS A TEST VAULT — unproven, and named as such on-chain. They exist to exercise the product, not to hold savings. Deposit only an amount you are fully prepared to lose entirely, and do not move significant funds into one.", "This is a smart-contract vault, not a bank deposit. No deposit insurance of any kind applies.", "The share token's value is a function of the vault's underlying holdings and is not guaranteed. It can go down.", "The vault holds positions in third-party protocols, each of which carries smart-contract, custody, and mechanism risk that Tempora Labs does not control.", "Any yield figure is a measurement over a past window, not a promise. Historical performance is not indicative of future results.", "A withdrawal is served from the vault's liquid balance and then by unwinding its positions. In stressed conditions part of a position may not be withdrawable immediately; earn_balance reports what is exitable now, simulated at the current block.", "Deposits into a whitelist-gated vault are accepted only from accounts the fund has admitted. Withdrawals are not gated: an account that holds shares can leave, subject to the vault's liquidity. On Solana, Kamino's program can require a co-signer on every withdrawal, which would stop exits until it co-signs; none is required today.", "The vault's current holdings, weights and fees are on-chain and publicly readable at the vault's address.", "Each default vault, and the demo vault, is a destination curated by Tempora Labs. Tempora Labs can set fees on it as curator (a management fee and a performance fee, both readable on-chain; check them before depositing). This client offers it because it is a Tempora Labs vault, not because it is the best-yielding vault available."];
|
|
13
14
|
readonly clientNotes: readonly ["This client never signs, sends, or moves funds. Every transaction is signed by the operator's own wallet (through `connect`) or the operator's own signer, and the operator is responsible for what it signs.", "Geography: the operator is responsible for the depositor's eligibility in its own jurisdiction. This client has no geographic signal and makes no representation about eligibility."];
|
|
14
15
|
/**
|
|
15
16
|
* The same points in plain words, for the acknowledgement an operator reads before every signing
|
package/dist/disclosures.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* An agent skill IS a distribution surface, so `earn_terms` returns these verbatim and the
|
|
4
4
|
* skill instructs the agent to show them and get an explicit acknowledgement before building a
|
|
5
5
|
* first deposit. They are written for the vaults this registry actually offers — Tempora Labs test
|
|
6
|
-
* vaults on ERC-4626 chassis
|
|
7
|
-
* those, not of a fund that has not launched. Change them when the offering changes,
|
|
6
|
+
* vaults on ERC-4626 chassis on Base, Arbitrum One, Robinhood Chain, Ethereum and Monad, and a Kamino
|
|
7
|
+
* vault on Solana — and say what is true of those, not of a fund that has not launched. Change them when the offering changes,
|
|
8
|
+
* and nowhere else.
|
|
8
9
|
*/
|
|
9
10
|
export const DISCLOSURES = {
|
|
10
|
-
source: "Agent Treasury — pre-deposit disclosures, 2026-09-15 (wording revised 2026-10-04: Tempora Labs named in full)",
|
|
11
|
+
source: "Agent Treasury — pre-deposit disclosures, 2026-09-15 (wording revised 2026-10-04: Tempora Labs named in full; 2026-10-12: withdrawals subject to liquidity, and the Solana co-signer)",
|
|
11
12
|
presentBefore: "the depositor's first deposit, on every distribution surface",
|
|
12
13
|
items: [
|
|
13
14
|
"EVERY VAULT THIS CLIENT OFFERS TODAY IS A TEST VAULT — unproven, and named as such on-chain. They exist to exercise the product, not to hold savings. Deposit only an amount you are fully prepared to lose entirely, and do not move significant funds into one.",
|
|
@@ -16,7 +17,7 @@ export const DISCLOSURES = {
|
|
|
16
17
|
"The vault holds positions in third-party protocols, each of which carries smart-contract, custody, and mechanism risk that Tempora Labs does not control.",
|
|
17
18
|
"Any yield figure is a measurement over a past window, not a promise. Historical performance is not indicative of future results.",
|
|
18
19
|
"A withdrawal is served from the vault's liquid balance and then by unwinding its positions. In stressed conditions part of a position may not be withdrawable immediately; earn_balance reports what is exitable now, simulated at the current block.",
|
|
19
|
-
"Deposits into a whitelist-gated vault are accepted only from accounts the fund has admitted. Withdrawals are
|
|
20
|
+
"Deposits into a whitelist-gated vault are accepted only from accounts the fund has admitted. Withdrawals are not gated: an account that holds shares can leave, subject to the vault's liquidity. On Solana, Kamino's program can require a co-signer on every withdrawal, which would stop exits until it co-signs; none is required today.",
|
|
20
21
|
"The vault's current holdings, weights and fees are on-chain and publicly readable at the vault's address.",
|
|
21
22
|
"Each default vault, and the demo vault, is a destination curated by Tempora Labs. Tempora Labs can set fees on it as curator (a management fee and a performance fee, both readable on-chain; check them before depositing). This client offers it because it is a Tempora Labs vault, not because it is the best-yielding vault available.",
|
|
22
23
|
],
|
package/dist/disclosures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disclosures.js","sourceRoot":"","sources":["../src/disclosures.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"disclosures.js","sourceRoot":"","sources":["../src/disclosures.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,uLAAuL;IAC/L,aAAa,EAAE,8DAA8D;IAC7E,KAAK,EAAE;QACL,mQAAmQ;QACnQ,+FAA+F;QAC/F,iHAAiH;QACjH,2JAA2J;QAC3J,kIAAkI;QAClI,uPAAuP;QACvP,8UAA8U;QAC9U,2GAA2G;QAC3G,6UAA6U;KAC9U;IACD,WAAW,EAAE;QACX,+MAA+M;QAC/M,qLAAqL;KACtL;IACD;;;;;;;OAOG;IACH,KAAK,EAAE;QACL,OAAO,EAAE;YACP,gEAAgE;YAChE,6DAA6D;YAC7D,+FAA+F;YAC/F,uDAAuD;YACvD,2FAA2F;YAC3F,oLAAoL;SACrL;QACD,2FAA2F;QAC3F,YAAY,EAAE,uHAAuH;QACrI,MAAM,EAAE;YACN,gJAAgJ;YAChJ,mEAAmE;SACpE;QACD,SAAS,EAAE,gDAAgD;KAC5D;CACO,CAAC"}
|
package/dist/earn/commands.js
CHANGED
|
@@ -30,8 +30,11 @@
|
|
|
30
30
|
import { z } from "zod";
|
|
31
31
|
import { redactEndpoints, registerSecretSource } from "../redact.js";
|
|
32
32
|
import { isAddress, getAddress } from "viem";
|
|
33
|
+
import { solanaPublicRpcHint } from "../client.js";
|
|
34
|
+
import { isAddress as isSolanaAddress } from "@solana/kit";
|
|
35
|
+
import { onSolana, solanaBalance, solanaHealth, solanaPrepareDeposit, solanaPrepareWithdraw, solanaPreflight, solanaQuoteDeposit, solanaQuoteWithdraw, solanaVaultRow } from "./solana.js";
|
|
33
36
|
import { CHAIN_INFO, isSupportedChainId, makePublicClient, rpcUrlFromEnv, logsRpcUrlFromEnv, rpcSourceForEnv, logsRpcSourceForEnv, resolvedRpcSecrets, publicRpcHint, logsFallbackUrlFromEnv, endpointChainId, firstEndpointOnWrongChain, supportedChainIds } from "../client.js";
|
|
34
|
-
import { defaultChainId, defaultVault, depositableVaults, listVaults, loadRegistry, offeredChains, resolveVault } from "../registry.js";
|
|
37
|
+
import { defaultChainId, defaultVault, depositableSolanaVaults, depositableVaults, listSolanaVaults, listVaults, loadRegistry, offeredChainKeys, offeredChains, resolveAnyVault, resolveVault } from "../registry.js";
|
|
35
38
|
import { linksFor } from "../links.js";
|
|
36
39
|
import { PACKAGE_VERSION } from "../version.js";
|
|
37
40
|
import { preflightDeposit } from "../preflight.js";
|
|
@@ -39,12 +42,20 @@ import { getPosition } from "../position.js";
|
|
|
39
42
|
import { quoteDeposit, quoteWithdraw } from "../quote.js";
|
|
40
43
|
import { buildDeposit, buildWithdraw } from "../build.js";
|
|
41
44
|
import { DISCLOSURES } from "../disclosures.js";
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* An address, in either family's form: `0x…` for a vault on an EVM chain, base58 for a vault on Solana. Which
|
|
47
|
+
* one a command needs depends on the vault, which is resolved after the arguments parse, so each handler checks
|
|
48
|
+
* the family it got (`evm` below, `solanaAccount` in ./solana.ts) and refuses the other.
|
|
49
|
+
*/
|
|
50
|
+
const addressArg = z.string().refine((s) => isAddress(s) || isSolanaAddress(s), "must be an EVM address (0x…), or a Solana address for a vault on Solana");
|
|
51
|
+
/** The EVM form of an address argument, checksummed; a Solana address here is refused, naming the slot. */
|
|
52
|
+
function evm(v, what) {
|
|
53
|
+
if (!isAddress(v))
|
|
54
|
+
throw new Error(`${what} must be an EVM address (0x…) for a vault on an EVM chain; got ${v}`);
|
|
55
|
+
return getAddress(v);
|
|
56
|
+
}
|
|
46
57
|
const amountArg = z.string().regex(/^\d+(\.\d+)?$/, 'plain decimal amount of the vault\'s asset (USDC; USDG on Robinhood Chain), e.g. "25" or "12.5"');
|
|
47
|
-
const vaultArg = z.string().optional().describe("the vault's
|
|
58
|
+
const vaultArg = z.string().optional().describe("the vault's ticker, e.g. tlCashPlusUSDC2 (`earn vaults` lists them); omit for the default vault of `chain`, or of the default chain when `chain` is omitted too");
|
|
48
59
|
const accountArg = addressArg.describe("the account whose shares these are — the depositor, the owner, the holder");
|
|
49
60
|
/**
|
|
50
61
|
* `chain`, as every vault-taking tool accepts it: one of the chains that have a vault in the
|
|
@@ -64,7 +75,7 @@ const accountArg = addressArg.describe("the account whose shares these are — t
|
|
|
64
75
|
const chainArg = () => {
|
|
65
76
|
let offered;
|
|
66
77
|
try {
|
|
67
|
-
offered =
|
|
78
|
+
offered = offeredChainKeys();
|
|
68
79
|
}
|
|
69
80
|
catch {
|
|
70
81
|
offered = supportedChainIds.map((id) => CHAIN_INFO[id].key);
|
|
@@ -125,14 +136,20 @@ const onChain = (vault) => ({ chain: CHAIN_INFO[vault.chainId].key, chainId: vau
|
|
|
125
136
|
function hintChain(args) {
|
|
126
137
|
try {
|
|
127
138
|
const a = (args ?? {});
|
|
128
|
-
|
|
139
|
+
const t = resolveAnyVault(typeof a.vault === "string" ? a.vault : undefined, typeof a.chain === "string" ? a.chain : undefined);
|
|
140
|
+
return t.family === "solana" ? "solana" : t.vault.chainId;
|
|
129
141
|
}
|
|
130
142
|
catch {
|
|
131
143
|
return defaultChainId();
|
|
132
144
|
}
|
|
133
145
|
}
|
|
134
|
-
/**
|
|
135
|
-
const
|
|
146
|
+
/** The setup sentence for a transport failure on the chain's unconfigured public endpoint. */
|
|
147
|
+
const hintFor = (chain) => (chain === "solana" ? solanaPublicRpcHint() : publicRpcHint(chain));
|
|
148
|
+
/**
|
|
149
|
+
* Shapes that mean "the transport failed", as opposed to a verdict about the vault. `HTTP error (429)` and
|
|
150
|
+
* `HTTP error (5xx)` are how the Solana client reports a rate limit or a failing endpoint.
|
|
151
|
+
*/
|
|
152
|
+
const RPC_FAILURE = /RPC Request failed|HTTP request failed|HTTP error \((?:429|5\d\d)\)|reads failed|over rate limit|rate.?limit|"unreachable"|fetch failed|ETIMEDOUT|ECONNREFUSED/i;
|
|
136
153
|
/**
|
|
137
154
|
* Serialise a tool result, and when the payload shows a TRANSPORT failure while no RPC is
|
|
138
155
|
* configured, attach the one sentence that turns "this is broken" into "set this variable".
|
|
@@ -141,7 +158,7 @@ const RPC_FAILURE = /RPC Request failed|HTTP request failed|reads failed|over ra
|
|
|
141
158
|
const text = (v, chainId = defaultChainId()) => {
|
|
142
159
|
let body = typeof v === "string" ? v : JSON.stringify(v, null, 2);
|
|
143
160
|
if (RPC_FAILURE.test(body)) {
|
|
144
|
-
const hint =
|
|
161
|
+
const hint = hintFor(chainId);
|
|
145
162
|
if (hint) {
|
|
146
163
|
body =
|
|
147
164
|
typeof v === "string"
|
|
@@ -213,7 +230,7 @@ const guarded = (fn) => async (...a) => {
|
|
|
213
230
|
const msg = e instanceof Error ? e.message : String(e);
|
|
214
231
|
const redacted = redactEndpoints(msg);
|
|
215
232
|
// A thrown transport error on the public endpoint gets the same sentence a returned one does.
|
|
216
|
-
const hint = RPC_FAILURE.test(redacted) ?
|
|
233
|
+
const hint = RPC_FAILURE.test(redacted) ? hintFor(hintChain(a[0])) : undefined;
|
|
217
234
|
throw new Error(hint ? `${redacted}\n\n${hint}` : redacted);
|
|
218
235
|
}
|
|
219
236
|
};
|
|
@@ -230,7 +247,7 @@ export function buildCommands() {
|
|
|
230
247
|
const chain = chainArg();
|
|
231
248
|
register("earn_vaults", {
|
|
232
249
|
title: "List vaults",
|
|
233
|
-
description: "Every vault in the registry, on every chain. `symbol` is the vault's own on-chain ERC-20 ticker — the value every other tool takes as `vault
|
|
250
|
+
description: "Every vault in the registry, on every chain. `symbol` is the vault's ticker — its own on-chain ERC-20 ticker on the EVM chains, one the registry assigns on Solana — the value every other tool takes as `vault`, and `name` its name; `chain` is the chain it is on, the value every other tool takes as `chain`; `links` are openable without any RPC endpoint, so an operator can verify the contract independently. SHOW `warning` TO THE DEPOSITOR — every vault offered today is a test vault. Each row also carries its backend, chassis, decimals and MEASURED deposit-open status. `chains` lists the chains a deposit can go to, the default chain first, each with its own default vault: if the operator has not said which chain, show them these and ASK before preparing a deposit. `default` is used when a tool is called with neither `vault` nor `chain`, and is on `defaultChain`; `depositable` is the subset any account can put money into today, across all chains: an ERC-4626 chassis (or the Kamino vault on Solana) + measured open. `defaultAccess` says whether a default takes deposits from any account (`open`) or only whitelisted ones (`whitelist`); for `whitelist`, run `earn status` for the account before preparing a deposit.",
|
|
234
251
|
inputSchema: {},
|
|
235
252
|
}, guarded(async () => {
|
|
236
253
|
const reg = loadRegistry();
|
|
@@ -239,34 +256,52 @@ export function buildCommands() {
|
|
|
239
256
|
defaultChain: CHAIN_INFO[defaultChainId()].key,
|
|
240
257
|
default: defaultVault().symbol,
|
|
241
258
|
defaultAccess: defaultVault().depositOpen.open ? "open" : "whitelist",
|
|
242
|
-
depositable: depositableVaults().map((v) => v.symbol),
|
|
243
|
-
chains:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
259
|
+
depositable: [...depositableVaults().map((v) => v.symbol), ...depositableSolanaVaults().map((v) => v.symbol)],
|
|
260
|
+
chains: [
|
|
261
|
+
...offeredChains().map((c) => {
|
|
262
|
+
const d = defaultVault(c.chainId);
|
|
263
|
+
return {
|
|
264
|
+
chain: c.key,
|
|
265
|
+
chainId: c.chainId,
|
|
266
|
+
name: c.name,
|
|
267
|
+
default: d.symbol,
|
|
268
|
+
defaultAccess: d.depositOpen.open ? "open" : "whitelist",
|
|
269
|
+
depositable: depositableVaults().filter((v) => v.chainId === c.chainId).map((v) => v.symbol),
|
|
270
|
+
};
|
|
271
|
+
}),
|
|
272
|
+
// Solana, when the registry has a vault there: no chain id; the cluster is in each Solana row.
|
|
273
|
+
...(listSolanaVaults().length === 0
|
|
274
|
+
? []
|
|
275
|
+
: [
|
|
276
|
+
{
|
|
277
|
+
chain: onSolana.chain,
|
|
278
|
+
chainId: null,
|
|
279
|
+
name: "Solana",
|
|
280
|
+
default: listSolanaVaults().find((v) => v.isDefault).symbol,
|
|
281
|
+
defaultAccess: "open",
|
|
282
|
+
depositable: depositableSolanaVaults().map((v) => v.symbol),
|
|
283
|
+
},
|
|
284
|
+
]),
|
|
285
|
+
],
|
|
286
|
+
vaults: [
|
|
287
|
+
...listVaults().map((v) => ({
|
|
288
|
+
symbol: v.symbol,
|
|
289
|
+
name: v.name,
|
|
290
|
+
warning: v.warning,
|
|
291
|
+
links: linksFor(v),
|
|
292
|
+
backend: v.backend,
|
|
293
|
+
isDefault: v.isDefault,
|
|
294
|
+
chain: CHAIN_INFO[v.chainId].key,
|
|
295
|
+
chainId: v.chainId,
|
|
296
|
+
address: v.address,
|
|
297
|
+
chassis: v.chassis,
|
|
298
|
+
asset: v.asset,
|
|
299
|
+
shareDecimals: v.shareDecimals,
|
|
300
|
+
depositOpen: v.depositOpen,
|
|
301
|
+
notes: v.notes,
|
|
302
|
+
})),
|
|
303
|
+
...listSolanaVaults().map(solanaVaultRow),
|
|
304
|
+
],
|
|
270
305
|
});
|
|
271
306
|
}));
|
|
272
307
|
register("earn_terms", {
|
|
@@ -276,15 +311,25 @@ export function buildCommands() {
|
|
|
276
311
|
}, guarded(async () => text(DISCLOSURES)));
|
|
277
312
|
register("earn_status", {
|
|
278
313
|
title: "Health check, or a deposit pre-flight verdict",
|
|
279
|
-
description: "With NO `account`: is the CLI working and the chain's RPC reachable — chain, chain id, latest block, registry version, and which env var supplied the RPC (never the URL). Each chain has its own RPC, so pass `chain` to check the one you are about to use; `rpc` is `ok`, `unreachable`, or `wrong_chain` when the configured endpoint answers for a different chain. `chainVerified: false` beside `ok` means the endpoint answered but did not say which chain it is. When a separate logs RPC is set, `logsRpc` reports it the same way. With `account`: simulates deposit() from that address and reports OPEN_READY, NEEDS_APPROVAL, WHITELIST_GATED, REVERTED_OTHER, REFUSED_BY_CLIENT or UNRESOLVED, never trusting maxDeposit(). The `mode` field says which answer you got.",
|
|
314
|
+
description: "With NO `account`: is the CLI working and the chain's RPC reachable — chain, chain id, latest block, registry version, and which env var supplied the RPC (never the URL). Each chain has its own RPC, so pass `chain` to check the one you are about to use; `rpc` is `ok`, `unreachable`, or `wrong_chain` when the configured endpoint answers for a different chain. `chainVerified: false` beside `ok` means the endpoint answered but did not say which chain it is. When a separate logs RPC is set, `logsRpc` reports it the same way. With `account`: simulates deposit() from that address and reports OPEN_READY, NEEDS_APPROVAL, WHITELIST_GATED, REVERTED_OTHER, REFUSED_BY_CLIENT or UNRESOLVED, never trusting maxDeposit(); on Solana it simulates the deposit transaction and reports OPEN_READY, NEEDS_FUNDS (the account lacks the USDC, or SOL for fees and rent), REVERTED_OTHER or UNRESOLVED. The `mode` field says which answer you got.",
|
|
280
315
|
inputSchema: { vault: vaultArg, chain, account: accountArg.optional(), amount_usdc: amountArg.optional() },
|
|
281
316
|
}, guarded(async ({ vault: symbol, chain, account, amount_usdc }) => {
|
|
317
|
+
const target = resolveAnyVault(symbol, chain);
|
|
318
|
+
if (target.family === "solana") {
|
|
319
|
+
const v = target.vault;
|
|
320
|
+
if (account !== undefined) {
|
|
321
|
+
return text({ ...(await solanaPreflight(v, account, amount_usdc)), mode: "preflight", account, ...onSolana, ...commitsMoney(v) }, "solana");
|
|
322
|
+
}
|
|
323
|
+
return text(await solanaHealth(v, symbol !== undefined ? { requested: "preflight", missing: ["account"] } : {}), "solana");
|
|
324
|
+
}
|
|
282
325
|
if (account !== undefined) {
|
|
283
326
|
const { vault, client, endpoints } = clientFor(symbol, chain);
|
|
284
|
-
const
|
|
327
|
+
const depositor = evm(account, "account");
|
|
328
|
+
const args = amount_usdc === undefined ? { vault, depositor, client } : { vault, depositor, client, assetsHuman: amount_usdc };
|
|
285
329
|
const verdict = await onItsChain(vault, endpoints, () => preflightDeposit(args));
|
|
286
330
|
// spread FIRST so the discriminant cannot be overwritten by a field of the same name
|
|
287
|
-
|
|
331
|
+
// `account` is echoed checksummed, as every other result names an address.
|
|
332
|
+
return text({ ...verdict, mode: "preflight", account: depositor, ...onChain(vault), ...commitsMoney(vault) }, vault.chainId);
|
|
288
333
|
}
|
|
289
334
|
// Health. A partial call (a vault but no account) is answered here too, and says so in
|
|
290
335
|
// STRUCTURE rather than in prose — a note is exactly what a consumer skips, and the risk is
|
|
@@ -370,7 +415,15 @@ export function buildCommands() {
|
|
|
370
415
|
amount_usdc: amountArg,
|
|
371
416
|
direction: z.enum(["deposit", "withdraw"]).describe("which side to quote — required, there is no default"),
|
|
372
417
|
},
|
|
373
|
-
}, guarded(async ({ vault: symbol, chain, account, amount_usdc, direction }) => {
|
|
418
|
+
}, guarded(async ({ vault: symbol, chain, account: rawAccount, amount_usdc, direction }) => {
|
|
419
|
+
const target = resolveAnyVault(symbol, chain);
|
|
420
|
+
if (target.family === "solana") {
|
|
421
|
+
const v = target.vault;
|
|
422
|
+
if (direction === "deposit")
|
|
423
|
+
return text({ direction: "deposit", ...onSolana, ...commitsMoney(v), ...(await solanaQuoteDeposit(v, rawAccount, amount_usdc)) }, "solana");
|
|
424
|
+
return text({ direction: "withdraw", ...onSolana, ...(await solanaQuoteWithdraw(v, rawAccount, amount_usdc)) }, "solana");
|
|
425
|
+
}
|
|
426
|
+
const account = evm(rawAccount, "account");
|
|
374
427
|
const { vault, client, endpoints } = clientFor(symbol, chain);
|
|
375
428
|
// 🔴 The tag is emitted from INSIDE each branch, beside the fields that branch produces —
|
|
376
429
|
// never `{ direction, ...quote }` from the input argument. Measured in review: with the tag
|
|
@@ -392,7 +445,7 @@ export function buildCommands() {
|
|
|
392
445
|
}));
|
|
393
446
|
register("earn_prepare_deposit", {
|
|
394
447
|
title: "Prepare an unsigned deposit",
|
|
395
|
-
description: "Returns the UNSIGNED calls for a deposit — [approve(asset → vault), deposit(assets, receiver)] — inside an envelope with requires_signature: true. Amount is in the vault's asset — USDC, or USDG on Robinhood Chain; `amount_usdc` keeps its name for every asset. The envelope names the `chain` and `chainId` the calls are for: say which chain to the operator, and if they have not chosen one, ask before calling this. NOTHING IS SUBMITTED: hand the calls to a signer in order. This tool cannot sign or send, and the deposit has not happened until the signer's transactions confirm.
|
|
448
|
+
description: "Returns the UNSIGNED calls for a deposit — [approve(asset → vault), deposit(assets, receiver)] on the EVM chains, ONE unsigned transaction (`transaction.wire`) on Solana — inside an envelope with requires_signature: true. Amount is in the vault's asset — USDC, or USDG on Robinhood Chain; `amount_usdc` keeps its name for every asset. The envelope names the `chain` and `chainId` the calls are for: say which chain to the operator, and if they have not chosen one, ask before calling this. NOTHING IS SUBMITTED: hand the calls to a signer in order. This tool cannot sign or send, and the deposit has not happened until the signer's transactions confirm. On the EVM chains each call also carries `function` and `args` — the same call `data` encodes, decoded, e.g. `approve(address spender, uint256 value)` with `{ spender, value }` — so an operator without a CLI signer can fill a block explorer's Write Contract form directly. `args` values are RAW contract units, which is what the form takes; `description` is the human sentence.",
|
|
396
449
|
inputSchema: {
|
|
397
450
|
vault: vaultArg,
|
|
398
451
|
chain,
|
|
@@ -401,12 +454,18 @@ export function buildCommands() {
|
|
|
401
454
|
receiver: addressArg.describe("where the SHARES land — usually the account, not necessarily"),
|
|
402
455
|
},
|
|
403
456
|
}, guarded(async ({ vault: symbol, chain, account, amount_usdc, receiver }) => {
|
|
457
|
+
const target = resolveAnyVault(symbol, chain);
|
|
458
|
+
if (target.family === "solana") {
|
|
459
|
+
// The warning before `next_step`, through the chokepoint, exactly as on EVM.
|
|
460
|
+
const { requires_signature, status, ...rest } = await solanaPrepareDeposit(target.vault, account, amount_usdc, receiver);
|
|
461
|
+
return text({ requires_signature, status, ...onSolana, ...commitsMoney(target.vault), ...rest }, "solana");
|
|
462
|
+
}
|
|
404
463
|
const vault = supportedVault(symbol, chain);
|
|
405
|
-
return unsigned(buildDeposit(vault, { assetsHuman: amount_usdc, receiver, account }), vault, "deposit");
|
|
464
|
+
return unsigned(buildDeposit(vault, { assetsHuman: amount_usdc, receiver: evm(receiver, "receiver"), account: evm(account, "account") }), vault, "deposit");
|
|
406
465
|
}));
|
|
407
466
|
register("earn_prepare_withdraw", {
|
|
408
467
|
title: "Prepare an unsigned withdrawal",
|
|
409
|
-
description: "Returns the UNSIGNED call for a withdrawal in asset terms — withdraw(assets, receiver, owner) — inside an envelope with requires_signature: true, which names the `chain` the call is for: a position is withdrawn on the chain it is on, so name the vault (or its chain) and never ask the operator to choose one. To empty the account pass --all (a switch: it takes no value) with shares_exact copied verbatim from sharesExact from `earn balance` (redeem of the exact balance; never a rounded number). NOTHING IS SUBMITTED and no funds have moved until a signer confirms.
|
|
468
|
+
description: "Returns the UNSIGNED call for a withdrawal in asset terms — withdraw(assets, receiver, owner) on the EVM chains, ONE unsigned transaction (`transaction.wire`) on Solana — inside an envelope with requires_signature: true, which names the `chain` the call is for: a position is withdrawn on the chain it is on, so name the vault (or its chain) and never ask the operator to choose one. To empty the account pass --all (a switch: it takes no value) with shares_exact copied verbatim from sharesExact from `earn balance` (redeem of the exact balance; never a rounded number). NOTHING IS SUBMITTED and no funds have moved until a signer confirms. On the EVM chains each call also carries `function` and `args` — the same call `data` encodes, decoded, e.g. `withdraw(uint256 assets, address receiver, address owner)` with `{ assets, receiver, owner }` — so an operator without a CLI signer can fill a block explorer's Write Contract form directly. `args` values are RAW contract units, which is what the form takes; `description` is the human sentence.",
|
|
410
469
|
inputSchema: {
|
|
411
470
|
vault: vaultArg,
|
|
412
471
|
chain,
|
|
@@ -416,14 +475,24 @@ export function buildCommands() {
|
|
|
416
475
|
all: z.boolean().optional(),
|
|
417
476
|
shares_exact: z.string().regex(/^\d+(\.\d+)?$/).optional(),
|
|
418
477
|
},
|
|
419
|
-
}, guarded(async ({ vault: symbol, chain, receiver, account, amount_usdc, all, shares_exact }) => {
|
|
420
|
-
const
|
|
421
|
-
// ⚠️ `receiver` and `account` are DIFFERENT slots and both are addresses, so a transposition
|
|
422
|
-
// here type-checks. `account` is the owner whose shares burn; `receiver` is the payee.
|
|
478
|
+
}, guarded(async ({ vault: symbol, chain, receiver: rawReceiver, account: rawAccount, amount_usdc, all, shares_exact }) => {
|
|
479
|
+
const target = resolveAnyVault(symbol, chain);
|
|
423
480
|
if (all && amount_usdc)
|
|
424
481
|
throw new Error("give --amount_usdc or --all with --shares_exact, not both");
|
|
425
482
|
if (!all && shares_exact)
|
|
426
483
|
throw new Error("--shares_exact goes with --all; for an amount in the asset, use --amount_usdc alone");
|
|
484
|
+
if (all && !shares_exact)
|
|
485
|
+
throw new Error("--all requires --shares_exact (copy sharesExact from `earn balance` verbatim)");
|
|
486
|
+
if (!all && !amount_usdc)
|
|
487
|
+
throw new Error("provide --amount_usdc, or --all with --shares_exact");
|
|
488
|
+
if (target.family === "solana") {
|
|
489
|
+
return text(await solanaPrepareWithdraw(target.vault, rawAccount, rawReceiver, all ? { sharesExact: shares_exact } : { amountHuman: amount_usdc }), "solana");
|
|
490
|
+
}
|
|
491
|
+
const vault = supportedVault(symbol, chain);
|
|
492
|
+
const receiver = evm(rawReceiver, "receiver");
|
|
493
|
+
const account = evm(rawAccount, "account");
|
|
494
|
+
// ⚠️ `receiver` and `account` are DIFFERENT slots and both are addresses, so a transposition
|
|
495
|
+
// here type-checks. `account` is the owner whose shares burn; `receiver` is the payee.
|
|
427
496
|
if (all) {
|
|
428
497
|
if (!shares_exact)
|
|
429
498
|
throw new Error("--all requires --shares_exact (copy sharesExact from `earn balance` verbatim)");
|
|
@@ -441,9 +510,13 @@ export function buildCommands() {
|
|
|
441
510
|
chain,
|
|
442
511
|
account: accountArg,
|
|
443
512
|
lookback_blocks: z.number().int().positive().optional().describe("how far back to scan for Deposit/Withdraw events; default: from the vault's deployment block, i.e. the whole history. The EFFECTIVE window is max_log_requests × the provider's eth_getLogs cap (Alchemy free 10 blocks, Base public 2,000, Infura on Arbitrum 10,000); if the configured RPC cannot cover it, the chain's public endpoint serves the scan and scan.source says so"),
|
|
444
|
-
max_log_requests: z.number().int().positive().max(400).optional().describe("cap on eth_getLogs calls per event per scan; default 100 (= 1,000 blocks on Alchemy free, 200,000 on Base public). scan.wholeHistory says whether the scan actually covered every block since the vault was deployed — scan.complete alone is only a reconciliation and can be vacuously true. For an older vault, a provider with a wide eth_getLogs range (TREASURY_LOGS_RPC_BASE; TREASURY_LOGS_RPC_ARBITRUM on Arbitrum One; TREASURY_LOGS_RPC_ROBINHOOD on Robinhood Chain) is what makes it whole"),
|
|
513
|
+
max_log_requests: z.number().int().positive().max(400).optional().describe("cap on eth_getLogs calls per event per scan; default 100 (= 1,000 blocks on Alchemy free, 200,000 on Base public). scan.wholeHistory says whether the scan actually covered every block since the vault was deployed — scan.complete alone is only a reconciliation and can be vacuously true. For an older vault, a provider with a wide eth_getLogs range (TREASURY_LOGS_RPC_BASE; TREASURY_LOGS_RPC_ARBITRUM on Arbitrum One; TREASURY_LOGS_RPC_ROBINHOOD on Robinhood Chain; TREASURY_LOGS_RPC_ETHEREUM on Ethereum; TREASURY_LOGS_RPC_MONAD on Monad, whose public endpoint serves only 100 blocks per request) is what makes it whole"),
|
|
445
514
|
},
|
|
446
|
-
}, guarded(async ({ vault: symbol, chain, account, lookback_blocks, max_log_requests }) => {
|
|
515
|
+
}, guarded(async ({ vault: symbol, chain, account: rawAccount, lookback_blocks, max_log_requests }) => {
|
|
516
|
+
const target = resolveAnyVault(symbol, chain);
|
|
517
|
+
if (target.family === "solana")
|
|
518
|
+
return text({ ...onSolana, ...(await solanaBalance(target.vault, rawAccount)) }, "solana");
|
|
519
|
+
const account = evm(rawAccount, "account");
|
|
447
520
|
const vault = supportedVault(symbol, chain);
|
|
448
521
|
const logsUrl = logsRpcUrlFromEnv(vault.chainId);
|
|
449
522
|
const client = makePublicClient(vault.chainId, logsUrl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/earn/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/earn/commands.ts"],"names":[],"mappings":"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"}
|