@continuumdao/ctm-mpc-defi 0.2.56 → 0.2.57

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 (49) hide show
  1. package/dist/agent/catalog.cjs +304 -134
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +162 -42
  4. package/dist/agent/catalog.js +304 -136
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/aave-v4/SKILL.md +26 -3
  7. package/dist/agent/skills/aerodrome/SKILL.md +3 -1
  8. package/dist/agent/skills/curve-dao/SKILL.md +2 -2
  9. package/dist/agent/skills/uniswap-v4/SKILL.md +2 -2
  10. package/dist/index.cjs +165 -19
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.js +166 -20
  13. package/dist/index.js.map +1 -1
  14. package/dist/protocols/evm/aave-v4/index.cjs +198 -15
  15. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  16. package/dist/protocols/evm/aave-v4/index.d.ts +62 -7
  17. package/dist/protocols/evm/aave-v4/index.js +189 -16
  18. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  19. package/dist/protocols/evm/aerodrome/index.cjs +152 -63
  20. package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
  21. package/dist/protocols/evm/aerodrome/index.d.ts +30 -58
  22. package/dist/protocols/evm/aerodrome/index.js +151 -64
  23. package/dist/protocols/evm/aerodrome/index.js.map +1 -1
  24. package/dist/protocols/evm/compound-v3/index.cjs +115 -2
  25. package/dist/protocols/evm/compound-v3/index.cjs.map +1 -1
  26. package/dist/protocols/evm/compound-v3/index.js +116 -3
  27. package/dist/protocols/evm/compound-v3/index.js.map +1 -1
  28. package/dist/protocols/evm/curve-dao/index.cjs +120 -5
  29. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  30. package/dist/protocols/evm/curve-dao/index.js +120 -5
  31. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  32. package/dist/protocols/evm/euler-v2/index.cjs +121 -6
  33. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  34. package/dist/protocols/evm/euler-v2/index.js +121 -6
  35. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  36. package/dist/protocols/evm/morpho/index.cjs +129 -57
  37. package/dist/protocols/evm/morpho/index.cjs.map +1 -1
  38. package/dist/protocols/evm/morpho/index.d.ts +2 -1
  39. package/dist/protocols/evm/morpho/index.js +129 -58
  40. package/dist/protocols/evm/morpho/index.js.map +1 -1
  41. package/dist/protocols/evm/pendle/index.cjs +129 -10
  42. package/dist/protocols/evm/pendle/index.cjs.map +1 -1
  43. package/dist/protocols/evm/pendle/index.js +129 -10
  44. package/dist/protocols/evm/pendle/index.js.map +1 -1
  45. package/dist/protocols/evm/uniswap-v4/index.cjs +164 -17
  46. package/dist/protocols/evm/uniswap-v4/index.cjs.map +1 -1
  47. package/dist/protocols/evm/uniswap-v4/index.js +165 -18
  48. package/dist/protocols/evm/uniswap-v4/index.js.map +1 -1
  49. package/package.json +1 -1
@@ -1259,6 +1259,7 @@ declare const MORPHO_ARC_USDC: "0x3600000000000000000000000000000000000000";
1259
1259
  declare function isMorphoStockQuery(query: string | undefined | null): boolean;
1260
1260
  /** Address as-is, else B20 ticker (AAPLc), else USDC/USDT on the given chain. */
1261
1261
  declare function resolveMorphoAssetRef(token: string, chainId?: number): Address | null;
1262
+ declare function ensureMorphoStockCatalog(): Promise<void>;
1262
1263
  declare function morphoB20CollateralAddresses(): Address[];
1263
1264
  declare function isMorphoB20Collateral(address: string): boolean;
1264
1265
  declare function morphoAssetLabel(address: string): string;
@@ -1293,4 +1294,4 @@ declare function isMorphoArcChainId(chainId: number): boolean;
1293
1294
  declare const MORPHO_PROTOCOL_ID = "morpho";
1294
1295
  declare const morphoProtocolModule: ProtocolModule;
1295
1296
 
