@aifinpay/agent 2.3.0 → 2.3.2

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/README.md CHANGED
@@ -69,7 +69,7 @@ npm pack
69
69
  Install the resulting tarball in your application:
70
70
 
71
71
  ```bash
72
- npm install /absolute/path/to/sdk/node/aifinpay-agent-2.3.0.tgz
72
+ npm install /absolute/path/to/sdk/node/aifinpay-agent-<version>.tgz
73
73
  ```
74
74
 
75
75
  ## Quick start
@@ -104,7 +104,8 @@ inputs and wallet files out of chats, logs and version control.
104
104
  The same configured inputs restore the same addresses after a process restart.
105
105
  An explicit `evmPrivateKey` option overrides the derived EVM identity; retain
106
106
  that separate key as well to recover the imported wallet. Loading a wallet
107
- does not enable the RC's gated settlement routes.
107
+ does not by itself pay for anything; paid execution goes through `fetchPaid`
108
+ and its checks.
108
109
 
109
110
  `AiFinPayAgent.new()` and `Agent.new()` intentionally create a fresh ephemeral
110
111
  wallet each time. They do not load existing environment variables or keystores
@@ -126,24 +127,34 @@ const agent2 = Agent.fromSecretB58("3RvZm7Gw...");
126
127
 
127
128
  ## How x402 auth works under the hood
128
129
 
129
- For every gated request the SDK:
130
-
131
- 1. `GET /nonce` → receives a one-time UUID with 60s TTL.
132
- 2. computes `SHA-256("AiFinPay-x402:{nonce}:{pubkey}")`.
133
- 3. signs with Ed25519, base58-encodes the signature.
130
+ `Agent.pay(url)` (and `get`/`post`/`request`) handles an AiFinPay-native 402
131
+ with request-bound auth (version 2). For a gated request the SDK:
132
+
133
+ 1. sends the request without credentials; the 402 body carries a one-time
134
+ `x-nonce`, its expiry `x-nonce-expires-at`, `x-aifinpay-auth-version: 2`
135
+ and the SHA-256 of the request body it was issued for;
136
+ 2. refuses to sign unless the request went to the origin configured as the
137
+ agent's `baseUrl`, the response came from that origin, and the body digest
138
+ matches the body it sent;
139
+ 3. signs, with Ed25519, the SHA-256 of
140
+ `JSON.stringify(["AiFinPay-x402", "v2", nonce, pubkey, origin, METHOD, path+query, bodySha256, expiresAt])`
141
+ and base58-encodes the signature;
134
142
  4. retries the original request with headers:
135
143
  - `x-agent-pubkey: <base58 pubkey>`
136
- - `x-nonce: <uuid>`
144
+ - `x-nonce: <nonce>`
137
145
  - `x-signature: <base58 sig>`
146
+ - `x-aifinpay-auth-version: 2`
138
147
 
139
- The server verifies the signature, checks the agent has a live Seat PDA
140
- on-chain, and serves the resource.
148
+ The server verifies the signature, consumes the nonce, checks the agent has a
149
+ live Seat PDA on-chain, and serves the resource. The retired v1 format
150
+ (`GET /nonce`, `SHA-256("AiFinPay-x402:{nonce}:{pubkey}")`) is refused, and
151
+ `Agent.authHeaders()` throws.
141
152
 
142
153
  ## Privacy
143
154
 
144
155
  - **The server never sees your private key.** Period.
145
156
  - Nonces are consumed on use; replay-resistant.
146
- - All transactions are public and on-chain — Solana + Polygon mainnet.
157
+ - Payments settle on public chains — Polygon, or Base when selected — and are visible on-chain.
147
158
 
148
159
  ## License
