@continuumdao/ctm-mpc-defi 0.2.34 → 0.2.35

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 (83) hide show
  1. package/dist/agent/catalog.cjs +712 -44
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +1630 -244
  4. package/dist/agent/catalog.js +678 -45
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/aave-v4/SKILL.md +19 -4
  7. package/dist/agent/skills/aerodrome/SKILL.md +2 -2
  8. package/dist/agent/skills/compound-v3/SKILL.md +2 -2
  9. package/dist/agent/skills/curve-dao/SKILL.md +14 -0
  10. package/dist/agent/skills/ethena/SKILL.md +3 -1
  11. package/dist/agent/skills/euler-v2/SKILL.md +1 -1
  12. package/dist/agent/skills/gmx/SKILL.md +1 -1
  13. package/dist/agent/skills/hyperliquid/SKILL.md +7 -5
  14. package/dist/agent/skills/lido/SKILL.md +3 -0
  15. package/dist/agent/skills/maple-syrup/SKILL.md +35 -3
  16. package/dist/agent/skills/morpho/SKILL.md +1 -1
  17. package/dist/agent/skills/sky/SKILL.md +2 -0
  18. package/dist/agent/skills/yield-compare/SKILL.md +78 -0
  19. package/dist/index.cjs +129 -29
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.js +129 -27
  22. package/dist/index.js.map +1 -1
  23. package/dist/protocols/evm/aave-v4/index.cjs +170 -0
  24. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  25. package/dist/protocols/evm/aave-v4/index.d.ts +59 -1
  26. package/dist/protocols/evm/aave-v4/index.js +164 -1
  27. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  28. package/dist/protocols/evm/aerodrome/index.cjs +1308 -901
  29. package/dist/protocols/evm/aerodrome/index.cjs.map +1 -1
  30. package/dist/protocols/evm/aerodrome/index.d.ts +69 -2
  31. package/dist/protocols/evm/aerodrome/index.js +1217 -807
  32. package/dist/protocols/evm/aerodrome/index.js.map +1 -1
  33. package/dist/protocols/evm/compound-v3/index.cjs +82 -6
  34. package/dist/protocols/evm/compound-v3/index.cjs.map +1 -1
  35. package/dist/protocols/evm/compound-v3/index.d.ts +89 -1
  36. package/dist/protocols/evm/compound-v3/index.js +80 -7
  37. package/dist/protocols/evm/compound-v3/index.js.map +1 -1
  38. package/dist/protocols/evm/curve-dao/index.cjs +447 -18
  39. package/dist/protocols/evm/curve-dao/index.cjs.map +1 -1
  40. package/dist/protocols/evm/curve-dao/index.d.ts +108 -1
  41. package/dist/protocols/evm/curve-dao/index.js +440 -19
  42. package/dist/protocols/evm/curve-dao/index.js.map +1 -1
  43. package/dist/protocols/evm/ethena/index.cjs +89 -0
  44. package/dist/protocols/evm/ethena/index.cjs.map +1 -1
  45. package/dist/protocols/evm/ethena/index.d.ts +17 -1
  46. package/dist/protocols/evm/ethena/index.js +89 -2
  47. package/dist/protocols/evm/ethena/index.js.map +1 -1
  48. package/dist/protocols/evm/euler-v2/index.cjs +29 -0
  49. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  50. package/dist/protocols/evm/euler-v2/index.d.ts +21 -1
  51. package/dist/protocols/evm/euler-v2/index.js +29 -1
  52. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  53. package/dist/protocols/evm/gmx/index.cjs +83 -1
  54. package/dist/protocols/evm/gmx/index.cjs.map +1 -1
  55. package/dist/protocols/evm/gmx/index.d.ts +22 -2
  56. package/dist/protocols/evm/gmx/index.js +80 -2
  57. package/dist/protocols/evm/gmx/index.js.map +1 -1
  58. package/dist/protocols/evm/hyperliquid/index.cjs +67 -11
  59. package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
  60. package/dist/protocols/evm/hyperliquid/index.d.ts +39 -2
  61. package/dist/protocols/evm/hyperliquid/index.js +64 -12
  62. package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
  63. package/dist/protocols/evm/lido/index.cjs +13 -0
  64. package/dist/protocols/evm/lido/index.cjs.map +1 -1
  65. package/dist/protocols/evm/lido/index.d.ts +9 -1
  66. package/dist/protocols/evm/lido/index.js +13 -1
  67. package/dist/protocols/evm/lido/index.js.map +1 -1
  68. package/dist/protocols/evm/maple/index.cjs +129 -1
  69. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  70. package/dist/protocols/evm/maple/index.d.ts +45 -1
  71. package/dist/protocols/evm/maple/index.js +124 -3
  72. package/dist/protocols/evm/maple/index.js.map +1 -1
  73. package/dist/protocols/evm/morpho/index.cjs +34 -7
  74. package/dist/protocols/evm/morpho/index.cjs.map +1 -1
  75. package/dist/protocols/evm/morpho/index.d.ts +23 -1
  76. package/dist/protocols/evm/morpho/index.js +34 -8
  77. package/dist/protocols/evm/morpho/index.js.map +1 -1
  78. package/dist/protocols/evm/sky/index.cjs +52 -0
  79. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  80. package/dist/protocols/evm/sky/index.d.ts +16 -1
  81. package/dist/protocols/evm/sky/index.js +50 -1
  82. package/dist/protocols/evm/sky/index.js.map +1 -1
  83. package/package.json +1 -1
