@aifinpay/agent 2.0.0-rc.8 → 2.0.3
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/LICENSE +21 -0
- package/PAYMENT_RECEIPTS.md +114 -0
- package/README.md +85 -28
- package/dist/agent.d.ts +8 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +50 -17
- package/dist/agent.js.map +1 -1
- package/dist/agentHistory.d.ts +55 -0
- package/dist/agentHistory.d.ts.map +1 -0
- package/dist/agentHistory.js +145 -0
- package/dist/agentHistory.js.map +1 -0
- package/dist/agentPassport.d.ts +71 -7
- package/dist/agentPassport.d.ts.map +1 -1
- package/dist/agentPassport.js +135 -27
- package/dist/agentPassport.js.map +1 -1
- package/dist/aifp1.d.ts +94 -5
- package/dist/aifp1.d.ts.map +1 -1
- package/dist/aifp1.js +370 -114
- package/dist/aifp1.js.map +1 -1
- package/dist/apiUrl.d.ts +3 -0
- package/dist/apiUrl.d.ts.map +1 -0
- package/dist/apiUrl.js +8 -0
- package/dist/apiUrl.js.map +1 -0
- package/dist/chains.d.ts +7 -0
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +19 -1
- package/dist/chains.js.map +1 -1
- package/dist/crossChain.d.ts +1 -0
- package/dist/crossChain.d.ts.map +1 -1
- package/dist/crossChain.js +87 -5
- package/dist/crossChain.js.map +1 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js.map +1 -1
- package/dist/deploymentResolver.d.ts +95 -0
- package/dist/deploymentResolver.d.ts.map +1 -0
- package/dist/deploymentResolver.js +169 -0
- package/dist/deploymentResolver.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -1
- package/dist/facilitators/aifinpay.d.ts +4 -5
- package/dist/facilitators/aifinpay.d.ts.map +1 -1
- package/dist/facilitators/aifinpay.js +50 -21
- package/dist/facilitators/aifinpay.js.map +1 -1
- package/dist/facilitators/base.d.ts +12 -1
- package/dist/facilitators/base.d.ts.map +1 -1
- package/dist/facilitators/coinbase.d.ts.map +1 -1
- package/dist/facilitators/coinbase.js +3 -7
- package/dist/facilitators/coinbase.js.map +1 -1
- package/dist/facilitators/detect.d.ts.map +1 -1
- package/dist/facilitators/detect.js +2 -7
- package/dist/facilitators/detect.js.map +1 -1
- package/dist/facilitators/standard-x402.d.ts.map +1 -1
- package/dist/facilitators/standard-x402.js +40 -30
- package/dist/facilitators/standard-x402.js.map +1 -1
- package/dist/generated/solanaV14Deployments.generated.d.ts +25 -0
- package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -0
- package/dist/generated/solanaV14Deployments.generated.js +39 -0
- package/dist/generated/solanaV14Deployments.generated.js.map +1 -0
- package/dist/generated/splitterRoutes.generated.d.ts +24 -0
- package/dist/generated/splitterRoutes.generated.d.ts.map +1 -0
- package/dist/generated/splitterRoutes.generated.js +453 -0
- package/dist/generated/splitterRoutes.generated.js.map +1 -0
- package/dist/generated/v14Deployments.generated.d.ts +49 -0
- package/dist/generated/v14Deployments.generated.d.ts.map +1 -0
- package/dist/generated/v14Deployments.generated.js +415 -0
- package/dist/generated/v14Deployments.generated.js.map +1 -0
- package/dist/index.d.ts +27 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/localIdentity.d.ts +17 -0
- package/dist/localIdentity.d.ts.map +1 -0
- package/dist/localIdentity.js +95 -0
- package/dist/localIdentity.js.map +1 -0
- package/dist/settlement.d.ts +35 -5
- package/dist/settlement.d.ts.map +1 -1
- package/dist/settlement.js +232 -76
- package/dist/settlement.js.map +1 -1
- package/dist/settlementHttp.d.ts +10 -0
- package/dist/settlementHttp.d.ts.map +1 -0
- package/dist/settlementHttp.js +78 -0
- package/dist/settlementHttp.js.map +1 -0
- package/dist/settlementV14.d.ts +10 -9
- package/dist/settlementV14.d.ts.map +1 -1
- package/dist/settlementV14.js +43 -55
- package/dist/settlementV14.js.map +1 -1
- package/dist/solanaDeploymentResolver.d.ts +98 -0
- package/dist/solanaDeploymentResolver.d.ts.map +1 -0
- package/dist/solanaDeploymentResolver.js +162 -0
- package/dist/solanaDeploymentResolver.js.map +1 -0
- package/dist/solanaV14Deployments.generated.d.ts +25 -0
- package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
- package/dist/solanaV14Deployments.generated.js +39 -0
- package/dist/solanaV14Deployments.generated.js.map +1 -0
- package/dist/spendLedger.d.ts.map +1 -1
- package/dist/spendLedger.js +1 -3
- package/dist/spendLedger.js.map +1 -1
- package/dist/splitterRoutes.d.ts +11 -4
- package/dist/splitterRoutes.d.ts.map +1 -1
- package/dist/splitterRoutes.generated.d.ts +11 -9
- package/dist/splitterRoutes.generated.d.ts.map +1 -1
- package/dist/splitterRoutes.generated.js +72 -18
- package/dist/splitterRoutes.generated.js.map +1 -1
- package/dist/splitterRoutes.js +7 -5
- package/dist/splitterRoutes.js.map +1 -1
- package/dist/unifiedAgent.d.ts +97 -29
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +232 -349
- package/dist/unifiedAgent.js.map +1 -1
- package/dist/v14Deployments.generated.d.ts +49 -0
- package/dist/v14Deployments.generated.d.ts.map +1 -0
- package/dist/v14Deployments.generated.js +413 -0
- package/dist/v14Deployments.generated.js.map +1 -0
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +2 -2
- package/dist/wallet.js.map +1 -1
- package/package.json +27 -6
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -127
- 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.
|
|
8
|
-
|
|
9
|
-
asset and
|
|
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
|
-
|
|
21
|
-
# or yarn add @aifinpay/agent
|
|
31
|
+
```
|
|
22
32
|
|
|
23
|
-
|
|
24
|
-
|
|
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 {
|
|
54
|
+
import { AiFinPayAgent } from "@aifinpay/agent";
|
|
31
55
|
|
|
32
|
-
|
|
33
|
-
|
|
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.
|
|
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;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQ5E,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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
|
|
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"}
|