@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.
- package/README.md +53 -15
- package/dist/cli-args.d.ts +27 -0
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +74 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +139 -34
- package/dist/cli.js.map +1 -1
- package/dist/merge.d.ts +21 -2
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +194 -31
- package/dist/merge.js.map +1 -1
- package/dist/pay-lock.d.ts.map +1 -1
- package/dist/pay-lock.js +8 -14
- package/dist/pay-lock.js.map +1 -1
- package/dist/pay.d.ts +5 -1
- package/dist/pay.d.ts.map +1 -1
- package/dist/pay.js +43 -8
- package/dist/pay.js.map +1 -1
- package/dist/registry-parties.d.ts +6 -0
- package/dist/registry-parties.d.ts.map +1 -1
- package/dist/registry-parties.js +8 -0
- package/dist/registry-parties.js.map +1 -1
- package/dist/relay-client.d.ts +29 -0
- package/dist/relay-client.d.ts.map +1 -1
- package/dist/relay-client.js +83 -11
- package/dist/relay-client.js.map +1 -1
- package/dist/relay-signer.d.ts.map +1 -1
- package/dist/relay-signer.js +16 -1
- package/dist/relay-signer.js.map +1 -1
- package/dist/swap.d.ts +5 -0
- package/dist/swap.d.ts.map +1 -1
- package/dist/swap.js +29 -12
- package/dist/swap.js.map +1 -1
- package/dist/tx.d.ts +6 -11
- package/dist/tx.d.ts.map +1 -1
- package/dist/tx.js +11 -75
- package/dist/tx.js.map +1 -1
- package/dist/venue.d.ts +17 -11
- package/dist/venue.d.ts.map +1 -1
- package/dist/venue.js +20 -14
- package/dist/venue.js.map +1 -1
- package/dist/verify-prepared.d.ts +14 -26
- package/dist/verify-prepared.d.ts.map +1 -1
- package/dist/verify-prepared.js +12 -73
- package/dist/verify-prepared.js.map +1 -1
- package/dist/withdraw.d.ts +2 -1
- package/dist/withdraw.d.ts.map +1 -1
- package/dist/withdraw.js +70 -22
- package/dist/withdraw.js.map +1 -1
- package/package.json +4 -4
- package/dist/quest-fund.d.ts +0 -142
- package/dist/quest-fund.d.ts.map +0 -1
- package/dist/quest-fund.js +0 -355
- package/dist/quest-fund.js.map +0 -1
package/dist/pay.js
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* makePayingFetch — a drop-in fetch that auto-pays x402 challenges from the
|
|
3
3
|
* agent's self-custody wallet. Lazily creates the wallet on first use, then
|
|
4
4
|
* wraps fetch so any 402 is paid (relay PREPARES a token-standard
|
|
5
|
-
* TransferFactory_Transfer → verify-before-sign → sign locally → the
|
|
6
|
-
*
|
|
7
|
-
* just "fetches".
|
|
5
|
+
* TransferFactory_Transfer → verify-before-sign → sign locally → the signed
|
|
6
|
+
* transaction rides INLINE in the payment payload for the facilitator to settle)
|
|
7
|
+
* and the request retried. The agent just "fetches".
|
|
8
8
|
*/
|
|
9
9
|
import { wrapFetchWithCantonPayment, peekChosenRequirement, peekChosenTransferMethod, } from "@ftptech/x402-canton-client";
|
|
10
10
|
import { assetMatches } from "@ftptech/x402-canton-core";
|
|
11
11
|
import { ensureWallet } from "./onboard.js";
|
|
12
12
|
import { makeRelaySigner } from "./relay-signer.js";
|
|
13
|
-
import { resolveTrustedRegistryParties } from "./registry-parties.js";
|
|
13
|
+
import { isTrustedRegistryAdmin, resolveSwapSymbol, resolveTrustedRegistryParties, } from "./registry-parties.js";
|
|
14
14
|
import { withPayLock } from "./pay-lock.js";
|
|
15
15
|
import { walletDir } from "./store.js";
|
|
16
16
|
/**
|
|
@@ -29,10 +29,38 @@ export function buildPreferAssetSelector(preferAsset) {
|
|
|
29
29
|
if (!preferAsset)
|
|
30
30
|
return undefined;
|
|
31
31
|
const want = preferAsset.toLowerCase();
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
// A symbol this wallet knows is matched on WHAT IS PAID — the structured
|
|
33
|
+
// instrumentId the signer acts on — never on the 402's free-text `asset`
|
|
34
|
+
// label, which a merchant can set to anything. Otherwise `--asset USDCx`
|
|
35
|
+
// (and a USDCx spend cap) could pick an entry labelled "USDCx" that actually
|
|
36
|
+
// pays Canton Coin.
|
|
37
|
+
// The MainNet registrar is baked in; on testnet/devnet the same symbol comes
|
|
38
|
+
// from a registrar trusted through CANTON_AGENT_REGISTRY_TRUSTED_PARTIES, so the
|
|
39
|
+
// instrument id from any TRUSTED registrar matches (an arbitrary admin still
|
|
40
|
+
// does not), and the MainNet registrar's entry wins when both are offered.
|
|
41
|
+
const known = resolveSwapSymbol(preferAsset);
|
|
42
|
+
const exact = (a) => {
|
|
43
|
+
const inst = a.extra?.instrumentId;
|
|
44
|
+
return (known.kind === "registry" &&
|
|
45
|
+
inst?.admin === known.instrument.admin &&
|
|
46
|
+
inst?.id === known.instrument.id);
|
|
47
|
+
};
|
|
48
|
+
const matches = (a) => {
|
|
49
|
+
const inst = a.extra?.instrumentId;
|
|
50
|
+
if (known.kind === "registry") {
|
|
51
|
+
return (inst?.id === known.instrument.id &&
|
|
52
|
+
typeof inst.admin === "string" &&
|
|
53
|
+
isTrustedRegistryAdmin(inst.admin, process.env));
|
|
54
|
+
}
|
|
55
|
+
if (known.kind === "cc") {
|
|
56
|
+
return inst?.id === "Amulet" && resolveTrustedRegistryParties(inst.admin, process.env).size === 0;
|
|
57
|
+
}
|
|
58
|
+
return (assetMatches(a.asset, preferAsset) ||
|
|
34
59
|
a.asset.toLowerCase() === want ||
|
|
35
|
-
|
|
60
|
+
inst?.id?.toLowerCase() === want);
|
|
61
|
+
};
|
|
62
|
+
return (cands) => {
|
|
63
|
+
const hit = cands.find(exact) ?? cands.find(matches);
|
|
36
64
|
if (hit)
|
|
37
65
|
return hit;
|
|
38
66
|
const offered = [
|
|
@@ -78,7 +106,11 @@ export function peekWalletPayment(response, wallet, opts = {}) {
|
|
|
78
106
|
};
|
|
79
107
|
}
|
|
80
108
|
export async function makePayingFetch(opts) {
|
|
81
|
-
|
|
109
|
+
// `relayUrl` is the relay to pay through. An EXISTING wallet used to keep the
|
|
110
|
+
// relay saved at `create` time and silently ignore this — so pointing a wallet
|
|
111
|
+
// at another facilitator (a cut-over, a staging relay) still paid through the
|
|
112
|
+
// old one. The saved wallet file is not changed; only this fetch uses it.
|
|
113
|
+
const wallet = { ...(await ensureWallet(opts)), relayUrl: opts.relayUrl };
|
|
82
114
|
// The file-backed wallet serializes concurrent pays via a directory mutex in
|
|
83
115
|
// its home (cross-process safe), so pass the home as the lock dir — behavior
|
|
84
116
|
// is identical to before this was extracted.
|
|
@@ -99,6 +131,9 @@ export async function makePayingFetchForWallet(wallet, opts, lockHome) {
|
|
|
99
131
|
...(opts.maxPaymentValue !== undefined
|
|
100
132
|
? { maxPaymentValue: opts.maxPaymentValue }
|
|
101
133
|
: {}),
|
|
134
|
+
...(opts.maxPaymentValueByInstrument !== undefined
|
|
135
|
+
? { maxPaymentValueByInstrument: opts.maxPaymentValueByInstrument }
|
|
136
|
+
: {}),
|
|
102
137
|
...(opts.expectedPayTo !== undefined
|
|
103
138
|
? { expectedPayTo: opts.expectedPayTo }
|
|
104
139
|
: {}),
|
package/dist/pay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAA4B,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAyB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,12 @@ export declare function resolveTrustedRegistryParties(instrumentAdmin: string, e
|
|
|
79
79
|
* set). Only then may the admin be pinned from the 402-supplied value; otherwise a
|
|
80
80
|
* value-moving transfer keeps the Amulet DSO anchor / fails closed.
|
|
81
81
|
*/
|
|
82
|
+
/**
|
|
83
|
+
* Registry admins trusted through `CANTON_AGENT_REGISTRY_TRUSTED_PARTIES`, on top
|
|
84
|
+
* of the baked-in MainNet registrars. This is how the registrar of a known
|
|
85
|
+
* symbol on another network (a testnet USDCx, say) becomes recognisable.
|
|
86
|
+
*/
|
|
87
|
+
export declare function envTrustedRegistryAdmins(env?: NodeJS.ProcessEnv): string[];
|
|
82
88
|
export declare function isTrustedRegistryAdmin(instrumentAdmin: string, env?: NodeJS.ProcessEnv): boolean;
|
|
83
89
|
/** Env naming the registry instruments this wallet MAY SPEND, e.g.
|
|
84
90
|
* `CANTON_AGENT_PAYABLE_INSTRUMENTS="<admin>|USDCx,<admin2>|EURx"`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-parties.d.ts","sourceRoot":"","sources":["../src/registry-parties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,0CAA0C,CAAC;AAgBpF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CACnD,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAgClC,CAAC;AAEF;;;;oFAIoF;AACpF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC9C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAW5D;AA0BD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,WAAW,CAAC,MAAM,CAAC,CAMrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;wEACwE;AACxE,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAE1E;gEACgE;AAChE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC9C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAUT"}
|
|
1
|
+
{"version":3,"file":"registry-parties.d.ts","sourceRoot":"","sources":["../src/registry-parties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,0CAA0C,CAAC;AAgBpF,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CACnD,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAgClC,CAAC;AAEF;;;;oFAIoF;AACpF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAmC9C,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAW5D;AA0BD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,WAAW,CAAC,MAAM,CAAC,CAMrB;AAED;;;;;GAKG;AACH;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED;wEACwE;AACxE,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAE1E;gEACgE;AAChE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAC9C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAUT"}
|
package/dist/registry-parties.js
CHANGED
|
@@ -156,6 +156,14 @@ export function resolveTrustedRegistryParties(instrumentAdmin, env = process.env
|
|
|
156
156
|
* set). Only then may the admin be pinned from the 402-supplied value; otherwise a
|
|
157
157
|
* value-moving transfer keeps the Amulet DSO anchor / fails closed.
|
|
158
158
|
*/
|
|
159
|
+
/**
|
|
160
|
+
* Registry admins trusted through `CANTON_AGENT_REGISTRY_TRUSTED_PARTIES`, on top
|
|
161
|
+
* of the baked-in MainNet registrars. This is how the registrar of a known
|
|
162
|
+
* symbol on another network (a testnet USDCx, say) becomes recognisable.
|
|
163
|
+
*/
|
|
164
|
+
export function envTrustedRegistryAdmins(env = process.env) {
|
|
165
|
+
return Object.keys(parseEnvTrustedParties(env[REGISTRY_TRUSTED_PARTIES_ENV]));
|
|
166
|
+
}
|
|
159
167
|
export function isTrustedRegistryAdmin(instrumentAdmin, env = process.env) {
|
|
160
168
|
return resolveTrustedRegistryParties(instrumentAdmin, env).size > 0;
|
|
161
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-parties.js","sourceRoot":"","sources":["../src/registry-parties.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry-parties.js","sourceRoot":"","sources":["../src/registry-parties.ts"],"names":[],"mappings":"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"}
|
package/dist/relay-client.d.ts
CHANGED
|
@@ -23,6 +23,11 @@ export interface OnboardPrepareResult {
|
|
|
23
23
|
}
|
|
24
24
|
export interface HoldingsResult {
|
|
25
25
|
party: string;
|
|
26
|
+
/** False when the relay answered a BOUNDED read (`slice`) and the slice was
|
|
27
|
+
* full: `instruments` then lists only the party's oldest holdings, so totals
|
|
28
|
+
* are lower bounds, not balances. True for a complete read (and for a relay
|
|
29
|
+
* that predates slicing, which only ever answers complete or 413). */
|
|
30
|
+
complete: boolean;
|
|
26
31
|
instruments: Array<{
|
|
27
32
|
admin: string;
|
|
28
33
|
id: string;
|
|
@@ -146,6 +151,20 @@ export declare const PAY_AND_CLAIM_RELAY_ROUTES: {
|
|
|
146
151
|
readonly submitPrepare: "/v1/wallet/submit/prepare";
|
|
147
152
|
readonly submitExecute: "/v1/wallet/submit/execute";
|
|
148
153
|
};
|
|
154
|
+
/** Default per-request relay timeout. Generous on purpose — a prepare against a
|
|
155
|
+
* busy participant takes seconds — but finite, so a hung relay fails the
|
|
156
|
+
* command instead of hanging it forever. Override: CANTON_AGENT_RELAY_TIMEOUT_MS. */
|
|
157
|
+
export declare const DEFAULT_RELAY_TIMEOUT_MS = 120000;
|
|
158
|
+
/** The relay did not answer in time. `outcomeUnknown` is set for a call that
|
|
159
|
+
* submits to the ledger: the submission may still commit, so the caller must
|
|
160
|
+
* check state (balance) before doing it again — a blind retry can pay twice. */
|
|
161
|
+
export declare class RelayTimeoutError extends Error {
|
|
162
|
+
readonly method: string;
|
|
163
|
+
readonly path: string;
|
|
164
|
+
readonly timeoutMs: number;
|
|
165
|
+
readonly outcomeUnknown: boolean;
|
|
166
|
+
constructor(method: string, path: string, timeoutMs: number, outcomeUnknown: boolean);
|
|
167
|
+
}
|
|
149
168
|
export declare class RelayHttpError extends Error {
|
|
150
169
|
readonly status: number;
|
|
151
170
|
/** The parsed JSON response body, or undefined when it was not JSON. */
|
|
@@ -162,9 +181,12 @@ export declare class RelayHttpError extends Error {
|
|
|
162
181
|
export declare function isHoldingsExceedNodeLimitError(err: unknown): boolean;
|
|
163
182
|
export declare class RelayClient {
|
|
164
183
|
private readonly opts;
|
|
184
|
+
private readonly timeoutMs;
|
|
165
185
|
constructor(opts: {
|
|
166
186
|
relayUrl: string;
|
|
167
187
|
apiKey?: string | undefined;
|
|
188
|
+
/** Per-request timeout; default CANTON_AGENT_RELAY_TIMEOUT_MS or 120 s. */
|
|
189
|
+
timeoutMs?: number;
|
|
168
190
|
});
|
|
169
191
|
private headers;
|
|
170
192
|
private req;
|
|
@@ -245,6 +267,13 @@ export declare class RelayClient {
|
|
|
245
267
|
holdings(party: string, instrument?: {
|
|
246
268
|
admin: string;
|
|
247
269
|
id: string;
|
|
270
|
+
},
|
|
271
|
+
/** `slice: true` asks for a BOUNDED read: a wallet with more holdings than
|
|
272
|
+
* the participant lists in one read gets its oldest holdings and
|
|
273
|
+
* `complete: false` instead of a 413. Use it where a prefix is enough to
|
|
274
|
+
* make progress (merge, picking inputs) — never as a balance. */
|
|
275
|
+
opts?: {
|
|
276
|
+
slice?: boolean;
|
|
248
277
|
}): Promise<HoldingsResult>;
|
|
249
278
|
/** Merchant TransferPreapproval status (public read). `hasPreapproval:true`
|
|
250
279
|
* means CC transfers to this merchant complete in ONE tx (the transfer-factory
|
|
@@ -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":"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"}
|
package/dist/relay-client.js
CHANGED
|
@@ -26,6 +26,14 @@
|
|
|
26
26
|
export function explainRelayFailure(body) {
|
|
27
27
|
// `deadline 'TransferPreapproval.expiresAt' at <ISO>` — the payee's preapproval
|
|
28
28
|
// has lapsed. Nothing was charged: this fails at PREPARE, before any signature.
|
|
29
|
+
// The payer's holdings are too many, or too fragmented, for one transfer —
|
|
30
|
+
// its funds may well be there. The relay names the exact merge to run.
|
|
31
|
+
if (/holdings_merge_required/.test(body)) {
|
|
32
|
+
const cmd = /(canton-agent-wallet merge[^"\\]*)/.exec(body)?.[1]?.trim();
|
|
33
|
+
return (`this wallet's holdings must be consolidated before it can pay this amount ` +
|
|
34
|
+
`(spread over more holdings than one transfer can spend). Run: ` +
|
|
35
|
+
`${cmd ?? "canton-agent-wallet merge"} — then retry. Nothing was charged.`);
|
|
36
|
+
}
|
|
29
37
|
const expired = /deadline\s+'TransferPreapproval\.expiresAt'\s+at\s+([0-9T:.+-]+Z)/.exec(body);
|
|
30
38
|
if (expired) {
|
|
31
39
|
return (`the PAYEE's TransferPreapproval expired at ${expired[1]} — every payment to ` +
|
|
@@ -52,6 +60,46 @@ export const PAY_AND_CLAIM_RELAY_ROUTES = {
|
|
|
52
60
|
submitPrepare: "/v1/wallet/submit/prepare",
|
|
53
61
|
submitExecute: "/v1/wallet/submit/execute",
|
|
54
62
|
};
|
|
63
|
+
/** Relay calls that SUBMIT to the ledger. A timeout on one of these is not a
|
|
64
|
+
* failure: the submission may still commit, so it must not read as "retry". */
|
|
65
|
+
const SUBMITTING_ROUTES = [
|
|
66
|
+
/^\/v1\/wallet\/submit\/execute$/,
|
|
67
|
+
/^\/v1\/wallet\/preapproval\/self\/commit$/,
|
|
68
|
+
/^\/v1\/wallet\/onboard\/finalize$/,
|
|
69
|
+
/^\/v1\/merchants\/[^/]+\/preapproval$/,
|
|
70
|
+
];
|
|
71
|
+
/** Default per-request relay timeout. Generous on purpose — a prepare against a
|
|
72
|
+
* busy participant takes seconds — but finite, so a hung relay fails the
|
|
73
|
+
* command instead of hanging it forever. Override: CANTON_AGENT_RELAY_TIMEOUT_MS. */
|
|
74
|
+
export const DEFAULT_RELAY_TIMEOUT_MS = 120_000;
|
|
75
|
+
/** The relay did not answer in time. `outcomeUnknown` is set for a call that
|
|
76
|
+
* submits to the ledger: the submission may still commit, so the caller must
|
|
77
|
+
* check state (balance) before doing it again — a blind retry can pay twice. */
|
|
78
|
+
export class RelayTimeoutError extends Error {
|
|
79
|
+
method;
|
|
80
|
+
path;
|
|
81
|
+
timeoutMs;
|
|
82
|
+
outcomeUnknown;
|
|
83
|
+
constructor(method, path, timeoutMs, outcomeUnknown) {
|
|
84
|
+
super(`relay ${method} ${path} did not answer within ${Math.round(timeoutMs / 1000)}s` +
|
|
85
|
+
(outcomeUnknown
|
|
86
|
+
? ` — the submission may still commit: check \`canton-agent-wallet balance\` ` +
|
|
87
|
+
`before retrying, or you may pay twice`
|
|
88
|
+
: ` — the relay is unreachable or overloaded; retry later ` +
|
|
89
|
+
`(raise CANTON_AGENT_RELAY_TIMEOUT_MS if it is just slow)`));
|
|
90
|
+
this.method = method;
|
|
91
|
+
this.path = path;
|
|
92
|
+
this.timeoutMs = timeoutMs;
|
|
93
|
+
this.outcomeUnknown = outcomeUnknown;
|
|
94
|
+
this.name = "RelayTimeoutError";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function resolveRelayTimeoutMs(explicit) {
|
|
98
|
+
if (explicit !== undefined)
|
|
99
|
+
return explicit;
|
|
100
|
+
const env = Number(process.env.CANTON_AGENT_RELAY_TIMEOUT_MS);
|
|
101
|
+
return Number.isFinite(env) && env > 0 ? env : DEFAULT_RELAY_TIMEOUT_MS;
|
|
102
|
+
}
|
|
55
103
|
export class RelayHttpError extends Error {
|
|
56
104
|
status;
|
|
57
105
|
body;
|
|
@@ -82,8 +130,10 @@ export function isHoldingsExceedNodeLimitError(err) {
|
|
|
82
130
|
}
|
|
83
131
|
export class RelayClient {
|
|
84
132
|
opts;
|
|
133
|
+
timeoutMs;
|
|
85
134
|
constructor(opts) {
|
|
86
135
|
this.opts = opts;
|
|
136
|
+
this.timeoutMs = resolveRelayTimeoutMs(opts.timeoutMs);
|
|
87
137
|
}
|
|
88
138
|
headers() {
|
|
89
139
|
const h = { "content-type": "application/json" };
|
|
@@ -93,12 +143,24 @@ export class RelayClient {
|
|
|
93
143
|
}
|
|
94
144
|
async req(method, path, body, extraHeaders) {
|
|
95
145
|
const url = this.opts.relayUrl.replace(/\/$/, "") + path;
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
146
|
+
const route = path.split("?")[0];
|
|
147
|
+
let r;
|
|
148
|
+
let text;
|
|
149
|
+
try {
|
|
150
|
+
r = await fetch(url, {
|
|
151
|
+
method,
|
|
152
|
+
headers: { ...this.headers(), ...(extraHeaders ?? {}) },
|
|
153
|
+
...(body !== undefined ? { body: JSON.stringify(body) } : {}),
|
|
154
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
155
|
+
});
|
|
156
|
+
text = await r.text();
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
if (err?.name === "TimeoutError") {
|
|
160
|
+
throw new RelayTimeoutError(method, route, this.timeoutMs, SUBMITTING_ROUTES.some((re) => re.test(route)));
|
|
161
|
+
}
|
|
162
|
+
throw err;
|
|
163
|
+
}
|
|
102
164
|
let json;
|
|
103
165
|
try {
|
|
104
166
|
json = JSON.parse(text);
|
|
@@ -175,11 +237,21 @@ export class RelayClient {
|
|
|
175
237
|
* the one read that sees Canton Coin AND any CIP-56 token. `/balance` only
|
|
176
238
|
* ever counted Amulet, so a wallet could PAY in USDCx and not SEE it.
|
|
177
239
|
* Pass `instrument` to narrow to one {admin,id}. */
|
|
178
|
-
holdings(party, instrument
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
240
|
+
holdings(party, instrument,
|
|
241
|
+
/** `slice: true` asks for a BOUNDED read: a wallet with more holdings than
|
|
242
|
+
* the participant lists in one read gets its oldest holdings and
|
|
243
|
+
* `complete: false` instead of a 413. Use it where a prefix is enough to
|
|
244
|
+
* make progress (merge, picking inputs) — never as a balance. */
|
|
245
|
+
opts = {}) {
|
|
246
|
+
const params = new URLSearchParams();
|
|
247
|
+
if (instrument) {
|
|
248
|
+
params.set("admin", instrument.admin);
|
|
249
|
+
params.set("id", instrument.id);
|
|
250
|
+
}
|
|
251
|
+
if (opts.slice)
|
|
252
|
+
params.set("slice", "1");
|
|
253
|
+
const q = params.size > 0 ? `?${params.toString()}` : "";
|
|
254
|
+
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/holdings${q}`).then((h) => ({ ...h, complete: h.complete !== false }));
|
|
183
255
|
}
|
|
184
256
|
/** Merchant TransferPreapproval status (public read). `hasPreapproval:true`
|
|
185
257
|
* means CC transfers to this merchant complete in ONE tx (the transfer-factory
|
package/dist/relay-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAchE,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;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,
|
|
1
|
+
{"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAchE,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;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,CA4Md"}
|
package/dist/relay-signer.js
CHANGED
|
@@ -84,6 +84,21 @@ export function makeRelaySigner(wallet, opts = {}) {
|
|
|
84
84
|
`${instrumentKey(registryInstrument.admin, registryInstrument.id)}. ` +
|
|
85
85
|
`Set maxPaymentValueByInstrument for it, or clear maxPaymentValue.`);
|
|
86
86
|
}
|
|
87
|
+
// The mirror case. A caller that capped only some TOKENS has said nothing
|
|
88
|
+
// about the instrument being paid, and silence must not read as
|
|
89
|
+
// "uncapped": a 402 that advertises a capped token's symbol but carries a
|
|
90
|
+
// Canton Coin instrumentId, or that offers another payable token first,
|
|
91
|
+
// would otherwise be signed for any amount the merchant names.
|
|
92
|
+
if (capRaw === undefined &&
|
|
93
|
+
opts.maxPaymentValueByInstrument !== undefined &&
|
|
94
|
+
Object.keys(opts.maxPaymentValueByInstrument).length > 0) {
|
|
95
|
+
throw new Error(`refusing to sign: a spend cap is configured only for ` +
|
|
96
|
+
`${Object.keys(opts.maxPaymentValueByInstrument).join(", ")} and this payment is ` +
|
|
97
|
+
(registryInstrument === undefined
|
|
98
|
+
? `in Canton Coin. Set maxPaymentValue for Canton Coin, or pay in the capped instrument.`
|
|
99
|
+
: `in ${instrumentKey(registryInstrument.admin, registryInstrument.id)}. ` +
|
|
100
|
+
`Set maxPaymentValueByInstrument for it, or pay in a capped instrument.`));
|
|
101
|
+
}
|
|
87
102
|
if (capRaw !== undefined) {
|
|
88
103
|
const want = Number(amount);
|
|
89
104
|
const cap = Number(capRaw);
|
|
@@ -128,7 +143,7 @@ export function makeRelaySigner(wallet, opts = {}) {
|
|
|
128
143
|
// Venue attribution: for a registry-token payment, stamp the wallet's
|
|
129
144
|
// configured `/venue` tag into the transfer meta (relay-side, alongside
|
|
130
145
|
// x402.memo) so an issuer's incentive program can attribute this payment.
|
|
131
|
-
//
|
|
146
|
+
// On by default (ftp/venue); CANTON_AGENT_VENUE_KEY=off disables; never for Amulet.
|
|
132
147
|
const venueMeta = _isRegistry
|
|
133
148
|
? venueMetaForInstrument(_admin, input.instrumentId.id, process.env)
|
|
134
149
|
: {};
|
package/dist/relay-signer.js.map
CHANGED
|
@@ -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/swap.d.ts
CHANGED
|
@@ -278,6 +278,11 @@ export interface SwapResult {
|
|
|
278
278
|
inputReturned: boolean;
|
|
279
279
|
/** True when we waited but the output had not arrived by the end of the window. */
|
|
280
280
|
timedOut: boolean;
|
|
281
|
+
/** True when the wallet holds more of the OUTPUT token than the participant
|
|
282
|
+
* lists in one read, so the delivery (its newest holding) cannot be seen:
|
|
283
|
+
* nothing is known about whether it landed. Not a failure — check `balance`
|
|
284
|
+
* after `merge --all-tokens`, and never resend on this alone. */
|
|
285
|
+
deliveryUnobservable: boolean;
|
|
281
286
|
/** Relay read/claim errors survived during the wait. NOTHING thrown after the
|
|
282
287
|
* input is sent — a transient relay blip must never make a SENT swap look
|
|
283
288
|
* failed (that reads as "retry me", i.e. a double-send). */
|
package/dist/swap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../src/swap.ts"],"names":[],"mappings":"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"}
|
package/dist/swap.js
CHANGED
|
@@ -545,13 +545,21 @@ export async function executeSwap(opts) {
|
|
|
545
545
|
// not waiting. (All swappable instruments are 10-dp, so the CC atomic scale is
|
|
546
546
|
// exact for the delta below.)
|
|
547
547
|
const wait = opts.waitForOutput ?? true;
|
|
548
|
+
// A registry output is read through a BOUNDED slice. On a wallet holding more
|
|
549
|
+
// than the participant lists in one read, the slice is its OLDEST holdings and
|
|
550
|
+
// the pool's delivery — the newest holding — is not in it, so a balance delta
|
|
551
|
+
// would never move. Such a wallet cannot observe delivery at all; we say so
|
|
552
|
+
// instead of waiting out the window and reporting a false timeout.
|
|
548
553
|
const readOutputBalance = async () => {
|
|
549
554
|
if (ticket.outInstrument) {
|
|
550
555
|
const { admin, id } = ticket.outInstrument;
|
|
551
|
-
const h = await relay.holdings(wallet.party, { admin, id });
|
|
552
|
-
return
|
|
556
|
+
const h = await relay.holdings(wallet.party, { admin, id }, { slice: true });
|
|
557
|
+
return {
|
|
558
|
+
sum: sumLedgerDecimals(h.instruments[0]?.holdings.filter((x) => !x.locked).map((x) => x.amount) ?? []),
|
|
559
|
+
complete: h.complete !== false,
|
|
560
|
+
};
|
|
553
561
|
}
|
|
554
|
-
return (await relay.balance(wallet.party)).cc;
|
|
562
|
+
return { sum: (await relay.balance(wallet.party)).cc, complete: true };
|
|
555
563
|
};
|
|
556
564
|
// Claim whatever is ALREADY pending into the baseline first: a pre-existing
|
|
557
565
|
// unclaimed offer accepted mid-wait would otherwise register as a balance rise
|
|
@@ -559,7 +567,10 @@ export async function executeSwap(opts) {
|
|
|
559
567
|
// (nothing has moved yet — let it propagate and abort).
|
|
560
568
|
if (wait)
|
|
561
569
|
await claimAll(relay, wallet, { hashBinding });
|
|
562
|
-
const
|
|
570
|
+
const baselineRead = wait ? await readOutputBalance() : { sum: "0", complete: true };
|
|
571
|
+
const outputBaseline = baselineRead.sum;
|
|
572
|
+
// Pre-send, so the caller can still decide; the send itself is unaffected.
|
|
573
|
+
const deliveryUnobservable = wait && !baselineRead.complete;
|
|
563
574
|
// Convert the numeric delivery thresholds to atomics BEFORE sending, so a malformed
|
|
564
575
|
// decimal (e.g. an endpoint-supplied non-numeric minOutput that somehow reached here)
|
|
565
576
|
// throws PRE-SEND — never after the input has moved, which would surface a sent swap as
|
|
@@ -638,14 +649,16 @@ export async function executeSwap(opts) {
|
|
|
638
649
|
try {
|
|
639
650
|
const r = await claimAll(relay, wallet, { hashBinding });
|
|
640
651
|
claimedUpdateIds.push(...r.updateIds);
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
652
|
+
if (!deliveryUnobservable) {
|
|
653
|
+
const now = (await readOutputBalance()).sum;
|
|
654
|
+
const rise = BigInt(decimalToAtomicCC(now)) - baseAtomic;
|
|
655
|
+
if (rise > lastRise)
|
|
656
|
+
lastRise = rise;
|
|
657
|
+
if (rise > 0n && rise >= minAtomic) {
|
|
658
|
+
delivered = atomicToDecimalCC(rise.toString());
|
|
659
|
+
timedOut = false;
|
|
660
|
+
break;
|
|
661
|
+
}
|
|
649
662
|
}
|
|
650
663
|
// The input-return check waits one interval: on the very first tick a
|
|
651
664
|
// balance read that has not caught up with the send would show the CC
|
|
@@ -667,6 +680,9 @@ export async function executeSwap(opts) {
|
|
|
667
680
|
}
|
|
668
681
|
if (timedOut && lastRise > 0n)
|
|
669
682
|
partialRise = atomicToDecimalCC(lastRise.toString());
|
|
683
|
+
// Not a timeout: the window was never able to see the delivery.
|
|
684
|
+
if (deliveryUnobservable && !inputReturned)
|
|
685
|
+
timedOut = false;
|
|
670
686
|
}
|
|
671
687
|
return {
|
|
672
688
|
sentUpdateId: sent.updateId,
|
|
@@ -676,6 +692,7 @@ export async function executeSwap(opts) {
|
|
|
676
692
|
...(partialRise !== undefined ? { partialRise } : {}),
|
|
677
693
|
inputReturned,
|
|
678
694
|
timedOut,
|
|
695
|
+
deliveryUnobservable,
|
|
679
696
|
pollErrors,
|
|
680
697
|
};
|
|
681
698
|
}
|