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