@hypurrquant/defi-cli 1.0.2 → 1.0.4

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 (60) hide show
  1. package/config/chains.toml +54 -0
  2. package/config/protocols/dex/aerodrome_base.toml +15 -0
  3. package/config/protocols/dex/aerodrome_cl.toml +17 -0
  4. package/config/protocols/dex/apeswap_bnb.toml +14 -0
  5. package/config/protocols/dex/babydogeswap_bnb.toml +14 -0
  6. package/config/protocols/dex/bakeryswap_bnb.toml +14 -0
  7. package/config/protocols/dex/biswap_bnb.toml +14 -0
  8. package/config/protocols/dex/bscswap_bnb.toml +14 -0
  9. package/config/protocols/dex/curve_hyperevm.toml +21 -0
  10. package/config/protocols/dex/fstswap_bnb.toml +14 -0
  11. package/config/protocols/dex/hybra.toml +3 -1
  12. package/config/protocols/dex/hyperswap.toml +15 -0
  13. package/config/protocols/dex/kittenswap.toml +4 -1
  14. package/config/protocols/dex/merchantmoe_mantle.toml +1 -0
  15. package/config/protocols/dex/nest.toml +3 -1
  16. package/config/protocols/dex/pancakeswap_v2_bnb.toml +14 -0
  17. package/config/protocols/dex/pancakeswap_v3_bnb.toml +15 -0
  18. package/config/protocols/dex/project_x.toml +4 -2
  19. package/config/protocols/dex/ramses_cl.toml +14 -7
  20. package/config/protocols/dex/ramses_hl.toml +6 -14
  21. package/config/protocols/dex/thena_fusion_bnb.toml +14 -0
  22. package/config/protocols/dex/thena_v1_bnb.toml +13 -0
  23. package/config/protocols/dex/traderjoe_monad.toml +14 -0
  24. package/config/protocols/dex/uniswap_v2_monad.toml +12 -0
  25. package/config/protocols/dex/uniswap_v3_base.toml +14 -0
  26. package/config/protocols/dex/uniswap_v3_bnb.toml +13 -0
  27. package/config/protocols/dex/uniswap_v3_monad.toml +14 -0
  28. package/config/protocols/lending/.omc/state/last-tool-error.json +7 -0
  29. package/config/protocols/lending/aave_v3_base.toml +14 -0
  30. package/config/protocols/lending/aave_v3_bnb.toml +14 -0
  31. package/config/protocols/lending/compound_v3_base.toml +14 -0
  32. package/config/protocols/lending/felix_morpho.toml +2 -1
  33. package/config/protocols/lending/hyperlend.toml +2 -1
  34. package/config/protocols/lending/hypurrfi.toml +2 -1
  35. package/config/protocols/lending/kinza_bnb.toml +15 -0
  36. package/config/protocols/lending/morpho_blue_monad.toml +11 -0
  37. package/config/protocols/lending/venus_bnb.toml +18 -0
  38. package/config/protocols/lending/venus_flux_bnb.toml +22 -0
  39. package/config/protocols/vault/beefy_bnb.toml +12 -0
  40. package/config/tokens/arbitrum.toml +77 -0
  41. package/config/tokens/base.toml +50 -0
  42. package/config/tokens/bnb.toml +50 -0
  43. package/config/tokens/ethereum.toml +107 -0
  44. package/config/tokens/hyperevm.toml +1 -0
  45. package/config/tokens/monad.toml +48 -0
  46. package/dist/index.js +7 -4
  47. package/dist/index.js.map +1 -1
  48. package/dist/main.js +7 -4
  49. package/dist/main.js.map +1 -1
  50. package/package.json +3 -1
  51. package/skills/defi-cli/package.json +1 -1
  52. package/config/pools.example.toml +0 -31
  53. package/config/protocols/cdp/felix.toml +0 -21
  54. package/config/protocols/nft/seaport_hyperevm.toml +0 -10
  55. package/config/protocols/vault/felix_vaults.toml +0 -21
  56. package/config/protocols/vault/hyperbeat_hyperevm.toml +0 -29
  57. package/config/protocols/vault/hypersurface_hyperevm.toml +0 -13
  58. package/config/protocols/vault/looping_hyperevm.toml +0 -17
  59. package/config/protocols/vault/upshift.toml +0 -14
  60. package/config/protocols/yield_aggregator/lazy_summer.toml +0 -13
