@continuumdao/ctm-mpc-defi 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +20 -78
  2. package/dist/agent/catalog.cjs +563 -5
  3. package/dist/agent/catalog.cjs.map +1 -1
  4. package/dist/agent/catalog.d.ts +166 -20
  5. package/dist/agent/catalog.js +551 -7
  6. package/dist/agent/catalog.js.map +1 -1
  7. package/dist/agent/skills/aave-v4/SKILL.md +43 -0
  8. package/dist/agent/skills/curve-dao/SKILL.md +13 -0
  9. package/dist/agent/skills/ethena/SKILL.md +10 -0
  10. package/dist/agent/skills/euler-v2/SKILL.md +10 -0
  11. package/dist/agent/skills/lido/SKILL.md +22 -0
  12. package/dist/agent/skills/maple-syrup/SKILL.md +10 -0
  13. package/dist/agent/skills/sky/SKILL.md +10 -0
  14. package/dist/agent/skills/uniswap-v4/SKILL.md +22 -0
  15. package/dist/chains/evm/index.cjs +79 -224
  16. package/dist/chains/evm/index.cjs.map +1 -1
  17. package/dist/chains/evm/index.d.ts +26 -26
  18. package/dist/chains/evm/index.js +69 -209
  19. package/dist/chains/evm/index.js.map +1 -1
  20. package/dist/chains/near/index.d.ts +1 -1
  21. package/dist/chains/solana/index.d.ts +1 -1
  22. package/dist/core/index.cjs +68 -106
  23. package/dist/core/index.cjs.map +1 -1
  24. package/dist/core/index.d.ts +21 -36
  25. package/dist/core/index.js +57 -96
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/{envelope-CcE5Cz_q.d.ts → envelope-CpBUh9eP.d.ts} +1 -1
  28. package/dist/index.cjs +356 -1855
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +7 -11
  31. package/dist/index.js +332 -1826
  32. package/dist/index.js.map +1 -1
  33. package/dist/protocols/evm/aave-v4/index.cjs +1152 -669
  34. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  35. package/dist/protocols/evm/aave-v4/index.d.ts +418 -3
  36. package/dist/protocols/evm/aave-v4/index.js +1126 -670
  37. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  38. package/dist/protocols/evm/curve-dao/index.cjs +257 -131
  39. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  40. package/dist/protocols/evm/curve-dao/index.d.ts +69 -5
  41. package/dist/protocols/evm/curve-dao/index.js +242 -124
  42. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  43. package/dist/protocols/evm/ethena/index.cjs +394 -402
  44. package/dist/protocols/evm/ethena/index.cjs.map +1 -1
  45. package/dist/protocols/evm/ethena/index.d.ts +47 -3
  46. package/dist/protocols/evm/ethena/index.js +390 -404
  47. package/dist/protocols/evm/ethena/index.js.map +1 -1
  48. package/dist/protocols/evm/euler-v2/index.cjs +2810 -1191
  49. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  50. package/dist/protocols/evm/euler-v2/index.d.ts +465 -3
  51. package/dist/protocols/evm/euler-v2/index.js +2761 -1192
  52. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  53. package/dist/protocols/evm/lido/index.cjs +351 -236
  54. package/dist/protocols/evm/lido/index.cjs.map +1 -1
  55. package/dist/protocols/evm/lido/index.d.ts +34 -4
  56. package/dist/protocols/evm/lido/index.js +348 -238
  57. package/dist/protocols/evm/lido/index.js.map +1 -1
  58. package/dist/protocols/evm/maple/index.cjs +390 -395
  59. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  60. package/dist/protocols/evm/maple/index.d.ts +23 -3
  61. package/dist/protocols/evm/maple/index.js +390 -397
  62. package/dist/protocols/evm/maple/index.js.map +1 -1
  63. package/dist/protocols/evm/sky/index.cjs +454 -232
  64. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  65. package/dist/protocols/evm/sky/index.d.ts +57 -3
  66. package/dist/protocols/evm/sky/index.js +444 -231
  67. package/dist/protocols/evm/sky/index.js.map +1 -1
  68. package/dist/protocols/evm/uniswap-v4/index.cjs +423 -658
  69. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  70. package/dist/protocols/evm/uniswap-v4/index.d.ts +3 -4
  71. package/dist/protocols/evm/uniswap-v4/index.js +422 -657
  72. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  73. package/dist/{registry-oMKlO_5z.d.ts → registry-Bv5o37_w.d.ts} +1 -1
  74. package/dist/{types-Ce2qNHai.d.cts → types-BfjWdw1j.d.ts} +3 -1
  75. package/dist/{types-5u863Fd9.d.ts → types-DUeNJLr9.d.ts} +1 -1
  76. package/package.json +7 -6
  77. package/dist/agent/catalog.d.cts +0 -939
  78. package/dist/chains/evm/index.d.cts +0 -64
  79. package/dist/chains/near/index.d.cts +0 -37
  80. package/dist/chains/solana/index.d.cts +0 -40
  81. package/dist/core/index.d.cts +0 -43
  82. package/dist/envelope-DYDPnrHZ.d.cts +0 -35
  83. package/dist/index.d.cts +0 -16
  84. package/dist/keygen-CfNp8yKJ.d.cts +0 -9
  85. package/dist/keygen-DsINazx8.d.ts +0 -9
  86. package/dist/nodeRead-BnmSaMGO.d.cts +0 -8
  87. package/dist/nodeRead-BnmSaMGO.d.ts +0 -8
  88. package/dist/protocols/evm/aave-v4/index.d.cts +0 -500
  89. package/dist/protocols/evm/curve-dao/index.d.cts +0 -147
  90. package/dist/protocols/evm/ethena/index.d.cts +0 -161
  91. package/dist/protocols/evm/euler-v2/index.d.cts +0 -317
  92. package/dist/protocols/evm/lido/index.d.cts +0 -120
  93. package/dist/protocols/evm/maple/index.d.cts +0 -109
  94. package/dist/protocols/evm/sky/index.d.cts +0 -218
  95. package/dist/protocols/evm/uniswap-v4/index.d.cts +0 -324
  96. package/dist/registry-BwZoE668.d.cts +0 -8
  97. package/dist/txParams-BC7ogvdR.d.cts +0 -19
  98. package/dist/txParams-BC7ogvdR.d.ts +0 -19
  99. package/dist/types-B8idm_gu.d.cts +0 -34
  100. package/dist/types-Ce2qNHai.d.ts +0 -57