@@ -257,6 +257,21 @@ declare function readSusdsPreviewRedeemAssetsWei(args: {
257
257
  }): Promise<bigint>;
258
258
  declare function formatSusdsSharesHuman(sharesWei: bigint, decimals: number): string;
259
259
 
260
+ declare function skySsrRayToApyPercent(ssrRay: bigint): number | null;
261
+ declare function formatSkyApyPercentLabel(pct: number | null): string;
262
+ declare function skyFetchSusdsRateSummary(args: {
263
+ rpcUrl: string;
264
+ }): Promise<{
265
+ chainId: number;
266
+ vault: string;
267
+ asset: string;
268
+ assetSymbol: string;
269
+ apyPercent: string;
270
+ apy: number | null;
271
+ usdsPerSusdsShare: string;
272
+ notes: string;
273
+ }>;
274
+
260
275
  /** CoinGecko simple token price for SKY on Ethereum (USD). */
261
276
  declare function fetchSkyUsdFromCoinGecko(): Promise<number | null>;
262
277
 
@@ -269,4 +284,4 @@ declare function loadSkyLockstakeSupportedChainIds(): ReadonlySet<number>;
269
284
  declare const SKY_PROTOCOL_ID = "sky";
270
285
  declare const skyProtocolModule: ProtocolModule;
271
286
 
