@aifinpay/agent 2.0.0-rc.8 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) 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 +1 -0
  29. package/dist/crossChain.d.ts.map +1 -1
  30. package/dist/crossChain.js +87 -5
  31. package/dist/crossChain.js.map +1 -1
  32. package/dist/crypto.d.ts.map +1 -1
  33. package/dist/crypto.js.map +1 -1
  34. package/dist/deploymentResolver.d.ts +95 -0
  35. package/dist/deploymentResolver.d.ts.map +1 -0
  36. package/dist/deploymentResolver.js +169 -0
  37. package/dist/deploymentResolver.js.map +1 -0
  38. package/dist/errors.d.ts +17 -0
  39. package/dist/errors.d.ts.map +1 -1
  40. package/dist/errors.js +14 -0
  41. package/dist/errors.js.map +1 -1
  42. package/dist/facilitators/aifinpay.d.ts +4 -5
  43. package/dist/facilitators/aifinpay.d.ts.map +1 -1
  44. package/dist/facilitators/aifinpay.js +50 -21
  45. package/dist/facilitators/aifinpay.js.map +1 -1
  46. package/dist/facilitators/base.d.ts +12 -1
  47. package/dist/facilitators/base.d.ts.map +1 -1
  48. package/dist/facilitators/coinbase.d.ts.map +1 -1
  49. package/dist/facilitators/coinbase.js +3 -7
  50. package/dist/facilitators/coinbase.js.map +1 -1
  51. package/dist/facilitators/detect.d.ts.map +1 -1
  52. package/dist/facilitators/detect.js +2 -7
  53. package/dist/facilitators/detect.js.map +1 -1
  54. package/dist/facilitators/standard-x402.d.ts.map +1 -1
  55. package/dist/facilitators/standard-x402.js +40 -30
  56. package/dist/facilitators/standard-x402.js.map +1 -1
  57. package/dist/generated/solanaV14Deployments.generated.d.ts +25 -0
  58. package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -0
  59. package/dist/generated/solanaV14Deployments.generated.js +39 -0
  60. package/dist/generated/solanaV14Deployments.generated.js.map +1 -0
  61. package/dist/generated/splitterRoutes.generated.d.ts +24 -0
  62. package/dist/generated/splitterRoutes.generated.d.ts.map +1 -0
  63. package/dist/generated/splitterRoutes.generated.js +453 -0
  64. package/dist/generated/splitterRoutes.generated.js.map +1 -0
  65. package/dist/generated/v14Deployments.generated.d.ts +49 -0
  66. package/dist/generated/v14Deployments.generated.d.ts.map +1 -0
  67. package/dist/generated/v14Deployments.generated.js +415 -0
  68. package/dist/generated/v14Deployments.generated.js.map +1 -0
  69. package/dist/index.d.ts +27 -13
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +16 -7
  72. package/dist/index.js.map +1 -1
  73. package/dist/localIdentity.d.ts +17 -0
  74. package/dist/localIdentity.d.ts.map +1 -0
  75. package/dist/localIdentity.js +95 -0
  76. package/dist/localIdentity.js.map +1 -0
  77. package/dist/settlement.d.ts +35 -5
  78. package/dist/settlement.d.ts.map +1 -1
  79. package/dist/settlement.js +232 -76
  80. package/dist/settlement.js.map +1 -1
  81. package/dist/settlementHttp.d.ts +10 -0
  82. package/dist/settlementHttp.d.ts.map +1 -0
  83. package/dist/settlementHttp.js +78 -0
  84. package/dist/settlementHttp.js.map +1 -0
  85. package/dist/settlementV14.d.ts +10 -9
  86. package/dist/settlementV14.d.ts.map +1 -1
  87. package/dist/settlementV14.js +43 -55
  88. package/dist/settlementV14.js.map +1 -1
  89. package/dist/solanaDeploymentResolver.d.ts +98 -0
  90. package/dist/solanaDeploymentResolver.d.ts.map +1 -0
  91. package/dist/solanaDeploymentResolver.js +162 -0
  92. package/dist/solanaDeploymentResolver.js.map +1 -0
  93. package/dist/solanaV14Deployments.generated.d.ts +25 -0
  94. package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
  95. package/dist/solanaV14Deployments.generated.js +39 -0
  96. package/dist/solanaV14Deployments.generated.js.map +1 -0
  97. package/dist/spendLedger.d.ts.map +1 -1
  98. package/dist/spendLedger.js +1 -3
  99. package/dist/spendLedger.js.map +1 -1
  100. package/dist/splitterRoutes.d.ts +11 -4
  101. package/dist/splitterRoutes.d.ts.map +1 -1
  102. package/dist/splitterRoutes.generated.d.ts +11 -9
  103. package/dist/splitterRoutes.generated.d.ts.map +1 -1
  104. package/dist/splitterRoutes.generated.js +72 -18
  105. package/dist/splitterRoutes.generated.js.map +1 -1
  106. package/dist/splitterRoutes.js +7 -5
  107. package/dist/splitterRoutes.js.map +1 -1
  108. package/dist/unifiedAgent.d.ts +97 -29
  109. package/dist/unifiedAgent.d.ts.map +1 -1
  110. package/dist/unifiedAgent.js +232 -349
  111. package/dist/unifiedAgent.js.map +1 -1
  112. package/dist/v14Deployments.generated.d.ts +49 -0
  113. package/dist/v14Deployments.generated.d.ts.map +1 -0
  114. package/dist/v14Deployments.generated.js +413 -0
  115. package/dist/v14Deployments.generated.js.map +1 -0
  116. package/dist/wallet.d.ts.map +1 -1
  117. package/dist/wallet.js +2 -2
  118. package/dist/wallet.js.map +1 -1
  119. package/package.json +27 -6
  120. package/dist/cli.d.ts +0 -3
  121. package/dist/cli.d.ts.map +0 -1
  122. package/dist/cli.js +0 -127
  123. 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,21 @@ const CHAIN_IDS = {
15
29
  base: 8453,
16
30
  unichain: 130,
17
31
  optimism: 10,
18
- botchain: 677,
32
+ robinhood: 4663,
19
33
  xrplevm: 1440000,
20
34
  };
