@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
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
import { createDecipheriv, scryptSync } from "node:crypto";
|
|
5
|
+
import { AiFinPayError } from "./errors.js";
|
|
6
|
+
function seed(value) {
|
|
7
|
+
if (typeof value !== "string" || !/^(0x)?[0-9a-fA-F]{64}$/.test(value)) {
|
|
8
|
+
throw new AiFinPayError("SEED_HASH must contain a 32-byte hex seed (64 hex characters); no mnemonic or double hashing");
|
|
9
|
+
}
|
|
10
|
+
return value.replace(/^0x/, "");
|
|
11
|
+
}
|
|
12
|
+
function object(value) {
|
|
13
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
14
|
+
}
|
|
15
|
+
function readJson(path) {
|
|
16
|
+
try {
|
|
17
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
18
|
+
if (object(parsed))
|
|
19
|
+
return parsed;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
/* File contents and parse errors may contain private material. */
|
|
23
|
+
}
|
|
24
|
+
throw new AiFinPayError(`Cannot read wallet JSON at ${path}; refusing to generate a replacement wallet`);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Internal load-only adapter for the same identity files used by MCP.
|
|
28
|
+
* Keep source precedence and encryption format aligned with mcp/src/identity.ts.
|
|
29
|
+
* No file is created, changed or logged; returned key material stays local.
|
|
30
|
+
*/
|
|
31
|
+
export function loadLocalWalletIdentity() {
|
|
32
|
+
const env = process.env;
|
|
33
|
+
if (env.SEED_HASH !== undefined)
|
|
34
|
+
return { source: "SEED_HASH", seedHash: seed(env.SEED_HASH) };
|
|
35
|
+
const projectPath = resolve(env.AIFINPAY_AGENTS_FILE || "./aifinpay/agents.json");
|
|
36
|
+
if (existsSync(projectPath)) {
|
|
37
|
+
const document = readJson(projectPath);
|
|
38
|
+
const agents = document.agents;
|
|
39
|
+
if (!Array.isArray(agents) || agents.length === 0) {
|
|
40
|
+
throw new AiFinPayError("agents.json requires a non-empty agents array");
|
|
41
|
+
}
|
|
42
|
+
const matches = env.AIFINPAY_AGENT_ID
|
|
43
|
+
? agents.filter((agent) => object(agent) && agent.id === env.AIFINPAY_AGENT_ID)
|
|
44
|
+
: agents;
|
|
45
|
+
if (matches.length !== 1) {
|
|
46
|
+
throw new AiFinPayError("Select exactly one agents.json record with AIFINPAY_AGENT_ID; refusing an ambiguous wallet");
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
source: "agents.json",
|
|
50
|
+
seedHash: seed(object(matches[0]) ? matches[0].seed_hash : undefined),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (env.AIFINPAY_AGENTS_FILE)
|
|
54
|
+
throw new AiFinPayError("Configured AIFINPAY_AGENTS_FILE does not exist");
|
|
55
|
+
if (env.AIFINPAY_AGENT_SECRET) {
|
|
56
|
+
return { source: "AIFINPAY_AGENT_SECRET", secretB58: env.AIFINPAY_AGENT_SECRET };
|
|
57
|
+
}
|
|
58
|
+
const legacyPath = join(env.AIFINPAY_HOME || join(homedir(), ".aifinpay"), "agent.json");
|
|
59
|
+
if (!existsSync(legacyPath)) {
|
|
60
|
+
throw new AiFinPayError("No persistent wallet configured; configure SEED_HASH, aifinpay/agents.json, AIFINPAY_AGENT_SECRET or an existing MCP keystore before loading an agent");
|
|
61
|
+
}
|
|
62
|
+
const legacy = readJson(legacyPath);
|
|
63
|
+
if (legacy.enc) {
|
|
64
|
+
if (legacy.enc !== "scrypt-aes-256-gcm" || !env.AIFINPAY_WALLET_PASSPHRASE) {
|
|
65
|
+
throw new AiFinPayError("Encrypted keystore requires AIFINPAY_WALLET_PASSPHRASE and the supported encryption format");
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
if (![legacy.salt, legacy.iv, legacy.tag, legacy.ct].every((value) => typeof value === "string")) {
|
|
69
|
+
throw new Error("Invalid encrypted fields");
|
|
70
|
+
}
|
|
71
|
+
const key = scryptSync(env.AIFINPAY_WALLET_PASSPHRASE, Buffer.from(legacy.salt, "base64"), 32, {
|
|
72
|
+
N: 1 << 15,
|
|
73
|
+
r: 8,
|
|
74
|
+
p: 1,
|
|
75
|
+
maxmem: 64 * 1024 * 1024,
|
|
76
|
+
});
|
|
77
|
+
const decipher = createDecipheriv("aes-256-gcm", key, Buffer.from(legacy.iv, "base64"));
|
|
78
|
+
decipher.setAuthTag(Buffer.from(legacy.tag, "base64"));
|
|
79
|
+
return {
|
|
80
|
+
source: "legacy-keystore",
|
|
81
|
+
secretB58: Buffer.concat([
|
|
82
|
+
decipher.update(Buffer.from(legacy.ct, "base64")),
|
|
83
|
+
decipher.final(),
|
|
84
|
+
]).toString("utf8"),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
throw new AiFinPayError("Cannot decrypt keystore; refusing to generate a replacement wallet");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (typeof legacy.secretB58 !== "string" || !legacy.secretB58)
|
|
92
|
+
throw new AiFinPayError("Invalid legacy keystore");
|
|
93
|
+
return { source: "legacy-keystore", secretB58: legacy.secretB58 };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=localIdentity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localIdentity.js","sourceRoot":"","sources":["../src/localIdentity.ts"],"names":[],"mappings":"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"}
|
package/dist/settlement.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type Address, type Hex, type PublicClient, type WalletClient } from "viem";
|
|
2
2
|
export type SettlementRouteClass = "AIFP-1" | "AIFP-2";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* EVM networks supported for AIFP-1/AIFP-2 settlement.
|
|
5
|
+
* @deprecated "botchain" is deprecated and will be removed in a future version. Use "robinhood" instead.
|
|
6
|
+
*/
|
|
7
|
+
export type SettlementEvmNetwork = "polygon" | "avalanche" | "arbitrum" | "bnb" | "base" | "unichain" | "optimism" | "robinhood" | "xrplevm" | "amoy";
|
|
4
8
|
export interface SettlementRoute {
|
|
5
9
|
route_class: SettlementRouteClass;
|
|
6
10
|
profile: {
|
|
@@ -22,6 +26,7 @@ export interface SettlementRoute {
|
|
|
22
26
|
}>;
|
|
23
27
|
explorer: string;
|
|
24
28
|
live: boolean;
|
|
29
|
+
testnet?: boolean;
|
|
25
30
|
splitter?: Address;
|
|
26
31
|
splitter_version?: "1.3";
|
|
27
32
|
runtime_code_hash?: Hex;
|
|
@@ -38,6 +43,13 @@ export interface TrustedSettlementRoutePin {
|
|
|
38
43
|
splitter_version: "1.3";
|
|
39
44
|
splitter: Address;
|
|
40
45
|
runtime_code_hash: Hex;
|
|
46
|
+
/** Must be explicitly true for Amoy signing; omitted means mainnet only. */
|
|
47
|
+
testnet?: boolean;
|
|
48
|
+
/** Independently reviewed asset identities; required for stable settlement. */
|
|
49
|
+
stable_assets?: Readonly<Record<string, {
|
|
50
|
+
address: Address;
|
|
51
|
+
decimals: number;
|
|
52
|
+
}>>;
|
|
41
53
|
}
|
|
42
54
|
export type TrustedSettlementRouteRegistry = Partial<Record<SettlementRouteClass, Partial<Record<SettlementEvmNetwork, TrustedSettlementRoutePin>>>>;
|
|
43
55
|
export interface SettlementInvoiceInput {
|
|
@@ -78,7 +90,7 @@ interface SettlementInvoiceBase {
|
|
|
78
90
|
export interface NativeSettlementInvoice extends SettlementInvoiceBase {
|
|
79
91
|
transaction: {
|
|
80
92
|
kind: "evm_contract_call";
|
|
81
|
-
function: "payNative(bytes32,address,uint256,address,uint256,string)";
|
|
93
|
+
function: "payNative((bytes32,address,uint256,address,uint256,string))";
|
|
82
94
|
args: {
|
|
83
95
|
paymentId: Hex;
|
|
84
96
|
merchant: Address;
|
|
@@ -106,7 +118,7 @@ export interface StableSettlementInvoice extends SettlementInvoiceBase {
|
|
|
106
118
|
amount: string;
|
|
107
119
|
};
|
|
108
120
|
settle: {
|
|
109
|
-
function: "payStable(bytes32,address,uint256,address,address,uint256,string)";
|
|
121
|
+
function: "payStable((bytes32,address,uint256,address,address,uint256,string))";
|
|
110
122
|
args: {
|
|
111
123
|
paymentId: Hex;
|
|
112
124
|
token: Address;
|
|
@@ -133,13 +145,30 @@ export declare class SettlementProtocolError extends Error {
|
|
|
133
145
|
readonly code: string;
|
|
134
146
|
constructor(message: string, code?: string);
|
|
135
147
|
}
|
|
148
|
+
/** Broadcast succeeded but confirmation is unknown. Keep this hash and check
|
|
149
|
+
* it before retrying; a timeout is not evidence that no money moved. */
|
|
150
|
+
export declare class SettlementConfirmationPendingError extends SettlementProtocolError {
|
|
151
|
+
readonly txHash: Hex;
|
|
152
|
+
readonly stage: "approval" | "settlement";
|
|
153
|
+
constructor(txHash: Hex, stage: "approval" | "settlement");
|
|
154
|
+
}
|
|
136
155
|
/** Strictly validate an invoice before any wallet signs. */
|
|
137
156
|
export declare function validateSettlementInvoice(invoice: SettlementInvoice): void;
|
|
138
157
|
/** Verify that a backend invoice matches an independently trusted release pin. */
|
|
139
158
|
export declare function validateTrustedSettlementRoutePin(invoice: SettlementInvoice, pin: TrustedSettlementRoutePin): void;
|
|
159
|
+
export interface SettlementClientOptions {
|
|
160
|
+
baseUrl?: string;
|
|
161
|
+
/** Supply the caller's guarded transport, e.g. MCP's safe fetch. */
|
|
162
|
+
fetchImpl?: typeof fetch;
|
|
163
|
+
/** Covers the response body as well as the HTTP request. Default 15 seconds. */
|
|
164
|
+
timeoutMs?: number;
|
|
165
|
+
}
|
|
140
166
|
export declare class SettlementClient {
|
|
141
167
|
readonly baseUrl: string;
|
|
142
|
-
|
|
168
|
+
private readonly fetchImpl;
|
|
169
|
+
private readonly timeoutMs;
|
|
170
|
+
constructor(options?: string | SettlementClientOptions);
|
|
171
|
+
private request;
|
|
143
172
|
routes(routeClass?: SettlementRouteClass): Promise<SettlementRoute[]>;
|
|
144
173
|
invoice(input: SettlementInvoiceInput): Promise<SettlementInvoice>;
|
|
145
174
|
}
|
|
@@ -154,9 +183,10 @@ export declare const SETTLEMENT_CHAIN_IDS: Readonly<{
|
|
|
154
183
|
optimism: number;
|
|
155
184
|
avalanche: number;
|
|
156
185
|
unichain: number;
|
|
157
|
-
botchain: number;
|
|
158
186
|
xrplevm: number;
|
|
159
187
|
bnb: number;
|
|
188
|
+
robinhood: number;
|
|
189
|
+
amoy: number;
|
|
160
190
|
}>;
|
|
161
191
|
export declare const SETTLEMENT_EXPECTED_BPS: Readonly<{
|
|
162
192
|
"AIFP-1": {
|
package/dist/settlement.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settlement.d.ts","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"settlement.d.ts","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"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"}
|