@ftptech/canton-agent-wallet 0.7.4 → 0.8.1

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.
@@ -27,14 +27,65 @@ export interface QuestFundOpts {
27
27
  /** A quest leg failed or the flow could not complete. `auto_fund` catches this
28
28
  * and falls back to the manual-funding ask, so a pay-proxy hiccup never turns
29
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
+ */
30
37
  export declare class QuestFundError extends Error {
31
- constructor(message: string);
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
+ });
32
70
  }
33
71
  /**
34
72
  * Run the pay-proxy quest and return a funded wallet (key + change + image).
35
73
  * Throws QuestFundError on any refusal / timeout — never a partial state.
36
74
  */
37
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;
38
89
  export interface FundViaQuestOpts {
39
90
  /** pay-proxy base URL used to run the quest. */
40
91
  payProxyUrl: string;
@@ -49,7 +100,19 @@ export interface FundViaQuestOpts {
49
100
  /** Injectable wallet-store seams (tests) — default to the real store/onboard. */
50
101
  loadWalletImpl?: () => AgentWallet | undefined;
51
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
+ }>>;
52
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;
53
116
  }
54
117
  /** Outcome of `fundViaQuest`: either a freshly-installed funded wallet, or a
55
118
  * "kept" note (an already-funded wallet was left untouched). */
