@ftptech/canton-agent-wallet 2.1.0 → 2.3.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.
Files changed (54) hide show
  1. package/README.md +53 -15
  2. package/dist/cli-args.d.ts +27 -0
  3. package/dist/cli-args.d.ts.map +1 -1
  4. package/dist/cli-args.js +74 -0
  5. package/dist/cli-args.js.map +1 -1
  6. package/dist/cli.js +139 -34
  7. package/dist/cli.js.map +1 -1
  8. package/dist/merge.d.ts +21 -2
  9. package/dist/merge.d.ts.map +1 -1
  10. package/dist/merge.js +194 -31
  11. package/dist/merge.js.map +1 -1
  12. package/dist/pay-lock.d.ts.map +1 -1
  13. package/dist/pay-lock.js +8 -14
  14. package/dist/pay-lock.js.map +1 -1
  15. package/dist/pay.d.ts +5 -1
  16. package/dist/pay.d.ts.map +1 -1
  17. package/dist/pay.js +43 -8
  18. package/dist/pay.js.map +1 -1
  19. package/dist/registry-parties.d.ts +6 -0
  20. package/dist/registry-parties.d.ts.map +1 -1
  21. package/dist/registry-parties.js +8 -0
  22. package/dist/registry-parties.js.map +1 -1
  23. package/dist/relay-client.d.ts +29 -0
  24. package/dist/relay-client.d.ts.map +1 -1
  25. package/dist/relay-client.js +83 -11
  26. package/dist/relay-client.js.map +1 -1
  27. package/dist/relay-signer.d.ts.map +1 -1
  28. package/dist/relay-signer.js +16 -1
  29. package/dist/relay-signer.js.map +1 -1
  30. package/dist/swap.d.ts +5 -0
  31. package/dist/swap.d.ts.map +1 -1
  32. package/dist/swap.js +29 -12
  33. package/dist/swap.js.map +1 -1
  34. package/dist/tx.d.ts +6 -11
  35. package/dist/tx.d.ts.map +1 -1
  36. package/dist/tx.js +11 -75
  37. package/dist/tx.js.map +1 -1
  38. package/dist/venue.d.ts +17 -11
  39. package/dist/venue.d.ts.map +1 -1
  40. package/dist/venue.js +20 -14
  41. package/dist/venue.js.map +1 -1
  42. package/dist/verify-prepared.d.ts +14 -26
  43. package/dist/verify-prepared.d.ts.map +1 -1
  44. package/dist/verify-prepared.js +12 -73
  45. package/dist/verify-prepared.js.map +1 -1
  46. package/dist/withdraw.d.ts +2 -1
  47. package/dist/withdraw.d.ts.map +1 -1
  48. package/dist/withdraw.js +70 -22
  49. package/dist/withdraw.js.map +1 -1
  50. package/package.json +4 -4
  51. package/dist/quest-fund.d.ts +0 -142
  52. package/dist/quest-fund.d.ts.map +0 -1
  53. package/dist/quest-fund.js +0 -355
  54. package/dist/quest-fund.js.map +0 -1
@@ -106,7 +106,7 @@ import { createHash, createPublicKey, timingSafeEqual } from "node:crypto";
106
106
  import { decodeTopologyTransaction } from "@canton-network/core-tx-visualizer";
107
107
  /* Locally-used core symbols. The re-export block below is a re-export, not an
108
108
  * import, so a name needed by code IN this file has to be bound here too. */
109
- import { extractSelfPreapproval } from "@ftptech/x402-canton-core";
109
+ import { assertPreparedAmuletSelfPreapproval } from "@ftptech/x402-canton-core";
110
110
  /* The validator moved to @ftptech/x402-canton-core (prepared-transfer.ts) so the
111
111
  * facilitator can reuse it for inline payloads. Re-exported here so every
112
112
  * existing import of ./verify-prepared.js keeps working unchanged. */
@@ -546,82 +546,21 @@ function assertOnboardingTopologyDecodeBindsKey(onboardingTransactionsB64, expec
546
546
  "that the bundle onboards the agent's own party)");
547
547
  }
548
548
  }