149
160
 
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * `npx @aifinpay/agent init` — one command from zero to a paying agent.
4
+ *
5
+ * 1. generates the agent's wallet LOCALLY (key never leaves this machine),
6
+ * writes .env (AGENT_PK) and protects it via .gitignore
7
+ * 2. detects an MCP host (Claude Code / Cursor) and prints the one-liner
8
+ * 3. prints funding instructions + a ready-to-run code snippet
9
+ *
10
+ * npx @aifinpay/agent init # interactive
11
+ * npx @aifinpay/agent init --yes # zero questions, sane defaults
12
+ * npx @aifinpay/agent init --merchant # ALSO register you as a merchant (paywall side)
13
+ */
14
+ import { appendFileSync, existsSync, readFileSync, writeFileSync } from 'node:fs';
15
+ import { homedir } from 'node:os';
16
+ import { join } from 'node:path';
17
+ import { createInterface } from 'node:readline/promises';
18
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
19
+ const API = process.env.AIFP_API || 'https://api.aifinpay.io';
20
+ const args = process.argv.slice(2);
21
+ const cmd = args.find((a) => !a.startsWith('-')) || 'init';
22
+ const YES = args.includes('--yes') || args.includes('-y');
23
+ const MERCHANT = args.includes('--merchant');
24
+ const c = {
25
+ b: (s) => `\x1b[1m${s}\x1b[0m`,
26
+ dim: (s) => `\x1b[2m${s}\x1b[0m`,
27
+ ok: (s) => `\x1b[32m${s}\x1b[0m`,
28
+ warn: (s) => `\x1b[33m${s}\x1b[0m`,
29
+ code: (s) => `\x1b[36m${s}\x1b[0m`,
30
+ };
31
+ async function ask(q, def) {
32
+ if (YES)
33
+ return def;
34
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
35
+ const a = (await rl.question(`${q} ${c.dim(`(${def})`)} `)).trim();
36
+ rl.close();
37
+ return a || def;
38
+ }
39
+ function upsertEnv(key, value) {
40
+ const envPath = join(process.cwd(), '.env');
41
+ const cur = existsSync(envPath) ? readFileSync(envPath, 'utf8') : '';
42
+ if (new RegExp(`^${key}=`, 'm').test(cur))
43
+ return 'kept';
44
+ appendFileSync(envPath, `${cur.endsWith('\n') || cur === '' ? '' : '\n'}${key}=${value}\n`);
45
+ return 'created';
46
+ }
47
+ function protectEnvInGitignore() {
48
+ const gi = join(process.cwd(), '.gitignore');
49
+ const cur = existsSync(gi) ? readFileSync(gi, 'utf8') : '';
50
+ if (!/^\.env$/m.test(cur))
51
+ writeFileSync(gi, `${cur}${cur && !cur.endsWith('\n') ? '\n' : ''}.env\n`);
52
+ }
53
+ function detectMcpHost() {
54
+ if (existsSync(join(homedir(), '.claude.json')) || existsSync(join(homedir(), '.claude')))
55
+ return 'claude';
56
+ if (existsSync(join(homedir(), '.cursor')))
57
+ return 'cursor';
58
+ return null;
59
+ }
60
+ async function init() {
61
+ console.log(`\n${c.b('◈ AiFinPay')} — set up your agent's wallet\n`);
62
+ // 1. wallet — local generation, or keep the existing key
63
+ const envPath = join(process.cwd(), '.env');
64
+ let pk = '';
65
+ const existing = existsSync(envPath) && readFileSync(envPath, 'utf8').match(/^AGENT_PK=(0x[0-9a-fA-F]{64})$/m);
66
+ if (existing) {
67
+ pk = existing[1];
68
+ console.log(`${c.ok('✓')} found existing AGENT_PK in .env — reusing it`);
69
+ }
70
+ else {
71
+ pk = generatePrivateKey();
72
+ upsertEnv('AGENT_PK', pk);
73
+ console.log(`${c.ok('✓')} wallet generated ${c.dim('locally — the key stays on this machine, saved to .env')}`);
74
+ }
75
+ protectEnvInGitignore();
76
+ console.log(`${c.ok('✓')} .env is covered by .gitignore`);
77
+ const address = privateKeyToAccount(pk).address;
78
+ // 2. MCP host one-liner
79
+ const host = detectMcpHost();
80
+ if (host) {
81
+ console.log(`\n${c.b(`Detected ${host === 'claude' ? 'Claude Code' : 'Cursor'}`)} — give your assistant payment tools:`);
82
+ console.log(` ${c.code('claude mcp add aifinpay -- npx -y @aifinpay/mcp')}`);
83
+ }
84
+ // 3. funding + snippet
85
+ console.log(`\n${c.b('Fund your agent')} ${c.dim("(its own wallet — only you hold the key)")}:`);
86
+ console.log(` address : ${c.code(address)}`);
87
+ console.log(` network : Polygon · send ~1 USDC + ~0.5 POL (gas)`);
88
+ console.log(`\n${c.b('Make your first paid call')}:`);
89
+ console.log(c.code(` import { AiFinPayAgent } from "@aifinpay/agent";\n` +
90
+ ` const agent = await AiFinPayAgent.new({ privateKey: process.env.AGENT_PK });\n` +
91
+ ` const r = await agent.call({ provider: "exa", body: { query: "hello" } });`));
92
+ console.log(`\n docs: https://aifinpay.io/llms.txt · registry: ${API}/registry`);
93
+ // 4. optional merchant registration (the paywall side)
94
+ if (MERCHANT) {
95
+ console.log(`\n${c.b('Merchant registration')} — charge agents for YOUR API:`);
96
+ const name = await ask(' Service name?', 'My Paid API');
97
+ const payout = await ask(' Payout wallet (0x…)?', address);
98
+ const res = await fetch(`${API}/v1/merchants`, {
99
+ method: 'POST',
100
+ headers: { 'content-type': 'application/json' },
101
+ body: JSON.stringify({ name, pay_to: { polygon: payout } }),
102
+ });
103
+ const j = await res.json();
104
+ if (!res.ok) {
105
+ console.log(`${c.warn('✗')} registration failed: ${j.detail || res.status}`);
106
+ }
107
+ else {
108
+ upsertEnv('AIFP_MERCHANT_ID', j.merchant_id);
109
+ upsertEnv('AIFP_MERCHANT_SECRET', j.merchant_secret);
110
+ console.log(`${c.ok('✓')} registered ${c.code(j.merchant_id)} ${c.dim('(id + one-time secret saved to .env)')}`);
111
+ console.log(` agents pay you with: POST ${API}/v1/quote {"merchant_id":"${j.merchant_id}", …}`);
112
+ console.log(` verify receipts against: ${API}/.well-known/jwks.json`);
113
+ }
114
+ }
115
+ console.log(`\n${c.ok('Done.')} Fund the address above and your agent can pay for search, inference and data.\n`);
116
+ }
117
+ if (cmd === 'init') {
118
+ init().catch((e) => {
119
+ console.error(`${c.warn('✗')} ${e.message}`);
120
+ process.exit(1);
121
+ });
122
+ }
123
+ else {
124
+ console.log(`Unknown command "${cmd}". Usage: npx @aifinpay/agent init [--yes] [--merchant]`);
125
+ process.exit(1);
126
+ }
127
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type { AuthPayload, Facilitator, FacilitatorClass, PayOptions } from "./base.js";
1
+ export type { AuthPayload, AuthRequestContext, Facilitator, FacilitatorClass, PayOptions } from "./base.js";
2
2
  export { AiFinPayFacilitator } from "./aifinpay.js";