1296
- export { ARC_MAINNET_CHAIN_ID, ARC_TESTNET_CHAIN_ID, MERKL_API_BASE, MERKL_DISTRIBUTOR_ADDRESS, MERKL_DISTRIBUTOR_CLAIM_GAS_FALLBACK, MERKL_REWARDS_NOTES, MORPHO_ARC_USDC, MORPHO_BASE_USDC, MORPHO_BASE_USDT, MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_CANONICAL, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_ETHEREUM_USDC, MORPHO_ETHEREUM_USDT, MORPHO_EXTRA_SUPPORTED_CHAIN_IDS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_ADDRESSES, MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS, MORPHO_MIDNIGHT_BASE_CHAIN_ID, MORPHO_MIDNIGHT_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_MIDNIGHT_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS, MORPHO_MIDNIGHT_CALLBACK_SALT, MORPHO_MIDNIGHT_CREATE_CALLBACK_FALLBACK_GAS, MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS, MORPHO_MIDNIGHT_DEFAULT_OFFER_TTL_SECONDS, MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT, MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK, MORPHO_MIDNIGHT_ETHEREUM_CHAIN_ID, MORPHO_MIDNIGHT_LEND_FALLBACK_GAS, MORPHO_MIDNIGHT_MEMPOOL_PUBLISH_FALLBACK_GAS, MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS, MORPHO_MIDNIGHT_REST_BASE, MORPHO_MIDNIGHT_SET_CONSUMED_FALLBACK_GAS, MORPHO_MIDNIGHT_SET_ROOT_FALLBACK_GAS, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK, MORPHO_PROTOCOL_ID, MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID, MORPHO_STOCK_MARKETS_NOTES, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, type MerklDistributorClaimLeaf, type MerklRewardRow, type MerklRewardsSummary, type MorphoAssetRef, type MorphoBlueMarketDiscoveryRow, type MorphoBluePositionRow, type MorphoBorrowMarketRow, type MorphoChainRow, type MorphoEarnOfferingRow, type MorphoEarnVaultDetailFields, type MorphoEarnVaultDiscoveryRow, type MorphoEarnVaultExposureRow, type MorphoIncentiveRewardRow, type MorphoMarketApiRow, type MorphoMarketParams, type MorphoMidnightApiMakerOffer, type MorphoMidnightApiMarketRow, type MorphoMidnightApiPositionRow, type MorphoMidnightBookDiscoveryRow, type MorphoMidnightBookLevelLike, type MorphoMidnightBookSide, type MorphoMidnightChainAddresses, type MorphoMidnightLoanIntent, type MorphoMidnightLoanIntentStatus, type MorphoMidnightMakerOfferRow, type MorphoMidnightMarketParams, type MorphoMidnightPositionDiscoveryRow, type MorphoMidnightQuoteSummary, type MorphoStockMarketsSummary, 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, buildEvmMultisignBodyMorphoBlueSupplyBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoMidnightBorrowBatch, buildEvmMultisignBodyMorphoMidnightCancelLendOfferBatch, buildEvmMultisignBodyMorphoMidnightLendBatch, buildEvmMultisignBodyMorphoMidnightLendOfferBatch, buildEvmMultisignBodyMorphoMidnightRepayBatch, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, encodeMerklDistributorClaimData, encodeMorphoBlueMarketParamsCallbackData, encodeMorphoBlueSupplyCalldata, encodeMorphoBlueWithdrawCalldata, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, fetchAllMerklDistributorClaimLeaves, fetchMerklRewardsSummary, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForCollaterals, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMarketsWhere, fetchMorphoMidnightBook, fetchMorphoMidnightBookQuote, fetchMorphoMidnightBooks, fetchMorphoMidnightBooksForAsset, fetchMorphoMidnightIntents, fetchMorphoMidnightMakerOffers, fetchMorphoMidnightMarketById, fetchMorphoMidnightUserMarketPosition, fetchMorphoMidnightUserPositions, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoMidnightAprPct, formatMorphoUsd, formatMorphoUtilizationPct, isMerklRewardEulLeaf, isMorphoArcChainId, isMorphoB20Collateral, isMorphoStockQuery, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMerklUserRewardsJson, loadMorphoSupportedChainIds, looksLikeMorphoStockTicker, mapMorphoIncentiveRewards, marketParamsFromApiRow, mergeMorphoSupportedChainIds, merklLeafToRow, merklUserRewardsUrl, morphoAssetLabel, morphoB20CollateralAddresses, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoFetchMerklRewardsSummary, morphoFetchMidnightBooksSummary, morphoFetchMidnightMakerOffersSummary, morphoFetchMidnightPositionsSummary, morphoFetchMidnightQuote, morphoFetchMidnightQuoteSummary, morphoFetchPositionsSummary, morphoFetchStockMarketsSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoMidnightAddressesForChain, morphoMidnightApiBaseUrl, morphoMidnightAprFromBookLevel, morphoMidnightAprFromPriceWad, morphoMidnightAprFromTick, morphoMidnightBookToDiscoveryRow, morphoMidnightBookToMarketParams, morphoMidnightMarketToParams, morphoMidnightPositionToDiscoveryRow, morphoMidnightPriceWadFromApr, morphoMidnightTickFromApr, morphoMidnightTickFromPriceWad, morphoMidnightTtmSeconds, morphoMidnightUnitsFromAssets, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, parseMerklUserRewardsToLeaves, parseMorphoMidnightAprInput, parseMorphoMidnightPriceWad, pickBestBlueSupplyMarketForLoan, previewMorphoBlueHealthAfterCollateralWithdraw, resolveMorphoAssetRef, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults, selectFirstRootMerklLeaves, selectWalletWideMerklClaimLeaves };
1297
+ export { ARC_MAINNET_CHAIN_ID, ARC_TESTNET_CHAIN_ID, MERKL_API_BASE, MERKL_DISTRIBUTOR_ADDRESS, MERKL_DISTRIBUTOR_CLAIM_GAS_FALLBACK, MERKL_REWARDS_NOTES, MORPHO_ARC_USDC, MORPHO_BASE_USDC, MORPHO_BASE_USDT, MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_CANONICAL, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_ETHEREUM_USDC, MORPHO_ETHEREUM_USDT, MORPHO_EXTRA_SUPPORTED_CHAIN_IDS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_ADDRESSES, MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS, MORPHO_MIDNIGHT_BASE_CHAIN_ID, MORPHO_MIDNIGHT_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_MIDNIGHT_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS, MORPHO_MIDNIGHT_CALLBACK_SALT, MORPHO_MIDNIGHT_CREATE_CALLBACK_FALLBACK_GAS, MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS, MORPHO_MIDNIGHT_DEFAULT_OFFER_TTL_SECONDS, MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT, MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK, MORPHO_MIDNIGHT_ETHEREUM_CHAIN_ID, MORPHO_MIDNIGHT_LEND_FALLBACK_GAS, MORPHO_MIDNIGHT_MEMPOOL_PUBLISH_FALLBACK_GAS, MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS, MORPHO_MIDNIGHT_REST_BASE, MORPHO_MIDNIGHT_SET_CONSUMED_FALLBACK_GAS, MORPHO_MIDNIGHT_SET_ROOT_FALLBACK_GAS, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK, MORPHO_PROTOCOL_ID, MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID, MORPHO_STOCK_MARKETS_NOTES, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, type MerklDistributorClaimLeaf, type MerklRewardRow, type MerklRewardsSummary, type MorphoAssetRef, type MorphoBlueMarketDiscoveryRow, type MorphoBluePositionRow, type MorphoBorrowMarketRow, type MorphoChainRow, type MorphoEarnOfferingRow, type MorphoEarnVaultDetailFields, type MorphoEarnVaultDiscoveryRow, type MorphoEarnVaultExposureRow, type MorphoIncentiveRewardRow, type MorphoMarketApiRow, type MorphoMarketParams, type MorphoMidnightApiMakerOffer, type MorphoMidnightApiMarketRow, type MorphoMidnightApiPositionRow, type MorphoMidnightBookDiscoveryRow, type MorphoMidnightBookLevelLike, type MorphoMidnightBookSide, type MorphoMidnightChainAddresses, type MorphoMidnightLoanIntent, type MorphoMidnightLoanIntentStatus, type MorphoMidnightMakerOfferRow, type MorphoMidnightMarketParams, type MorphoMidnightPositionDiscoveryRow, type MorphoMidnightQuoteSummary, type MorphoStockMarketsSummary, 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, buildEvmMultisignBodyMorphoBlueSupplyBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoMidnightBorrowBatch, buildEvmMultisignBodyMorphoMidnightCancelLendOfferBatch, buildEvmMultisignBodyMorphoMidnightLendBatch, buildEvmMultisignBodyMorphoMidnightLendOfferBatch, buildEvmMultisignBodyMorphoMidnightRepayBatch, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, encodeMerklDistributorClaimData, encodeMorphoBlueMarketParamsCallbackData, encodeMorphoBlueSupplyCalldata, encodeMorphoBlueWithdrawCalldata, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, ensureMorphoStockCatalog, fetchAllMerklDistributorClaimLeaves, fetchMerklRewardsSummary, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForCollaterals, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMarketsWhere, fetchMorphoMidnightBook, fetchMorphoMidnightBookQuote, fetchMorphoMidnightBooks, fetchMorphoMidnightBooksForAsset, fetchMorphoMidnightIntents, fetchMorphoMidnightMakerOffers, fetchMorphoMidnightMarketById, fetchMorphoMidnightUserMarketPosition, fetchMorphoMidnightUserPositions, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoMidnightAprPct, formatMorphoUsd, formatMorphoUtilizationPct, isMerklRewardEulLeaf, isMorphoArcChainId, isMorphoB20Collateral, isMorphoStockQuery, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMerklUserRewardsJson, loadMorphoSupportedChainIds, looksLikeMorphoStockTicker, mapMorphoIncentiveRewards, marketParamsFromApiRow, mergeMorphoSupportedChainIds, merklLeafToRow, merklUserRewardsUrl, morphoAssetLabel, morphoB20CollateralAddresses, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoFetchMerklRewardsSummary, morphoFetchMidnightBooksSummary, morphoFetchMidnightMakerOffersSummary, morphoFetchMidnightPositionsSummary, morphoFetchMidnightQuote, morphoFetchMidnightQuoteSummary, morphoFetchPositionsSummary, morphoFetchStockMarketsSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoMidnightAddressesForChain, morphoMidnightApiBaseUrl, morphoMidnightAprFromBookLevel, morphoMidnightAprFromPriceWad, morphoMidnightAprFromTick, morphoMidnightBookToDiscoveryRow, morphoMidnightBookToMarketParams, morphoMidnightMarketToParams, morphoMidnightPositionToDiscoveryRow, morphoMidnightPriceWadFromApr, morphoMidnightTickFromApr, morphoMidnightTickFromPriceWad, morphoMidnightTtmSeconds, morphoMidnightUnitsFromAssets, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, parseMerklUserRewardsToLeaves, parseMorphoMidnightAprInput, parseMorphoMidnightPriceWad, pickBestBlueSupplyMarketForLoan, previewMorphoBlueHealthAfterCollateralWithdraw, resolveMorphoAssetRef, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults, selectFirstRootMerklLeaves, selectWalletWideMerklClaimLeaves };
@@ -454,6 +454,125 @@ async function fetchMorphoMarketById(args) {
454
454
  marketParams: marketParamsFromApiRow(row)
455
455
  };
456
456
  }
457
+ var COINBASE_B20_STOCK_DECIMALS = 8;
458
+ var COINBASE_B20_ASSET_PREFIX = "0xb200000000000000000000";
459
+ function isCoinbaseB20AssetToken(address) {
460
+ try {
461
+ return getAddress(address).toLowerCase().startsWith(COINBASE_B20_ASSET_PREFIX);
462
+ } catch {
463
+ return false;
464
+ }
465
+ }
466
+ function looksLikeCoinbaseStockSymbol(symbol) {
467
+ return /^[A-Za-z][A-Za-z0-9]{0,8}(?:\.[A-Za-z][A-Za-z0-9]{0,4})?c$/.test((symbol ?? "").trim());
468
+ }
469
+ function coinbaseB20StockAddresses() {
470
+ return coinbaseB20CatalogTokens().map((t) => t.address);
471
+ }
472
+ var COINBASE_TOKENIZED_STOCKS_API_URL = "https://api.coinbase.com/v1/tokenized-stocks";
473
+ var CATALOG_TTL_MS = 15 * 60 * 1e3;
474
+ var CATALOG_MAX = 500;
475
+ var catalogRows = null;
476
+ var catalogAt = 0;
477
+ var catalogInflight = null;
478
+ var catalogBySymbol = /* @__PURE__ */ new Map();
479
+ var catalogByAddress = /* @__PURE__ */ new Map();
480
+ function indexCatalog(rows) {
481
+ catalogRows = rows;
482
+ catalogAt = Date.now();
483
+ catalogBySymbol.clear();
484
+ catalogByAddress.clear();
485
+ for (const row of rows) {
486
+ catalogBySymbol.set(row.symbol.toLowerCase(), row);
487
+ catalogByAddress.set(row.address.toLowerCase(), row);
488
+ }
489
+ }
490
+ function coinbaseB20CatalogTokens() {
491
+ return catalogRows ?? [];
492
+ }
493
+ function parseCoinbaseTokenizedStocksPayload(payload) {
494
+ const tokens = Array.isArray(payload) ? payload : payload && typeof payload === "object" && Array.isArray(payload.tokens) ? payload.tokens : [];
495
+ const out = [];
496
+ const seen = /* @__PURE__ */ new Set();
497
+ for (const row of tokens) {
498
+ if (!row || typeof row !== "object") continue;
499
+ const rec = row;
500
+ const symbol = typeof rec.symbol === "string" ? rec.symbol.trim() : "";
501
+ const addressRaw = typeof rec.contract_address === "string" ? rec.contract_address.trim() : "";
502
+ if (!looksLikeCoinbaseStockSymbol(symbol) || !isCoinbaseB20AssetToken(addressRaw)) continue;
503
+ const address = getAddress(addressRaw);
504
+ const key = address.toLowerCase();
505
+ if (seen.has(key)) continue;
506
+ seen.add(key);
507
+ const name = typeof rec.name === "string" && rec.name.trim() ? rec.name.trim() : symbol;
508
+ const iconUrl = typeof rec.icon_url === "string" && rec.icon_url.trim() ? rec.icon_url.trim() : void 0;
509
+ const decimals = typeof rec.decimals === "number" && Number.isInteger(rec.decimals) && rec.decimals >= 0 && rec.decimals <= 18 ? rec.decimals : COINBASE_B20_STOCK_DECIMALS;
510
+ out.push({ address, symbol, name, decimals, iconUrl });
511
+ if (out.length >= CATALOG_MAX) break;
512
+ }
513
+ return out;
514
+ }
515
+ async function fetchCoinbaseB20StockCatalog() {
516
+ const merged = [];
517
+ const seen = /* @__PURE__ */ new Set();
518
+ let pageToken = "";
519
+ for (let page = 0; page < 4; page++) {
520
+ const url = new URL(COINBASE_TOKENIZED_STOCKS_API_URL);
521
+ url.searchParams.set("page_size", "500");
522
+ if (pageToken) url.searchParams.set("page_token", pageToken);
523
+ const res = await fetch(url, { cache: "no-store", signal: AbortSignal.timeout(8e3) });
524
+ if (!res.ok) break;
525
+ const json = await res.json();
526
+ for (const row of parseCoinbaseTokenizedStocksPayload(json)) {
527
+ const key = row.address.toLowerCase();
528
+ if (seen.has(key)) continue;
529
+ seen.add(key);
530
+ merged.push(row);
531
+ if (merged.length >= CATALOG_MAX) break;
532
+ }
533
+ pageToken = typeof json.next_page_token === "string" ? json.next_page_token.trim() : "";
534
+ if (!pageToken || merged.length >= CATALOG_MAX) break;
535
+ }
536
+ if (merged.length > 0) indexCatalog(merged);
537
+ return catalogRows ?? [];
538
+ }
539
+ async function ensureCoinbaseB20StockCatalog() {
540
+ if (catalogRows && catalogRows.length > 0 && Date.now() - catalogAt < CATALOG_TTL_MS) return catalogRows;
541
+ if (!catalogInflight) {
542
+ catalogInflight = fetchCoinbaseB20StockCatalog().finally(() => {
543
+ catalogInflight = null;
544
+ });
545
+ }
546
+ try {
547
+ return await catalogInflight;
548
+ } catch {
549
+ return catalogRows ?? [];
550
+ }
551
+ }
552
+ function lookupCoinbaseB20StockToken(token) {
553
+ const key = (token ?? "").trim();
554
+ if (!key) return null;
555
+ const fromCatalog = catalogBySymbol.get(key.toLowerCase());
556
+ if (fromCatalog) return fromCatalog;
557
+ try {
558
+ return catalogByAddress.get(getAddress(key).toLowerCase()) ?? null;
559
+ } catch {
560
+ return null;
561
+ }
562
+ }
563
+ async function canonicalizeEvmTokenInput(token) {
564
+ const raw = (token ?? "").trim();
565
+ if (!raw || isAddress(raw)) return raw;
566
+ if (!looksLikeCoinbaseStockSymbol(raw)) return raw;
567
+ await ensureCoinbaseB20StockCatalog().catch(() => []);
568
+ const hit = lookupCoinbaseB20StockToken(raw);
569
+ if (!hit) {
570
+ throw new Error(
571
+ `Unknown Coinbase stock ticker "${raw}". It is not in the live tokenized-stocks catalog.`
572
+ );
573
+ }
574
+ return hit.address;
575
+ }
457
576
  var LIGHT_BATCH_SIZE = 8;