@@ -1,6 +1,5 @@
1
- import { d as ProtocolModule } from '../../../types-Ce2qNHai.js';
1
+ import { b as KeyGenSubsetForPermit, e as ProtocolModule } from '../../../types-BfjWdw1j.js';
2
2
  import { Address } from 'viem';
3
- import { K as KeyGenSubsetForPermit } from '../../../keygen-DsINazx8.js';
4
3
 
5
4
  declare const AAVE_V4_GRAPHQL_URL = "https://api.v4.aave.com/graphql";
6
5
  declare function aaveV4Gql<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
@@ -494,7 +493,423 @@ declare function isAaveV4DepositEvmSignRequest(detail: Record<string, unknown> |
494
493
  */
495
494
  declare function resolveAaveV4DepositGasUnitsFromSignRequest(detail: Record<string, unknown> | null | undefined, batchIndex?: number): bigint | null;
496
495
 
496
+ type AaveV4ExchangeAmount = {
497
+ value: string;
498
+ name: string;
499
+ symbol: string;
500
+ };
501
+ type AaveV4SpokeLiquidationConfig = {
502
+ targetHealthFactor: string;
503
+ healthFactorForMaxBonus: string;
504
+ };
505
+ type AaveV4UserPositionRow = {
506
+ id: string;
507
+ user: string;
508
+ createdAt: string;
509
+ spoke: {
510
+ id: string;
511
+ name: string;
512
+ address: string;
513
+ chain: {
514
+ chainId: number;
515
+ name?: string | null;
516
+ };
517
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null;
518
+ };
519
+ totalSupplied: {
520
+ current: AaveV4ExchangeAmount;
521
+ };
522
+ totalDebt: {
523
+ current: AaveV4ExchangeAmount;
524
+ };
525
+ netBalance: {
526
+ current: AaveV4ExchangeAmount;
527
+ };
528
+ healthFactor: {
529
+ current: string | null;
530
+ change: {
531
+ normalized: string;
532
+ value: string;
533
+ };
534
+ };
535
+ netApy: {
536
+ normalized: string;
537
+ value: string;
538
+ };
539
+ };
540
+ type AaveV4UserPositionDetail = {
541
+ id: string;
542
+ user: string;
543
+ createdAt: string;
544
+ spoke: AaveV4UserPositionRow['spoke'];
545
+ totalSupplied: {
546
+ current: AaveV4ExchangeAmount;
547
+ change: {
548
+ normalized: string;
549
+ value: string;
550
+ };
551
+ };
552
+ totalCollateral: {
553
+ current: AaveV4ExchangeAmount;
554
+ change: {
555
+ normalized: string;
556
+ value: string;
557
+ };
558
+ };
559
+ totalDebt: {
560
+ current: AaveV4ExchangeAmount;
561
+ change: {
562
+ normalized: string;
563
+ value: string;
564
+ };
565
+ };
566
+ netBalance: {
567
+ current: AaveV4ExchangeAmount;
568
+ change: {
569
+ normalized: string;
570
+ value: string;
571
+ };
572
+ };
573
+ netCollateral: {
574
+ current: AaveV4ExchangeAmount;
575
+ change: {
576
+ normalized: string;
577
+ value: string;
578
+ };
579
+ };
580
+ netApy: {
581
+ normalized: string;
582
+ value: string;
583
+ };
584
+ netSupplyApy: {
585
+ current: {
586
+ normalized: string;
587
+ };
588
+ };
589
+ netBorrowApy: {
590
+ current: {
591
+ normalized: string;
592
+ };
593
+ };
594
+ netAccruedInterest: AaveV4ExchangeAmount;
595
+ healthFactor: {
596
+ current: string | null;
597
+ change: {
598
+ normalized: string;
599
+ value: string;
600
+ };
601
+ };
602
+ maxBorrowingPower: AaveV4ExchangeAmount;
603
+ remainingBorrowingPower: AaveV4ExchangeAmount;
604
+ averageCollateralFactor: {
605
+ normalized: string;
606
+ };
607
+ liquidationPrice: AaveV4ExchangeAmount | null;
608
+ canUpdateDynamicConfig: boolean;
609
+ netBalancePercentChange: {
610
+ normalized: string;
611
+ };
612
+ };
613
+ type Erc20TokenInfo = {
614
+ symbol: string;
615
+ name: string;
616
+ icon: string | null;
617
+ } | null;
618
+ type AaveV4UserSupplyRow = {
619
+ id: string;
620
+ isCollateral: boolean;
621
+ principal: {
622
+ amount: {
623
+ value: string;
624
+ };
625
+ token: {
626
+ address: string;
627
+ info: Erc20TokenInfo;
628
+ };
629
+ };
630
+ balance: {
631
+ amount: {
632
+ value: string;
633
+ };
634
+ token: {
635
+ address: string;
636
+ info: {
637
+ symbol: string;
638
+ name?: string;
639
+ } | null;
640
+ };
641
+ };
642
+ withdrawable: {
643
+ amount: {
644
+ value: string;
645
+ };
646
+ token: {
647
+ address: string;
648
+ info: {
649
+ symbol: string;
650
+ } | null;
651
+ };
652
+ };
653
+ interest: {
654
+ amount: {
655
+ value: string;
656
+ };
657
+ token: {
658
+ address: string;
659
+ info: {
660
+ symbol: string;
661
+ } | null;
662
+ };
663
+ };
664
+ reserve: {
665
+ id: string;
666
+ onChainId?: string | null;
667
+ summary: {
668
+ supplyApy: {
669
+ normalized: string;
670
+ value: string;
671
+ } | null;
672
+ } | null;
673
+ asset: {
674
+ underlying: {
675
+ address: string;
676
+ info: Erc20TokenInfo;
677
+ };
678
+ };
679
+ };
680
+ };
681
+ declare function formatAaveV4ExchangeLabel(ex: {
682
+ name?: string;
683
+ symbol?: string;
684
+ } | null | undefined): string;
685
+ declare function formatAaveV4PositionPercent(normalized: string | undefined, value: string | undefined): string;
686
+ declare function formatAaveV4PositionHealthFactor(raw: string | null | undefined): string;
687
+ declare function fetchAaveV4UserPositionsForChain(args: {
688
+ user: string;
689
+ chainId: number;
690
+ }): Promise<readonly AaveV4UserPositionRow[]>;
691
+ type AaveV4UserPositionsByAsset = {
692
+ forAsset: readonly AaveV4UserPositionRow[];
693
+ other: readonly AaveV4UserPositionRow[];
694
+ filterUnderlying: `0x${string}` | null;
695
+ };
696
+ declare function fetchAaveV4UserPositionsByAssetOnChain(args: {
697
+ user: string;
698
+ chainId: number;
699
+ filterUnderlying: `0x${string}` | null;
700
+ }): Promise<AaveV4UserPositionsByAsset>;
701
+ declare function fetchAaveV4UserPositionById(positionId: string): Promise<AaveV4UserPositionDetail | null>;
702
+ declare function fetchAaveV4UserSuppliesForPosition(userPositionId: string): Promise<readonly AaveV4UserSupplyRow[]>;
703
+ /**
704
+ * True when the wallet has a positive supplied balance of `contextUnderlying` on this Spoke **and** the index marks
705
+ * it as used as collateral (`isCollateral`). Use this to gate **new borrows**; **repay** should rely on variable debt
706
+ * only, so users can repay after turning collateral off.
707
+ */
708
+ declare function aaveV4UserHasAvailableBorrowCollateralForContextOnSpoke(args: {
709
+ user: `0x${string}`;
710
+ chainId: number;
711
+ contextUnderlying: `0x${string}`;
712
+ spokeAddress: `0x${string}`;
713
+ }): Promise<boolean>;
714
+ declare function formatAaveV4DecimalString(raw: string | undefined | null, maxFractionDigits?: number): string;
715
+ /**
716
+ * For risk / borrow notional: show enough digits for small positive USD (or fiat) so values like
717
+ * 0.0034 don’t get lost; keep net balance in {@link formatAaveV4DecimalString} for larger numbers.
718
+ */
719
+ declare function formatAaveV4RiskNotionalString(raw: string | undefined | null): string;
720
+ declare function formatAaveV4HealthFactor(raw: string | null | undefined): string;
721
+ type AaveV4WithdrawHealthGateResult = {
722
+ outcome: 'allow';
723
+ } | {
724
+ outcome: 'block';
725
+ reason: string;
726
+ } | {
727
+ outcome: 'confirm';
728
+ reason: string;
729
+ targetHealthFactor: number;
730
+ healthFactorForMaxBonus: number;
731
+ };
732
+ declare function aaveV4WithdrawHealthGate(args: {
733
+ resultingHealthFactor: number | null;
734
+ hasBorrowDebt: boolean;
735
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null | undefined;
736
+ }): AaveV4WithdrawHealthGateResult;
737
+ /**
738
+ * After a **borrow** (or any action that lowers HF), use the same numeric gates as
739
+ * {@link aaveV4WithdrawHealthGate} for resulting health factor.
740
+ */
741
+ declare function aaveV4BorrowHealthGate(args: {
742
+ resultingHealthFactor: number | null;
743
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null | undefined;
744
+ }): AaveV4WithdrawHealthGateResult;
745
+ /**
746
+ * After **repay**, the protocol usually improves HF; we only block clearly dangerous previews.
747
+ * Pass `strict: true` to apply the same thresholds as {@link aaveV4WithdrawHealthGate}.
748
+ */
749
+ declare function aaveV4RepayHealthGate(args: {
750
+ resultingHealthFactor: number | null;
751
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null | undefined;
752
+ /** When true, apply the same 1.0 / max-bonus / target rules as a withdrawal (rare for repay). */
753
+ strict: boolean;
754
+ }): AaveV4WithdrawHealthGateResult;
755
+
756
+ /**
757
+ * Built in {@link AaveV4Dialog} and consumed by the multi-sign page handler (withdraw / Merkl claim).
758
+ */
759
+ type AaveV4PositionActionPayload = {
760
+ kind: 'claim';
761
+ /** Purpose / gas for this Merkl request (own fields in the Positions tab, not the shared Aave v4 form state on the page). */
762
+ purposeText: string;
763
+ useCustomGas: boolean;
764
+ } | {
765
+ kind: 'withdraw';
766
+ reserveGraphqlId: string;
767
+ /** GraphQL or RPC-resolved on-chain id for `Spoke.withdraw`, when available. */
768
+ reserveOnChainId: string | null;
769
+ underlying: `0x${string}`;
770
+ amountHuman: string;
771
+ withdrawRiskAck: boolean;
772
+ spokeAddress: `0x${string}`;
773
+ /** Spoke display name for sign-request metadata. */
774
+ spokeName: string;
775
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null;
776
+ hasBorrowDebt: boolean;
777
+ } | {
778
+ kind: 'borrow';
779
+ reserveGraphqlId: string;
780
+ reserveOnChainId: string | null;
781
+ underlying: `0x${string}`;
782
+ amountHuman: string;
783
+ borrowRiskAck: boolean;
784
+ spokeAddress: `0x${string}`;
785
+ spokeName: string;
786
+ liquidationConfig: AaveV4SpokeLiquidationConfig | null;
787
+ } | {
788
+ kind: 'repay';
789
+ reserveGraphqlId: string;
790
+ reserveOnChainId: string | null;
791
+ underlying: `0x${string}`;
792
+ amountHuman: string;
793
+ spokeAddress: `0x${string}`;
794
+ spokeName: string;
795
+ };
796
+ declare function parseBigDecimalHf(s: string | null | undefined): number | null;
797
+ /**
798
+ * @returns resulting HF `after` when preview is `PreviewUserPosition` with a variation, else `null` on error or unknown.
799
+ */
800
+ declare function previewAaveV4WithdrawResultingHf(args: {
801
+ user: `0x${string}`;
802
+ reserveId: string;
803
+ amountExactHuman: string;
804
+ }): Promise<{
805
+ resultingHf: number | null;
806
+ error: string | null;
807
+ }>;
808
+ /**
809
+ * @returns resulting HF `after` for a borrow preview, or error from the API.
810
+ */
811
+ declare function previewAaveV4BorrowResultingHf(args: {
812
+ user: `0x${string}`;
813
+ reserveGraphqlId: string;
814
+ amountExactHuman: string;
815
+ }): Promise<{
816
+ resultingHf: number | null;
817
+ error: string | null;
818
+ }>;
819
+ /**
820
+ * @returns resulting HF `after` for a repay preview.
821
+ */
822
+ declare function previewAaveV4RepayResultingHf(args: {
823
+ user: `0x${string}`;
824
+ reserveGraphqlId: string;
825
+ amountExactHuman: string;
826
+ }): Promise<{
827
+ resultingHf: number | null;
828
+ error: string | null;
829
+ }>;
830
+ type AaveV4MerklClaimableRewardRow = {
831
+ id: string;
832
+ tokenSymbol: string;
833
+ tokenName: string;
834
+ tokenAddress: string;
835
+ /** Human amount string from the API (reward token units). */
836
+ amountValue: string;
837
+ /** Approximate notional in `exchangeLabel` (often USD) when present. */
838
+ exchangeValue: string | null;
839
+ exchangeLabel: string;
840
+ };
841
+ declare function fetchAaveV4MerklClaimableRewardsForChain(args: {
842
+ user: `0x${string}`;
843
+ chainId: number;
844
+ }): Promise<readonly AaveV4MerklClaimableRewardRow[]>;
845
+ declare function fetchAaveV4MerklClaimRewardIdsForChain(args: {
846
+ user: `0x${string}`;
847
+ chainId: number;
848
+ }): Promise<readonly string[]>;
849
+ type AaveV4ClaimRewardsTx = {
850
+ to: `0x${string}`;
851
+ from: `0x${string}`;
852
+ data: `0x${string}`;
853
+ value: string;
854
+ chainId: string;
855
+ };
856
+ declare function fetchAaveV4ClaimRewardsCalldata(args: {
857
+ user: `0x${string}`;
858
+ chainId: number;
859
+ rewardIds: readonly string[];
860
+ }): Promise<AaveV4ClaimRewardsTx | null>;
861
+
862
+ /**
863
+ * Aave v4: supported EVM chain IDs from `https://api.v4.aave.com/graphql` (`chains` query).
864
+ * @see https://aave.com/docs/aave-v4/liquidity/chains
865
+ */
866
+ declare function loadAaveV4SupportedChainIds(): Promise<ReadonlySet<number>>;
867
+
868
+ type AavePercentValueLike = {
869
+ formatted: string;
870
+ value: string;
871
+ } | null | undefined;
872
+ type AaveDecimalValueLike = {
873
+ raw: string;
874
+ decimals: number;
875
+ value: string;
876
+ } | null | undefined;
877
+ type AaveSupplyInfoLike = {
878
+ apy?: AavePercentValueLike;
879
+ total?: AaveDecimalValueLike;
880
+ } | null | undefined;
881
+ type AaveBorrowInfoLike = {
882
+ total?: {
883
+ amount?: AaveDecimalValueLike;
884
+ } | null;
885
+ } | null | undefined;
886
+ /**
887
+ * Format Aave `PercentValue.formatted` for UI (e.g. supply/borrow APY), appending a % if missing.
888
+ */
889
+ declare function formatAavePercentDisplay(p: AavePercentValueLike): string;
890
+ /**
891
+ * Free liquidity in the reserve: supplied liquidity minus total borrowed (underlying, token units as string).
892
+ */
893
+ declare function aaveAvailableLiquidityDisplay(supplyInfo: AaveSupplyInfoLike, borrowInfo: AaveBorrowInfoLike): string;
894
+ /**
895
+ * Map Assets row / native to Aave market underlying. Native uses the chain’s wrapped token address from the API.
896
+ */
897
+ declare function aaveUnderlyingAddressForContext(args: {
898
+ contextContract: string;
899
+ chainNativeWrapped: string | null | undefined;
900
+ }): `0x${string}`;
901
+ declare function isValidAaveChainId(assetsChainId: string | undefined | null): boolean;
902
+ /**
903
+ * Per-reserve supply rows from the Aave client `market` call (shaped for read-only display).
904
+ */
905
+ declare function aaveReadSupplyMetrics(reserve: unknown, symbolForDisplay: string): {
906
+ depositedAmount: string;
907
+ apy: string;
908
+ totalDeposits: string;
909
+ availableLiquidity: string;
910
+ };
911
+
497
912
  declare const AAVE_V4_PROTOCOL_ID = "aave-v4";
498
913
  declare const aaveV4ProtocolModule: ProtocolModule;
499
914
 
500
- export { AAVE_V4_GRAPHQL_URL, AAVE_V4_PROTOCOL_ID, AAVE_V4_SPOKE_BORROW_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_REPAY_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_SUPPLY_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_WITHDRAW_DEFAULT_GAS_UNITS, type AaveV4BorrowTableRow, type AaveV4BorrowableDisplay, type AaveV4Hub, type AaveV4HubReserve, type AaveV4HubReserveSummary, type AaveV4SpokeOnChainReserveStatus, type AaveV4UiMarketId, MIN_AAVE_V4_DEPOSIT_GAS_EXEC, type V4ReservesListRow, aaveV4Gql, aaveV4KeyForNodeAssetRow, aaveV4ProtocolModule, aaveV4UiMarketIdForHubName, aggregateV4SupplyDisplay, borrowableAssetsFromHubReserves, buildAaveV4BorrowTableRowsFromHub, buildEvmMultisignBodyAaveV4DepositBatch, buildEvmMultisignBodyAaveV4MerklClaimRewards, buildEvmMultisignBodyAaveV4SpokeBorrow, buildEvmMultisignBodyAaveV4SpokeRepay, buildEvmMultisignBodyAaveV4SpokeWithdraw, buildEvmMultisignBodyEulerV2MerklDistributorClaim, buildEvmMultisignBodyEulerV2ReulUnlock, ensureAaveV4ChainTokenCache, fetchAaveV4Chains, fetchAaveV4HubReserves, fetchAaveV4HubsForChain, fetchAaveV4NativeWrappedToken, fetchAaveV4ReservesForUnderlying, fetchAaveV4SpokeReserveIdForUnderlying, fetchAaveV4SpokeReserveStatusForUnderlying, fetchAaveV4SupportedUnderlyingAddressSet, fetchAaveV4UserBorrowsDebtByUnderlyingForHub, findAaveV4HubReserveForChainUnderlying, findHubReserveForUnderlying, formatAaveV4AmountHumanFromApiString, formatAaveV4PercentDisplay, formatAaveV4ReserveLiquidityFromSummary, formatAaveV4RiskDisplay, formatAaveV4TokenAmount, isAaveV4DepositEvmSignRequest, loadAaveV4SupportedChainIdsFromV4Api, pickAaveV4ReserveRowForSpoke, resolveAaveV4DepositGasUnitsFromSignRequest, resolveAaveV4HubForUiMarket };
915
+ export { AAVE_V4_GRAPHQL_URL, AAVE_V4_PROTOCOL_ID, AAVE_V4_SPOKE_BORROW_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_REPAY_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_SUPPLY_DEFAULT_GAS_UNITS, AAVE_V4_SPOKE_WITHDRAW_DEFAULT_GAS_UNITS, type AaveBorrowInfoLike, type AaveDecimalValueLike, type AavePercentValueLike, type AaveSupplyInfoLike, type AaveV4BorrowTableRow, type AaveV4BorrowableDisplay, type AaveV4ClaimRewardsTx, type AaveV4ExchangeAmount, type AaveV4Hub, type AaveV4HubReserve, type AaveV4HubReserveSummary, type AaveV4MerklClaimableRewardRow, type AaveV4PositionActionPayload, type AaveV4SpokeLiquidationConfig, type AaveV4SpokeOnChainReserveStatus, type AaveV4UiMarketId, type AaveV4UserPositionDetail, type AaveV4UserPositionRow, type AaveV4UserPositionsByAsset, type AaveV4UserSupplyRow, type AaveV4WithdrawHealthGateResult, MIN_AAVE_V4_DEPOSIT_GAS_EXEC, type V4ReservesListRow, aaveAvailableLiquidityDisplay, aaveReadSupplyMetrics, aaveUnderlyingAddressForContext, aaveV4BorrowHealthGate, aaveV4Gql, aaveV4KeyForNodeAssetRow, aaveV4ProtocolModule, aaveV4RepayHealthGate, aaveV4UiMarketIdForHubName, aaveV4UserHasAvailableBorrowCollateralForContextOnSpoke, aaveV4WithdrawHealthGate, aggregateV4SupplyDisplay, borrowableAssetsFromHubReserves, buildAaveV4BorrowTableRowsFromHub, buildEvmMultisignBodyAaveV4DepositBatch, buildEvmMultisignBodyAaveV4MerklClaimRewards, buildEvmMultisignBodyAaveV4SpokeBorrow, buildEvmMultisignBodyAaveV4SpokeRepay, buildEvmMultisignBodyAaveV4SpokeWithdraw, buildEvmMultisignBodyEulerV2MerklDistributorClaim, buildEvmMultisignBodyEulerV2ReulUnlock, ensureAaveV4ChainTokenCache, fetchAaveV4Chains, fetchAaveV4ClaimRewardsCalldata, fetchAaveV4HubReserves, fetchAaveV4HubsForChain, fetchAaveV4MerklClaimRewardIdsForChain, fetchAaveV4MerklClaimableRewardsForChain, fetchAaveV4NativeWrappedToken, fetchAaveV4ReservesForUnderlying, fetchAaveV4SpokeReserveIdForUnderlying, fetchAaveV4SpokeReserveStatusForUnderlying, fetchAaveV4SupportedUnderlyingAddressSet, fetchAaveV4UserBorrowsDebtByUnderlyingForHub, fetchAaveV4UserPositionById, fetchAaveV4UserPositionsByAssetOnChain, fetchAaveV4UserPositionsForChain, fetchAaveV4UserSuppliesForPosition, findAaveV4HubReserveForChainUnderlying, findHubReserveForUnderlying, formatAavePercentDisplay, formatAaveV4AmountHumanFromApiString, formatAaveV4DecimalString, formatAaveV4ExchangeLabel, formatAaveV4HealthFactor, formatAaveV4PercentDisplay, formatAaveV4PositionHealthFactor, formatAaveV4PositionPercent, formatAaveV4ReserveLiquidityFromSummary, formatAaveV4RiskDisplay, formatAaveV4RiskNotionalString, formatAaveV4TokenAmount, isAaveV4DepositEvmSignRequest, isValidAaveChainId, loadAaveV4SupportedChainIds, loadAaveV4SupportedChainIdsFromV4Api, parseBigDecimalHf, pickAaveV4ReserveRowForSpoke, previewAaveV4BorrowResultingHf, previewAaveV4RepayResultingHf, previewAaveV4WithdrawResultingHf, resolveAaveV4DepositGasUnitsFromSignRequest, resolveAaveV4HubForUiMarket };