@ftptech/canton-agent-wallet 1.4.3 → 1.6.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/README.md CHANGED
@@ -30,7 +30,7 @@ canton-agent-wallet claim # accept incoming transfers
30
30
  canton-agent-wallet merge [--target <n>] [--batch <n>] [--max-rounds <n>] [--dry-run] [--admin <registrar> --id <instrument>] # consolidate dust (CC, or a registry token) so a busy wallet can be enumerated + spent again
31
31
  canton-agent-wallet preapproval [--status] [--admin <DSO>] [--days <n>] # MERCHANT: self-provision this wallet's own TransferPreapproval so transfer-factory payments settle in one round-trip (--status just checks)
32
32
  canton-agent-wallet pay --relay-url <url> <url> # fetch a URL, auto-paying any x402 402 challenge
33
- canton-agent-wallet swap --in <SYM> --out <SYM> --amount <n> [--slippage <pct>] [--direct] [--no-wait] [--max-fee <cc>] [--swap-merchant <party>] [--no-preapprove] # swap CC <-> a CIP-56 registry token via Tradecraft; waits for the output to land (see below)
33
+ canton-agent-wallet swap --in <SYM> --out <SYM> --amount <n> [--venue cantex|tradecraft|auto] [--slippage <pct>] [--direct] [--no-wait] [--max-fee <cc>] [--swap-merchant <party>] [--no-preapprove] # swap CC <-> a CIP-56 registry token via Tradecraft; waits for the output to land (see below)
34
34
  canton-agent-wallet withdraw --to <party> [--amount <n>] [--admin <registrar> --id <instrument>] # send CC (default: full balance) or a registry token back out
35
35
  canton-agent-wallet export # print the private key (backup; guard it)