272
- export { SKY_ETHEREUM_MAINNET, SKY_ETHEREUM_MAINNET_CHAIN_ID, SKY_LOCKSTAKE_DEFAULT_FARM_MAINNET, SKY_LOCKSTAKE_DEFAULT_FARM_REF, SKY_LOCKSTAKE_ENGINE_MAINNET, SKY_LOCKSTAKE_MULTICALL_FALLBACK_GAS, SKY_LOCKSTAKE_UI_COLLATERAL_FACTOR, SKY_LS_SKY_ERC20_MAINNET, SKY_PROTOCOL_ID, SKY_TOKEN_DECIMALS, SUSDS_VAULT_ERC4626_MAINNET, type SkyLockstakePositionRow, type SkyMultisignBatchStep, type SkyMultisignChainDetailRow, USDS_DECIMALS, USDS_ETHEREUM_MAINNET, appendSerializedSkyBatch, buildSkyLockstakeCloseBatch, buildSkyLockstakeDrawBatch, buildSkyLockstakeGetRewardBatch, buildSkyLockstakeStakePositionBatch, buildSkyLockstakeWipeBatch, buildSkySusdsDepositFromUsdsBatch, buildSkySusdsRedeemToUsdsBatch, fetchSkyUsdFromCoinGecko, formatSusdsSharesHuman, isSkyLockstakeIsolationEstimateGasFragileBatchStep, loadSkyLockstakePositions, loadSkyLockstakeSupportedChainIds, readSkyLockstakeFarmRewardsToken, readSusdsPreviewRedeemAssetsWei, readSusdsVaultDecimals, readSusdsVaultShareBalanceWei, resolveSkyLockstakeBatchStepGasFromSignRequest, skyProtocolModule, skyUsdsDebtWeiFromUrnArt };
287
+ export { SKY_ETHEREUM_MAINNET, SKY_ETHEREUM_MAINNET_CHAIN_ID, SKY_LOCKSTAKE_DEFAULT_FARM_MAINNET, SKY_LOCKSTAKE_DEFAULT_FARM_REF, SKY_LOCKSTAKE_ENGINE_MAINNET, SKY_LOCKSTAKE_MULTICALL_FALLBACK_GAS, SKY_LOCKSTAKE_UI_COLLATERAL_FACTOR, SKY_LS_SKY_ERC20_MAINNET, SKY_PROTOCOL_ID, SKY_TOKEN_DECIMALS, SUSDS_VAULT_ERC4626_MAINNET, type SkyLockstakePositionRow, type SkyMultisignBatchStep, type SkyMultisignChainDetailRow, USDS_DECIMALS, USDS_ETHEREUM_MAINNET, appendSerializedSkyBatch, buildSkyLockstakeCloseBatch, buildSkyLockstakeDrawBatch, buildSkyLockstakeGetRewardBatch, buildSkyLockstakeStakePositionBatch, buildSkyLockstakeWipeBatch, buildSkySusdsDepositFromUsdsBatch, buildSkySusdsRedeemToUsdsBatch, fetchSkyUsdFromCoinGecko, formatSkyApyPercentLabel, formatSusdsSharesHuman, isSkyLockstakeIsolationEstimateGasFragileBatchStep, loadSkyLockstakePositions, loadSkyLockstakeSupportedChainIds, readSkyLockstakeFarmRewardsToken, readSusdsPreviewRedeemAssetsWei, readSusdsVaultDecimals, readSusdsVaultShareBalanceWei, resolveSkyLockstakeBatchStepGasFromSignRequest, skyFetchSusdsRateSummary, skyProtocolModule, skySsrRayToApyPercent, skyUsdsDebtWeiFromUrnArt };
@@ -1385,6 +1385,55 @@ async function readSusdsPreviewRedeemAssetsWei(args) {
1385
1385
  function formatSusdsSharesHuman(sharesWei, decimals) {
1386
1386
  return formatUnits(sharesWei, decimals);
1387
1387
  }
1388
+ var susdsRateAbi = parseAbi([
1389
+ "function ssr() view returns (uint256)",
1390
+ "function previewRedeem(uint256 shares) view returns (uint256 assets)"
1391
+ ]);
1392
+ var RAY2 = 1e27;
1393
+ var SECONDS_PER_YEAR = 365.25 * 24 * 60 * 60;
1394
+ function skySsrRayToApyPercent(ssrRay) {
1395
+ const rate = Number(ssrRay) / RAY2;
1396
+ if (!Number.isFinite(rate) || rate <= 0) return null;
1397
+ const apy = rate ** SECONDS_PER_YEAR - 1;
1398
+ if (!Number.isFinite(apy) || apy < 0) return null;
1399
+ return apy * 100;
1400
+ }
1401
+ function formatSkyApyPercentLabel(pct) {
1402
+ if (pct == null) return "\u2014";
1403
+ return `${pct.toFixed(2)}%`;
1404
+ }
1405
+ async function skyFetchSusdsRateSummary(args) {
1406
+ const rpc = args.rpcUrl.trim();
1407
+ if (!rpc) throw new Error("rpcUrl is required.");
1408
+ const ch = defineChain({
1409
+ id: 1,
1410
+ name: "Ethereum",
1411
+ nativeCurrency: { decimals: 18, name: "Ether", symbol: "ETH" },
1412
+ rpcUrls: { default: { http: [rpc] } }
1413
+ });
1414
+ const client = createPublicClient({ chain: ch, transport: http(rpc) });
1415
+ const vault = getAddress(SUSDS_VAULT_ERC4626_MAINNET);
1416
+ const [ssr, assets] = await Promise.all([
1417
+ client.readContract({ address: vault, abi: susdsRateAbi, functionName: "ssr" }),
1418
+ client.readContract({
1419
+ address: vault,
1420
+ abi: susdsRateAbi,
1421
+ functionName: "previewRedeem",
1422
+ args: [10n ** 18n]
1423
+ })
1424
+ ]);
1425
+ const apy = skySsrRayToApyPercent(ssr);
1426
+ return {
1427
+ chainId: 1,
1428
+ vault,
1429
+ asset: getAddress(USDS_ETHEREUM_MAINNET),
1430
+ assetSymbol: "USDS",
1431
+ apyPercent: formatSkyApyPercentLabel(apy),
1432
+ apy,
1433
+ usdsPerSusdsShare: formatUnits(assets, 18),
1434
+ notes: "Sky Savings Rate from on-chain sUSDS.ssr() (ray). APY = (ssr/1e27)^(seconds/year) \u2212 1. Ethereum mainnet. Do not web-search Sky rates."
1435
+ };
1436
+ }
1388
1437
 
1389
1438
  // src/core/defiProxy.ts
1390
1439
  var coingeckoProxyUrl;
@@ -1441,6 +1490,6 @@ var skyProtocolModule = {
1441
1490
  };
1442
1491
  registerProtocolModule(skyProtocolModule);
1443
1492
 
1444
- export { SKY_ETHEREUM_MAINNET, SKY_ETHEREUM_MAINNET_CHAIN_ID, SKY_LOCKSTAKE_DEFAULT_FARM_MAINNET, SKY_LOCKSTAKE_DEFAULT_FARM_REF, SKY_LOCKSTAKE_ENGINE_MAINNET, SKY_LOCKSTAKE_MULTICALL_FALLBACK_GAS, SKY_LOCKSTAKE_UI_COLLATERAL_FACTOR, SKY_LS_SKY_ERC20_MAINNET, SKY_PROTOCOL_ID, SKY_TOKEN_DECIMALS, SUSDS_VAULT_ERC4626_MAINNET, USDS_DECIMALS, USDS_ETHEREUM_MAINNET, appendSerializedSkyBatch, buildSkyLockstakeCloseBatch, buildSkyLockstakeDrawBatch, buildSkyLockstakeGetRewardBatch, buildSkyLockstakeStakePositionBatch, buildSkyLockstakeWipeBatch, buildSkySusdsDepositFromUsdsBatch, buildSkySusdsRedeemToUsdsBatch, fetchSkyUsdFromCoinGecko, formatSusdsSharesHuman, isSkyLockstakeIsolationEstimateGasFragileBatchStep, loadSkyLockstakePositions, loadSkyLockstakeSupportedChainIds, readSkyLockstakeFarmRewardsToken, readSusdsPreviewRedeemAssetsWei, readSusdsVaultDecimals, readSusdsVaultShareBalanceWei, resolveSkyLockstakeBatchStepGasFromSignRequest, skyProtocolModule, skyUsdsDebtWeiFromUrnArt };
1493
+ export { SKY_ETHEREUM_MAINNET, SKY_ETHEREUM_MAINNET_CHAIN_ID, SKY_LOCKSTAKE_DEFAULT_FARM_MAINNET, SKY_LOCKSTAKE_DEFAULT_FARM_REF, SKY_LOCKSTAKE_ENGINE_MAINNET, SKY_LOCKSTAKE_MULTICALL_FALLBACK_GAS, SKY_LOCKSTAKE_UI_COLLATERAL_FACTOR, SKY_LS_SKY_ERC20_MAINNET, SKY_PROTOCOL_ID, SKY_TOKEN_DECIMALS, SUSDS_VAULT_ERC4626_MAINNET, USDS_DECIMALS, USDS_ETHEREUM_MAINNET, appendSerializedSkyBatch, buildSkyLockstakeCloseBatch, buildSkyLockstakeDrawBatch, buildSkyLockstakeGetRewardBatch, buildSkyLockstakeStakePositionBatch, buildSkyLockstakeWipeBatch, buildSkySusdsDepositFromUsdsBatch, buildSkySusdsRedeemToUsdsBatch, fetchSkyUsdFromCoinGecko, formatSkyApyPercentLabel, formatSusdsSharesHuman, isSkyLockstakeIsolationEstimateGasFragileBatchStep, loadSkyLockstakePositions, loadSkyLockstakeSupportedChainIds, readSkyLockstakeFarmRewardsToken, readSusdsPreviewRedeemAssetsWei, readSusdsVaultDecimals, readSusdsVaultShareBalanceWei, resolveSkyLockstakeBatchStepGasFromSignRequest, skyFetchSusdsRateSummary, skyProtocolModule, skySsrRayToApyPercent, skyUsdsDebtWeiFromUrnArt };
1445
1494
  //# sourceMappingURL=index.js.map
1446
1495
  //# sourceMappingURL=index.js.map