549
- /** The Amulet choice that creates a merchant TransferPreapproval (self-provider). */
550
- const SELF_PREAPPROVAL_CHOICE = "AmuletRules_CreateTransferPreapproval";
551
549
  /**
552
- * VERIFY-BEFORE-SIGN for the merchant-self-provisioned TransferPreapproval.
550
+ * VERIFY-BEFORE-SIGN for the merchant-self-provisioned Amulet TransferPreapproval.
553
551
  *
554
552
  * The merchant signs a RELAY-PREPARED `AmuletRules_CreateTransferPreapproval`
555
- * with its OWN key. A compromised/hostile relay could instead prepare a
556
- * fund-MOVING transaction (a transfer/withdraw of the merchant's holdings) and
557
- * try to get THAT signed under the merchant's key. Decode the prepared bytes and
558
- * fail closed unless the transaction is exactly a single-root self-preapproval:
553
+ * with its OWN key, and the choice spends the merchant's Amulet for the fee. A
554
+ * hostile relay could hand over a look-alike choice whose body moves that
555
+ * Amulet elsewhere, so the full check lives in core
556
+ * (`assertPreparedAmuletSelfPreapproval`): root template pinned, consequences
557
+ * and creates whitelisted from real MainNet captures, receiver/provider/expiry
558
+ * bound, and an all-nodes party backstop of {merchant, DSO}.
559
559
  *
560
- * 1. EXACTLY ONE root node, and it is an Exercise of
561
- * `AmuletRules_CreateTransferPreapproval` — so no second root "leg" (e.g. an
562
- * outbound transfer) rides along, and the root is not some other choice.
563
- * 2. `act_as` is EXACTLY [party] — the single external signer is the merchant.
564
- *
565
- * CONSEQUENCE exercises (the choice's own fee-burn on the merchant's Amulet) are
566
- * intentionally NOT constrained: they are children of the single authorized root
567
- * and are fixed by the public, audited Splice choice body — the signature
568
- * authorizes the ROOT choice, whose effects are not relay-controlled.
569
- *
570
- * 3. `receiver` and `provider` in the choice argument are BOTH `party`. Without
571
- * this a hostile relay made the merchant pay to create a preapproval naming
572
- * somebody else — the merchant burns the fee, ends up without the
573
- * preapproval it believes it has, and every payment to it keeps failing
574
- * while each retry burns another fee. Read positionally against a REAL
575
- * MainNet capture (see `extractSelfPreapproval`), not an invented fixture.
576
- * 4. `expiresAt` equals `expectedExpiresAt` when the caller supplies one. The
577
- * relay chooses this value (defaulting to 90 days) and echoes it in the
578
- * prepare response; passing that echo back here is what binds the bytes to
579
- * the terms the relay stated. Omitted → unchecked, exactly as before.
560
+ * `dso` must come from an out-of-band source (`resolveTrustedDsoParty`, or the
561
+ * operator's `--admin`) — never from the relay.
580
562
  */