36
36
  ```
@@ -149,7 +149,8 @@ exactly like funding an EVM agent.
149
149
  ### Swap: CC ↔ CIP-56 registry tokens
150
150
 
151
151
  `swap` exchanges CC for a DA Registry token (USDCx, CBTC, USDXLR, cETH, eXAG,
152
- eXAU) or back, on the Tradecraft AMM (`api.tradecraft.fi`). It sends the
152
+ eXAU) or back, on a swap venue: **Cantex Connect** (default) or the
153
+ **Tradecraft** AMM (`api.tradecraft.fi`). It sends the
153
154
  input to the pair's pool party and receives the counter-asset; the output
154
155
  preapproval is auto-provisioned so the pool can deliver directly.
155
156
 
@@ -187,8 +188,24 @@ command — the input was already sent, so it degrades to a missed poll and the
187
188
  sent (fire-and-forget) and pick up the output yourself with `claim` — for
188
189
  automation that must not block.
189
190
 
190
- **Slippage.** `--slippage <pct>` is enforced **on-ledger only when the ticket
191
- carries a memo key** — the floor rides in the transfer memo the pool reads.
191
+ **Venues (`--venue`).** `cantex` (default) routes through Cantex Connect: the
192
+ input goes to Cantex's swap party, the transfer memo names the buy symbol, and
193
+ Cantex delivers the output at the rate it has when it executes. Its minimum is
194
+ 50 CC-equivalent per trade; a smaller CC input never uses Cantex and the CLI
195
+ says so. `tradecraft` routes through the Tradecraft AMM pool for the pair.
196
+ `auto` quotes both and takes the better expected output. Whatever the venue,
197
+ the receiver is pinned to a client-side constant (Cantex: the Connect party,
198
+ override `CANTON_AGENT_CANTEX_PARTY`; Tradecraft: the pool derived from your
199
+ trusted `amm_cid`), and a ticket naming any other party is refused before
200
+ anything moves. eXAG and eXAU are supported in code but their Cantex pools are
201
+ illiquid at the time of writing, so those inputs come back.
202
+
203
+ **Slippage.** On **Cantex** there is no on-ledger floor: Cantex fills at its
204
+ own rate at execution time, and `--slippage <pct>` only sets the delivery
205
+ threshold the wait loop reports against (the CLI prints `! no on-ledger floor
206
+ on Cantex …`). On **Tradecraft** `--slippage <pct>` is enforced **on-ledger only
207
+ when the ticket carries a memo key** — the floor rides in the transfer memo the
208
+ pool reads.
192
209
  Without a memo key the trade fills at **market price** and the CLI prints
193
210
  `! no slippage protection on this ticket …` so the absence is never silent. An
194
211
  input below the pool's minimum is safely returned by the pool (no loss).
@@ -202,7 +219,8 @@ all.
202
219
  The output preapproval is provisioned automatically so the pool can deliver the
203
220
  counter-asset directly; `--no-preapprove` skips it (e.g. it already exists).
204
221
 
205
- Env: `CANTON_AGENT_SWAP_URL` (endpoint override), `CANTON_AGENT_TRADECRAFT_AMM_CID`
222
+ Env: `CANTON_AGENT_SWAP_URL` (endpoint override), `CANTON_AGENT_CANTEX_PARTY` and
223
+ `CANTON_AGENT_CANTEX_URL` (Cantex Connect party / quote URL), `CANTON_AGENT_TRADECRAFT_AMM_CID`
206
224
  (the trusted `amm_cid` every ticket's pool party must derive from — a compromised
207
225
  endpoint cannot redirect funds to another party), `CANTON_AGENT_SWAP_MERCHANT`
208
226
  (pin the expected fee payee), `CANTON_AGENT_TRADECRAFT_API` and
@@ -228,6 +246,30 @@ On a 402 it resolves the transfer factory via the relay, builds the CIP-56
228
246
  transfer, signs the prepared-transaction hash locally, has the relay submit it,
229
247
  then retries the request with the on-ledger proof.
230
248
 
249
+ The swap is exported too, as the two halves the CLI itself runs — venue routing
250
+ (`resolveSwapIntent` → `resolveSwapTicket`, which pays the endpoint fee only on
251
+ the non-direct path and returns advisory `notes`) and execution
252
+ (`executeSwap`). The MCP server's `swap` tool is built on exactly these, so a
253
+ routing rule cannot drift between the two:
254
+
255
+ ```ts
256
+ import {
257
+ resolveSwapIntent, resolveSwapTicket, swapFloorNotes, executeSwap,
258
+ resolveTrustedDsoParty, makePayingFetch, SWAP_MAX_FEE_CC,
259
+ } from "@ftptech/canton-agent-wallet";
260
+
261
+ const intent = resolveSwapIntent("CC", "USDCx"); // fail-closed on unknown symbols
262
+ const { ticket, notes } = await resolveSwapTicket({
263
+ intent, amount: "60", slippagePct: 1,
264
+ venue: "cantex", venueExplicit: false, // default routing, Tradecraft fallback
265
+ direct: false, // endpoint ticket (fee) — true = free direct quote
266
+ dsoParty: resolveTrustedDsoParty(process.env, "canton:mainnet"),
267
+ payingFetch: () => makePayingFetch({ relayUrl, network: "canton:mainnet", maxPaymentValue: SWAP_MAX_FEE_CC }),
268
+ });
269
+ const floor = swapFloorNotes(ticket, 1, intent.outCanon); // what bounds the fill — say it
270
+ const r = await executeSwap({ amount: "60", ticket }); // sends, waits for the output to land
271
+ ```
272
+
231
273
  ## Config (env)
232
274
 
233
275
  - `CANTON_AGENT_RELAY_URL`: facilitator relay base URL. **Required** for the
package/dist/cli.js CHANGED
@@ -59,18 +59,15 @@ import { agentKeyFromPrivatePem } from "./keys.js";
59
59
  import { makePayingFetch } from "./pay.js";
60
60
  import { RelayClient, isHoldingsExceedNodeLimitError } from "./relay-client.js";
61
61
  import { claimAll, selfProvisionPreapproval, selfProvisionRegistryPreapproval, } from "./tx.js";
62
- import { isTrustedRegistryAdmin, resolveSwapSymbol, KNOWN_INSTRUMENTS, } from "./registry-parties.js";
62
+ import { isTrustedRegistryAdmin } from "./registry-parties.js";
63
63
  import { mergeHoldings } from "./merge.js";
64
64
  import { withdraw } from "./withdraw.js";
65
- import { buildLocalTicket, fetchTicketFromEndpoint, executeSwap, tradecraftMinInput, } from "./swap.js";
65
+ import { executeSwap } from "./swap.js";
66
+ import { resolveSwapIntent, resolveSwapTicket, swapFloorNotes, parseSwapVenue, parseSlippagePct, SWAP_MAX_FEE_CC, } from "./swap-route.js";
66
67
  import { fundViaQuest } from "./quest-fund.js";
67
68
  import { installProxyFromEnv } from "./proxy.js";
68
69
  import { flag, boolFlag, intFlag, positionals, resolveNetwork, resolveRelayUrl, MISSING_RELAY_HELP, withdrawAmount, preapprovalMode, } from "./cli-args.js";
69
70
  import { resolveTrustedDsoParty } from "./trusted-dso.js";
70
- /** Ceiling on the swap-ticket fee the endpoint may charge, in CC. The live fee is
71
- * 0.01 CC, so this leaves a wide margin while still bounding a hijacked endpoint
72
- * to a trivial loss instead of the agent's balance. Override with --max-fee. */
73
- const SWAP_MAX_FEE_CC = "0.5";
74
71
  const API_KEY = process.env.CANTON_AGENT_API_KEY;
75
72
  function fail(msg) {
76
73
  console.error(msg);
@@ -475,135 +472,59 @@ async function main() {
475
472
  break;
476
473
  }
477
474
  case "swap": {
478
- // Swap `--amount` of `--in` for `--out` on Tradecraft. The pool address,
479
- // slippage floor, and AMM meta-key are resolved into a ticket; then the
480
- // output is pre-approved, the input is sent to the pool with the floor in
481
- // meta, and the returning transfer is claimed. Symbols resolve to their
482
- // MainNet registrar via KNOWN_INSTRUMENTS (CC = omit an instrument).
475
+ // Swap `--amount` of `--in` for `--out` on a venue. Routing (venue choice,
476
+ // fallbacks, minimums) lives in swap-route.ts and is shared with the MCP
477
+ // `swap` tool; this case only parses flags and prints.
483
478
  const inSym = flag(args, "--in");
484
479
  const outSym = flag(args, "--out");
485
480
  const amount = flag(args, "--amount");
486
481
  if (!inSym || !outSym || !amount) {
487
- return fail("usage: canton-agent-wallet swap --in <SYMBOL> --out <SYMBOL> --amount <n> [--slippage <pct>] [--direct] [--no-wait]");
488
- }
489
- const slippageRaw = flag(args, "--slippage");
490
- const slippagePct = slippageRaw === undefined ? 1 : Number(slippageRaw);
491
- if (!Number.isFinite(slippagePct) || slippagePct < 0 || slippagePct >= 100) {
492
- return fail("swap: --slippage must be a percentage in [0, 100)");
493
- }
494
- // Resolve each leg to a CANONICAL symbol, and FAIL CLOSED on an unrecognized
495
- // one. Without this an unknown symbol would fall back to native Canton Coin,
496
- // so a typo like `--in USDC` (for USDCx) would silently send real CC to a
497
- // `tc-swp_USDC-…` pool. We also use the canonical casing for the pool party
498
- // and the quote so `--in usdcx` targets the real `USDCx` pool, not a
499
- // case-mismatched non-existent one.
500
- const inLeg = resolveSwapSymbol(inSym);
501
- const outLeg = resolveSwapSymbol(outSym);
502
- for (const [flagName, sym, leg] of [
503
- ["--in", inSym, inLeg],
504
- ["--out", outSym, outLeg],
505
- ]) {
506
- if (leg.kind === "unknown") {
507
- return fail(`swap: ${flagName} ${JSON.stringify(sym)} is not a known instrument. ` +
508
- `Use CC or one of: ${Object.keys(KNOWN_INSTRUMENTS).join(", ")} ` +
509
- `(add others via CANTON_AGENT_REGISTRY_TRUSTED_PARTIES + code).`);
510
- }
511
- }
512
- if (inLeg.kind === "unknown" || outLeg.kind === "unknown")
513
- return; // unreachable: fail() above exits
514
- if (inLeg.kind === "cc" && outLeg.kind === "cc") {
515
- return fail("swap: --in and --out are both CC — nothing to swap");
516
- }
517
- const inCanon = inLeg.symbol;
518
- const outCanon = outLeg.symbol;
519
- const inInstrument = inLeg.kind === "registry" ? inLeg.instrument : null;
520
- const outInstrument = outLeg.kind === "registry" ? outLeg.instrument : null;
521
- // Advisory min-input warning (mirrors the Tradecraft web app; not a hard
522
- // limit — the pool returns the funds if a small trade will not fill).
523
- const minIn = tradecraftMinInput(inCanon);
524
- if (minIn !== undefined && Number(amount) < minIn) {
525
- console.error(` ! ${amount} ${inCanon} is below Tradecraft's advertised minimum of ${minIn} ${inCanon} — ` +
526
- `the trade may be returned unfilled (no loss). Proceeding.`);
527
- }
528
- // The amm_cid is a CLIENT-TRUSTED constant (config, never the endpoint): the
529
- // pool party the funds are sent to must derive from it, so a compromised swap
530
- // endpoint cannot redirect the swap to an attacker party.
531
- const trustedAmmCid = process.env.CANTON_AGENT_TRADECRAFT_AMM_CID ??
532
- "122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7";
533
- // TWO ways to get the ticket (pool party, slippage minimum, quote):
534
- // DEFAULT — our x402 swap endpoint: a small CC fee for a ticket that stays
535
- // current with Tradecraft's pools/amm_cid/minimums (a bare Tradecraft
536
- // snapshot goes stale silently). Discovered via CANTON_AGENT_SWAP_URL, or a
537
- // baked default. The returned ticket is validated against the trusted amm_cid
538
- // + the locally-resolved instruments (fetchTicketFromEndpoint), so the
539
- // endpoint is trusted for the price only, never for where funds go.
540
- // --direct — resolve the ticket locally straight from Tradecraft (no fee),
541
- // for power users who accept the stale-snapshot risk.
542
- let ticket;
543
- if (boolFlag(args, "--direct")) {
544
- const memoKey = process.env.CANTON_AGENT_TRADECRAFT_MEMO_KEY;
545
- const tradecraftApi = process.env.CANTON_AGENT_TRADECRAFT_API ?? "https://api.tradecraft.fi";
546
- ticket = await buildLocalTicket({
547
- tradecraftApi,
548
- ammCid: trustedAmmCid,
549
- ...(memoKey ? { memoKey } : {}),
550
- inSymbol: inCanon,
551
- outSymbol: outCanon,
552
- amount,
553
- slippagePct,
554
- inInstrument,
555
- outInstrument,
556
- });
557
- if (!memoKey) {
558
- console.error(" ! no slippage protection (CANTON_AGENT_TRADECRAFT_MEMO_KEY unset) — filling at market price");
559
- }
560
- }
561
- else {
562
- const swapUrl = process.env.CANTON_AGENT_SWAP_URL ?? "https://swap.ftptech.xyz";
563
- const existing = loadWallet();
564
- const relayUrl = resolveRelayUrl(args) ?? existing?.relayUrl ?? fail(MISSING_RELAY_HELP);
565
- // The endpoint is UNTRUSTED for money safety (see assertTicketMatchesIntent),
566
- // and this call auto-settles whatever 402 it answers with BEFORE any ticket
567
- // validation runs. Without a ceiling that is a blank cheque: a hijacked
568
- // endpoint (or its DNS/TLS) could quote the agent's whole balance to a payee
569
- // of its choosing. Bound both: a ceiling that always applies, and — when the
570
- // operator names the merchant — an exact payee pin that reduces the exposure
571
- // to zero.
572
- const maxFee = flag(args, "--max-fee") ?? SWAP_MAX_FEE_CC;
573
- const swapMerchant = flag(args, "--swap-merchant") ?? process.env.CANTON_AGENT_SWAP_MERCHANT;
574
- const payingFetch = await makePayingFetch({
575
- relayUrl,
576
- network: existing?.network ?? resolveNetwork(args),
577
- apiKey: API_KEY,
578
- maxPaymentValue: maxFee,
579
- ...(swapMerchant ? { expectedPayTo: swapMerchant } : {}),
580
- });
581
- ticket = await fetchTicketFromEndpoint({
582
- swapUrl,
583
- inSymbol: inCanon,
584
- outSymbol: outCanon,
585
- amount,
586
- slippagePct,
587
- payingFetch,
588
- inInstrument,
589
- outInstrument,
590
- trustedAmmCid,
591
- });
592
- }
593
- console.log(`quote: ${amount} ${inCanon} -> ~${ticket.quote} ${outCanon}\n pool: ${ticket.poolParty}`);
594
- if (ticket.memoKey) {
595
- console.log(` min ${ticket.minOutput} enforced at ${slippagePct}% slippage`);
596
- }
597
- else {
598
- // Say it on BOTH paths. The floor rides in the transfer memo, so without
599
- // a memo key nothing constrains what the pool returns — the trade fills
600
- // at whatever the pool quotes when it executes, and --slippage did
601
- // nothing. The --direct branch already warns; a ticket from the endpoint
602
- // can be equally unprotected (the service leaves the key unset), and
603
- // silence there reads as "protected".
604
- console.error(" ! no slippage protection on this ticket — filling at market price " +
605
- "(the swap endpoint set no memo key)");
606
- }
482
+ return fail("usage: canton-agent-wallet swap --in <SYMBOL> --out <SYMBOL> --amount <n> [--venue cantex|tradecraft|auto] [--slippage <pct>] [--direct] [--no-wait]");
483
+ }
484
+ const slippagePct = parseSlippagePct(flag(args, "--slippage"));
485
+ // Venue selection. Default CANTEX (Cantex Connect works today and is keyless);
486
+ // `tradecraft` uses pool addresses; `auto` compares free quotes from both
487
+ // eligible venues and picks the better expected output.
488
+ const venue = parseSwapVenue(flag(args, "--venue"));
489
+ const intent = resolveSwapIntent(inSym, outSym, { in: "--in", out: "--out" });
490
+ const { inCanon, outCanon } = intent;
491
+ const direct = boolFlag(args, "--direct");
492
+ const existing = loadWallet();
493
+ const dsoParty = resolveTrustedDsoParty(process.env, existing?.network ?? resolveNetwork(args));
494
+ const printNote = (n) => {
495
+ if (n.level === "warn")
496
+ console.error(` ! ${n.text}`);
497
+ else
498
+ console.log(` ${n.text}`);
499
+ };
500
+ const { ticket } = await resolveSwapTicket({
501
+ intent,
502
+ amount,
503
+ slippagePct,
504
+ venue,
505
+ venueExplicit: flag(args, "--venue") !== undefined,
506
+ direct,
507
+ dsoParty,
508
+ onNote: printNote,
509
+ payingFetch: async () => {
510
+ const relayUrl = resolveRelayUrl(args) ?? existing?.relayUrl ?? fail(MISSING_RELAY_HELP);
511
+ // The endpoint auto-settles whatever 402 it answers BEFORE any ticket
512
+ // validation, so bound the fee: a ceiling that always applies, plus an
513
+ // optional exact payee pin.
514
+ const maxFee = flag(args, "--max-fee") ?? SWAP_MAX_FEE_CC;
515
+ const swapMerchant = flag(args, "--swap-merchant") ?? process.env.CANTON_AGENT_SWAP_MERCHANT;
516
+ return makePayingFetch({
517
+ relayUrl,
518
+ network: existing?.network ?? resolveNetwork(args),
519
+ apiKey: API_KEY,
520
+ maxPaymentValue: maxFee,
521
+ ...(swapMerchant ? { expectedPayTo: swapMerchant } : {}),
522
+ });
523
+ },
524
+ });
525
+ console.log(`quote: ${amount} ${inCanon} -> ~${ticket.quote} ${outCanon}\n venue: ${ticket.venue}\n pool: ${ticket.poolParty}`);
526
+ for (const n of swapFloorNotes(ticket, slippagePct, outCanon))
527
+ printNote(n);
607
528
  // A registry output is preapproved by default so the pool can deliver it
