@continuumdao/ctm-mpc-defi 0.2.33 → 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 +41 -6
  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 +41 -7
  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
package/dist/index.js CHANGED
@@ -1,8 +1,111 @@
1
+ import { parseAbi, parseAbiItem, hashTypedData, getAddress, zeroAddress, defineChain, createPublicClient, http, parseGwei, serializeTransaction, keccak256, parseUnits, formatUnits, encodeFunctionData, stringToHex, decodeFunctionData, erc20Abi, isAddress } from 'viem';
1
2
  import { getClientIdFromKeyGenResult, gasLimitFromEstimateAndChainConfig, fetchChainFeeParams, gweiToDecimalString, proposalTxParamsToFeeSnapshot, alignEip1559FeesWithLatestBase, nodeFetchWithReadAuth } from '@continuumdao/continuum-node-sdk';
2
3
  export { getClientIdFromKeyGenResult as firstClientIdFromKeyGen } from '@continuumdao/continuum-node-sdk';
3
- import { parseAbi, parseAbiItem, hashTypedData, getAddress, zeroAddress, defineChain, createPublicClient, http, parseGwei, serializeTransaction, keccak256, parseUnits, formatUnits, encodeFunctionData, stringToHex, decodeFunctionData, erc20Abi, isAddress } from 'viem';
4
4
 
5
- // src/core/index.ts
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __esm = (fn, res) => function __init() {
7
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
8
+ };
9
+
10
+ // src/core/expiry.ts
11
+ function defiMultisignExpiryUnixSeconds(protocolId, explicitExpiryDate) {
12
+ if (typeof explicitExpiryDate === "number" && Number.isFinite(explicitExpiryDate) && explicitExpiryDate > 0) {
13
+ return Math.floor(explicitExpiryDate);
14
+ }
15
+ if (protocolId && DEFI_PROTOCOLS_WITH_30MIN_EXPIRY.has(protocolId)) {
16
+ return Math.floor(Date.now() / 1e3) + DEFAULT_DEFI_MULTISIGN_EXPIRY_SECONDS;
17
+ }
18
+ return void 0;
19
+ }
20
+ var DEFAULT_DEFI_MULTISIGN_EXPIRY_SECONDS, DEFI_PROTOCOLS_WITH_30MIN_EXPIRY;
21
+ var init_expiry = __esm({
22
+ "src/core/expiry.ts"() {
23
+ DEFAULT_DEFI_MULTISIGN_EXPIRY_SECONDS = 30 * 60;
24
+ DEFI_PROTOCOLS_WITH_30MIN_EXPIRY = /* @__PURE__ */ new Set([
25
+ "uniswap-v4",
26
+ "gmx",
27
+ "hyperliquid",
28
+ "arcus",
29
+ "curve-dao",
30
+ "aerodrome"
31
+ ]);
32
+ }
33
+ });
34
+ function isAerodromeChainSupported(chainId) {
35
+ const n = typeof chainId === "number" ? chainId : Number.parseInt(String(chainId), 10);
36
+ return n === AERODROME_CHAIN_ID;
37
+ }
38
+ var AERODROME_PROTOCOL_ID, AERODROME_CHAIN_ID, AERODROME_WETH_BASE, AERODROME_USDC_BASE;
39
+ var init_support = __esm({
40
+ "src/protocols/evm/aerodrome/support.ts"() {
41
+ AERODROME_PROTOCOL_ID = "aerodrome";
42
+ AERODROME_CHAIN_ID = 8453;
43
+ AERODROME_WETH_BASE = "0x4200000000000000000000000000000000000006";
44
+ AERODROME_USDC_BASE = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
45
+ }
46
+ });
47
+ var AERODROME_BASE_ADDRESSES_FALLBACK;
48
+ var init_addresses = __esm({
49
+ "src/protocols/evm/aerodrome/addresses.ts"() {
50
+ init_support();
51
+ AERODROME_BASE_ADDRESSES_FALLBACK = {
52
+ chainId: AERODROME_CHAIN_ID,
53
+ aero: "0x940181a94A35A4569E4529A3CDfB74e38FD98631",
54
+ router: "0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43",
55
+ poolFactory: "0x420DD381b31aEf6683db6B902084cB0FFECe40Da",
56
+ factoryRegistry: "0x5C3F18F06CC09CA1910767A34a20F771039E37C0",
57
+ voter: "0x16613524e02ad97eDfeF371bC883F2F5d6C480A5",
58
+ votingEscrow: "0xeBf418Fe2512e7E6bd9b87a8F0f294aCDC67e6B4",
59
+ rewardsDistributor: "0x227f65131A261548b057215bB1D5Ab2997964C7d",
60
+ mixedQuoter: "0x0A5aA5D3a4d28014f967Bf0f29EAA3FF9807D5c6",
61
+ /** MixedRouteQuoterV3 — v2 + all three CL factories (bitmask path encoding). */
62
+ mixedQuoterV3: "0xCd2A7D98e82D6107eac1828ce8DeAA6acB65b555",
63
+ nfpm: "0x827922686190790b37229fd06084350E74485b72",
64
+ /** Oldest Slipstream CL factory (Gauges V1). Path bit 1<<20. */
65
+ clFactory: "0x5e7BB104d84c7CB9B682AaC2F3d509f5F406809A",
66
+ /** Slipstream CL factory 2 (gauge caps). Raw tickSpacing in MixedQuoterV3. */
67
+ clFactory2: "0xaDe65c38CD4849aDBA595a4323a8C7DdfE89716a",
68
+ /** Newest Slipstream CL factory (Gauges V3) — Coinbase B20 stock pools. Path bit 1<<19. */
69
+ clFactory3: "0xf8f2eB4940CFE7d13603DDDD87f123820Fc061Ef",
70
+ universalRouter: "0x6Cb442acF35158D5eDa88fe602221b67B400Be3E",
71
+ swapRouter: "0xBE6D8f0d05cC4be24d5167a3eF062215bE6D18a5",
72
+ swapRouter2: "0xcbBb8035cAc7D4B3Ca7aBb74cF7BdF900215Ce0D",
73
+ swapRouter3: "0x698Cb2b6dd822994581fEa6eA4Fc755d1363A92F",
74
+ pricesOracle: "0xee717411f6E44F9feE011835C8E6FAaC5dEfF166",
75
+ slipstreamHelper: "0x0AD09A66af0154a84e86F761313d02d0abB6edd5",
76
+ lpSugar: "0x69dD9db6d8f8E7d83887A704f447b1a584b599A1",
77
+ sugarSlipstreamHelper: "0x9c62ab10577fB3C20A22E231b7703Ed6D456CC7a",
78
+ swapper: "0x91616a7B9CF6D23f8C17845581051EBdC4BcB916",
79
+ weth: AERODROME_WETH_BASE
80
+ };
81
+ }
82
+ });
83
+ var init_stockTokens = __esm({
84
+ "src/protocols/evm/aerodrome/stockTokens.ts"() {
85
+ }
86
+ });
87
+ var init_discover = __esm({
88
+ "src/protocols/evm/aerodrome/discover.ts"() {
89
+ }
90
+ });
91
+ var init_yields = __esm({
92
+ "src/protocols/evm/aerodrome/yields.ts"() {
93
+ init_addresses();
94
+ init_support();
95
+ new Set(
96
+ [
97
+ AERODROME_WETH_BASE,
98
+ AERODROME_USDC_BASE,
99
+ AERODROME_BASE_ADDRESSES_FALLBACK.aero,
100
+ "0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb",
101
+ "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2",
102
+ "0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34",
103
+ "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22",
104
+ "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"
105
+ ].map((a) => a.toLowerCase())
106
+ );
107
+ }
108
+ });
6
109
 
