@continuumdao/ctm-mpc-defi 0.2.26 → 0.2.28

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 (38) hide show
  1. package/dist/agent/catalog.cjs +681 -46
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +1209 -21
  4. package/dist/agent/catalog.js +668 -47
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/morpho/SKILL.md +38 -6
  7. package/dist/agent/skills/uniswap-v4/SKILL.md +15 -0
  8. package/dist/core/index.cjs +19 -0
  9. package/dist/core/index.cjs.map +1 -1
  10. package/dist/core/index.d.ts +8 -1
  11. package/dist/core/index.js +17 -1
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/index.cjs +363 -22
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +361 -23
  17. package/dist/index.js.map +1 -1
  18. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  19. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  20. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  21. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  22. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  23. package/dist/protocols/evm/maple/index.js.map +1 -1
  24. package/dist/protocols/evm/morpho/index.cjs +1153 -142
  25. package/dist/protocols/evm/morpho/index.cjs.map +1 -1
  26. package/dist/protocols/evm/morpho/index.d.ts +314 -8
  27. package/dist/protocols/evm/morpho/index.js +1131 -144
  28. package/dist/protocols/evm/morpho/index.js.map +1 -1
  29. package/dist/protocols/evm/permit2/index.cjs.map +1 -1
  30. package/dist/protocols/evm/permit2/index.js.map +1 -1
  31. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  32. package/dist/protocols/evm/sky/index.js.map +1 -1
  33. package/dist/protocols/evm/uniswap-v4/index.cjs +863 -25
  34. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  35. package/dist/protocols/evm/uniswap-v4/index.d.ts +266 -9
  36. package/dist/protocols/evm/uniswap-v4/index.js +834 -27
  37. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  38. package/package.json +2 -1
@@ -1,5 +1,6 @@
1
1
  import { b as KeyGenSubsetForPermit, e as ProtocolModule } from '../../../types-PZrvtjv8.js';
2
- import { Address } from 'viem';
2
+ import { Address, Hex } from 'viem';
3
+ import { MidnightApiBookMarket, MidnightApiTake } from '@morpho-org/midnight-sdk/api';
3
4
 
4
5
  declare const MORPHO_GRAPHQL_URL = "https://api.morpho.org/graphql";
5
6
  declare function morphoGql<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
