@candledottv/mcp 0.10.6 → 0.10.7
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/index.js +8 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -106,7 +106,7 @@ function percentOfBalance(balanceRaw, percent) {
|
|
|
106
106
|
import { randomUUID } from "node:crypto";
|
|
107
107
|
|
|
108
108
|
// src/version.ts
|
|
109
|
-
var SERVER_VERSION = "0.10.
|
|
109
|
+
var SERVER_VERSION = "0.10.7";
|
|
110
110
|
|
|
111
111
|
// src/update-notice.ts
|
|
112
112
|
var PLAIN_VERSION = /^\d+\.\d+\.\d+$/;
|
|
@@ -1351,7 +1351,7 @@ async function executePerpsDeposit(args, cfg, env, fetch2) {
|
|
|
1351
1351
|
}
|
|
1352
1352
|
|
|
1353
1353
|
// src/plans.ts
|
|
1354
|
-
var PLAN_CAPABILITY_NOTE = "A capability marked yes is what the plan allows. It is subject to the deployment's own switches (perps and own-wallet bridges each have one) and to the wallet, scopes and setup the feature needs.";
|
|
1354
|
+
var PLAN_CAPABILITY_NOTE = "A capability marked yes is what the plan allows. It is subject to the deployment's own switches (perps and own-wallet bridges each have one) and to the wallet, scopes and setup the feature needs. Every plan can launch a token from its embedded wallet, with an optional dev buy (same transaction on Solana; best-effort follow-up on Hood), through the headless launch; the two launch rows are additional routes, not the only ones.";
|
|
1355
1355
|
var PLAN_CAPABILITY_LABELS = {
|
|
1356
1356
|
tradeCandleTokens: "Trade Candle-launched tokens",
|
|
1357
1357
|
tradeBaseAssets: "Trade base assets",
|
|
@@ -1359,8 +1359,8 @@ var PLAN_CAPABILITY_LABELS = {
|
|
|
1359
1359
|
sellExternalTokens: "Sell tokens not launched on Candle",
|
|
1360
1360
|
buyExternalTokens: "Buy tokens not launched on Candle",
|
|
1361
1361
|
hyperliquidPerps: "Hyperliquid perps (when enabled)",
|
|
1362
|
-
selfLaunch: "
|
|
1363
|
-
atomicLaunch: "Atomic launch
|
|
1362
|
+
selfLaunch: "Launch from a linked or TEE wallet (self-signed)",
|
|
1363
|
+
atomicLaunch: "Atomic launch: launch + 1–4 first buys in one bundle",
|
|
1364
1364
|
createLinkedWallets: "Create linked wallets",
|
|
1365
1365
|
importLinkedWallets: "Import linked wallets",
|
|
1366
1366
|
limitOrders: "Limit orders",
|
|
@@ -1734,7 +1734,7 @@ var { buyAmount: _rawBuyAmount, ...seedableLaunchShape } = launchTokenShape;
|
|
|
1734
1734
|
var launchAndSeedShape = {
|
|
1735
1735
|
...seedableLaunchShape,
|
|
1736
1736
|
clientLaunchId: z2.string().optional().describe("Idempotency key. Auto-generated when omitted and echoed in the result."),
|
|
1737
|
-
devBuy: z2.string().optional().describe('Seed buy in DECIMAL units of the quote asset this launch selects (e.g. "0.25" SOL, or ' + "ETH on hood), bundled into the launch transaction itself. Follows quoteAsset, which " + "defaults to sol on solana and eth on hood. Capped by the platform dev-buy ceiling; for " + "a larger seed, launch then follow with candle_trade.")
|
|
1737
|
+
devBuy: z2.string().optional().describe('Seed buy in DECIMAL units of the quote asset this launch selects (e.g. "0.25" SOL, or ' + "ETH on hood), bundled into the launch transaction itself on solana and sent as a follow-up " + "transaction on hood. Paid from the account's embedded wallet. Follows quoteAsset, which " + "defaults to sol on solana and eth on hood. Capped by the platform dev-buy ceiling; for " + "a larger seed, launch then follow with candle_trade.")
|
|
1738
1738
|
};
|
|
1739
1739
|
var transferShape = {
|
|
1740
1740
|
chain: z2.enum(["solana", "hood"]).describe("Which chain the transfer executes on"),
|
|
@@ -1759,7 +1759,7 @@ function registerTools(server, env = process.env) {
|
|
|
1759
1759
|
};
|
|
1760
1760
|
register("candle_launch_token", {
|
|
1761
1761
|
title: "Launch a token on Candle",
|
|
1762
|
-
description: "Launch a new token via the Candle headless launch API. Set dryRun: true to validate without spending anything.",
|
|
1762
|
+
description: "Launch a new token via the Candle headless launch API, from the account's embedded wallet. Works on every plan, Free included. Set dryRun: true to validate without spending anything.",
|
|
1763
1763
|
inputSchema: launchTokenShape
|
|
1764
1764
|
}, async (args) => callAndRelay("candle_launch_token", args, cfg));
|
|
1765
1765
|
register("candle_get_market", {
|
|
@@ -1851,7 +1851,7 @@ MARKET_NOT_FOUND means Candle has no market for that token and this could not ru
|
|
|
1851
1851
|
}, async (args) => callAndRelay("candle_get_profile_trades", args, cfg));
|
|
1852
1852
|
register("candle_get_portfolio", {
|
|
1853
1853
|
title: "Read what the account holds, on Solana and Hood",
|
|
1854
|
-
description: "Balances and prices for the wallets Candle already knows on this account, on both chains: the " + "embedded wallet and every TEE wallet. Solana wallets are in `embedded` and `tee` (SOL as raw " + "`lamports`, tokens as raw `amountRaw` with `decimals`). Hood wallets are in `hood.embedded` and " + "`hood.tee` (ETH as raw `wei`, ERC-20s including USDG), never in the top-level arrays. Every " + "wallet and holding carries `chain`. Prices are in `prices`: a Solana mint under its own " + "address, Hood ETH under `hood:native`, and a Hood token under `hood:<contract lowercased>`, so " + "lowercase the address before looking it up. An unpriced entry is `priceUsd: null`, never zero; " + "a Hood one says why in `unpricedReason` (no-market-row, unusable-price, stale-mark, " + "source-unavailable), and `hood.unpriced` / `hood.unpricedByReason` count them. A Hood token " + "mark older than six hours is not used, so many Hood tokens read unpriced. A wallet whose read " + "failed has null balances, never zero, and is listed in `unavailable` (Solana) or " + "`hood.unavailable`; check `complete` before quoting a total. Vault and external wallets are " + "not included: Candle does not know their addresses (the Candle CLI's `candle portfolio` reads " + "them over your own RPC). Needs a key with the account:read scope; without it the answer is " + "SCOPE_MISSING. A server that predates Hood in the portfolio omits `hood` and `chain`. Reads " + "only; moves nothing.",
|
|
1854
|
+
description: "Balances and prices for the wallets Candle already knows on this account, on both chains: the " + "embedded wallet and every TEE wallet. Solana wallets are in `embedded` and `tee` (SOL as raw " + "`lamports`, tokens as raw `amountRaw` with `decimals`). Hood wallets are in `hood.embedded` and " + "`hood.tee` (ETH as raw `wei`, ERC-20s including USDG), never in the top-level arrays. Every " + "wallet and holding carries `chain`. Prices are in `prices`: a Solana mint under its own " + "address, Hood ETH under `hood:native`, and a Hood token under `hood:<contract lowercased>`, so " + "lowercase the address before looking it up. An unpriced entry is `priceUsd: null`, never zero; " + "a Hood one says why in `unpricedReason` (no-market-row, unusable-price, stale-mark, " + "source-unavailable), and `hood.unpriced` / `hood.unpricedByReason` count them. A Hood token " + "mark older than six hours is not used, so many Hood tokens read unpriced. A wallet whose read " + "failed has null balances, never zero, and is listed in `unavailable` (Solana) or " + "`hood.unavailable`; check `complete` before quoting a total. `walletsComplete` is false only " + "when the wallet list itself was cut off, and is absent on a server that predates it: then " + "`complete: false` may be a cut-off list or a failed read. Vault and external wallets are " + "not included: Candle does not know their addresses (the Candle CLI's `candle portfolio` reads " + "them over your own RPC). Needs a key with the account:read scope; without it the answer is " + "SCOPE_MISSING. A server that predates Hood in the portfolio omits `hood` and `chain`. Reads " + "only; moves nothing.",
|
|
1855
1855
|
inputSchema: {}
|
|
1856
1856
|
}, async () => callAndRelay("candle_get_portfolio", {}, cfg));
|
|
1857
1857
|
register("candle_resolve_token", {
|
|
@@ -1925,7 +1925,7 @@ MARKET_NOT_FOUND means Candle has no market for that token and this could not ru
|
|
|
1925
1925
|
});
|
|
1926
1926
|
register("candle_launch_and_seed", {
|
|
1927
1927
|
title: "Launch a token and seed it",
|
|
1928
|
-
description: "Launch a new token with an optional dev-buy seed
|
|
1928
|
+
description: "Launch a new token from the account's embedded wallet, with an optional dev-buy seed (in the " + "launch transaction on solana, a best-effort follow-up on hood). Works on every plan, Free included (this is not the atomic launch). Then " + "return the fresh market state and token links in one result. MOVES REAL FUNDS unless " + "dryRun. Seeds above the platform dev-buy ceiling are rejected (DEV_BUY_TOO_HIGH); " + "launch, then top up with candle_trade.",
|
|
1929
1929
|
inputSchema: launchAndSeedShape
|
|
1930
1930
|
}, async (args) => {
|
|
1931
1931
|
const result = await executeLaunchAndSeed(args, cfg, fetch);
|