608
529
  // directly (it delivers only to a preapproved receiver); --no-preapprove
609
530
  // opts out (e.g. the preapproval already exists).
@@ -625,6 +546,12 @@ async function main() {
625
546
  else if (sr.delivered !== undefined) {
626
547
  console.log(`${head}\n received ${sr.delivered} ${outCanon}`);
627
548
  }
549
+ else if (sr.inputReturned) {
550
+ // The CC came back instead of the output: the venue would not fill the
551
+ // trade (below its minimum) and handed the input back directly.
552
+ console.log(`${head}\n ! input RETURNED — nothing was swapped: the CC balance is back at its ` +
553
+ `pre-send level (the venue hands back a trade it will not fill, e.g. below its minimum)`);
554
+ }
628
555
  else {
629
556
  // Waited, no arrival: still settling, or a below-minimum trade whose input
630
557
  // was returned (the per-tick claim picks that return up — `claimed` shows
@@ -720,7 +647,7 @@ async function main() {
720
647
  break;
721
648
  }
722
649
  default:
723
- console.error("canton-agent-wallet: create | address | balance | claim | fund --pay-proxy-url <url> | merge [--target <n>] [--batch <n>] [--max-rounds <n>] [--dry-run] [--yes] [--admin <registrar> --id <instrument>] | preapproval [--status] [--admin <DSO>] [--operator-token <t>] [--days <n>] [--expires-at <iso>] | pay [--asset <symbol>] <url> | swap --in <SYM> --out <SYM> --amount <n> [--slippage <pct>] [--direct] [--no-wait] [--max-fee <cc>] [--swap-merchant <party>] [--no-preapprove] | withdraw --to <party> [--amount <n>] [--admin <registrar> --id <instrument>] | export | import\n" +
650
+ console.error("canton-agent-wallet: create | address | balance | claim | fund --pay-proxy-url <url> | merge [--target <n>] [--batch <n>] [--max-rounds <n>] [--dry-run] [--yes] [--admin <registrar> --id <instrument>] | preapproval [--status] [--admin <DSO>] [--operator-token <t>] [--days <n>] [--expires-at <iso>] | pay [--asset <symbol>] <url> | swap --in <SYM> --out <SYM> --amount <n> [--venue cantex|tradecraft|auto] [--slippage <pct>] [--direct] [--no-wait] [--max-fee <cc>] [--swap-merchant <party>] [--no-preapprove] | withdraw --to <party> [--amount <n>] [--admin <registrar> --id <instrument>] | export | import\n" +
724
651
  " relay required for create/pay/import/fund: --relay-url <url> or CANTON_AGENT_RELAY_URL\n" +
725
652
  " fund = bootstrap a funded wallet via the hosted quest (--pay-proxy-url or CANTON_AGENT_PAY_PROXY_URL).\n" +
726
653
  " preapproval = merchant TransferPreapproval setup for the transfer-factory (V3, 1-tx) path (--status to just check).");
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export * from "./canton-hash.js";
12
12
  export * from "./trusted-dso.js";
13
13
  export * from "./registry-parties.js";
14
14
  export * from "./quest-fund.js";
15
+ export * from "./swap.js";
16
+ export * from "./swap-route.js";
15
17
  export { assertPreparedTransferMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, type HashBindingOptions, type PreparedTransferExpectation, type OnboardingTopologyExpectation, } from "./verify-prepared.js";
16
18
  export { fundViaQuest, QuestFundError } from "./quest-fund.js";
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,10 @@ export * from "./canton-hash.js";
12
12
  export * from "./trusted-dso.js";
13
13
  export * from "./registry-parties.js";
14
14
  export * from "./quest-fund.js";
15
+ // The swap primitive + its venue routing. Exported so the MCP `swap` tool runs
16
+ // the SAME routing as the CLI instead of a second copy that drifts.
17
+ export * from "./swap.js";
18
+ export * from "./swap-route.js";
15
19
  export { assertPreparedTransferMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, } from "./verify-prepared.js";
16
20
  // The one place the "unreadable balance is not an empty wallet" rule lives for
17
21
  // the CLI. Exported so the MCP can be pinned against it by test rather than
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,GAIhC,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,+EAA+E;AAC/E,oEAAoE;AACpE,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,GAIhC,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { buildLocalTicket, buildCantexTicket, fetchTicketFromEndpoint, type SwapInstrument, type SwapTicket, type SwapVenue } from "./swap.js";
2
+ /** A venue to route to, or `auto` (compare free quotes, take the better output). */
3
+ export type SwapVenueChoice = SwapVenue | "auto";
4
+ /** The venue used when the caller names none. */
5
+ export declare const DEFAULT_SWAP_VENUE: SwapVenueChoice;
6
+ /** Ceiling on the swap-ticket fee the endpoint may charge, in CC. The live fee is
7
+ * 0.01 CC, so this leaves a wide margin while still bounding a hijacked endpoint
8
+ * to a trivial loss instead of the agent's balance. */
9
+ export declare const SWAP_MAX_FEE_CC = "0.5";
10
+ /** The Tradecraft AMM-rules contract every pool party derives from. CLIENT-TRUSTED
11
+ * (config, never the endpoint): the receiver of a Tradecraft swap must be a
12
+ * `tc-swp_…::<this>` party, so a compromised endpoint cannot redirect funds. */
13
+ export declare const DEFAULT_TRADECRAFT_AMM_CID = "122096fe076cc065af0cb38f94caa60e8ddfecbe8f0cfe10655ae7aa06fab99c66b7";
14
+ /** Our x402-gated ticket endpoint (the default, fee-charging path). */
15
+ export declare const DEFAULT_SWAP_URL = "https://swap.ftptech.xyz";
16
+ /** Tradecraft's public REST (the `direct` path quotes here). */
17
+ export declare const DEFAULT_TRADECRAFT_API = "https://api.tradecraft.fi";
18
+ /** Parse a venue choice; absent = the default. Throws on anything else. */
19
+ export declare function parseSwapVenue(raw: string | undefined): SwapVenueChoice;
20
+ /** Parse a slippage percentage; absent = 1%. Throws outside [0, 100). */
21
+ export declare function parseSlippagePct(raw: string | number | undefined): number;
22
+ /** The two legs of a swap, resolved to canonical symbols + instruments. */
23
+ export interface SwapIntent {
24
+ inCanon: string;
25
+ outCanon: string;
26
+ /** null = native Canton Coin. */
27
+ inInstrument: SwapInstrument;
28
+ outInstrument: SwapInstrument;
29
+ }
30
+ /**
31
+ * Resolve each leg to a CANONICAL symbol, and FAIL CLOSED on an unrecognized one.
32
+ * Without this an unknown symbol would fall back to native Canton Coin, so a typo
33
+ * like `USDC` (for USDCx) would silently send real CC to a `tc-swp_USDC-…` pool.
34
+ * The canonical casing also targets the real `USDCx` pool, not a case-mismatched
35
+ * non-existent one. `labels` name the two inputs in the error the way the caller
36
+ * spells them (`--in` for the CLI, `in` for a tool argument).
37
+ */
38
+ export declare function resolveSwapIntent(inSym: string, outSym: string, labels?: {
39
+ in: string;
40
+ out: string;
41
+ }): SwapIntent;
42
+ /** An advisory line for the user. `info` is progress ("auto: … -> chose cantex");
43
+ * `warn` is something they should read before trusting the outcome (a fallback
44
+ * taken, a minimum not met, a missing floor). */
45
+ export interface SwapNote {
46
+ level: "info" | "warn";
47
+ text: string;
48
+ }
49
+ export interface ResolveSwapTicketOpts {
50
+ intent: SwapIntent;
51
+ /** Amount of the input instrument, as a ledger decimal string. */
52
+ amount: string;
53
+ slippagePct: number;
54
+ venue: SwapVenueChoice;
55
+ /** True when the caller NAMED the venue. An explicit `cantex` surfaces a Cantex
56
+ * failure or minimum as an error; the default (nothing named) routes to
57
+ * Tradecraft instead. A failed quote sends no funds, so neither can strand. */
58
+ venueExplicit: boolean;
59
+ /** Quote locally (free, no endpoint). `auto` always quotes locally. */
60
+ direct: boolean;
61
+ /** The FULL DSO party — Cantex quotes name Canton Coin by its admin. Required
62
+ * for a Cantex quote on the direct/auto path; undefined fails that venue. */
63
+ dsoParty: string | undefined;
64
+ /** Builds the fee-paying fetch for the endpoint path. Called only when that
65
+ * path is actually taken, so a direct or auto swap never constructs one (and
66
+ * never pays a fee). The caller bounds it (maxPaymentValue / expectedPayTo). */
67
+ payingFetch?: () => Promise<typeof globalThis.fetch>;
68
+ /** Streamed advisory lines, in the order they happen (also returned in
69
+ * `notes`). The CLI prints them as they come; a tool collects them. */
70
+ onNote?: (note: SwapNote) => void;
71
+ env?: NodeJS.ProcessEnv;
72
+ /** Injectable quote builders (tests). */
73
+ deps?: {
74
+ buildCantexTicket?: typeof buildCantexTicket;
75
+ buildLocalTicket?: typeof buildLocalTicket;
76
+ fetchTicketFromEndpoint?: typeof fetchTicketFromEndpoint;
77
+ };
78
+ }
79
+ export interface ResolvedSwapTicket {
80
+ ticket: SwapTicket;
81
+ notes: SwapNote[];
82
+ }
83
+ /**
84
+ * Resolve the ticket for a swap. DEFAULT path = our x402 `/swap` endpoint (a
85
+ * small CC fee for a ticket that stays current with each venue's pools/params);
86
+ * the returned ticket is validated against the trusted per-venue receiver +
87
+ * instruments inside `fetchTicketFromEndpoint`, so the endpoint is trusted for
88
+ * price only. The `direct` path resolves the venue's quote locally (no fee).
89
+ *
90
+ * Venue rules (identical for every caller):
91
+ * - `cantex` (default): a CC input below Cantex's minimum, or a Cantex quote
92
+ * failure, routes to Tradecraft — unless the caller named cantex explicitly,
93
+ * in which case it is an error.
94
+ * - `tradecraft`: Tradecraft only.
95
+ * - `auto`: FREE direct quotes from every eligible venue, best expected output
96
+ * wins; one venue erroring uses the other. Never pays the endpoint fee.
97
+ */
98
+ export declare function resolveSwapTicket(opts: ResolveSwapTicketOpts): Promise<ResolvedSwapTicket>;
99
+ /**
100
+ * What bounds the fill, as lines for the user. Cantex Connect fills at its own
101
+ * rate at execution time: the memo carries the buy symbol, not a client minimum,
102
+ * so NOTHING on-ledger bounds what comes back and slippage only sets the delivery
103
+ * threshold the wait loop reports against. Tradecraft enforces the floor from
104
+ * the memo when a memo key rides; with none it is a market fill and slippage did
105
+ * nothing. Said explicitly every time, so a caller who passed a slippage never
106
+ * reads the quiet quote line as a floor.
107
+ */
108
+ export declare function swapFloorNotes(ticket: SwapTicket, slippagePct: number, outCanon: string): SwapNote[];
109
+ //# sourceMappingURL=swap-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-route.d.ts","sourceRoot":"","sources":["../src/swap-route.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EAKvB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjD,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,EAAE,eAA0B,CAAC;AAE5D;;wDAEwD;AACxD,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC;;iFAEiF;AACjF,eAAO,MAAM,0BAA0B,yEACiC,CAAC;AAEzE,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAE3D,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAElE,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAMvE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAMzE;AAED,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,cAAc,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAA6B,GAC7D,UAAU,CA2BZ;AAED;;kDAEkD;AAClD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,eAAe,CAAC;IACvB;;oFAEgF;IAChF,aAAa,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB;kFAC8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;qFAEiF;IACjF,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IACrD;4EACwE;IACxE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,yCAAyC;IACzC,IAAI,CAAC,EAAE;QACL,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;QAC7C,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;QAC3C,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;KAC1D,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAoK7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,QAAQ,EAAE,CAuBZ"}