458
577
  var V2_EXPOSURE_POSITION_LIMIT = 20;
459
578
  var EXPOSURE_FETCH_CONCURRENCY = 4;
@@ -953,7 +1072,7 @@ async function fetchMorphoVaultV2sForChain(chainId, first = 100, skip = 0) {
953
1072
  return d.vaultV2s?.items ?? [];
954
1073
  }
955
1074
  async function fetchMorphoVaultsForAssetAddress(args) {
956
- const asset = getAddress(args.assetAddress);
1075
+ const asset = getAddress(await canonicalizeEvmTokenInput(args.assetAddress));
957
1076
  const d = await morphoGql(
958
1077
  `
959
1078
  query MorphoVaultsForAsset($chainId: Int!, $asset: String!, $first: Int!) {
@@ -977,7 +1096,7 @@ async function fetchMorphoVaultsForAssetAddress(args) {
977
1096
  return d.vaults?.items ?? [];
978
1097
  }
979
1098
  async function fetchMorphoVaultV2sForAssetAddress(args) {
980
- const asset = getAddress(args.assetAddress);
1099
+ const asset = getAddress(await canonicalizeEvmTokenInput(args.assetAddress));
981
1100
  const d = await morphoGql(
982
1101
  `
983
1102
  query MorphoVaultV2sForAsset($chainId: Int!, $asset: Address!, $first: Int!) {
@@ -1389,60 +1508,6 @@ async function fetchMorphoBorrowMarketsForCollaterals(args) {
1389
1508
  });
1390
1509
  return rowsFromApi(markets);
1391
1510
  }
1392
- var COINBASE_B20_STOCK_TOKENS = [
1393
- { symbol: "AAPLc", name: "Apple Inc.", address: "0xb200000000000000000000C2e324d24d7eEcd1fb" },
1394
- { symbol: "NVDAc", name: "NVIDIA Corporation", address: "0xb20000000000000000000078ee7ce2fE4908108C" },
1395
- { symbol: "METAc", name: "Meta Platforms Inc.", address: "0xb2000000000000000000008bC8786B856E61707C" },
1396
- { symbol: "GOOGLc", name: "Alphabet Inc.", address: "0xb2000000000000000000002D0BA3164cc74f58B7" },
1397
- { symbol: "AMZNc", name: "Amazon.com Inc.", address: "0xb200000000000000000000d9192b6B456483C2E8" },
1398
- { symbol: "TSLAc", name: "Tesla Inc.", address: "0xb2000000000000000000001e800a7f5189430cD0" },
1399
- { symbol: "MSFTc", name: "Microsoft Corporation", address: "0xB200000000000000000000Ab99cFa739E253872B" },
1400
- { symbol: "COINc", name: "Coinbase Global Inc.", address: "0xb200000000000000000000c85a31389D71F3ecfb" },
1401
- { symbol: "MSTRc", name: "Strategy Inc.", address: "0xb2000000000000000000004884b426556b92883d" },
1402
- { symbol: "CRCLc", name: "Circle Internet Group Inc.", address: "0xB20000000000000000000019f6E7C675b73C2e4D" },
1403
- { symbol: "INTCc", name: "Intel Corporation", address: "0xB2000000000000000000004AFF16039bA04bdFBc" },
1404
- { symbol: "SNDKc", name: "Sandisk Corporation", address: "0xb200000000000000000000397293Cb8cda9a10c5" },
1405
- { symbol: "SPCXc", name: "Space Exploration Technologies Corp.", address: "0xb2000000000000000000007b9fcbd005511aCBd5" }
1406
- ];
1407
- var COINBASE_B20_STOCK_DECIMALS = 8;
1408
- var COINBASE_B20_ASSET_PREFIX = "0xb200000000000000000000";
1409
- function isCoinbaseB20AssetToken(address) {
1410
- try {
1411
- return getAddress(address).toLowerCase().startsWith(COINBASE_B20_ASSET_PREFIX);
1412
- } catch {
1413
- return false;
1414
- }
1415
- }
1416
- function looksLikeCoinbaseStockSymbol(symbol) {
1417
- return /^[A-Za-z][A-Za-z0-9]{0,10}c$/.test((symbol ?? "").trim());
1418
- }
1419
- function coinbaseB20StockAddresses() {
1420
- return COINBASE_B20_STOCK_TOKENS.map((t) => getAddress(t.address));
1421
- }
1422
- function lookupCoinbaseB20StockToken(token) {
1423
- const key = (token ?? "").trim();
1424
- if (!key) return null;
1425
- const lower = key.toLowerCase();
1426
- const bySymbol = COINBASE_B20_STOCK_TOKENS.find((t) => t.symbol.toLowerCase() === lower);
1427
- if (bySymbol) {
1428
- return {
1429
- address: getAddress(bySymbol.address),
1430
- symbol: bySymbol.symbol,
1431
- decimals: COINBASE_B20_STOCK_DECIMALS
1432
- };
1433
- }
1434
- try {
1435
- const address = getAddress(key);
1436
- const byAddr = COINBASE_B20_STOCK_TOKENS.find((t) => getAddress(t.address).toLowerCase() === address.toLowerCase());
1437
- if (byAddr) {
1438
- return { address, symbol: byAddr.symbol, decimals: COINBASE_B20_STOCK_DECIMALS };
1439
- }
1440
- } catch {
1441
- }
1442
- return null;
1443
- }
1444
-
1445
- // src/protocols/evm/morpho/assetRef.ts
1446
1511
  var MORPHO_BASE_USDC = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
1447
1512
  var MORPHO_BASE_USDT = "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2";
1448
1513
  var MORPHO_ETHEREUM_USDC = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
@@ -1482,6 +1547,9 @@ function resolveMorphoAssetRef(token, chainId) {
1482
1547
  }
1483
1548
  return null;
1484
1549
  }