581
- export function assertPreparedSelfPreapproval(preparedTransactionB64, party, expectedExpiresAt) {
582
- const decoded = decodePrepared(preparedTransactionB64);
583
- const rootNodes = decoded.nodes.filter((n) => decoded.roots.includes(n.nodeId));
584
- if (rootNodes.length !== 1) {
585
- throw new PreparedTransferMismatchError(`self-preapproval verify: prepared transaction has ${rootNodes.length} root ` +
586
- `nodes (want exactly 1) — refusing to sign (possible tampered/compromised relay ` +
587
- `adding a second leg)`);
588
- }
589
- const rootChoice = rootNodes[0]?.exercise?.choiceId;
590
- if (rootChoice !== SELF_PREAPPROVAL_CHOICE) {
591
- throw new PreparedTransferMismatchError(`self-preapproval verify: the root node is not an ${SELF_PREAPPROVAL_CHOICE} ` +
592
- `exercise (got ${JSON.stringify(rootChoice ?? null)}) — refusing to sign`);
593
- }
594
- if (decoded.actAs.length !== 1 || decoded.actAs[0] !== party) {
595
- throw new PreparedTransferMismatchError(`self-preapproval verify: prepared act_as ${JSON.stringify(decoded.actAs)} is not ` +
596
- `exactly [${party}] — refusing to sign`);
597
- }
598
- const chosen = rootNodes[0]?.exercise?.chosenValue;
599
- if (chosen === undefined) {
600
- throw new PreparedTransferMismatchError("self-preapproval verify: the root exercise carries no choice argument — refusing to sign");
601
- }
602
- const arg = extractSelfPreapproval(chosen);
603
- for (const [field, value] of [
604
- ["receiver", arg.receiver],
605
- ["provider", arg.provider],
606
- ]) {
607
- if (value !== party) {
608
- throw new PreparedTransferMismatchError(`self-preapproval verify: choice argument ${field} is ${JSON.stringify(value)}, ` +
609
- `not ${JSON.stringify(party)} — refusing to sign (this would pay to create a ` +
610
- `preapproval for somebody else)`);
611
- }
612
- }
613
- if (expectedExpiresAt !== undefined) {
614
- const wantMs = Date.parse(expectedExpiresAt);
615
- if (!Number.isFinite(wantMs)) {
616
- throw new PreparedTransferMismatchError(`self-preapproval verify: expected expiresAt ${JSON.stringify(expectedExpiresAt)} is ` +
617
- `not a parseable timestamp — refusing to sign`);
618
- }
619
- // Daml `Time` is µs since epoch; the expectation is milliseconds.
620
- const wantMicros = (BigInt(wantMs) * 1000n).toString();
621
- if (arg.expiresAtMicros !== wantMicros) {
622
- throw new PreparedTransferMismatchError(`self-preapproval verify: choice argument expiresAt is ${arg.expiresAtMicros}µs but ` +
623
- `${wantMicros}µs was stated (${expectedExpiresAt}) — refusing to sign`);
624
- }
625
- }
563
+ export function assertPreparedSelfPreapproval(preparedTransactionB64, expect) {
564
+ assertPreparedAmuletSelfPreapproval(preparedTransactionB64, expect);
626
565
  }
627
566
  //# sourceMappingURL=verify-prepared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-prepared.js","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-prepared.js","sourceRoot":"","sources":["../src/verify-prepared.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,8 @@ export interface WithdrawOpts {
41
41
  /** Arbitrary on-ledger transfer meta to stamp onto the outgoing transfer.
42
42
  * Used by the `swap` command to carry a pool's minimum-output value in the
43
43
  * key the AMM parses. Advisory / not money-critical (verify-before-sign does
44
- * not pin transfer meta); omitted → no meta, exactly as before. */
44
+ * not pin transfer meta); omitted → only the venue tag on a registry token
45
+ * (see venue.ts), no meta on Canton Coin. */
45
46
  meta?: Record<string, string>;
