@candledottv/agent-sdk 0.6.7 → 0.6.9
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 +78 -30
- package/dist/client.d.ts +113 -58
- package/dist/client.d.ts.map +1 -1
- package/dist/hyperliquid-pnl.d.ts +68 -10
- package/dist/hyperliquid-pnl.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +853 -4
- package/dist/launch-definition.d.ts +648 -0
- package/dist/launch-definition.d.ts.map +1 -0
- package/dist/launch-input.d.ts +9 -0
- package/dist/launch-input.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,6 +37,7 @@ const candle = new CandleClient({
|
|
|
37
37
|
const market = await candle.getMarket("solana", "So11...mint")
|
|
38
38
|
const quote = await candle.getQuote("solana", "So11...mint", { side: "buy", amountIn: "1000000000" })
|
|
39
39
|
const feed = await candle.getFeed("new", "solana")
|
|
40
|
+
const events = await candle.getTokenEvents("solana", "So11...mint", { kind: "signal", since: "2026-10-28T00:00:00Z" })
|
|
40
41
|
const verdict = await candle.verify("hood", "0xToken")
|
|
41
42
|
|
|
42
43
|
// Presets: fetch once, expand locally into a launch body.
|
|
@@ -52,7 +53,7 @@ The API key is attached as `x-api-key` on every request when configured. The key
|
|
|
52
53
|
(`launch`, `launchAsync`, `dryRunLaunch`, `getLaunchJob`, `reportActivity`, `uploadImage`)
|
|
53
54
|
refuse to fetch without one and throw a plain `Error` locally instead of a server 401.
|
|
54
55
|
|
|
55
|
-
##
|
|
56
|
+
## Embedded launches with built-in idempotent retries
|
|
56
57
|
|
|
57
58
|
`launch()` fills in a `clientLaunchId` (`"sdk-" + crypto.randomUUID()`) when you omit one, and
|
|
58
59
|
retries transient failures by re-sending the SAME id, which the server's idempotency ledger
|
|
@@ -73,7 +74,7 @@ try {
|
|
|
73
74
|
symbol: "TREND",
|
|
74
75
|
imageUrl: "https://example.com/logo.png",
|
|
75
76
|
chain: "solana",
|
|
76
|
-
|
|
77
|
+
buy: "0.1", // SOL
|
|
77
78
|
})
|
|
78
79
|
console.log("minted", result.mint, "explorer:", result.links.explorer, "id:", result.clientLaunchId)
|
|
79
80
|
} catch (error) {
|
|
@@ -100,16 +101,56 @@ else console.error("failed:", job.errorCode)
|
|
|
100
101
|
Need a hosted image first? `uploadImage(bytes, contentType)` posts raw bytes to
|
|
101
102
|
`/api/v1/uploads/agent-image` and returns `{ imageUrl }`, ready for the launch body.
|
|
102
103
|
|
|
103
|
-
`launch()` works on every plan, Free included
|
|
104
|
-
|
|
104
|
+
`launch()` with an embedded wallet works on every plan, Free included. `buy` adds an optional
|
|
105
|
+
first buy: atomic on Solana (up to 0.5 SOL by default), a best-effort follow-up on Hood.
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
A TEE wallet passed to `launch()` needs Pro or Max and the agent signs locally; the deprecated
|
|
108
|
+
`selfLaunch()` follows the same path. `launchAtomic()` lands the launch and 1 to 4 first buys in one Jito bundle: several
|
|
108
109
|
transactions in the same block, all or none. Each buy is paid by the embedded wallet or a linked
|
|
109
110
|
wallet; the same payer may fund more than one leg. A TEE wallet can be the creator or a buyer, and
|
|
110
|
-
`
|
|
111
|
+
A TEE `launch()` can carry `buy`, only where the server has
|
|
111
112
|
`TEE_LAUNCH_BUYS_ENABLED` on. It is off by default, and a TEE wallet is refused there until it is.
|
|
112
113
|
|
|
114
|
+
## One launch method
|
|
115
|
+
|
|
116
|
+
`launch()` and `dryRunLaunch()` take the shared generated launch fields. Omit `wallet` or use
|
|
117
|
+
`wallet: "embedded"` to pay from the account's embedded wallet. Name a TEE wallet by label, id or
|
|
118
|
+
address, or pass `{ linkedWalletId, privyWalletId }` for an existing SDK integration. A named
|
|
119
|
+
wallet's chain is inferred; supply `chain: "hood"` for an explicit Hood wallet object. Conflicting
|
|
120
|
+
chains or quote assets are refused before building. The SDK uses your configured `privyAppId`
|
|
121
|
+
and `secretStore` for TEE signing, and `solanaRpcUrl` / `evmRpcUrl` for caller broadcasts.
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
await candle.launch({
|
|
125
|
+
wallet: "spider-01",
|
|
126
|
+
name: "Trend Coin",
|
|
127
|
+
symbol: "TREND",
|
|
128
|
+
imageUrl: "https://example.com/logo.png",
|
|
129
|
+
buy: "0.1", // optional, whole units of the quote asset (SOL by default)
|
|
130
|
+
})
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`buy` is a decimal string: SOL has 9 decimals, USDC/CNDL/USDG 6, ETH 18. Empty or zero means no
|
|
134
|
+
first buy. Excess precision and passing both `buy` and deprecated raw `buyAmount` are refused
|
|
135
|
+
locally. `socials` accepts only `website`, `twitter`, `telegram` and `discord`, each an http(s) URL.
|
|
136
|
+
The remaining limits, defaults and field help come from the shared launch definition; the server
|
|
137
|
+
validates ranges and eligibility.
|
|
138
|
+
|
|
139
|
+
Embedded launches use `/launch/headless` with or without a buy. TEE launches use `/launch/self/build`
|
|
140
|
+
and the existing sign/broadcast/confirm flow; a Solana TEE buy signs the returned bundle and sends
|
|
141
|
+
it to `/launch/atomic/submit`. Dry runs use the selected family's `/dry-run`. Existing server
|
|
142
|
+
gates still apply: embedded-wallet allowance, launch availability, and TEE tier, `allowLaunch`
|
|
143
|
+
and first-buy switches. No server switch is enabled by this SDK release. `launchAsync()` remains
|
|
144
|
+
embedded-only.
|
|
145
|
+
|
|
146
|
+
Migration for this release: replace `selfLaunch({ linkedWalletId, privyWalletId, ...fields })`
|
|
147
|
+
with `launch({ wallet: { linkedWalletId, privyWalletId }, ...fields })`. Replace raw `buyAmount`
|
|
148
|
+
with whole-unit `buy`. `selfLaunch()`, `buildSelfLaunch()` and `dryRunSelfLaunch()` are deprecated
|
|
149
|
+
for one release; existing calls still work. `confirmSelfLaunch()` remains the recovery method.
|
|
150
|
+
TEE `launch()` preserves `SelfLaunchOutcomeError` on Hood: after a create-curve broadcast,
|
|
151
|
+
recover by confirming its original id and hashes, never by starting another launch. Embedded
|
|
152
|
+
launch retries and Solana same-id recovery retain their existing behavior.
|
|
153
|
+
|
|
113
154
|
## Trading, swaps and account reads
|
|
114
155
|
|
|
115
156
|
```ts
|
|
@@ -223,7 +264,7 @@ safe for a main payer.
|
|
|
223
264
|
| `failed`, other | not confirmed. A row with broadcast evidence may still be on chain, and a same-id call answers `stage: "unconfirmed"` for it. The same-id call is the check | call again with the same id |
|
|
224
265
|
| `built` | in flight or unresolved | a same-id `trade()` answers `IDEMPOTENCY_CONFLICT`. If it carries `stage: "unconfirmed"` and `retryable: false`, check its `signature` on chain and do not retry |
|
|
225
266
|
|
|
226
|
-
### `launch()`, `launchAsync()`
|
|
267
|
+
### Embedded `launch()`, `launchAsync()`
|
|
227
268
|
|
|
228
269
|
Retry with the same `clientLaunchId` and body, or read `getLaunchJob(id)` (`waitForLaunch(id)`
|
|
229
270
|
polls it). The rules are the ones under "Idempotency" in
|
|
@@ -440,28 +481,35 @@ read the existing `GET /api/v1/agent/keys/{prefix}/pnl`. The answer adds an opti
|
|
|
440
481
|
`hyperliquid` section, and the CLI prints it under **Hyperliquid**. The existing read
|
|
441
482
|
authentication applies; on an older API the section is simply absent. No additional signing, deposit or setup is needed for this read.
|
|
442
483
|
|
|
443
|
-
The section reports main-exchange
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
and
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
484
|
+
The section reports main-exchange perps for **every EVM TEE wallet bound to the key's profile,
|
|
485
|
+
per binding period** (`coverage: "profile"`; revoked, swept and rebound wallets included for the
|
|
486
|
+
time they were the profile's). `realizedGrossUsd` is the venue `closedPnl`, `fundingUsd` is
|
|
487
|
+
signed (received positive, paid negative), `feesUsd` is venue fees including builder fees
|
|
488
|
+
(rebates are negative), and `realizedNetUsd = realizedGrossUsd + fundingUsd - feesUsd`. Builder
|
|
489
|
+
fees are already included in the venue fee and are not subtracted again. `unrealizedUsd` is the
|
|
490
|
+
open positions' unrealized at each wallet's cutoff, `netUsd = realizedNetUsd + unrealizedUsd`
|
|
491
|
+
(both USD decimal strings), and `positions` lists the open positions, each with
|
|
492
|
+
`fundingNetUsd` positive when earned. Deposits and withdrawals are not P&L.
|
|
493
|
+
|
|
494
|
+
Facts and unrealized stop at the same cutoff per wallet. For a wallet still bound to the
|
|
495
|
+
profile, the cutoff is Hyperliquid's position time at this read: the fills and funding since the
|
|
496
|
+
wallet's last stored snapshot are read through that time and must reconcile with the positions
|
|
497
|
+
(each fill continues the previous position, the positions match, and every open hour has its
|
|
498
|
+
funding row). That wallet's `byWallet` entries say `reconciliation: "live"`, and the CLI prints
|
|
499
|
+
"(live, not yet settled)". A wallet whose binding to the profile ended before its last stored
|
|
500
|
+
snapshot is `settled`. `markedAt` is the oldest wallet cutoff, `completeThroughMs` the lowest
|
|
501
|
+
completeness watermark, and `perpsSnapshotId` identifies the cutoff vector. "Reconciled" is not
|
|
502
|
+
"complete": a round opened and closed between two fills Hyperliquid never returned cannot be
|
|
503
|
+
seen.
|
|
504
|
+
|
|
505
|
+
The net is **also counted in the total**: when `read` is true, `pnl.totalUsd` includes `netUsd`
|
|
506
|
+
and the answer's `perpsInTotal` is `true`; the CLI's `Total` line says it includes Hyperliquid.
|
|
507
|
+
When the section cannot be read or reconciled within the request's Hyperliquid budget, it is
|
|
508
|
+
`{ read: false, code, reason }` without amounts, `pnl.totalUsd` is the spot total,
|
|
509
|
+
`perpsInTotal` is `false`, and the CLI says the total excludes perps and why. Never a zero.
|
|
510
|
+
`historyPartial` (and `partialReasons`) flags history the stored record does not cover;
|
|
511
|
+
`truncated` repeats it for older CLIs. At most 20 wallets are read. `--json` preserves the
|
|
512
|
+
section and its coverage fields. Agent boards are outside this slice.
|
|
465
513
|
|
|
466
514
|
|
|
467
515
|
## CNDL staking
|
package/dist/client.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* endpoints (launch, dry run, jobs, activity, uploads) refuse to fetch at all without one,
|
|
20
20
|
* throwing a plain `Error` that names the missing option, so a misconfigured agent fails
|
|
21
21
|
* fast and locally instead of with a server 401.
|
|
22
|
-
* -
|
|
22
|
+
* - Embedded launch retries: `launch()` fills in `clientLaunchId` ("sdk-" + UUID) when the
|
|
23
23
|
* caller omits one and re-sends the SAME id on network errors, non-envelope 5xx responses,
|
|
24
24
|
* retryable envelopes with 5xx status, and the retryable in-flight 409. It never retries a
|
|
25
25
|
* non-retryable envelope (IDEMPOTENCY_CONFLICT with a different body, LAUNCH_DISABLED, every
|
|
@@ -45,6 +45,7 @@ import { type PerpsBookOptions, type PerpsBookResult, type PerpsCandlesOptions,
|
|
|
45
45
|
import type { HyperliquidPnlSection } from "./hyperliquid-pnl";
|
|
46
46
|
import { type PerpsAccountLine, type PerpsAccountReport, type PerpsPortfolioSection, type PerpsPositionRow, type PerpsRiskReport, type PerpsRiskSettings, type PerpsRiskThresholds, type PerpsRiskThresholdsReport, type PerpsWatchEvent } from "./hyperliquid-risk";
|
|
47
47
|
import { type PerpsWithdrawAuthorization, type PerpsWithdrawBuild, type PerpsWithdrawPins } from "./hyperliquid-withdraw";
|
|
48
|
+
import type { GeneratedLaunchFields } from "./launch-definition";
|
|
48
49
|
import { type PerpsFillsPage, type PerpsFundingPage, type PerpsHistoryOptions } from "./perps-history";
|
|
49
50
|
import type { AgentPlansResult, PlanPrice, PlanTable } from "./plans";
|
|
50
51
|
import type { SecretStore } from "./secret-store";
|
|
@@ -230,57 +231,18 @@ export interface LaunchCurve {
|
|
|
230
231
|
/** G: the quote the curve raises before it graduates. */
|
|
231
232
|
threshold: string;
|
|
232
233
|
}
|
|
233
|
-
/**
|
|
234
|
-
export interface LaunchRequest {
|
|
235
|
-
/**
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
mode?: LaunchTier;
|
|
240
|
-
/** `mode: "exp-custom"` only, and required there. Dry-run first: the API checks the limits. */
|
|
241
|
-
curve?: LaunchCurve;
|
|
242
|
-
/**
|
|
243
|
-
* An `exp-` mode only: an extra creator fee of 100 or 200 basis points on top of the curve's 1%
|
|
244
|
-
* and the pool's 0.5%, paid to the creator in full. 0 is the same as leaving it out.
|
|
245
|
-
*/
|
|
246
|
-
creatorFeeBps?: 0 | 100 | 200;
|
|
247
|
-
stakerAllocationBps?: number;
|
|
248
|
-
/** Solana only: the graduated pool's fee. Omitted keeps the flat 50 bps pool. */
|
|
249
|
-
poolFee?: PoolFee;
|
|
250
|
-
/**
|
|
251
|
-
* Solana preset tiers only: "curve_price" opens the pool at the curve's last price and burns the rest.
|
|
252
|
-
* Omitted defaults to "curve_price" when stakerAllocationBps plus the team allocation fit the tier's
|
|
253
|
-
* limit (dry-run graduation.maxStakerCarveBps), otherwise falls back to "legacy" without refusal.
|
|
254
|
-
* Set "legacy" explicitly to opt out. Explicit "curve_price" is refused above the limit.
|
|
255
|
-
*/
|
|
256
|
-
poolOpen?: "legacy" | "curve_price";
|
|
257
|
-
/** Solana exp- curves only: "full_range" opens the pool across the whole price range. Omitted is "floor". */
|
|
258
|
-
expPoolShape?: "floor" | "full_range";
|
|
259
|
-
/** Hood only, required there: which Uniswap version the curve graduates through. */
|
|
260
|
-
dexVersion?: "v3" | "v4";
|
|
261
|
-
/** Initial dev buy. Solana: JSON number in the pair's base units. Hood: decimal string in wei. */
|
|
262
|
-
buyAmount?: number | string;
|
|
263
|
-
name: string;
|
|
264
|
-
symbol: string;
|
|
265
|
-
/** Roughly SQUARE (at most 1.5:1): this is the avatar. Wider is rejected as IMAGE_WRONG_SHAPE. */
|
|
266
|
-
imageUrl: string;
|
|
267
|
-
/**
|
|
268
|
-
* Optional WIDE artwork (wider than 1.5:1, e.g. 1200x630) for the token page's banner strip.
|
|
269
|
-
* Where a share card or OG image belongs; a square image here is rejected as
|
|
270
|
-
* BANNER_WRONG_SHAPE. Omitted, the strip falls back to `imageUrl`.
|
|
271
|
-
*/
|
|
272
|
-
bannerUrl?: string;
|
|
273
|
-
description?: string;
|
|
274
|
-
socials?: {
|
|
275
|
-
twitter?: string;
|
|
276
|
-
telegram?: string;
|
|
277
|
-
website?: string;
|
|
278
|
-
discord?: string;
|
|
234
|
+
/** Shared launch fields, plus SDK wallet identifiers and the legacy raw first buy. */
|
|
235
|
+
export interface LaunchRequest extends Omit<GeneratedLaunchFields, "wallet" | "dryRun"> {
|
|
236
|
+
/** Omitted means embedded. A TEE wallet may be named by label, address or id. */
|
|
237
|
+
wallet?: string | {
|
|
238
|
+
linkedWalletId: string;
|
|
239
|
+
privyWalletId: string;
|
|
279
240
|
};
|
|
280
|
-
|
|
241
|
+
/** @deprecated Use buy, a decimal string in whole quote units, for one release. */
|
|
242
|
+
buyAmount?: number | string;
|
|
281
243
|
}
|
|
282
244
|
/** POST /api/v1/launch/self/build request body. Extends LaunchRequest with linkedWalletId. */
|
|
283
|
-
export interface BuildSelfLaunchRequest extends LaunchRequest {
|
|
245
|
+
export interface BuildSelfLaunchRequest extends Omit<LaunchRequest, "wallet" | "buy"> {
|
|
284
246
|
linkedWalletId: string;
|
|
285
247
|
}
|
|
286
248
|
/** POST /api/v1/launch/self/build response for Solana (unsigned transaction). */
|
|
@@ -524,6 +486,59 @@ export interface MigrationStatus {
|
|
|
524
486
|
nextAttemptAt?: number;
|
|
525
487
|
gaveUpAt?: number;
|
|
526
488
|
}
|
|
489
|
+
/** GET /api/v1/tokens/:chain/:mint/events (BE-2094). The three event kinds one list returns. */
|
|
490
|
+
export type TokenEventKind = "trade" | "signal" | "callout";
|
|
491
|
+
export type TokenEventGroupVisibility = "public" | "pro" | "max" | "internal";
|
|
492
|
+
export interface TokenEventGroup {
|
|
493
|
+
name: string;
|
|
494
|
+
visibility: TokenEventGroupVisibility;
|
|
495
|
+
}
|
|
496
|
+
export interface TokenEventWallet {
|
|
497
|
+
address: string;
|
|
498
|
+
name: string | null;
|
|
499
|
+
walletKind: "dev" | "kol" | "smart" | "agent" | "tracked";
|
|
500
|
+
groups: TokenEventGroup[];
|
|
501
|
+
image: string | null;
|
|
502
|
+
isDev: boolean;
|
|
503
|
+
}
|
|
504
|
+
export type TokenEvent = {
|
|
505
|
+
id: string;
|
|
506
|
+
chain: Chain;
|
|
507
|
+
mint: string;
|
|
508
|
+
at: number;
|
|
509
|
+
wallet: TokenEventWallet | null;
|
|
510
|
+
} & ({
|
|
511
|
+
kind: "trade";
|
|
512
|
+
side: "buy" | "sell";
|
|
513
|
+
usd: number | null;
|
|
514
|
+
tokenAmount: number;
|
|
515
|
+
priceUsd: number | null;
|
|
516
|
+
marketCapUsd: number | null;
|
|
517
|
+
tx: string;
|
|
518
|
+
/** `W` or `L` on a sell whose outcome is known; omitted on buys and unknown sells. */
|
|
519
|
+
result?: "W" | "L" | null;
|
|
520
|
+
} | {
|
|
521
|
+
kind: "signal";
|
|
522
|
+
pattern: string;
|
|
523
|
+
summary: string;
|
|
524
|
+
tx: string | null;
|
|
525
|
+
} | {
|
|
526
|
+
kind: "callout";
|
|
527
|
+
caller: {
|
|
528
|
+
handle: string | null;
|
|
529
|
+
name: string | null;
|
|
530
|
+
rank: number | null;
|
|
531
|
+
};
|
|
532
|
+
size: number | null;
|
|
533
|
+
marketCapUsd: number | null;
|
|
534
|
+
tx: string;
|
|
535
|
+
status: string;
|
|
536
|
+
});
|
|
537
|
+
/** One page of a token's events, newest first. `nextCursor` continues it via `before`. */
|
|
538
|
+
export interface TokenEventsPage {
|
|
539
|
+
events: TokenEvent[];
|
|
540
|
+
nextCursor: string | null;
|
|
541
|
+
}
|
|
527
542
|
/** GET /api/v1/markets/:chain/:mint, unwrapped from `{ success, market }`. */
|
|
528
543
|
export interface MarketState {
|
|
529
544
|
/** Additive Release A fields are optional when connected to an older API. */
|
|
@@ -1210,8 +1225,18 @@ export interface ProfileChainPnl extends ProfilePnlEngineFields {
|
|
|
1210
1225
|
export interface ProfilePnlResult {
|
|
1211
1226
|
/** Public board figures including fee income; independent of pnl.totalUsd and its coverage. */
|
|
1212
1227
|
board?: ProfileBoardPnl;
|
|
1213
|
-
/**
|
|
1228
|
+
/**
|
|
1229
|
+
* The key's profile on Hyperliquid, every binding period: its own heading and net, also counted
|
|
1230
|
+
* in `pnl.totalUsd` when `read` is true (see `perpsInTotal`). Unrealized is at each wallet's live
|
|
1231
|
+
* cutoff, and facts stop at that same cutoff. A `read: false` section is never a zero.
|
|
1232
|
+
*/
|
|
1214
1233
|
hyperliquid?: HyperliquidPnlSection;
|
|
1234
|
+
/**
|
|
1235
|
+
* True when `pnl.totalUsd` includes `hyperliquid.netUsd`. False when the section was not read,
|
|
1236
|
+
* and then `pnl.totalUsd` is the spot total. Absent from servers that predate it: their
|
|
1237
|
+
* `pnl.totalUsd` never included perps.
|
|
1238
|
+
*/
|
|
1239
|
+
perpsInTotal?: boolean;
|
|
1215
1240
|
success: true;
|
|
1216
1241
|
keyPrefix: string;
|
|
1217
1242
|
pnl: ProfilePnlEngineFields & {
|
|
@@ -2888,7 +2913,7 @@ export interface AtomicFirstBuyRequest {
|
|
|
2888
2913
|
* buy via `firstBuys` instead, so it lands as bundle leg 1 against a still-virgin curve) plus the
|
|
2889
2914
|
* creator's own payer and 1-4 first-buy legs.
|
|
2890
2915
|
*/
|
|
2891
|
-
export interface BuildAtomicLaunchRequest extends Omit<LaunchRequest, "buyAmount"> {
|
|
2916
|
+
export interface BuildAtomicLaunchRequest extends Omit<LaunchRequest, "buyAmount" | "buy" | "wallet"> {
|
|
2892
2917
|
payer: AtomicLaunchPayer;
|
|
2893
2918
|
/** 1 to 4 buy legs, sharing the launch transaction's own recent blockhash and landing atomically with it (Jito's 5-transaction bundle cap: 1 launch + up to 4 buys). */
|
|
2894
2919
|
firstBuys: AtomicFirstBuyRequest[];
|
|
@@ -3093,6 +3118,24 @@ export declare class CandleClient {
|
|
|
3093
3118
|
slippageBps?: number;
|
|
3094
3119
|
}): Promise<QuoteResult>;
|
|
3095
3120
|
getFeed(bucket: FeedBucket, chain?: Chain): Promise<FeedResult>;
|
|
3121
|
+
/**
|
|
3122
|
+
* One page of one token's events: every signal, callout and tracked-wallet trade the deployment
|
|
3123
|
+
* has, plus Candle's own trades, newest first (`GET /api/v1/tokens/:chain/:mint/events`).
|
|
3124
|
+
* Needs no key; a configured key changes only the wallets' `groups` and the rate limit. The
|
|
3125
|
+
* route is off until the deployment sets `TOKEN_EVENTS_ENABLED` on; off it answers
|
|
3126
|
+
* 503 `TOKEN_EVENTS_DISABLED`.
|
|
3127
|
+
*
|
|
3128
|
+
* `since` (inclusive ISO 8601) and `limit` (1 to 1000, default 200) go to the route. `kind`
|
|
3129
|
+
* filters THIS page locally -- the route has no kind parameter -- so a filtered page can be
|
|
3130
|
+
* shorter than `limit` while older events of other kinds remain: keep paging with the returned
|
|
3131
|
+
* `nextCursor` as `before` until it is null.
|
|
3132
|
+
*/
|
|
3133
|
+
getTokenEvents(chain: Chain, mint: string, opts?: {
|
|
3134
|
+
kind?: TokenEventKind;
|
|
3135
|
+
since?: string;
|
|
3136
|
+
limit?: number;
|
|
3137
|
+
before?: string;
|
|
3138
|
+
}): Promise<TokenEventsPage>;
|
|
3096
3139
|
verify(chain: Chain, mint: string): Promise<VerifyResult>;
|
|
3097
3140
|
getOwnProfile(): Promise<OwnAgentProfile>;
|
|
3098
3141
|
updateOwnProfile(patch: OwnAgentProfilePatch): Promise<{
|
|
@@ -3156,9 +3199,14 @@ export declare class CandleClient {
|
|
|
3156
3199
|
* it. A server that predates the table answers 404 (`CandleApiError`).
|
|
3157
3200
|
*/
|
|
3158
3201
|
getPlans(): Promise<AgentPlansResult>;
|
|
3159
|
-
dryRunLaunch(req: LaunchRequest): Promise<DryRunResult>;
|
|
3160
|
-
/**
|
|
3161
|
-
|
|
3202
|
+
dryRunLaunch(req: LaunchRequest): Promise<DryRunResult | SelfLaunchDryRunResult>;
|
|
3203
|
+
/** Resolve only wallets explicitly named by this caller; server gates remain authoritative. */
|
|
3204
|
+
private prepareLaunch;
|
|
3205
|
+
/**
|
|
3206
|
+
* Launch from the named wallet (embedded by default), optionally with a whole-unit `buy`.
|
|
3207
|
+
* TEE wallets use selfLaunch()'s signing and recovery flow, including SelfLaunchOutcomeError
|
|
3208
|
+
* on Hood. Embedded launches use the idempotent retries described below.
|
|
3209
|
+
* Generates `clientLaunchId` when absent and
|
|
3162
3210
|
* re-sends the SAME id on retryable failures; see the module doc for the exact policy.
|
|
3163
3211
|
*
|
|
3164
3212
|
* The id this call sent, yours or the generated one, is on the result
|
|
@@ -3236,9 +3284,10 @@ export declare class CandleClient {
|
|
|
3236
3284
|
* `oldestMarkAt`: an unpriced position is counted there, never valued at zero.
|
|
3237
3285
|
*
|
|
3238
3286
|
* The figures are the key's share of the account's one P&L read, the console's figures to the
|
|
3239
|
-
* cent (`pnl.totalUsd` is the console's P&L
|
|
3240
|
-
* wallets, not one pool across them, and
|
|
3241
|
-
* `ProfilePnlResult` for every meaning that
|
|
3287
|
+
* cent (`pnl.totalUsd` is the console's P&L, plus the Hyperliquid net when `perpsInTotal`).
|
|
3288
|
+
* Since 2026-10-02 the total is the sum of the key's wallets, not one pool across them, and
|
|
3289
|
+
* `lookback` is the account's activity bound; see `ProfilePnlResult` for every meaning that
|
|
3290
|
+
* changed.
|
|
3242
3291
|
*
|
|
3243
3292
|
* Check `unvalued` and `truncated` before quoting the number: the first counts fills that had
|
|
3244
3293
|
* no trusted USD price and were left out rather than counted as zero, the second says the
|
|
@@ -3386,6 +3435,8 @@ export declare class CandleClient {
|
|
|
3386
3435
|
* recording anything; the `clientLaunchId` stays unused. Does not check the payer's balance, the
|
|
3387
3436
|
* day cap, a `clientLaunchId` already used with another body or payer, or a Solana TEE wallet's
|
|
3388
3437
|
* USD spend window; `buildSelfLaunch()` can still refuse for those.
|
|
3438
|
+
*
|
|
3439
|
+
* @deprecated Use dryRunLaunch({ ...fields, wallet }) for one release.
|
|
3389
3440
|
*/
|
|
3390
3441
|
dryRunSelfLaunch(req: BuildSelfLaunchRequest): Promise<SelfLaunchDryRunResult>;
|
|
3391
3442
|
/**
|
|
@@ -3400,6 +3451,8 @@ export declare class CandleClient {
|
|
|
3400
3451
|
* round trip (build -> sign -> broadcast -> confirm) in one call for both Solana and Hood; call
|
|
3401
3452
|
* this method directly only to drive the steps yourself. See "Self-signed launches" in
|
|
3402
3453
|
* docs/headless-launch.md.
|
|
3454
|
+
*
|
|
3455
|
+
* @deprecated Use launch({ ...fields, wallet }) for one release.
|
|
3403
3456
|
*/
|
|
3404
3457
|
buildSelfLaunch(req: BuildSelfLaunchRequest): Promise<BuildSelfLaunchResult>;
|
|
3405
3458
|
/** buildSelfLaunch()'s request; selfLaunch() passes its `op` so its exits can expose the id. */
|
|
@@ -3669,6 +3722,8 @@ export declare class CandleClient {
|
|
|
3669
3722
|
* error's doc describes for each `feeOutcome`. This method sends nothing a second time and
|
|
3670
3723
|
* does not pay a fee again. An error from before the create-curve receipt is unchanged,
|
|
3671
3724
|
* including a create-curve broadcast whose answer was lost: that case keeps no hash.
|
|
3725
|
+
*
|
|
3726
|
+
* @deprecated Use launch({ ...fields, wallet }) for one release.
|
|
3672
3727
|
*/
|
|
3673
3728
|
selfLaunch(req: SelfLaunchRequest): Promise<ConfirmSelfLaunchResult>;
|
|
3674
3729
|
/** selfLaunch()'s steps. Every error leaves through selfLaunch()'s runOperation(), which adds the id. */
|
|
@@ -4103,7 +4158,7 @@ export declare function __setEvmReceiptWaitForTest(opts: {
|
|
|
4103
4158
|
pollMs?: number;
|
|
4104
4159
|
} | null): void;
|
|
4105
4160
|
/** This build's own version. Kept in lockstep with package.json by the release-bump CI guard. */
|
|
4106
|
-
export declare const SDK_VERSION = "0.6.
|
|
4161
|
+
export declare const SDK_VERSION = "0.6.9";
|
|
4107
4162
|
/** Test seam: the once-per-process latch would otherwise weld the suite's first case to the rest. */
|
|
4108
4163
|
export declare function __resetSdkUpdateNoticeForTest(): void;
|
|
4109
4164
|
//# sourceMappingURL=client.d.ts.map
|