7
110
  // src/core/purpose.ts
8
111
  function mergePurposeText(purposeText, purposeSuffix) {
@@ -297,25 +400,8 @@ function buildPayloadSignEd25519MultisignBody(args) {
297
400
  });
298
401
  }
299
402
 
300
- // src/core/expiry.ts
301
- var DEFAULT_DEFI_MULTISIGN_EXPIRY_SECONDS = 30 * 60;
302
- var DEFI_PROTOCOLS_WITH_30MIN_EXPIRY = /* @__PURE__ */ new Set([
303
- "uniswap-v4",
304
- "gmx",
305
- "hyperliquid",
306
- "arcus",
307
- "curve-dao",
308
- "aerodrome"
309
- ]);
310
- function defiMultisignExpiryUnixSeconds(protocolId, explicitExpiryDate) {
311
- if (typeof explicitExpiryDate === "number" && Number.isFinite(explicitExpiryDate) && explicitExpiryDate > 0) {
312
- return Math.floor(explicitExpiryDate);
313
- }
314
- if (protocolId && DEFI_PROTOCOLS_WITH_30MIN_EXPIRY.has(protocolId)) {
315
- return Math.floor(Date.now() / 1e3) + DEFAULT_DEFI_MULTISIGN_EXPIRY_SECONDS;
316
- }
317
- return void 0;
318
- }
403
+ // src/core/index.ts
404
+ init_expiry();
319
405
  function isEvmNativeToken(address) {
320
406
  try {
321
407
  return getAddress(address) === zeroAddress;
@@ -3429,6 +3515,22 @@ var curveDaoProtocolModule = {
3429
3515
  amountHuman: { type: "string", required: true, description: "Human-readable input amount" },
3430
3516
  slippagePercent: { type: "number", required: true, description: "Slippage percent (0\u2013100 exclusive)" }
3431
3517
  }
3518
+ },
3519
+ {
3520
+ id: "curve-dao.add-liquidity",
3521
+ protocolId: CURVE_DAO_PROTOCOL_ID,
3522
+ chainCategory: "evm",
3523
+ description: "Add liquidity to an important Curve pool (optional gauge stake)",
3524
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3525
+ params: {}
3526
+ },
3527
+ {
3528
+ id: "curve-dao.remove-liquidity",
3529
+ protocolId: CURVE_DAO_PROTOCOL_ID,
3530
+ chainCategory: "evm",
3531
+ description: "Remove liquidity from an important Curve pool",
3532
+ commonParams: ["keyGen", "purposeText", "useCustomGas"],
3533
+ params: {}
3432
3534
  }
3433
3535
  ]
3434
3536
  };
@@ -3438,14 +3540,14 @@ var curveDao = {
3438
3540
  isChainSupported: isCurveApiChainSupported,
3439
3541
  loadSession: loadFullCurveSessionForRpc
3440
3542
  };
3441
- var AERODROME_PROTOCOL_ID = "aerodrome";
3442
- var AERODROME_CHAIN_ID = 8453;
3443
- function isAerodromeChainSupported(chainId) {
3444
- const n = typeof chainId === "number" ? chainId : Number.parseInt(String(chainId), 10);
3445
- return n === AERODROME_CHAIN_ID;
3446
- }
3447
3543
 
3448
3544
  // src/protocols/evm/aerodrome/index.ts
3545
+ init_support();
3546
+ init_support();
3547
+ init_addresses();
3548
+ init_stockTokens();
3549
+ init_discover();
3550
+ init_yields();
3449
3551
  var aerodromeProtocolModule = {
3450
3552
  id: AERODROME_PROTOCOL_ID,
3451
3553
  chainCategory: "evm",