35
+ const NATIVE_ASSETS = {
36
+ polygon: "POL",
37
+ amoy: "POL",
38
+ avalanche: "AVAX",
39
+ arbitrum: "ETH",
40
+ bnb: "BNB",
41
+ base: "ETH",
42
+ unichain: "ETH",
43
+ optimism: "ETH",
44
+ robinhood: "ETH",
45
+ xrplevm: "XRP",
46
+ };
21
47
  const EXPECTED_BPS = {
22
48
  "AIFP-1": { treasury: 100, creator: 0 },
23
49
  "AIFP-2": { treasury: 0, creator: 0 },
@@ -27,37 +53,85 @@ const ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
27
53
  const HASH_RE = /^0x[0-9a-fA-F]{64}$/;
28
54
  const lc = (value) => value.toLowerCase();
29
55
  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" }] },
56
+ {
57
+ type: "function",
58
+ name: "treasuryBps",
59
+ stateMutability: "view",
60
+ inputs: [],
61
+ outputs: [{ type: "uint256" }],
62
+ },
63
+ {
64
+ type: "function",
65
+ name: "ipCreatorBps",
66
+ stateMutability: "view",
67
+ inputs: [],
68
+ outputs: [{ type: "uint256" }],
69
+ },
32
70
  ];
33
71
  const V13_ABI = [
34
72
  {
35
- type: "function", name: "payNative", stateMutability: "payable",
73
+ type: "function",
74
+ name: "payNative",
75
+ stateMutability: "payable",
36
76
  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: [],
77
+ {
78
+ type: "tuple",
79
+ name: "p",
80
+ components: [
81
+ { type: "bytes32", name: "paymentId" },
82
+ { type: "address", name: "merchant" },
83
+ { type: "uint256", name: "grossAmount" },
84
+ { type: "address", name: "ipCreator" },
85
+ { type: "uint256", name: "validUntil" },
86
+ { type: "string", name: "orderId" },
87
+ ],
88
+ },
89
+ ],
90
+ outputs: [],
44
91
  },
45
92
  {
46
- type: "function", name: "payStable", stateMutability: "nonpayable",
93
+ type: "function",
94
+ name: "payStable",
95
+ stateMutability: "nonpayable",
47
96
  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: [],
97
+ {
98
+ type: "tuple",
99
+ name: "p",
100
+ components: [
101
+ { type: "bytes32", name: "paymentId" },
102
+ { type: "address", name: "token" },
103
+ { type: "uint256", name: "grossAmount" },
104
+ { type: "address", name: "merchant" },
105
+ { type: "address", name: "ipCreator" },
106
+ { type: "uint256", name: "validUntil" },
107
+ { type: "string", name: "orderId" },
108
+ ],
109
+ },
110
+ ],
111
+ outputs: [],
56
112
  },
57
113
  ];
58
114
  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" }] },
115
+ {
116
+ type: "function",
117
+ name: "allowance",
118
+ stateMutability: "view",
119
+ inputs: [
120
+ { type: "address", name: "owner" },
121
+ { type: "address", name: "spender" },
122
+ ],
123
+ outputs: [{ type: "uint256" }],
124
+ },
125
+ {
126
+ type: "function",
127
+ name: "approve",
128
+ stateMutability: "nonpayable",
129
+ inputs: [
130
+ { type: "address", name: "spender" },
131
+ { type: "uint256", name: "amount" },
132
+ ],
133
+ outputs: [{ type: "bool" }],
134
+ },
61
135
  ];
