@aifinpay/agent 2.0.0-rc.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/LICENSE +21 -0
  2. package/PAYMENT_RECEIPTS.md +114 -0
  3. package/README.md +85 -28
  4. package/dist/agent.d.ts +8 -1
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +50 -17
  7. package/dist/agent.js.map +1 -1
  8. package/dist/agentHistory.d.ts +55 -0
  9. package/dist/agentHistory.d.ts.map +1 -0
  10. package/dist/agentHistory.js +145 -0
  11. package/dist/agentHistory.js.map +1 -0
  12. package/dist/agentPassport.d.ts +71 -7
  13. package/dist/agentPassport.d.ts.map +1 -1
  14. package/dist/agentPassport.js +135 -27
  15. package/dist/agentPassport.js.map +1 -1
  16. package/dist/aifp1.d.ts +94 -5
  17. package/dist/aifp1.d.ts.map +1 -1
  18. package/dist/aifp1.js +370 -114
  19. package/dist/aifp1.js.map +1 -1
  20. package/dist/apiUrl.d.ts +3 -0
  21. package/dist/apiUrl.d.ts.map +1 -0
  22. package/dist/apiUrl.js +8 -0
  23. package/dist/apiUrl.js.map +1 -0
  24. package/dist/chains.d.ts +7 -0
  25. package/dist/chains.d.ts.map +1 -1
  26. package/dist/chains.js +19 -1
  27. package/dist/chains.js.map +1 -1
  28. package/dist/crossChain.d.ts.map +1 -1
  29. package/dist/crossChain.js.map +1 -1
  30. package/dist/crypto.d.ts.map +1 -1
  31. package/dist/crypto.js.map +1 -1
  32. package/dist/deploymentResolver.d.ts +95 -0
  33. package/dist/deploymentResolver.d.ts.map +1 -0
  34. package/dist/deploymentResolver.js +169 -0
  35. package/dist/deploymentResolver.js.map +1 -0
  36. package/dist/errors.d.ts +17 -0
  37. package/dist/errors.d.ts.map +1 -1
  38. package/dist/errors.js +14 -0
  39. package/dist/errors.js.map +1 -1
  40. package/dist/facilitators/aifinpay.d.ts +4 -5
  41. package/dist/facilitators/aifinpay.d.ts.map +1 -1
  42. package/dist/facilitators/aifinpay.js +50 -21
  43. package/dist/facilitators/aifinpay.js.map +1 -1
  44. package/dist/facilitators/base.d.ts +12 -1
  45. package/dist/facilitators/base.d.ts.map +1 -1
  46. package/dist/facilitators/coinbase.d.ts.map +1 -1
  47. package/dist/facilitators/coinbase.js +3 -7
  48. package/dist/facilitators/coinbase.js.map +1 -1
  49. package/dist/facilitators/detect.d.ts.map +1 -1
  50. package/dist/facilitators/detect.js +2 -7
  51. package/dist/facilitators/detect.js.map +1 -1
  52. package/dist/facilitators/standard-x402.d.ts.map +1 -1
  53. package/dist/facilitators/standard-x402.js +40 -30
  54. package/dist/facilitators/standard-x402.js.map +1 -1
  55. package/dist/generated/solanaV14Deployments.generated.d.ts +25 -0
  56. package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -0
  57. package/dist/generated/solanaV14Deployments.generated.js +39 -0
  58. package/dist/generated/solanaV14Deployments.generated.js.map +1 -0
  59. package/dist/generated/splitterRoutes.generated.d.ts +24 -0
  60. package/dist/generated/splitterRoutes.generated.d.ts.map +1 -0
  61. package/dist/generated/splitterRoutes.generated.js +453 -0
  62. package/dist/generated/splitterRoutes.generated.js.map +1 -0
  63. package/dist/generated/v14Deployments.generated.d.ts +49 -0
  64. package/dist/generated/v14Deployments.generated.d.ts.map +1 -0
  65. package/dist/generated/v14Deployments.generated.js +415 -0
  66. package/dist/generated/v14Deployments.generated.js.map +1 -0
  67. package/dist/index.d.ts +27 -13
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +16 -7
  70. package/dist/index.js.map +1 -1
  71. package/dist/localIdentity.d.ts +17 -0
  72. package/dist/localIdentity.d.ts.map +1 -0
  73. package/dist/localIdentity.js +95 -0
  74. package/dist/localIdentity.js.map +1 -0
  75. package/dist/settlement.d.ts +34 -4
  76. package/dist/settlement.d.ts.map +1 -1
  77. package/dist/settlement.js +233 -75
  78. package/dist/settlement.js.map +1 -1
  79. package/dist/settlementHttp.d.ts +10 -0
  80. package/dist/settlementHttp.d.ts.map +1 -0
  81. package/dist/settlementHttp.js +78 -0
  82. package/dist/settlementHttp.js.map +1 -0
  83. package/dist/settlementV14.d.ts +10 -9
  84. package/dist/settlementV14.d.ts.map +1 -1
  85. package/dist/settlementV14.js +43 -55
  86. package/dist/settlementV14.js.map +1 -1
  87. package/dist/solanaDeploymentResolver.d.ts +98 -0
  88. package/dist/solanaDeploymentResolver.d.ts.map +1 -0
  89. package/dist/solanaDeploymentResolver.js +162 -0
  90. package/dist/solanaDeploymentResolver.js.map +1 -0
  91. package/dist/solanaV14Deployments.generated.d.ts +25 -0
  92. package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
  93. package/dist/solanaV14Deployments.generated.js +39 -0
  94. package/dist/solanaV14Deployments.generated.js.map +1 -0
  95. package/dist/spendLedger.d.ts.map +1 -1
  96. package/dist/spendLedger.js +1 -3
  97. package/dist/spendLedger.js.map +1 -1
  98. package/dist/splitterRoutes.d.ts +11 -4
  99. package/dist/splitterRoutes.d.ts.map +1 -1
  100. package/dist/splitterRoutes.generated.d.ts +11 -9
  101. package/dist/splitterRoutes.generated.d.ts.map +1 -1
  102. package/dist/splitterRoutes.generated.js +72 -18
  103. package/dist/splitterRoutes.generated.js.map +1 -1
  104. package/dist/splitterRoutes.js +7 -5
  105. package/dist/splitterRoutes.js.map +1 -1
  106. package/dist/unifiedAgent.d.ts +96 -28
  107. package/dist/unifiedAgent.d.ts.map +1 -1
  108. package/dist/unifiedAgent.js +219 -348
  109. package/dist/unifiedAgent.js.map +1 -1
  110. package/dist/v14Deployments.generated.d.ts +49 -0
  111. package/dist/v14Deployments.generated.d.ts.map +1 -0
  112. package/dist/v14Deployments.generated.js +413 -0
  113. package/dist/v14Deployments.generated.js.map +1 -0
  114. package/dist/wallet.d.ts.map +1 -1
  115. package/dist/wallet.js +2 -2
  116. package/dist/wallet.js.map +1 -1
  117. package/package.json +27 -6
  118. package/dist/cli.d.ts +0 -3
  119. package/dist/cli.d.ts.map +0 -1
  120. package/dist/cli.js +0 -127
  121. package/dist/cli.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AiFinPay
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,114 @@
1
+ # Authorize and recover payment receipts
2
+
3
+ AIFP-1 receipt issuance uses a signature from the wallet that sent the payment.
4
+ The SDK signs a fixed, domain-separated receipt authorization automatically.
5
+ A custom `agentId` is a display identifier; it does not replace the paying
6
+ wallet. Keep the complete quote and transaction reference until you receive
7
+ the receipt.
8
+
9
+ New payments require an independently reviewed `settlementPin` for Polygon
10
+ AIFP-1 v1.3 and a `nativeUsdPrice` observation from a trusted source, at most
11
+ 60 seconds old. Do not construct either from the payment server's response.
12
+ The SDK checks the quote's target/version/calldata, invoice, RPC and wallet
13
+ chain, deployed bytecode and fee profile before signing. It waits for a
14
+ successful mined receipt before requesting access.
15
+
16
+ `maxAmountUsd` caps the next batch using the greater of quoted USD and native
17
+ debit converted at that independent price. It must be positive and finite,
18
+ and can only tighten the agent's limits. Gas is additional. A cached receipt
19
+ does not buy another batch. Mainnet activation flags have not been enabled
20
+ by this SDK update; unavailable or legacy quotes are refused before payment.
21
+
22
+ For a direct merchant endpoint such as `/api/agent/genres`, explicitly select
23
+ the full-path format as well as the trusted origin:
24
+
25
+ ```ts
26
+ await agent.fetchPaid(
27
+ "https://merchant.example/api/agent/genres",
28
+ {},
29
+ {
30
+ settlementPin: reviewedDeploymentPin,
31
+ nativeUsdPrice: { usd: trustedPolUsd, observedAtMs: priceObservedAtMs },
32
+ gatewayOrigins: ["https://merchant.example"],
33
+ resourcePathMode: "direct",
34
+ maxAmountUsd: 0.1,
35
+ }
36
+ );
37
+ ```
38
+
39
+ The pin and price variables above come from your independently reviewed
40
+ configuration and price source. This is a configuration example, not an
41
+ instruction to substitute addresses or rates from an HTTP 402 response.
42
+ `apiTimeoutMs` bounds each API request, including reading its body; default
43
+ 15 seconds. Redirects are refused. For a backend with a different configured
44
+ receipt issuer, set `paymentIssuer` independently to its `AIFP_ISSUER_URL`;
45
+ changing only `apiBaseUrl` does not change the trusted issuer.
46
+
47
+ Direct mode probes the resource without a receipt before each call, then
48
+ reuses only a receipt for the same origin, merchant and covered full path.
49
+ The challenge's resource must equal the URL pathname. This extra unpaid
50
+ probe prevents a merchant-wide receipt from being sent to another merchant
51
+ on the same host. The default `gateway` mode keeps hosted URLs in the
52
+ `/{merchant-slug}/{resource}` format. An origin is never trusted merely
53
+ because it returns an AIFP-1 challenge. Direct probes return redirects to the
54
+ caller without following them, so another origin cannot supply the payment
55
+ challenge through a redirect. This path-mapping option does not enable a
56
+ disabled settlement route or change its deployment verification requirements.
57
+
58
+ After settlement, the SDK retries HTTP 425, HTTP 503 and connection failures
59
+ within `settlementConfirmMs`. These retries request the receipt; they never
60
+ send another on-chain transaction. If retries are exhausted,
61
+ `Aifp1PayError.recovery` contains serializable quote and payment context, with
62
+ no private key or authorization signature. Save it for a later retry.
63
+ Concurrent callers waiting for that batch receive the same failure and
64
+ recovery context. After this error, retry `recoverAifp1Payment` with that
65
+ context instead of calling `fetchPaid` again: a new `fetchPaid` request can
66
+ buy another batch when no receipt has been cached.
67
+
68
+ ```ts
69
+ import { recoverAifp1Payment } from "@aifinpay/agent";
70
+
71
+ // savedRecovery is Aifp1PayError.recovery from the earlier payment.
72
+ // account is the same local viem account that sent that payment.
73
+ const paid = await recoverAifp1Payment(savedRecovery, {
74
+ payerAddress: account.address,
75
+ signPaymentAuthorization: (message) => account.signMessage({ message }),
76
+ });
77
+
78
+ // Reuse this receipt for the resource/scope it covers.
79
+ const response = await fetch(resourceUrl, {
80
+ headers: { "AIFP-Receipt": paid.receipt },
81
+ });
82
+ ```
83
+
84
+ This helper recovers Polygon AIFP-1 receipts and has no settlement callback.
85
+ It cannot send funds. Keep the returned receipt in your application's receipt
86
+ store; recovery itself does not populate a separate AiFinPayAgent instance's
87
+ cache. Recover within the quote's advertised recovery window. An expired price
88
+ cannot be used for a new payment.
89
+
90
+ For manual integrations, `paymentAuthorizationMessage` constructs the exact
91
+ message from the saved quote, chain, transaction reference, asset, idempotency
92
+ key, payer and expiration. Sign its result with the paying EVM account and
93
+ send `payment_authorization: { payer, expires_at, signature }` in `/v1/pay`.
94
+ Use a lowercase EVM address and an expiry about 240 seconds in the future.
95
+ The backend accepts `wallet-signature-v1` as announced in the quote. It derives
96
+ the receipt subject from the proven payer. Re-sign a retry when the signature
97
+ expires and keep the same transaction reference; paying again is unnecessary.
98
+
99
+ If confirmation is unavailable after broadcast, recovery keeps the transaction
100
+ hash and quote. A mined payment followed by a ledger error also retains that
101
+ context; reconcile the budget before another purchase. Once `/v1/pay` returns
102
+ a receipt, it is cached before fetching content, so a dropped content request
103
+ does not discard paid access. The cache is local to this agent instance;
104
+ applications must persist recovery/receipts for restart recovery.
105
+
106
+ The API retains its legacy `settlement.fee_on_top` object during client upgrades.
107
+ The RC client accepts that object only alongside explicit `gross-inclusive`
108
+ metadata, with provider, treasury and creator amounts matching the canonical
109
+ payer/recipient amounts. An inconsistent quote is rejected before settlement.
110
+ Native `valid_until` may be a JSON integer or an integer string. These wire
111
+ compatibility changes do not activate a disabled deployment. v1.4 execution
112
+ and legacy `call()` payment submission remain disabled in this RC. Current
113
+ v1.4 quotes omit mutable fees/treasury from the signed commitment; a new
114
+ contract/SDK release is required. There is no automatic version fallback.
package/README.md CHANGED
@@ -1,12 +1,22 @@
1
1
  # @aifinpay/agent (Node / TypeScript)