@@ -311,29 +312,334 @@ declare function fetchMorphoUserPortfolioUsd(args: {
311
312
  declare function formatMorphoMarketApySummary(apy: number | null | undefined): string;
312
313
 
313
314
  /**
314
- * Morpho Midnight (fixed-rate, fixed-term) — scaffold types until mainnet contracts/API are live.
315
- * @see https://morpho.org/blog/morpho-v2-liberating-the-potential-of-onchain-loans
315
+ * Morpho Midnight (fixed-rate, fixed-term) — legacy type aliases.
316
+ * Prefer midnightDiscovery / midnightPositions / midnightMultisign.
317
+ * @see https://docs.morpho.org/developers/midnight/resources/all/
316
318
  */
317
319
  type MorphoMidnightLoanIntentStatus = 'coming_soon' | 'open' | 'matched' | 'active' | 'repaid' | 'cancelled';
320
+ /** @deprecated Use MorphoMidnightBookDiscoveryRow / position rows instead. */
318
321
  type MorphoMidnightLoanIntent = {
319
322
  id: string;
320
323
  status: MorphoMidnightLoanIntentStatus;
321
324
  chainId: number;
322
- /** Fixed annual rate (wad or human — TBD when API ships). */
323
325
  fixedRate?: string | null;
324
- /** Loan term in seconds. */
325
326
  durationSeconds?: number | null;
326
327
  loanAssetSymbol?: string | null;
327
328
  collateralAssetSymbol?: string | null;
328
329
  amountHuman?: string | null;
329
330
  };
330
- declare const MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE = "Morpho Midnight fixed-rate lending is not yet available on mainnet. This tab will activate after the progressive mainnet rollout.";
331
- /** Placeholder until Morpho exposes Midnight GraphQL queries. */
331
+ /** @deprecated Midnight is live; UI should use live book fetchers. */
332
+ declare const MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE = "Morpho Midnight fixed-rate markets are available on supported chains (starting with Base). Open the Midnight tab to browse books.";
333
+ /** @deprecated Use morphoFetchMidnightBooksSummary / morphoFetchMidnightPositionsSummary. */
332
334
  declare function fetchMorphoMidnightIntents(_args: {
333
335
  chainId: number;
334
336
  user?: string;
335
337
  }): Promise<readonly MorphoMidnightLoanIntent[]>;
336
338
 
339
+ /** Morpho Midnight REST API base (no trailing slash). */
340
+ declare const MORPHO_MIDNIGHT_REST_BASE = "https://api.morpho.org/v0/midnight";
341
+ /** Upstream `GET /books` rejects limit > 20 (`VALIDATION_ERROR`). */
342
+ declare const MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT = 20;
343
+ declare const MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT = "0.5";
344
+ declare const MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS = 3600;
345
+ /** Base (8453) deployment — core + bundles from Morpho docs / live books. */
346
+ declare const MORPHO_MIDNIGHT_BASE_CHAIN_ID = 8453;
347
+ declare const MORPHO_MIDNIGHT_ADDRESSES: Record<number, {
348
+ midnight: Address;
349
+ bundles: Address;
350
+ }>;
351
+ declare function morphoMidnightAddressesForChain(chainId: number): {
352
+ midnight: Address;
353
+ bundles: Address;
354
+ } | null;
355
+ declare const TOKEN_PERMIT_NONE: {
356
+ readonly kind: 0;
357
+ readonly data: "0x";
358
+ };
359
+ declare const MORPHO_MIDNIGHT_LEND_FALLBACK_GAS = 2500000n;
360
+ declare const MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS = 3000000n;
361
+ declare const MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS = 2200000n;
362
+ declare const MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS = 80000n;
363
+ declare const MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK = 100000n;
364
+ declare const MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK = 120000n;
365
+
366
+ type MorphoMidnightBookSide = 'asks' | 'bids';
367
+ type MorphoMidnightMarketParams = {
368
+ chainId: bigint;
369
+ midnight: Address;
370
+ loanToken: Address;
371
+ collateralParams: readonly {
372
+ token: Address;
373
+ lltv: bigint;
374
+ liquidationCursor: bigint;
375
+ oracle: Address;
376
+ }[];
377
+ maturity: bigint;
378
+ rcfThreshold: bigint;
379
+ enterGate: Address;
380
+ liquidatorGate: Address;
381
+ };
382
+ type MorphoMidnightApiMarketRow = {
383
+ chainId: number;
384
+ marketId: Hex;
385
+ midnight: Address;
386
+ loanToken: Address;
387
+ maturity: number;
388
+ rcfThreshold: string;
389
+ enterGate: Address;
390
+ liquidatorGate: Address;
391
+ collaterals: readonly {
392
+ token: Address;
393
+ lltv: string;
394
+ liquidationCursor: string;
395
+ oracle: Address;
396
+ }[];
397
+ };
398
+ type MorphoMidnightApiPositionRow = {
399
+ marketId: Hex;
400
+ type: 'lend' | 'borrow' | 'collateral_only' | string;
401
+ credit: string;
402
+ debt: string;
403
+ pendingFee: string;
404
+ lossFactor: string;
405
+ costBasis?: string | null;
406
+ effectiveRateWad?: string | null;
407
+ maturity?: number | null;
408
+ loanToken?: Address | null;
409
+ collaterals: readonly {
410
+ token: Address;
411
+ amount: string;
412
+ }[];
413
+ };
414
+ /** Effective Midnight REST base — browser proxy when configured. */
415
+ declare function morphoMidnightApiBaseUrl(): string;
416
+ declare function fetchMorphoMidnightBooks(args: {
417
+ chainId: number;
418
+ loanTokens?: readonly string[];
419
+ collateralTokens?: readonly string[];
420
+ sort?: 'maturity' | 'ask' | 'bid' | 'id' | '-maturity' | '-ask' | '-bid' | '-id';
421
+ limit?: number;
422
+ cursor?: string;
423
+ }): Promise<{
424
+ data: MidnightApiBookMarket[];
425
+ cursor: string | null;
426
+ }>;
427
+ declare function fetchMorphoMidnightBook(marketId: string): Promise<MidnightApiBookMarket | null>;
428
+ declare function fetchMorphoMidnightBookQuote(args: {
429
+ marketId: string;
430
+ side: MorphoMidnightBookSide;
431
+ assets: bigint;
432
+ slippage?: string;
433
+ }): Promise<{
434
+ averageBestPrice: string;
435
+ averageWorstPrice: string;
436
+ availableAssets: string;
437
+ availableUnits: string;
438
+ takeableOffers: readonly MidnightApiTake[];
439
+ }>;
440
+ declare function fetchMorphoMidnightMarketById(marketId: string): Promise<MorphoMidnightApiMarketRow | null>;
441
+ declare function morphoMidnightMarketToParams(row: MorphoMidnightApiMarketRow): MorphoMidnightMarketParams;
442
+ declare function morphoMidnightBookToMarketParams(book: MidnightApiBookMarket): MorphoMidnightMarketParams;
443
+ declare function fetchMorphoMidnightUserPositions(args: {
444
+ user: string;
445
+ types?: 'lend' | 'borrow' | 'collateral_only';
446
+ activeOnly?: boolean;
447
+ }): Promise<MorphoMidnightApiPositionRow[]>;
448
+ declare function fetchMorphoMidnightUserMarketPosition(args: {
449
+ marketId: string;
450
+ user: string;
451
+ }): Promise<MorphoMidnightApiPositionRow | null>;
452
+
453
+ /** Fixed APR from WAD-scaled unit price and time-to-maturity (seconds). Morpho docs formula. */
454
+ declare function morphoMidnightAprFromPriceWad(priceWad: string | bigint, ttmSeconds: number): number | null;
455
+ declare function formatMorphoMidnightAprPct(apr: number | null, digits?: number): string;
456
+ declare function morphoMidnightTtmSeconds(maturityUnix: number, nowMs?: number): number;
457
+ /** Unit cap from assets and WAD price: ceil(assets * 1e18 / price). */
458
+ declare function morphoMidnightUnitsFromAssets(targetAssets: bigint, priceWad: bigint): bigint;
459
+
460
+ type MorphoMidnightBookDiscoveryRow = {
461
+ marketId: string;
462
+ chainId: number;
463
+ midnightAddress: string;
464
+ loanTokenAddress: string;
465
+ maturity: number;
466
+ maturityIso: string;
467
+ collateralTokenAddresses: string[];
468
+ primaryCollateralTokenAddress: string | null;
469
+ primaryCollateralLltv: string | null;
470
+ bestAskPriceWad: string | null;
471
+ bestBidPriceWad: string | null;
472
+ bestAskAssets: string | null;
473
+ bestBidAssets: string | null;
474
+ lendApr: string;
475
+ borrowApr: string;
476
+ lendAprNumeric: number | null;
477
+ borrowAprNumeric: number | null;
478
+ marketLabel: string;
479
+ };
480
+ declare function morphoMidnightBookToDiscoveryRow(book: MidnightApiBookMarket): MorphoMidnightBookDiscoveryRow;
481
+ /** MCP/UI: list Midnight books with implied fixed lend/borrow APR. */
482
+ declare function morphoFetchMidnightBooksSummary(args: {
483
+ chainId: number;
484
+ /** Loan asset address (or leave empty). */
485
+ loan?: string;
486
+ /** Collateral asset address — filters books that include this collateral. */
487
+ collateral?: string;
488
+ /** Case-insensitive filter on marketId / addresses. */
489
+ query?: string;
490
+ /** Prefer books with bid depth (borrow) or ask depth (lend). */
491
+ side?: 'bids' | 'asks' | 'either';
492
+ limit?: number;
493
+ }): Promise<{
494
+ books: MorphoMidnightBookDiscoveryRow[];
495
+ }>;
496
+ /** UI helper: books where `asset` is accepted collateral (borrow) or is the loan token. */
497
+ declare function fetchMorphoMidnightBooksForAsset(args: {
498
+ chainId: number;
499
+ assetAddress: string;
500
+ mode?: 'borrow' | 'lend' | 'any';
501
+ }): Promise<MorphoMidnightBookDiscoveryRow[]>;
502
+
503
+ type MorphoMidnightQuoteSummary = {
504
+ marketId: string;
505
+ side: 'asks' | 'bids';
506
+ averageBestPriceWad: string;
507
+ averageWorstPriceWad: string;
508
+ availableAssets: string;
509
+ availableUnits: string;
510
+ impliedApr: string;
511
+ impliedAprNumeric: number | null;
512
+ maturity: number | null;
513
+ takeableOfferCount: number;
514
+ takeableOffers: readonly MidnightApiTake[];
515
+ };
516
+ /** Quote a Midnight book side for a target asset amount (raw token units). */
517
+ declare function morphoFetchMidnightQuote(args: {
518
+ marketId: string;
519
+ /** asks = lend (take asks); bids = borrow (take bids). */
520
+ side: 'asks' | 'bids';
521
+ /** Target loan-token assets in raw units (string or bigint). */
522
+ assets: string | bigint;
523
+ slippagePct?: string;
524
+ }): Promise<MorphoMidnightQuoteSummary>;
525
+ /** MCP-facing quote (omits ABI take payloads). */
526
+ declare function morphoFetchMidnightQuoteSummary(args: Parameters<typeof morphoFetchMidnightQuote>[0]): Promise<Omit<MorphoMidnightQuoteSummary, 'takeableOffers'>>;
527
+
528
+ type MorphoMidnightPositionDiscoveryRow = {
529
+ marketId: string;
530
+ type: string;
531
+ credit: string;
532
+ debt: string;
533
+ pendingFee: string;
534
+ repayAssets: string;
535
+ maturity: number | null;
536
+ maturityIso: string;
537
+ loanTokenAddress: string | null;
538
+ collateralTokenAddresses: string[];
539
+ collateralAmounts: {
540
+ token: string;
541
+ amount: string;
542
+ }[];
543
+ effectiveRate: string;
544
+ costBasis: string | null;
545
+ };
546
+ declare function morphoMidnightPositionToDiscoveryRow(p: MorphoMidnightApiPositionRow): MorphoMidnightPositionDiscoveryRow;
547
+ /** MCP/UI: Midnight positions for a user. */
548
+ declare function morphoFetchMidnightPositionsSummary(args: {
549
+ user: string;
550
+ types?: 'lend' | 'borrow' | 'collateral_only';
551
+ activeOnly?: boolean;
552
+ }): Promise<{
553
+ positions: MorphoMidnightPositionDiscoveryRow[];
554
+ }>;
555
+
556
+ type ChainRow$4 = {
557
+ legacy?: boolean;
558
+ gasLimit?: number;
559
+ gasMultiplier?: number;
560
+ gasPrice?: number;
561
+ baseFee?: number;
562
+ priorityFee?: number;
563
+ baseFeeMultiplier?: number;
564
+ };
565
+ declare function buildEvmMultisignBodyMorphoMidnightLendBatch(args: {
566
+ keyGen: KeyGenSubsetForPermit;
567
+ chainId: number;
568
+ rpcUrl: string;
569
+ chainDetail: ChainRow$4;
570
+ useCustomGas: boolean;
571
+ customGasChainDetails?: Record<string, unknown> | null;
572
+ marketId: string;
573
+ amountHuman: string;
574
+ loanToken?: Address;
575
+ slippagePct?: string;
576
+ deadlineSeconds?: number;
577
+ midnight?: Address;
578
+ bundles?: Address;
579
+ isNativeIn?: boolean;
580
+ nativeWrapped?: Address;
581
+ taker: Address;
582
+ receiver?: Address;
583
+ executorAddress: Address;
584
+ purposeText: string;
585
+ marketLabel?: string;
586
+ }): Promise<{
587
+ bodyForSign: Record<string, unknown>;
588
+ messageToSign: string;
589
+ }>;
590
+ declare function buildEvmMultisignBodyMorphoMidnightBorrowBatch(args: {
591
+ keyGen: KeyGenSubsetForPermit;
592
+ chainId: number;
593
+ rpcUrl: string;
594
+ chainDetail: ChainRow$4;
595
+ useCustomGas: boolean;
596
+ customGasChainDetails?: Record<string, unknown> | null;
597
+ marketId: string;
598
+ borrowAmountHuman: string;
599
+ collateralAmountHuman: string;
600
+ collateralToken: Address;
601
+ loanToken?: Address;
602
+ collateralIndex?: number;
603
+ slippagePct?: string;
604
+ deadlineSeconds?: number;
605
+ midnight?: Address;
606
+ bundles?: Address;
607
+ isNativeIn?: boolean;
608
+ nativeWrapped?: Address;
609
+ taker: Address;
610
+ receiver?: Address;
611
+ executorAddress: Address;
612
+ purposeText: string;
613
+ marketLabel?: string;
614
+ }): Promise<{
615
+ bodyForSign: Record<string, unknown>;
616
+ messageToSign: string;
617
+ }>;
618
+ declare function buildEvmMultisignBodyMorphoMidnightRepayBatch(args: {
619
+ keyGen: KeyGenSubsetForPermit;
620
+ chainId: number;
621
+ rpcUrl: string;
622
+ chainDetail: ChainRow$4;
623
+ useCustomGas: boolean;
624
+ customGasChainDetails?: Record<string, unknown> | null;
625
+ marketId: string;
626
+ /** Optional override; default = debt + pendingFee + 1 unit buffer in loan decimals. */
627
+ repayAmountHuman?: string;
628
+ loanToken?: Address;
629
+ withdrawAllCollateral?: boolean;
630
+ deadlineSeconds?: number;
631
+ midnight?: Address;
632
+ bundles?: Address;
633
+ onBehalf: Address;
634
+ collateralReceiver?: Address;
635
+ executorAddress: Address;
636
+ purposeText: string;
637
+ marketLabel?: string;
638
+ }): Promise<{
639
+ bodyForSign: Record<string, unknown>;
640
+ messageToSign: string;
641
+ }>;
642
+
337
643
  declare function fetchMorphoVaultAssetDecimals(args: {
338
644
  rpcUrl: string;
339
645
  chainId: number;
@@ -567,4 +873,4 @@ declare function applyRobinhoodEarnMultisignDefaults(o: Record<string, unknown>)
567
873
  declare const MORPHO_PROTOCOL_ID = "morpho";
568
874
  declare const morphoProtocolModule: ProtocolModule;
569
875
 
570
- export { MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_PROTOCOL_ID, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, type MorphoAssetRef, type MorphoBlueMarketDiscoveryRow, type MorphoBluePositionRow, type MorphoBorrowMarketRow, type MorphoChainRow, type MorphoEarnOfferingRow, type MorphoEarnVaultDetailFields, type MorphoEarnVaultDiscoveryRow, type MorphoEarnVaultExposureRow, type MorphoMarketApiRow, type MorphoMarketParams, type MorphoMidnightLoanIntent, type MorphoMidnightLoanIntentStatus, type MorphoVaultApiRow, type MorphoVaultPositionRow, type MorphoVaultV2ApiRow, ROBINHOOD_CHAIN_ID, ROBINHOOD_EARN_USDG_ADDRESS, ROBINHOOD_EARN_VAULT_ADDRESS, ROBINHOOD_EARN_VAULT_NAME, ROBINHOOD_EARN_VAULT_SYMBOL, type ResolvedMorphoMarket, applyRobinhoodEarnMultisignDefaults, buildEvmMultisignBodyMorphoBlueBorrowBatch, buildEvmMultisignBodyMorphoBlueRepayBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMidnightIntents, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoUsd, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMorphoSupportedChainIds, marketParamsFromApiRow, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, previewMorphoBlueHealthAfterCollateralWithdraw, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults };
876
+ export { MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_ADDRESSES, MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS, MORPHO_MIDNIGHT_BASE_CHAIN_ID, MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS, MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS, MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT, MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK, MORPHO_MIDNIGHT_LEND_FALLBACK_GAS, MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS, MORPHO_MIDNIGHT_REST_BASE, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK, MORPHO_PROTOCOL_ID, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, type MorphoAssetRef, type MorphoBlueMarketDiscoveryRow, type MorphoBluePositionRow, type MorphoBorrowMarketRow, type MorphoChainRow, type MorphoEarnOfferingRow, type MorphoEarnVaultDetailFields, type MorphoEarnVaultDiscoveryRow, type MorphoEarnVaultExposureRow, type MorphoMarketApiRow, type MorphoMarketParams, type MorphoMidnightApiMarketRow, type MorphoMidnightApiPositionRow, type MorphoMidnightBookDiscoveryRow, type MorphoMidnightBookSide, type MorphoMidnightLoanIntent, type MorphoMidnightLoanIntentStatus, type MorphoMidnightMarketParams, type MorphoMidnightPositionDiscoveryRow, type MorphoMidnightQuoteSummary, type MorphoVaultApiRow, type MorphoVaultPositionRow, type MorphoVaultV2ApiRow, ROBINHOOD_CHAIN_ID, ROBINHOOD_EARN_USDG_ADDRESS, ROBINHOOD_EARN_VAULT_ADDRESS, ROBINHOOD_EARN_VAULT_NAME, ROBINHOOD_EARN_VAULT_SYMBOL, type ResolvedMorphoMarket, TOKEN_PERMIT_NONE, applyRobinhoodEarnMultisignDefaults, buildEvmMultisignBodyMorphoBlueBorrowBatch, buildEvmMultisignBodyMorphoBlueRepayBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoMidnightBorrowBatch, buildEvmMultisignBodyMorphoMidnightLendBatch, buildEvmMultisignBodyMorphoMidnightRepayBatch, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMidnightBook, fetchMorphoMidnightBookQuote, fetchMorphoMidnightBooks, fetchMorphoMidnightBooksForAsset, fetchMorphoMidnightIntents, fetchMorphoMidnightMarketById, fetchMorphoMidnightUserMarketPosition, fetchMorphoMidnightUserPositions, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoMidnightAprPct, formatMorphoUsd, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMorphoSupportedChainIds, marketParamsFromApiRow, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoFetchMidnightBooksSummary, morphoFetchMidnightPositionsSummary, morphoFetchMidnightQuote, morphoFetchMidnightQuoteSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoMidnightAddressesForChain, morphoMidnightApiBaseUrl, morphoMidnightAprFromPriceWad, morphoMidnightBookToDiscoveryRow, morphoMidnightBookToMarketParams, morphoMidnightMarketToParams, morphoMidnightPositionToDiscoveryRow, morphoMidnightTtmSeconds, morphoMidnightUnitsFromAssets, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, previewMorphoBlueHealthAfterCollateralWithdraw, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults };