@aifinpay/agent 2.0.0-rc.8 → 2.0.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.
Files changed (121) hide show
  1. package/LICENSE +21 -0
  2. package/PAYMENT_RECEIPTS.md +114 -0
  3. package/README.md +85 -28
  4. package/dist/agent.d.ts +8 -1
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +50 -17
  7. package/dist/agent.js.map +1 -1
  8. package/dist/agentHistory.d.ts +55 -0
  9. package/dist/agentHistory.d.ts.map +1 -0
  10. package/dist/agentHistory.js +145 -0
  11. package/dist/agentHistory.js.map +1 -0
  12. package/dist/agentPassport.d.ts +71 -7
  13. package/dist/agentPassport.d.ts.map +1 -1
  14. package/dist/agentPassport.js +135 -27
  15. package/dist/agentPassport.js.map +1 -1
  16. package/dist/aifp1.d.ts +94 -5
  17. package/dist/aifp1.d.ts.map +1 -1
  18. package/dist/aifp1.js +370 -114
  19. package/dist/aifp1.js.map +1 -1
  20. package/dist/apiUrl.d.ts +3 -0
  21. package/dist/apiUrl.d.ts.map +1 -0
  22. package/dist/apiUrl.js +8 -0
  23. package/dist/apiUrl.js.map +1 -0
  24. package/dist/chains.d.ts +7 -0
  25. package/dist/chains.d.ts.map +1 -1
  26. package/dist/chains.js +19 -1
  27. package/dist/chains.js.map +1 -1
  28. package/dist/crossChain.d.ts.map +1 -1
  29. package/dist/crossChain.js.map +1 -1
  30. package/dist/crypto.d.ts.map +1 -1
  31. package/dist/crypto.js.map +1 -1
  32. package/dist/deploymentResolver.d.ts +95 -0
  33. package/dist/deploymentResolver.d.ts.map +1 -0
  34. package/dist/deploymentResolver.js +169 -0
  35. package/dist/deploymentResolver.js.map +1 -0
  36. package/dist/errors.d.ts +17 -0
  37. package/dist/errors.d.ts.map +1 -1
  38. package/dist/errors.js +14 -0
  39. package/dist/errors.js.map +1 -1
  40. package/dist/facilitators/aifinpay.d.ts +4 -5
  41. package/dist/facilitators/aifinpay.d.ts.map +1 -1
  42. package/dist/facilitators/aifinpay.js +50 -21
  43. package/dist/facilitators/aifinpay.js.map +1 -1
  44. package/dist/facilitators/base.d.ts +12 -1
  45. package/dist/facilitators/base.d.ts.map +1 -1
  46. package/dist/facilitators/coinbase.d.ts.map +1 -1
  47. package/dist/facilitators/coinbase.js +3 -7
  48. package/dist/facilitators/coinbase.js.map +1 -1
  49. package/dist/facilitators/detect.d.ts.map +1 -1
  50. package/dist/facilitators/detect.js +2 -7
  51. package/dist/facilitators/detect.js.map +1 -1
  52. package/dist/facilitators/standard-x402.d.ts.map +1 -1
  53. package/dist/facilitators/standard-x402.js +40 -30
  54. package/dist/facilitators/standard-x402.js.map +1 -1
  55. package/dist/generated/solanaV14Deployments.generated.d.ts +25 -0
  56. package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -0
  57. package/dist/generated/solanaV14Deployments.generated.js +39 -0
  58. package/dist/generated/solanaV14Deployments.generated.js.map +1 -0
  59. package/dist/generated/splitterRoutes.generated.d.ts +24 -0
  60. package/dist/generated/splitterRoutes.generated.d.ts.map +1 -0
  61. package/dist/generated/splitterRoutes.generated.js +453 -0
  62. package/dist/generated/splitterRoutes.generated.js.map +1 -0
  63. package/dist/generated/v14Deployments.generated.d.ts +49 -0
  64. package/dist/generated/v14Deployments.generated.d.ts.map +1 -0
  65. package/dist/generated/v14Deployments.generated.js +415 -0
  66. package/dist/generated/v14Deployments.generated.js.map +1 -0
  67. package/dist/index.d.ts +27 -13
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +16 -7
  70. package/dist/index.js.map +1 -1
  71. package/dist/localIdentity.d.ts +17 -0
  72. package/dist/localIdentity.d.ts.map +1 -0
  73. package/dist/localIdentity.js +95 -0
  74. package/dist/localIdentity.js.map +1 -0
  75. package/dist/settlement.d.ts +34 -4
  76. package/dist/settlement.d.ts.map +1 -1
  77. package/dist/settlement.js +233 -75
  78. package/dist/settlement.js.map +1 -1
  79. package/dist/settlementHttp.d.ts +10 -0
  80. package/dist/settlementHttp.d.ts.map +1 -0
  81. package/dist/settlementHttp.js +78 -0
  82. package/dist/settlementHttp.js.map +1 -0
  83. package/dist/settlementV14.d.ts +10 -9
  84. package/dist/settlementV14.d.ts.map +1 -1
  85. package/dist/settlementV14.js +43 -55
  86. package/dist/settlementV14.js.map +1 -1
  87. package/dist/solanaDeploymentResolver.d.ts +98 -0
  88. package/dist/solanaDeploymentResolver.d.ts.map +1 -0
  89. package/dist/solanaDeploymentResolver.js +162 -0
  90. package/dist/solanaDeploymentResolver.js.map +1 -0
  91. package/dist/solanaV14Deployments.generated.d.ts +25 -0
  92. package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
  93. package/dist/solanaV14Deployments.generated.js +39 -0
  94. package/dist/solanaV14Deployments.generated.js.map +1 -0
  95. package/dist/spendLedger.d.ts.map +1 -1
  96. package/dist/spendLedger.js +1 -3
  97. package/dist/spendLedger.js.map +1 -1
  98. package/dist/splitterRoutes.d.ts +11 -4
  99. package/dist/splitterRoutes.d.ts.map +1 -1
  100. package/dist/splitterRoutes.generated.d.ts +11 -9
  101. package/dist/splitterRoutes.generated.d.ts.map +1 -1
  102. package/dist/splitterRoutes.generated.js +72 -18
  103. package/dist/splitterRoutes.generated.js.map +1 -1
  104. package/dist/splitterRoutes.js +7 -5
  105. package/dist/splitterRoutes.js.map +1 -1
  106. package/dist/unifiedAgent.d.ts +96 -28
  107. package/dist/unifiedAgent.d.ts.map +1 -1
  108. package/dist/unifiedAgent.js +219 -348
  109. package/dist/unifiedAgent.js.map +1 -1
  110. package/dist/v14Deployments.generated.d.ts +49 -0
  111. package/dist/v14Deployments.generated.d.ts.map +1 -0
  112. package/dist/v14Deployments.generated.js +413 -0
  113. package/dist/v14Deployments.generated.js.map +1 -0
  114. package/dist/wallet.d.ts.map +1 -1
  115. package/dist/wallet.js +2 -2
  116. package/dist/wallet.js.map +1 -1
  117. package/package.json +27 -6
  118. package/dist/cli.d.ts +0 -3
  119. package/dist/cli.d.ts.map +0 -1
  120. package/dist/cli.js +0 -127
  121. package/dist/cli.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import { keccak256, } from "viem";
