@bananapus/nana-sdk-core 3.3.0 → 3.4.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 (69) hide show
  1. package/dist/cjs/review/heldWrite.js +1 -1
  2. package/dist/cjs/review/heldWrite.js.map +1 -1
  3. package/dist/cjs/review/messages.d.ts +3 -1
  4. package/dist/cjs/review/messages.d.ts.map +1 -1
  5. package/dist/cjs/review/messages.js +4 -2
  6. package/dist/cjs/review/messages.js.map +1 -1
  7. package/dist/cjs/review/writeHold.d.ts +9 -6
  8. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  9. package/dist/cjs/review/writeHold.js +12 -4
  10. package/dist/cjs/review/writeHold.js.map +1 -1
  11. package/dist/cjs/review/writeRecovery.d.ts +3 -2
  12. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  13. package/dist/cjs/review/writeRecovery.js +3 -2
  14. package/dist/cjs/review/writeRecovery.js.map +1 -1
  15. package/dist/cjs/v6/defifa.d.ts +4 -2
  16. package/dist/cjs/v6/defifa.d.ts.map +1 -1
  17. package/dist/cjs/v6/defifa.js +10 -6
  18. package/dist/cjs/v6/defifa.js.map +1 -1
  19. package/dist/cjs/v6/executionErrors.d.ts +69 -11
  20. package/dist/cjs/v6/executionErrors.d.ts.map +1 -1
  21. package/dist/cjs/v6/executionErrors.js +160 -75
  22. package/dist/cjs/v6/executionErrors.js.map +1 -1
  23. package/dist/cjs/v6/index.d.ts +2 -1
  24. package/dist/cjs/v6/index.d.ts.map +1 -1
  25. package/dist/cjs/v6/index.js +4 -1
  26. package/dist/cjs/v6/index.js.map +1 -1
  27. package/dist/cjs/v6/pay.d.ts +23 -8
  28. package/dist/cjs/v6/pay.d.ts.map +1 -1
  29. package/dist/cjs/v6/pay.js +313 -32
  30. package/dist/cjs/v6/pay.js.map +1 -1
  31. package/dist/cjs/v6/uniswapV3.d.ts +21 -0
  32. package/dist/cjs/v6/uniswapV3.d.ts.map +1 -0
  33. package/dist/cjs/v6/uniswapV3.js +72 -0
  34. package/dist/cjs/v6/uniswapV3.js.map +1 -0
  35. package/dist/esm/review/heldWrite.js +2 -2
  36. package/dist/esm/review/heldWrite.js.map +1 -1
  37. package/dist/esm/review/messages.d.ts +3 -1
  38. package/dist/esm/review/messages.d.ts.map +1 -1
  39. package/dist/esm/review/messages.js +3 -1
  40. package/dist/esm/review/messages.js.map +1 -1
  41. package/dist/esm/review/writeHold.d.ts +9 -6
  42. package/dist/esm/review/writeHold.d.ts.map +1 -1
  43. package/dist/esm/review/writeHold.js +12 -4
  44. package/dist/esm/review/writeHold.js.map +1 -1
  45. package/dist/esm/review/writeRecovery.d.ts +3 -2
  46. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  47. package/dist/esm/review/writeRecovery.js +3 -2
  48. package/dist/esm/review/writeRecovery.js.map +1 -1
  49. package/dist/esm/v6/defifa.d.ts +4 -2
  50. package/dist/esm/v6/defifa.d.ts.map +1 -1
  51. package/dist/esm/v6/defifa.js +10 -6
  52. package/dist/esm/v6/defifa.js.map +1 -1
  53. package/dist/esm/v6/executionErrors.d.ts +69 -11
  54. package/dist/esm/v6/executionErrors.d.ts.map +1 -1
  55. package/dist/esm/v6/executionErrors.js +159 -76
  56. package/dist/esm/v6/executionErrors.js.map +1 -1
  57. package/dist/esm/v6/index.d.ts +2 -1
  58. package/dist/esm/v6/index.d.ts.map +1 -1
  59. package/dist/esm/v6/index.js +2 -1
  60. package/dist/esm/v6/index.js.map +1 -1
  61. package/dist/esm/v6/pay.d.ts +23 -8
  62. package/dist/esm/v6/pay.d.ts.map +1 -1
  63. package/dist/esm/v6/pay.js +313 -33
  64. package/dist/esm/v6/pay.js.map +1 -1
  65. package/dist/esm/v6/uniswapV3.d.ts +21 -0
  66. package/dist/esm/v6/uniswapV3.d.ts.map +1 -0
  67. package/dist/esm/v6/uniswapV3.js +68 -0
  68. package/dist/esm/v6/uniswapV3.js.map +1 -0
  69. package/package.json +1 -1
@@ -3,8 +3,10 @@ import { DEFAULT_ALLOW_OVERSPENDING, MAX_RESERVED_PERCENT, NATIVE_TOKEN, } from
3
3
  import { jbBuybackHookRegistryAbi, jbMultiTerminalAbi, } from "../generated/juicebox.js";
4
4
  import { createHookMetadata, hookMetadataId } from "../utils/hook.js";
5
5
  import { slippageFloor } from "./cashOut.js";
6
+ import { getAccountingContexts } from "./terminals.js";
6
7
  import { v6Address } from "./types.js";
