@aifinpay/agent 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/PAYMENT_RECEIPTS.md +49 -0
  2. package/README.md +11 -8
  3. package/dist/aifp1.d.ts +20 -2
  4. package/dist/aifp1.d.ts.map +1 -1
  5. package/dist/aifp1.js +130 -9
  6. package/dist/aifp1.js.map +1 -1
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +127 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/settlement.d.ts +2 -1
  16. package/dist/settlement.d.ts.map +1 -1
  17. package/dist/settlement.js +4 -0
  18. package/dist/settlement.js.map +1 -1
  19. package/dist/settlementV14.d.ts +22 -11
  20. package/dist/settlementV14.d.ts.map +1 -1
  21. package/dist/settlementV14.js +276 -11
  22. package/dist/settlementV14.js.map +1 -1
  23. package/dist/solanaV14Deployments.generated.d.ts +15 -5
  24. package/dist/solanaV14Deployments.generated.d.ts.map +1 -1
  25. package/dist/solanaV14Deployments.generated.js +54 -32
  26. package/dist/solanaV14Deployments.generated.js.map +1 -1
  27. package/dist/splitterRoutes.generated.d.ts +9 -11
  28. package/dist/splitterRoutes.generated.d.ts.map +1 -1
  29. package/dist/splitterRoutes.generated.js +21 -15
  30. package/dist/splitterRoutes.generated.js.map +1 -1
  31. package/dist/unifiedAgent.d.ts +7 -5
  32. package/dist/unifiedAgent.d.ts.map +1 -1
  33. package/dist/unifiedAgent.js +26 -12
  34. package/dist/unifiedAgent.js.map +1 -1
  35. package/dist/v14Deployments.generated.d.ts +19 -15
  36. package/dist/v14Deployments.generated.d.ts.map +1 -1
  37. package/dist/v14Deployments.generated.js +69 -393
  38. package/dist/v14Deployments.generated.js.map +1 -1
  39. package/package.json +2 -2
@@ -13,7 +13,9 @@
13
13
  * Responsibilities". Each check below cites the clause it implements, because
14
14
  * a check nobody can trace back to a requirement is a check somebody deletes.
15
15
  */