3
3
  export { CoinbaseX402Facilitator } from "./coinbase.js";
4
4
  export { REGISTERED, detectFacilitator } from "./detect.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/facilitators/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/facilitators/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5G,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@
9
9
  export { AgentPassportError, normalizeAgentPassportIdentifier, resolveAgentPassport, generateAgentPassportHolderKeypair, signAgentPassportHolderMessage, issueAgentPassport, createAgentPassport, requestAgentPassportWalletBinding, confirmAgentPassportWalletBinding, verifyAgentPassportIssuerSignature, agentPassportWallet, } from "./agentPassport.js";
10
10
  export type { AgentPassportNetwork, AgentPassportChainFamily, AgentPassportStatus, AgentPassportWalletStatus, AgentPassportWalletBinding, AgentPassportIssuerProof, AgentPassportIdentity, AgentPassportHolderKeypair, AgentPassportWalletChallenge, } from "./agentPassport.js";
11
11
  export { SettlementClient, SettlementProtocolError, SettlementConfirmationPendingError, validateSettlementInvoice, validateTrustedSettlementRoutePin, verifySettlementRouteOnChain, executeSettlementInvoice, SETTLEMENT_CHAIN_IDS, SETTLEMENT_EXPECTED_BPS, } from "./settlement.js";
12
+ export { SettlementHttpError } from "./settlementHttp.js";
12
13
  export * from "./settlementV14.js";