7
- import { quoteUniswapV4ExactInputSingle, uniswapV4PoolId, } from "./uniswapV4.js";
8
+ import { quoteUniswapV3ExactInputSingle } from "./uniswapV3.js";
9
+ import { quoteUniswapV4ExactInputSingle, uniswapV4PoolId, uniswapV4SwapDirection, } from "./uniswapV4.js";
8
10
  /**
9
11
  * Build a `pay(projectId, token, amount, beneficiary, minReturnedTokens, memo,
10
12
  * metadata)` transaction request for a v6 terminal.
@@ -303,13 +305,252 @@ const poolKeyOfAbi = [
303
305
  ],
304
306
  },
305
307
  ];
308
+ /** `prepareUserPay`'s tolerance on its quote and fallback minimum: 1%. */
309
+ export const PAY_DEFAULT_SLIPPAGE_BPS = 100n;
310
+ /**
311
+ * The buyback pool a payment's spec reports, and the terminal token it is
312
+ * keyed to, or null. A router converts the paid token first, so its pool is
313
+ * keyed to another token the project accepts. The pool id is the key's hash,
314
+ * so a match proves the key.
315
+ */
316
+ async function buybackPoolOf(client, { chainId, hook, projectId, token, poolId, }) {
317
+ const poolOf = async (terminalToken) => ({
318
+ terminalToken,
319
+ key: await client.readContract({
320
+ address: hook,
321
+ abi: poolKeyOfAbi,
322
+ functionName: "poolKeyOf",
323
+ args: [
324
+ projectId,
325
+ terminalToken.toLowerCase() === NATIVE_TOKEN.toLowerCase()
326
+ ? zeroAddress
327
+ : terminalToken,
328
+ ],
329
+ }),
330
+ });
331
+ const paid = await poolOf(token);
332
+ if (uniswapV4PoolId(paid.key) === poolId)
333
+ return paid;
334
+ const contexts = await getAccountingContexts(client, { chainId, projectId });
335
+ const pools = await Promise.all(contexts
336
+ .filter((c) => c.token.toLowerCase() !== token.toLowerCase())
337
+ .map((c) => poolOf(c.token)));
338
+ return pools.find((p) => uniswapV4PoolId(p.key) === poolId) ?? null;
339
+ }
340
+ const previewPayForOutputs = jbMultiTerminalAbi.find((item) => item.type === "function" && item.name === "previewPayFor").outputs;
341
+ // Only these reads of the router and core: their full ABIs would weigh on every pay card.
342
+ const routerConversionAbi = [
343
+ {
344
+ type: "function",
345
+ name: "projectIdOf",
346
+ stateMutability: "view",
347
+ inputs: [{ name: "token", type: "address" }],
348
+ outputs: [{ name: "", type: "uint256" }],
349
+ },
350
+ {
351
+ type: "function",
352
+ name: "primaryTerminalOf",
353
+ stateMutability: "view",
354
+ inputs: [
355
+ { name: "projectId", type: "uint256" },
356
+ { name: "token", type: "address" },
357
+ ],
358
+ outputs: [{ name: "", type: "address" }],
359
+ },
360
+ {
361
+ type: "function",
362
+ name: "previewTerminalPayOf",
363
+ stateMutability: "view",
364
+ inputs: [
365
+ { name: "destTerminal", type: "address" },
366
+ { name: "projectId", type: "uint256" },
367
+ { name: "token", type: "address" },
368
+ { name: "amount", type: "uint256" },
369
+ { name: "beneficiary", type: "address" },
370
+ { name: "metadata", type: "bytes" },
371
+ ],
372
+ outputs: previewPayForOutputs,
373
+ },
374
+ {
375
+ type: "function",
376
+ name: "wrappedNativeToken",
377
+ stateMutability: "view",
378
+ inputs: [],
379
+ outputs: [{ name: "", type: "address" }],
380
+ },
381
+ {
382
+ type: "function",
383
+ name: "previewSwapAmountOutOf",
384
+ stateMutability: "view",
385
+ inputs: [
386
+ { name: "tokenIn", type: "address" },
387
+ { name: "tokenOut", type: "address" },
388
+ { name: "amount", type: "uint256" },
389
+ { name: "metadata", type: "bytes" },
390
+ ],
391
+ outputs: [{ name: "amountOut", type: "uint256" }],
392
+ },
393
+ {
394
+ type: "function",
395
+ name: "discoverBestPool",
396
+ stateMutability: "view",
397
+ inputs: [
398
+ { name: "normalizedTokenIn", type: "address" },
399
+ { name: "normalizedTokenOut", type: "address" },
400
+ ],
401
+ outputs: [
402
+ {
403
+ name: "",
404
+ type: "tuple",
405
+ components: [
406
+ { name: "isV4", type: "bool" },
407
+ { name: "v3Pool", type: "address" },
408
+ {
409
+ name: "v4Key",
410
+ type: "tuple",
411
+ components: [
412
+ { name: "currency0", type: "address" },
413
+ { name: "currency1", type: "address" },
414
+ { name: "fee", type: "uint24" },
415
+ { name: "tickSpacing", type: "int24" },
416
+ { name: "hooks", type: "address" },
417
+ ],
418
+ },
419
+ ],
420
+ },
421
+ ],
422
+ },
423
+ ];
424
+ const v3PoolFeeAbi = [
425
+ {
426
+ type: "function",
427
+ name: "fee",
428
+ stateMutability: "view",
429
+ inputs: [],
430
+ outputs: [{ name: "", type: "uint24" }],
431
+ },
432
+ ];
433
+ /**
434
+ * What the router terminal's swap of the whole payment into `tokenOut` is
435
+ * quoted to return (fee and price impact included), and the floor it reverts
436
+ * below, from the pool the router picks. Null when the route is not that one
437
+ * swap, such as when the router cashes a project token out first.
438
+ */
439
+ async function routerConversionOf(client, { chainId, tokenIn, tokenOut, amount, }) {
440
+ const router = v6Address("JBRouterTerminal", chainId);
441
+ const [sourceProjectId, wrapped] = await Promise.all([
442
+ client.readContract({
443
+ address: v6Address("JBTokens", chainId),
444
+ abi: routerConversionAbi,
445
+ functionName: "projectIdOf",
446
+ args: [tokenIn],
447
+ }),
448
+ client.readContract({
449
+ address: router,
450
+ abi: routerConversionAbi,
451
+ functionName: "wrappedNativeToken",
452
+ }),
453
+ ]);
454
+ // The router cashes a project token out before any swap.
455
+ if (sourceProjectId !== 0n)
456
+ return null;
457
+ const isNative = (t) => t.toLowerCase() === NATIVE_TOKEN.toLowerCase() ||
458
+ t.toLowerCase() === zeroAddress;
459
+ const wrap = (t) => (isNative(t) ? wrapped : t);
460
+ const [floor, pool] = await Promise.all([
461
+ client.readContract({
462
+ address: router,
463
+ abi: routerConversionAbi,
464
+ functionName: "previewSwapAmountOutOf",
465
+ args: [tokenIn, tokenOut, amount, "0x"],
466
+ }),
467
+ client.readContract({
468
+ address: router,
469
+ abi: routerConversionAbi,
470
+ functionName: "discoverBestPool",
471
+ args: [wrap(tokenIn), wrap(tokenOut)],
472
+ }),
473
+ ]);
474
+ let expected;
475
+ if (pool.isV4) {
476
+ // V4 pools hold the native token itself, which the router uses for wrapped input.
477
+ const unwrap = (t) => wrap(t).toLowerCase() === wrapped.toLowerCase() ? zeroAddress : t;
478
+ const zeroForOne = uniswapV4SwapDirection({
479
+ poolKey: pool.v4Key,
480
+ tokenIn: unwrap(tokenIn),
481
+ tokenOut: unwrap(tokenOut),
482
+ });
483
+ if (zeroForOne === null)
484
+ return null;
485
+ expected = await quoteUniswapV4ExactInputSingle(client, {
486
+ chainId,
487
+ poolKey: pool.v4Key,
488
+ zeroForOne,
489
+ amountIn: amount,
490
+ });
491
+ }
492
+ else {
493
+ expected = await quoteUniswapV3ExactInputSingle(client, {
494
+ chainId,
495
+ tokenIn: wrap(tokenIn),
496
+ tokenOut: wrap(tokenOut),
497
+ fee: await client.readContract({
498
+ address: pool.v3Pool,
499
+ abi: v3PoolFeeAbi,
500
+ functionName: "fee",
501
+ }),
502
+ amountIn: amount,
503
+ });
504
+ }
505
+ return expected >= floor ? { expected, floor } : null;
506
+ }
507
+ /**
508
+ * The buyback spec the destination returns when the router's conversion
509
+ * returns what it is quoted to, and the router's floor. The hook's input is
510
+ * the conversion less anything taken before it, such as an NFT split, and the
511
+ * hook mints instead of swapping once minting that input reaches a fixed
512
+ * minimum, so the minimum is set from this spec. Null when the route is not
513
+ * one swap of the whole payment.
514
+ */
515
+ async function routedBuybackSpecOf(client, { chainId, projectId, tokenIn, tokenOut, amount, beneficiary, metadata, hook, reservedPercent, }) {
516
+ const conversion = await routerConversionOf(client, {
517
+ chainId,
518
+ tokenIn,
519
+ tokenOut,
520
+ amount,
521
+ });
522
+ if (!conversion)
523
+ return null;
524
+ const destination = await client.readContract({
525
+ address: v6Address("JBDirectory", chainId),
526
+ abi: routerConversionAbi,
527
+ functionName: "primaryTerminalOf",
528
+ args: [projectId, tokenOut],
529
+ });
530
+ const [, , , specs] = await client.readContract({
531
+ address: v6Address("JBRouterTerminal", chainId),
532
+ abi: routerConversionAbi,
533
+ functionName: "previewTerminalPayOf",
534
+ args: [
535
+ destination,
536
+ projectId,
537
+ tokenOut,
538
+ conversion.expected,
539
+ beneficiary,
540
+ metadata,
541
+ ],
542
+ });
543
+ const raw = specs.find((s) => s.hook.toLowerCase() === hook.toLowerCase());
544
+ const spec = raw && decodeBuybackPaySpec(raw, reservedPercent);
545
+ return spec ? { spec, floor: conversion.floor } : null;
546
+ }
306
547
  /**
307
548
  * Prepare a person's payment with {@link buildUserPayMetadata}: preview it,
308
549
  * and set the minimum the terminal enforces on the beneficiary's balance.
309
550
  *
310
- * When the project's buyback hook has a pool in the paid token, this quotes
311
- * that pool (fee and price impact included) and sends the slippage-floored
312
- * quote as an explicit minimum, so the payer gets the pool's rate whenever it
551
+ * When the project's buyback hook would swap, this quotes its pool (fee and
552
+ * price impact included) and sends the slippage-floored quote as an explicit
553
+ * minimum, so the payer gets the pool's rate whenever it
313
554
  * beats minting. The hook compares that minimum to the swap output plus the
314
555
  * leftover mint: the whole leftover mint when the swapped tokens go through
315
556
  * the reserved split (`skipSplits` false, and always on hook 1.1.1, which
@@ -321,23 +562,36 @@ const poolKeyOfAbi = [
321
562
  * which reaches zero on large buys against a thin pool and sends them to
322
563
  * minting even when the pool pays far more.
323
564
  *
324
- * Otherwise (no pool, a router converting the token first, or a failed quote)
325
- * the minimum is the payer's mint entitlement when the hook would swap, since
326
- * the hook never settles below it, and the terminal's own issuance when it
327
- * would not. If the payment then reverts, {@link decodePayFailure} says why.
565
+ * Behind a router terminal, its registry or its gateway, when the router
566
+ * converts the paid token first with one swap, the pool is the one in the
567
+ * token it converts to, quoted on what that swap is quoted to return. If the
568
+ * conversion returns noticeably less, the hook's minimum reverts the payment.
569
+ * If it returns more, the hook mints once minting reaches the minimum, which
570
+ * happens only when the pool beats minting by less than `slippageBps` plus
571
+ * that gain. The payer still receives at least the minimum, and no fixed
572
+ * minimum avoids this when the pool's edge is inside the conversion's
573
+ * uncertainty. Other routes, such as cashing a project token out first, keep
574
+ * the fallback.
575
+ *
576
+ * Otherwise (no pool, or a failed quote) the minimum is the payer's mint
577
+ * entitlement when the hook would swap, since the hook never settles below it,
578
+ * and the terminal's own issuance when it would not. If the payment then
579
+ * reverts, {@link decodePayFailure} says why. To let the payer accept less,
580
+ * prepare again with a larger `slippageBps`: the hook's minimum is in the
581
+ * metadata, so lowering `minReturnedTokens` alone does not relax it.
328
582
  *
329
583
  * When the ruleset calls buyback hook 1.4 directly (or through the omnichain
330
584
  * deployer) instead of through the registry, the metadata is keyed to the hook,
331
585
  * which reads nothing else.
332
586
  *
333
587
  * @param args.slippageBps Tolerance on the pool quote and on the fallback
334
- * minimum. Defaults to 100 (1%).
588
+ * minimum. Defaults to {@link PAY_DEFAULT_SLIPPAGE_BPS}.
335
589
  * @param args.skipSplits Whether the beneficiary keeps the swapped tokens
336
590
  * without the reserved split. Defaults to true, as a person's pay card does;
337
591
  * pass false for payments that should honor the project's splits, such as
338
592
  * fees or revenue routed into a project.
339
593
  */
