@aifinpay/agent 1.7.0 → 1.8.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/dist/aifp1.d.ts +301 -0
- package/dist/aifp1.d.ts.map +1 -0
- package/dist/aifp1.js +661 -0
- package/dist/aifp1.js.map +1 -0
- package/dist/crossChain.d.ts +0 -8
- package/dist/crossChain.d.ts.map +1 -1
- package/dist/crossChain.js +66 -0
- package/dist/crossChain.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/spendLedger.d.ts +54 -0
- package/dist/spendLedger.d.ts.map +1 -0
- package/dist/spendLedger.js +185 -0
- package/dist/spendLedger.js.map +1 -0
- package/dist/unifiedAgent.d.ts +67 -0
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +338 -140
- package/dist/unifiedAgent.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aifp1.js","sourceRoot":"","sources":["../src/aifp1.ts"],"names":[],"mappings":"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"}
|
package/dist/crossChain.d.ts
CHANGED
|
@@ -51,14 +51,6 @@ export interface BridgeReceipt {
|
|
|
51
51
|
status: "submitted" | "pending" | "done" | "failed";
|
|
52
52
|
dest_tx?: string;
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
55
|
-
* Submit the source-chain transaction returned by `bridgeQuote()`.
|
|
56
|
-
* Caller supplies a viem walletClient connected to the SOURCE chain (the
|
|
57
|
-
* agent's wallet on `opts.fromChain`). We don't switch chains for the
|
|
58
|
-
* caller — that's an explicit choice to keep this primitive small.
|
|
59
|
-
*
|
|
60
|
-
* The agent signs and submits. AiFinPay never touches the funds.
|
|
61
|
-
*/
|
|
62
54
|
export declare function bridgeExecute(quote: BridgeQuote, walletClient: WalletClient, publicClient: PublicClient): Promise<BridgeReceipt>;
|
|
63
55
|
/**
|
|
64
56
|
* Poll LiFi's /v1/status for cross-chain arrival. Stargate/Across typically
|
package/dist/crossChain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossChain.d.ts","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOvD,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAInD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAO3D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC,CAGrE,CAAC;AAIF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAK,YAAY,CAAC;IAC3B,OAAO,EAAO,YAAY,CAAC;IAC3B,SAAS,EAAK,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAO,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAI,MAAM,CAAC;IACrB,WAAW,EAAG,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAK,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,EAAE,EAAI;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IAErB,SAAS,EAAK,OAAO,CAAC;CACvB;AA8BD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChF;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAG,YAAY,CAAC;IAC5B,UAAU,EAAK,YAAY,CAAC;IAC5B,WAAW,EAAI,MAAM,CAAC;IACtB,MAAM,EAAS,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAG3D,OAAO,CAAC,EAAO,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"crossChain.d.ts","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAOvD,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAInD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAO3D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC,CAGrE,CAAC;AAIF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAK,YAAY,CAAC;IAC3B,OAAO,EAAO,YAAY,CAAC;IAC3B,SAAS,EAAK,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAO,KAAK,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAI,MAAM,CAAC;IACrB,WAAW,EAAG,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAK,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAG,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,EAAE,EAAI;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC;IAErB,SAAS,EAAK,OAAO,CAAC;CACvB;AA8BD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChF;AAID,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAG,YAAY,CAAC;IAC5B,UAAU,EAAK,YAAY,CAAC;IAC5B,WAAW,EAAI,MAAM,CAAC;IACtB,MAAM,EAAS,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAG3D,OAAO,CAAC,EAAO,MAAM,CAAC;CACvB;AA4FD,wBAAsB,aAAa,CACjC,KAAK,EAAW,WAAW,EAC3B,YAAY,EAAI,YAAY,EAC5B,YAAY,EAAI,YAAY,GAC3B,OAAO,CAAC,aAAa,CAAC,CAqDxB;AAID;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAG,KAAK,MAAM,EAAE,EAC5B,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAO,MAAM,CAAC;CACpB,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBxE"}
|
package/dist/crossChain.js
CHANGED
|
@@ -70,6 +70,71 @@ export async function bridgeQuote(opts) {
|
|
|
70
70
|
*
|
|
71
71
|
* The agent signs and submits. AiFinPay never touches the funds.
|
|
72
72
|
*/
|
|
73
|
+
// LiFi's sentinel for "the chain's own coin", plus the zero address some
|
|
74
|
+
// integrators use for the same thing.
|
|
75
|
+
const NATIVE_SENTINELS = new Set([
|
|
76
|
+
"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
|
77
|
+
"0x0000000000000000000000000000000000000000",
|
|
78
|
+
]);
|
|
79
|
+
// A bridge of this size should never need more than this much gas. The cap is
|
|
80
|
+
// generous — real LiFi routes land far below it — and exists so a quote cannot
|
|
81
|
+
// name a number that empties the wallet through the fee alone.
|
|
82
|
+
const MAX_BRIDGE_GAS = 3000000n;
|
|
83
|
+
/**
|
|
84
|
+
* Refuse to sign a transaction that does not match the quote it came with.
|
|
85
|
+
*
|
|
86
|
+
* bridgeExecute() previously took `to`, `data`, `value` and `gasLimit` straight
|
|
87
|
+
* from `raw_quote.transactionRequest` and checked only the chain id. Since
|
|
88
|
+
* bridgeExecute() accepts any object shaped like a BridgeQuote, and since
|
|
89
|
+
* raw_quote is whatever an HTTP response said, the effect was that an
|
|
90
|
+
* attacker-supplied or tampered quote could have the agent sign a transfer of
|
|
91
|
+
* its own funds to any address.
|
|
92
|
+
*
|
|
93
|
+
* The calldata is not something this SDK can meaningfully validate — it is a
|
|
94
|
+
* router's business. What it can do is refuse the shapes that move money in
|
|
95
|
+
* ways the quote never described:
|
|
96
|
+
*
|
|
97
|
+
* Bridging an ERC-20 sends no native value at all. Any value on such a quote
|
|
98
|
+
* is money leaving by a route the human-readable summary does not mention.
|
|
99
|
+
*
|
|
100
|
+
* Bridging the native coin sends exactly the amount quoted. More than that
|
|
101
|
+
* is, again, unquoted.
|
|
102
|
+
*
|
|
103
|
+
* The destination must be a contract. A router is one; an attacker's wallet
|
|
104
|
+
* is not, and a plain transfer to an address is the simplest form of this
|
|
105
|
+
* attack.
|
|
106
|
+
*/
|
|
107
|
+
async function assertQuoteMatchesTransaction(quote, tx, publicClient) {
|
|
108
|
+
const value = BigInt(tx.value || "0x0");
|
|
109
|
+
const fromToken = String(quote.from?.token ?? "").toLowerCase();
|
|
110
|
+
const quotedAmount = BigInt(quote.from?.amount ?? "0");
|
|
111
|
+
const bridgingNative = NATIVE_SENTINELS.has(fromToken);
|
|
112
|
+
if (!bridgingNative && value !== 0n) {
|
|
113
|
+
throw new AiFinPayError(`bridgeExecute: quote bridges token ${quote.from?.token} but the transaction sends ` +
|
|
114
|
+
`${value} native units. A token bridge sends no native value — refusing to sign.`);
|
|
115
|
+
}
|
|
116
|
+
if (bridgingNative && value > quotedAmount) {
|
|
117
|
+
throw new AiFinPayError(`bridgeExecute: transaction sends ${value} native units but the quote is for ` +
|
|
118
|
+
`${quotedAmount} — refusing to sign for more than was quoted.`);
|
|
119
|
+
}
|
|
120
|
+
const gas = tx.gasLimit ? BigInt(tx.gasLimit) : 0n;
|
|
121
|
+
if (gas > MAX_BRIDGE_GAS) {
|
|
122
|
+
throw new AiFinPayError(`bridgeExecute: quote asks for ${gas} gas, above the ${MAX_BRIDGE_GAS} ceiling — refusing to sign.`);
|
|
123
|
+
}
|
|
124
|
+
let code;
|
|
125
|
+
try {
|
|
126
|
+
code = await publicClient.getBytecode({ address: tx.to });
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// An RPC that will not answer is not evidence of an attack; let the send
|
|
130
|
+
// fail on its own terms rather than inventing a security verdict.
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (!code || code === "0x") {
|
|
134
|
+
throw new AiFinPayError(`bridgeExecute: quote sends funds to ${tx.to}, which has no code. Bridge routers are ` +
|
|
135
|
+
`contracts — refusing to sign a transfer to a plain address.`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
73
138
|
export async function bridgeExecute(quote, walletClient, publicClient) {
|
|
74
139
|
const raw = quote.raw_quote;
|
|
75
140
|
const tx = raw.transactionRequest;
|
|
@@ -85,6 +150,7 @@ export async function bridgeExecute(quote, walletClient, publicClient) {
|
|
|
85
150
|
if (!account) {
|
|
86
151
|
throw new AiFinPayError(`bridgeExecute: walletClient has no account — pass account: at creation`);
|
|
87
152
|
}
|
|
153
|
+
await assertQuoteMatchesTransaction(quote, tx, publicClient);
|
|
88
154
|
const hash = await walletClient.sendTransaction({
|
|
89
155
|
account,
|
|
90
156
|
to: tx.to,
|
package/dist/crossChain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossChain.js","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crossChain.js","sourceRoot":"","sources":["../src/crossChain.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
export { AiFinPayAgent, SPLITTER_DEPLOYMENTS, paymentIdFor } from "./unifiedAgent.js";
|
|
22
22
|
export type { AiFinPayAgentOptions, CallOptions, ChainId, SplitterChainName, SplitterDeployment, AnyEvmChainName, ProviderEntry, BalanceSnapshot, ReputationSnapshot, BudgetCaps, SessionHandle, SessionReceipt, NetworkAgent, } from "./unifiedAgent.js";
|
|
23
23
|
export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
|
|
24
|
+
export { aifp1Fetch, Aifp1ReceiptCache, scopeCovers, prefixHint, parseGatewayUrl, idempotencyKeyFor, } from "./aifp1.js";
|
|
25
|
+
export type { Aifp1Scope, Aifp1Challenge, Aifp1Quote, Aifp1PayResult, Aifp1CachedReceipt, Aifp1FetchOptions, Aifp1Deps, } from "./aifp1.js";
|
|
26
|
+
export { Aifp1Error, Aifp1QuoteError, Aifp1PayError, Aifp1SettlementUnsupportedError, Aifp1ReceiptRejectedError, } from "./aifp1.js";
|
|
24
27
|
export { bridgeQuote, bridgeExecute, bridgeWaitForArrival, EVM_CHAINS, USDC_NATIVE, USDC_BRIDGED, } from "./crossChain.js";
|
|
25
28
|
export type { BridgeQuote, BridgeReceipt, BridgeQuoteOptions, EvmChainName, } from "./crossChain.js";
|
|
26
29
|
export { Agent } from "./agent.js";
|
|
@@ -28,4 +31,5 @@ export type { AgentOptions, Invoice, PayInit } from "./agent.js";
|
|
|
28
31
|
export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
|
|
29
32
|
export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator, } from "./facilitators/index.js";
|
|
30
33
|
export type { AuthPayload, Facilitator, FacilitatorClass, PayOptions, } from "./facilitators/index.js";
|
|
34
|
+
export { type SpendLedger, MemorySpendLedger, FileSpendLedger, } from "./spendLedger.js";
|
|
31
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtF,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,KAAK,WAAW,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,6 +21,14 @@
|
|
|
21
21
|
// ── Unified surface (Phase 1+) ───────────────────────────────────────────
|
|
22
22
|
export { AiFinPayAgent, SPLITTER_DEPLOYMENTS, paymentIdFor } from "./unifiedAgent.js";
|
|
23
23
|
export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
|
|
24
|
+
// ── AIFP-1 merchant paywall (gateway.aifinpay.io) ────────────────────────
|
|
25
|
+
// The flow is normally reached as a method — `agent.fetchPaid(url)` — which
|
|
26
|
+
// wires in the agent's own settlement and budget caps. The pieces below are
|
|
27
|
+
// exported for callers who need to reason about a batch without making one:
|
|
28
|
+
// inspect held receipts, ask whether a scope covers a path, or drive the
|
|
29
|
+
// protocol from a wallet that is not an AiFinPayAgent.
|
|
30
|
+
export { aifp1Fetch, Aifp1ReceiptCache, scopeCovers, prefixHint, parseGatewayUrl, idempotencyKeyFor, } from "./aifp1.js";
|
|
31
|
+
export { Aifp1Error, Aifp1QuoteError, Aifp1PayError, Aifp1SettlementUnsupportedError, Aifp1ReceiptRejectedError, } from "./aifp1.js";
|
|
24
32
|
// ── Cross-chain orchestration (Phase 1.5a — EVM↔EVM via LiFi) ────────────
|
|
25
33
|
// Standalone primitives — also exposed as methods on AiFinPayAgent.
|
|
26
34
|
// Use the methods (agent.bridgeQuote / agent.bridgeExecute) unless you
|
|
@@ -30,4 +38,8 @@ export { bridgeQuote, bridgeExecute, bridgeWaitForArrival, EVM_CHAINS, USDC_NATI
|
|
|
30
38
|
export { Agent } from "./agent.js";
|
|
31
39
|
export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
|
|
32
40
|
export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator, } from "./facilitators/index.js";
|
|
41
|
+
// Spend accounting for the daily cap. Exported so an agent fleet spanning more
|
|
42
|
+
// than one host can supply a ledger that can answer for all of them — a lock
|
|
43
|
+
// file on one machine cannot.
|
|
44
|
+
export { MemorySpendLedger, FileSpendLedger, } from "./spendLedger.js";
|
|
33
45
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,0EAA0E;AAC1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAQzB,2EAA2E;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgBtF,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAUpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,4EAA4E;AAC5E,oEAAoE;AACpE,uEAAuE;AACvE,0EAA0E;AAC1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC;AAQzB,2EAA2E;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAQjC,+EAA+E;AAC/E,6EAA6E;AAC7E,8BAA8B;AAC9B,OAAO,EAEL,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface SpendLedger {
|
|
2
|
+
/**
|
|
3
|
+
* Claim `usd` of the cap, atomically, or refuse.
|
|
4
|
+
*
|
|
5
|
+
* The cap is checked here rather than by the caller because a caller that
|
|
6
|
+
* checks and then reserves has reintroduced the race this exists to close.
|
|
7
|
+
* Returns a reservation id, or null when the window total would exceed `cap`.
|
|
8
|
+
*/
|
|
9
|
+
reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
|
|
10
|
+
/** The payment happened. `actualUsd` corrects the estimate when known. */
|
|
11
|
+
commit(id: string, actualUsd?: number): Promise<void>;
|
|
12
|
+
/** The payment did not happen. Give the budget back now, not at expiry. */
|
|
13
|
+
release(id: string): Promise<void>;
|
|
14
|
+
/** Settled plus outstanding, over the window. */
|
|
15
|
+
total(windowMs: number): Promise<number>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* In-process ledger. Correct for one process, forgotten on restart.
|
|
19
|
+
*
|
|
20
|
+
* Kept because it is the right answer when no daily cap is set — there is
|
|
21
|
+
* nothing to remember — and because a test should not need a filesystem.
|
|
22
|
+
*/
|
|
23
|
+
export declare class MemorySpendLedger implements SpendLedger {
|
|
24
|
+
private entries;
|
|
25
|
+
reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
|
|
26
|
+
commit(id: string, actualUsd?: number): Promise<void>;
|
|
27
|
+
release(id: string): Promise<void>;
|
|
28
|
+
total(windowMs: number): Promise<number>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A ledger on disk, so a restart does not hand the agent its allowance again.
|
|
32
|
+
*
|
|
33
|
+
* Read-modify-write is guarded by an exclusive lock file, which is atomic on a
|
|
34
|
+
* local filesystem: `open(..., "wx")` either creates the file or fails, with no
|
|
35
|
+
* window in between. That covers several processes on one host, which is what
|
|
36
|
+
* a restart, a cron and a worker pool actually are.
|
|
37
|
+
*
|
|
38
|
+
* It does NOT cover several hosts — a lock file on a network filesystem is not
|
|
39
|
+
* a lock. An agent fleet spanning machines should pass its own SpendLedger
|
|
40
|
+
* backed by something that can answer for all of them; that is why this is an
|
|
41
|
+
* interface rather than a class the SDK insists on.
|
|
42
|
+
*/
|
|
43
|
+
export declare class FileSpendLedger implements SpendLedger {
|
|
44
|
+
private readonly path;
|
|
45
|
+
constructor(path: string);
|
|
46
|
+
/** Default location, one file per agent address. */
|
|
47
|
+
static forAgent(address: string): FileSpendLedger;
|
|
48
|
+
private withLock;
|
|
49
|
+
reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
|
|
50
|
+
commit(id: string, actualUsd?: number): Promise<void>;
|
|
51
|
+
release(id: string): Promise<void>;
|
|
52
|
+
total(windowMs: number): Promise<number>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=spendLedger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spendLedger.d.ts","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,2EAA2E;IAC3E,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,iDAAiD;IACjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAkBD;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,OAAO,CAAe;IAExB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,MAAM;IAEzC,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;YAKnC,QAAQ;IAiDhB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa3E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/C"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// Making a daily spending cap mean something.
|
|
2
|
+
//
|
|
3
|
+
// The cap was a number compared against a ring buffer in one object's memory.
|
|
4
|
+
// Two consequences, both of which defeat it entirely.
|
|
5
|
+
//
|
|
6
|
+
// A new process starts at zero. An agent that restarts — a crash loop, a
|
|
7
|
+
// deploy, a cron that runs it hourly — gets its full daily allowance again each
|
|
8
|
+
// time, and the "daily" cap becomes a per-process cap.
|
|
9
|
+
//
|
|
10
|
+
// And the check was separate from the record: `checkBudget()` read the total,
|
|
11
|
+
// the payment happened, and only then was the cost added. Two calls in flight
|
|
12
|
+
// at once both read the same total, both passed, and both paid. The cap held
|
|
13
|
+
// only for an agent making one call at a time, which is not the kind of agent
|
|
14
|
+
// this SDK is for.
|
|
15
|
+
//
|
|
16
|
+
// So a cap now goes through reserve → commit or release, where the reservation
|
|
17
|
+
// is what the next check sees. A reservation that is never resolved — the
|
|
18
|
+
// process died mid-payment — expires, because the alternative is an agent that
|
|
19
|
+
// loses its budget to a crash and cannot spend again until tomorrow.
|
|
20
|
+
//
|
|
21
|
+
// Durability is engaged only when a daily cap is actually set. A library that
|
|
22
|
+
// writes to a user's disk because it was imported would be rude; one that
|
|
23
|
+
// promises a daily limit and forgets it on restart is worse.
|
|
24
|
+
import { randomUUID } from "node:crypto";
|
|
25
|
+
import { mkdir, readFile, writeFile, rename, open, unlink } from "node:fs/promises";
|
|
26
|
+
import { homedir } from "node:os";
|
|
27
|
+
import { dirname, join } from "node:path";
|
|
28
|
+
/** How long a reservation survives without being committed or released. */
|
|
29
|
+
const RESERVATION_TTL_MS = 5 * 60_000;
|
|
30
|
+
function liveTotal(entries, windowMs, now) {
|
|
31
|
+
const cutoff = now - windowMs;
|
|
32
|
+
return entries
|
|
33
|
+
.filter((e) => e.at >= cutoff && (!e.expiresAt || e.expiresAt > now))
|
|
34
|
+
.reduce((s, e) => s + e.usd, 0);
|
|
35
|
+
}
|
|
36
|
+
function prune(entries, windowMs, now) {
|
|
37
|
+
const cutoff = now - windowMs;
|
|
38
|
+
// Drop what has aged out of the window, and reservations nobody resolved.
|
|
39
|
+
return entries.filter((e) => e.at >= cutoff && (!e.expiresAt || e.expiresAt > now));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* In-process ledger. Correct for one process, forgotten on restart.
|
|
43
|
+
*
|
|
44
|
+
* Kept because it is the right answer when no daily cap is set — there is
|
|
45
|
+
* nothing to remember — and because a test should not need a filesystem.
|
|
46
|
+
*/
|
|
47
|
+
export class MemorySpendLedger {
|
|
48
|
+
entries = [];
|
|
49
|
+
async reserve(usd, cap, windowMs) {
|
|
50
|
+
const now = Date.now();
|
|
51
|
+
this.entries = prune(this.entries, windowMs, now);
|
|
52
|
+
if (liveTotal(this.entries, windowMs, now) + usd > cap)
|
|
53
|
+
return null;
|
|
54
|
+
const id = randomUUID();
|
|
55
|
+
this.entries.push({ id, usd, at: now, expiresAt: now + RESERVATION_TTL_MS });
|
|
56
|
+
return id;
|
|
57
|
+
}
|
|
58
|
+
async commit(id, actualUsd) {
|
|
59
|
+
const e = this.entries.find((x) => x.id === id);
|
|
60
|
+
if (!e)
|
|
61
|
+
return;
|
|
62
|
+
if (typeof actualUsd === "number" && Number.isFinite(actualUsd))
|
|
63
|
+
e.usd = actualUsd;
|
|
64
|
+
delete e.expiresAt;
|
|
65
|
+
}
|
|
66
|
+
async release(id) {
|
|
67
|
+
this.entries = this.entries.filter((x) => x.id !== id);
|
|
68
|
+
}
|
|
69
|
+
async total(windowMs) {
|
|
70
|
+
return liveTotal(this.entries, windowMs, Date.now());
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A ledger on disk, so a restart does not hand the agent its allowance again.
|
|
75
|
+
*
|
|
76
|
+
* Read-modify-write is guarded by an exclusive lock file, which is atomic on a
|
|
77
|
+
* local filesystem: `open(..., "wx")` either creates the file or fails, with no
|
|
78
|
+
* window in between. That covers several processes on one host, which is what
|
|
79
|
+
* a restart, a cron and a worker pool actually are.
|
|
80
|
+
*
|
|
81
|
+
* It does NOT cover several hosts — a lock file on a network filesystem is not
|
|
82
|
+
* a lock. An agent fleet spanning machines should pass its own SpendLedger
|
|
83
|
+
* backed by something that can answer for all of them; that is why this is an
|
|
84
|
+
* interface rather than a class the SDK insists on.
|
|
85
|
+
*/
|
|
86
|
+
export class FileSpendLedger {
|
|
87
|
+
path;
|
|
88
|
+
constructor(path) {
|
|
89
|
+
this.path = path;
|
|
90
|
+
}
|
|
91
|
+
/** Default location, one file per agent address. */
|
|
92
|
+
static forAgent(address) {
|
|
93
|
+
const base = process.env.AIFINPAY_STATE_DIR || join(homedir(), ".aifinpay");
|
|
94
|
+
return new FileSpendLedger(join(base, "spend", `${address.toLowerCase()}.json`));
|
|
95
|
+
}
|
|
96
|
+
async withLock(fn) {
|
|
97
|
+
await mkdir(dirname(this.path), { recursive: true });
|
|
98
|
+
const lockPath = `${this.path}.lock`;
|
|
99
|
+
// Spin briefly rather than failing: contention here is two of our own
|
|
100
|
+
// calls, and they are milliseconds apart.
|
|
101
|
+
let handle;
|
|
102
|
+
const deadline = Date.now() + 5_000;
|
|
103
|
+
for (;;) {
|
|
104
|
+
try {
|
|
105
|
+
handle = await open(lockPath, "wx");
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
if (e.code !== "EEXIST")
|
|
110
|
+
throw e;
|
|
111
|
+
if (Date.now() > deadline) {
|
|
112
|
+
// A lock this old belongs to a process that died holding it. Breaking
|
|
113
|
+
// it risks a lost update; refusing to ever break it means one crash
|
|
114
|
+
// disables the cap permanently, which is worse.
|
|
115
|
+
await unlink(lockPath).catch(() => { });
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
await new Promise((r) => setTimeout(r, 5 + Math.floor(Math.random() * 15)));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
let entries = [];
|
|
123
|
+
try {
|
|
124
|
+
entries = JSON.parse(await readFile(this.path, "utf8"));
|
|
125
|
+
if (!Array.isArray(entries))
|
|
126
|
+
entries = [];
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Absent or unreadable. Starting from empty is the only option, and it
|
|
130
|
+
// errs toward letting a payment through rather than blocking one — the
|
|
131
|
+
// same direction the old in-memory behaviour erred, every restart.
|
|
132
|
+
entries = [];
|
|
133
|
+
}
|
|
134
|
+
const { entries: next, result } = fn(entries);
|
|
135
|
+
// Write to a sibling and rename: a crash mid-write leaves the previous
|
|
136
|
+
// ledger intact rather than a truncated one.
|
|
137
|
+
const tmp = `${this.path}.${process.pid}.tmp`;
|
|
138
|
+
await writeFile(tmp, JSON.stringify(next), "utf8");
|
|
139
|
+
await rename(tmp, this.path);
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
await handle.close().catch(() => { });
|
|
144
|
+
await unlink(lockPath).catch(() => { });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async reserve(usd, cap, windowMs) {
|
|
148
|
+
return this.withLock((entries) => {
|
|
149
|
+
const now = Date.now();
|
|
150
|
+
const live = prune(entries, windowMs, now);
|
|
151
|
+
if (liveTotal(live, windowMs, now) + usd > cap) {
|
|
152
|
+
return { entries: live, result: null };
|
|
153
|
+
}
|
|
154
|
+
const id = randomUUID();
|
|
155
|
+
live.push({ id, usd, at: now, expiresAt: now + RESERVATION_TTL_MS });
|
|
156
|
+
return { entries: live, result: id };
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async commit(id, actualUsd) {
|
|
160
|
+
await this.withLock((entries) => {
|
|
161
|
+
for (const e of entries) {
|
|
162
|
+
if (e.id === id) {
|
|
163
|
+
if (typeof actualUsd === "number" && Number.isFinite(actualUsd))
|
|
164
|
+
e.usd = actualUsd;
|
|
165
|
+
delete e.expiresAt;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return { entries, result: undefined };
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
async release(id) {
|
|
172
|
+
await this.withLock((entries) => ({
|
|
173
|
+
entries: entries.filter((e) => e.id !== id),
|
|
174
|
+
result: undefined,
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
async total(windowMs) {
|
|
178
|
+
return this.withLock((entries) => {
|
|
179
|
+
const now = Date.now();
|
|
180
|
+
const live = prune(entries, windowMs, now);
|
|
181
|
+
return { entries: live, result: liveTotal(live, windowMs, now) };
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=spendLedger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spendLedger.js","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,yEAAyE;AACzE,gFAAgF;AAChF,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6DAA6D;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA4B1C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC;AAEtC,SAAS,SAAS,CAAC,OAAgB,EAAE,QAAgB,EAAE,GAAW;IAChE,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC9B,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,OAAgB,EAAE,QAAgB,EAAE,GAAW;IAC5D,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC9B,0EAA0E;IAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAAY,EAAE,CAAC;IAE9B,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,QAAgB;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,kBAAkB,EAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAkB;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;QACnF,OAAO,CAAC,CAAC,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,OAAe;QAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5E,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAI,EAAyD;QACjF,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC;QAErC,sEAAsE;QACtE,0CAA0C;QAC1C,IAAI,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACpC,SAAS,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM;YACR,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;oBAC1B,sEAAsE;oBACtE,oEAAoE;oBACpE,gDAAgD;oBAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACvC,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,OAAO,GAAY,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;gBACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,OAAO,GAAG,EAAE,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;gBACvE,uEAAuE;gBACvE,mEAAmE;gBACnE,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YAC9C,uEAAuE;YACvE,6CAA6C;YAC7C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YAC9C,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,QAAgB;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;gBAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACzC,CAAC;YACD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,kBAAkB,EAAE,CAAC,CAAC;YACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAkB;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBAChB,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAAE,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;oBACnF,OAAO,CAAC,CAAC,SAAS,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAC3C,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/unifiedAgent.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { type PrivateKeyAccount } from "viem/accounts";
|
|
|
2
2
|
import { type Chain } from "viem/chains";
|
|
3
3
|
import { AiFinPayError } from "./errors.js";
|
|
4
4
|
import { Agent, type AgentOptions } from "./agent.js";
|
|
5
|
+
import { type SpendLedger } from "./spendLedger.js";
|
|
6
|
+
import { Aifp1ReceiptCache, type Aifp1FetchOptions } from "./aifp1.js";
|
|
5
7
|
import { type BridgeQuote, type BridgeReceipt, type EvmChainName } from "./crossChain.js";
|
|
6
8
|
/**
|
|
7
9
|
* Chains the unified agent can settle on. "solana" uses the Anchor
|
|
@@ -97,6 +99,14 @@ export interface AiFinPayAgentOptions extends AgentOptions {
|
|
|
97
99
|
budgetCaps?: BudgetCaps;
|
|
98
100
|
telemetry?: boolean;
|
|
99
101
|
polygonRpc?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Where the daily cap is remembered.
|
|
104
|
+
*
|
|
105
|
+
* Omit it and the SDK picks: a file under ~/.aifinpay (or AIFINPAY_STATE_DIR)
|
|
106
|
+
* once a daily cap is set, memory otherwise. Pass your own when the agent
|
|
107
|
+
* runs on more than one host — a lock file cannot answer for a fleet.
|
|
108
|
+
*/
|
|
109
|
+
spendLedger?: SpendLedger;
|
|
100
110
|
solanaRpc?: string;
|
|
101
111
|
/** RPC overrides for non-Polygon EVM chains — both bridge-flow chains
|
|
102
112
|
* and splitter-settlement chains (base, optimism, unichain, botchain,
|
|
@@ -227,6 +237,8 @@ export declare class AiFinPayAgent {
|
|
|
227
237
|
private cachedRegistry?;
|
|
228
238
|
private budgetCaps;
|
|
229
239
|
private spend24h;
|
|
240
|
+
private _ledger?;
|
|
241
|
+
private ledgerOverride?;
|
|
230
242
|
private telemetry;
|
|
231
243
|
private _polygonPublic?;
|
|
232
244
|
private _polygonWallet?;
|
|
@@ -330,6 +342,33 @@ export declare class AiFinPayAgent {
|
|
|
330
342
|
* without submitting an on-chain tx. Throws BudgetCapExceededError
|
|
331
343
|
* in the default "throw" mode.
|
|
332
344
|
*/
|
|
345
|
+
/**
|
|
346
|
+
* The ledger that enforces the daily cap.
|
|
347
|
+
*
|
|
348
|
+
* Chosen late, because setBudget() is usually called after construction and
|
|
349
|
+
* the choice depends on whether a daily cap exists at all. Durability is
|
|
350
|
+
* engaged only when one does: a library that writes to a user's disk because
|
|
351
|
+
* it was imported would be rude, and one that promises a daily limit and
|
|
352
|
+
* forgets it on restart is worse.
|
|
353
|
+
*/
|
|
354
|
+
private get ledger();
|
|
355
|
+
/**
|
|
356
|
+
* Claim room in the daily cap before paying.
|
|
357
|
+
*
|
|
358
|
+
* Returns a reservation id, or "skip"/throws per on_limit_exceeded. The cap
|
|
359
|
+
* comparison happens inside the ledger, atomically: a caller that read the
|
|
360
|
+
* total and then reserved would have rebuilt the race this replaces, where
|
|
361
|
+
* two concurrent calls both read the same total, both passed, and both paid.
|
|
362
|
+
*/
|
|
363
|
+
private reserveDaily;
|
|
364
|
+
/**
|
|
365
|
+
* The per-call cap, which needs no ledger.
|
|
366
|
+
*
|
|
367
|
+
* It is a property of one call and cannot be raced: nothing about a
|
|
368
|
+
* concurrent call changes whether THIS one is too expensive. Only the daily
|
|
369
|
+
* cap accumulates, and only it goes through reserve/commit.
|
|
370
|
+
*/
|
|
371
|
+
private checkPerCall;
|
|
333
372
|
private checkBudget;
|
|
334
373
|
/**
|
|
335
374
|
* Current 24-hour rolling spend across all paid calls made by this
|
|
@@ -465,6 +504,34 @@ export declare class AiFinPayAgent {
|
|
|
465
504
|
* silently. Default behaviour throws BudgetCapExceededError.
|
|
466
505
|
*/
|
|
467
506
|
call(opts: CallOptions): Promise<Response | null>;
|
|
507
|
+
private settleSplitterNative;
|
|
508
|
+
private readonly _aifp1Cache;
|
|
509
|
+
/**
|
|
510
|
+
* The prepaid batches this agent is holding.
|
|
511
|
+
*
|
|
512
|
+
* Exposed because a batch is money the agent has already spent and has not
|
|
513
|
+
* finished using: an operator deciding whether to shut an agent down, or a
|
|
514
|
+
* test asserting that a receipt was reused, both need to see it. The entries
|
|
515
|
+
* contain bearer JWTs — treat them like keys, and do not log them.
|
|
516
|
+
*/
|
|
517
|
+
get aifp1Receipts(): Aifp1ReceiptCache;
|
|
518
|
+
/**
|
|
519
|
+
* Fetch a paywalled URL, paying the AIFP-1 gateway if it asks.
|
|
520
|
+
*
|
|
521
|
+
* const res = await agent.fetchPaid("https://gateway.aifinpay.io/acme/articles/2026/x");
|
|
522
|
+
*
|
|
523
|
+
* A URL that is not paywalled — or that answers a 402 belonging to some
|
|
524
|
+
* other protocol — comes back untouched and costs nothing. A paywalled one
|
|
525
|
+
* is quoted, settled on-chain, exchanged for a receipt and retried, and the
|
|
526
|
+
* receipt is kept: subsequent calls it covers cost a header rather than a
|
|
527
|
+
* transaction. See aifp1.ts for why that reuse is the entire design.
|
|
528
|
+
*
|
|
529
|
+
* Returns `null` on the same terms as call(): a budget cap was hit and
|
|
530
|
+
* `budgetCaps.on_limit_exceeded` is "skip".
|
|
531
|
+
*/
|
|
532
|
+
fetchPaid(url: string, init?: RequestInit, opts?: Aifp1FetchOptions & {
|
|
533
|
+
splitter?: `0x${string}`;
|
|
534
|
+
}): Promise<Response | null>;
|
|
468
535
|
private submitSolanaB2BPayWithSplit;
|
|
469
536
|
/**
|
|
470
537
|
* TODO(phase-3): open a metered budget session.
|