1550
+ async function ensureMorphoStockCatalog() {
1551
+ await ensureCoinbaseB20StockCatalog().catch(() => []);
1552
+ }
1485
1553
  function morphoB20CollateralAddresses() {
1486
1554
  return coinbaseB20StockAddresses();
1487
1555
  }
@@ -1531,6 +1599,7 @@ function toDiscoveryRow(row) {
1531
1599
  };
1532
1600
  }
1533
1601
  async function morphoFetchBlueMarketsSummary(args) {
1602
+ await ensureMorphoStockCatalog();
1534
1603
  const limit = Math.min(Math.max(args.limit ?? 50, 1), 200);
1535
1604
  let rows = [];
1536
1605
  const collateralRaw = args.collateral?.trim();
@@ -1889,6 +1958,7 @@ function morphoMidnightBookToDiscoveryRow(book) {
1889
1958
  };
1890
1959
  }
1891
1960
  async function morphoFetchMidnightBooksSummary(args) {
1961
+ await ensureMorphoStockCatalog();
1892
1962
  const limit = Math.min(Math.max(args.limit ?? MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, 1), MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT);
1893
1963
  const loanRaw = args.loan?.trim();
1894
1964
  const collateralRaw = args.collateral?.trim();
@@ -3447,7 +3517,7 @@ var vaultDepositAbi = parseAbi([
3447
3517
  "function deposit(uint256 assets, address onBehalf) returns (uint256 shares)"
3448
3518
  ]);
3449
3519
  async function buildEvmMultisignBodyMorphoVaultDepositBatch(args) {
3450
- const asset = getAddress(args.underlying);
3520
+ const asset = getAddress(await canonicalizeEvmTokenInput(args.underlying));
3451
3521
  const vault = getAddress(args.vault);
3452
3522
  const weth = getAddress(args.nativeWrapped);
3453
3523
  const executor = getAddress(args.executorAddress);
@@ -4197,6 +4267,7 @@ init_midnightConstants();
4197
4267
  var MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID = MORPHO_MIDNIGHT_BASE_CHAIN_ID;
4198
4268
  var MORPHO_STOCK_MARKETS_NOTES = "Coinbase B20 stock-backed Morpho markets on Base. Curators set LLTV, oracle, and IRM. Chainlink equity feeds are 24/5 (stale off cash hours). Tokens are Regulation S / not for U.S. persons. Liquidity is still thin. Variable = Blue; fixed = Midnight.";
4199
4269
  async function morphoFetchStockMarketsSummary(args) {
4270
+ await ensureMorphoStockCatalog();
4200
4271
  const chainId = args.chainId ?? MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID;
4201
4272
  const rate = args.rate ?? "both";
4202
4273
  const limit = Math.min(Math.max(args.limit ?? 50, 1), 200);
@@ -4277,6 +4348,6 @@ var morphoProtocolModule = {
4277
4348
  };
4278
4349
  registerProtocolModule(morphoProtocolModule);
4279
4350
 
4280
- export { ARC_MAINNET_CHAIN_ID, ARC_TESTNET_CHAIN_ID, MERKL_API_BASE, MERKL_DISTRIBUTOR_ADDRESS, MERKL_DISTRIBUTOR_CLAIM_GAS_FALLBACK, MERKL_REWARDS_NOTES, MORPHO_ARC_USDC, MORPHO_BASE_USDC, MORPHO_BASE_USDT, MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_CANONICAL, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_ETHEREUM_USDC, MORPHO_ETHEREUM_USDT, MORPHO_EXTRA_SUPPORTED_CHAIN_IDS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_ADDRESSES, MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS, MORPHO_MIDNIGHT_BASE_CHAIN_ID, MORPHO_MIDNIGHT_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_MIDNIGHT_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS, MORPHO_MIDNIGHT_CALLBACK_SALT, MORPHO_MIDNIGHT_CREATE_CALLBACK_FALLBACK_GAS, MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS, MORPHO_MIDNIGHT_DEFAULT_OFFER_TTL_SECONDS, MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT, MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK, MORPHO_MIDNIGHT_ETHEREUM_CHAIN_ID, MORPHO_MIDNIGHT_LEND_FALLBACK_GAS, MORPHO_MIDNIGHT_MEMPOOL_PUBLISH_FALLBACK_GAS, MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS, MORPHO_MIDNIGHT_REST_BASE, MORPHO_MIDNIGHT_SET_CONSUMED_FALLBACK_GAS, MORPHO_MIDNIGHT_SET_ROOT_FALLBACK_GAS, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK, MORPHO_PROTOCOL_ID, MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID, MORPHO_STOCK_MARKETS_NOTES, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, ROBINHOOD_CHAIN_ID, ROBINHOOD_EARN_USDG_ADDRESS, ROBINHOOD_EARN_VAULT_ADDRESS, ROBINHOOD_EARN_VAULT_NAME, ROBINHOOD_EARN_VAULT_SYMBOL, TOKEN_PERMIT_NONE, applyRobinhoodEarnMultisignDefaults, buildEvmMultisignBodyMorphoBlueBorrowBatch, buildEvmMultisignBodyMorphoBlueRepayBatch, buildEvmMultisignBodyMorphoBlueSupplyBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoMidnightBorrowBatch, buildEvmMultisignBodyMorphoMidnightCancelLendOfferBatch, buildEvmMultisignBodyMorphoMidnightLendBatch, buildEvmMultisignBodyMorphoMidnightLendOfferBatch, buildEvmMultisignBodyMorphoMidnightRepayBatch, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, encodeMerklDistributorClaimData, encodeMorphoBlueMarketParamsCallbackData, encodeMorphoBlueSupplyCalldata, encodeMorphoBlueWithdrawCalldata, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, fetchAllMerklDistributorClaimLeaves, fetchMerklRewardsSummary, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForCollaterals, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMarketsWhere, fetchMorphoMidnightBook, fetchMorphoMidnightBookQuote, fetchMorphoMidnightBooks, fetchMorphoMidnightBooksForAsset, fetchMorphoMidnightIntents, fetchMorphoMidnightMakerOffers, fetchMorphoMidnightMarketById, fetchMorphoMidnightUserMarketPosition, fetchMorphoMidnightUserPositions, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoMidnightAprPct, formatMorphoUsd, formatMorphoUtilizationPct, isMerklRewardEulLeaf, isMorphoArcChainId, isMorphoB20Collateral, isMorphoStockQuery, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMerklUserRewardsJson, loadMorphoSupportedChainIds, looksLikeMorphoStockTicker, mapMorphoIncentiveRewards, marketParamsFromApiRow, mergeMorphoSupportedChainIds, merklLeafToRow, merklUserRewardsUrl, morphoAssetLabel, morphoB20CollateralAddresses, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoFetchMerklRewardsSummary, morphoFetchMidnightBooksSummary, morphoFetchMidnightMakerOffersSummary, morphoFetchMidnightPositionsSummary, morphoFetchMidnightQuote, morphoFetchMidnightQuoteSummary, morphoFetchPositionsSummary, morphoFetchStockMarketsSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoMidnightAddressesForChain, morphoMidnightApiBaseUrl, morphoMidnightAprFromBookLevel, morphoMidnightAprFromPriceWad, morphoMidnightAprFromTick, morphoMidnightBookToDiscoveryRow, morphoMidnightBookToMarketParams, morphoMidnightMarketToParams, morphoMidnightPositionToDiscoveryRow, morphoMidnightPriceWadFromApr, morphoMidnightTickFromApr, morphoMidnightTickFromPriceWad, morphoMidnightTtmSeconds, morphoMidnightUnitsFromAssets, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, parseMerklUserRewardsToLeaves, parseMorphoMidnightAprInput, parseMorphoMidnightPriceWad, pickBestBlueSupplyMarketForLoan, previewMorphoBlueHealthAfterCollateralWithdraw, resolveMorphoAssetRef, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults, selectFirstRootMerklLeaves, selectWalletWideMerklClaimLeaves };
4351
+ export { ARC_MAINNET_CHAIN_ID, ARC_TESTNET_CHAIN_ID, MERKL_API_BASE, MERKL_DISTRIBUTOR_ADDRESS, MERKL_DISTRIBUTOR_CLAIM_GAS_FALLBACK, MERKL_REWARDS_NOTES, MORPHO_ARC_USDC, MORPHO_BASE_USDC, MORPHO_BASE_USDT, MORPHO_BLUE_BORROW_FALLBACK_GAS, MORPHO_BLUE_CANONICAL, MORPHO_BLUE_COLLATERAL_DEPOSIT_FALLBACK_GAS, MORPHO_BLUE_COLLATERAL_WITHDRAW_FALLBACK_GAS, MORPHO_BLUE_REPAY_FALLBACK_GAS, MORPHO_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_ETHEREUM_USDC, MORPHO_ETHEREUM_USDT, MORPHO_EXTRA_SUPPORTED_CHAIN_IDS, MORPHO_GRAPHQL_URL, MORPHO_MIDNIGHT_ADDRESSES, MORPHO_MIDNIGHT_AUTHORIZE_FALLBACK_GAS, MORPHO_MIDNIGHT_BASE_CHAIN_ID, MORPHO_MIDNIGHT_BLUE_SUPPLY_FALLBACK_GAS, MORPHO_MIDNIGHT_BLUE_WITHDRAW_FALLBACK_GAS, MORPHO_MIDNIGHT_BOOKS_MAX_LIMIT, MORPHO_MIDNIGHT_BORROW_FALLBACK_GAS, MORPHO_MIDNIGHT_CALLBACK_SALT, MORPHO_MIDNIGHT_CREATE_CALLBACK_FALLBACK_GAS, MORPHO_MIDNIGHT_DEFAULT_DEADLINE_SECONDS, MORPHO_MIDNIGHT_DEFAULT_OFFER_TTL_SECONDS, MORPHO_MIDNIGHT_DEFAULT_SLIPPAGE_PCT, MORPHO_MIDNIGHT_ERC20_APPROVE_FALLBACK, MORPHO_MIDNIGHT_ETHEREUM_CHAIN_ID, MORPHO_MIDNIGHT_LEND_FALLBACK_GAS, MORPHO_MIDNIGHT_MEMPOOL_PUBLISH_FALLBACK_GAS, MORPHO_MIDNIGHT_REPAY_FALLBACK_GAS, MORPHO_MIDNIGHT_REST_BASE, MORPHO_MIDNIGHT_SET_CONSUMED_FALLBACK_GAS, MORPHO_MIDNIGHT_SET_ROOT_FALLBACK_GAS, MORPHO_MIDNIGHT_UNAVAILABLE_MESSAGE, MORPHO_MIDNIGHT_WETH_DEPOSIT_FALLBACK, MORPHO_PROTOCOL_ID, MORPHO_STOCK_MARKETS_DEFAULT_CHAIN_ID, MORPHO_STOCK_MARKETS_NOTES, MORPHO_VAULT_DEPOSIT_FALLBACK_GAS, MORPHO_VAULT_WITHDRAW_FALLBACK_GAS, ROBINHOOD_CHAIN_ID, ROBINHOOD_EARN_USDG_ADDRESS, ROBINHOOD_EARN_VAULT_ADDRESS, ROBINHOOD_EARN_VAULT_NAME, ROBINHOOD_EARN_VAULT_SYMBOL, TOKEN_PERMIT_NONE, applyRobinhoodEarnMultisignDefaults, buildEvmMultisignBodyMorphoBlueBorrowBatch, buildEvmMultisignBodyMorphoBlueRepayBatch, buildEvmMultisignBodyMorphoBlueSupplyBatch, buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch, buildEvmMultisignBodyMorphoBlueWithdrawBatch, buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch, buildEvmMultisignBodyMorphoMerklDistributorClaim, buildEvmMultisignBodyMorphoMidnightBorrowBatch, buildEvmMultisignBodyMorphoMidnightCancelLendOfferBatch, buildEvmMultisignBodyMorphoMidnightLendBatch, buildEvmMultisignBodyMorphoMidnightLendOfferBatch, buildEvmMultisignBodyMorphoMidnightRepayBatch, buildEvmMultisignBodyMorphoVaultDepositBatch, buildEvmMultisignBodyMorphoVaultWithdraw, emptyMorphoEarnVaultDetailFields, encodeMerklDistributorClaimData, encodeMorphoBlueMarketParamsCallbackData, encodeMorphoBlueSupplyCalldata, encodeMorphoBlueWithdrawCalldata, enrichMorphoEarnOfferingRows, enrichMorphoEarnOfferingRowsForAgent, ensureMorphoChainAssetCache, ensureMorphoStockCatalog, fetchAllMerklDistributorClaimLeaves, fetchMerklRewardsSummary, fetchMorphoBorrowMarketsForCollateral, fetchMorphoBorrowMarketsForCollaterals, fetchMorphoBorrowMarketsForLoan, fetchMorphoChains, fetchMorphoEarnOfferingsForAsset, fetchMorphoEarnVaultDetails, fetchMorphoMarketById, fetchMorphoMarketsForChain, fetchMorphoMarketsWhere, fetchMorphoMidnightBook, fetchMorphoMidnightBookQuote, fetchMorphoMidnightBooks, fetchMorphoMidnightBooksForAsset, fetchMorphoMidnightIntents, fetchMorphoMidnightMakerOffers, fetchMorphoMidnightMarketById, fetchMorphoMidnightUserMarketPosition, fetchMorphoMidnightUserPositions, fetchMorphoUserBluePositions, fetchMorphoUserPortfolioUsd, fetchMorphoUserVaultPositions, fetchMorphoVaultAssetDecimals, fetchMorphoVaultByAddress, fetchMorphoVaultMaxWithdrawWei, fetchMorphoVaultV2sForChain, fetchMorphoVaultsForChain, formatMorphoApyPct, formatMorphoFeePct, formatMorphoMarketApySummary, formatMorphoMidnightAprPct, formatMorphoUsd, formatMorphoUtilizationPct, isMerklRewardEulLeaf, isMorphoArcChainId, isMorphoB20Collateral, isMorphoStockQuery, isMorphoVaultListed, isRobinhoodEarnProductFlag, isRobinhoodEarnQuery, loadMerklUserRewardsJson, loadMorphoSupportedChainIds, looksLikeMorphoStockTicker, mapMorphoIncentiveRewards, marketParamsFromApiRow, mergeMorphoSupportedChainIds, merklLeafToRow, merklUserRewardsUrl, morphoAssetLabel, morphoB20CollateralAddresses, morphoEarnOfferingToDiscoveryRow, morphoFetchBlueMarketsSummary, morphoFetchEarnVaultsSummary, morphoFetchMerklRewardsSummary, morphoFetchMidnightBooksSummary, morphoFetchMidnightMakerOffersSummary, morphoFetchMidnightPositionsSummary, morphoFetchMidnightQuote, morphoFetchMidnightQuoteSummary, morphoFetchPositionsSummary, morphoFetchStockMarketsSummary, morphoGql, morphoKeyForAssetRow, morphoMarketToBorrowRow, morphoMidnightAddressesForChain, morphoMidnightApiBaseUrl, morphoMidnightAprFromBookLevel, morphoMidnightAprFromPriceWad, morphoMidnightAprFromTick, morphoMidnightBookToDiscoveryRow, morphoMidnightBookToMarketParams, morphoMidnightMarketToParams, morphoMidnightPositionToDiscoveryRow, morphoMidnightPriceWadFromApr, morphoMidnightTickFromApr, morphoMidnightTickFromPriceWad, morphoMidnightTtmSeconds, morphoMidnightUnitsFromAssets, morphoProtocolModule, morphoResolveListedEarnVaultByAddress, parseMerklUserRewardsToLeaves, parseMorphoMidnightAprInput, parseMorphoMidnightPriceWad, pickBestBlueSupplyMarketForLoan, previewMorphoBlueHealthAfterCollateralWithdraw, resolveMorphoAssetRef, resolveRobinhoodEarnFetchQuery, searchMorphoListedEarnVaults, selectFirstRootMerklLeaves, selectWalletWideMerklClaimLeaves };
4281
4352
  //# sourceMappingURL=index.js.map
4282
4353
  //# sourceMappingURL=index.js.map