@@ -0,0 +1,11 @@
1
+ [protocol]
2
+ name = "Morpho Blue Monad"
3
+ slug = "morpho-blue-monad"
4
+ category = "lending"
5
+ interface = "morpho_blue"
6
+ chain = "monad"
7
+ native = false
8
+ description = "Morpho Blue on Monad — permissionless lending primitive"
9
+
10
+ [protocol.contracts]
11
+ morpho_blue = "0xD5D960E8C380B724a48AC59E2DfF1b2CB4a1eAee"
@@ -0,0 +1,18 @@
1
+ [protocol]
2
+ name = "Venus"
3
+ slug = "venus-bnb"
4
+ category = "lending"
5
+ interface = "compound_v2"
6
+ chain = "bnb"
7
+ native = true
8
+ verified = true
9
+ reward_strategy = "none"
10
+ description = "Venus Protocol — Compound V2 fork, largest lending on BNB. On-chain verified 2026-04-03."
11
+
12
+ [protocol.contracts]
13
+ comptroller = "0xfD36E2c2a6789Db23113685031d7F16329158384"
14
+ vusdt = "0xfD5840Cd36d94D7229439859C0112a4185BC0255"
15
+ vusdc = "0xecA88125a5ADbe82614ffC12D0DB554E2e2867C8"
16
+ vbnb = "0xA07c5b74C9B40447a954e1466938b865b6BBea36"
17
+ vbtcb = "0x882C173bC7Ff3b7786CA16dfeD3DFFfb9Ee7847B"
18
+ oracle = "0x6592b5DE802159F3E74B2486b091D11a8256ab8A"
@@ -0,0 +1,22 @@
1
+ [protocol]
2
+ name = "Venus Flux"
3
+ slug = "venus-flux-bnb"
4
+ category = "lending"
5
+ interface = "compound_v2"
6
+ chain = "bnb"
7
+ native = true
8
+ verified = true
9
+ reward_strategy = "none"
10
+ description = "Venus Flux — isolated-pool extension of Venus. Multiple comptrollers per pool. On-chain verified 2026-04-03."
11
+
12
+ [protocol.contracts]
13
+ pool_registry = "0x9F7b01A536aFA00EF10310A162877fd792cD0666"
14
+ comptroller = "0x94c1495cD4c557f1560Cbd68EAB0d197e6291571" # stablecoins pool (default)
15
+ comptroller_stablecoins = "0x94c1495cD4c557f1560Cbd68EAB0d197e6291571"
16
+ comptroller_defi = "0x3344417c9360b963ca93A4e8305361AEde340Ab9"
17
+ comptroller_lsbnb = "0xd933909A4a2b7A4638903028f44D1d38ce27c352"
18
+ comptroller_btc = "0x9DF11376Cf28867E2B0741348044780FbB7cb1d6"
19
+ comptroller_lsteth = "0xBE609449Eb4D76AD8545f957bBE04b596E8fC529"
20
+ comptroller_meme = "0x33B6fa34cd23e5aeeD1B112d5988B026b8A5567d"
21
+ vusdt = "0xca2D81AA7C09A1a025De797600A7081146dCeEd9"
22
+ oracle = "0x6592b5DE802159F3E74B2486b091D11a8256ab8A"
@@ -0,0 +1,12 @@
1
+ [protocol]
2
+ name = "Beefy BNB"
3
+ slug = "beefy-bnb"
4
+ category = "vault"
5
+ interface = "beefy_vault"
6
+ chain = "bnb"
7
+ native = false
8
+ verified = true
9
+ description = "Beefy yield vault on BNB Chain."
10
+
11
+ [protocol.contracts]
12
+ vault = "0x015E2d1b7AC621370A24B7dd426EF1ef4DA99B86"
@@ -0,0 +1,77 @@
1
+ [[token]]
2
+ symbol = "ETH"
3
+ name = "Ether"
4
+ address = "0x0000000000000000000000000000000000000000"
5
+ decimals = 18
6
+ tags = ["native"]
7
+
8
+ [[token]]
9
+ symbol = "WETH"
10
+ name = "Wrapped Ether"
11
+ address = "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
12
+ decimals = 18
13
+ tags = ["wrapped"]
14
+
15
+ [[token]]
16
+ symbol = "USDC"
17
+ name = "USD Coin"
18
+ address = "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
19
+ decimals = 6
20
+ tags = ["stablecoin"]
21
+
22
+ [[token]]
23
+ symbol = "USDC.e"
24
+ name = "Bridged USDC"
25
+ address = "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8"
26
+ decimals = 6
27
+ tags = ["stablecoin"]
28
+
29
+ [[token]]
30
+ symbol = "USDT"
31
+ name = "Tether"
32
+ address = "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
33
+ decimals = 6
34
+ tags = ["stablecoin"]
35
+
36
+ [[token]]
37
+ symbol = "DAI"
38
+ name = "Dai Stablecoin"
39
+ address = "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"
40
+ decimals = 18
41
+ tags = ["stablecoin"]
42
+
43
+ [[token]]
44
+ symbol = "WBTC"
45
+ name = "Wrapped BTC"
46
+ address = "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f"
47
+ decimals = 8
48
+
49
+ [[token]]
50
+ symbol = "ARB"
51
+ name = "Arbitrum"
52
+ address = "0x912CE59144191C1204E64559FE8253a0e49E6548"
53
+ decimals = 18
54
+
55
+ [[token]]
56
+ symbol = "GMX"
57
+ name = "GMX"
58
+ address = "0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a"
59
+ decimals = 18
60
+
61
+ [[token]]
62
+ symbol = "wstETH"
63
+ name = "Wrapped stETH"
64
+ address = "0x5979D7b546E38E414F7E9822514be443A4800529"
65
+ decimals = 18
66
+
67
+ [[token]]
68
+ symbol = "weETH"
69
+ name = "Wrapped eETH"
70
+ address = "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe"
71
+ decimals = 18
72
+
73
+ [[token]]
74
+ symbol = "PENDLE"
75
+ name = "Pendle"
76
+ address = "0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8"
77
+ decimals = 18
@@ -0,0 +1,50 @@
1
+ [[token]]
2
+ symbol = "ETH"
3
+ name = "Ether"
4
+ address = "0x0000000000000000000000000000000000000000"
5
+ decimals = 18
6
+ tags = ["native"]
7
+
8
+ [[token]]
9
+ symbol = "WETH"
10
+ name = "Wrapped Ether"
11
+ address = "0x4200000000000000000000000000000000000006"
12
+ decimals = 18
13
+ tags = ["wrapped"]
14
+ [[token]]
15
+ symbol = "USDC"
16
+ name = "USD Coin"
17
+ address = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
18
+ decimals = 6
19
+ tags = ["stablecoin"]
20
+
21
+ [[token]]
22
+ symbol = "USDbC"
23
+ name = "Bridged USDC"
24
+ address = "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA"
25
+ decimals = 6
26
+ tags = ["stablecoin"]
27
+ [[token]]
28
+ symbol = "USDT"
29
+ name = "Tether"
30
+ address = "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2"
31
+ decimals = 6
32
+ tags = ["stablecoin"]
33
+
34
+ [[token]]
35
+ symbol = "cbETH"
36
+ name = "Coinbase Staked ETH"
37
+ address = "0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22"
38
+ decimals = 18
39
+
40
+ [[token]]
41
+ symbol = "wstETH"
42
+ name = "Wrapped stETH"
43
+ address = "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"
44
+ decimals = 18
45
+
46
+ [[token]]
47
+ symbol = "AERO"
48
+ name = "Aerodrome"
49
+ address = "0x940181a94A35A4569E4529A3CDfB74e38FD98631"
50
+ decimals = 18
@@ -0,0 +1,50 @@
1
+ [[token]]
2
+ symbol = "BNB"
3
+ name = "BNB"
4
+ address = "0x0000000000000000000000000000000000000000"
5
+ decimals = 18
6
+ tags = ["native"]
7
+
8
+ [[token]]
9
+ symbol = "WBNB"
10
+ name = "Wrapped BNB"
11
+ address = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
12
+ decimals = 18
13
+ tags = ["wrapped"]
14
+ [[token]]
15
+ symbol = "USDT"
16
+ name = "Tether"
17
+ address = "0x55d398326f99059fF775485246999027B3197955"
18
+ decimals = 18
19
+ tags = ["stablecoin"]
20
+
21
+ [[token]]
22
+ symbol = "USDC"
23
+ name = "USD Coin"
24
+ address = "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"
25
+ decimals = 18
26
+ tags = ["stablecoin"]
27
+
28
+ [[token]]
29
+ symbol = "BTCB"
30
+ name = "Bitcoin BEP20"
31
+ address = "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c"
32
+ decimals = 18
33
+
34
+ [[token]]
35
+ symbol = "ETH"
36
+ name = "Ethereum"
37
+ address = "0x2170Ed0880ac9A755fd29B2688956BD959F933F8"
38
+ decimals = 18
39
+
40
+ [[token]]
41
+ symbol = "CAKE"
42
+ name = "PancakeSwap"
43
+ address = "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82"
44
+ decimals = 18
45
+
46
+ [[token]]
47
+ symbol = "THE"
48
+ name = "Thena"
49
+ address = "0xF4C8E32EaDEC4BFe97E0F595AdD0f4450a863a11"
50
+ decimals = 18
@@ -0,0 +1,107 @@
1
+ [[token]]
2
+ symbol = "ETH"
3
+ name = "Ether"
4
+ address = "0x0000000000000000000000000000000000000000"
5
+ decimals = 18
6
+ tags = ["native"]
7
+
8
+ [[token]]
9
+ symbol = "WETH"
10
+ name = "Wrapped Ether"
11
+ address = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
12
+ decimals = 18
13
+ tags = ["wrapped"]
14
+
15
+ [[token]]
16
+ symbol = "USDC"
17
+ name = "USD Coin"
18
+ address = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
19
+ decimals = 6
20
+ tags = ["stablecoin"]
21
+
22
+ [[token]]
23
+ symbol = "USDT"
24
+ name = "Tether"
25
+ address = "0xdAC17F958D2ee523a2206206994597C13D831ec7"
26
+ decimals = 6
27
+ tags = ["stablecoin"]
28
+
29
+ [[token]]
30
+ symbol = "DAI"
31
+ name = "Dai Stablecoin"
32
+ address = "0x6B175474E89094C44Da98b954EedeAC495271d0F"
33
+ decimals = 18
34
+ tags = ["stablecoin"]
35
+
36
+ [[token]]
37
+ symbol = "sDAI"
38
+ name = "Savings DAI"
39
+ address = "0x83F20F44975D03b1b09e64809B757c47f942BEeA"
40
+ decimals = 18
41
+ tags = ["stablecoin", "yield"]
42
+
43
+ [[token]]
44
+ symbol = "WBTC"
45
+ name = "Wrapped BTC"
46
+ address = "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"
47
+ decimals = 8
48
+
49
+ [[token]]
50
+ symbol = "stETH"
51
+ name = "Lido Staked ETH"
52
+ address = "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84"
53
+ decimals = 18
54
+
55
+ [[token]]
56
+ symbol = "wstETH"
57
+ name = "Wrapped stETH"
58
+ address = "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
59
+ decimals = 18
60
+
61
+ [[token]]
62
+ symbol = "weETH"
63
+ name = "Wrapped eETH"
64
+ address = "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee"
65
+ decimals = 18
66
+
67
+ [[token]]
68
+ symbol = "AAVE"
69
+ name = "Aave"
70
+ address = "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9"
71
+ decimals = 18
72
+
73
+ [[token]]
74
+ symbol = "COMP"
75
+ name = "Compound"
76
+ address = "0xc00e94Cb662C3520282E6f5717214004A7f26888"
77
+ decimals = 18
78
+
79
+ [[token]]
80
+ symbol = "UNI"
81
+ name = "Uniswap"
82
+ address = "0x1f9840a85d5aF5bf1D1762F925BdAdDC4201F984"
83
+ decimals = 18
84
+
85
+ [[token]]
86
+ symbol = "MKR"
87
+ name = "Maker"
88
+ address = "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2"
89
+ decimals = 18
90
+
91
+ [[token]]
92
+ symbol = "PENDLE"
93
+ name = "Pendle"
94
+ address = "0x808507121B80c02388fAd14726482e061B8da827"
95
+ decimals = 18
96
+
97
+ [[token]]
98
+ symbol = "LDO"
99
+ name = "Lido DAO"
100
+ address = "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32"
101
+ decimals = 18
102
+
103
+ [[token]]
104
+ symbol = "MORPHO"
105
+ name = "Morpho"
106
+ address = "0x58D97B57BB95320F9a05dC918Aef65434969c2B2"
107
+ decimals = 18
@@ -103,3 +103,4 @@ name = "Pendle Token"
103
103
  address = "0xD6Eb81136884713E843936843E286FD2a85A205A"