2
2
 
3
+ Stable `2.0.0` release. New AIFP-1
4
+ payments require a reviewed Polygon v1.3 deployment pin and fresh independent
5
+ native/USD price; see [receipt configuration and recovery](./PAYMENT_RECEIPTS.md).
6
+ Legacy `call()` payments and v1.4 submission are disabled. Native authentication
7
+ requires a request-bound v2 challenge from the coordinated backend release;
8
+ `authHeaders()` cannot issue the retired unbound proof. No automatic fallback
9
+ or deployment activation is performed.
10
+
3
11
  Non-custodial payment client for autonomous AI agents on
4
12
  [AiFinPay](https://aifinpay.io). AIFP-1 is gross-inclusive: payer total equals
5
13
  the quote, merchant receives 99%, AiFinPay receives 1%, creator/referral
6
14
  receives 0%. AIFP-2/x402 currently charges 0% at the protocol layer. Legacy
7
- `/api/b2b` split-invoice methods are retired. Settlement fails closed unless
8
- the selected deployment, runtime hash, governance profile, merchant target,
9
- asset and paid E2E evidence are verified.
15
+ `/api/b2b` split-invoice methods are retired. The v1.3 executor checks the
16
+ independently supplied deployment/runtime pin, chain, fee profile, merchant
17
+ target and asset. Deployment activation and funded E2E approval remain
18
+ separate operator responsibilities; a matching runtime hash alone is not
19
+ production-readiness evidence.
10
20
 
11
21
  The Ed25519 keypair is generated locally with `tweetnacl` and never leaves
12
22
  your process. The SDK only sends a one-time SHA-256 + Ed25519 signature in
@@ -14,45 +24,73 @@ the `x-signature` header to authenticate against AiFinPay-protected endpoints.
14
24
 
15
25
  ## Install
16
26
 
27
+ Install the published stable package:
28
+
17
29
  ```bash
18
- # install (latest)
19
30
  npm install @aifinpay/agent
20
- # or pnpm add @aifinpay/agent
21
- # or yarn add @aifinpay/agent
31
+ ```
22
32
 
23
- # stable (when 1.0 ships)
24
- npm install @aifinpay/agent
33
+ Or build this source checkout:
34
+
35
+ ```bash
36
+ # From the SDK repository root
37
+ cd node
38
+ npm ci --no-audit --no-fund
39
+ npm run build
40
+ npm pack
41
+ ```
42
+
43
+ Install the resulting tarball in your application:
44
+
45
+ ```bash
46
+ npm install /absolute/path/to/sdk/node/aifinpay-agent-2.0.0.tgz
25
47
  ```
26
48
 
27
49
  ## Quick start
28
50
 
51
+ Load the wallet you already configured before sharing a deposit address:
52
+
29
53
  ```ts
30
- import { Agent } from "@aifinpay/agent";
54
+ import { AiFinPayAgent } from "@aifinpay/agent";
31
55
 
32
- // Generate a fresh keypair locally — never transmitted
33
- const agent = Agent.new();
34
- console.log("Fund this address:", agent.address);
35
- console.log("Save this secret:", agent.secretB58); // store securely!
36
-
37
- // Wait until the wallet has at least $0.01 worth on-chain
38
- await agent.waitForFunding({ minUsdCents: 1 });
39
-
40
- // Request an invoice for a Seat (USDC on Solana)
41
- const invoice = await agent.reserveSeatInvoice({
42
- amountUsd: 1.0,
43
- asset: "USDC",
44
- });
45
- // Build + sign + submit the on-chain tx with @solana/web3.js or viem.
46
- // `invoice.raw` has program_id, treasury_vault, mints, nonce, etc.
47
-
48
- // Once the Seat is on-chain, gated endpoints just work:
49
- const res = await agent.get("https://aifinpay.io/api/stats");
50
- console.log(await res.json());
56
+ const agent = await AiFinPayAgent.fromEnvironment();
57
+ console.log({ evm: agent.evmAddress, solana: agent.solanaAddress });
51
58
  ```
52
59
 
60
+ `fromEnvironment()` is a **load-only** Node API. It selects one identity in
61
+ this order, matching MCP:
62
+
63
+ 1. `SEED_HASH`: a 32-byte seed encoded as 64 hex characters, optionally `0x` prefixed.
64
+ 2. `./aifinpay/agents.json` relative to the process working directory. Set
65
+ `AIFINPAY_AGENTS_FILE` for another path and `AIFINPAY_AGENT_ID` when selecting
66
+ from multiple records (`{"agents":[{"id":"crawler","seed_hash":"…"}]}`).
67
+ 3. `AIFINPAY_AGENT_SECRET`: an existing base58 Solana secret.
68
+ 4. `~/.aifinpay/agent.json`, or `AIFINPAY_HOME/agent.json`: the existing MCP
69
+ keystore. Encrypted keystores require `AIFINPAY_WALLET_PASSPHRASE`.
70
+
71
+ The loader never creates or overwrites a wallet, prints its keys, or calls the
72
+ network. Missing configuration, an invalid seed, an ambiguous project file or
73
+ a decryption failure throws instead of selecting a new wallet. Load any `.env`
74
+ through your runtime before calling it; this API reads `process.env` and does
75
+ not read `.env` files. `SEED_HEX` is not an alias for `SEED_HASH`. Keep private
76
+ inputs and wallet files out of chats, logs and version control.
77
+
78
+ The same configured inputs restore the same addresses after a process restart.
79
+ An explicit `evmPrivateKey` option overrides the derived EVM identity; retain
80
+ that separate key as well to recover the imported wallet. Loading a wallet
81
+ does not enable the RC's gated settlement routes.
82
+
83
+ `AiFinPayAgent.new()` and `Agent.new()` intentionally create a fresh ephemeral
84
+ wallet each time. They do not load existing environment variables or keystores
85
+ and do not persist their generated keys. Use them only when you deliberately
86
+ need a new identity and will store its recovery material privately before
87
+ funding it. Never rerun `new()` to recover an existing funded address.
88
+
53
89
  ## Loading an existing keypair
54
90
 
55
91
  ```ts
92
+ import { Agent } from "@aifinpay/agent";
93
+
56
94
  // from solana-keygen JSON file (Node only)
57
95
  const agent = await Agent.fromKeypairFile("./agent-wallet.json");
58
96
 
@@ -84,3 +122,22 @@ on-chain, and serves the resource.
84
122
  ## License
85
123
 
86
124
  MIT.
125
+
126
+ ### Payment receipt authorization
127
+
128
+ AIFP-1 receipts use the paying wallet signature. See [authorize and recover payment receipts](PAYMENT_RECEIPTS.md) for retries and recovery without a second transfer.
129
+
130
+ ### Payment history
131
+
132
+ ```ts
133
+ import { getAgentHistory } from "@aifinpay/agent";
134
+ const history = await getAgentHistory({ address: "0x…", source: "transactions" });
135
+ // Or { passport: 'AIFP-000000042', network: 'polygon', source: 'receipts' }
136
+ ```
137
+
138
+ `transactions` covers indexed AiFinPay Polygon settlements, not arbitrary
139
+ wallet transfers. `receipts` covers retained prepaid batches, including test
140
+ payments. Follow `next_offset` with `limit`/`offset`. A passport requires a
141
+ backend with the verified-wallet resolver deployed; passing both address and
142
+ passport checks their match. Never pass a holder private key or API secret as
143
+ an identifier. Public history does not return bearer receipt tokens.
package/dist/agent.d.ts CHANGED
@@ -11,6 +11,9 @@ export interface AgentOptions {
11
11
  baseUrl?: string;
12
12
  timeoutMs?: number;
13
13
  fetchImpl?: typeof fetch;
14
+ /** Import an existing EVM wallet for standard x402; keep this key alongside
15
+ * the Solana secret when backing up an agent with an override. */
16
+ evmPrivateKey?: `0x${string}`;
14
17
  }
15
18
  export interface PayInit extends Omit<RequestInit, "method"> {
16
19
  method?: string;
@@ -39,7 +42,9 @@ export declare class Agent {
39
42
  * The agent's EVM account (viem), derived from the same 32-byte seed as the
40
43
  * Solana key via domain-separated SHA-256 ("aifinpay:evm:v1\0" || seed) —
41
44
  * byte-for-byte identical to AiFinPayAgent's EVM address. Used by the
42
- * standard x402 (EIP-3009) facilitator. Node-only (sync SHA-256).
45
+ * standard x402 (EIP-3009) facilitator. An explicitly imported EVM key is
46
+ * cached during construction and takes priority over derivation.
47
+ * Default derivation is Node-only (sync SHA-256).
43
48
  */
44
49
  evmAccount(): Promise<PrivateKeyAccount>;
45
50
  /** The agent's EVM (Polygon / Base / …) address. */
@@ -78,6 +83,7 @@ export declare class Agent {
78
83
  * is rarely needed anymore. Kept for back-compat through 1.0.0.
79
84
  */
80
85
  quoteSplit(args: {
86
+ /** @deprecated "botchain" is deprecated. Use "robinhood" instead. */
81
87
  chain: "solana" | "polygon" | "base" | "optimism" | "unichain" | "botchain" | "xrplevm";
82
88
  merchantAmount: bigint | number | string;
83
89
  }): Promise<Record<string, unknown>>;
@@ -101,6 +107,7 @@ export declare class Agent {
101
107
  * onboarding message).
102
108
  */
103
109
  payWithSplitInvoice(args: {
110
+ /** @deprecated "botchain" is deprecated. Use "robinhood" instead. */
104
111
  chain: "solana" | "polygon" | "base" | "optimism" | "unichain" | "botchain" | "xrplevm";
105
112
  merchantWallet: string;
106
113
  merchantAmount: bigint | number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -19,6 +19,9 @@ export class Agent {
19
19
  constructor(secretKey, publicKey, opts = {}) {
20
20
  this.secretKey = secretKey;
21
21
  this.publicKey = publicKey;
22
+ if (opts.evmPrivateKey !== undefined) {
23
+ this._evm = privateKeyToAccount(opts.evmPrivateKey);
24
+ }
22
25
  this.baseUrl = (opts.baseUrl || DEFAULT_BASE_URL).replace(/\/$/, "");
23
26
  this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
24
27
  this.fetchImpl = opts.fetchImpl ?? globalThis.fetch;
@@ -72,7 +75,9 @@ export class Agent {
72
75
  * The agent's EVM account (viem), derived from the same 32-byte seed as the
73
76
  * Solana key via domain-separated SHA-256 ("aifinpay:evm:v1\0" || seed) —
74
77
  * byte-for-byte identical to AiFinPayAgent's EVM address. Used by the
75
- * standard x402 (EIP-3009) facilitator. Node-only (sync SHA-256).
78
+ * standard x402 (EIP-3009) facilitator. An explicitly imported EVM key is
79
+ * cached during construction and takes priority over derivation.
80
+ * Default derivation is Node-only (sync SHA-256).
76
81
  */
77
82
  async evmAccount() {
78
83
  if (this._evm)
@@ -101,15 +106,7 @@ export class Agent {
101
106
  }
102
107
  /** Build a fresh AiFinPay-native x402 header set. */
103
108
  async authHeaders() {
104
- const { nonce } = await this.fetchNonce();
105
- const msg = new TextEncoder().encode(`AiFinPay-x402:${nonce}:${this.address}`);
106
- const digest = await sha256(msg);
107
- const sig = nacl.sign.detached(digest, this.secretKey);
108
- return {
109
- "x-agent-pubkey": this.address,
110
- "x-nonce": nonce,
111
- "x-signature": bs58.encode(sig),
112
- };
109
+ throw new AiFinPayError("authHeaders() cannot safely sign the retired unbound native auth format. Use Agent.pay(url), which retries only a request-bound v2 challenge.");
113
110
  }
114
111
  // ── Seat / funding ────────────────────────────────────────────────────
115
112
  async hasSeat() {
@@ -166,9 +163,7 @@ export class Agent {
166
163
  * is rarely needed anymore. Kept for back-compat through 1.0.0.
167
164
  */
168
165
  async quoteSplit(args) {
169
- const param = args.chain === "solana"
170
- ? "merchant_amount_lamports"
171
- : "merchant_amount_wei";
166
+ const param = args.chain === "solana" ? "merchant_amount_lamports" : "merchant_amount_wei";
172
167
  const url = new URL(`${this.baseUrl}/api/b2b/quote-split`);
173
168
  url.searchParams.set(param, String(args.merchantAmount));
174
169
  const r = await this.fetchImpl(url.toString(), {
@@ -246,19 +241,36 @@ export class Agent {
246
241
  */
247
242
  async pay(url, init = {}) {
248
243
  const { method = "GET", maxRetries = 1, options = {}, ...rest } = init;
244
+ let requestUrl;
245
+ let trustedOrigin;
246
+ try {
247
+ requestUrl = new URL(url);
248
+ trustedOrigin = new URL(this.baseUrl).origin;
249
+ }
250
+ catch {
251
+ throw new AiFinPayError("pay() requires an absolute URL and a valid Agent baseUrl");
252
+ }
249
253
  const baseHeaders = mergeHeaders(rest.headers, options.extraHeaders);
250
- const send = (m, headers, body) => this.fetchImpl(url, {
254
+ const send = (m, headers, body) => this.fetchImpl(requestUrl.toString(), {
251
255
  ...rest,
252
256
  method: m,
253
257
  headers,
254
258
  body: body ?? rest.body,
259
+ // Never let an authenticated retry carry credentials through a redirect.
260
+ redirect: "error",
255
261
  });
256
262
  let resp = await send(method, { ...baseHeaders, "user-agent": SDK_UA });
257
263
  let attempt = 0;
258
264
  while (resp.status === 402 && attempt < maxRetries) {
259
265
  attempt += 1;
260
266
  const facilitator = await detectFacilitator(resp, options.facilitator ?? "auto");
261
- const auth = await facilitator.buildAuth(resp, this, options);
267
+ const bodyDigest = facilitator.name === "aifinpay" ? await nativeBodyDigest(rest.body) : "";
268
+ const auth = await facilitator.buildAuth(resp, this, options, {
269
+ url: requestUrl,
270
+ method,
271
+ trustedOrigin,
272
+ bodyDigest,
273
+ });
262
274
  const merged = mergeHeaders(baseHeaders, auth.headers);
263
275
  merged["user-agent"] = SDK_UA;
264
276
  resp = await send(auth.method ?? method, merged, auth.body);
@@ -271,8 +283,7 @@ export class Agent {
271
283
  catch {
272
284
  challenge = (await resp.clone().text()).slice(0, 500);
273
285
  }
274
- throw new X402Error(`402 Payment Required after ${attempt} retry/retries. ` +
275
- `Challenge: ${challenge}`);
286
+ throw new X402Error(`402 Payment Required after ${attempt} retry/retries. ` + `Challenge: ${challenge}`);
276
287
  }
277
288
  return resp;
278
289
  }
@@ -333,4 +344,26 @@ function mergeHeaders(...sources) {
333
344
  }
334
345
  return out;
335
346
  }
347
+ async function nativeBodyDigest(body) {
348
+ let bytes;
349
+ if (body === undefined || body === null) {
350
+ bytes = new Uint8Array();
351
+ }
352
+ else if (typeof body === "string" || body instanceof URLSearchParams) {
353
+ bytes = new TextEncoder().encode(body.toString());
354
+ }
355
+ else if (body instanceof ArrayBuffer) {
356
+ bytes = new Uint8Array(body);
357
+ }
358
+ else if (ArrayBuffer.isView(body)) {
359
+ bytes = new Uint8Array(body.buffer, body.byteOffset, body.byteLength);
360
+ }
361
+ else if (typeof Blob !== "undefined" && body instanceof Blob) {
362
+ bytes = new Uint8Array(await body.arrayBuffer());
363
+ }
364
+ else {
365
+ throw new AiFinPayError("AiFinPay native auth v2 cannot sign this streaming or multipart request body safely. Send string or byte body data.");
366
+ }
367
+ return Array.from(await sha256(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
368
+ }
336
369
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAA0B,MAAM,eAAe,CAAC;AAE5E,uEAAuE;AACvE,+CAA+C;AAC/C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAyB3C,MAAM,OAAO,KAAK;IACP,SAAS,CAAa;IACtB,SAAS,CAAa,CAAC,6BAA6B;IACpD,OAAO,CAAS;IAChB,SAAS,CAAS;IAC3B,yFAAyF;IAChF,SAAS,CAAe;IAEjC,YAAoB,SAAqB,EAAE,SAAqB,EAAE,OAAqB,EAAE;QACvF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,yEAAyE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,0EAA0E;IAE1E,MAAM,CAAC,GAAG,CAAC,OAAqB,EAAE;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAqB,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC;QACP,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,aAAa,CAAC,6CAA6C,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,OAAqB,EAAE;QAChE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,0EAA0E;IAE1E,gCAAgC;IAChC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,sEAAsE;IACtE,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEO,IAAI,CAAqB;IACjC;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAmB,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,0EAA0E;IAE1E,KAAK,CAAC,SAAS;QACb,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAA4B,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAA4B,CAAC;IACvF,CAAC;IAED,yEAAyE;IAEzE,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAG9B,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,aAAa,CACrB,+IAA+I,CAChJ,CAAC;IACJ,CAAC;IAED,yEAAyE;IAEzE,KAAK,CAAC,OAAO;QACX,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,CAE7D,CAAC;QACF,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EACnB,WAAW,GAAG,GAAG,EACjB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,OAAO,MAKjB,EAAE;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAElE,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBACtD,IAAI,KAAK,IAAI,WAAW;wBAAE,OAAO;gBACnC,CAAC;YACH,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,mBAAmB,CAAC,WAAW,IAAI,CAAC,OAAO,kBAAkB,WAAW,iBAAiB,CAAC,CAAC;IACvG,CAAC;IAED,yEAAyE;IAEzE;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,EACvB,SAAS,EACT,KAAK,GAAG,MAAM,GAIf;QACC,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACvE,MAAM,OAAO,GAA4B;YACvC,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC;QACF,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAA4B,CAAC;QACrF,OAAO;YACL,SAAS;YACT,aAAa,EAAG,IAAI,CAAC,cAAyB,IAAI,EAAE;YACpD,SAAS,EAAG,IAAI,CAAC,UAAqB,IAAI,EAAE;YAC5C,KAAK,EAAG,IAAI,CAAC,KAAgB,IAAI,EAAE;YACnC,GAAG,EAAE,IAAI;SACV,CAAC;IACJ,CAAC;IAED,wEAAwE;IAExE;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CAAC,IAIhB;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC;QAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC7C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,EAAE;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,8BAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAOzB;QACC,MAAM,EAAE,8BAA8B,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,yBAAyB,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,MAAM;aACrB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,eAAe,EAAE,IAAI,CAAC,cAAc;gBACpC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,uBAAuB,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAyB,CAAC;gBACtD,IAAI,IAAI,CAAC,OAAO;oBAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,kCAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;IACrD,CAAC;IAED,yEAAyE;IAEzE;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,OAAgB,EAAE;QACvC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACvE,IAAI,UAAe,CAAC;QACpB,IAAI,aAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,aAAa,CAAC,0DAA0D,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,OAA+B,EAAE,IAAsB,EAAE,EAAE,CAClF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;YACpC,GAAG,IAAI;YACP,MAAM,EAAE,CAAC;YACT,OAAO;YACP,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;YACvB,yEAAyE;YACzE,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEL,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC5D,GAAG,EAAE,UAAU;gBACf,MAAM;gBACN,aAAa;gBACb,UAAU;aACX,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;YAC9B,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,8BAA8B,OAAO,kBAAkB,GAAG,cAAc,SAAS,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IAExE,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,GAAW,EAAE,OAAoB,EAAE;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,OAAgB,EAAE;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,OAAgB,EAAE;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,yEAAyE;IAEjE,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAY,EAAE,IAAc;QAC7D,MAAM,IAAI,GAAgB;YACxB,MAAM;YACN,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,MAAM;gBACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;SACF,CAAC;QACF,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE;gBAClD,GAAG,IAAI;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACV,MAAM,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,IAAI,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,GAAG,OAAgE;IACvF,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,GAAG,YAAY,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAiC;IAC/D,IAAI,KAAiB,CAAC;IACtB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACvE,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACvC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QAC/D,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,aAAa,CACrB,qHAAqH,CACtH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type AgentPassportNetwork } from "./agentPassport.js";
2
+ export interface AgentHistoryOptions {
3
+ address?: string;
4
+ /** Public @username, AIFP number or aifp_agent_* identifier; never a secret. */
5
+ passport?: string;
6
+ network?: AgentPassportNetwork;
7
+ source?: "transactions" | "receipts";
8
+ limit?: number;
9
+ offset?: number;
10
+ baseUrl?: string;
11
+ fetchImpl?: typeof fetch;
12
+ }
13
+ /** Public fields returned for source="receipts". Single source of truth — MCP must import, not copy. */
14
+ export declare const AGENT_RECEIPT_FIELDS: string[];
15
+ /** Public fields returned for source="transactions". Single source of truth — MCP must import, not copy. */
16
+ export declare const AGENT_TRANSACTION_FIELDS: string[];
17
+ /** Read public payment metadata. A passport is resolved to a verified wallet first. */
18
+ export declare function getAgentHistory(options: AgentHistoryOptions): Promise<Record<string, unknown>>;
19
+ export interface QuotaOptions {
20
+ address: string;
21
+ /** Optional mrch_… filter — only batches bought from this service. */
22
+ merchantId?: string;
23
+ /** Also list batches with 0 remaining (still retained, not yet expired). */
24
+ includeExhausted?: boolean;
25
+ baseUrl?: string;
26
+ fetchImpl?: typeof fetch;
27
+ }
28
+ export interface QuotaBatch {
29
+ merchant_id?: string;
30
+ resource?: string;
31
+ scope: string;
32
+ tier?: string;
33
+ used: number;
34
+ remaining: number;
35
+ quota: number;
36
+ paid?: string;
37
+ expires?: string;
38
+ receipt_id?: string;
39
+ }
40
+ export interface QuotaSummary {
41
+ agent: string;
42
+ totals: Record<string, {
43
+ remaining: number;
44
+ batches: number;
45
+ }>;
46
+ batches: QuotaBatch[];
47
+ }
48
+ /**
49
+ * Prepaid quota batches for an address, most room first, rolled up per
50
+ * merchant. Data only — the human-facing "no quota, go pay a 402" note stays
51
+ * with the caller (MCP). `remaining` is authoritative where AiFinPay meters;
52
+ * merchants running their own gate meter locally and our copy can lag.
53
+ */
54
+ export declare function getQuota(options: QuotaOptions): Promise<QuotaSummary>;
55
+ //# sourceMappingURL=agentHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentHistory.d.ts","sourceRoot":"","sources":["../src/agentHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1G,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,wGAAwG;AACxG,eAAO,MAAM,oBAAoB,UAoBhC,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,wBAAwB,UAcpC,CAAC;AAEF,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8DpG;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAsC3E"}