340
- export async function prepareUserPay(client, { tiers, slippageBps = 100n, skipSplits = true, ...args }) {
594
+ export async function prepareUserPay(client, { tiers, slippageBps = PAY_DEFAULT_SLIPPAGE_BPS, skipSplits = true, ...args }) {
341
595
  const { chainId, projectId, token } = args;
342
596
  let metadata = buildUserPayMetadata({ chainId, tiers, skipSplits });
343
597
  let read = await readPay(client, { ...args, metadata });
@@ -362,29 +616,50 @@ export async function prepareUserPay(client, { tiers, slippageBps = 100n, skipSp
362
616
  if (!buyback || buyback.amountToSwapWith === 0n)
363
617
  return fallback;
364
618
  try {
365
- const poolKey = await client.readContract({
366
- address: buyback.hook,
367
- abi: poolKeyOfAbi,
368
- functionName: "poolKeyOf",
369
- args: [
370
- projectId,
371
- token.toLowerCase() === NATIVE_TOKEN.toLowerCase()
372
- ? zeroAddress
373
- : token,
374
- ],
619
+ const pool = await buybackPoolOf(client, {
620
+ chainId,
621
+ hook: buyback.hook,
622
+ projectId,
623
+ token,
624
+ poolId: buyback.poolId,
375
625
  });
376
- // A router converts the paid token first, so its pool is a different one.
377
- if (uniswapV4PoolId(poolKey) !== buyback.poolId)
626
+ if (!pool)
378
627
  return fallback;
628
+ let swap = buyback;
629
+ if (pool.terminalToken !== token) {
630
+ // A router converts the payment first, and its preview gave the hook the
631
+ // router's slippage floor. A minimum quoted on that would let a normal
632
+ // conversion mint while the pool pays more, so quote what the hook
633
+ // receives when the conversion returns its quote. A conversion well
634
+ // below its quote then fails with a reason.
635
+ const routed = await routedBuybackSpecOf(client, {
636
+ chainId,
637
+ projectId,
638
+ tokenIn: token,
639
+ tokenOut: pool.terminalToken,
640
+ amount: args.amount,
641
+ beneficiary: args.beneficiary,
642
+ metadata,
643
+ hook: buyback.hook,
644
+ reservedPercent: buyback.reservedPercent,
645
+ });
646
+ // The floor preview must be this route's: no more than the floor reached the hook.
647
+ if (!routed ||
648
+ routed.floor < buyback.amountToSwapWith ||
649
+ routed.spec.poolId !== buyback.poolId) {
650
+ return fallback;
651
+ }
652
+ swap = routed.spec;
653
+ }
379
654
  const quote = await quoteUniswapV4ExactInputSingle(client, {
380
655
  chainId,
381
- poolKey,
382
- zeroForOne: !buyback.projectTokenIs0,
383
- amountIn: buyback.amountToSwapWith,
656
+ poolKey: pool.key,
657
+ zeroForOne: !swap.projectTokenIs0,
658
+ amountIn: swap.amountToSwapWith,
384
659
  });
385
660
  const minimumSwapAmountOut = slippageFloor(quote, slippageBps);
386
661
  // The pool loses to minting: leave the payment on the mint path.
387
- if (minimumSwapAmountOut <= buyback.tokenCountWithoutHook)
662
+ if (minimumSwapAmountOut <= swap.tokenCountWithoutHook)
388
663
  return fallback;
389
664
  const quotedMetadata = buildUserPayMetadata({
390
665
  chainId,
@@ -401,9 +676,14 @@ export async function prepareUserPay(client, { tiers, slippageBps = 100n, skipSp
401
676
  functionName: "previewPayFor",
402
677
  args: [projectId, token, args.amount, args.beneficiary, quotedMetadata],
403
678
  });
404
- const swaps = quotedSpecs.some((s) => !s.noop && s.hook.toLowerCase() === buyback.hook.toLowerCase());
405
- if (!swaps)
679
+ // It must still swap, and in the quoted pool: a router may pick another route.
680
+ const quotedSpec = quotedSpecs.find((s) => s.hook.toLowerCase() === buyback.hook.toLowerCase());
681
+ if (!quotedSpec ||
682
+ quotedSpec.noop ||
683
+ decodeBuybackPaySpec(quotedSpec, buyback.reservedPercent)?.poolId !==
684
+ buyback.poolId) {
406
685
  return fallback;
686
+ }
407
687
  // A router folds the hook's estimate into its counts, so only the
408
688
  // multi-terminal's own counts are known to be its issuance.
409
689
  const issuedByTerminal = args.terminal.toLowerCase() ===
@@ -413,15 +693,15 @@ export async function prepareUserPay(client, { tiers, slippageBps = 100n, skipSp
413
693
  reservedTokenCount: quotedReservedCount,
414
694
  }
415
695
  : { beneficiaryTokenCount: 0n, reservedTokenCount: 0n };
416
- const directMint = directMintOf(buyback, weight);
696
+ const directMint = directMintOf(swap, weight);
417
697
  // The swapped tokens skip the split, or are reminted through it with the
418
698
  // direct mint. The terminal's own issuance, such as for NFT splits, adds.
419
699
  const settle = (swapTokenCount) => {
420
- const split = buyback.skipSplits
421
- ? splitOf(directMint, buyback.reservedPercent)
422
- : splitOf(swapTokenCount + directMint, buyback.reservedPercent);
700
+ const split = swap.skipSplits
701
+ ? splitOf(directMint, swap.reservedPercent)
702
+ : splitOf(swapTokenCount + directMint, swap.reservedPercent);
423
703
  return {
424
- beneficiaryTokenCount: (buyback.skipSplits ? swapTokenCount : 0n) +
704
+ beneficiaryTokenCount: (swap.skipSplits ? swapTokenCount : 0n) +
425
705
  split.beneficiaryTokenCount +
426
706
  issuedByTerminal.beneficiaryTokenCount,
427
707
  reservedTokenCount: split.reservedTokenCount + issuedByTerminal.reservedTokenCount,
@@ -1 +1 @@
1
- {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../../src/v6/pay.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACnB,UAAU,EACV,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACL,8BAA8B,EAC9B,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAexB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,iBAAiB,GAAG,EAAE,EACtB,IAAI,GAAG,EAAE,EACT,QAAQ,GAAG,IAAI,GAWhB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;IAEpE,OAAO;QACL,OAAO;QACP,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,kBAAkB;QACvB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE;YACJ,SAAS;YACT,KAAK;YACL,MAAM;YACN,WAAW;YACX,iBAAiB;YACjB,IAAI;YACJ,QAAQ;SACT;QACD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAoB,EACpB,IAAkC;IAElC,OAAO,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC;AAkCD;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,IAA0B,EAC1B,sBAA8B;IAE9B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CACzB,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAS,CAAC;IAClE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;QAC/B,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzB,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7B,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9B,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACpB,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAChB,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;QACtB,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAC/B,UAAU,EAAE,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1C,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB;KACjE,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,UAAkB,EAAE,eAAuB;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACzC,MAAM,qBAAqB,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3E,OAAO;QACL,qBAAqB;QACrB,kBAAkB,EAAE,UAAU,GAAG,qBAAqB;KACvD,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,YAAY,CAAC,IAAoB,EAAE,MAAc;IACxD,OAAO,IAAI,CAAC,gBAAgB,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW;QACrD,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,EACN,eAAe,GAAG,EAAE,EACpB,kBAAkB,GASnB;IACC,IAAI,IAAI,GAAe,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;IACrE,IACE,CAAC,WAAW;QACZ,qBAAqB,KAAK,EAAE;QAC5B,kBAAkB,KAAK,EAAE,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,cAAc,GAClB,CAAC,OAAO,CAAC,cAAc;YACvB,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB;YACjD,CAAC,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CACvB,OAAO,CAAC,UAAU;YAChB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,cAAc,GAAG,oBAAoB,EACzC,OAAO,CAAC,eAAe,CACxB,CAAC;QACF,IAAI,OAAO,CAAC,UAAU;YAAE,SAAS,CAAC,qBAAqB,IAAI,cAAc,CAAC;QAE1E,IACE,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB;YAC5D,CAAC,SAAS,CAAC,qBAAqB,KAAK,IAAI,CAAC,qBAAqB;gBAC7D,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EACzD,CAAC;YACD,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAoB,EAAE,MAAc;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU;QAC7B,CAAC,CAAC,IAAI,CAAC,qBAAqB;QAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC;aACtD,qBAAqB,CAAC;IAC7B,OAAO,CACL,OAAO;QACP,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;aACtD,qBAAqB,CACzB,CAAC;AACJ,CAAC;AAED,qEAAqE;AACrE,KAAK,UAAU,OAAO,CACpB,MAAoB,EACpB,EACE,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,QAAQ,GAAG,IAAI,GACc;IAW/B,MAAM,CACJ,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC5B,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,kBAAkB;QACvB,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;KACxD,CAAC,CAAC;IACH,8EAA8E;IAC9E,MAAM,iBAAiB,GACrB,kBAAkB,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,WAAW,GACf,iBAAiB;QACjB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC,CAAC;IACZ,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IAC3D,MAAM,IAAI,GAAG,WAAW;QACtB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAC1D;QACH,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,OAAO,EAAE,mBAAmB,CAAC;YAC3B,WAAW;YACX,qBAAqB;YACrB,kBAAkB;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,eAAe;YACf,kBAAkB;SACnB,CAAC;QACF,6BAA6B,EAAE,qBAAqB;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,cAAc,EACZ,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC;QACtE,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,wFAAwF;AACxF,MAAM,kBAAkB,GAAG;IACzB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,iBAAiB;QACvB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;SACvC;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;oBAC3C,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE;iBAChD;aACF;SACF;KACF;CACO,CAAC;AAEX,KAAK,UAAU,mBAAmB,CAChC,MAAoB,EACpB,OAAkB,EAClB,SAAiB,EACjB,OAAkD;IAElD,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,OAAgB,EAAE,SAAkB,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,GAAG,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9C,SAAS,GAAG,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,UAAU,CACzB,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAC3E,CAAC;IACF,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,kBAAkB;QACvB,YAAY,EAAE,iBAAiB;QAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC3D,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,qEAAqE;AACrE,KAAK,UAAU,qBAAqB,CAClC,MAAoB,EACpB,OAAkB,EAClB,SAAiB;IAEjB,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACrC,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,wBAAwB;QAC7B,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE,CAAC,SAAS,CAAC;KAClB,CAAC,CAAC;IACH,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAS5D,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE;SAC3C;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;oBACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;iBACnC;aACF;SACF;KACF;CACO,CAAC;AAEX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAoB,EACpB,EACE,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,EACL,MAAM,GAOP;IAED,MAAM,MAAM,GAAG,KAAK,EAAE,aAAsB,EAAE,EAAE,CAAC,CAAC;QAChD,aAAa;QACb,GAAG,EAAE,MAAM,MAAM,CAAC,YAAY,CAAC;YAC7B,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,YAAY;YACjB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE;gBACJ,SAAS;gBACT,aAAa,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;oBACxD,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,aAAa;aAClB;SACF,CAAC;KACH,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,QAAQ;SACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;SAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC/B,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC;AACtE,CAAC;AAMD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,IAAI,CAClD,CAAC,IAAI,EAAyB,EAAE,CAC9B,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAC3D,CAAC,OAAO,CAAC;AAEX,0FAA0F;AAC1F,MAAM,mBAAmB,GAAG;IAC1B;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;QACzB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACnC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,sBAAsB;QAC5B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;SACpC;QACD,OAAO,EAAE,oBAAoB;KAC9B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,oBAAoB;QAC1B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,wBAAwB;QAC9B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAClD;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9C,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;SAChD;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;oBAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;oBACnC;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE;4BACV,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC/B,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;4BACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;yBACnC;qBACF;iBACF;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACxC;CACO,CAAC;AAEX;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAoB,EACpB,EACE,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,GAMP;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;YACvC,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC;QACF,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,oBAAoB;SACnC,CAAC;KACH,CAAC,CAAC;IACH,yDAAyD;IACzD,IAAI,eAAe,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAE,CAC9B,CAAC,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;QAC9C,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,wBAAwB;YACtC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;SACxC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtC,CAAC;KACH,CAAC,CAAC;IACH,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,kFAAkF;QAClF,MAAM,MAAM,GAAG,CAAC,CAAU,EAAE,EAAE,CAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,sBAAsB,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;YACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,QAAQ,GAAG,MAAM,8BAA8B,CAAC,MAAM,EAAE;YACtD,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,UAAU;YACV,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,8BAA8B,CAAC,MAAM,EAAE;YACtD,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;YACxB,GAAG,EAAE,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC7B,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,GAAG,EAAE,YAAY;gBACjB,YAAY,EAAE,KAAK;aACpB,CAAC;YACF,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAoB,EACpB,EACE,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,eAAe,GAWhB;IAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;QAClD,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC5C,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;QAC1C,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC5B,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC;QAC/C,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,sBAAsB;QACpC,IAAI,EAAE;YACJ,WAAW;YACX,SAAS;YACT,QAAQ;YACR,UAAU,CAAC,QAAQ;YACnB,WAAW;YACX,QAAQ;SACT;KACF,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,IAAI,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,EACE,KAAK,EACL,WAAW,GAAG,wBAAwB,EACtC,UAAU,GAAG,IAAI,EACjB,GAAG,IAAI,EAKR;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,QAAQ,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,4EAA4E;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACpC,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,EACJ,OAAO,EACP,6BAA6B,EAC7B,MAAM,EACN,OAAO,EACP,cAAc,GACf,GAAG,IAAI,CAAC;IACT,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAoB;QAChC,QAAQ;QACR,OAAO;QACP,iBAAiB,EAAE,aAAa,CAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;YACtB,CAAC,CAAC,uDAAuD;gBACvD,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;YACxD,CAAC,CAAC,6BAA6B,EACjC,WAAW,CACZ;KACF,CAAC;IACF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;YACvC,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS;YACT,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC;QAC3B,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACjC,yEAAyE;YACzE,uEAAuE;YACvE,mEAAmE;YACnE,oEAAoE;YACpE,4CAA4C;YAC5C,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;gBAC/C,OAAO;gBACP,SAAS;gBACT,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ;gBACR,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAC;YACH,mFAAmF;YACnF,IACE,CAAC,MAAM;gBACP,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,gBAAgB;gBACvC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EACrC,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,8BAA8B,CAAC,MAAM,EAAE;YACzD,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,UAAU,EAAE,CAAC,IAAI,CAAC,eAAe;YACjC,QAAQ,EAAE,IAAI,CAAC,gBAAgB;SAChC,CAAC,CAAC;QACH,MAAM,oBAAoB,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/D,iEAAiE;QACjE,IAAI,oBAAoB,IAAI,IAAI,CAAC,qBAAqB;YAAE,OAAO,QAAQ,CAAC;QACxE,MAAM,cAAc,GAAG,oBAAoB,CAAC;YAC1C,OAAO;YACP,KAAK;YACL,oBAAoB;YACpB,UAAU;YACV,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,CAAC,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,WAAW,CAAC,GAChE,MAAM,MAAM,CAAC,YAAY,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC;SACxE,CAAC,CAAC;QACL,+EAA+E;QAC/E,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAC3D,CAAC;QACF,IACE,CAAC,UAAU;YACX,UAAU,CAAC,IAAI;YACf,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM;gBAC/D,OAAO,CAAC,MAAM,EAChB,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,kEAAkE;QAClE,4DAA4D;QAC5D,MAAM,gBAAgB,GACpB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC3B,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE;YACjD,CAAC,CAAC;gBACE,qBAAqB,EAAE,sBAAsB;gBAC7C,kBAAkB,EAAE,mBAAmB;aACxC;YACH,CAAC,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,MAAM,GAAG,CAAC,cAAsB,EAAc,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;gBAC3B,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;gBAC3C,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO;gBACL,qBAAqB,EACnB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,KAAK,CAAC,qBAAqB;oBAC3B,gBAAgB,CAAC,qBAAqB;gBACxC,kBAAkB,EAChB,KAAK,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,kBAAkB;aACjE,CAAC;QACJ,CAAC,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;YACtB,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB;SACtE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,iBAAiB,GAAG,0BAA0B,GAO/C;IACC,MAAM,MAAM,GAAG,gBAAgB,IAAI,WAAW,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CACrC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EACxC,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAC/C,CAAC;IAEF,OAAO,kBAAkB,CACvB,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAC/B,CAAC,WAAW,CAAC,CACP,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,IAAI,EACJ,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GAAG,KAAK,GAMnB;IACC,OAAO,kBAAkB,CACvB,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAC7B;QACE,mBAAmB,CACjB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAC5D,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACrD;KACF,CACF,CAAC;AACJ,CAAC;AASD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,OAAO,EACP,KAAK,EACL,oBAAoB,GAAG,EAAE,EACzB,UAAU,GAAG,IAAI,EACjB,IAAI,GAAG,SAAS,CAAC,uBAAuB,EAAE,OAAO,CAAC,GAOnD;IACC,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAU;QAClB,mBAAmB,CACjB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAC5D,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACvC;KACF,CAAC;IACF,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CACP,mBAAmB,CACjB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EACxC;YACE,KAAK,CAAC,iBAAiB,IAAI,0BAA0B;YACrD,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;SAChC,CACF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Address, PublicClient } from "viem";
2
+ import { JBChainId } from "../types.js";
3
+ /**
4
+ * Canonical Uniswap V3 QuoterV2 deployments. Each one's `factory()` and
5
+ * `WETH9()` match the factory and wrapped native token the v6 router terminal
6
+ * swaps through on that chain. Missing chains must fail closed.
7
+ */
8
+ export declare const UNISWAP_V3_QUOTER_V2_ADDRESSES: Readonly<Partial<Record<JBChainId, Address>>>;
9
+ /**
10
+ * Quote an exact-input swap through one Uniswap V3 pool, fee and price impact
11
+ * included. Tokens are ERC-20s: pass the wrapped native token, not the native
12
+ * sentinel.
13
+ */
14
+ export declare function quoteUniswapV3ExactInputSingle(client: PublicClient, { chainId, tokenIn, tokenOut, fee, amountIn, }: {
15
+ chainId: JBChainId;
16
+ tokenIn: Address;
17
+ tokenOut: Address;
18
+ fee: number;
19
+ amountIn: bigint;
20
+ }): Promise<bigint>;
21
+ //# sourceMappingURL=uniswapV3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswapV3.d.ts","sourceRoot":"","sources":["../../../src/v6/uniswapV3.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,YAAY,EAGb,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,QAAQ,CACnD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CASpC,CAAC;AA6BF;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,YAAY,EACpB,EACE,OAAO,EACP,OAAO,EACP,QAAQ,EACR,GAAG,EACH,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
@@ -0,0 +1,68 @@
1
+ import { decodeFunctionResult, encodeFunctionData, } from "viem";
2
+ /**
3
+ * Canonical Uniswap V3 QuoterV2 deployments. Each one's `factory()` and
4
+ * `WETH9()` match the factory and wrapped native token the v6 router terminal
5
+ * swaps through on that chain. Missing chains must fail closed.
6
+ */
7
+ export const UNISWAP_V3_QUOTER_V2_ADDRESSES = {
8
+ 1: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
9
+ 10: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
10
+ 8453: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
11
+ 42161: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
12
+ 84532: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27",
13
+ 421614: "0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B",
14
+ 11155111: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",
15
+ };
16
+ const V3_QUOTER_ABI = [
17
+ {
18
+ type: "function",
19
+ name: "quoteExactInputSingle",
20
+ stateMutability: "nonpayable",
21
+ inputs: [
22
+ {
23
+ name: "params",
24
+ type: "tuple",
25
+ components: [
26
+ { name: "tokenIn", type: "address" },
27
+ { name: "tokenOut", type: "address" },
28
+ { name: "amountIn", type: "uint256" },
29
+ { name: "fee", type: "uint24" },
30
+ { name: "sqrtPriceLimitX96", type: "uint160" },
31
+ ],
32
+ },
33
+ ],
34
+ outputs: [
35
+ { name: "amountOut", type: "uint256" },
36
+ { name: "sqrtPriceX96After", type: "uint160" },
37
+ { name: "initializedTicksCrossed", type: "uint32" },
38
+ { name: "gasEstimate", type: "uint256" },
39
+ ],
40
+ },
41
+ ];
42
+ /**
43
+ * Quote an exact-input swap through one Uniswap V3 pool, fee and price impact
44
+ * included. Tokens are ERC-20s: pass the wrapped native token, not the native
45
+ * sentinel.
46
+ */
47
+ export async function quoteUniswapV3ExactInputSingle(client, { chainId, tokenIn, tokenOut, fee, amountIn, }) {
48
+ const quoter = UNISWAP_V3_QUOTER_V2_ADDRESSES[chainId];
49
+ if (!quoter)
50
+ throw new Error(`No supported Uniswap V3 quoter on chain ${chainId}.`);
51
+ const call = await client.call({
52
+ to: quoter,
53
+ data: encodeFunctionData({
54
+ abi: V3_QUOTER_ABI,
55
+ functionName: "quoteExactInputSingle",
56
+ args: [{ tokenIn, tokenOut, amountIn, fee, sqrtPriceLimitX96: 0n }],
57
+ }),
58
+ });
59
+ if (!call.data)
60
+ throw new Error("Uniswap V3 quoter returned no data.");
61
+ const [amountOut] = decodeFunctionResult({
62
+ abi: V3_QUOTER_ABI,
63
+ functionName: "quoteExactInputSingle",
64
+ data: call.data,
65
+ });
66
+ return amountOut;
67
+ }
68
+ //# sourceMappingURL=uniswapV3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniswapV3.js","sourceRoot":"","sources":["../../../src/v6/uniswapV3.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,MAAM,CAAC;AAGd;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAEvC;IACF,CAAC,EAAE,4CAA4C;IAC/C,EAAE,EAAE,4CAA4C;IAChD,IAAI,EAAE,4CAA4C;IAClD,KAAK,EAAE,4CAA4C;IACnD,KAAK,EAAE,4CAA4C;IACnD,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,uBAAuB;QAC7B,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC/C;aACF;SACF;QACD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;YACtC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9C,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;SACzC;KACF;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,MAAoB,EACpB,EACE,OAAO,EACP,OAAO,EACP,QAAQ,EACR,GAAG,EACH,QAAQ,GAOT;IAED,MAAM,MAAM,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,GAAG,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC7B,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,uBAAuB;YACrC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;SACpE,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvE,MAAM,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC;QACvC,GAAG,EAAE,aAAa;QAClB,YAAY,EAAE,uBAAuB;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bananapus/nana-sdk-core",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "repository": {