16
- import { keccak256, stringToHex, parseAbi } from "viem";
16
+ import { keccak256, stringToHex, parseAbi, encodeFunctionData, encodeAbiParameters, decodeEventLog, recoverTypedDataAddress, isAddress, } from "viem";
17
+ import { V14_DEPLOYMENTS } from "./generated/v14Deployments.generated.js";
18
+ import { SettlementConfirmationPendingError } from "./settlement.js";
17
19
  export class V14SettlementError extends Error {
18
20
  code;
19
21
  constructor(code, message) {
@@ -175,17 +177,280 @@ export async function checkV14Submittable(publicClient, call) {
175
177
  }
176
178
  return { submittable: true };
177
179
  }
180
+ const QUOTE_FIELDS = [
181
+ { name: "payer", type: "address" },
182
+ { name: "merchant", type: "address" },
183
+ { name: "token", type: "address" },
184
+ { name: "grossAmount", type: "uint256" },
185
+ { name: "ipCreator", type: "address" },
186
+ { name: "validUntil", type: "uint256" },
187
+ { name: "orderIdHash", type: "bytes32" },
188
+ { name: "nonce", type: "uint256" },
189
+ { name: "routeId", type: "bytes32" },
190
+ ];
191
+ const NATIVE_FUNCTION = "settleNative((address,address,address,uint256,address,uint256,bytes32,uint256,bytes32),bytes)";
192
+ const EXECUTION_ABI = parseAbi([
193
+ "event Payment(bytes32 indexed paymentId,address indexed payer,address indexed merchant,address token,uint256 grossAmount,uint256 merchantAmount,uint256 treasuryAmount,uint256 ipCreatorAmount,uint256 validUntil,bytes32 routeId,bytes32 orderIdHash)",
194
+ "function settleNative((address payer,address merchant,address token,uint256 grossAmount,address ipCreator,uint256 validUntil,bytes32 orderIdHash,uint256 nonce,bytes32 routeId) quote,bytes signature) payable",
195
+ "function profiles() view returns (address)",
196
+ "function tokenList() view returns (address)",
197
+ "function treasury() view returns (address)",
198
+ "function hasRole(bytes32,address) view returns (bool)",
199
+ ]);
200
+ const PROFILE_ABI = parseAbi([
201
+ "function getProfile(bytes32) view returns ((uint16 treasuryBps,uint16 ipCreatorBps,bool enabled,uint64 configuredAt,address routeTreasury))",
202
+ ]);
178
203
  /**
179
- * v1.4 signing is quarantined. Its current signed Quote omits mutable profile
180
- * fees and treasury. RPC preflight cannot bind those values at execution time.
181
- * Keep the exported API for callers to handle the refusal, but provide no
182
- * bypass: re-enabling requires a contract-bound economics commitment, reviewed
183
- * deployment/signer/token pins, approval handling and mined-success recovery.
184
- * Validation and nonce inspection above remain read-only diagnostics.
204
+ * Execute the existing v1.4 native ABI using independently pinned deployments.
205
+ * Profiles/treasury remain administratively mutable by the accepted v1.4 trust
206
+ * model; preflight checks their current values, not an immutable fee guarantee.
207
+ * All legacy calls lacking explicit purchase authorization remain disabled.
208
+ * Only local signing is supported so an exact transaction hash can be persisted
209
+ * before transmission, including when the RPC loses the broadcast response.
185
210
  */
186
- export async function executeV14Settlement(_call, _ctx) {
187
- throw new V14SettlementError("V14_SETTLEMENT_DISABLED", "v1.4 settlement is disabled: signed quotes do not bind mutable fees and treasury. " +
188
- "Use a separately reviewed v1.3 route or wait for the contract and SDK upgrade; " +
189
- "do not manually submit this quote or automatically fall back to another contract.");
211
+ export async function executeV14Settlement(call, ctx) {
212
+ const fail = (code, message) => {
213
+ throw new V14SettlementError(code, message);
214
+ };
215
+ if (!ctx.orderId ||
216
+ !ctx.expectedMerchant ||
217
+ typeof ctx.expectedGrossAmount !== "bigint" ||
218
+ ctx.expectedGrossAmount <= 0n ||
219
+ typeof ctx.maxGasWei !== "bigint" ||
220
+ ctx.maxGasWei <= 0n ||
221
+ typeof ctx.onPrepared !== "function" ||
222
+ ctx.skipPreflight) {
223
+ fail("V14_SETTLEMENT_DISABLED", "Native v1.4 execution requires an authorized order, merchant, exact gross, gas cap and durable prepared-transaction journal; preflight cannot be skipped.");
224
+ }
225
+ // Copy the untrusted call before awaiting: callers cannot change checked data
226
+ // while RPC requests are in flight.
227
+ call = structuredClone(call);
228
+ const q = call?.args?.quote;
229
+ if (!q)
230
+ fail("V14_MALFORMED", "missing quote");
231
+ for (const address of [call.contract, q.payer, q.merchant, q.token, q.ipCreator, ctx.account, ctx.expectedMerchant]) {
232
+ if (!address || !isAddress(address, { strict: false }))
233
+ fail("V14_MALFORMED", "invalid address");
234
+ }
235
+ for (const value of [q.grossAmount, q.validUntil, q.nonce, call.value_wei]) {
236
+ if (typeof value !== "string" || !/^(0|[1-9][0-9]*)$/.test(value) || BigInt(value) >= 2n ** 256n) {
237
+ fail("V14_MALFORMED", "invalid uint256");
238
+ }
239
+ }
240
+ if (!/^0x[0-9a-fA-F]{64}$/.test(q.orderIdHash) || !/^0x[0-9a-fA-F]{64}$/.test(q.routeId)) {
241
+ fail("V14_MALFORMED", "invalid bytes32");
242
+ }
243
+ if (ctx.minSecondsRemaining !== undefined &&
244
+ (!Number.isFinite(ctx.minSecondsRemaining) || ctx.minSecondsRemaining < 30)) {
245
+ fail("V14_MALFORMED", "expiry headroom must be at least 30 seconds");
246
+ }
247
+ const validated = validateV14SettlementCall(call, {
248
+ orderId: ctx.orderId,
249
+ payer: ctx.account,
250
+ minSecondsRemaining: ctx.minSecondsRemaining,
251
+ });
252
+ if (call.route !== validated.route ||
253
+ call.arg_encoding !== "struct+signature" ||
254
+ call.function !== NATIVE_FUNCTION ||
255
+ JSON.stringify(call.field_order) !== JSON.stringify(QUOTE_FIELDS.map((f) => f.name))) {
256
+ fail("V14_CALL_MISMATCH", "route, method or quote field order disagrees with the supported ABI");
257
+ }
258
+ if (lc(q.token) !== ZERO || call.asset !== "POL" || lc(q.ipCreator) !== ZERO) {
259
+ fail("V14_UNSUPPORTED_ASSET", "This executor supports native POL without creator payments only");
260
+ }
261
+ if (lc(q.merchant) === ZERO ||
262
+ lc(q.merchant) !== lc(ctx.expectedMerchant) ||
263
+ BigInt(q.grossAmount) !== ctx.expectedGrossAmount) {
264
+ fail("V14_PURCHASE_MISMATCH", "signed merchant or gross does not match the authorized purchase");
265
+ }
266
+ if (call.nonce_at_signing !== undefined && call.nonce_at_signing !== q.nonce)
267
+ fail("V14_MALFORMED", "nonce metadata disagrees with signed quote");
268
+ const deployment = V14_DEPLOYMENTS[call.chain];
269
+ if (!["polygon", "amoy"].includes(call.chain) ||
270
+ !deployment ||
271
+ deployment.status !== "enabled" ||
272
+ !deployment.settlementEnabled ||
273
+ lc(call.contract) !== lc(deployment.splitter.address)) {
274
+ fail("V14_UNTRUSTED_DEPLOYMENT", "settlement target is not an enabled pinned native deployment");
275
+ }
276
+ const { publicClient, walletClient } = ctx;
277
+ const account = walletClient.account;
278
+ if (!account || account.type !== "local" || lc(account.address) !== lc(ctx.account) || !account.signTransaction) {
279
+ fail("V14_LOCAL_SIGNER_REQUIRED", "A matching local signer is required for recoverable broadcast");
280
+ }
281
+ const [rpcChain, walletChain, code] = await Promise.all([
282
+ publicClient.getChainId(),
283
+ walletClient.getChainId(),
284
+ publicClient.getBytecode({ address: call.contract }),
285
+ ]);
286
+ if (rpcChain !== deployment.chainId ||
287
+ walletChain !== deployment.chainId ||
288
+ (walletClient.chain && walletClient.chain.id !== deployment.chainId))
289
+ fail("V14_CHAIN_MISMATCH", "wallet or RPC chain differs from pinned deployment");
290
+ if (!code || code === "0x" || keccak256(code) !== deployment.runtimeCodeHash)
291
+ fail("V14_RUNTIME_MISMATCH", "splitter bytecode does not match independently pinned runtime");
292
+ const message = {
293
+ ...q,
294
+ grossAmount: BigInt(q.grossAmount),
295
+ validUntil: BigInt(q.validUntil),
296
+ nonce: BigInt(q.nonce),
297
+ };
298
+ let signer;
299
+ try {
300
+ signer = await recoverTypedDataAddress({
301
+ domain: {
302
+ name: "B2BSplitterV14",
303
+ version: "1",
304
+ chainId: deployment.chainId,
305
+ verifyingContract: deployment.splitter.address,
306
+ },
307
+ types: { Quote: QUOTE_FIELDS },
308
+ primaryType: "Quote",
309
+ message,
310
+ signature: call.args.signature,
311
+ });
312
+ }
313
+ catch {
314
+ fail("V14_BAD_SIGNATURE", "quote signature cannot be recovered");
315
+ }
316
+ if (lc(signer) !== lc(deployment.splitter.signer))
317
+ fail("V14_UNTRUSTED_SIGNER", "quote signer does not match independent deployment pin");
318
+ const [profiles, tokenList, treasury, signerHasRole, profile, preflight] = await Promise.all([
319
+ publicClient.readContract({ address: call.contract, abi: EXECUTION_ABI, functionName: "profiles" }),
320
+ publicClient.readContract({ address: call.contract, abi: EXECUTION_ABI, functionName: "tokenList" }),
321
+ publicClient.readContract({ address: call.contract, abi: EXECUTION_ABI, functionName: "treasury" }),
322
+ publicClient.readContract({
323
+ address: call.contract,
324
+ abi: EXECUTION_ABI,
325
+ functionName: "hasRole",
326
+ args: [keccak256(stringToHex("SIGN_OPERATOR_ROLE")), deployment.splitter.signer],
327
+ }),
328
+ publicClient.readContract({
329
+ address: deployment.splitter.profiles,
330
+ abi: PROFILE_ABI,
331
+ functionName: "getProfile",
332
+ args: [q.routeId],
333
+ }),
334
+ checkV14Submittable(publicClient, call),
335
+ ]);
336
+ if (lc(profiles) !== lc(deployment.splitter.profiles) ||
337
+ lc(tokenList) !== lc(deployment.splitter.tokenList) ||
338
+ lc(treasury) !== lc(deployment.splitter.treasury) ||
339
+ !signerHasRole)
340
+ fail("V14_DEPLOYMENT_STATE_MISMATCH", "satellite, treasury or signer role differs from deployment pin");
341
+ const effectiveTreasury = lc(profile.routeTreasury) === ZERO ? treasury : profile.routeTreasury;
342
+ if (!profile.enabled ||
343
+ profile.treasuryBps !== (validated.route === "merchant-aifp1" ? 100 : 0) ||
344
+ profile.ipCreatorBps !== 0 ||
345
+ lc(effectiveTreasury) !== lc(deployment.splitter.treasury)) {
346
+ fail("V14_PROFILE_MISMATCH", "current profile differs from accepted route economics");
347
+ }
348
+ if (!preflight.submittable)
349
+ fail(preflight.code, preflight.reason);
350
+ const args = [message, call.args.signature];
351
+ await publicClient.simulateContract({
352
+ address: call.contract,
353
+ abi: EXECUTION_ABI,
354
+ functionName: "settleNative",
355
+ args,
356
+ account: ctx.account,
357
+ value: message.grossAmount,
358
+ });
359
+ const data = encodeFunctionData({ abi: EXECUTION_ABI, functionName: "settleNative", args });
360
+ const [estimatedGas, fees, nonce, balance] = await Promise.all([
361
+ publicClient.estimateGas({ account: ctx.account, to: call.contract, data, value: message.grossAmount }),
362
+ publicClient.estimateFeesPerGas({ type: "eip1559", chain: publicClient.chain }),
363
+ publicClient.getTransactionCount({ address: ctx.account, blockTag: "pending" }),
364
+ publicClient.getBalance({ address: ctx.account, blockTag: "pending" }),
365
+ ]);
366
+ const gas = (estimatedGas * 120n + 99n) / 100n;
367
+ if (gas <= 0n ||
368
+ fees.maxFeePerGas <= 0n ||
369
+ fees.maxPriorityFeePerGas < 0n ||
370
+ fees.maxPriorityFeePerGas > fees.maxFeePerGas ||
371
+ gas * fees.maxFeePerGas > ctx.maxGasWei) {
372
+ fail("V14_GAS_BUDGET_EXCEEDED", "estimated maximum transaction fee exceeds the operator gas budget");
373
+ }
374
+ if (balance < message.grossAmount + gas * fees.maxFeePerGas)
375
+ fail("V14_INSUFFICIENT_BALANCE", "balance cannot cover authorized gross and maximum gas");
376
+ // Check deadline again after slow RPCs, before signing or persisting anything.
377
+ validateV14SettlementCall(call, {
378
+ orderId: ctx.orderId,
379
+ payer: ctx.account,
380
+ minSecondsRemaining: ctx.minSecondsRemaining,
381
+ });
382
+ const serializedTransaction = await account.signTransaction({
383
+ type: "eip1559",
384
+ chainId: deployment.chainId,
385
+ to: call.contract,
386
+ value: message.grossAmount,
387
+ data,
388
+ gas,
389
+ maxFeePerGas: fees.maxFeePerGas,
390
+ maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
391
+ nonce,
392
+ });
393
+ const hash = keccak256(serializedTransaction);
394
+ await ctx.onPrepared({ hash, serializedTransaction });
395
+ // Once transmission is attempted every unknown result refers to this exact
396
+ // signed transaction. A caller must recover it, never request a new quote.
397
+ try {
398
+ const returnedHash = await publicClient.sendRawTransaction({ serializedTransaction });
399
+ if (lc(returnedHash) !== lc(hash))
400
+ throw new Error("RPC returned a different transaction hash");
401
+ }
402
+ catch {
403
+ throw new SettlementConfirmationPendingError(hash, "settlement");
404
+ }
405
+ let receipt;
406
+ try {
407
+ receipt = await publicClient.waitForTransactionReceipt({ hash, confirmations: 1 });
408
+ }
409
+ catch {
410
+ throw new SettlementConfirmationPendingError(hash, "settlement");
411
+ }
412
+ if (lc(receipt.transactionHash) !== lc(hash))
413
+ throw new SettlementConfirmationPendingError(hash, "settlement");
414
+ if (receipt.status !== "success" && receipt.status !== "reverted")
415
+ throw new SettlementConfirmationPendingError(hash, "settlement");
416
+ if (receipt.status === "reverted")
417
+ fail("V14_TRANSACTION_REVERTED", `transaction ${hash} reverted; gas may have been charged`);
418
+ const paymentId = keccak256(encodeAbiParameters(QUOTE_FIELDS, [
419
+ q.payer,
420
+ q.merchant,
421
+ q.token,
422
+ message.grossAmount,
423
+ q.ipCreator,
424
+ message.validUntil,
425
+ q.orderIdHash,
426
+ message.nonce,
427
+ q.routeId,
428
+ ]));
429
+ const payment = receipt.logs
430
+ .filter((log) => lc(log.address) === lc(call.contract))
431
+ .flatMap((log) => {
432
+ try {
433
+ const event = decodeEventLog({ abi: EXECUTION_ABI, data: log.data, topics: log.topics });
434
+ return event.eventName === "Payment" ? [event.args] : [];
435
+ }
436
+ catch {
437
+ return [];
438
+ }
439
+ });
440
+ if (payment.length !== 1 ||
441
+ !payment.some((p) => lc(p.paymentId) === lc(paymentId) &&
442
+ lc(p.payer) === lc(q.payer) &&
443
+ lc(p.merchant) === lc(q.merchant) &&
444
+ lc(p.token) === ZERO &&
445
+ p.grossAmount === message.grossAmount &&
446
+ p.validUntil === message.validUntil &&
447
+ lc(p.routeId) === lc(q.routeId) &&
448
+ lc(p.orderIdHash) === lc(q.orderIdHash) &&
449
+ p.merchantAmount + p.treasuryAmount + p.ipCreatorAmount === message.grossAmount)) {
450
+ // Confirmation exists but payment evidence is inconclusive; retain the
451
+ // prepared hash and prevent the purchase layer from starting another payment.
452
+ throw new SettlementConfirmationPendingError(hash, "settlement");
453
+ }
454
+ return { hash, route: validated.route };
190
455
  }
191
456
  //# sourceMappingURL=settlementV14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settlementV14.js","sourceRoot":"","sources":["../src/settlementV14.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settlementV14.js","sourceRoot":"","sources":["../src/settlementV14.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,35 @@
1
1
  import type { SdkEnvironment } from "./deploymentResolver.js";
2
+ /** Solana clusters the resolver understands. `dev` maps to devnet, `prod` to
3
+ * mainnet-beta. */
2
4
  export type SolanaNetwork = "devnet" | "mainnet";
5
+ /** A Solana splitter v1.4 deployment, as recorded by the deploy scripts. */
3
6
  export interface SolanaV14Deployment {
4
7
  network: SolanaNetwork;
8
+ /** Which SDK environment this deployment belongs to: devnet is the dev
9
+ * target, mainnet is prod. */
5
10
  environment: SdkEnvironment;
6
11
  splitterVersion: "1.4";
7
- status: "enabled" | "disabled" | "invalid" | "retired";
8
- settlementEnabled: boolean;
9
- disabledReason?: string;
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. */
10
14
  programId: string;
15
+ /** IDL metadata (Anchor), for callers that load the IDL. */
11
16
  idl: {
12
17
  name: string;
13
18
  version: string;
19
+ /** Path of the source IDL artifact in solana-contract, for provenance. */
14
20
  artifact: string;
15
21
  };
16
22
  }
23
+ /** Where this table came from, so a build can be traced to a commit. */
17
24
  export declare const SOLANA_V14_DEPLOYMENTS_SOURCE: {
18
25
  readonly repo: "AiFinPay/solana-contract";
19
- readonly commit: "e5df8f5436cf646ab495381eee04e0d1a10b4e2f";
20
- readonly path: "deployments/splitter_v14/";
21
26
  readonly branch: "dev";
27
+ readonly commit: "8a13d10d6210cd37345f7ae6684068bf849e24b1";
28
+ readonly path: "deployments/splitter_v14/";
22
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. */
23
32
  export declare const SOLANA_V14_DEPLOYMENTS: Record<string, SolanaV14Deployment>;
33
+ /** The single development cluster Solana v1.4 supports today. */
24
34
  export declare const SOLANA_DEV_NETWORKS: readonly ["devnet"];
25
35
  //# sourceMappingURL=solanaV14Deployments.generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaV14Deployments.generated.d.ts","sourceRoot":"","sources":["../src/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,eAAO,MAAM,6BAA6B;;;;;CAKhC,CAAC;AAEX,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CA6BtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,qBAAsB,CAAC"}
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"}
@@ -1,39 +1,61 @@
1
- // DO NOT EDIT. Generated by scripts/generate-payment-deployments.mjs from @aifinpay/deployments.
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. */
2
27
  export const SOLANA_V14_DEPLOYMENTS_SOURCE = {
3
- "repo": "AiFinPay/solana-contract",
4
- "commit": "e5df8f5436cf646ab495381eee04e0d1a10b4e2f",
5
- "path": "deployments/splitter_v14/",
6
- "branch": "dev"
28
+ repo: "AiFinPay/solana-contract",
29
+ branch: "dev",
30
+ commit: "8a13d10d6210cd37345f7ae6684068bf849e24b1",
31
+ path: "deployments/splitter_v14/",
7
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. */
8
35
  export const SOLANA_V14_DEPLOYMENTS = {
9
- "devnet": {
10
- "network": "devnet",
11
- "environment": "dev",
12
- "splitterVersion": "1.4",
13
- "status": "disabled",
14
- "settlementEnabled": false,
15
- "disabledReason": "Backend Solana receipt verification is not implemented",
16
- "programId": "8dty5bD738Z9TzEkDu8vLSnhpJNWtEGMUEcYaKCUTY6y",
17
- "idl": {
18
- "name": "splitter",
19
- "version": "1.4.1",
20
- "artifact": "deployments/splitter_v14/splitter.devnet.json"
21
- }
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
+ },
22
57
  },
23
- "mainnet": {
24
- "network": "mainnet",
25
- "environment": "prod",
26
- "splitterVersion": "1.4",
27
- "status": "disabled",
28
- "settlementEnabled": false,
29
- "disabledReason": "Backend Solana receipt verification is not implemented and upgrade authority is not multisig",
30
- "programId": "724Ut31i4ecY4dJ25z8HuZetu3A43xtNkPdk4JdbsfdD",
31
- "idl": {
32
- "name": "splitter",
33
- "version": "1.4.1",
34
- "artifact": "deployments/splitter_v14/splitter.mainnet.json"
35
- }
36
- }
37
58
  };
59
+ /** The single development cluster Solana v1.4 supports today. */
38
60
  export const SOLANA_DEV_NETWORKS = ["devnet"];
39
61
  //# sourceMappingURL=solanaV14Deployments.generated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaV14Deployments.generated.js","sourceRoot":"","sources":["../src/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAiBjG,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM,EAAE,0BAA0B;IAClC,QAAQ,EAAE,0CAA0C;IACpD,MAAM,EAAE,2BAA2B;IACnC,QAAQ,EAAE,KAAK;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAwC;IACzE,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,UAAU;QACpB,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,wDAAwD;QAC1E,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,+CAA+C;SAC5D;KACF;IACD,SAAS,EAAE;QACT,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,MAAM;QACrB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,UAAU;QACpB,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,8FAA8F;QAChH,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,gDAAgD;SAC7D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC"}
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"}
@@ -1,19 +1,17 @@
1
1
  import type { SplitterRouteDeployment, SplitterRouteKey } from "./splitterRoutes.js";
2
- /** Where this table came from, so a deployed build can be traced to its source. */
2
+ /** Where this table came from, so a deployed build can be traced to a commit. */
3
3
  export declare const SPLITTER_REGISTRY_SOURCE: {
4
- readonly package: "@aifinpay/deployments";
5
- readonly path: "registry/splitter/evm/v1.3/deployments.json";
6
- readonly version: "1.3";
7
- readonly description: "B2BSplitter v1.3 — Protocol routes with immutable fee splits";
8
- readonly generatedAt: "2026-08-30";
9
- readonly policyWindow: {
10
- readonly validFrom: "2026-08-27T00:00:00.000Z";
11
- readonly validUntil: "2026-11-25T00:00:00.000Z";
12
- };
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";
13
10
  };
14
11
  /**
15
12
  * The governance Safe that owns every splitter below, and the exact signer
16
- * shape it was verified under. Read from the source registry.
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.
17
15
  */
18
16
  export declare const SPLITTER_GOVERNANCE: {
19
17
  readonly safe: "0xFd936f75D9221949f2FEaB54Cd342F7527154eD5";
@@ -1 +1 @@
1
- {"version":3,"file":"splitterRoutes.generated.d.ts","sourceRoot":"","sources":["../src/splitterRoutes.generated.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErF,mFAAmF;AACnF,eAAO,MAAM,wBAAwB;;;;;;;;;;CAO3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;CAUtB,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAqa7E,CAAC"}
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"}
@@ -1,21 +1,27 @@
1
1
  // DO NOT EDIT. Generated by scripts/generate-splitter-routes.mjs from
2
- // @aifinpay/deployments/registry/splitter/evm/v1.3/deployments.json.
3
- // CI regenerates this file and fails on any difference, so a hand-edited
4
- // payout address turns the build red instead of shipping.
2
+ // registry/splitter-table.json, a byte-for-byte copy of the canonical registry
3
+ // artifact in AiFinPay/evm-contract. CI regenerates this file and fails on any
4
+ // difference, so a hand-edited payout address turns the build red instead of
5
+ // shipping.
6
+ //
7
+ // To change anything here: change registry/registry.json in evm-contract, let
8
+ // verify-registry.mjs read it back off the chain, then run
9
+ // npm run registry:sync -- --from <path-to-evm-contract>
5
10
  import { arbitrum, avalanche, base, bsc, optimism, polygon, polygonAmoy, unichain } from "viem/chains";
6
11
  import { botchain, xrplevm } from "./chains.js";
7
- /** Where this table came from, so a deployed build can be traced to its source. */
12
+ /** Where this table came from, so a deployed build can be traced to a commit. */
8
13
  export const SPLITTER_REGISTRY_SOURCE = {
9
- package: "@aifinpay/deployments",
10
- path: "registry/splitter/evm/v1.3/deployments.json",
11
- version: "1.3",
12
- description: "B2BSplitter v1.3 — Protocol routes with immutable fee splits",
13
- generatedAt: "2026-08-30",
14
- policyWindow: { "validFrom": "2026-08-27T00:00:00.000Z", "validUntil": "2026-11-25T00:00:00.000Z" },
14
+ repo: "AiFinPay/evm-contract",
15
+ path: "registry/generated/splitter-table.json",
16
+ commit: "64e245fd613e97f95195239238d6ac75484a8a21",
17
+ artifactSha256: "36ee672b1deccd7b851460b459af26984ca07802477bc8c1e78018f5d5154827",
18
+ schemaVersion: 4,
19
+ registryUpdatedAt: "2026-08-30",
15
20
  };
16
21
  /**
17
22
  * The governance Safe that owns every splitter below, and the exact signer
18
- * shape it was verified under. Read from the source registry.
23
+ * shape it was verified under. Read from the chain by verify-registry.mjs, which
24
+ * compares the signer set and threshold exactly rather than as a floor.
19
25
  */
20
26
  export const SPLITTER_GOVERNANCE = {
21
27
  safe: "0xFd936f75D9221949f2FEaB54Cd342F7527154eD5",
@@ -44,8 +50,8 @@ export const SPLITTER_ROUTES = {
44
50
  testnet: true,
45
51
  rpcQuorum: 2,
46
52
  stablecoins: { "USDC": "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582", "USDT": null },
47
- validFrom: "2026-08-27T00:00:00.000Z",
48
- validUntil: "2026-11-25T00:00:00.000Z",
53
+ validFrom: "2026-08-29T00:00:00.000Z",
54
+ validUntil: "2026-11-27T00:00:00.000Z",
49
55
  defaultRpc: "https://rpc-amoy.polygon.technology",
50
56
  explorer: "https://amoy.polygonscan.com",
51
57
  verifiedAt: "2026-08-30",
@@ -65,8 +71,8 @@ export const SPLITTER_ROUTES = {
65
71
  testnet: true,
66
72
  rpcQuorum: 2,
67
73
  stablecoins: { "USDC": "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582", "USDT": null },
68
- validFrom: "2026-08-27T00:00:00.000Z",
69
- validUntil: "2026-11-25T00:00:00.000Z",
74
+ validFrom: "2026-08-29T00:00:00.000Z",
75
+ validUntil: "2026-11-27T00:00:00.000Z",
70
76
  defaultRpc: "https://rpc-amoy.polygon.technology",
71
77
  explorer: "https://amoy.polygonscan.com",
72
78
  verifiedAt: "2026-08-29",