13
14
  export type { SettlementRouteClass, SettlementClientOptions, SettlementEvmNetwork, SettlementRoute, TrustedSettlementRoutePin, TrustedSettlementRouteRegistry, SettlementInvoiceInput, SettlementInvoice, NativeSettlementInvoice, StableSettlementInvoice, SettlementExecution, } from "./settlement.js";
14
15
  export { SPLITTER_ROUTES, SPLITTER_GOVERNANCE, SPLITTER_REGISTRY_SOURCE, resolveSplitterRoute, resolveSettlingSplitterRoute, UnknownSplitterRouteError, SplitterRouteNotSettlingError, } from "./splitterRoutes.js";
@@ -38,7 +39,7 @@ export type { SafeErrorShape } from "./errors.js";
38
39
  /** @deprecated Legacy x402 facilitators — use AIFP-1/AIFP-2 settlement instead */
39
40
  export { AiFinPayFacilitator, CoinbaseX402Facilitator, REGISTERED, detectFacilitator } from "./facilitators/index.js";
40
41
  /** @deprecated Legacy x402 facilitators — use AIFP-1/AIFP-2 settlement instead */
41
- export type { AuthPayload, Facilitator, FacilitatorClass, PayOptions } from "./facilitators/index.js";
42
+ export type { AuthPayload, AuthRequestContext, Facilitator, FacilitatorClass, PayOptions, } from "./facilitators/index.js";
42
43
  export { type SpendLedger, MemorySpendLedger, FileSpendLedger } from "./spendLedger.js";
43
44
  export { deriveWallet, newWallet } from "./wallet.js";
44
45
  export { getAgentHistory, getQuota, AGENT_RECEIPT_FIELDS, AGENT_TRANSACTION_FIELDS } from "./agentHistory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,6 +10,9 @@
10
10
  export { AgentPassportError, normalizeAgentPassportIdentifier, resolveAgentPassport, generateAgentPassportHolderKeypair, signAgentPassportHolderMessage, issueAgentPassport, createAgentPassport, requestAgentPassportWalletBinding, confirmAgentPassportWalletBinding, verifyAgentPassportIssuerSignature, agentPassportWallet, } from "./agentPassport.js";
11
11
  // ── Canonical route-specific v1.3 settlement ─────────────────────────────
12
12
  export { SettlementClient, SettlementProtocolError, SettlementConfirmationPendingError, validateSettlementInvoice, validateTrustedSettlementRoutePin, verifySettlementRouteOnChain, executeSettlementInvoice, SETTLEMENT_CHAIN_IDS, SETTLEMENT_EXPECTED_BPS, } from "./settlement.js";
13
+ // Thrown by SettlementClient for transport failures (timeout, refused redirect,
14
+ // oversized response) — export it so callers can tell those from protocol errors.
15
+ export { SettlementHttpError } from "./settlementHttp.js";
13
16
  export * from "./settlementV14.js";
14
17
  // ── Unified surface (Phase 1+ / legacy callers remain source-compatible) ──
15
18
  export { SPLITTER_ROUTES, SPLITTER_GOVERNANCE, SPLITTER_REGISTRY_SOURCE, resolveSplitterRoute, resolveSettlingSplitterRoute, UnknownSplitterRouteError, SplitterRouteNotSettlingError, } from "./splitterRoutes.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { SdkEnvironment } from "./deploymentResolver.js";
