@continuumdao/ctm-mpc-defi 0.2.28 → 0.2.29

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.
@@ -4988,14 +4988,22 @@ function getAgentCatalogForMcp() {
4988
4988
  }
4989
4989
  };
4990
4990
  }
4991
- viem.getAddress(
4991
+ var LIDO_STETH_CONTRACT_MAINNET = viem.getAddress(
4992
4992
  "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84"
4993
4993
  );
4994
- viem.getAddress(
4994
+ var LIDO_WSTETH_CONTRACT_MAINNET = viem.getAddress(
4995
4995
  "0x7f39C581F595B853cBbF37C12FfeeA971C5a5bEa"
4996
4996
  );
4997
4997
  viem.getAddress("0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1");
4998
4998
  var LIDO_ETHEREUM_MAINNET_CHAIN_ID = 1;
4999
+ var LIDO_ROBINHOOD_CHAIN_ID = 4663;
5000
+ var LIDO_WSTETH_ROBINHOOD = viem.getAddress("0x2dC99af320BC317c567f24eE95811dcbd5983DfD");
5001
+ function listLidoSupportedChainIds() {
5002
+ return [LIDO_ETHEREUM_MAINNET_CHAIN_ID, LIDO_ROBINHOOD_CHAIN_ID];
5003
+ }
5004
+ function isLidoSupportedChainId(chainId) {
5005
+ return chainId === LIDO_ETHEREUM_MAINNET_CHAIN_ID || chainId === LIDO_ROBINHOOD_CHAIN_ID;
5006
+ }
4999
5007
 
5000
5008
  // src/protocols/evm/lido/index.ts
5001
5009
  var LIDO_PROTOCOL_ID = "lido";
@@ -5004,7 +5012,7 @@ var lidoProtocolModule = {
5004
5012
  chainCategory: "evm",
5005
5013
  isChainSupported(ctx) {
5006
5014
  if (ctx.chainCategory !== "evm") return false;
5007
- return Number(ctx.chainId) === LIDO_ETHEREUM_MAINNET_CHAIN_ID;
5015
+ return isLidoSupportedChainId(Number(ctx.chainId));
5008
5016
  },
5009
5017
  isTokenSupported(token) {
5010
5018
  return token.category === "evm" && (token.kind === "native" || token.kind === "erc20");
@@ -5021,7 +5029,9 @@ registerProtocolModule(lidoProtocolModule);
5021
5029
  var USDE_ETHEREUM_MAINNET = "0x4c9edd5852cd905f086c759e8383e09bff1e68b3";
5022
5030
  var SUSDE_ETHEREUM_MAINNET = "0x9d39a5de30e57443bff2a8307a4256c8797a3497";
5023
5031
  var USDE_MOST_L2S = "0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34";
5032
+ var SUSDE_MOST_L2S = "0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2";
5024
5033
  var USDE_ZKSYNC_ERA = "0x39Fe7a0DACcE31Bd90418e3e659fb0b5f0B3Db0d";
5034
+ var SUSDE_ZKSYNC_ERA = "0xAD17Da2f6Ac76746EF261E835C50b2651ce36DA8";
5025
5035
  var L2_SAME_ADDRESS_CHAIN_IDS = /* @__PURE__ */ new Set([
5026
5036
  42161,
5027
5037
  // Arbitrum One
@@ -5057,8 +5067,10 @@ var L2_SAME_ADDRESS_CHAIN_IDS = /* @__PURE__ */ new Set([
5057
5067
  // Morph
5058
5068
  1923,
5059
5069
  // Swell
5060
- 48900
5070
+ 48900,
5061
5071
  // Zircuit
5072
+ 4663
5073
+ // Robinhood Chain
5062
5074
  ]);
5063
5075
  var FALLBACK_NAME_BY_ID = {
5064
5076
  1: "Ethereum",
@@ -5080,6 +5092,7 @@ var FALLBACK_NAME_BY_ID = {
5080
5092
  2818: "Morph",
5081
5093
  1923: "Swell",
5082
5094
  48900: "Zircuit",
5095
+ 4663: "Robinhood Chain",
5083
5096
  324: "ZKSync Era"
5084
5097
  };
5085
5098
  function usdeTokenAddressOnEvmChain(chainId) {
@@ -5090,17 +5103,28 @@ function usdeTokenAddressOnEvmChain(chainId) {
5090
5103
  }
5091
5104
  function listEthenaUsdeEvmNetworkRows() {
5092
5105
  const rows = [
5093
- { chainId: 1, label: FALLBACK_NAME_BY_ID[1], usde: USDE_ETHEREUM_MAINNET }
5106
+ {
5107
+ chainId: 1,
5108
+ label: FALLBACK_NAME_BY_ID[1],
5109
+ usde: USDE_ETHEREUM_MAINNET,
5110
+ susde: SUSDE_ETHEREUM_MAINNET
5111
+ }
5094
5112
  ];
5095
5113
  const l2 = [...L2_SAME_ADDRESS_CHAIN_IDS].sort((a, b) => a - b);
5096
5114
  for (const id of l2) {
5097
5115
  rows.push({
5098
5116
  chainId: id,
5099
5117
  label: FALLBACK_NAME_BY_ID[id] ?? `Chain ${id}`,
5100
- usde: USDE_MOST_L2S
5118
+ usde: USDE_MOST_L2S,
5119
+ susde: SUSDE_MOST_L2S
5101
5120
  });
5102
5121
  }
5103
- rows.push({ chainId: 324, label: FALLBACK_NAME_BY_ID[324], usde: USDE_ZKSYNC_ERA });
5122
+ rows.push({
5123
+ chainId: 324,
5124
+ label: FALLBACK_NAME_BY_ID[324],
5125
+ usde: USDE_ZKSYNC_ERA,
5126
+ susde: SUSDE_ZKSYNC_ERA
5127
+ });
5104
5128
  return rows.sort((a, b) => {
5105
5129
  if (a.chainId === 1) return -1;
5106
5130
  if (b.chainId === 1) return 1;
@@ -6503,17 +6527,26 @@ var PROTOCOL_SUPPORT_ADVISORS = {
6503
6527
  }),
6504
6528
  lido: advisor("lido", "mainnet_only", {
6505
6529
  async supportedChainIds() {
6506
- return [LIDO_ETHEREUM_MAINNET_CHAIN_ID];
6530
+ return listLidoSupportedChainIds();
6507
6531
  },
6508
- async supportedTokens() {
6509
- return {
6510
- tokens: [
6511
- { address: "0x0000000000000000000000000000000000000000", symbol: "ETH", roles: ["native", "stake"] },
6512
- { address: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", symbol: "stETH", roles: ["erc20"] },
6513
- { address: "0x7f39C581F595B853cBbF37C12FfeeA971C5a5bEa", symbol: "wstETH", roles: ["erc20"] }
6514
- ],
6515
- notes: "Lido staking and withdrawals are Ethereum mainnet only."
6516
- };
6532
+ async supportedTokens(chainId) {
6533
+ if (chainId === LIDO_ETHEREUM_MAINNET_CHAIN_ID) {
6534
+ return {
6535
+ tokens: [
6536
+ { address: "0x0000000000000000000000000000000000000000", symbol: "ETH", roles: ["native", "stake"] },
6537
+ { address: LIDO_STETH_CONTRACT_MAINNET, symbol: "stETH", roles: ["erc20"] },
6538
+ { address: LIDO_WSTETH_CONTRACT_MAINNET, symbol: "wstETH", roles: ["erc20"] }
6539
+ ],
6540
+ notes: "Lido staking, withdrawals, and wrap/unwrap are Ethereum mainnet only."
6541
+ };
6542
+ }
6543
+ if (chainId === LIDO_ROBINHOOD_CHAIN_ID) {
6544
+ return {
6545
+ tokens: [{ address: LIDO_WSTETH_ROBINHOOD, symbol: "wstETH", roles: ["erc20"] }],
6546
+ notes: "Bridged wstETH on Robinhood Chain (CCIP). Stake/withdraw/wrap MCP tools remain mainnet-only."
6547
+ };
6548
+ }
6549
+ return { tokens: [] };
6517
6550
  }
6518
6551
  }),
6519
6552
  ethena: advisor("ethena", "minting_contract", {
@@ -6527,14 +6560,17 @@ var PROTOCOL_SUPPORT_ADVISORS = {
6527
6560
  { address: USDE_ETHEREUM_MAINNET, symbol: "USDe", roles: ["stake"] },
6528
6561
  { address: SUSDE_ETHEREUM_MAINNET, symbol: "sUSDe", roles: ["vault"] }
6529
6562
  ],
6530
- notes: "Ethena stake/redeem UI actions are mainnet-only; USDe exists on other chains for transfers."
6563
+ notes: "Ethena stake/redeem UI actions are mainnet-only; USDe/sUSDe exist on other chains for transfers."
6531
6564
  };
6532
6565
  }
6533
6566
  if (isEvmChainInEthenaUsdeList(chainId)) {
6534
6567
  const row = listEthenaUsdeEvmNetworkRows().find((r) => r.chainId === chainId);
6535
6568
  return {
6536
- tokens: row ? [{ address: row.usde, symbol: "USDe", roles: ["erc20"] }] : [],
6537
- notes: "USDe on L2; staking MCP tools target mainnet only."
6569
+ tokens: row ? [
6570
+ { address: row.usde, symbol: "USDe", roles: ["erc20"] },
6571
+ { address: row.susde, symbol: "sUSDe", roles: ["erc20"] }
6572
+ ] : [],
6573
+ notes: "USDe/sUSDe on L2 (incl. Robinhood Chain); staking MCP tools target mainnet only."
6538
6574
  };
6539
6575
  }
6540
6576
  return { tokens: [] };