104
104
  decimals = 18
105
105
  tags = ["governance"]
106
+
@@ -0,0 +1,48 @@
1
+ [[token]]
2
+ symbol = "MON"
3
+ name = "Monad"
4
+ address = "0x0000000000000000000000000000000000000000"
5
+ decimals = 18
6
+ tags = ["native"]
7
+
8
+ [[token]]
9
+ symbol = "WMON"
10
+ name = "Wrapped MON"
11
+ address = "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A"
12
+ decimals = 18
13
+ tags = ["wrapped"]
14
+
15
+ [[token]]
16
+ symbol = "USDC"
17
+ name = "USD Coin"
18
+ address = "0x754704Bc059F8C67012fEd69BC8A327a5aafb603"
19
+ decimals = 6
20
+ tags = ["stablecoin"]
21
+
22
+ [[token]]
23
+ symbol = "USDT0"
24
+ name = "USDT0"
25
+ address = "0xe7cd86e13AC4309349F30B3435a9d337750fC82D"
26
+ decimals = 6
27
+ tags = ["stablecoin"]
28
+
29
+ [[token]]
30
+ symbol = "WETH"
31
+ name = "Wrapped Ether"
32
+ address = "0xEE8c0E9f1BFFb4Eb878d8f15f368A02a35481242"
33
+ decimals = 18
34
+ tags = ["wrapped"]
35
+
36
+ [[token]]
37
+ symbol = "WBTC"
38
+ name = "Wrapped BTC"
39
+ address = "0x0555E30da8f98308EdB960aa94C0Db47230d2B9c"
40
+ decimals = 8
41
+ tags = ["wrapped"]
42
+
43
+ [[token]]
44
+ symbol = "wstETH"
45
+ name = "Wrapped stETH"
46
+ address = "0x10Aeaf63194db8d453d4D85a06E5eFE1dd0b5417"
47
+ decimals = 18
48
+ tags = ["wrapped"]
package/dist/index.js CHANGED
@@ -7960,7 +7960,7 @@ function handleSchema(params) {
7960
7960
  from: { type: "string", required: true, description: "Input token symbol or address" },
7961
7961
  to: { type: "string", required: true, description: "Output token symbol or address" },
7962
7962
  amount: { type: "string", required: true, description: "Amount in wei" },
7963
- provider: { type: "string", required: false, default: "kyber", description: "Aggregator: kyber, openocean, liquid" },
7963
+ provider: { type: "string", required: false, default: "kyber", description: "Aggregator: kyber, openocean, liquid, lifi, relay" },
7964
7964
  slippage: { type: "string", required: false, default: "50", description: "Slippage in bps" }
7965
7965
  },