1
+ import { keccak256, stringToHex } from "viem";
2
+ import { settlementHttp } from "./settlementHttp.js";
2
3
  export class SettlementProtocolError extends Error {
3
4
  code;
4
5
  constructor(message, code = "settlement_protocol_error") {
@@ -7,7 +8,20 @@ export class SettlementProtocolError extends Error {
7
8
  this.name = "SettlementProtocolError";
8
9
  }
9
10
  }
11
+ /** Broadcast succeeded but confirmation is unknown. Keep this hash and check
12
+ * it before retrying; a timeout is not evidence that no money moved. */
13
+ export class SettlementConfirmationPendingError extends SettlementProtocolError {
14
+ txHash;
15
+ stage;
16
+ constructor(txHash, stage) {
17
+ super(`transaction ${txHash} was broadcast but confirmation is unavailable; recover this transaction before retrying`, "confirmation_pending");
18
+ this.txHash = txHash;
19
+ this.stage = stage;
20
+ this.name = "SettlementConfirmationPendingError";
21
+ }
22
+ }
10
23
  const CHAIN_IDS = {
24
+ amoy: 80002,
11
25
  polygon: 137,
12
26
  avalanche: 43114,
13
27
  arbitrum: 42161,
@@ -15,9 +29,23 @@ const CHAIN_IDS = {
15
29
  base: 8453,
16
30
  unichain: 130,
17
31
  optimism: 10,
32
+ /** @deprecated BOT Chain (chainId: 677) is deprecated. Use robinhood (chainId: 4663) instead. */
18
33
  botchain: 677,
19
34
  xrplevm: 1440000,
20
35
  };
36
+ const NATIVE_ASSETS = {
37
+ polygon: "POL",
38
+ amoy: "POL",
39
+ avalanche: "AVAX",
40
+ arbitrum: "ETH",
41
+ bnb: "BNB",
42
+ base: "ETH",
43
+ unichain: "ETH",
44
+ optimism: "ETH",
45
+ /** @deprecated BOT Chain is deprecated. Use robinhood instead. */
46
+ botchain: "BOT",
47
+ xrplevm: "XRP",
48
+ };
21
49
  const EXPECTED_BPS = {
22
50
  "AIFP-1": { treasury: 100, creator: 0 },
23
51
  "AIFP-2": { treasury: 0, creator: 0 },
@@ -27,37 +55,85 @@ const ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
27
55
  const HASH_RE = /^0x[0-9a-fA-F]{64}$/;
28
56
  const lc = (value) => value.toLowerCase();
29
57
  const PROFILE_ABI = [
30
- { type: "function", name: "treasuryBps", stateMutability: "view", inputs: [], outputs: [{ type: "uint256" }] },
31
- { type: "function", name: "ipCreatorBps", stateMutability: "view", inputs: [], outputs: [{ type: "uint256" }] },
58
+ {
59
+ type: "function",
60
+ name: "treasuryBps",
61
+ stateMutability: "view",
62
+ inputs: [],
63
+ outputs: [{ type: "uint256" }],
64
+ },
65
+ {
66
+ type: "function",
67
+ name: "ipCreatorBps",
68
+ stateMutability: "view",
69
+ inputs: [],
70
+ outputs: [{ type: "uint256" }],
71
+ },
32
72
  ];
33
73
  const V13_ABI = [
34
74
  {
35
- type: "function", name: "payNative", stateMutability: "payable",
75
+ type: "function",
76
+ name: "payNative",
77
+ stateMutability: "payable",
36
78
  inputs: [
37
- { type: "bytes32", name: "paymentId" },
38
- { type: "address", name: "merchant" },
39
- { type: "uint256", name: "grossAmount" },
40
- { type: "address", name: "ipCreator" },
41
- { type: "uint256", name: "validUntil" },
42
- { type: "string", name: "orderId" },
43
- ], outputs: [],
79
+ {
80
+ type: "tuple",
81
+ name: "p",
82
+ components: [
83
+ { type: "bytes32", name: "paymentId" },
84
+ { type: "address", name: "merchant" },
85
+ { type: "uint256", name: "grossAmount" },
86
+ { type: "address", name: "ipCreator" },
87
+ { type: "uint256", name: "validUntil" },
88
+ { type: "string", name: "orderId" },
89
+ ],
90
+ },
91
+ ],
92
+ outputs: [],
44
93
  },
45
94
  {
46
- type: "function", name: "payStable", stateMutability: "nonpayable",
95
+ type: "function",
96
+ name: "payStable",
97
+ stateMutability: "nonpayable",
47
98
  inputs: [
48
- { type: "bytes32", name: "paymentId" },
49
- { type: "address", name: "token" },
50
- { type: "uint256", name: "grossAmount" },
51
- { type: "address", name: "merchant" },
52
- { type: "address", name: "ipCreator" },
53
- { type: "uint256", name: "validUntil" },
54
- { type: "string", name: "orderId" },
55
- ], outputs: [],
99
+ {
100
+ type: "tuple",
101
+ name: "p",
102
+ components: [
103
+ { type: "bytes32", name: "paymentId" },
104
+ { type: "address", name: "token" },
105
+ { type: "uint256", name: "grossAmount" },
106
+ { type: "address", name: "merchant" },
107
+ { type: "address", name: "ipCreator" },
108
+ { type: "uint256", name: "validUntil" },
109
+ { type: "string", name: "orderId" },
110
+ ],
111
+ },
112
+ ],
113
+ outputs: [],
56
114
  },
57
115
  ];
58
116
  const ERC20_ABI = [
59
- { type: "function", name: "allowance", stateMutability: "view", inputs: [{ type: "address", name: "owner" }, { type: "address", name: "spender" }], outputs: [{ type: "uint256" }] },
60
- { type: "function", name: "approve", stateMutability: "nonpayable", inputs: [{ type: "address", name: "spender" }, { type: "uint256", name: "amount" }], outputs: [{ type: "bool" }] },
117
+ {
118
+ type: "function",
119
+ name: "allowance",
120
+ stateMutability: "view",
121
+ inputs: [
122
+ { type: "address", name: "owner" },
123
+ { type: "address", name: "spender" },
124
+ ],
125
+ outputs: [{ type: "uint256" }],
126
+ },
127
+ {
128
+ type: "function",
129
+ name: "approve",
130
+ stateMutability: "nonpayable",
131
+ inputs: [
132
+ { type: "address", name: "spender" },
133
+ { type: "uint256", name: "amount" },
134
+ ],
135
+ outputs: [{ type: "bool" }],
136
+ },
61
137
  ];
62
138
  function asJsonRecord(value) {
63
139
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -65,19 +141,22 @@ function asJsonRecord(value) {
65
141
  }
66
142
  return value;
67
143
  }
68
- async function responseJson(response) {
144
+ function responseJson(response, text) {
69
145
  let json;
70
146
  try {
71
- json = await response.json();
147
+ json = JSON.parse(text);
72
148
  }
73
149
  catch {
74
150
  throw new SettlementProtocolError(`settlement API ${response.status}: non-JSON response`);
75
151
  }
76
152
  const rec = asJsonRecord(json);
77
153
  if (!response.ok) {
78
- const detail = typeof rec.detail === "string" ? rec.detail
79
- : typeof rec.reason === "string" ? rec.reason
80
- : typeof rec.error === "string" ? rec.error
154
+ const detail = typeof rec.detail === "string"
155
+ ? rec.detail
156
+ : typeof rec.reason === "string"
157
+ ? rec.reason
158
+ : typeof rec.error === "string"
159
+ ? rec.error
81
160
  : `HTTP ${response.status}`;
82
161
  throw new SettlementProtocolError(detail, typeof rec.error === "string" ? rec.error : "settlement_http_error");
83
162
  }
@@ -85,8 +164,8 @@ async function responseJson(response) {
85
164
  }
86
165
  function expectedBreakdown(route, gross) {
87
166
  const bps = EXPECTED_BPS[route];
88
- const treasury = gross * BigInt(bps.treasury) / 10000n;
89
- const creator = gross * BigInt(bps.creator) / 10000n;
167
+ const treasury = (gross * BigInt(bps.treasury)) / 10000n;
168
+ const creator = (gross * BigInt(bps.creator)) / 10000n;
90
169
  if (bps.treasury > 0 && treasury === 0n) {
91
170
  throw new SettlementProtocolError("AIFP-1 gross amount is too small for the 1% protocol fee", "amount_too_small");
92
171
  }
@@ -97,9 +176,7 @@ function expectedBreakdown(route, gross) {
97
176
  return { gross, merchant, treasury, creator };
98
177
  }
99
178
  function isStableInvoice(invoice) {
100
- return invoice.transaction.kind === "evm_erc20_then_contract_call"
101
- && "token" in invoice
102
- && invoice.token !== undefined;
179
+ return (invoice.transaction.kind === "evm_erc20_then_contract_call" && "token" in invoice && invoice.token !== undefined);
103
180
  }
104
181
  function assertCommonCallBinding(invoice, args) {
105
182
  if (lc(args.paymentId) !== lc(invoice.payment_id)) {
@@ -136,6 +213,14 @@ export function validateSettlementInvoice(invoice) {
136
213
  throw new SettlementProtocolError("invalid merchant_wallet");
137
214
  if (!HASH_RE.test(invoice.payment_id))
138
215
  throw new SettlementProtocolError("invalid payment_id");
216
+ if (typeof invoice.order_id !== "string" ||
217
+ !invoice.order_id.trim() ||
218
+ new TextEncoder().encode(invoice.order_id).length > 256) {
219
+ throw new SettlementProtocolError("order_id must contain 1..256 UTF-8 bytes");
220
+ }
221
+ if (lc(invoice.payment_id) !== keccak256(stringToHex(invoice.order_id)).toLowerCase()) {
222
+ throw new SettlementProtocolError("payment_id must be keccak256(order_id); refusing a replayable invoice", "payment_id_mismatch");
223
+ }
139
224
  if (invoice.fee_on_top !== false || invoice.settlement_semantics !== "gross-inclusive") {
140
225
  throw new SettlementProtocolError("fee-on-top or non-gross settlement is not supported");
141
226
  }
@@ -146,38 +231,56 @@ export function validateSettlementInvoice(invoice) {
146
231
  if (invoice.valid_until > now + 20 * 60 + 5) {
147
232
  throw new SettlementProtocolError("invoice lifetime exceeds the 20-minute safety bound");
148
233
  }
234
+ for (const amount of [
235
+ invoice.breakdown.gross_amount,
236
+ invoice.breakdown.merchant_amount,
237
+ invoice.breakdown.protocol_fee_amount,
238
+ invoice.breakdown.creator_amount,
239
+ ]) {
240
+ if (typeof amount !== "string" || !/^(0|[1-9][0-9]{0,77})$/.test(amount) || BigInt(amount) >= 2n ** 256n) {
241
+ throw new SettlementProtocolError("invoice amount must be a decimal uint256", "invalid_amount");
242
+ }
243
+ }
149
244
  const gross = BigInt(invoice.breakdown.gross_amount);
150
245
  const expected = expectedBreakdown(invoice.route_class, gross);
151
246
  const bps = EXPECTED_BPS[invoice.route_class];
152
247
  if (invoice.breakdown.protocol_fee_bps !== bps.treasury || invoice.breakdown.creator_bps !== bps.creator) {
153
248
  throw new SettlementProtocolError("invoice bps do not match the canonical route profile");
154
249
  }
155
- if (BigInt(invoice.breakdown.merchant_amount) !== expected.merchant
156
- || BigInt(invoice.breakdown.protocol_fee_amount) !== expected.treasury
157
- || BigInt(invoice.breakdown.creator_amount) !== expected.creator) {
250
+ if (BigInt(invoice.breakdown.merchant_amount) !== expected.merchant ||
251
+ BigInt(invoice.breakdown.protocol_fee_amount) !== expected.treasury ||
252
+ BigInt(invoice.breakdown.creator_amount) !== expected.creator) {
158
253
  throw new SettlementProtocolError("invoice breakdown does not match canonical gross split");
159
254
  }
160
255
  if (isStableInvoice(invoice)) {
256
+ if (!["USDC", "USDT"].includes(invoice.asset) ||
257
+ !Number.isInteger(invoice.token.decimals) ||
258
+ invoice.token.decimals < 0 ||
259
+ invoice.token.decimals > 18) {
260
+ throw new SettlementProtocolError("invalid stable asset identity");
261
+ }
161
262
  if (!ADDRESS_RE.test(invoice.token.address) || lc(invoice.token.address) === ZERO) {
162
263
  throw new SettlementProtocolError("invalid stable token address");
163
264
  }
164
- if (lc(invoice.transaction.approve.token) !== lc(invoice.token.address)
165
- || lc(invoice.transaction.approve.spender) !== lc(invoice.splitter)
166
- || BigInt(invoice.transaction.approve.amount) !== gross) {
265
+ if (lc(invoice.transaction.approve.token) !== lc(invoice.token.address) ||
266
+ lc(invoice.transaction.approve.spender) !== lc(invoice.splitter) ||
267
+ BigInt(invoice.transaction.approve.amount) !== gross) {
167
268
  throw new SettlementProtocolError("stable approval does not match invoice");
168
269
  }
169
- if (invoice.transaction.settle.function !== "payStable(bytes32,address,uint256,address,address,uint256,string)") {
270
+ if (invoice.transaction.settle.function !== "payStable((bytes32,address,uint256,address,address,uint256,string))") {
170
271
  throw new SettlementProtocolError("unexpected stable v1.3 function signature");
171
272
  }
172
- if (lc(invoice.transaction.settle.args.token) !== lc(invoice.token.address)
173
- || BigInt(invoice.transaction.settle.args.grossAmount) !== gross
174
- || invoice.transaction.settle.value !== "0") {
273
+ if (lc(invoice.transaction.settle.args.token) !== lc(invoice.token.address) ||
274
+ BigInt(invoice.transaction.settle.args.grossAmount) !== gross ||
275
+ invoice.transaction.settle.value !== "0") {
175
276
  throw new SettlementProtocolError("stable settlement token/gross/value mismatch");
176
277
  }
177
278
  assertCommonCallBinding(invoice, invoice.transaction.settle.args);
178
279
  return;
179
280
  }
180
- if (invoice.transaction.function !== "payNative(bytes32,address,uint256,address,uint256,string)") {
281
+ if (invoice.asset !== NATIVE_ASSETS[invoice.chain])
282
+ throw new SettlementProtocolError("native asset does not match the requested chain");
283
+ if (invoice.transaction.function !== "payNative((bytes32,address,uint256,address,uint256,string))") {
181
284
  throw new SettlementProtocolError("unexpected native v1.3 function signature");
182
285
  }
183
286
  if (BigInt(invoice.transaction.value) !== gross || BigInt(invoice.transaction.args.grossAmount) !== gross) {
@@ -188,6 +291,15 @@ export function validateSettlementInvoice(invoice) {
188
291
  /** Verify that a backend invoice matches an independently trusted release pin. */
189
292
  export function validateTrustedSettlementRoutePin(invoice, pin) {
190
293
  validateSettlementInvoice(invoice);
294
+ if ((pin.chain === "amoy") !== (pin.testnet === true)) {
295
+ throw new SettlementProtocolError("testnet signing requires an explicit matching testnet pin", "trusted_pin_invalid");
296
+ }
297
+ if (isStableInvoice(invoice)) {
298
+ const asset = pin.stable_assets?.[invoice.asset];
299
+ if (!asset || lc(asset.address) !== lc(invoice.token.address) || asset.decimals !== invoice.token.decimals) {
300
+ throw new SettlementProtocolError("stable asset does not match the independent token pin", "trusted_asset_mismatch");
301
+ }
302
+ }
191
303
  if (!(pin.chain in CHAIN_IDS) || pin.chain_id !== CHAIN_IDS[pin.chain]) {
192
304
  throw new SettlementProtocolError("trusted route pin has an invalid chain binding", "trusted_pin_invalid");
193
305
  }
@@ -197,36 +309,64 @@ export function validateTrustedSettlementRoutePin(invoice, pin) {
197
309
  if (!ADDRESS_RE.test(pin.splitter) || lc(pin.splitter) === ZERO || !HASH_RE.test(pin.runtime_code_hash)) {
198
310
  throw new SettlementProtocolError("trusted route pin has invalid address/hash", "trusted_pin_invalid");
199
311
  }
200
- if (pin.route_class !== invoice.route_class
201
- || pin.chain !== invoice.chain
202
- || pin.chain_id !== invoice.chain_id
203
- || pin.splitter_version !== invoice.splitter_version
204
- || lc(pin.splitter) !== lc(invoice.splitter)
205
- || lc(pin.runtime_code_hash) !== lc(invoice.runtime_code_hash)) {
312
+ if (pin.route_class !== invoice.route_class ||
313
+ pin.chain !== invoice.chain ||
314
+ pin.chain_id !== invoice.chain_id ||
315
+ pin.splitter_version !== invoice.splitter_version ||
316
+ lc(pin.splitter) !== lc(invoice.splitter) ||
317
+ lc(pin.runtime_code_hash) !== lc(invoice.runtime_code_hash)) {
206
318
  throw new SettlementProtocolError("backend invoice route does not match the independently trusted deployment pin", "trusted_pin_mismatch");
207
319
  }
208
320
  }
209
321
  export class SettlementClient {
210
322
  baseUrl;
211
- constructor(baseUrl = "https://aifinpay.io") {
212
- this.baseUrl = baseUrl.replace(/\/$/, "");
323
+ fetchImpl;
324
+ timeoutMs;
325
+ constructor(options = {}) {
326
+ const opts = typeof options === "string" ? { baseUrl: options } : options;
327
+ const base = new URL(opts.baseUrl ?? "https://aifinpay.io");
328
+ if (!["http:", "https:"].includes(base.protocol) || base.username || base.password || base.search || base.hash) {
329
+ throw new SettlementProtocolError("invalid settlement API base URL");
330
+ }
331
+ this.baseUrl = base.toString().replace(/\/+$/, "");
332
+ this.fetchImpl = opts.fetchImpl ?? globalThis.fetch;
333
+ this.timeoutMs = opts.timeoutMs ?? 15_000;
334
+ if (!Number.isSafeInteger(this.timeoutMs) || this.timeoutMs <= 0 || this.timeoutMs > 2_147_483_647) {
335
+ throw new SettlementProtocolError("timeoutMs must be a positive timer duration");
336
+ }
337
+ }
338
+ async request(path, init) {
339
+ const url = `${this.baseUrl}${path}`;
340
+ const { response, text } = await settlementHttp(this.fetchImpl, url, init, this.timeoutMs);
341
+ return responseJson(response, text);
213
342
  }
214
343
  async routes(routeClass) {
215
344
  const q = routeClass ? `?route_class=${encodeURIComponent(routeClass)}` : "";
216
- const rec = await responseJson(await fetch(`${this.baseUrl}/v1/settlement/routes${q}`));
345
+ const rec = await this.request(`/v1/settlement/routes${q}`);
217
346
  if (!Array.isArray(rec.routes)) {
218
347
  throw new SettlementProtocolError("routes response has no routes array");
219
348
  }
220
349
  return rec.routes;
221
350
  }
222
351
  async invoice(input) {
223
- const rec = await responseJson(await fetch(`${this.baseUrl}/v1/settlement/invoice`, {
352
+ const rec = await this.request("/v1/settlement/invoice", {
224
353
  method: "POST",
225
354
  headers: { "content-type": "application/json" },
226
355
  body: JSON.stringify({ ...input, gross_amount: String(input.gross_amount) }),
227
- }));
356
+ });
228
357
  const invoice = rec;
229
358
  validateSettlementInvoice(invoice);
359
+ const recipient = input.merchant_wallet ?? input.provider_wallet;
360
+ if (invoice.route_class !== input.route_class ||
361
+ invoice.chain !== input.chain ||
362
+ invoice.asset !== input.asset.toUpperCase() ||
363
+ BigInt(invoice.breakdown.gross_amount) !== BigInt(input.gross_amount) ||
364
+ invoice.order_id !== input.order_id ||
365
+ !recipient ||
366
+ lc(invoice.merchant_wallet) !== lc(recipient) ||
367
+ (input.valid_until !== undefined && invoice.valid_until !== input.valid_until)) {
368
+ throw new SettlementProtocolError("invoice differs from the requested payment", "invoice_request_mismatch");
369
+ }
230
370
  return invoice;
231
371
  }
232
372
  }
@@ -245,16 +385,30 @@ export async function verifySettlementRouteOnChain(invoice, publicClient, truste
245
385
  throw new SettlementProtocolError("trusted splitter runtime bytecode hash mismatch", "runtime_hash_mismatch");
246
386
  }
247
387
  const [treasuryBps, creatorBps] = await Promise.all([
248
- publicClient.readContract({ address: trustedPin.splitter, abi: PROFILE_ABI, functionName: "treasuryBps" }),
249
- publicClient.readContract({ address: trustedPin.splitter, abi: PROFILE_ABI, functionName: "ipCreatorBps" }),
388
+ publicClient.readContract({
389
+ address: trustedPin.splitter,
390
+ abi: PROFILE_ABI,
391
+ functionName: "treasuryBps",
392
+ }),
393
+ publicClient.readContract({
394
+ address: trustedPin.splitter,
395
+ abi: PROFILE_ABI,
396
+ functionName: "ipCreatorBps",
397
+ }),
250
398
  ]);
251
399
  const expected = EXPECTED_BPS[trustedPin.route_class];
252
400
  if (Number(treasuryBps) !== expected.treasury || Number(creatorBps) !== expected.creator) {
253
401
  throw new SettlementProtocolError("on-chain route economics do not match trusted route class", "profile_mismatch");
254
402
  }
255
403
  }
256
- async function waitSuccess(publicClient, hash) {
257
- const receipt = await publicClient.waitForTransactionReceipt({ hash });
404
+ async function waitSuccess(publicClient, hash, stage = "settlement") {
405
+ let receipt;
406
+ try {
407
+ receipt = await publicClient.waitForTransactionReceipt({ hash });
408
+ }
409
+ catch {
410
+ throw new SettlementConfirmationPendingError(hash, stage);
411
+ }
258
412
  if (receipt.status !== "success") {
259
413
  throw new SettlementProtocolError(`transaction ${hash} reverted`, "transaction_reverted");
260
414
  }
@@ -267,8 +421,8 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
267
421
  if (!account) {
268
422
  throw new SettlementProtocolError("walletClient has no signing account", "signer_missing");
269
423
  }
270
- const walletChainId = walletClient.chain?.id;
271
- if (walletChainId != null && walletChainId !== trustedPin.chain_id) {
424
+ const walletChainId = await walletClient.getChainId();
425
+ if (walletChainId !== trustedPin.chain_id || walletClient.chain?.id !== trustedPin.chain_id) {
272
426
  throw new SettlementProtocolError(`wallet chainId ${walletChainId} != trusted pin ${trustedPin.chain_id}`, "wrong_chain");
273
427
  }
274
428
  const approvalTxs = [];
@@ -292,7 +446,7 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
292
446
  chain: walletClient.chain,
293
447
  });
294
448
  approvalTxs.push(reset);
295
- await waitSuccess(publicClient, reset);
449
+ await waitSuccess(publicClient, reset, "approval");
296
450
  }
297
451
  const approve = await walletClient.writeContract({
298
452
  address: invoice.token.address,
@@ -303,20 +457,22 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
303
457
  chain: walletClient.chain,
304
458
  });
305
459
  approvalTxs.push(approve);
306
- await waitSuccess(publicClient, approve);
460
+ await waitSuccess(publicClient, approve, "approval");
307
461
  }
308
462
  settlementTx = await walletClient.writeContract({
309
463
  address: trustedPin.splitter,
310
464
  abi: V13_ABI,
311
465
  functionName: "payStable",
312
466
  args: [
313
- invoice.transaction.settle.args.paymentId,
314
- invoice.transaction.settle.args.token,
315
- BigInt(invoice.transaction.settle.args.grossAmount),
316
- invoice.transaction.settle.args.merchant,
317
- invoice.transaction.settle.args.ipCreator,
318
- BigInt(invoice.transaction.settle.args.validUntil),
319
- invoice.transaction.settle.args.orderId,
467
+ {
468
+ paymentId: invoice.transaction.settle.args.paymentId,
469
+ token: invoice.transaction.settle.args.token,
470
+ grossAmount: BigInt(invoice.transaction.settle.args.grossAmount),
471
+ merchant: invoice.transaction.settle.args.merchant,
472
+ ipCreator: invoice.transaction.settle.args.ipCreator,
473
+ validUntil: BigInt(invoice.transaction.settle.args.validUntil),
474
+ orderId: invoice.transaction.settle.args.orderId,
475
+ },
320
476
  ],
321
477
  account,
322
478
  chain: walletClient.chain,
@@ -328,12 +484,14 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
328
484
  abi: V13_ABI,
329
485
  functionName: "payNative",
330
486
  args: [
331
- invoice.transaction.args.paymentId,
332
- invoice.transaction.args.merchant,
333
- BigInt(invoice.transaction.args.grossAmount),
334
- invoice.transaction.args.ipCreator,
335
- BigInt(invoice.transaction.args.validUntil),
336
- invoice.transaction.args.orderId,
487
+ {
488
+ paymentId: invoice.transaction.args.paymentId,
489
+ merchant: invoice.transaction.args.merchant,
490
+ grossAmount: BigInt(invoice.transaction.args.grossAmount),
491
+ ipCreator: invoice.transaction.args.ipCreator,
492
+ validUntil: BigInt(invoice.transaction.args.validUntil),
493
+ orderId: invoice.transaction.args.orderId,
494
+ },
337
495
  ],
338
496
  value: BigInt(invoice.transaction.value),
339
497
  account,
@@ -1 +1 @@
1
- {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../src/settlement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Bounded transport for payment API requests, including response body reads. */
2
+ export declare class SettlementHttpError extends Error {
3
+ readonly code: string;
4
+ constructor(message: string, code: string);
5
+ }
6
+ export declare function settlementHttp(fetchImpl: typeof fetch, url: string, init?: RequestInit, timeoutMs?: number): Promise<{
7
+ response: Response;
8
+ text: string;
9
+ }>;
10
+ //# sourceMappingURL=settlementHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settlementHttp.d.ts","sourceRoot":"","sources":["../src/settlementHttp.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qBAAa,mBAAoB,SAAQ,KAAK;IAG1C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADrB,OAAO,EAAE,MAAM,EACN,IAAI,EAAE,MAAM;CAKxB;AAED,wBAAsB,cAAc,CAClC,SAAS,EAAE,OAAO,KAAK,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,WAAgB,EACtB,SAAS,SAAS,GACjB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAiE/C"}