2
+ /** Solana clusters the resolver understands. `dev` maps to devnet, `prod` to
3
+ * mainnet-beta. */
4
+ export type SolanaNetwork = "devnet" | "mainnet";
5
+ /** A Solana splitter v1.4 deployment, as recorded by the deploy scripts. */
6
+ export interface SolanaV14Deployment {
7
+ network: SolanaNetwork;
8
+ /** Which SDK environment this deployment belongs to: devnet is the dev
9
+ * target, mainnet is prod. */
10
+ environment: SdkEnvironment;
11
+ splitterVersion: "1.4";
12
+ /** Base58 on-chain program id, from the deploy log's "Canonical program ID
13
+ * confirmed" line. Never hardcoded in resolver logic — read from here. */
14
+ programId: string;
15
+ /** IDL metadata (Anchor), for callers that load the IDL. */
16
+ idl: {
17
+ name: string;
18
+ version: string;
19
+ /** Path of the source IDL artifact in solana-contract, for provenance. */
20
+ artifact: string;
21
+ };
22
+ }
23
+ /** Where this table came from, so a build can be traced to a commit. */
24
+ export declare const SOLANA_V14_DEPLOYMENTS_SOURCE: {
25
+ readonly repo: "AiFinPay/solana-contract";
26
+ readonly branch: "dev";
27
+ readonly commit: "8a13d10d6210cd37345f7ae6684068bf849e24b1";
28
+ readonly path: "deployments/splitter_v14/";
29
+ };
30
+ /** Solana v1.4 deployments, keyed by cluster. Devnet is dev-only; mainnet is
31
+ * prod-only. Absence of a cluster here means no v1.4 deployment for it. */
32
+ export declare const SOLANA_V14_DEPLOYMENTS: Record<string, SolanaV14Deployment>;
33
+ /** The single development cluster Solana v1.4 supports today. */
34
+ export declare const SOLANA_DEV_NETWORKS: readonly ["devnet"];
35
+ //# sourceMappingURL=solanaV14Deployments.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solanaV14Deployments.generated.d.ts","sourceRoot":"","sources":["../src/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;oBACoB;AACpB,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB;mCAC+B;IAC/B,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC;IACvB;+EAC2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,0EAA0E;QAC1E,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wEAAwE;AACxE,eAAO,MAAM,6BAA6B;;;;;CAKhC,CAAC;AAEX;4EAC4E;AAC5E,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAyBtE,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,qBAAsB,CAAC"}
@@ -0,0 +1,61 @@
1
+ // DO NOT EDIT BY HAND. Bundled copy of the Solana splitter v1.4 deployment
2
+ // artifacts from AiFinPay/solana-contract, so a shipped build resolves the
3
+ // Solana program id without a runtime GitHub fetch — the same discipline as
4
+ // v14Deployments.generated.ts (EVM) and splitterRoutes.generated.ts.
5
+ //
6
+ // Source: AiFinPay/solana-contract @ dev (commit
7
+ // 8a13d10d6210cd37345f7ae6684068bf849e24b1), files:
8
+ // deployments/splitter_v14/splitter.mainnet.20260910-170049.json (mainnet IDL)
9
+ // deployments/splitter_v14/splitter-mainnet-deploy-20260910-170049.log
10
+ // deployments/splitter_v14/splitter.devnet.20260910-143306.json (devnet IDL)
11
+ // deployments/splitter_v14/splitter-deploy-20260910-143306.log
12
+ //
13
+ // To refresh: read the same files off solana-contract's dev branch, e.g.
14
+ // git show origin/dev:deployments/splitter_v14/splitter.mainnet.<ts>.json
15
+ // and update the program ids below. Development deployments are, by design,
16
+ // devnet; production is mainnet-beta. The program id in each entry is the
17
+ // canonical program id confirmed in the deploy log for that cluster.
18
+ //
19
+ // NOTE ON FALLBACK: unlike EVM (which falls back v1.4 -> v1.2), Solana has NO
20
+ // v1.2-equivalent splitter to fall back to. The previous Solana program
21
+ // (5g9zWHF1Vv6GiGpA2ZbJQbSCDZd5hAk9AyvabRJvKFx2) was closed and removed from
22
+ // mainnet, and the SDK never bundled it — it takes the program id at runtime
23
+ // from the bridge's pay_solana challenge. So the Solana resolver offers v1.4
24
+ // only; "auto" resolves v1.4 and raises a typed no-deployment error where v1.4
25
+ // is absent rather than inventing a downgrade.
26
+ /** Where this table came from, so a build can be traced to a commit. */
27
+ export const SOLANA_V14_DEPLOYMENTS_SOURCE = {
28
+ repo: "AiFinPay/solana-contract",
29
+ branch: "dev",
30
+ commit: "8a13d10d6210cd37345f7ae6684068bf849e24b1",
31
+ path: "deployments/splitter_v14/",
32
+ };
33
+ /** Solana v1.4 deployments, keyed by cluster. Devnet is dev-only; mainnet is
34
+ * prod-only. Absence of a cluster here means no v1.4 deployment for it. */
35
+ export const SOLANA_V14_DEPLOYMENTS = {
36
+ devnet: {
37
+ network: "devnet",
38
+ environment: "dev",
39
+ splitterVersion: "1.4",
40
+ programId: "Dg9v95m6ofTwaU9V69PNAyRaKeELwxrne4THUYuUTeon",
41
+ idl: {
42
+ name: "splitter",
43
+ version: "1.4.1",
44
+ artifact: "deployments/splitter_v14/splitter.devnet.20260910-143306.json",
45
+ },
46
+ },
47
+ mainnet: {
48
+ network: "mainnet",
49
+ environment: "prod",
50
+ splitterVersion: "1.4",
51
+ programId: "8dty5bD738Z9TzEkDu8vLSnhpJNWtEGMUEcYaKCUTY6y",
52
+ idl: {
53
+ name: "splitter",
54
+ version: "1.4.1",
55
+ artifact: "deployments/splitter_v14/splitter.mainnet.20260910-170049.json",
56
+ },
57
+ },
58
+ };
59
+ /** The single development cluster Solana v1.4 supports today. */
60
+ export const SOLANA_DEV_NETWORKS = ["devnet"];
61
+ //# sourceMappingURL=solanaV14Deployments.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solanaV14Deployments.generated.js","sourceRoot":"","sources":["../src/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,iDAAiD;AACjD,oDAAoD;AACpD,kFAAkF;AAClF,yEAAyE;AACzE,iFAAiF;AACjF,iEAAiE;AACjE,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,+CAA+C;AA2B/C,wEAAwE;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,0CAA0C;IAClD,IAAI,EAAE,2BAA2B;CACzB,CAAC;AAEX;4EAC4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAwC;IACzE,MAAM,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,8CAA8C;QACzD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;YAChB,QAAQ,EACN,+DAA+D;SAClE;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,8CAA8C;QACzD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;YAChB,QAAQ,EACN,gEAAgE;SACnE;KACF;CACF,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { SplitterRouteDeployment, SplitterRouteKey } from "./splitterRoutes.js";
2
+ /** Where this table came from, so a deployed build can be traced to a commit. */
3
+ export declare const SPLITTER_REGISTRY_SOURCE: {
4
+ readonly repo: "AiFinPay/evm-contract";
5
+ readonly path: "registry/generated/splitter-table.json";
6
+ readonly commit: "64e245fd613e97f95195239238d6ac75484a8a21";
7
+ readonly artifactSha256: "36ee672b1deccd7b851460b459af26984ca07802477bc8c1e78018f5d5154827";
8
+ readonly schemaVersion: 4;
9
+ readonly registryUpdatedAt: "2026-08-30";
10
+ };
11
+ /**
12
+ * The governance Safe that owns every splitter below, and the exact signer
13
+ * shape it was verified under. Read from the chain by verify-registry.mjs, which
14
+ * compares the signer set and threshold exactly rather than as a floor.
15
+ */
16
+ export declare const SPLITTER_GOVERNANCE: {
17
+ readonly safe: "0xFd936f75D9221949f2FEaB54Cd342F7527154eD5";
18
+ readonly threshold: 3;
19
+ readonly owners: readonly ["0x2118c57dEBD53f614DDfE464Ff2941BE6646cA82", "0x3C31dd9daCeC5473cC9B660CD69247A20701cF19", "0x25A834b6fEC79e9ee6ED04Ef5b97440149C6Cc24", "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9", "0x849930eB20ED0a697c71BcE565f18702D202C0F8"];
20
+ };
21
+ export declare const SPLITTER_ROUTES: Record<SplitterRouteKey, SplitterRouteDeployment>;
22
+ //# sourceMappingURL=splitterRoutes.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitterRoutes.generated.d.ts","sourceRoot":"","sources":["../src/splitterRoutes.generated.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErF,iFAAiF;AACjF,eAAO,MAAM,wBAAwB;;;;;;;CAO3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;CAUtB,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAqa7E,CAAC"}