@ftptech/canton-agent-wallet 1.0.0 → 1.2.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 +19 -4
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +1 -0
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +84 -10
- package/dist/cli.js.map +1 -1
- package/dist/merge.d.ts +11 -27
- package/dist/merge.d.ts.map +1 -1
- package/dist/merge.js +91 -0
- package/dist/merge.js.map +1 -1
- package/dist/pay.d.ts +26 -1
- package/dist/pay.d.ts.map +1 -1
- package/dist/pay.js +45 -4
- package/dist/pay.js.map +1 -1
- package/dist/relay-client.d.ts +35 -0
- package/dist/relay-client.d.ts.map +1 -1
- package/dist/relay-client.js +14 -1
- package/dist/relay-client.js.map +1 -1
- package/dist/tx.d.ts +18 -0
- package/dist/tx.d.ts.map +1 -1
- package/dist/tx.js +100 -17
- package/dist/tx.js.map +1 -1
- package/dist/withdraw.d.ts +8 -0
- package/dist/withdraw.d.ts.map +1 -1
- package/dist/withdraw.js +59 -5
- package/dist/withdraw.js.map +1 -1
- package/package.json +3 -3
package/dist/pay.js
CHANGED
|
@@ -7,10 +7,40 @@
|
|
|
7
7
|
* just "fetches".
|
|
8
8
|
*/
|
|
9
9
|
import { wrapFetchWithCantonPayment, peekChosenTransferMethod, } from "@ftptech/x402-canton-client";
|
|
10
|
+
import { assetMatches } from "@ftptech/x402-canton-core";
|
|
10
11
|
import { ensureWallet } from "./onboard.js";
|
|
11
12
|
import { makeRelaySigner } from "./relay-signer.js";
|
|
12
13
|
import { withPayLock } from "./pay-lock.js";
|
|
13
14
|
import { walletDir } from "./store.js";
|
|
15
|
+
/**
|
|
16
|
+
* Build the `selectRequirements` tiebreaker for a preferred asset symbol, or
|
|
17
|
+
* `undefined` when none is set (so the client keeps its default "first compatible
|
|
18
|
+
* entry"). Matches by asset symbol (via the x402-ENVELOPE `assetMatches`) or the
|
|
19
|
+
* structured `instrumentId.id`, case-insensitively. An EXPLICITLY requested
|
|
20
|
+
* asset the 402 does not offer FAILS CLOSED with the offered list — silently
|
|
21
|
+
* paying whatever the merchant listed first is exactly the surprise a payer who
|
|
22
|
+
* named an instrument was trying to rule out. Pure + exported for unit testing.
|
|
23
|
+
*
|
|
24
|
+
* @param preferAsset - The asset symbol to prefer, e.g. `"USDCx"`, or undefined.
|
|
25
|
+
* @returns A selector over the compatible candidates, or undefined.
|
|
26
|
+
*/
|
|
27
|
+
export function buildPreferAssetSelector(preferAsset) {
|
|
28
|
+
if (!preferAsset)
|
|
29
|
+
return undefined;
|
|
30
|
+
const want = preferAsset.toLowerCase();
|
|
31
|
+
return (cands) => {
|
|
32
|
+
const hit = cands.find((a) => assetMatches(a.asset, preferAsset) ||
|
|
33
|
+
a.asset.toLowerCase() === want ||
|
|
34
|
+
a.extra?.instrumentId?.id?.toLowerCase() === want);
|
|
35
|
+
if (hit)
|
|
36
|
+
return hit;
|
|
37
|
+
const offered = [
|
|
38
|
+
...new Set(cands.map((a) => a.extra?.instrumentId?.id ?? a.asset)),
|
|
39
|
+
].join(", ");
|
|
40
|
+
throw new Error(`--asset ${preferAsset}: the 402 does not offer that instrument (offered: ${offered}). ` +
|
|
41
|
+
`Pass one of those, or drop --asset to pay the first offered entry.`);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
14
44
|
export async function makePayingFetch(opts) {
|
|
15
45
|
const wallet = await ensureWallet(opts);
|
|
16
46
|
// The file-backed wallet serializes concurrent pays via a directory mutex in
|
|
@@ -37,9 +67,15 @@ export async function makePayingFetchForWallet(wallet, opts, lockHome) {
|
|
|
37
67
|
? { expectedPayTo: opts.expectedPayTo }
|
|
38
68
|
: {}),
|
|
39
69
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
70
|
+
// When a preferred asset is set, pick the matching accepts[] entry; else the
|
|
71
|
+
// first compatible entry — identical to the default when no preference is given.
|
|
72
|
+
const selectRequirements = buildPreferAssetSelector(opts.preferAsset);
|
|
73
|
+
const paying = wrapFetchWithCantonPayment(globalThis.fetch, signer, {
|
|
74
|
+
...(opts.maxPaymentRetries !== undefined
|
|
75
|
+
? { maxPaymentRetries: opts.maxPaymentRetries }
|
|
76
|
+
: {}),
|
|
77
|
+
...(selectRequirements ? { selectRequirements } : {}),
|
|
78
|
+
});
|
|
43
79
|
// Probe first WITHOUT the lock — only a request that actually challenges 402
|
|
44
80
|
// enters the per-wallet queue, so non-paid traffic is never delayed. An
|
|
45
81
|
// ephemeral wallet has no same-wallet concurrency and no home dir, so it always
|
|
@@ -58,7 +94,12 @@ export async function makePayingFetchForWallet(wallet, opts, lockHome) {
|
|
|
58
94
|
return probe;
|
|
59
95
|
if (lockHome === undefined)
|
|
60
96
|
return paying(input, init);
|
|
61
|
-
|
|
97
|
+
// The peek must run the SAME selection as the paying fetch — including the
|
|
98
|
+
// preferred-asset tiebreaker — or the lock decision could be made for one
|
|
99
|
+
// accepts[] entry while a different one is paid. Today every compatible
|
|
100
|
+
// entry is transfer-factory, so a divergence would be inert; pinning the
|
|
101
|
+
// selector here keeps it inert when that stops being true.
|
|
102
|
+
const method = peekChosenTransferMethod(probe, signer, selectRequirements ? { selectRequirements } : {});
|
|
62
103
|
// Only serialize when we cannot determine the method (fail-safe). A
|
|
63
104
|
// recognized no-nonce method (transfer-factory) skips the lock.
|
|
64
105
|
const needsSerialization = method === undefined;
|
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,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAyB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"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"}
|
package/dist/relay-client.d.ts
CHANGED
|
@@ -21,6 +21,20 @@ export interface OnboardPrepareResult {
|
|
|
21
21
|
onboardingTransactions: string[];
|
|
22
22
|
hashToSign: string;
|
|
23
23
|
}
|
|
24
|
+
export interface HoldingsResult {
|
|
25
|
+
party: string;
|
|
26
|
+
instruments: Array<{
|
|
27
|
+
admin: string;
|
|
28
|
+
id: string;
|
|
29
|
+
/** Ledger Decimal string, 10 places. */
|
|
30
|
+
total: string;
|
|
31
|
+
holdings: Array<{
|
|
32
|
+
cid: string;
|
|
33
|
+
amount: string;
|
|
34
|
+
locked: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
24
38
|
export interface BalanceResult {
|
|
25
39
|
party: string;
|
|
26
40
|
amulet: number;
|
|
@@ -67,6 +81,13 @@ export interface PendingResult {
|
|
|
67
81
|
cid: string;
|
|
68
82
|
amount?: string;
|
|
69
83
|
sender?: string;
|
|
84
|
+
/** Set for a registry (CIP-56) instruction; absent on older relays / Amulet. */
|
|
85
|
+
instrumentId?: {
|
|
86
|
+
admin: string;
|
|
87
|
+
id: string;
|
|
88
|
+
};
|
|
89
|
+
/** ISO instant after which the ledger refuses the accept; absent on older relays. */
|
|
90
|
+
executeBefore?: string;
|
|
70
91
|
}>;
|
|
71
92
|
}
|
|
72
93
|
/** The Amulet OUTPUT holdings a transfer transaction created for the party, read
|
|
@@ -169,6 +190,14 @@ export declare class RelayClient {
|
|
|
169
190
|
};
|
|
170
191
|
}>;
|
|
171
192
|
balance(party: string): Promise<BalanceResult>;
|
|
193
|
+
/** Every instrument the party holds, read through the HoldingV1 interface —
|
|
194
|
+
* the one read that sees Canton Coin AND any CIP-56 token. `/balance` only
|
|
195
|
+
* ever counted Amulet, so a wallet could PAY in USDCx and not SEE it.
|
|
196
|
+
* Pass `instrument` to narrow to one {admin,id}. */
|
|
197
|
+
holdings(party: string, instrument?: {
|
|
198
|
+
admin: string;
|
|
199
|
+
id: string;
|
|
200
|
+
}): Promise<HoldingsResult>;
|
|
172
201
|
/** Merchant TransferPreapproval status (public read). `hasPreapproval:true`
|
|
173
202
|
* means CC transfers to this merchant complete in ONE tx (the transfer-factory
|
|
174
203
|
* "V3" precondition); `false` → 2-step Pending; `null` → could not resolve
|
|
@@ -257,6 +286,9 @@ export declare class RelayClient {
|
|
|
257
286
|
* `balance()` throws the 413 holdings_exceed_node_limit case
|
|
258
287
|
* (`isHoldingsExceedNodeLimitError`). */
|
|
259
288
|
holdingsScan(party: string): Promise<HoldingsScanResult>;
|
|
289
|
+
/** `registry=1` opts in to registry-token rows (USDCx offers…); without it
|
|
290
|
+
* the relay answers Canton Coin instructions only, which is what a client
|
|
291
|
+
* that cannot route a registry accept must keep seeing. */
|
|
260
292
|
pending(party: string): Promise<PendingResult>;
|
|
261
293
|
/** Request a one-time faucet seed for `party` (out-of-box e2e funding). The
|
|
262
294
|
* facilitator sends a tiny CC grant FROM ITS OWN party; it lands as a pending
|
|
@@ -288,9 +320,12 @@ export declare class RelayClient {
|
|
|
288
320
|
admin: string;
|
|
289
321
|
id: string;
|
|
290
322
|
};
|
|
323
|
+
/** Holdings the caller will spend; a registry resolve needs them. */
|
|
324
|
+
inputHoldingCids?: string[];
|
|
291
325
|
}): Promise<ResolveFactoryResult>;
|
|
292
326
|
resolveAccept(b: {
|
|
293
327
|
instructionCid: string;
|
|
328
|
+
instrumentAdmin?: string;
|
|
294
329
|
}): Promise<ResolveAcceptResult>;
|
|
295
330
|
/** Read the Amulet OUTPUT cids a transfer transaction created for `party`, by
|
|
296
331
|
* updateId (whale-merge output discovery — the agent is relay-only). The relay
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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
|
@@ -91,6 +91,16 @@ export class RelayClient {
|
|
|
91
91
|
balance(party) {
|
|
92
92
|
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/balance`);
|
|
93
93
|
}
|
|
94
|
+
/** Every instrument the party holds, read through the HoldingV1 interface —
|
|
95
|
+
* the one read that sees Canton Coin AND any CIP-56 token. `/balance` only
|
|
96
|
+
* ever counted Amulet, so a wallet could PAY in USDCx and not SEE it.
|
|
97
|
+
* Pass `instrument` to narrow to one {admin,id}. */
|
|
98
|
+
holdings(party, instrument) {
|
|
99
|
+
const q = instrument
|
|
100
|
+
? `?admin=${encodeURIComponent(instrument.admin)}&id=${encodeURIComponent(instrument.id)}`
|
|
101
|
+
: "";
|
|
102
|
+
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/holdings${q}`);
|
|
103
|
+
}
|
|
94
104
|
/** Merchant TransferPreapproval status (public read). `hasPreapproval:true`
|
|
95
105
|
* means CC transfers to this merchant complete in ONE tx (the transfer-factory
|
|
96
106
|
* "V3" precondition); `false` → 2-step Pending; `null` → could not resolve
|
|
@@ -140,8 +150,11 @@ export class RelayClient {
|
|
|
140
150
|
holdingsScan(party) {
|
|
141
151
|
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/holdings-scan`);
|
|
142
152
|
}
|
|
153
|
+
/** `registry=1` opts in to registry-token rows (USDCx offers…); without it
|
|
154
|
+
* the relay answers Canton Coin instructions only, which is what a client
|
|
155
|
+
* that cannot route a registry accept must keep seeing. */
|
|
143
156
|
pending(party) {
|
|
144
|
-
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/pending`);
|
|
157
|
+
return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/pending?registry=1`);
|
|
145
158
|
}
|
|
146
159
|
/** Request a one-time faucet seed for `party` (out-of-box e2e funding). The
|
|
147
160
|
* facilitator sends a tiny CC grant FROM ITS OWN party; it lands as a pending
|
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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"}
|
package/dist/tx.d.ts
CHANGED
|
@@ -145,6 +145,24 @@ export declare function claimAll(relay: RelayClient, wallet: AgentWallet, opts?:
|
|
|
145
145
|
}): Promise<{
|
|
146
146
|
claimed: number;
|
|
147
147
|
updateIds: string[];
|
|
148
|
+
/** Instructions left alone because their executeBefore has passed; the
|
|
149
|
+
* ledger would refuse the accept, so attempting it only burns a prepare. */
|
|
150
|
+
skippedExpired: number;
|
|
151
|
+
/** Instructions whose accept failed; the others were still attempted. */
|
|
152
|
+
failed: Array<{
|
|
153
|
+
cid: string;
|
|
154
|
+
error: string;
|
|
155
|
+
}>;
|
|
156
|
+
/** Offers of a token whose registrar this wallet has no trust anchor for
|
|
157
|
+
* (KNOWN_REGISTRY_TRUSTED_PARTIES / CANTON_AGENT_REGISTRY_TRUSTED_PARTIES).
|
|
158
|
+
* The agent cannot refuse to be SENT a token, but it refuses to ACT on one
|
|
159
|
+
* it cannot verify: such a row is left alone, named here, and never
|
|
160
|
+
* reaches prepare — so an honest-but-unanchored offer cannot trip
|
|
161
|
+
* verify-before-sign and stop the Canton Coin rows behind it. */
|
|
162
|
+
skippedUntrusted: Array<{
|
|
163
|
+
cid: string;
|
|
164
|
+
admin: string;
|
|
165
|
+
}>;
|
|
148
166
|
}>;
|
|
149
167
|
export declare function selfProvisionPreapproval(relay: RelayClient, wallet: AgentWallet, opts?: {
|
|
150
168
|
expiresAt?: string;
|
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,EAOL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
|
package/dist/tx.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { signHashB64 } from "./keys.js";
|
|
9
9
|
import { resolveHashBinding } from "./hash-binding.js";
|
|
10
|
-
import { assertHashBinding, assertPreparedTransferMatches, assertPreparedSelfPreapproval, assertPreparedRegistrySelfPreapproval, PreparedTransferMismatchError, assertPreparedAcceptMatches, } from "./verify-prepared.js";
|
|
11
|
-
import { resolveTrustedRegistryParties } from "./registry-parties.js";
|
|
10
|
+
import { assertHashBinding, assertPreparedTransferMatches, assertPreparedSelfPreapproval, assertPreparedRegistrySelfPreapproval, PreparedTransferMismatchError, assertPreparedAcceptMatches, PreparedDecodeError, PreparedHashUnavailableError, } from "./verify-prepared.js";
|
|
11
|
+
import { isTrustedRegistryAdmin, resolveTrustedRegistryParties } from "./registry-parties.js";
|
|
12
|
+
import { resolveTrustedDsoParty } from "./trusted-dso.js";
|
|
12
13
|
const TI_IFACE = "#splice-api-token-transfer-instruction-v1:Splice.Api.Token.TransferInstructionV1:TransferInstruction";
|
|
13
14
|
/**
|
|
14
15
|
* The instrument id the agent's self-custody wallet pays in: Canton Coin is the
|
|
@@ -138,6 +139,9 @@ export async function transfer(relay, wallet, opts) {
|
|
|
138
139
|
sender: wallet.party,
|
|
139
140
|
receiver: opts.receiver,
|
|
140
141
|
amount: opts.amount,
|
|
142
|
+
// The registry needs to see the inputs to resolve the kind; the SV Scan
|
|
143
|
+
// ignores them. Sent always: harmless for Amulet, required for a token.
|
|
144
|
+
inputHoldingCids,
|
|
141
145
|
...(opts.meta ? { meta: opts.meta } : {}),
|
|
142
146
|
// Non-Amulet CIP-56 ONLY: name the instrument so the relay resolves it on the
|
|
143
147
|
// right registry. Amulet omits it (the relay rejects a non-registry admin like
|
|
@@ -400,24 +404,103 @@ export async function claimAll(relay, wallet, opts = {}) {
|
|
|
400
404
|
const hashBinding = opts.hashBinding ?? resolveHashBinding();
|
|
401
405
|
const { pending } = await relay.pending(wallet.party);
|
|
402
406
|
const updateIds = [];
|
|
407
|
+
const failed = [];
|
|
408
|
+
const skippedUntrusted = [];
|
|
409
|
+
const trustedDso = resolveTrustedDsoParty(process.env, wallet.network);
|
|
410
|
+
let skippedExpired = 0;
|
|
411
|
+
const nowMs = Date.now();
|
|
403
412
|
for (const p of pending) {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
413
|
+
// ONE BAD INSTRUCTION MUST NOT BLOCK THE REST. This loop used to throw on
|
|
414
|
+
// the first failure, and pending is ordered oldest-first — so a single
|
|
415
|
+
// expired offer (the ledger answers deadline-exceeded to its accept) made
|
|
416
|
+
// every newer, perfectly claimable one unreachable. Measured live: three
|
|
417
|
+
// expired USDCx offers ahead of one live one, claim failed, balance stayed
|
|
418
|
+
// 0. Expired ones are skipped up front when the relay reports
|
|
419
|
+
// executeBefore; anything else that fails is recorded and the loop goes on.
|
|
420
|
+
if (p.executeBefore !== undefined && Date.parse(p.executeBefore) <= nowMs) {
|
|
421
|
+
skippedExpired += 1;
|
|
422
|
+
continue;
|
|
423
|
+
}
|
|
424
|
+
// A registry instruction's accept context lives on ITS registry, not the
|
|
425
|
+
// SV Scan. /pending names the instrument on EVERY row (the
|
|
426
|
+
// TransferInstructionV1 view always carries one — for Canton Coin it is the
|
|
427
|
+
// DSO + "Amulet"), so the admin is forwarded only for a registry token; an
|
|
428
|
+
// Amulet row keeps the SV Scan path it always had.
|
|
429
|
+
// Canton Coin is recognised by the LOCAL DSO anchor, not by the row's own
|
|
430
|
+
// label: a registrar that names a token "Amulet" is still a registrar.
|
|
431
|
+
// Without a known DSO for this network the id is all there is to go on.
|
|
432
|
+
const isCantonCoin = p.instrumentId === undefined ||
|
|
433
|
+
(p.instrumentId.id === "Amulet" &&
|
|
434
|
+
(trustedDso === undefined || p.instrumentId.admin === trustedDso));
|
|
435
|
+
const registryAdmin = isCantonCoin ? undefined : p.instrumentId.admin;
|
|
436
|
+
// The trust anchor for a registry claim is LOCAL (the baked-in table or
|
|
437
|
+
// the operator's env), never the relay's row. A registrar this wallet has
|
|
438
|
+
// no anchor for cannot be verified — the honest accept names the registry
|
|
439
|
+
// operator and bridge, which verify would rightly call foreign — so the
|
|
440
|
+
// row is skipped here instead of being prepared and refused (a refusal is
|
|
441
|
+
// treated as evidence about the relay and stops the loop).
|
|
442
|
+
if (registryAdmin !== undefined && !isTrustedRegistryAdmin(registryAdmin, process.env)) {
|
|
443
|
+
skippedUntrusted.push({ cid: p.cid, admin: registryAdmin });
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
try {
|
|
447
|
+
const ctx = await relay.resolveAccept({
|
|
448
|
+
instructionCid: p.cid,
|
|
449
|
+
...(registryAdmin !== undefined ? { instrumentAdmin: registryAdmin } : {}),
|
|
450
|
+
});
|
|
451
|
+
const ex = {
|
|
452
|
+
ExerciseCommand: {
|
|
453
|
+
templateId: TI_IFACE,
|
|
454
|
+
contractId: p.cid,
|
|
455
|
+
choice: "TransferInstruction_Accept",
|
|
456
|
+
choiceArgument: {
|
|
457
|
+
extraArgs: { context: ctx.choiceContextData, meta: { values: {} } },
|
|
458
|
+
},
|
|
412
459
|
},
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
460
|
+
};
|
|
461
|
+
updateIds.push(await prepareSignExecute(relay, wallet, [ex], ctx.disclosedContracts,
|
|
462
|
+
// VERIFY-before-sign: the prepared tx MUST be a single inbound accept by
|
|
463
|
+
// the agent — never a relay-injected outbound drain.
|
|
464
|
+
{
|
|
465
|
+
kind: "accept",
|
|
466
|
+
expect: {
|
|
467
|
+
selfParty: wallet.party,
|
|
468
|
+
nowMs: Date.now(),
|
|
469
|
+
// A registry claim DECLARES its token: that is what admits the
|
|
470
|
+
// registry two-step accept node, and the created holding is then
|
|
471
|
+
// held to {agent, registrar, trusted registry parties}. A Canton
|
|
472
|
+
// Coin claim declares nothing and keeps the Amulet-only whitelist.
|
|
473
|
+
...(registryAdmin !== undefined
|
|
474
|
+
? {
|
|
475
|
+
instrumentAdmin: registryAdmin,
|
|
476
|
+
trustedRegistryParties: resolveTrustedRegistryParties(registryAdmin, process.env),
|
|
477
|
+
}
|
|
478
|
+
: {}),
|
|
479
|
+
},
|
|
480
|
+
}, hashBinding));
|
|
481
|
+
}
|
|
482
|
+
catch (err) {
|
|
483
|
+
// NOT EVERY FAILURE IS ONE ROW'S PROBLEM. prepareSignExecute runs
|
|
484
|
+
// submitPrepare → verify-before-sign → hash-binding → sign → execute.
|
|
485
|
+
// A refusal from the VERIFY step means the relay handed back bytes that
|
|
486
|
+
// are not the accept we asked for — a drain, a tampered hash, an
|
|
487
|
+
// unbindable binding. That is evidence about the RELAY, not about this
|
|
488
|
+
// instruction, and the next row would be prepared by the same relay. It
|
|
489
|
+
// must stop the whole claim, exactly as before; the security suites pin
|
|
490
|
+
// that ("REJECTS an OUTBOUND DRAIN", "REFUSES with NO binding"). Only a
|
|
491
|
+
// failure AFTER an honest transaction was signed — the ledger refusing
|
|
492
|
+
// it, a transport error — is isolated to its row.
|
|
493
|
+
if (err instanceof PreparedTransferMismatchError ||
|
|
494
|
+
err instanceof PreparedDecodeError ||
|
|
495
|
+
err instanceof PreparedHashUnavailableError) {
|
|
496
|
+
throw err;
|
|
497
|
+
}
|
|
498
|
+
failed.push({ cid: p.cid, error: err instanceof Error ? err.message : String(err) });
|
|
499
|
+
}
|
|
419
500
|
}
|
|
420
|
-
|
|
501
|
+
// `claimed` is what actually landed, not what was pending — the old value
|
|
502
|
+
// reported every row as claimed even when the call had thrown.
|
|
503
|
+
return { claimed: updateIds.length, updateIds, skippedExpired, failed, skippedUntrusted };
|
|
421
504
|
}
|
|
422
505
|
/**
|
|
423
506
|
* SELF-PROVISION a merchant TransferPreapproval so this wallet's incoming
|
package/dist/tx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
|
package/dist/withdraw.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ export interface WithdrawOpts {
|
|
|
18
18
|
* CANTON_AGENT_DSO_PARTY (see trusted-dso.ts) — without it a relay-prepared tx
|
|
19
19
|
* that carries the DSO outside the root choice arg fails closed. */
|
|
20
20
|
instrumentAdmin?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Withdraw a REGISTRY (CIP-56) token instead of Canton Coin: the instrument
|
|
23
|
+
* id at its registrar (e.g. "USDCx"), paired with `instrumentAdmin` naming the
|
|
24
|
+
* registrar. Inputs are then read through the HoldingV1 interface — /balance
|
|
25
|
+
* only ever counts Amulet — and the relay resolves the transfer on that
|
|
26
|
+
* token's registry. Omitted: Canton Coin, exactly as before.
|
|
27
|
+
*/
|
|
28
|
+
instrumentId?: string;
|
|
21
29
|
/** Pre-loaded, IN-MEMORY wallet. When supplied, withdraw does NOT read the
|
|
22
30
|
* on-disk store (`loadWallet`). This lets a caller that reconstructed a wallet
|
|
23
31
|
* from a private-key PEM entirely in memory (e.g. the hosted pay-proxy
|
package/dist/withdraw.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AAMhD,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;CACrB;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsF/C"}
|
package/dist/withdraw.js
CHANGED
|
@@ -8,6 +8,8 @@ import { loadWallet } from "./store.js";
|
|
|
8
8
|
import { RelayClient } from "./relay-client.js";
|
|
9
9
|
import { transfer } from "./tx.js";
|
|
10
10
|
import { resolveHashBinding } from "./hash-binding.js";
|
|
11
|
+
import { resolveTrustedRegistryParties } from "./registry-parties.js";
|
|
12
|
+
import { sumLedgerDecimals, compareLedgerDecimals } from "@ftptech/x402-canton-core";
|
|
11
13
|
import { resolveTrustedDsoParty } from "./trusted-dso.js";
|
|
12
14
|
export async function withdraw(opts) {
|
|
13
15
|
const wallet = opts.wallet ?? loadWallet();
|
|
@@ -15,16 +17,60 @@ export async function withdraw(opts) {
|
|
|
15
17
|
throw new Error("no wallet — run `create` first");
|
|
16
18
|
const relay = opts.relay ??
|
|
17
19
|
new RelayClient({ relayUrl: wallet.relayUrl, apiKey: opts.apiKey });
|
|
20
|
+
// A registry token needs BOTH halves: the registrar (admin) and the id. One
|
|
21
|
+
// without the other cannot name an instrument, so it is refused here rather
|
|
22
|
+
// than silently falling back to Canton Coin — sending the wrong asset to an
|
|
23
|
+
// external address is the one mistake a withdraw must never make.
|
|
24
|
+
const isRegistry = opts.instrumentId !== undefined;
|
|
25
|
+
if (isRegistry && !opts.instrumentAdmin) {
|
|
26
|
+
throw new Error(`withdraw: instrumentId ${JSON.stringify(opts.instrumentId)} needs instrumentAdmin ` +
|
|
27
|
+
`(the registrar party) alongside it`);
|
|
28
|
+
}
|
|
29
|
+
if (isRegistry && opts.instrumentId === "Amulet") {
|
|
30
|
+
throw new Error("withdraw: Amulet is Canton Coin — omit instrumentId to withdraw CC");
|
|
31
|
+
}
|
|
18
32
|
// Read the balance once: it's both the default (full) amount and the
|
|
19
33
|
// pre-flight check so an over-balance / zero withdraw fails FAST with a clear
|
|
20
34
|
// message instead of a cryptic relay 502 (prepare can't fund) downstream.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
35
|
+
//
|
|
36
|
+
// For a registry token the balance comes from the HoldingV1 read, and only
|
|
37
|
+
// UNLOCKED holdings count: a locked holding is owned but not spendable, and
|
|
38
|
+
// offering it as an input would fail at the ledger after the user committed
|
|
39
|
+
// to the amount.
|
|
40
|
+
let available;
|
|
41
|
+
let inputCids;
|
|
42
|
+
let unit;
|
|
43
|
+
if (isRegistry) {
|
|
44
|
+
const h = await relay.holdings(wallet.party, {
|
|
45
|
+
admin: opts.instrumentAdmin,
|
|
46
|
+
id: opts.instrumentId,
|
|
47
|
+
});
|
|
48
|
+
const ins = h.instruments[0];
|
|
49
|
+
const spendable = (ins?.holdings ?? []).filter((x) => !x.locked);
|
|
50
|
+
// Exact sum: a float total can land an atomic ABOVE what the wallet holds,
|
|
51
|
+
// and that number is both the transfer amount and the pre-flight guard.
|
|
52
|
+
available = sumLedgerDecimals(spendable.map((x) => x.amount));
|
|
53
|
+
inputCids = spendable.map((x) => x.cid);
|
|
54
|
+
unit = opts.instrumentId;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const bal = await relay.balance(wallet.party);
|
|
58
|
+
available = bal.cc;
|
|
59
|
+
unit = "CC";
|
|
60
|
+
}
|
|
61
|
+
const amount = opts.amount ?? available;
|
|
62
|
+
let positive = false;
|
|
63
|
+
try {
|
|
64
|
+
positive = compareLedgerDecimals(amount, "0") > 0;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
positive = false;
|
|
68
|
+
}
|
|
69
|
+
if (!positive) {
|
|
24
70
|
throw new Error(`withdraw amount must be a positive number (got ${JSON.stringify(amount)})`);
|
|
25
71
|
}
|
|
26
|
-
if (
|
|
27
|
-
throw new Error(`insufficient funds: wallet balance is ${
|
|
72
|
+
if (compareLedgerDecimals(amount, available) > 0) {
|
|
73
|
+
throw new Error(`insufficient funds: wallet balance is ${available} ${unit} but ${amount} ${unit} was requested`);
|
|
28
74
|
}
|
|
29
75
|
const instrumentAdmin = opts.instrumentAdmin ?? resolveTrustedDsoParty(process.env, wallet.network);
|
|
30
76
|
const updateId = await transfer(relay, wallet, {
|
|
@@ -32,6 +78,14 @@ export async function withdraw(opts) {
|
|
|
32
78
|
amount,
|
|
33
79
|
hashBinding: opts.hashBinding ?? resolveHashBinding(),
|
|
34
80
|
...(instrumentAdmin !== undefined ? { expectInstrumentAdmin: instrumentAdmin } : {}),
|
|
81
|
+
...(isRegistry
|
|
82
|
+
? {
|
|
83
|
+
registryInstrument: true,
|
|
84
|
+
expectInstrumentId: opts.instrumentId,
|
|
85
|
+
inputHoldingCids: inputCids,
|
|
86
|
+
trustedRegistryParties: resolveTrustedRegistryParties(opts.instrumentAdmin, process.env),
|
|
87
|
+
}
|
|
88
|
+
: {}),
|
|
35
89
|
});
|
|
36
90
|
return { updateId, amount };
|
|
37
91
|
}
|
package/dist/withdraw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../src/withdraw.ts"],"names":[],"mappings":"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"}
|