46
47
  /** Allow the registry two-step transfer-offer shape when the receiver has no
47
48
  * preapproval (a swap to a Tradecraft pool). Threaded to verify-before-sign;
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;yEAEqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;sBAMkB;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;6BAEyB;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;wEAGoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;kEAG8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC,CAgIvE"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;yEAEqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;sBAMkB;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;6BAEyB;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;kDAI8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;kEAG8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAmBD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC,CAyKvE"}
package/dist/withdraw.js CHANGED
@@ -10,8 +10,24 @@ import { transfer } from "./tx.js";
10
10
  import { resolveHashBinding } from "./hash-binding.js";
11
11
  import { resolveTrustedRegistryParties } from "./registry-parties.js";
12
12
  import { venueMetaForInstrument } from "./venue.js";
13
- import { sumLedgerDecimals, compareLedgerDecimals } from "@ftptech/x402-canton-core";
13
+ import { sumLedgerDecimals, compareLedgerDecimals, decimalToAtomicCC, } from "@ftptech/x402-canton-core";
14
14
  import { resolveTrustedDsoParty } from "./trusted-dso.js";
15
+ /** Most holdings one withdraw spends when it has to CHOOSE from a bounded
16
+ * slice: a registry input costs ~1 transaction node and a Canton transaction
17
+ * is capped at 256. */
18
+ const MAX_WITHDRAW_INPUTS = 90;
19
+ function assertPositive(amount) {
20
+ let positive = false;
21
+ try {
22
+ positive = compareLedgerDecimals(amount, "0") > 0;
23
+ }
24
+ catch {
25
+ positive = false;
26
+ }
27
+ if (!positive) {
28
+ throw new Error(`withdraw amount must be a positive number (got ${JSON.stringify(amount)})`);
29
+ }
30
+ }
15
31
  export async function withdraw(opts) {
16
32
  const wallet = opts.wallet ?? loadWallet();
17
33
  if (!wallet)
@@ -41,41 +57,73 @@ export async function withdraw(opts) {
41
57
  let available;
42
58
  let inputCids;
43
59
  let unit;
60
+ let amount;
44
61
  if (isRegistry) {
45
- const h = await relay.holdings(wallet.party, {
46
- admin: opts.instrumentAdmin,
47
- id: opts.instrumentId,
48
- });
62
+ // BOUNDED read: a wallet holding more than the participant lists in one
63
+ // read gets its oldest holdings (complete:false) instead of a 413. That is
64
+ // enough to SPEND from, never enough to know the balance — so a full
65
+ // withdraw, or a shortfall, on an incomplete read points at `merge`
66
+ // instead of quoting a number that is only a lower bound.
67
+ const h = await relay.holdings(wallet.party, { admin: opts.instrumentAdmin, id: opts.instrumentId }, { slice: true });
68
+ const complete = h.complete !== false;
49
69
  const ins = h.instruments[0];
50
70
  const spendable = (ins?.holdings ?? []).filter((x) => !x.locked);
51
71
  // Exact sum: a float total can land an atomic ABOVE what the wallet holds,
52
72
  // and that number is both the transfer amount and the pre-flight guard.
53
73
  available = sumLedgerDecimals(spendable.map((x) => x.amount));
54
- inputCids = spendable.map((x) => x.cid);
55
74
  unit = opts.instrumentId;
75
+ const mergeHint = `canton-agent-wallet merge --admin ${opts.instrumentAdmin} --id ${opts.instrumentId}` +
76
+ ` (or --all-tokens)`;
77
+ if (opts.amount === undefined && !complete) {
78
+ throw new Error(`withdraw: this wallet holds more ${unit} holdings than the participant lists in one read, ` +
79
+ `so its full balance is not known. Consolidate first with: ${mergeHint} — or pass --amount.`);
80
+ }
81
+ amount = opts.amount ?? available;
82
+ assertPositive(amount);
83
+ if (compareLedgerDecimals(amount, available) > 0) {
84
+ throw new Error(complete
85
+ ? `insufficient funds: wallet balance is ${available} ${unit} but ${amount} ${unit} was requested`
86
+ : `withdraw: only ${available} ${unit} is visible among this wallet's oldest holdings — it ` +
87
+ `holds more than the participant lists in one read. Consolidate first with: ${mergeHint}`);
88
+ }
89
+ // The fewest holdings that cover the amount, largest first: the registry
90
+ // returns the rest as change, and a transaction may spend at most
91
+ // MAX_WITHDRAW_INPUTS before it hits the 256-node cap.
92
+ const byAmount = [...spendable].sort((a, b) => {
93
+ const d = BigInt(decimalToAtomicCC(b.amount)) - BigInt(decimalToAtomicCC(a.amount));
94
+ return d > 0n ? 1 : d < 0n ? -1 : 0;
95
+ });
96
+ const want = BigInt(decimalToAtomicCC(amount));
97
+ // The cap binds only when choosing from a slice; a complete read keeps the
98
+ // old behaviour and may spend every holding it needs.
99
+ const maxInputs = complete ? Number.POSITIVE_INFINITY : MAX_WITHDRAW_INPUTS;
100
+ const picked = [];
101
+ let got = 0n;
102
+ for (const x of byAmount) {
103
+ if (got >= want || picked.length >= maxInputs)
104
+ break;
105
+ picked.push(x);
106
+ got += BigInt(decimalToAtomicCC(x.amount));
107
+ }
108
+ if (got < want) {
109
+ throw new Error(`withdraw: ${amount} ${unit} is spread over more than ${MAX_WITHDRAW_INPUTS} holdings, more ` +
110
+ `than one transfer can spend. Consolidate first with: ${mergeHint}`);
111
+ }
112
+ inputCids = picked.map((x) => x.cid);
56
113
  }
57
114
  else {
58
115
  const bal = await relay.balance(wallet.party);
59
116
  available = bal.cc;
60
117
  unit = "CC";
61
- }
62
- const amount = opts.amount ?? available;
63
- let positive = false;
64
- try {
65
- positive = compareLedgerDecimals(amount, "0") > 0;
66
- }
67
- catch {
68
- positive = false;
69
- }
70
- if (!positive) {
71
- throw new Error(`withdraw amount must be a positive number (got ${JSON.stringify(amount)})`);
72
- }
73
- if (compareLedgerDecimals(amount, available) > 0) {
74
- throw new Error(`insufficient funds: wallet balance is ${available} ${unit} but ${amount} ${unit} was requested`);
118
+ amount = opts.amount ?? available;
119
+ assertPositive(amount);
120
+ if (compareLedgerDecimals(amount, available) > 0) {
121
+ throw new Error(`insufficient funds: wallet balance is ${available} ${unit} but ${amount} ${unit} was requested`);
122
+ }
75
123
  }
76
124
  const instrumentAdmin = opts.instrumentAdmin ?? resolveTrustedDsoParty(process.env, wallet.network);
77
- // Attribution: stamp the issuer's `/venue` key when withdrawing an attributed
78
- // registry token (CBTC). Keyed off the RAW opts instrument (not the DSO-resolved
125
+ // Attribution: stamp the `/venue` tag (on by default) when withdrawing a
126
+ // registry token. Keyed off the RAW opts instrument (not the DSO-resolved
79
127
  // `instrumentAdmin` above), so a CC withdraw — opts.instrumentAdmin undefined —
80
128
  // never carries it. Merged UNDER any caller meta, so an explicit key wins and the
81
129
  // swap's slippage memo (a different key) survives alongside it.
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ftptech/canton-agent-wallet",
3
3
  "private": false,
4
- "version": "2.1.0",
4
+ "version": "2.3.0",
5
5
  "description": "Self-custody Canton wallet + x402 autopay for AI agents. One CLI: create, pay, balance, withdraw, export, import. Backs the canton-x402-agent skill.",
6
6
  "license": "Apache-2.0",
7
7
  "author": "FTP team",
@@ -19,9 +19,9 @@
19
19
  "@canton-network/core-tx-visualizer": "~1.4.0",
20
20
  "@canton-network/core-ledger-proto": "~1.4.0",
21
21
  "undici": "^7.1.0",
22
- "@ftptech/x402-canton-ledger": "^0.4.0",
23
- "@ftptech/x402-canton-client": "^1.2.0",
24
- "@ftptech/x402-canton-core": "^1.2.1"
22
+ "@ftptech/x402-canton-core": "^1.3.0",
23
+ "@ftptech/x402-canton-ledger": "^0.5.0",
24
+ "@ftptech/x402-canton-client": "^1.2.1"
25
25
  },
26
26
  "publishConfig": {
27
27
  "access": "public"
@@ -1,142 +0,0 @@
1
- import { type AgentWallet } from "./store.js";
2
- /** The funded-wallet result: the SECRET (PKCS8 PEM — imported so the agent
3
- * self-custodies), the party, the post-pay change balance, the on-ledger
4
- * updateId of the transa, and the image URL the CanTrust call produced. */
5
- export interface QuestFundResult {
6
- secret: string;
7
- party: string;
8
- network: string;
9
- balanceCc: string | undefined;
10
- updateId: string | undefined;
11
- image: string | undefined;
12
- }
13
- export interface QuestFundOpts {
14
- /** pay-proxy base URL (e.g. https://pay.ftptech.xyz). */
15
- payProxyUrl: string;
16
- /** Optional prompt for the CanTrust image; defaults server-side if omitted. */
17
- prompt?: string | undefined;
18
- /** Injectable fetch (tests). Defaults to global fetch. */
19
- fetchImpl?: typeof fetch;
20
- /** Poll interval ms (default 3000). */
21
- pollMs?: number;
22
- /** Max total polls per step before giving up (default 40 ≈ 2 min/step). */
23
- maxPolls?: number;
24
- /** Injectable sleep (tests). */
25
- sleep?: (ms: number) => Promise<void>;
26
- }
27
- /** A quest leg failed or the flow could not complete. `auto_fund` catches this
28
- * and falls back to the manual-funding ask, so a pay-proxy hiccup never turns
29
- * into a hard tool error. */
30
- /**
31
- * `recoverable` is set when the quest failed AFTER step 1 handed us a real
32
- * party and its private key. Losing that key loses custody of whatever the
33
- * faucet already put on that party — the throw used to discard it, and the CLI
34
- * then told the operator to ask their owner for CC while the grant sat on a
35
- * party nobody could act as any more.
36
- */
37
- export declare class QuestFundError extends Error {
38
- /**
39
- * NON-ENUMERABLE ON PURPOSE, AND THIS IS THE WHOLE POINT.
40
- *
41
- * `recoverable.secret` is a raw PKCS8 private key with real MainNet CC behind
42
- * it. Assigned as an ordinary property it becomes an enumerable own property
43
- * of a thrown Error, and this class is exported from the package index — so
44
- * every ordinary way a consumer records a failure copies the key out:
45
- * `JSON.stringify(err)` includes it, and pino's default `err` serializer
46
- * copies own enumerable properties, so a plain `logger.error({ err })` in a
47
- * third-party service writes the key into that service's log pipeline.
48
- * Measured, not assumed: both leak it.
49
- *
50
- * `declare` is required, not stylistic — the workspace compiles with
51
- * `useDefineForClassFields: true`, so a plain field declaration would emit a
52
- * defineProperty that overwrites the descriptor below with an enumerable
53
- * `undefined` and silently undo the fix.
54
- *
55
- * The rescue path is unaffected: both readers
56
- * (quest-fund.ts `err.recoverable`, mcp/server.ts `e.recoverable`) ask for
57
- * the property by name, and non-enumerable properties answer that normally.
58
- * Hidden from anything that ENUMERATES, present for anything that ASKS.
59
- */
60
- readonly recoverable?: {
61
- secret: string;
62
- party: string;
63
- network: string;
64
- };
65
- constructor(message: string, recoverable?: {
66
- secret: string;
67
- party: string;
68
- network: string;
69
- });
70
- }
71
- /**
72
- * Run the pay-proxy quest and return a funded wallet (key + change + image).
73
- * Throws QuestFundError on any refusal / timeout — never a partial state.
74
- */
75
- export declare function questFund(opts: QuestFundOpts): Promise<QuestFundResult>;
76
- /**
77
- * Persist a key rescued from a failed quest, beside the wallet but never AS the
78
- * wallet.
79
- *
80
- * EXPORTED because the MCP server runs the same quest through the lower-level
81
- * `questFund` and needs the same rescue. It had none: the only copy of the
82
- * private key rode away inside the thrown Error and was collected, leaving
83
- * faucet CC on a MainNet party nobody can spend. One rescue, one place. Overwriting wallet.json here would destroy the private key of an
84
- * existing wallet on an error path — the exact loss this rescue exists to
85
- * prevent, aimed at the other wallet. The party goes in the filename so two
86
- * rescues cannot silently overwrite each other.
87
- */
88
- export declare function writeRescueKey(secret: string, party: string, _network: string): string;
89
- export interface FundViaQuestOpts {
90
- /** pay-proxy base URL used to run the quest. */
91
- payProxyUrl: string;
92
- /** The facilitator relay URL to persist on the imported wallet (its home for
93
- * future balance/pay/withdraw). */
94
- relayUrl: string;
95
- /** Optional image prompt. */
96
- prompt?: string | undefined;
97
- /** Injectables (tests). */
98
- questFundImpl?: typeof questFund;
99
- fetchImpl?: typeof fetch;
100
- /** Injectable wallet-store seams (tests) — default to the real store/onboard. */
101
- loadWalletImpl?: () => AgentWallet | undefined;
102
- balanceOf?: (relayUrl: string, party: string) => Promise<string>;
103
- /** Unaccepted incoming transfers addressed to the party. Separate from the
104
- * balance because the relay's /balance counts Amulet contracts only, and a
105
- * transfer nobody has accepted yet is not one. */
106
- pendingOf?: (relayUrl: string, party: string) => Promise<Array<{
107
- cid: string;
108
- amount?: string;
109
- sender?: string;
110
- }>>;
111
- installKey?: (secret: string, relayUrl: string, network: string) => Promise<AgentWallet>;
112
- /** Where a key rescued from a failed quest is written. Returns the path it
113
- * wrote, which the thrown error names. Defaults to a 0600 file beside the
114
- * wallet — NEVER wallet.json itself, so a rescue can destroy nothing. */
115
- rescueKeyImpl?: (secret: string, party: string, network: string) => string;
116
- }
117
- /** Outcome of `fundViaQuest`: either a freshly-installed funded wallet, or a
118
- * "kept" note (an already-funded wallet was left untouched). */
119
- export type FundViaQuestResult = {
120
- kind: "funded";
121
- wallet: AgentWallet;
122
- balanceCc: string | undefined;
123
- updateId: string | undefined;
124
- image: string | undefined;
125
- } | {
126
- kind: "already_funded";
127
- party: string;
128
- balanceCc: string;
129
- };
130
- /**
131
- * Bootstrap a funded self-custody wallet through the quest (mint → grant →
132
- * CanTrust payment → change) and INSTALL it (`saveWallet`) so the caller owns the
133
- * key. This is the ONLY non-farmable funding path: the grant is inseparable from a
134
- * real payment, so an abuser gets only the small change, not free CC.
135
- *
136
- * NO-CLOBBER: if a wallet already exists AND holds a balance, it is NEVER replaced
137
- * — the existing wallet is returned as `already_funded`. Only an absent or empty
138
- * wallet home is bootstrapped. Throws QuestFundError on quest failure (the caller
139
- * decides the fallback, e.g. manual funding).
140
- */
141
- export declare function fundViaQuest(opts: FundViaQuestOpts): Promise<FundViaQuestResult>;
142
- //# sourceMappingURL=quest-fund.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quest-fund.d.ts","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}