62
136
  function asJsonRecord(value) {
63
137
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -65,19 +139,22 @@ function asJsonRecord(value) {
65
139
  }
66
140
  return value;
67
141
  }
68
- async function responseJson(response) {
142
+ function responseJson(response, text) {
69
143
  let json;
70
144
  try {
71
- json = await response.json();
145
+ json = JSON.parse(text);
72
146
  }
73
147
  catch {
74
148
  throw new SettlementProtocolError(`settlement API ${response.status}: non-JSON response`);
75
149
  }
76
150
  const rec = asJsonRecord(json);
77
151
  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
152
+ const detail = typeof rec.detail === "string"
153
+ ? rec.detail
154
+ : typeof rec.reason === "string"
155
+ ? rec.reason
156
+ : typeof rec.error === "string"
157
+ ? rec.error
81
158
  : `HTTP ${response.status}`;
82
159
  throw new SettlementProtocolError(detail, typeof rec.error === "string" ? rec.error : "settlement_http_error");
83
160
  }
@@ -85,8 +162,8 @@ async function responseJson(response) {
85
162
  }
86
163
  function expectedBreakdown(route, gross) {
87
164
  const bps = EXPECTED_BPS[route];
88
- const treasury = gross * BigInt(bps.treasury) / 10000n;
89
- const creator = gross * BigInt(bps.creator) / 10000n;
165
+ const treasury = (gross * BigInt(bps.treasury)) / 10000n;
166
+ const creator = (gross * BigInt(bps.creator)) / 10000n;
90
167
  if (bps.treasury > 0 && treasury === 0n) {
91
168
  throw new SettlementProtocolError("AIFP-1 gross amount is too small for the 1% protocol fee", "amount_too_small");
92
169
  }
@@ -97,9 +174,7 @@ function expectedBreakdown(route, gross) {
97
174
  return { gross, merchant, treasury, creator };
98
175
  }
99
176
  function isStableInvoice(invoice) {
100
- return invoice.transaction.kind === "evm_erc20_then_contract_call"
101
- && "token" in invoice
102
- && invoice.token !== undefined;
177
+ return (invoice.transaction.kind === "evm_erc20_then_contract_call" && "token" in invoice && invoice.token !== undefined);
103
178
  }
104
179
  function assertCommonCallBinding(invoice, args) {
105
180
  if (lc(args.paymentId) !== lc(invoice.payment_id)) {
@@ -136,6 +211,14 @@ export function validateSettlementInvoice(invoice) {
136
211
  throw new SettlementProtocolError("invalid merchant_wallet");
137
212
  if (!HASH_RE.test(invoice.payment_id))
138
213
  throw new SettlementProtocolError("invalid payment_id");
214
+ if (typeof invoice.order_id !== "string" ||
215
+ !invoice.order_id.trim() ||
216
+ new TextEncoder().encode(invoice.order_id).length > 256) {
217
+ throw new SettlementProtocolError("order_id must contain 1..256 UTF-8 bytes");
218
+ }
219
+ if (lc(invoice.payment_id) !== keccak256(stringToHex(invoice.order_id)).toLowerCase()) {
220
+ throw new SettlementProtocolError("payment_id must be keccak256(order_id); refusing a replayable invoice", "payment_id_mismatch");
221
+ }
139
222
  if (invoice.fee_on_top !== false || invoice.settlement_semantics !== "gross-inclusive") {
140
223
  throw new SettlementProtocolError("fee-on-top or non-gross settlement is not supported");
141
224
  }
@@ -146,38 +229,56 @@ export function validateSettlementInvoice(invoice) {
146
229
  if (invoice.valid_until > now + 20 * 60 + 5) {
147
230
  throw new SettlementProtocolError("invoice lifetime exceeds the 20-minute safety bound");
148
231
  }
232
+ for (const amount of [
233
+ invoice.breakdown.gross_amount,
234
+ invoice.breakdown.merchant_amount,
235
+ invoice.breakdown.protocol_fee_amount,
236
+ invoice.breakdown.creator_amount,
237
+ ]) {
238
+ if (typeof amount !== "string" || !/^(0|[1-9][0-9]{0,77})$/.test(amount) || BigInt(amount) >= 2n ** 256n) {
239
+ throw new SettlementProtocolError("invoice amount must be a decimal uint256", "invalid_amount");
240
+ }
241
+ }
149
242
  const gross = BigInt(invoice.breakdown.gross_amount);
150
243
  const expected = expectedBreakdown(invoice.route_class, gross);
151
244
  const bps = EXPECTED_BPS[invoice.route_class];
152
245
  if (invoice.breakdown.protocol_fee_bps !== bps.treasury || invoice.breakdown.creator_bps !== bps.creator) {
153
246
  throw new SettlementProtocolError("invoice bps do not match the canonical route profile");
154
247
  }
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) {
248
+ if (BigInt(invoice.breakdown.merchant_amount) !== expected.merchant ||
249
+ BigInt(invoice.breakdown.protocol_fee_amount) !== expected.treasury ||
250
+ BigInt(invoice.breakdown.creator_amount) !== expected.creator) {
158
251
  throw new SettlementProtocolError("invoice breakdown does not match canonical gross split");
159
252
  }
160
253
  if (isStableInvoice(invoice)) {
254
+ if (!["USDC", "USDT"].includes(invoice.asset) ||
255
+ !Number.isInteger(invoice.token.decimals) ||
256
+ invoice.token.decimals < 0 ||
257
+ invoice.token.decimals > 18) {
258
+ throw new SettlementProtocolError("invalid stable asset identity");
259
+ }
161
260
  if (!ADDRESS_RE.test(invoice.token.address) || lc(invoice.token.address) === ZERO) {
162
261
  throw new SettlementProtocolError("invalid stable token address");
163
262
  }
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) {
263
+ if (lc(invoice.transaction.approve.token) !== lc(invoice.token.address) ||
264
+ lc(invoice.transaction.approve.spender) !== lc(invoice.splitter) ||
265
+ BigInt(invoice.transaction.approve.amount) !== gross) {
167
266
  throw new SettlementProtocolError("stable approval does not match invoice");
168
267
  }
169
- if (invoice.transaction.settle.function !== "payStable(bytes32,address,uint256,address,address,uint256,string)") {
268
+ if (invoice.transaction.settle.function !== "payStable((bytes32,address,uint256,address,address,uint256,string))") {
170
269
  throw new SettlementProtocolError("unexpected stable v1.3 function signature");
171
270
  }
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") {
271
+ if (lc(invoice.transaction.settle.args.token) !== lc(invoice.token.address) ||
272
+ BigInt(invoice.transaction.settle.args.grossAmount) !== gross ||
273
+ invoice.transaction.settle.value !== "0") {
175
274
  throw new SettlementProtocolError("stable settlement token/gross/value mismatch");
176
275
  }
177
276
  assertCommonCallBinding(invoice, invoice.transaction.settle.args);
178
277
  return;
179
278
  }
180
- if (invoice.transaction.function !== "payNative(bytes32,address,uint256,address,uint256,string)") {
279
+ if (invoice.asset !== NATIVE_ASSETS[invoice.chain])
280
+ throw new SettlementProtocolError("native asset does not match the requested chain");
281
+ if (invoice.transaction.function !== "payNative((bytes32,address,uint256,address,uint256,string))") {
181
282
  throw new SettlementProtocolError("unexpected native v1.3 function signature");
182
283
  }
183
284
  if (BigInt(invoice.transaction.value) !== gross || BigInt(invoice.transaction.args.grossAmount) !== gross) {
@@ -188,6 +289,15 @@ export function validateSettlementInvoice(invoice) {
188
289
  /** Verify that a backend invoice matches an independently trusted release pin. */
189
290
  export function validateTrustedSettlementRoutePin(invoice, pin) {
190
291
  validateSettlementInvoice(invoice);
292
+ if ((pin.chain === "amoy") !== (pin.testnet === true)) {
293
+ throw new SettlementProtocolError("testnet signing requires an explicit matching testnet pin", "trusted_pin_invalid");
294
+ }
295
+ if (isStableInvoice(invoice)) {
296
+ const asset = pin.stable_assets?.[invoice.asset];
297
+ if (!asset || lc(asset.address) !== lc(invoice.token.address) || asset.decimals !== invoice.token.decimals) {
298
+ throw new SettlementProtocolError("stable asset does not match the independent token pin", "trusted_asset_mismatch");
299
+ }
300
+ }
191
301
  if (!(pin.chain in CHAIN_IDS) || pin.chain_id !== CHAIN_IDS[pin.chain]) {
192
302
  throw new SettlementProtocolError("trusted route pin has an invalid chain binding", "trusted_pin_invalid");
193
303
  }
@@ -197,36 +307,64 @@ export function validateTrustedSettlementRoutePin(invoice, pin) {
197
307
  if (!ADDRESS_RE.test(pin.splitter) || lc(pin.splitter) === ZERO || !HASH_RE.test(pin.runtime_code_hash)) {
198
308
  throw new SettlementProtocolError("trusted route pin has invalid address/hash", "trusted_pin_invalid");
199
309
  }
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)) {
310
+ if (pin.route_class !== invoice.route_class ||
311
+ pin.chain !== invoice.chain ||
312
+ pin.chain_id !== invoice.chain_id ||
313
+ pin.splitter_version !== invoice.splitter_version ||
314
+ lc(pin.splitter) !== lc(invoice.splitter) ||
315
+ lc(pin.runtime_code_hash) !== lc(invoice.runtime_code_hash)) {
206
316
  throw new SettlementProtocolError("backend invoice route does not match the independently trusted deployment pin", "trusted_pin_mismatch");
207
317
  }
208
318
  }
209
319
  export class SettlementClient {
210
320
  baseUrl;
211
- constructor(baseUrl = "https://aifinpay.io") {
212
- this.baseUrl = baseUrl.replace(/\/$/, "");
321
+ fetchImpl;
322
+ timeoutMs;
323
+ constructor(options = {}) {
324
+ const opts = typeof options === "string" ? { baseUrl: options } : options;
325
+ const base = new URL(opts.baseUrl ?? "https://aifinpay.io");
326
+ if (!["http:", "https:"].includes(base.protocol) || base.username || base.password || base.search || base.hash) {
327
+ throw new SettlementProtocolError("invalid settlement API base URL");
328
+ }
329
+ this.baseUrl = base.toString().replace(/\/+$/, "");
330
+ this.fetchImpl = opts.fetchImpl ?? globalThis.fetch;
331
+ this.timeoutMs = opts.timeoutMs ?? 15_000;
332
+ if (!Number.isSafeInteger(this.timeoutMs) || this.timeoutMs <= 0 || this.timeoutMs > 2_147_483_647) {
333
+ throw new SettlementProtocolError("timeoutMs must be a positive timer duration");
334
+ }
335
+ }
336
+ async request(path, init) {
337
+ const url = `${this.baseUrl}${path}`;
338
+ const { response, text } = await settlementHttp(this.fetchImpl, url, init, this.timeoutMs);
339
+ return responseJson(response, text);
213
340
  }
214
341
  async routes(routeClass) {
215
342
  const q = routeClass ? `?route_class=${encodeURIComponent(routeClass)}` : "";
216
- const rec = await responseJson(await fetch(`${this.baseUrl}/v1/settlement/routes${q}`));
343
+ const rec = await this.request(`/v1/settlement/routes${q}`);
217
344
  if (!Array.isArray(rec.routes)) {
218
345
  throw new SettlementProtocolError("routes response has no routes array");
219
346
  }
220
347
  return rec.routes;
221
348
  }
222
349
  async invoice(input) {
223
- const rec = await responseJson(await fetch(`${this.baseUrl}/v1/settlement/invoice`, {
350
+ const rec = await this.request("/v1/settlement/invoice", {
224
351
  method: "POST",
225
352
  headers: { "content-type": "application/json" },
226
353
  body: JSON.stringify({ ...input, gross_amount: String(input.gross_amount) }),
227
- }));
354
+ });
228
355
  const invoice = rec;
229
356
  validateSettlementInvoice(invoice);
357
+ const recipient = input.merchant_wallet ?? input.provider_wallet;
358
+ if (invoice.route_class !== input.route_class ||
359
+ invoice.chain !== input.chain ||
360
+ invoice.asset !== input.asset.toUpperCase() ||
361
+ BigInt(invoice.breakdown.gross_amount) !== BigInt(input.gross_amount) ||
362
+ invoice.order_id !== input.order_id ||
363
+ !recipient ||
364
+ lc(invoice.merchant_wallet) !== lc(recipient) ||
365
+ (input.valid_until !== undefined && invoice.valid_until !== input.valid_until)) {
366
+ throw new SettlementProtocolError("invoice differs from the requested payment", "invoice_request_mismatch");
367
+ }
230
368
  return invoice;
231
369
  }
232
370
  }
@@ -245,16 +383,30 @@ export async function verifySettlementRouteOnChain(invoice, publicClient, truste
245
383
  throw new SettlementProtocolError("trusted splitter runtime bytecode hash mismatch", "runtime_hash_mismatch");
246
384
  }
247
385
  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" }),
386
+ publicClient.readContract({
387
+ address: trustedPin.splitter,
388
+ abi: PROFILE_ABI,
389
+ functionName: "treasuryBps",
390
+ }),
391
+ publicClient.readContract({
392
+ address: trustedPin.splitter,
393
+ abi: PROFILE_ABI,
394
+ functionName: "ipCreatorBps",
395
+ }),
250
396
  ]);
251
397
  const expected = EXPECTED_BPS[trustedPin.route_class];
252
398
  if (Number(treasuryBps) !== expected.treasury || Number(creatorBps) !== expected.creator) {
253
399
  throw new SettlementProtocolError("on-chain route economics do not match trusted route class", "profile_mismatch");
254
400
  }
255
401
  }
256
- async function waitSuccess(publicClient, hash) {
257
- const receipt = await publicClient.waitForTransactionReceipt({ hash });
402
+ async function waitSuccess(publicClient, hash, stage = "settlement") {
403
+ let receipt;
404
+ try {
405
+ receipt = await publicClient.waitForTransactionReceipt({ hash });
406
+ }
407
+ catch {
408
+ throw new SettlementConfirmationPendingError(hash, stage);
409
+ }
258
410
  if (receipt.status !== "success") {
259
411
  throw new SettlementProtocolError(`transaction ${hash} reverted`, "transaction_reverted");
260
412
  }
@@ -267,8 +419,8 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
267
419
  if (!account) {
268
420
  throw new SettlementProtocolError("walletClient has no signing account", "signer_missing");
269
421
  }
270
- const walletChainId = walletClient.chain?.id;
271
- if (walletChainId != null && walletChainId !== trustedPin.chain_id) {
422
+ const walletChainId = await walletClient.getChainId();
423
+ if (walletChainId !== trustedPin.chain_id || walletClient.chain?.id !== trustedPin.chain_id) {
272
424
  throw new SettlementProtocolError(`wallet chainId ${walletChainId} != trusted pin ${trustedPin.chain_id}`, "wrong_chain");
273
425
  }
274
426
  const approvalTxs = [];
@@ -292,7 +444,7 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
292
444
  chain: walletClient.chain,
293
445
  });
294
446
  approvalTxs.push(reset);
295
- await waitSuccess(publicClient, reset);
447
+ await waitSuccess(publicClient, reset, "approval");
296
448
  }
297
449
  const approve = await walletClient.writeContract({
298
450
  address: invoice.token.address,
@@ -303,20 +455,22 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
303
455
  chain: walletClient.chain,
304
456
  });
305
457
  approvalTxs.push(approve);
306
- await waitSuccess(publicClient, approve);
458
+ await waitSuccess(publicClient, approve, "approval");
307
459
  }
308
460
  settlementTx = await walletClient.writeContract({
309
461
  address: trustedPin.splitter,
310
462
  abi: V13_ABI,
311
463
  functionName: "payStable",
312
464
  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,
465
+ {
466
+ paymentId: invoice.transaction.settle.args.paymentId,
467
+ token: invoice.transaction.settle.args.token,
468
+ grossAmount: BigInt(invoice.transaction.settle.args.grossAmount),
469
+ merchant: invoice.transaction.settle.args.merchant,
470
+ ipCreator: invoice.transaction.settle.args.ipCreator,
471
+ validUntil: BigInt(invoice.transaction.settle.args.validUntil),
472
+ orderId: invoice.transaction.settle.args.orderId,
473
+ },
320
474
  ],
321
475
  account,
322
476
  chain: walletClient.chain,
@@ -328,12 +482,14 @@ export async function executeSettlementInvoice(invoice, walletClient, publicClie
328
482
  abi: V13_ABI,
329
483
  functionName: "payNative",
330
484
  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,
485
+ {
486
+ paymentId: invoice.transaction.args.paymentId,
487
+ merchant: invoice.transaction.args.merchant,
488
+ grossAmount: BigInt(invoice.transaction.args.grossAmount),
489
+ ipCreator: invoice.transaction.args.ipCreator,
490
+ validUntil: BigInt(invoice.transaction.args.validUntil),
491
+ orderId: invoice.transaction.args.orderId,
492
+ },
337
493
  ],
338
494
  value: BigInt(invoice.transaction.value),
339
495
  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":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAgE,MAAM,MAAM,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAmJrD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAG9B;IAFlB,YACE,OAAe,EACC,OAAO,2BAA2B;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAA8B;QAGlD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;wEACwE;AACxE,MAAM,OAAO,kCAAmC,SAAQ,uBAAuB;IAE3D;IACA;IAFlB,YACkB,MAAW,EACX,KAAgC;QAEhD,KAAK,CACH,eAAe,MAAM,0FAA0F,EAC/G,sBAAsB,CACvB,CAAC;QANc,WAAM,GAAN,MAAM,CAAK;QACX,UAAK,GAAL,KAAK,CAA2B;QAMhD,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,SAAS,GAAyC;IACrD,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,OAAO;CAClB,CAAC;AAEF,MAAM,aAAa,GAAyC;IACzD,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,YAAY,GAAwE;IACxF,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE;IACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;CACtC,CAAC;AAEF,MAAM,IAAI,GAAG,4CAAuD,CAAC;AACrE,MAAM,UAAU,GAAG,qBAAqB,CAAC;AACzC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AACtC,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAElD,MAAM,WAAW,GAAG;IAClB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;CACO,CAAC;AAEX,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;oBACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;oBACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;oBACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;iBACpC;aACF;SACF;QACD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;oBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;oBACxC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;oBACrC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;oBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;oBACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;iBACpC;aACF;SACF;QACD,OAAO,EAAE,EAAE;KACZ;CACO,CAAC;AAEX,MAAM,SAAS,GAAG;IAChB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC5B;CACO,CAAC;AAEX,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,uBAAuB,CAAC,oDAAoD,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,IAAY;IACpD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,uBAAuB,CAAC,kBAAkB,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GACV,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YAC5B,CAAC,CAAC,GAAG,CAAC,MAAM;YACZ,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;gBAC9B,CAAC,CAAC,GAAG,CAAC,MAAM;gBACZ,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;oBAC7B,CAAC,CAAC,GAAG,CAAC,KAAK;oBACX,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA2B,EAAE,KAAa;IACnE,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAO,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,MAAO,CAAC;IACxD,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,uBAAuB,CAAC,0DAA0D,EAAE,kBAAkB,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,uBAAuB,CAAC,sCAAsC,EAAE,kBAAkB,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,OAA0B;IACjD,OAAO,CACL,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,8BAA8B,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CACjH,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAA0B,EAC1B,IAMC;IAED,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,uBAAuB,CAAC,8CAA8C,EAAE,mBAAmB,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,uBAAuB,CAAC,6CAA6C,EAAE,mBAAmB,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,uBAAuB,CAAC,yCAAyC,EAAE,mBAAmB,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,IAAI,uBAAuB,CAAC,+CAA+C,EAAE,mBAAmB,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,uBAAuB,CAAC,4CAA4C,EAAE,mBAAmB,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IACrG,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAC;IACrG,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,+BAA+B,CAAC,CAAC;IACtH,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK;QAAE,MAAM,IAAI,uBAAuB,CAAC,mCAAmC,CAAC,CAAC;IAC/G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI;QACrE,MAAM,IAAI,uBAAuB,CAAC,0BAA0B,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,2BAA2B,CAAC,CAAC;IAC7G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI;QACnF,MAAM,IAAI,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAC/F,IACE,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;QACpC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QACxB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,EACvD,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,0CAA0C,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACtF,MAAM,IAAI,uBAAuB,CAC/B,uEAAuE,EACvE,qBAAqB,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,OAAO,CAAC,oBAAoB,KAAK,iBAAiB,EAAE,CAAC;QACvF,MAAM,IAAI,uBAAuB,CAAC,qDAAqD,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;QACzE,MAAM,IAAI,uBAAuB,CAAC,+CAA+C,EAAE,iBAAiB,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,uBAAuB,CAAC,qDAAqD,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,MAAM,MAAM,IAAI;QACnB,OAAO,CAAC,SAAS,CAAC,YAAY;QAC9B,OAAO,CAAC,SAAS,CAAC,eAAe;QACjC,OAAO,CAAC,SAAS,CAAC,mBAAmB;QACrC,OAAO,CAAC,SAAS,CAAC,cAAc;KACjC,EAAE,CAAC;QACF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACzG,MAAM,IAAI,uBAAuB,CAAC,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,SAAS,CAAC,gBAAgB,KAAK,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACzG,MAAM,IAAI,uBAAuB,CAAC,sDAAsD,CAAC,CAAC;IAC5F,CAAC;IACD,IACE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,QAAQ;QAC/D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,QAAQ,CAAC,QAAQ;QACnE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,OAAO,EAC7D,CAAC;QACD,MAAM,IAAI,uBAAuB,CAAC,wDAAwD,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,IACE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YACzC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,EAC3B,CAAC;YACD,MAAM,IAAI,uBAAuB,CAAC,+BAA+B,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAClF,MAAM,IAAI,uBAAuB,CAAC,8BAA8B,CAAC,CAAC;QACpE,CAAC;QACD,IACE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACnE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,EACpD,CAAC;YACD,MAAM,IAAI,uBAAuB,CAAC,wCAAwC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,KAAK,qEAAqE,EAAE,CAAC;YAClH,MAAM,IAAI,uBAAuB,CAAC,2CAA2C,CAAC,CAAC;QACjF,CAAC;QACD,IACE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK;YAC7D,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,EACxC,CAAC;YACD,MAAM,IAAI,uBAAuB,CAAC,8CAA8C,CAAC,CAAC;QACpF,CAAC;QACD,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,MAAM,IAAI,uBAAuB,CAAC,iDAAiD,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,KAAK,6DAA6D,EAAE,CAAC;QACnG,MAAM,IAAI,uBAAuB,CAAC,2CAA2C,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;QAC1G,MAAM,IAAI,uBAAuB,CAAC,uCAAuC,CAAC,CAAC;IAC7E,CAAC;IACD,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iCAAiC,CAAC,OAA0B,EAAE,GAA8B;IAC1G,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,uBAAuB,CAC/B,2DAA2D,EAC3D,qBAAqB,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3G,MAAM,IAAI,uBAAuB,CAC/B,uDAAuD,EACvD,wBAAwB,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,uBAAuB,CAAC,gDAAgD,EAAE,qBAAqB,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,GAAG,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,uBAAuB,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,uBAAuB,CAAC,4CAA4C,EAAE,qBAAqB,CAAC,CAAC;IACzG,CAAC;IACD,IACE,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;QACvC,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAC3B,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QACjC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB;QACjD,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAC3D,CAAC;QACD,MAAM,IAAI,uBAAuB,CAC/B,+EAA+E,EAC/E,sBAAsB,CACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAUD,MAAM,OAAO,gBAAgB;IAClB,OAAO,CAAS;IACR,SAAS,CAAe;IACxB,SAAS,CAAS;IAEnC,YAAY,UAA4C,EAAE;QACxD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/G,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;YACnG,MAAM,IAAI,uBAAuB,CAAC,6CAA6C,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAkB;QACpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3F,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAiC;QAC5C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,uBAAuB,CAAC,qCAAqC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,GAAG,CAAC,MAAsC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA6B;QACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,GAAmC,CAAC;QACpD,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC;QACjE,IACE,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YACzC,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YAC7B,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;YAC3C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YACrE,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YACnC,CAAC,SAAS;YACV,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;YAC7C,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,EAC9E,CAAC;YACD,MAAM,IAAI,uBAAuB,CAAC,4CAA4C,EAAE,0BAA0B,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAA0B,EAC1B,YAA0B,EAC1B,UAAqC;IAErC,iCAAiC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IACtD,IAAI,aAAa,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,uBAAuB,CAC/B,yBAAyB,aAAa,mBAAmB,UAAU,CAAC,QAAQ,EAAE,EAC9E,aAAa,CACd,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,uBAAuB,CAAC,0CAA0C,EAAE,oBAAoB,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,uBAAuB,CAAC,iDAAiD,EAAE,uBAAuB,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,UAAU,CAAC,QAAQ;YAC5B,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,aAAa;SAC5B,CAAC;QACF,YAAY,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,UAAU,CAAC,QAAQ;YAC5B,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,cAAc;SAC7B,CAAC;KACH,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzF,MAAM,IAAI,uBAAuB,CAAC,2DAA2D,EAAE,kBAAkB,CAAC,CAAC;IACrH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,YAA0B,EAC1B,IAAS,EACT,QAAmC,YAAY;IAE/C,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,kCAAkC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,uBAAuB,CAAC,eAAe,IAAI,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,CAAC;AAC7B,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA0B,EAC1B,YAA0B,EAC1B,YAA0B,EAC1B,UAAqC;IAErC,MAAM,4BAA4B,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,uBAAuB,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IACtD,IAAI,aAAa,KAAK,UAAU,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC5F,MAAM,IAAI,uBAAuB,CAC/B,kBAAkB,aAAa,mBAAmB,UAAU,CAAC,QAAQ,EAAE,EACvE,aAAa,CACd,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAU,EAAE,CAAC;IAC9B,IAAI,YAAiB,CAAC;IAEtB,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;YAC9B,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;YACtB,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;oBAC7C,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,GAAG,EAAE,SAAS;oBACd,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC/B,OAAO;oBACP,KAAK,EAAE,YAAY,CAAC,KAAK;iBAC1B,CAAC,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;gBAC/C,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;gBAC9B,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAClC,OAAO;gBACP,KAAK,EAAE,YAAY,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,YAAY,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;YAC9C,OAAO,EAAE,UAAU,CAAC,QAAQ;YAC5B,GAAG,EAAE,OAAO;YACZ,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE;gBACJ;oBACE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;oBACpD,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;oBAC5C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;oBAChE,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;oBAClD,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;oBACpD,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC9D,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;iBACjD;aACF;YACD,OAAO;YACP,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;YAC9C,OAAO,EAAE,UAAU,CAAC,QAAQ;YAC5B,GAAG,EAAE,OAAO;YACZ,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE;gBACJ;oBACE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS;oBAC7C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ;oBAC3C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;oBACzD,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS;oBAC7C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;oBACvD,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO;iBAC1C;aACF;YACD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,OAAO;YACP,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAClE,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC"}
@@ -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"}