@aifinpay/agent 0.2.0-alpha.2 → 0.3.0-alpha.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.
- package/dist/agent.d.ts +13 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +13 -0
- package/dist/agent.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/unifiedAgent.d.ts +245 -0
- package/dist/unifiedAgent.d.ts.map +1 -0
- package/dist/unifiedAgent.js +525 -0
- package/dist/unifiedAgent.js.map +1 -0
- package/package.json +19 -7
package/dist/agent.d.ts
CHANGED
|
@@ -47,6 +47,11 @@ export declare class Agent {
|
|
|
47
47
|
pollMs?: number;
|
|
48
48
|
timeoutMs?: number;
|
|
49
49
|
}): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated since 0.3.0 — use `AiFinPayAgent.deposit(usd, { asset })`
|
|
52
|
+
* instead. The unified surface picks the chain and asset for you.
|
|
53
|
+
* Kept for back-compat; will not be removed before 1.0.0.
|
|
54
|
+
*/
|
|
50
55
|
reserveSeatInvoice({ amountUsd, asset, }: {
|
|
51
56
|
amountUsd: number;
|
|
52
57
|
asset?: "SOL" | "USDC" | "USDT";
|
|
@@ -56,12 +61,20 @@ export declare class Agent {
|
|
|
56
61
|
*
|
|
57
62
|
* Returns merchant amount, treasury fee, IP creator fee, and total —
|
|
58
63
|
* so the agent can decide whether to pay BEFORE building the tx.
|
|
64
|
+
*
|
|
65
|
+
* @deprecated since 0.3.0 — pricing is exposed through the provider
|
|
66
|
+
* registry consumed by `AiFinPayAgent.call()`. Direct on-chain quote
|
|
67
|
+
* is rarely needed anymore. Kept for back-compat through 1.0.0.
|
|
59
68
|
*/
|
|
60
69
|
quoteSplit(args: {
|
|
61
70
|
chain: "solana" | "polygon";
|
|
62
71
|
merchantAmount: bigint | number | string;
|
|
63
72
|
}): Promise<Record<string, unknown>>;
|
|
64
73
|
/**
|
|
74
|
+
* @deprecated since 0.3.0 — use `AiFinPayAgent.call({ provider })`,
|
|
75
|
+
* which selects the chain, builds the tx, and submits it for you.
|
|
76
|
+
* Kept for back-compat through 1.0.0.
|
|
77
|
+
*
|
|
65
78
|
* Get the on-chain instructions for a fee-on-top split payment.
|
|
66
79
|
*
|
|
67
80
|
* The merchant receives `merchantAmount` units (lamports for Solana,
|
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;AAMzD,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;CAC1B;AAED,MAAM,WAAW,OAAQ,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,KAAK;IAChB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;IAEjC,OAAO;IAmBP,MAAM,CAAC,GAAG,CAAC,IAAI,GAAE,YAAiB,GAAG,KAAK;IAK1C,0EAA0E;IAC1E,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,KAAK;IAevE,2EAA2E;WAC9D,eAAe,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,KAAK,CAAC;IAcjB,gCAAgC;IAChC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,sEAAsE;IACtE,IAAI,SAAS,IAAI,MAAM,CAEtB;IAIK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO7C,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAS7C,UAAU,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAOlE,qDAAqD;IAC/C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgB9C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAO3B,cAAc,CAAC,EACnB,WAAiB,EACjB,MAAc,EACd,SAAmB,GACpB,GAAE;QACD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -108,6 +108,11 @@ export class Agent {
|
|
|
108
108
|
throw new FundingTimeoutError(`address ${this.address} never reached ${minUsdCents} cents on-chain`);
|
|
109
109
|
}
|
|
110
110
|
// ── Invoices ──────────────────────────────────────────────────────────
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated since 0.3.0 — use `AiFinPayAgent.deposit(usd, { asset })`
|
|
113
|
+
* instead. The unified surface picks the chain and asset for you.
|
|
114
|
+
* Kept for back-compat; will not be removed before 1.0.0.
|
|
115
|
+
*/
|
|
111
116
|
async reserveSeatInvoice({ amountUsd, asset = "USDC", }) {
|
|
112
117
|
const endpoint = asset === "SOL" ? "/api/invoice" : "/api/invoice-spl";
|
|
113
118
|
const payload = {
|
|
@@ -131,6 +136,10 @@ export class Agent {
|
|
|
131
136
|
*
|
|
132
137
|
* Returns merchant amount, treasury fee, IP creator fee, and total —
|
|
133
138
|
* so the agent can decide whether to pay BEFORE building the tx.
|
|
139
|
+
*
|
|
140
|
+
* @deprecated since 0.3.0 — pricing is exposed through the provider
|
|
141
|
+
* registry consumed by `AiFinPayAgent.call()`. Direct on-chain quote
|
|
142
|
+
* is rarely needed anymore. Kept for back-compat through 1.0.0.
|
|
134
143
|
*/
|
|
135
144
|
async quoteSplit(args) {
|
|
136
145
|
const param = args.chain === "solana"
|
|
@@ -147,6 +156,10 @@ export class Agent {
|
|
|
147
156
|
return (await r.json());
|
|
148
157
|
}
|
|
149
158
|
/**
|
|
159
|
+
* @deprecated since 0.3.0 — use `AiFinPayAgent.call({ provider })`,
|
|
160
|
+
* which selects the chain, builds the tx, and submits it for you.
|
|
161
|
+
* Kept for back-compat through 1.0.0.
|
|
162
|
+
*
|
|
150
163
|
* Get the on-chain instructions for a fee-on-top split payment.
|
|
151
164
|
*
|
|
152
165
|
* The merchant receives `merchantAmount` units (lamports for Solana,
|
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":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AiFinPay agent SDK —
|
|
2
|
+
* AiFinPay agent SDK — Unified Agent Economy layer for AI agents.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* import { Agent, PayOptions } from "@aifinpay/agent";
|
|
4
|
+
* Recommended (Phase 1+): the chain-opaque AiFinPayAgent surface.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
* console.log("Fund this address:", agent.address);
|
|
9
|
-
* await agent.waitForFunding({ minUsdCents: 1 });
|
|
10
|
-
* const invoice = await agent.reserveSeatInvoice({ amountUsd: 1.0, asset: "USDC" });
|
|
6
|
+
* import { AiFinPayAgent } from "@aifinpay/agent";
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
* const res = await agent.
|
|
8
|
+
* const agent = await AiFinPayAgent.new();
|
|
9
|
+
* const res = await agent.call({ provider: "exa", body: { query: "..." } });
|
|
14
10
|
* const data = await res.json();
|
|
15
11
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* });
|
|
12
|
+
* Legacy (still supported, but @deprecated for new code): the chain-aware
|
|
13
|
+
* Agent class with explicit Solana primitives.
|
|
14
|
+
*
|
|
15
|
+
* import { Agent } from "@aifinpay/agent";
|
|
16
|
+
*
|
|
17
|
+
* const agent = Agent.new();
|
|
18
|
+
* await agent.reserveSeatInvoice({ amountUsd: 1.0, asset: "USDC" });
|
|
19
|
+
* const res = await agent.pay("https://aifinpay.company/api/stats");
|
|
23
20
|
*/
|
|
21
|
+
export { AiFinPayAgent } from "./unifiedAgent.js";
|
|
22
|
+
export type { AiFinPayAgentOptions, CallOptions, ChainId, ProviderEntry, BalanceSnapshot, ReputationSnapshot, BudgetCaps, SessionHandle, SessionReceipt, } from "./unifiedAgent.js";
|
|
23
|
+
export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
|
|
24
24
|
export { Agent } from "./agent.js";
|
|
25
25
|
export type { AgentOptions, Invoice, PayInit } from "./agent.js";
|
|
26
26
|
export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AiFinPay agent SDK —
|
|
2
|
+
* AiFinPay agent SDK — Unified Agent Economy layer for AI agents.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* import { Agent, PayOptions } from "@aifinpay/agent";
|
|
4
|
+
* Recommended (Phase 1+): the chain-opaque AiFinPayAgent surface.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
* console.log("Fund this address:", agent.address);
|
|
9
|
-
* await agent.waitForFunding({ minUsdCents: 1 });
|
|
10
|
-
* const invoice = await agent.reserveSeatInvoice({ amountUsd: 1.0, asset: "USDC" });
|
|
6
|
+
* import { AiFinPayAgent } from "@aifinpay/agent";
|
|
11
7
|
*
|
|
12
|
-
*
|
|
13
|
-
* const res = await agent.
|
|
8
|
+
* const agent = await AiFinPayAgent.new();
|
|
9
|
+
* const res = await agent.call({ provider: "exa", body: { query: "..." } });
|
|
14
10
|
* const data = await res.json();
|
|
15
11
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* });
|
|
12
|
+
* Legacy (still supported, but @deprecated for new code): the chain-aware
|
|
13
|
+
* Agent class with explicit Solana primitives.
|
|
14
|
+
*
|
|
15
|
+
* import { Agent } from "@aifinpay/agent";
|
|
16
|
+
*
|
|
17
|
+
* const agent = Agent.new();
|
|
18
|
+
* await agent.reserveSeatInvoice({ amountUsd: 1.0, asset: "USDC" });
|
|
19
|
+
* const res = await agent.pay("https://aifinpay.company/api/stats");
|
|
23
20
|
*/
|
|
21
|
+
// ── Unified surface (Phase 1+) ───────────────────────────────────────────
|
|
22
|
+
export { AiFinPayAgent } from "./unifiedAgent.js";
|
|
23
|
+
export { ProviderUnknownError, WrongChainBalanceError, InsufficientFundsError, BudgetCapExceededError, SettlementError, SessionExpiredError, } from "./unifiedAgent.js";
|
|
24
|
+
// ── Legacy chain-aware surface (kept for back-compat) ───────────────────
|
|
24
25
|
export { Agent } from "./agent.js";
|
|
25
26
|
export { AiFinPayError, FacilitatorNotImplementedError, FundingTimeoutError, PaymentTooExpensiveError, SeatNotFoundError, UnsupportedFacilitatorError, X402Error, } from "./errors.js";
|
|
26
27
|
export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator, } from "./facilitators/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYlD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,2EAA2E;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,EACV,iBAAiB,GAClB,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { type PrivateKeyAccount } from "viem/accounts";
|
|
2
|
+
import { AiFinPayError } from "./errors.js";
|
|
3
|
+
import { Agent, type AgentOptions } from "./agent.js";
|
|
4
|
+
export type ChainId = "solana" | "polygon";
|
|
5
|
+
export interface ProviderEntry {
|
|
6
|
+
name: string;
|
|
7
|
+
display_name?: string;
|
|
8
|
+
preferred_chain: ChainId;
|
|
9
|
+
accepted_chains: ChainId[];
|
|
10
|
+
price_usd: number;
|
|
11
|
+
mode: "per_call" | "session" | "both";
|
|
12
|
+
bridge_url: string;
|
|
13
|
+
merchant_wallet: string;
|
|
14
|
+
service_type?: string;
|
|
15
|
+
url?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CallOptions {
|
|
18
|
+
provider: string;
|
|
19
|
+
cost?: number;
|
|
20
|
+
chain?: ChainId;
|
|
21
|
+
bridgeUrl?: string;
|
|
22
|
+
body?: unknown;
|
|
23
|
+
method?: string;
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
}
|
|
27
|
+
export interface BalanceSnapshot {
|
|
28
|
+
agent_balance_usd: number;
|
|
29
|
+
chains: {
|
|
30
|
+
solana: {
|
|
31
|
+
sol: number;
|
|
32
|
+
usdc: number;
|
|
33
|
+
msecco_balance: number;
|
|
34
|
+
};
|
|
35
|
+
polygon: {
|
|
36
|
+
matic: number;
|
|
37
|
+
usdc: number;
|
|
38
|
+
msecco_balance: number;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
spend_24h_usd: number;
|
|
42
|
+
budget_caps: {
|
|
43
|
+
daily_usd?: number;
|
|
44
|
+
per_call_usd?: number;
|
|
45
|
+
};
|
|
46
|
+
priced_at: number;
|
|
47
|
+
}
|
|
48
|
+
export interface ReputationSnapshot {
|
|
49
|
+
trust_score: number;
|
|
50
|
+
spend_score: number;
|
|
51
|
+
tenure_days: number;
|
|
52
|
+
verified: boolean;
|
|
53
|
+
flags: string[];
|
|
54
|
+
}
|
|
55
|
+
export interface BudgetCaps {
|
|
56
|
+
daily_usd?: number;
|
|
57
|
+
per_call_usd?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Behaviour when a cap is hit during call():
|
|
60
|
+
* "throw" (default) — raise BudgetCapExceededError, caller decides
|
|
61
|
+
* "skip" — call() resolves to null without paying;
|
|
62
|
+
* useful in loops where you'd rather drop an
|
|
63
|
+
* agent task than spike the daily envelope
|
|
64
|
+
*/
|
|
65
|
+
on_limit_exceeded?: "throw" | "skip";
|
|
66
|
+
}
|
|
67
|
+
export interface SessionHandle {
|
|
68
|
+
id: string;
|
|
69
|
+
provider: string;
|
|
70
|
+
chain: ChainId;
|
|
71
|
+
budget_usd: number;
|
|
72
|
+
spent_usd: number;
|
|
73
|
+
remaining_usd: number;
|
|
74
|
+
expires_at: number;
|
|
75
|
+
call(body: unknown): Promise<Response>;
|
|
76
|
+
close(): Promise<SessionReceipt>;
|
|
77
|
+
abandon(): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
export interface SessionReceipt {
|
|
80
|
+
session_id: string;
|
|
81
|
+
spent_usd: number;
|
|
82
|
+
refund_usd: number;
|
|
83
|
+
settlement_tx: string;
|
|
84
|
+
block: number | string;
|
|
85
|
+
}
|
|
86
|
+
export interface AiFinPayAgentOptions extends AgentOptions {
|
|
87
|
+
registryUrl?: string;
|
|
88
|
+
evmPrivateKey?: `0x${string}`;
|
|
89
|
+
budgetCaps?: BudgetCaps;
|
|
90
|
+
telemetry?: boolean;
|
|
91
|
+
polygonRpc?: string;
|
|
92
|
+
}
|
|
93
|
+
export declare class ProviderUnknownError extends AiFinPayError {
|
|
94
|
+
}
|
|
95
|
+
export declare class WrongChainBalanceError extends AiFinPayError {
|
|
96
|
+
has: ChainId[];
|
|
97
|
+
needed: ChainId;
|
|
98
|
+
constructor(has: ChainId[], needed: ChainId, msg: string);
|
|
99
|
+
}
|
|
100
|
+
export declare class InsufficientFundsError extends AiFinPayError {
|
|
101
|
+
needed_usd: number;
|
|
102
|
+
available_usd: number;
|
|
103
|
+
constructor(needed_usd: number, available_usd: number, msg: string);
|
|
104
|
+
}
|
|
105
|
+
export declare class BudgetCapExceededError extends AiFinPayError {
|
|
106
|
+
kind: "daily" | "per_call";
|
|
107
|
+
constructor(kind: "daily" | "per_call", msg: string);
|
|
108
|
+
}
|
|
109
|
+
export declare class SettlementError extends AiFinPayError {
|
|
110
|
+
reason: string;
|
|
111
|
+
txHash?: string | undefined;
|
|
112
|
+
constructor(reason: string, txHash?: string | undefined);
|
|
113
|
+
}
|
|
114
|
+
export declare class SessionExpiredError extends AiFinPayError {
|
|
115
|
+
session_id: string;
|
|
116
|
+
constructor(session_id: string);
|
|
117
|
+
}
|
|
118
|
+
export declare class AiFinPayAgent {
|
|
119
|
+
readonly inner: Agent;
|
|
120
|
+
readonly evmAccount: PrivateKeyAccount;
|
|
121
|
+
readonly registryUrl: string;
|
|
122
|
+
readonly polygonRpc: string;
|
|
123
|
+
private cachedRegistry?;
|
|
124
|
+
private budgetCaps;
|
|
125
|
+
private spend24h;
|
|
126
|
+
private telemetry;
|
|
127
|
+
private _polygonPublic?;
|
|
128
|
+
private _polygonWallet?;
|
|
129
|
+
private constructor();
|
|
130
|
+
private polygonClients;
|
|
131
|
+
/**
|
|
132
|
+
* Generate a fresh agent — new Solana keypair + new EVM keypair.
|
|
133
|
+
* Use `fromSeed()` to derive both from a single backup phrase instead.
|
|
134
|
+
*/
|
|
135
|
+
static new(opts?: AiFinPayAgentOptions): Promise<AiFinPayAgent>;
|
|
136
|
+
/**
|
|
137
|
+
* Derive both keypairs from a single 32-byte hex seed. Same seed →
|
|
138
|
+
* deterministic Solana pubkey AND EVM address. One backup phrase, two
|
|
139
|
+
* chains.
|
|
140
|
+
*
|
|
141
|
+
* Solana key = nacl.sign.keyPair.fromSeed(seed)
|
|
142
|
+
* EVM key = keccak256(seed)[:32] (independent path; not BIP-44
|
|
143
|
+
* compatible — see design notes
|
|
144
|
+
* in 23 - Unified SDK Design).
|
|
145
|
+
*
|
|
146
|
+
* TODO(phase-1): replace with BIP-39/BIP-44 derivation
|
|
147
|
+
* m/44'/501'/0'/0' (Solana) + m/44'/60'/0'/0/0 (EVM) once the
|
|
148
|
+
* wallet-import audit recommendation lands.
|
|
149
|
+
*/
|
|
150
|
+
static fromSeed(seedHex: string, opts?: AiFinPayAgentOptions): Promise<AiFinPayAgent>;
|
|
151
|
+
/**
|
|
152
|
+
* Legacy: load the Solana side from an existing keypair, then either
|
|
153
|
+
* generate a fresh EVM key or import one with `attachEvmKey`.
|
|
154
|
+
*/
|
|
155
|
+
static fromSolanaSecret(secretB58: string, opts?: AiFinPayAgentOptions): Promise<AiFinPayAgent>;
|
|
156
|
+
get id(): string;
|
|
157
|
+
get solanaAddress(): string;
|
|
158
|
+
get evmAddress(): string;
|
|
159
|
+
fetchRegistry(force?: boolean): Promise<ProviderEntry[]>;
|
|
160
|
+
resolveProvider(name: string): Promise<ProviderEntry>;
|
|
161
|
+
setBudget(caps: BudgetCaps): void;
|
|
162
|
+
/**
|
|
163
|
+
* Internal pre-call check. Returns `false` only when on_limit_exceeded
|
|
164
|
+
* is "skip" and a cap is hit — `call()` should then resolve to null
|
|
165
|
+
* without submitting an on-chain tx. Throws BudgetCapExceededError
|
|
166
|
+
* in the default "throw" mode.
|
|
167
|
+
*/
|
|
168
|
+
private checkBudget;
|
|
169
|
+
/**
|
|
170
|
+
* Current 24-hour rolling spend across all paid calls made by this
|
|
171
|
+
* agent instance. Useful for budget dashboards on the consumer side.
|
|
172
|
+
*/
|
|
173
|
+
getSpend24h(): number;
|
|
174
|
+
/**
|
|
175
|
+
* Chain selection heuristic — see Obsidian/23 - Unified SDK Design §Routing.
|
|
176
|
+
*
|
|
177
|
+
* 1. Explicit override always wins (subject to provider acceptance).
|
|
178
|
+
* 2. Cost ≤ $0.005 + Solana per-call live + Solana accepted → Solana
|
|
179
|
+
* (low gas wins for tiny calls).
|
|
180
|
+
* 3. Cost > $0.05 + Polygon accepted → Polygon
|
|
181
|
+
* (better finality for high-value calls).
|
|
182
|
+
* 4. Middle band → provider.preferred_chain.
|
|
183
|
+
* 5. Fallback → first accepted chain.
|
|
184
|
+
*
|
|
185
|
+
* Solana per-call is gated on the deploy of `b2b_pay_with_split` —
|
|
186
|
+
* until then `solana` selection raises in `call()`.
|
|
187
|
+
*/
|
|
188
|
+
private pickChain;
|
|
189
|
+
/**
|
|
190
|
+
* TODO(phase-4): mint AgentPassport on the cheapest chain available
|
|
191
|
+
* with the requested `stake_usd`. For now wires only the Solana side
|
|
192
|
+
* via the existing `reserveSeatInvoice` semantics.
|
|
193
|
+
*/
|
|
194
|
+
verify(_args?: {
|
|
195
|
+
stake_usd?: number;
|
|
196
|
+
}): Promise<{
|
|
197
|
+
verified: boolean;
|
|
198
|
+
}>;
|
|
199
|
+
/**
|
|
200
|
+
* TODO(phase-1): pick a chain (preferred USDC on Polygon for stability;
|
|
201
|
+
* fallback Solana SOL). Return signed-tx instructions for the wallet.
|
|
202
|
+
*/
|
|
203
|
+
deposit(_usd: number, _opts?: {
|
|
204
|
+
asset?: "USDC" | "USDT" | "SOL" | "MATIC";
|
|
205
|
+
chain?: ChainId;
|
|
206
|
+
}): Promise<unknown>;
|
|
207
|
+
/**
|
|
208
|
+
* High-level paid call. Resolves the provider, picks a chain, builds the
|
|
209
|
+
* payment, sends to the bridge, retries with payment proof.
|
|
210
|
+
*
|
|
211
|
+
* Phase 1 implementation: Polygon per-call splitter via on-chain
|
|
212
|
+
* `B2BSplitter.payMatic()`. Solana per-call branch lights up after
|
|
213
|
+
* Phase 2 (b2b_pay_with_split deploy via Squads).
|
|
214
|
+
*
|
|
215
|
+
* Returns `null` (instead of a `Response`) iff a budget cap was hit
|
|
216
|
+
* AND budget.on_limit_exceeded is set to "skip" — the call is dropped
|
|
217
|
+
* silently. Default behaviour throws BudgetCapExceededError.
|
|
218
|
+
*/
|
|
219
|
+
call(opts: CallOptions): Promise<Response | null>;
|
|
220
|
+
/**
|
|
221
|
+
* TODO(phase-3): open a metered budget session.
|
|
222
|
+
*/
|
|
223
|
+
openSession(_args: {
|
|
224
|
+
provider: string;
|
|
225
|
+
budget_usd: number;
|
|
226
|
+
ttl_seconds?: number;
|
|
227
|
+
}): Promise<SessionHandle>;
|
|
228
|
+
/**
|
|
229
|
+
* Snapshot the agent's funds across both chains, USD-normalised.
|
|
230
|
+
*
|
|
231
|
+
* Phase 1.4: native MATIC + native SOL via RPC; ERC-20 / SPL token balances
|
|
232
|
+
* deferred (we don't yet need them for the unified `call()` flow which
|
|
233
|
+
* settles in MATIC). Pyth feeds are TODO; for now uses
|
|
234
|
+
* `AIFINPAY_MATIC_USD` and `AIFINPAY_SOL_USD` env, defaulting to 0.7 and 200.
|
|
235
|
+
*/
|
|
236
|
+
balance(): Promise<BalanceSnapshot>;
|
|
237
|
+
private fetchPolygonNative;
|
|
238
|
+
private fetchSolanaNative;
|
|
239
|
+
/**
|
|
240
|
+
* TODO(phase-4 / phase-5): query operator backend reputation engine.
|
|
241
|
+
*/
|
|
242
|
+
reputation(): Promise<ReputationSnapshot>;
|
|
243
|
+
private reportTelemetry;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=unifiedAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unifiedAgent.d.ts","sourceRoot":"","sources":["../src/unifiedAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// AiFinPayAgent — unified, chain-opaque developer surface.
|
|
3
|
+
//
|
|
4
|
+
// Wraps the legacy chain-aware Agent (Solana keypair + native methods) and
|
|
5
|
+
// adds an EVM signer plus high-level call/openSession/balance/verify flows.
|
|
6
|
+
// Chain selection happens inside the SDK via the provider registry +
|
|
7
|
+
// cost-band heuristics.
|
|
8
|
+
//
|
|
9
|
+
// This is the Phase 1 skeleton. Methods marked `// TODO(phase-N)` will be
|
|
10
|
+
// wired up as the migration progresses (see Obsidian/22 - Migration Roadmap).
|
|
11
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
12
|
+
import nacl from "tweetnacl";
|
|
13
|
+
import bs58 from "bs58";
|
|
14
|
+
import { createPublicClient, createWalletClient, http, } from "viem";
|
|
15
|
+
import { privateKeyToAccount, generatePrivateKey, } from "viem/accounts";
|
|
16
|
+
import { polygon } from "viem/chains";
|
|
17
|
+
import { AiFinPayError, X402Error, } from "./errors.js";
|
|
18
|
+
import { Agent } from "./agent.js";
|
|
19
|
+
// ── B2BSplitter contract (deployed at 0xE34Fc0…8440 on Polygon mainnet) ──
|
|
20
|
+
const SPLITTER_PAY_MATIC_ABI = [
|
|
21
|
+
{
|
|
22
|
+
type: "function",
|
|
23
|
+
name: "payMatic",
|
|
24
|
+
stateMutability: "payable",
|
|
25
|
+
inputs: [
|
|
26
|
+
{ type: "address", name: "merchant" },
|
|
27
|
+
{ type: "address", name: "ipCreator" },
|
|
28
|
+
{ type: "string", name: "orderId" },
|
|
29
|
+
],
|
|
30
|
+
outputs: [],
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
// ── Errors ─────────────────────────────────────────────────────────────────
|
|
34
|
+
export class ProviderUnknownError extends AiFinPayError {
|
|
35
|
+
}
|
|
36
|
+
export class WrongChainBalanceError extends AiFinPayError {
|
|
37
|
+
has;
|
|
38
|
+
needed;
|
|
39
|
+
constructor(has, needed, msg) {
|
|
40
|
+
super(msg);
|
|
41
|
+
this.has = has;
|
|
42
|
+
this.needed = needed;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class InsufficientFundsError extends AiFinPayError {
|
|
46
|
+
needed_usd;
|
|
47
|
+
available_usd;
|
|
48
|
+
constructor(needed_usd, available_usd, msg) {
|
|
49
|
+
super(msg);
|
|
50
|
+
this.needed_usd = needed_usd;
|
|
51
|
+
this.available_usd = available_usd;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class BudgetCapExceededError extends AiFinPayError {
|
|
55
|
+
kind;
|
|
56
|
+
constructor(kind, msg) {
|
|
57
|
+
super(msg);
|
|
58
|
+
this.kind = kind;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export class SettlementError extends AiFinPayError {
|
|
62
|
+
reason;
|
|
63
|
+
txHash;
|
|
64
|
+
constructor(reason, txHash) {
|
|
65
|
+
super(`Settlement failed: ${reason}${txHash ? ` (tx ${txHash})` : ""}`);
|
|
66
|
+
this.reason = reason;
|
|
67
|
+
this.txHash = txHash;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export class SessionExpiredError extends AiFinPayError {
|
|
71
|
+
session_id;
|
|
72
|
+
constructor(session_id) {
|
|
73
|
+
super(`Session ${session_id} expired or closed`);
|
|
74
|
+
this.session_id = session_id;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// ── Spend tracker (24h rolling) ────────────────────────────────────────────
|
|
78
|
+
class SpendTracker {
|
|
79
|
+
ring = [];
|
|
80
|
+
add(usd) {
|
|
81
|
+
const now = Date.now();
|
|
82
|
+
this.ring.push({ at: now, usd });
|
|
83
|
+
const cutoff = now - 24 * 3600 * 1000;
|
|
84
|
+
while (this.ring.length && this.ring[0].at < cutoff)
|
|
85
|
+
this.ring.shift();
|
|
86
|
+
}
|
|
87
|
+
total24h() {
|
|
88
|
+
return this.ring.reduce((s, e) => s + e.usd, 0);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// ── Main class ─────────────────────────────────────────────────────────────
|
|
92
|
+
const DEFAULT_REGISTRY_PATH = "/api/providers";
|
|
93
|
+
export class AiFinPayAgent {
|
|
94
|
+
inner; // existing Solana-flavoured agent
|
|
95
|
+
evmAccount;
|
|
96
|
+
registryUrl;
|
|
97
|
+
polygonRpc;
|
|
98
|
+
cachedRegistry;
|
|
99
|
+
budgetCaps;
|
|
100
|
+
spend24h = new SpendTracker();
|
|
101
|
+
telemetry;
|
|
102
|
+
_polygonPublic;
|
|
103
|
+
_polygonWallet;
|
|
104
|
+
constructor(inner, evmAccount, opts = {}) {
|
|
105
|
+
this.inner = inner;
|
|
106
|
+
this.evmAccount = evmAccount;
|
|
107
|
+
this.registryUrl = opts.registryUrl
|
|
108
|
+
?? `${inner.baseUrl}${DEFAULT_REGISTRY_PATH}`;
|
|
109
|
+
this.budgetCaps = opts.budgetCaps ?? {};
|
|
110
|
+
this.telemetry = opts.telemetry !== false;
|
|
111
|
+
this.polygonRpc = opts.polygonRpc ?? "https://polygon.drpc.org";
|
|
112
|
+
}
|
|
113
|
+
// Lazy viem clients — only spun up when a Polygon flow runs.
|
|
114
|
+
polygonClients() {
|
|
115
|
+
if (!this._polygonPublic) {
|
|
116
|
+
this._polygonPublic = createPublicClient({
|
|
117
|
+
chain: polygon,
|
|
118
|
+
transport: http(this.polygonRpc),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (!this._polygonWallet) {
|
|
122
|
+
this._polygonWallet = createWalletClient({
|
|
123
|
+
chain: polygon,
|
|
124
|
+
transport: http(this.polygonRpc),
|
|
125
|
+
account: this.evmAccount,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return { publicClient: this._polygonPublic, walletClient: this._polygonWallet };
|
|
129
|
+
}
|
|
130
|
+
// ── Constructors ─────────────────────────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* Generate a fresh agent — new Solana keypair + new EVM keypair.
|
|
133
|
+
* Use `fromSeed()` to derive both from a single backup phrase instead.
|
|
134
|
+
*/
|
|
135
|
+
static async new(opts = {}) {
|
|
136
|
+
const inner = Agent.new(opts);
|
|
137
|
+
const evmKey = opts.evmPrivateKey ?? generatePrivateKey();
|
|
138
|
+
const evmAccount = privateKeyToAccount(evmKey);
|
|
139
|
+
return new AiFinPayAgent(inner, evmAccount, opts);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Derive both keypairs from a single 32-byte hex seed. Same seed →
|
|
143
|
+
* deterministic Solana pubkey AND EVM address. One backup phrase, two
|
|
144
|
+
* chains.
|
|
145
|
+
*
|
|
146
|
+
* Solana key = nacl.sign.keyPair.fromSeed(seed)
|
|
147
|
+
* EVM key = keccak256(seed)[:32] (independent path; not BIP-44
|
|
148
|
+
* compatible — see design notes
|
|
149
|
+
* in 23 - Unified SDK Design).
|
|
150
|
+
*
|
|
151
|
+
* TODO(phase-1): replace with BIP-39/BIP-44 derivation
|
|
152
|
+
* m/44'/501'/0'/0' (Solana) + m/44'/60'/0'/0/0 (EVM) once the
|
|
153
|
+
* wallet-import audit recommendation lands.
|
|
154
|
+
*/
|
|
155
|
+
static async fromSeed(seedHex, opts = {}) {
|
|
156
|
+
const seed = hexToBytes(seedHex.replace(/^0x/, ""));
|
|
157
|
+
if (seed.length !== 32) {
|
|
158
|
+
throw new AiFinPayError(`fromSeed: seed must be 32 bytes (64 hex chars)`);
|
|
159
|
+
}
|
|
160
|
+
const kp = nacl.sign.keyPair.fromSeed(seed);
|
|
161
|
+
const inner = Agent
|
|
162
|
+
._ofKeyPair?.(kp, opts) ?? Agent.fromSecretB58(bs58.encode(kp.secretKey), opts);
|
|
163
|
+
// Derive EVM key from seed (independent, not BIP-44 — see TODO above)
|
|
164
|
+
const evmHex = ("0x" + bytesToHex(crypto32(seed)));
|
|
165
|
+
const evmAccount = privateKeyToAccount(evmHex);
|
|
166
|
+
return new AiFinPayAgent(inner, evmAccount, opts);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Legacy: load the Solana side from an existing keypair, then either
|
|
170
|
+
* generate a fresh EVM key or import one with `attachEvmKey`.
|
|
171
|
+
*/
|
|
172
|
+
static async fromSolanaSecret(secretB58, opts = {}) {
|
|
173
|
+
const inner = Agent.fromSecretB58(secretB58, opts);
|
|
174
|
+
const evmKey = opts.evmPrivateKey ?? generatePrivateKey();
|
|
175
|
+
const evmAccount = privateKeyToAccount(evmKey);
|
|
176
|
+
return new AiFinPayAgent(inner, evmAccount, opts);
|
|
177
|
+
}
|
|
178
|
+
// ── Identity ────────────────────────────────────────────────────────────
|
|
179
|
+
get id() {
|
|
180
|
+
// Canonical: Solana pubkey for back-compat with the leaderboard / Seat PDA.
|
|
181
|
+
return this.inner.address;
|
|
182
|
+
}
|
|
183
|
+
get solanaAddress() { return this.inner.address; }
|
|
184
|
+
get evmAddress() { return this.evmAccount.address; }
|
|
185
|
+
// ── Registry ────────────────────────────────────────────────────────────
|
|
186
|
+
async fetchRegistry(force = false) {
|
|
187
|
+
if (this.cachedRegistry && !force)
|
|
188
|
+
return this.cachedRegistry;
|
|
189
|
+
const r = await fetch(this.registryUrl);
|
|
190
|
+
if (!r.ok) {
|
|
191
|
+
throw new AiFinPayError(`provider registry ${this.registryUrl} → ${r.status}`);
|
|
192
|
+
}
|
|
193
|
+
const j = (await r.json());
|
|
194
|
+
this.cachedRegistry = j.providers ?? [];
|
|
195
|
+
return this.cachedRegistry;
|
|
196
|
+
}
|
|
197
|
+
async resolveProvider(name) {
|
|
198
|
+
const reg = await this.fetchRegistry();
|
|
199
|
+
const hit = reg.find((p) => p.name === name);
|
|
200
|
+
if (!hit) {
|
|
201
|
+
throw new ProviderUnknownError(`Provider "${name}" not in registry ${this.registryUrl}`);
|
|
202
|
+
}
|
|
203
|
+
return hit;
|
|
204
|
+
}
|
|
205
|
+
// ── Budget caps ─────────────────────────────────────────────────────────
|
|
206
|
+
setBudget(caps) {
|
|
207
|
+
this.budgetCaps = caps;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Internal pre-call check. Returns `false` only when on_limit_exceeded
|
|
211
|
+
* is "skip" and a cap is hit — `call()` should then resolve to null
|
|
212
|
+
* without submitting an on-chain tx. Throws BudgetCapExceededError
|
|
213
|
+
* in the default "throw" mode.
|
|
214
|
+
*/
|
|
215
|
+
checkBudget(costUsd) {
|
|
216
|
+
const mode = this.budgetCaps.on_limit_exceeded ?? "throw";
|
|
217
|
+
if (this.budgetCaps.per_call_usd !== undefined && costUsd > this.budgetCaps.per_call_usd) {
|
|
218
|
+
const err = new BudgetCapExceededError("per_call", `cost $${costUsd} exceeds per-call cap $${this.budgetCaps.per_call_usd}`);
|
|
219
|
+
if (mode === "skip")
|
|
220
|
+
return false;
|
|
221
|
+
throw err;
|
|
222
|
+
}
|
|
223
|
+
const after = this.spend24h.total24h() + costUsd;
|
|
224
|
+
if (this.budgetCaps.daily_usd !== undefined && after > this.budgetCaps.daily_usd) {
|
|
225
|
+
const err = new BudgetCapExceededError("daily", `daily spend ${after.toFixed(4)} would exceed cap $${this.budgetCaps.daily_usd}`);
|
|
226
|
+
if (mode === "skip")
|
|
227
|
+
return false;
|
|
228
|
+
throw err;
|
|
229
|
+
}
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Current 24-hour rolling spend across all paid calls made by this
|
|
234
|
+
* agent instance. Useful for budget dashboards on the consumer side.
|
|
235
|
+
*/
|
|
236
|
+
getSpend24h() {
|
|
237
|
+
return this.spend24h.total24h();
|
|
238
|
+
}
|
|
239
|
+
// ── Routing — chain selection ───────────────────────────────────────────
|
|
240
|
+
/**
|
|
241
|
+
* Chain selection heuristic — see Obsidian/23 - Unified SDK Design §Routing.
|
|
242
|
+
*
|
|
243
|
+
* 1. Explicit override always wins (subject to provider acceptance).
|
|
244
|
+
* 2. Cost ≤ $0.005 + Solana per-call live + Solana accepted → Solana
|
|
245
|
+
* (low gas wins for tiny calls).
|
|
246
|
+
* 3. Cost > $0.05 + Polygon accepted → Polygon
|
|
247
|
+
* (better finality for high-value calls).
|
|
248
|
+
* 4. Middle band → provider.preferred_chain.
|
|
249
|
+
* 5. Fallback → first accepted chain.
|
|
250
|
+
*
|
|
251
|
+
* Solana per-call is gated on the deploy of `b2b_pay_with_split` —
|
|
252
|
+
* until then `solana` selection raises in `call()`.
|
|
253
|
+
*/
|
|
254
|
+
pickChain(provider, opts) {
|
|
255
|
+
const accepted = new Set(provider.accepted_chains);
|
|
256
|
+
// 1. Override.
|
|
257
|
+
if (opts.chain) {
|
|
258
|
+
if (!accepted.has(opts.chain)) {
|
|
259
|
+
throw new AiFinPayError(`Provider ${provider.name} does not accept ${opts.chain}; accepted: ${provider.accepted_chains.join(", ")}`);
|
|
260
|
+
}
|
|
261
|
+
return opts.chain;
|
|
262
|
+
}
|
|
263
|
+
const cost = opts.cost ?? provider.price_usd;
|
|
264
|
+
const solanaPerCallLive = process.env.AIFINPAY_SOLANA_PER_CALL === "live";
|
|
265
|
+
// 2. Tiny calls → Solana.
|
|
266
|
+
if (cost <= 0.005 && accepted.has("solana") && solanaPerCallLive) {
|
|
267
|
+
return "solana";
|
|
268
|
+
}
|
|
269
|
+
// 3. Big calls → Polygon for finality.
|
|
270
|
+
if (cost > 0.05 && accepted.has("polygon")) {
|
|
271
|
+
return "polygon";
|
|
272
|
+
}
|
|
273
|
+
// 4. Middle band → preferred.
|
|
274
|
+
if (accepted.has(provider.preferred_chain)) {
|
|
275
|
+
return provider.preferred_chain;
|
|
276
|
+
}
|
|
277
|
+
// 5. Fallback.
|
|
278
|
+
if (provider.accepted_chains[0])
|
|
279
|
+
return provider.accepted_chains[0];
|
|
280
|
+
throw new AiFinPayError(`Provider ${provider.name} declares no accepted_chains`);
|
|
281
|
+
}
|
|
282
|
+
// ── Verify (one-time on-chain registration) ─────────────────────────────
|
|
283
|
+
/**
|
|
284
|
+
* TODO(phase-4): mint AgentPassport on the cheapest chain available
|
|
285
|
+
* with the requested `stake_usd`. For now wires only the Solana side
|
|
286
|
+
* via the existing `reserveSeatInvoice` semantics.
|
|
287
|
+
*/
|
|
288
|
+
async verify(_args) {
|
|
289
|
+
throw new AiFinPayError("verify() not implemented yet — see migration phase 4");
|
|
290
|
+
}
|
|
291
|
+
// ── Funding (deposit) ───────────────────────────────────────────────────
|
|
292
|
+
/**
|
|
293
|
+
* TODO(phase-1): pick a chain (preferred USDC on Polygon for stability;
|
|
294
|
+
* fallback Solana SOL). Return signed-tx instructions for the wallet.
|
|
295
|
+
*/
|
|
296
|
+
async deposit(_usd, _opts) {
|
|
297
|
+
throw new AiFinPayError("deposit() not implemented yet — see migration phase 1.5");
|
|
298
|
+
}
|
|
299
|
+
// ── Call ────────────────────────────────────────────────────────────────
|
|
300
|
+
/**
|
|
301
|
+
* High-level paid call. Resolves the provider, picks a chain, builds the
|
|
302
|
+
* payment, sends to the bridge, retries with payment proof.
|
|
303
|
+
*
|
|
304
|
+
* Phase 1 implementation: Polygon per-call splitter via on-chain
|
|
305
|
+
* `B2BSplitter.payMatic()`. Solana per-call branch lights up after
|
|
306
|
+
* Phase 2 (b2b_pay_with_split deploy via Squads).
|
|
307
|
+
*
|
|
308
|
+
* Returns `null` (instead of a `Response`) iff a budget cap was hit
|
|
309
|
+
* AND budget.on_limit_exceeded is set to "skip" — the call is dropped
|
|
310
|
+
* silently. Default behaviour throws BudgetCapExceededError.
|
|
311
|
+
*/
|
|
312
|
+
async call(opts) {
|
|
313
|
+
const provider = await this.resolveProvider(opts.provider);
|
|
314
|
+
const chain = this.pickChain(provider, opts);
|
|
315
|
+
const cost = opts.cost ?? provider.price_usd;
|
|
316
|
+
const withinBudget = this.checkBudget(cost);
|
|
317
|
+
if (!withinBudget)
|
|
318
|
+
return null;
|
|
319
|
+
if (provider.mode === "session") {
|
|
320
|
+
throw new AiFinPayError(`Provider ${provider.name} requires session mode — use openSession() (phase-3 feature)`);
|
|
321
|
+
}
|
|
322
|
+
const url = opts.bridgeUrl ?? provider.bridge_url;
|
|
323
|
+
if (!url) {
|
|
324
|
+
throw new AiFinPayError(`Provider ${provider.name} has no bridge_url`);
|
|
325
|
+
}
|
|
326
|
+
if (chain === "solana") {
|
|
327
|
+
throw new AiFinPayError(`Solana per-call payment requires b2b_pay_with_split (phase-2). ` +
|
|
328
|
+
`Use chain: "polygon" override or wait for the Solana program upgrade.`);
|
|
329
|
+
}
|
|
330
|
+
const path = (() => {
|
|
331
|
+
if (provider.service_type === "search")
|
|
332
|
+
return "/search";
|
|
333
|
+
if (provider.service_type === "inference")
|
|
334
|
+
return "/chat/completions";
|
|
335
|
+
if (provider.service_type === "compute")
|
|
336
|
+
return "/run";
|
|
337
|
+
if (provider.service_type === "analytics")
|
|
338
|
+
return "/query";
|
|
339
|
+
return "/";
|
|
340
|
+
})();
|
|
341
|
+
const buildInit = (extraHeaders = {}) => ({
|
|
342
|
+
method: opts.method ?? "POST",
|
|
343
|
+
headers: { "content-type": "application/json", ...extraHeaders },
|
|
344
|
+
body: opts.body !== undefined ? JSON.stringify(opts.body) : undefined,
|
|
345
|
+
signal: opts.signal,
|
|
346
|
+
});
|
|
347
|
+
// 1. Initial unauthenticated POST → expect 402 challenge from the bridge.
|
|
348
|
+
const fullUrl = url.replace(/\/$/, "") + path;
|
|
349
|
+
const initialResp = await this.inner.fetchImpl(fullUrl, buildInit());
|
|
350
|
+
if (initialResp.status !== 402) {
|
|
351
|
+
// Bridge didn't ask for payment — pass response through unchanged.
|
|
352
|
+
this.spend24h.add(cost);
|
|
353
|
+
if (this.telemetry)
|
|
354
|
+
this.reportTelemetry({ kind: "call", provider: provider.name, chain, cost, free: true });
|
|
355
|
+
return initialResp;
|
|
356
|
+
}
|
|
357
|
+
let challenge;
|
|
358
|
+
try {
|
|
359
|
+
challenge = (await initialResp.json());
|
|
360
|
+
}
|
|
361
|
+
catch (e) {
|
|
362
|
+
throw new X402Error(`bridge returned 402 with non-JSON body`);
|
|
363
|
+
}
|
|
364
|
+
if (!challenge.pay_matic) {
|
|
365
|
+
throw new X402Error(`bridge ${provider.name} returned 402 but no pay_matic block — only legacy AiFinPay/Coinbase facilitators not yet wired into AiFinPayAgent.call()`);
|
|
366
|
+
}
|
|
367
|
+
const pm = challenge.pay_matic;
|
|
368
|
+
// 2. Submit B2BSplitter.payMatic on Polygon mainnet.
|
|
369
|
+
const { publicClient, walletClient } = this.polygonClients();
|
|
370
|
+
const txHash = await walletClient.writeContract({
|
|
371
|
+
address: pm.splitter,
|
|
372
|
+
abi: SPLITTER_PAY_MATIC_ABI,
|
|
373
|
+
functionName: "payMatic",
|
|
374
|
+
args: [
|
|
375
|
+
pm.merchant_wallet,
|
|
376
|
+
"0x0000000000000000000000000000000000000000",
|
|
377
|
+
pm.order_id,
|
|
378
|
+
],
|
|
379
|
+
value: BigInt(pm.total_wei),
|
|
380
|
+
chain: polygon,
|
|
381
|
+
account: this.evmAccount,
|
|
382
|
+
});
|
|
383
|
+
// 3. Wait for receipt (we only need inclusion for Polygon's 2s blocks).
|
|
384
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
|
|
385
|
+
if (receipt.status !== "success") {
|
|
386
|
+
throw new AiFinPayError(`Polygon tx reverted: ${txHash}`);
|
|
387
|
+
}
|
|
388
|
+
// 4. Retry the bridge with payment proof.
|
|
389
|
+
const paidResp = await this.inner.fetchImpl(fullUrl, buildInit({
|
|
390
|
+
"x-tx-hash": txHash,
|
|
391
|
+
"x-order-id": pm.order_id,
|
|
392
|
+
}));
|
|
393
|
+
if (!paidResp.ok) {
|
|
394
|
+
const detail = await paidResp.text().catch(() => "<unreadable>");
|
|
395
|
+
throw new AiFinPayError(`Bridge retry failed ${paidResp.status} after on-chain payment ${txHash}: ${detail.slice(0, 300)}`);
|
|
396
|
+
}
|
|
397
|
+
this.spend24h.add(cost);
|
|
398
|
+
if (this.telemetry)
|
|
399
|
+
this.reportTelemetry({ kind: "call", provider: provider.name, chain, cost, tx: txHash });
|
|
400
|
+
return paidResp;
|
|
401
|
+
}
|
|
402
|
+
// ── Sessions ────────────────────────────────────────────────────────────
|
|
403
|
+
/**
|
|
404
|
+
* TODO(phase-3): open a metered budget session.
|
|
405
|
+
*/
|
|
406
|
+
async openSession(_args) {
|
|
407
|
+
throw new AiFinPayError("openSession() not implemented yet — see migration phase 3");
|
|
408
|
+
}
|
|
409
|
+
// ── Balance ─────────────────────────────────────────────────────────────
|
|
410
|
+
/**
|
|
411
|
+
* Snapshot the agent's funds across both chains, USD-normalised.
|
|
412
|
+
*
|
|
413
|
+
* Phase 1.4: native MATIC + native SOL via RPC; ERC-20 / SPL token balances
|
|
414
|
+
* deferred (we don't yet need them for the unified `call()` flow which
|
|
415
|
+
* settles in MATIC). Pyth feeds are TODO; for now uses
|
|
416
|
+
* `AIFINPAY_MATIC_USD` and `AIFINPAY_SOL_USD` env, defaulting to 0.7 and 200.
|
|
417
|
+
*/
|
|
418
|
+
async balance() {
|
|
419
|
+
const maticUsd = parseFloat(process.env.AIFINPAY_MATIC_USD ?? "0.70");
|
|
420
|
+
const solUsd = parseFloat(process.env.AIFINPAY_SOL_USD ?? "200");
|
|
421
|
+
const polygon = await this.fetchPolygonNative().catch(() => 0);
|
|
422
|
+
const solana = await this.fetchSolanaNative().catch(() => 0);
|
|
423
|
+
const polygonUsd = polygon * maticUsd;
|
|
424
|
+
const solanaUsd = solana * solUsd;
|
|
425
|
+
return {
|
|
426
|
+
agent_balance_usd: polygonUsd + solanaUsd,
|
|
427
|
+
chains: {
|
|
428
|
+
solana: { sol: solana, usdc: 0, msecco_balance: 0 },
|
|
429
|
+
polygon: { matic: polygon, usdc: 0, msecco_balance: 0 },
|
|
430
|
+
},
|
|
431
|
+
spend_24h_usd: this.spend24h.total24h(),
|
|
432
|
+
budget_caps: this.budgetCaps,
|
|
433
|
+
priced_at: Math.floor(Date.now() / 1000),
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
async fetchPolygonNative() {
|
|
437
|
+
const { publicClient } = this.polygonClients();
|
|
438
|
+
const wei = await publicClient.getBalance({
|
|
439
|
+
address: this.evmAccount.address,
|
|
440
|
+
});
|
|
441
|
+
return Number(wei) / 1e18;
|
|
442
|
+
}
|
|
443
|
+
async fetchSolanaNative() {
|
|
444
|
+
// Use raw JSON-RPC to avoid pulling @solana/web3.js as a dep.
|
|
445
|
+
const rpc = process.env.AIFINPAY_SOLANA_RPC || "https://api.mainnet.solana.com";
|
|
446
|
+
const r = await this.inner.fetchImpl(rpc, {
|
|
447
|
+
method: "POST",
|
|
448
|
+
headers: { "content-type": "application/json" },
|
|
449
|
+
body: JSON.stringify({
|
|
450
|
+
jsonrpc: "2.0",
|
|
451
|
+
id: 1,
|
|
452
|
+
method: "getBalance",
|
|
453
|
+
params: [this.solanaAddress],
|
|
454
|
+
}),
|
|
455
|
+
});
|
|
456
|
+
if (!r.ok)
|
|
457
|
+
return 0;
|
|
458
|
+
const j = (await r.json());
|
|
459
|
+
const lamports = j.result?.value ?? 0;
|
|
460
|
+
return lamports / 1e9;
|
|
461
|
+
}
|
|
462
|
+
// ── Reputation ──────────────────────────────────────────────────────────
|
|
463
|
+
/**
|
|
464
|
+
* TODO(phase-4 / phase-5): query operator backend reputation engine.
|
|
465
|
+
*/
|
|
466
|
+
async reputation() {
|
|
467
|
+
return {
|
|
468
|
+
trust_score: 0,
|
|
469
|
+
spend_score: 0,
|
|
470
|
+
tenure_days: 0,
|
|
471
|
+
verified: false,
|
|
472
|
+
flags: [],
|
|
473
|
+
};
|
|
474
|
+
}
|
|
475
|
+
// ── Telemetry (opt-out) ─────────────────────────────────────────────────
|
|
476
|
+
reportTelemetry(payload) {
|
|
477
|
+
// Fire-and-forget. No body content, only metadata.
|
|
478
|
+
void this.inner.fetchImpl(`${this.inner.baseUrl}/api/telemetry`, {
|
|
479
|
+
method: "POST",
|
|
480
|
+
headers: { "content-type": "application/json" },
|
|
481
|
+
body: JSON.stringify({ agent_id: this.id, ...payload, ts: Date.now() }),
|
|
482
|
+
}).catch(() => { });
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
// ── Internal hex helpers (small, no extra deps) ────────────────────────────
|
|
486
|
+
function hexToBytes(hex) {
|
|
487
|
+
const out = new Uint8Array(hex.length / 2);
|
|
488
|
+
for (let i = 0; i < out.length; i++) {
|
|
489
|
+
out[i] = parseInt(hex.substr(i * 2, 2), 16);
|
|
490
|
+
}
|
|
491
|
+
return out;
|
|
492
|
+
}
|
|
493
|
+
function bytesToHex(b) {
|
|
494
|
+
let s = "";
|
|
495
|
+
for (let i = 0; i < b.length; i++)
|
|
496
|
+
s += b[i].toString(16).padStart(2, "0");
|
|
497
|
+
return s;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Derive a 32-byte EVM private key from a 32-byte seed using a domain-separated
|
|
501
|
+
* SHA-256 hash. Independent of the Solana keypair; same seed reproduces the
|
|
502
|
+
* same EVM key.
|
|
503
|
+
*
|
|
504
|
+
* Domain separator: "aifinpay:evm:v1\0" prevents accidental key collision with
|
|
505
|
+
* any other system that hashes this seed.
|
|
506
|
+
*
|
|
507
|
+
* TODO(phase-1): swap to a real BIP-44 path (`m/44'/60'/0'/0/0`) once we ship
|
|
508
|
+
* BIP-39 mnemonic support. This helper is stop-gap so the unified API can ship
|
|
509
|
+
* before audit-grade derivation lands.
|
|
510
|
+
*/
|
|
511
|
+
function crypto32(seed) {
|
|
512
|
+
// Lazy require to avoid pulling node:crypto into bundlers that don't need it.
|
|
513
|
+
const c = globalThis.crypto;
|
|
514
|
+
if (c?.subtle) {
|
|
515
|
+
// Browser / modern Node — but subtle is async, and we're sync here.
|
|
516
|
+
// Fall through to the node:crypto path.
|
|
517
|
+
}
|
|
518
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
519
|
+
const nodeCrypto = require("node:crypto");
|
|
520
|
+
const h = nodeCrypto.createHash("sha256");
|
|
521
|
+
h.update("aifinpay:evm:v1\0");
|
|
522
|
+
h.update(seed);
|
|
523
|
+
return new Uint8Array(h.digest());
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=unifiedAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unifiedAgent.js","sourceRoot":"","sources":["../src/unifiedAgent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aifinpay/agent",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.0-alpha.1",
|
|
4
|
+
"description": "Unified agent-economy SDK for autonomous AI agents \u2014 chain-opaque AiFinPayAgent surface (call/openSession/balance/verify) over Polygon and Solana execution environments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -22,13 +22,24 @@
|
|
|
22
22
|
"prepublishOnly": "npm run build"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
|
-
"x402",
|
|
26
25
|
"ai-agent",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
26
|
+
"ai-agents",
|
|
27
|
+
"agentic-ai",
|
|
28
|
+
"autonomous-agents",
|
|
29
|
+
"agent-payments",
|
|
30
|
+
"agent-commerce",
|
|
31
|
+
"x402",
|
|
32
|
+
"mcp",
|
|
33
|
+
"model-context-protocol",
|
|
29
34
|
"payments",
|
|
35
|
+
"crypto-payments",
|
|
36
|
+
"polygon",
|
|
37
|
+
"solana",
|
|
38
|
+
"stablecoin",
|
|
39
|
+
"usdc",
|
|
30
40
|
"non-custodial",
|
|
31
|
-
"ed25519"
|
|
41
|
+
"ed25519",
|
|
42
|
+
"stripe-for-ai-agents"
|
|
32
43
|
],
|
|
33
44
|
"author": "CoinSecurities (SECCO) <contact@aifinpay.company>",
|
|
34
45
|
"license": "MIT",
|
|
@@ -41,7 +52,8 @@
|
|
|
41
52
|
"bugs": "https://github.com/AiFinPay/sdk/issues",
|
|
42
53
|
"dependencies": {
|
|
43
54
|
"bs58": "^6.0.0",
|
|
44
|
-
"tweetnacl": "^1.0.3"
|
|
55
|
+
"tweetnacl": "^1.0.3",
|
|
56
|
+
"viem": "^2.21.0"
|
|
45
57
|
},
|
|
46
58
|
"devDependencies": {
|
|
47
59
|
"@types/node": "^20.0.0",
|