@@ -1 +1 @@
1
- {"version":3,"file":"quest-fund.d.ts","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"AA0BA,OAAO,EAA0B,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtE;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;8BAE8B;AAC9B,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAWD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAoG7E;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB;wCACoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2BAA2B;IAC3B,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC/C,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,UAAU,CAAC,EAAE,CACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED;iEACiE;AACjE,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAqE7B"}
1
+ {"version":3,"file":"quest-fund.d.ts","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}
@@ -24,24 +24,55 @@
24
24
  */
25
25
  import { agentKeyFromPrivatePem } from "./keys.js";
26
26
  import { ensureWallet } from "./onboard.js";
27
- import { loadWallet, saveWallet } from "./store.js";
27
+ import { loadWallet, saveWallet, walletDir } from "./store.js";
28
+ import { mkdirSync, writeFileSync } from "node:fs";
29
+ import { join } from "node:path";
28
30
  import { RelayClient } from "./relay-client.js";
29
31
  /** A quest leg failed or the flow could not complete. `auto_fund` catches this
30
32
  * and falls back to the manual-funding ask, so a pay-proxy hiccup never turns
31
33
  * into a hard tool error. */
34
+ /**
35
+ * `recoverable` is set when the quest failed AFTER step 1 handed us a real
36
+ * party and its private key. Losing that key loses custody of whatever the
37
+ * faucet already put on that party — the throw used to discard it, and the CLI
38
+ * then told the operator to ask their owner for CC while the grant sat on a
39
+ * party nobody could act as any more.
40
+ */
32
41
  export class QuestFundError extends Error {
33
- constructor(message) {
42
+ constructor(message, recoverable) {
34
43
  super(message);
35
44
  this.name = "QuestFundError";
45
+ if (recoverable) {
46
+ Object.defineProperty(this, "recoverable", {
47
+ value: recoverable,
48
+ enumerable: false,
49
+ writable: false,
50
+ configurable: false,
51
+ });
52
+ }
36
53
  }
37
54
  }
55
+ /**
56
+ * The parsed body, or undefined when the answer was not a readable JSON result.
57
+ *
58
+ * The distinction is the point. A reverse proxy in front of the pay-proxy
59
+ * answers a restart or an upstream hiccup with a 502/504 HTML page, and a
60
+ * rate-limiter answers 429 — none of which is the job telling us anything. The
61
+ * old version flattened all of it to `{}`, which matched neither "pending" nor
62
+ * the terminal status, so a poll that could not be read was reported as "the
63
+ * quest failed" on the very first blip, with 39 polls of budget still unused.
64
+ * The two POSTs in this file check `status !== 202` correctly; the rule was
65
+ * simply dropped on the reads that decide the outcome.
66
+ */
38
67
  async function jsonOf(r) {
68
+ if (!r.ok)
69
+ return undefined;
39
70
  const text = await r.text();
40
71
  try {
41
- return JSON.parse(text) ?? {};
72
+ return JSON.parse(text) ?? undefined;
42
73
  }
43
74
  catch {
44
- return {};
75
+ return undefined;
45
76
  }
46
77
  }
47
78
  /**
@@ -63,7 +94,7 @@ export async function questFund(opts) {
63
94
  if (createRes.status !== 202) {
64
95
  throw new QuestFundError(`quest create returned ${createRes.status} (expected 202)`);
65
96
  }
66
- const walletJobId = (await jsonOf(createRes)).walletJobId;
97
+ const walletJobId = (await jsonOf(createRes))?.walletJobId;
67
98
  if (typeof walletJobId !== "string" || !walletJobId) {
68
99
  throw new QuestFundError("quest create returned no walletJobId");
69
100
  }
@@ -73,6 +104,9 @@ export async function questFund(opts) {
73
104
  await sleep(pollMs);
74
105
  const r = await doFetch(`${base}/v1/quest/wallet/result?walletJobId=${encodeURIComponent(walletJobId)}`);
75
106
  const body = await jsonOf(r);
107
+ // Unreadable answer: not a verdict. Keep polling with the budget we have.
108
+ if (!body)
109
+ continue;
76
110
  if (body.status === "pending")
77
111
  continue;
78
112
  if (body.status === "funded") {
@@ -104,7 +138,7 @@ export async function questFund(opts) {
104
138
  if (payRes.status !== 202) {
105
139
  throw new QuestFundError(`quest pay returned ${payRes.status} (expected 202)`);
106
140
  }
107
- const payJobId = (await jsonOf(payRes)).payJobId;
141
+ const payJobId = (await jsonOf(payRes))?.payJobId;
108
142
  if (typeof payJobId !== "string" || !payJobId) {
109
143
  throw new QuestFundError("quest pay returned no payJobId");
110
144
  }
@@ -114,16 +148,23 @@ export async function questFund(opts) {
114
148
  await sleep(pollMs);
115
149
  const r = await doFetch(`${base}/v1/quest/wallet/pay-result?payJobId=${encodeURIComponent(payJobId)}`);
116
150
  const body = await jsonOf(r);
151
+ if (!body)
152
+ continue;
117
153
  if (body.status === "pending")
118
154
  continue;
119
155
  if (body.status === "done") {
120
156
  done = body;
121
157
  break;
122
158
  }
123
- throw new QuestFundError(`quest STEP 2 failed: ${String(body.error ?? body.status ?? "unknown")}`);
159
+ throw new QuestFundError(`quest STEP 2 failed: ${String(body.error ?? body.status ?? "unknown")}`, { secret, party, network: typeof network === "string" ? network : "canton:mainnet" });
160
+ }
161
+ if (!done) {
162
+ throw new QuestFundError("quest STEP 2 timed out", {
163
+ secret,
164
+ party,
165
+ network: typeof network === "string" ? network : "canton:mainnet",
166
+ });
124
167
  }
125
- if (!done)
126
- throw new QuestFundError("quest STEP 2 timed out");
127
168
  return {
128
169
  secret,
129
170
  party,
@@ -133,6 +174,26 @@ export async function questFund(opts) {
133
174
  image: typeof done.image === "string" ? done.image : undefined,
134
175
  };
135
176
  }
177
+ /**
178
+ * Persist a key rescued from a failed quest, beside the wallet but never AS the
179
+ * wallet.
180
+ *
181
+ * EXPORTED because the MCP server runs the same quest through the lower-level
182
+ * `questFund` and needs the same rescue. It had none: the only copy of the
183
+ * private key rode away inside the thrown Error and was collected, leaving
184
+ * faucet CC on a MainNet party nobody can spend. One rescue, one place. Overwriting wallet.json here would destroy the private key of an
185
+ * existing wallet on an error path — the exact loss this rescue exists to
186
+ * prevent, aimed at the other wallet. The party goes in the filename so two
187
+ * rescues cannot silently overwrite each other.
188
+ */
189
+ export function writeRescueKey(secret, party, _network) {
190
+ const d = walletDir();
191
+ mkdirSync(d, { recursive: true, mode: 0o700 });
192
+ const safe = party.replace(/[^A-Za-z0-9_.-]/g, "_").slice(0, 80);
193
+ const p = join(d, `rescued-key-${safe}.pem`);
194
+ writeFileSync(p, secret.endsWith("\n") ? secret : secret + "\n", { mode: 0o600 });
195
+ return p;
196
+ }
136
197
  /**
137
198
  * Bootstrap a funded self-custody wallet through the quest (mint → grant →
138
199
  * CanTrust payment → change) and INSTALL it (`saveWallet`) so the caller owns the
@@ -148,25 +209,111 @@ export async function fundViaQuest(opts) {
148
209
  const load = opts.loadWalletImpl ?? loadWallet;
149
210
  const balanceOf = opts.balanceOf ??
150
211
  (async (relayUrl, party) => (await new RelayClient({ relayUrl }).balance(party)).cc);
212
+ const pendingOf = opts.pendingOf ??
213
+ (async (relayUrl, party) => (await new RelayClient({ relayUrl }).pending(party)).pending);
151
214
  const existing = load();
152
215
  if (existing) {
153
- let cc = "0";
216
+ // UNREADABLE IS NOT EMPTY.
217
+ //
218
+ // The guard below is the only thing standing between an existing wallet
219
+ // and `saveWallet` overwriting it — and overwriting wallet.json destroys
220
+ // the private key, which is the one thing here that cannot be undone. The
221
+ // old code caught the balance read into `cc = "0"` and commented that as
222
+ // "treat as empty and proceed to bootstrap": a relay blip, a DNS hiccup or
223
+ // any 5xx therefore looked exactly like an empty wallet, and the key of a
224
+ // wallet holding real CC was replaced.
225
+ //
226
+ // A wallet is only ever replaced when we KNOW it is empty. If the balance
227
+ // cannot be read we refuse and say so; the caller retries when the relay
228
+ // is back, and nothing was lost in the meantime.
229
+ let cc;
154
230
  try {
155
231
  cc = await balanceOf(opts.relayUrl, existing.party);
156
232
  }
157
- catch {
158
- // Balance unreadable → treat as empty and proceed to bootstrap.
233
+ catch (err) {
234
+ throw new QuestFundError(`a wallet already exists (${existing.party}) but its balance could not ` +
235
+ `be read (${err instanceof Error ? err.message : String(err)}) — ` +
236
+ `refusing to overwrite it, because an unreadable balance is not an ` +
237
+ `empty one and replacing the wallet would destroy its private key. ` +
238
+ `Retry once the relay is reachable.`);
159
239
  }
160
240
  if (Number(cc) > 0) {
161
241
  return { kind: "already_funded", party: existing.party, balanceCc: cc };
162
242
  }
243
+ // A BALANCE OF ZERO IS NOT PROOF OF AN EMPTY WALLET.
244
+ //
245
+ // The relay's /balance counts `Splice.Amulet:Amulet` contracts and nothing
246
+ // else (facilitator routes/wallet.ts scopes the query to that template on
247
+ // purpose). CC that someone has SENT to this party but that nobody has
248
+ // accepted yet is not an Amulet — it is a pending TransferInstruction, and
249
+ // it reads as 0.0000000000 here.
250
+ //
251
+ // That is the normal state of an agent wallet, not an exotic one: an agent
252
+ // has no TransferPreapproval, which is precisely why a separate `claim`
253
+ // step exists ("run after the owner has sent CC"). So the window between
254
+ // "owner sent the funds" and "agent accepted them" is exactly the window in
255
+ // which this guard called the wallet empty and `saveWallet` destroyed the
256
+ // private key of the party those funds are addressed to. The CC stays on
257
+ // the ledger, addressed to a party nobody can act as any more.
258
+ //
259
+ // Same rule as the balance read above, applied to the other half of the
260
+ // question: unreadable is not empty, and neither is unclaimed.
261
+ let pending;
262
+ try {
263
+ pending = await pendingOf(opts.relayUrl, existing.party);
264
+ }
265
+ catch (err) {
266
+ throw new QuestFundError(`a wallet already exists (${existing.party}) and reads as empty, but ` +
267
+ `its pending incoming transfers could not be read (${err instanceof Error ? err.message : String(err)}) — refusing to overwrite it, because a balance of zero only proves ` +
268
+ `there are no ACCEPTED funds. Retry once the relay is reachable.`);
269
+ }
270
+ if (pending.length > 0) {
271
+ const total = pending
272
+ .reduce((sum, p) => sum + Number(p.amount ?? 0), 0)
273
+ .toFixed(10);
274
+ throw new QuestFundError(`a wallet already exists (${existing.party}) with ${pending.length} ` +
275
+ `unaccepted incoming transfer(s) totalling ${total} CC — refusing to ` +
276
+ `overwrite it, because replacing the wallet would destroy the private ` +
277
+ `key those funds are addressed to and they could never be claimed. ` +
278
+ `Run \`claim\` to accept them first.`);
279
+ }
163
280
  }
164
281
  const runQuest = opts.questFundImpl ?? questFund;
165
- const funded = await runQuest({
166
- payProxyUrl: opts.payProxyUrl,
167
- ...(opts.prompt !== undefined ? { prompt: opts.prompt } : {}),
168
- ...(opts.fetchImpl ? { fetchImpl: opts.fetchImpl } : {}),
169
- });
282
+ const rescueKey = opts.rescueKeyImpl ?? writeRescueKey;
283
+ let funded;
284
+ try {
285
+ funded = await runQuest({
286
+ payProxyUrl: opts.payProxyUrl,
287
+ ...(opts.prompt !== undefined ? { prompt: opts.prompt } : {}),
288
+ ...(opts.fetchImpl ? { fetchImpl: opts.fetchImpl } : {}),
289
+ });
290
+ }
291
+ catch (err) {
292
+ // A QUEST THAT FAILS PAST STEP 1 STILL LEFT US HOLDING A KEY.
293
+ //
294
+ // Step 2 is the leg that faucets, accepts and spends, so by the time it can
295
+ // fail the party may already hold real CC. Letting the exception carry the
296
+ // only copy of its private key away turned a recoverable interruption into
297
+ // funds nobody can ever move. We write the key out and name the file in the
298
+ // error — deliberately NOT into wallet.json, which may hold another wallet
299
+ // whose own key must not be destroyed by an error path.
300
+ const rec = err instanceof QuestFundError ? err.recoverable : undefined;
301
+ if (!rec)
302
+ throw err;
303
+ let where;
304
+ try {
305
+ where = rescueKey(rec.secret, rec.party, rec.network);
306
+ }
307
+ catch (writeErr) {
308
+ throw new QuestFundError(`${err.message} — and the funded party's key could NOT be ` +
309
+ `written to disk (${writeErr instanceof Error ? writeErr.message : String(writeErr)}). Party ${rec.party} may hold CC that is now unreachable; capture ` +
310
+ `the key from this process before it exits.`, rec);
311
+ }
312
+ throw new QuestFundError(`${err.message} — the funded party's key was saved to ${where}. ` +
313
+ `Party ${rec.party} may already hold CC: run ` +
314
+ `\`canton-agent-wallet import --key-file ${where}\` in an empty wallet ` +
315
+ `home to take custody, then \`claim\`.`, rec);
316
+ }
170
317
  const install = opts.installKey ??
171
318
  (async (secret, relayUrl, network) => {
172
319
  const key = agentKeyFromPrivatePem(secret);
@@ -1 +1 @@
1
- {"version":3,"file":"quest-fund.js","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quest-fund.js","sourceRoot":"","sources":["../src/quest-fund.ts"],"names":[],"mappings":"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"}
@@ -149,6 +149,10 @@ export declare class RelayClient {
149
149
  * stamps into the transfer's `x402.memo` meta. Optional — omitted when the
150
150
  * merchant set none. Forwarded verbatim in the request body. */
151
151
  memo?: string;
152
+ /** Ask the relay NOT to stash the prepared tx: the caller will carry it
153
+ * inline in the payment payload. The response still returns the prepared
154
+ * transaction and its hash — only `submissionRef` comes back empty. */
155
+ inline?: boolean;
152
156
  }): Promise<{
153
157
  submissionRef: string;
154
158
  preparedTransaction: string;
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AACD;;;;;iDAKiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB,EAAE,MAAM,CAAC;IAClC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,EAAE,CAAC;CAC/B;AACD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,EAAE,CAAC;CAC/B;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AACD;;;;6EAI6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,OAAO;gBAHtB,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM;IACvB,wEAAwE;IAC/D,IAAI,EAAE,OAAO;CAKzB;AAED;;;;wCAIwC;AACxC,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAQpE;AAED,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B;;;oEAG4D;QAC5D,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACnC;IAGH,OAAO,CAAC,OAAO;YAMD,GAAG;IA+BjB,cAAc,CAAC,CAAC,EAAE;QAAE,SAAS,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAGlE,eAAe,CAAC,CAAC,EAAE;QACjB,sBAAsB,EAAE,MAAM,EAAE,CAAC;QACjC,mBAAmB,EAAE,cAAc,EAAE,CAAC;KACvC;eAC0B,MAAM;;IAEjC,aAAa,CAAC,CAAC,EAAE,OAAO;6BACiB,MAAM;cAAQ,MAAM;;IAM7D,aAAa,CAAC,CAAC,EAAE,OAAO;kBACM,MAAM;;IAEpC;;;gCAG4B;IAC5B,UAAU,CAAC,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B;;yEAEiE;QACjE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;gFAEwE;QACxE,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;uBAEkB,MAAM;6BACA,MAAM;gBACnB,MAAM;uBACC,MAAM;gBACb,MAAM;kBACJ,MAAM;gBACR,MAAM;sBACA;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE;;IAG/C;uEACmE;IACnE,SAAS,CAAC,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,2BAA2B,GAAG,2BAA2B,CAAC;QAChF,eAAe,EAAE;YACf,UAAU,EAAE,KAAK,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC;gBACd,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aAC5C,CAAC,CAAC;SACJ,CAAC;KACH;mBAC8B,OAAO;uBAAiB,MAAM;uBAAiB,MAAM;;IAMpF,OAAO,CAAC,KAAK,EAAE,MAAM;IAMrB;;;+CAG2C;IAC3C,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,SAAW;kBAG/C,MAAM;sBACF;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE;sBAC7B,MAAM;QACpB;;uDAE+C;wBAC/B,OAAO,GAAG,IAAI;QAC9B;;;2CAGmC;oBACvB,MAAM;QAClB,0EAA0E;kBAChE,OAAO;QACjB;uEAC+D;qBAClD,MAAM;mBACR,MAAM;eACV,MAAM;;IAGjB;;;;2CAIuC;IACvC,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;kBAGvC,MAAM;kBACN,MAAM;kBACN,MAAM;mBACL,MAAM;;IAQrB;;;sEAGkE;IAClE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;6BAE/B,MAAM;gBACnB,MAAM;wBACE,MAAM;eACf,MAAM;mBACF,MAAM;;IAMrB;mEAC+D;IAC/D,qBAAqB,CAAC,IAAI,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,mBAAmB,EAAE,MAAM,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,eAAe,EAAE;YACf,UAAU,EAAE,KAAK,CAAC;gBAChB,KAAK,EAAE,MAAM,CAAC;gBACd,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aAC5C,CAAC,CAAC;SACJ,CAAC;KACH;kBAC6B,MAAM;;IAMpC;;;8CAG0C;IAC1C,YAAY,CAAC,KAAK,EAAE,MAAM;IAM1B,OAAO,CAAC,KAAK,EAAE,MAAM;IAMrB;;;;qEAIiE;IACjE,WAAW,CAAC,KAAK,EAAE,MAAM;kBACK,MAAM;gBAAU,MAAM;eAAS,MAAM;;IASnE;;;+EAG2E;IAC3E,SAAS;gBAEG,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;;IAGvC,sBAAsB,CAAC,CAAC,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B;IAOD,aAAa,CAAC,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE;IAG3C;;;;;wFAKoF;IACpF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAM1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"AAqEA;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAG5B;IAEA;IAJX,YACE,OAAe,EACN,MAAc;IACvB,wEAAwE;IAC/D,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,WAAM,GAAN,MAAM,CAAQ;QAEd,SAAI,GAAJ,IAAI,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;;wCAIwC;AACxC,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,IAAI,GAAI,GAAG,CAAC,IAAuC,EAAE,IAAI,CAAC;QAChE,IAAI,IAAI,KAAK,4BAA4B;YAAE,OAAO,IAAI,CAAC;IACzD,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,OAAO,WAAW;IAEH;IADnB,YACmB,IAQhB;QARgB,SAAI,GAAJ,IAAI,CAQpB;IACA,CAAC;IAEI,OAAO;QACb,MAAM,CAAC,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1D,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,GAAG,CACf,MAAc,EACd,IAAY,EACZ,IAAc,EACd,YAAqC;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;QACzD,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACzB,MAAM;YACN,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;YACvD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,wEAAwE;YACxE,4EAA4E;YAC5E,MAAM,IAAI,cAAc,CACtB,SAAS,MAAM,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC9D,CAAC,CAAC,MAAM,EACR,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,CAAmD;QAChE,OAAO,IAAI,CAAC,GAAG,CAAuB,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,eAAe,CAAC,CAGf;QACC,OAAO,IAAI,CAAC,GAAG,CAAoB,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,aAAa,CAAC,CAAU;QACtB,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,2BAA2B,EAC3B,CAAC,CACF,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,CAAU;QACtB,OAAO,IAAI,CAAC,GAAG,CAAuB,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IACD;;;gCAG4B;IAC5B,UAAU,CAAC,CASV;QACC,OAAO,IAAI,CAAC,GAAG,CASZ,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD;uEACmE;IACnE,SAAS,CAAC,CAUT;QACC,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,uBAAuB,EACvB,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,cAAc,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;IACD;;;+CAG2C;IAC3C,iBAAiB,CAAC,KAAa,EAAE,KAAa,EAAE,EAAE,GAAG,QAAQ;QAC3D,MAAM,CAAC,GAAG,SAAS,kBAAkB,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC,GAAG,CAoBZ,KAAK,EAAE,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IACD;;;;2CAIuC;IACvC,iBAAiB,CACf,KAAa,EACb,IAAmD;QAEnD,OAAO,IAAI,CAAC,GAAG,CAMb,MAAM,EACN,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,cAAc,EACxD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EACnD,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,aAAa,EAAE,EAAE,CAClD,CAAC;IACJ,CAAC;IACD;;;sEAGkE;IAClE,sBAAsB,CAAC,KAAa,EAAE,SAAkB;QACtD,OAAO,IAAI,CAAC,GAAG,CAMZ,MAAM,EAAE,qCAAqC,EAAE;YAChD,KAAK;YACL,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IACD;mEAC+D;IAC/D,qBAAqB,CAAC,IAUrB;QACC,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,oCAAoC,EACpC,IAAI,CACL,CAAC;IACJ,CAAC;IACD;;;8CAG0C;IAC1C,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,cAAc,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CACxD,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,cAAc,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAClD,CAAC;IACJ,CAAC;IACD;;;;qEAIiE;IACjE,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,yBAAyB,EACzB,EAAE,KAAK,EAAE,EACT,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC/C,CAAC,CAAC,SAAS,CACd,CAAC;IACJ,CAAC;IACD;;;+EAG2E;IAC3E,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAEZ,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,sBAAsB,CAAC,CAKtB;QACC,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,qCAAqC,EACrC,CAAC,CACF,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,CAA6B;QACzC,OAAO,IAAI,CAAC,GAAG,CAAsB,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD;;;;;wFAKoF;IACpF,SAAS,CAAC,KAAa,EAAE,QAAgB;QACvC,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,cAAc,kBAAkB,CAAC,KAAK,CAAC,wBAAwB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
@@ -26,14 +26,34 @@ export declare function makeRelaySigner(wallet: AgentWallet, opts?: {
26
26
  * Without it, a relay-prepared tx that carries the DSO outside the root
27
27
  * choice arg fails closed (the round-3 no-pin-fallback removal). */
28
28
  trustedDso?: string;
29
- /** Optional spend ceiling: the MAX amount this signer will EVER sign for, in
30
- * the same unit the 402 quotes (compared against `input.amount`). When set,
31
- * the signer REFUSES to sign — fail closed, before any relay call — if the
32
- * to-be-signed amount exceeds it. This makes the spend breaker load-bearing
33
- * against an over-quoting (or MITM'd) merchant: the agent never signs a
34
- * charge larger than the caller authorized, no matter what the 402 returns.
35
- * Omitted → no ceiling (legacy behavior; the published MCP/pay path is
36
- * unaffected when unset). */
29
+ /** Emit the INLINE carriage: the payload carries the signed transaction, so
30
+ * it resolves at ANY facilitator rather than only the one that prepared it.
31
+ * Opt-in — a deployment whose facilitator predates the inline arm keeps the
32
+ * reference form by leaving this unset. */
33
+ inline?: boolean;
34
+ /**
35
+ * Optional spend ceiling: the MAX this signer will EVER sign for, **in CC**
36
+ * — the ledger Decimal, e.g. `"0.05"`. NOT the atomic integer the 402
37
+ * quotes.
38
+ *
39
+ * This doc used to say "the same unit the 402 quotes", which is wrong and
40
+ * wrong in the dangerous direction. The 402 carries `amount` as an atomic
41
+ * integer ("500000000" for 0.05 CC); the client converts it once
42
+ * (`wireAmountToLedgerDecimal`, the off-by-10^10 firewall) and hands the
43
+ * signer the ledger Decimal, which is what `input.amount` is here and what
44
+ * this compares against. A caller who followed the old sentence and wrote
45
+ * `"500000000"` meaning 0.05 CC got a ceiling of five hundred million CC:
46
+ * the guard was present, configured, and could never fire.
47
+ *
48
+ * Comparing in CC is the correct half — it bounds what is actually signed —
49
+ * so the fix is this sentence, not the comparison. Pinned by a test that
50
+ * fails if the unit ever drifts back.
51
+ *
52
+ * When set, the signer REFUSES to sign — fail closed, before any relay call
53
+ * — if the to-be-signed amount exceeds it. That is what makes the spend
54
+ * breaker load-bearing against an over-quoting (or MITM'd) merchant.
55
+ * Omitted → no ceiling.
56
+ */
37
57
  maxPaymentValue?: string;
38
58
  /** Optional expected-payee pin: the ONLY recipient this signer will sign a
39
59
  * transfer to (compared against `input.receiver`). When set, the signer
@@ -1 +1 @@
1
- {"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAY/D,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACrB,KAAK,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CACI,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;kCAO8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,CA6Fd"}
1
+ {"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAY/D,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACrB,KAAK,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CACI,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;gDAG4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,CAkHd"}
@@ -45,8 +45,10 @@ export function makeRelaySigner(wallet, opts = {}) {
45
45
  // any relay call. Refuses to sign a merchant-quoted amount above the caller's
46
46
  // ceiling or to a payee the caller did not authorize. Both pins are OPTIONAL;
47
47
  // unset means the corresponding check is skipped (legacy behavior preserved).
48
- // The amount is compared as a Number in the SAME unit as `input.amount`,
49
- // matching the existing balance fast-fail (`Number(bal.cc) < Number(amount)`).
48
+ // The amount is compared as a Number in the SAME unit as `input.amount` —
49
+ // the ledger Decimal (CC), which is what the client hands the signer and what
50
+ // the balance fast-fail already uses (`Number(bal.cc) < Number(amount)`). The
51
+ // 402's atomic integer never reaches here.
50
52
  const enforceSpendLimits = (to, amount) => {
51
53
  if (opts.expectedPayTo !== undefined && to !== opts.expectedPayTo) {
52
54
  throw new Error(`refusing to sign: payee ${to} does not match the expected payTo ` +
@@ -100,7 +102,26 @@ export function makeRelaySigner(wallet, opts = {}) {
100
102
  ? { expectInstrumentAdmin: trustedDso }
101
103
  : {}),
102
104
  ...(memo !== undefined ? { memo } : {}),
105
+ ...(opts.inline === true ? { inline: true } : {}),
103
106
  }));
107
+ // INLINE: hand the scheme builder the signed bytes so the payload carries
108
+ // the transaction itself and resolves at ANY facilitator. Opt-in for now
109
+ // — a deployment whose facilitator predates the inline arm keeps the
110
+ // reference form by simply not setting the flag.
111
+ if (opts.inline === true) {
112
+ return {
113
+ payerParty: r.payerParty,
114
+ // Hex, as the scheme's wire form requires — NOT the base64 `txHash`.
115
+ preparedTxHash: r.preparedTxHashHex ?? "",
116
+ ...(r.preparedTransactionBytes
117
+ ? { preparedTransactionBytes: r.preparedTransactionBytes }
118
+ : {}),
119
+ ...(r.signatureB64 ? { signatureB64: r.signatureB64 } : {}),
120
+ ...(r.hashingSchemeVersion
121
+ ? { hashingSchemeVersion: r.hashingSchemeVersion }
122
+ : {}),
123
+ };
124
+ }
104
125
  return {
105
126
  payerParty: r.payerParty,
106
127
  submissionRef: r.submissionRef,
@@ -1 +1 @@
1
- {"version":3,"file":"relay-signer.js","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-signer.js","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"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"}
package/dist/tx.d.ts CHANGED
@@ -68,10 +68,30 @@ export declare function payViaTransferFactory(relay: RelayClient, wallet: AgentW
68
68
  * payPrepare call below), so a relay that alters/drops the memo can only make
69
69
  * the merchant's /verify reject the payment — it can never redirect funds. */
70
70
  memo?: string;
71
+ /**
72
+ * Emit the INLINE carriage: sign and return the bytes instead of committing
73
+ * them to the relay's stash.
74
+ *
75
+ * The stash reference only resolves at the facilitator that created it, but
76
+ * the MERCHANT picks the facilitator and the payer is never told which one —
77
+ * so a pointer cannot travel. Inline is self-contained.
78
+ *
79
+ * The relay is told too, so it skips the stash write: an uncommitted row
80
+ * would count toward this payer's live cap until executeBefore and the
81
+ * client would 429 itself.
82
+ */
83
+ inline?: boolean;
71
84
  }): Promise<{
72
85
  payerParty: string;
73
- submissionRef: string;
74
86
  txHash: string;
87
+ /** LEGACY carriage. Empty string on the inline path. */
88
+ submissionRef: string;
89
+ /** INLINE carriage: `txHash` re-encoded as the scheme's hex wire form. */
90
+ preparedTxHashHex?: string;
91
+ /** INLINE carriage: present only when `opts.inline` was set. */
92
+ preparedTransactionBytes?: Uint8Array;
93
+ signatureB64?: string;
94
+ hashingSchemeVersion?: "HASHING_SCHEME_VERSION_V2";
75
95
  }>;
76
96
  /** @internal Exported for unit tests (disjoint selection + release). Not part of
77
97
  * the public API. */
@@ -124,6 +144,7 @@ export declare function claimAll(relay: RelayClient, wallet: AgentWallet, opts?:
124
144
  }>;
125
145
  export declare function selfProvisionPreapproval(relay: RelayClient, wallet: AgentWallet, opts?: {
126
146
  expiresAt?: string;
147
+ hashBinding?: HashBindingOptions;
127
148
  }, sleep?: (ms: number) => Promise<void>): Promise<{
128
149
  updateId: string;
129
150
  }>;
package/dist/tx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAKL,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AA8H9B;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;6DAEyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;6EAGyE;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GACA,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;mFAI+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkDxE;AAsBD;sBACsB;AACtB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA4CzC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAgB9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAO,GAC9C,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8BnD;AAiBD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,KAAK,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CACI,GACtC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAiD/B"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}