7966
7966
  cli: "defi --chain hyperevm swap --from USDC --to WHYPE --amount 1000000"
@@ -9818,11 +9818,12 @@ function registerYield(parent, getOpts, makeExecutor2) {
9818
9818
  if (opts.targetChain) {
9819
9819
  targetChainName = opts.targetChain.toLowerCase();
9820
9820
  } else {
9821
- process.stderr.write(`Scanning all chains for best ${asset} yield...
9821
+ const quiet = getOpts().json;
9822
+ if (!quiet) process.stderr.write(`Scanning all chains for best ${asset} yield...
9822
9823
  `);
9823
9824
  const t0 = Date.now();
9824
9825
  const allRates = await scanRatesForExecute(registry, asset);
9825
- process.stderr.write(`Scan done in ${Date.now() - t0}ms \u2014 ${allRates.length} rates found
9826
+ if (!quiet) process.stderr.write(`Scan done in ${Date.now() - t0}ms \u2014 ${allRates.length} rates found
9826
9827
  `);
9827
9828
  if (allRates.length === 0) {
9828
9829
  printOutput({ error: `No yield opportunities found for ${asset}` }, getOpts());
@@ -11746,7 +11747,9 @@ function buildBanner() {
11746
11747
  try {
11747
11748
  const reg = Registry.loadEmbedded();
11748
11749
  chainCount = reg.chains.size;
11749
- protocolCount = reg.protocols.length;
11750
+ protocolCount = reg.protocols.filter(
11751
+ (p) => p.verified !== false && p.is_active !== false
11752
+ ).length;
11750
11753
  } catch {
11751
11754
  }
11752
11755
  const stats = chainCount && protocolCount ? `${chainCount} chains \xB7 ${protocolCount} protocols \xB7 by HypurrQuant` : `by HypurrQuant`;