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