@defisaver/positions-sdk 0.0.187 → 0.0.188-dev-markets

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 (126) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/compoundV3/index.js +14 -9
  5. package/cjs/config/contracts.d.ts +572 -216
  6. package/cjs/config/contracts.js +34 -2
  7. package/cjs/contracts.d.ts +2 -0
  8. package/cjs/contracts.js +3 -1
  9. package/cjs/helpers/morphoBlueHelpers/index.js +49 -49
  10. package/cjs/markets/compound/index.d.ts +4 -0
  11. package/cjs/markets/compound/index.js +41 -1
  12. package/cjs/markets/compound/marketsAssets.d.ts +14 -0
  13. package/cjs/markets/compound/marketsAssets.js +17 -3
  14. package/cjs/markets/morphoBlue/index.d.ts +8 -0
  15. package/cjs/markets/morphoBlue/index.js +71 -2
  16. package/cjs/morphoBlue/index.js +27 -10
  17. package/cjs/services/priceService.d.ts +3 -0
  18. package/cjs/services/priceService.js +33 -1
  19. package/cjs/types/compound.d.ts +3 -1
  20. package/cjs/types/compound.js +2 -0
  21. package/cjs/types/contracts/generated/CUSDSv3.d.ts +441 -0
  22. package/cjs/types/contracts/generated/CUSDSv3.js +5 -0
  23. package/cjs/types/contracts/generated/CWstETHv3.d.ts +441 -0
  24. package/cjs/types/contracts/generated/CWstETHv3.js +5 -0
  25. package/cjs/types/contracts/generated/DFSFeedRegistry.d.ts +40 -0
  26. package/cjs/types/contracts/generated/DFSFeedRegistry.js +5 -0
  27. package/cjs/types/contracts/generated/WstETHPriceFeed.d.ts +39 -0
  28. package/cjs/types/contracts/generated/WstETHPriceFeed.js +5 -0
  29. package/cjs/types/contracts/generated/index.d.ts +4 -0
  30. package/cjs/types/morphoBlue.d.ts +5 -1
  31. package/cjs/types/morphoBlue.js +4 -0
  32. package/esm/compoundV3/index.js +15 -10
  33. package/esm/config/contracts.d.ts +572 -216
  34. package/esm/config/contracts.js +34 -2
  35. package/esm/contracts.d.ts +2 -0
  36. package/esm/contracts.js +2 -0
  37. package/esm/helpers/morphoBlueHelpers/index.js +49 -49
  38. package/esm/markets/compound/index.d.ts +4 -0
  39. package/esm/markets/compound/index.js +39 -1
  40. package/esm/markets/compound/marketsAssets.d.ts +14 -0
  41. package/esm/markets/compound/marketsAssets.js +16 -2
  42. package/esm/markets/morphoBlue/index.d.ts +8 -0
  43. package/esm/markets/morphoBlue/index.js +65 -1
  44. package/esm/morphoBlue/index.js +30 -13
  45. package/esm/services/priceService.d.ts +3 -0
  46. package/esm/services/priceService.js +31 -1
  47. package/esm/types/compound.d.ts +3 -1
  48. package/esm/types/compound.js +2 -0
  49. package/esm/types/contracts/generated/CUSDSv3.d.ts +441 -0
  50. package/esm/types/contracts/generated/CUSDSv3.js +4 -0
  51. package/esm/types/contracts/generated/CWstETHv3.d.ts +441 -0
  52. package/esm/types/contracts/generated/CWstETHv3.js +4 -0
  53. package/esm/types/contracts/generated/DFSFeedRegistry.d.ts +40 -0
  54. package/esm/types/contracts/generated/DFSFeedRegistry.js +4 -0
  55. package/esm/types/contracts/generated/WstETHPriceFeed.d.ts +39 -0
  56. package/esm/types/contracts/generated/WstETHPriceFeed.js +4 -0
  57. package/esm/types/contracts/generated/index.d.ts +4 -0
  58. package/esm/types/morphoBlue.d.ts +5 -1
  59. package/esm/types/morphoBlue.js +4 -0
  60. package/package.json +49 -49
  61. package/src/aaveV2/index.ts +227 -227
  62. package/src/aaveV3/index.ts +624 -624
  63. package/src/assets/index.ts +60 -60
  64. package/src/chickenBonds/index.ts +123 -123
  65. package/src/compoundV2/index.ts +220 -220
  66. package/src/compoundV3/index.ts +291 -282
  67. package/src/config/contracts.js +1079 -1047
  68. package/src/constants/index.ts +6 -6
  69. package/src/contracts.ts +132 -130
  70. package/src/curveUsd/index.ts +229 -229
  71. package/src/eulerV2/index.ts +303 -303
  72. package/src/exchange/index.ts +17 -17
  73. package/src/helpers/aaveHelpers/index.ts +198 -198
  74. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  75. package/src/helpers/compoundHelpers/index.ts +246 -246
  76. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  77. package/src/helpers/eulerHelpers/index.ts +232 -232
  78. package/src/helpers/index.ts +8 -8
  79. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  80. package/src/helpers/makerHelpers/index.ts +94 -94
  81. package/src/helpers/morphoBlueHelpers/index.ts +325 -325
  82. package/src/helpers/sparkHelpers/index.ts +150 -150
  83. package/src/index.ts +48 -48
  84. package/src/liquity/index.ts +116 -116
  85. package/src/llamaLend/index.ts +275 -275
  86. package/src/maker/index.ts +117 -117
  87. package/src/markets/aave/index.ts +152 -152
  88. package/src/markets/aave/marketAssets.ts +46 -46
  89. package/src/markets/compound/index.ts +213 -173
  90. package/src/markets/compound/marketsAssets.ts +82 -64
  91. package/src/markets/curveUsd/index.ts +69 -69
  92. package/src/markets/euler/index.ts +26 -26
  93. package/src/markets/index.ts +23 -23
  94. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  95. package/src/markets/llamaLend/index.ts +235 -235
  96. package/src/markets/morphoBlue/index.ts +878 -809
  97. package/src/markets/spark/index.ts +29 -29
  98. package/src/markets/spark/marketAssets.ts +10 -10
  99. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  100. package/src/morphoAaveV2/index.ts +256 -256
  101. package/src/morphoAaveV3/index.ts +630 -630
  102. package/src/morphoBlue/index.ts +188 -171
  103. package/src/multicall/index.ts +22 -22
  104. package/src/services/dsrService.ts +15 -15
  105. package/src/services/priceService.ts +61 -22
  106. package/src/services/utils.ts +56 -56
  107. package/src/setup.ts +8 -8
  108. package/src/spark/index.ts +461 -461
  109. package/src/staking/staking.ts +220 -220
  110. package/src/types/aave.ts +270 -270
  111. package/src/types/chickenBonds.ts +45 -45
  112. package/src/types/common.ts +84 -84
  113. package/src/types/compound.ts +131 -129
  114. package/src/types/contracts/generated/CUSDSv3.ts +685 -0
  115. package/src/types/contracts/generated/CWstETHv3.ts +685 -0
  116. package/src/types/contracts/generated/DFSFeedRegistry.ts +77 -0
  117. package/src/types/contracts/generated/WstETHPriceFeed.ts +59 -0
  118. package/src/types/contracts/generated/index.ts +4 -0
  119. package/src/types/curveUsd.ts +118 -118
  120. package/src/types/euler.ts +171 -171
  121. package/src/types/index.ts +9 -9
  122. package/src/types/liquity.ts +30 -30
  123. package/src/types/llamaLend.ts +155 -155
  124. package/src/types/maker.ts +50 -50
  125. package/src/types/morphoBlue.ts +189 -185
  126. package/src/types/spark.ts +131 -131
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompoundMarkets = exports.COMPOUND_V3_USDT = exports.COMPOUND_V3_USDBC = exports.COMPOUND_V3_ETH = exports.COMPOUND_V3_USDCe = exports.COMPOUND_V3_USDC = exports.COMPOUND_V2 = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = void 0;
3
+ exports.CompoundMarkets = exports.COMPOUND_V3_USDS = exports.COMPOUND_V3_WSTETH = exports.COMPOUND_V3_USDT = exports.COMPOUND_V3_USDBC = exports.COMPOUND_V3_ETH = exports.COMPOUND_V3_USDCe = exports.COMPOUND_V3_USDC = exports.COMPOUND_V2 = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = void 0;
4
4
  const contracts_1 = require("../../contracts");
5
5
  const types_1 = require("../../types");
6
6
  const common_1 = require("../../types/common");
@@ -21,6 +21,8 @@ const BULKER_OPTIONS = {
21
21
  [types_1.CompoundVersions.CompoundV3USDC]: { supply: 2, withdraw: 5 },
22
22
  [types_1.CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
23
23
  [types_1.CompoundVersions.CompoundV3USDT]: STANDARD_BULKER_OPTIONS,
24
+ [types_1.CompoundVersions.CompoundV3wstETH]: STANDARD_BULKER_OPTIONS,
25
+ [types_1.CompoundVersions.CompoundV3USDS]: STANDARD_BULKER_OPTIONS,
24
26
  // Non-existing markets, keeping it because of typescript
25
27
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
26
28
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
@@ -34,6 +36,8 @@ const BULKER_OPTIONS = {
34
36
  // Non-existing markets, keeping it because of typescript
35
37
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
36
38
  [types_1.CompoundVersions.CompoundV3USDbC]: EMPTY_BULKER_OPTIONS,
39
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
40
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
37
41
  },
38
42
  [common_1.NetworkNumber.Base]: {
39
43
  [types_1.CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
@@ -43,6 +47,8 @@ const BULKER_OPTIONS = {
43
47
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
44
48
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
45
49
  [types_1.CompoundVersions.CompoundV3USDT]: EMPTY_BULKER_OPTIONS,
50
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
51
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
46
52
  },
47
53
  [common_1.NetworkNumber.Opt]: {
48
54
  [types_1.CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
@@ -52,6 +58,8 @@ const BULKER_OPTIONS = {
52
58
  [types_1.CompoundVersions.CompoundV3USDbC]: EMPTY_BULKER_OPTIONS,
53
59
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
54
60
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
61
+ [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
62
+ [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
55
63
  },
56
64
  };
57
65
  exports.COMPOUND_V2 = {
@@ -149,6 +157,36 @@ const COMPOUND_V3_USDT = (networkId) => ({
149
157
  // icon: SvgAdapter(protocolIcons.compoundv3),
150
158
  });
151
159
  exports.COMPOUND_V3_USDT = COMPOUND_V3_USDT;
160
+ const COMPOUND_V3_WSTETH = (networkId) => ({
161
+ chainIds: [common_1.NetworkNumber.Eth],
162
+ label: 'Compound V3 - wstETH',
163
+ shortLabel: 'v3',
164
+ value: types_1.CompoundVersions.CompoundV3wstETH,
165
+ baseAsset: 'wstETH',
166
+ collAssets: networkId ? marketsAssets_1.v3wstETHCollAssets[networkId] : [],
167
+ baseMarket: 'cWstETHv3',
168
+ baseMarketAddress: (0, contracts_1.getConfigContractAddress)('cWstETHv3', networkId),
169
+ secondLabel: 'Market',
170
+ bulkerName: networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2',
171
+ bulkerAddress: (0, contracts_1.getConfigContractAddress)(networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2', networkId),
172
+ bulkerOptions: BULKER_OPTIONS[networkId][types_1.CompoundVersions.CompoundV3wstETH],
173
+ });
174
+ exports.COMPOUND_V3_WSTETH = COMPOUND_V3_WSTETH;
175
+ const COMPOUND_V3_USDS = (networkId) => ({
176
+ chainIds: [common_1.NetworkNumber.Eth],
177
+ label: 'Compound V3 - USDS',
178
+ shortLabel: 'v3',
179
+ value: types_1.CompoundVersions.CompoundV3USDS,
180
+ baseAsset: 'USDS',
181
+ collAssets: networkId ? marketsAssets_1.v3USDSCollAssets[networkId] : [],
182
+ baseMarket: 'cUSDSv3',
183
+ baseMarketAddress: (0, contracts_1.getConfigContractAddress)('cUSDSv3', networkId),
184
+ secondLabel: 'Market',
185
+ bulkerName: networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2',
186
+ bulkerAddress: (0, contracts_1.getConfigContractAddress)(networkId === common_1.NetworkNumber.Eth ? 'CompV3BulkerMainnetETH' : 'CompV3BulkerL2', networkId),
187
+ bulkerOptions: BULKER_OPTIONS[networkId][types_1.CompoundVersions.CompoundV3USDS],
188
+ });
189
+ exports.COMPOUND_V3_USDS = COMPOUND_V3_USDS;
152
190
  const CompoundMarkets = (networkId) => ({
153
191
  [types_1.CompoundVersions.CompoundV2]: exports.COMPOUND_V2,
154
192
  [types_1.CompoundVersions.CompoundV3ETH]: (0, exports.COMPOUND_V3_ETH)(networkId),
@@ -156,5 +194,7 @@ const CompoundMarkets = (networkId) => ({
156
194
  [types_1.CompoundVersions.CompoundV3USDbC]: (0, exports.COMPOUND_V3_USDBC)(networkId),
157
195
  [types_1.CompoundVersions.CompoundV3USDCe]: (0, exports.COMPOUND_V3_USDCe)(networkId),
158
196
  [types_1.CompoundVersions.CompoundV3USDT]: (0, exports.COMPOUND_V3_USDT)(networkId),
197
+ [types_1.CompoundVersions.CompoundV3wstETH]: (0, exports.COMPOUND_V3_WSTETH)(networkId),
198
+ [types_1.CompoundVersions.CompoundV3USDS]: (0, exports.COMPOUND_V3_USDS)(networkId),
159
199
  });
160
200
  exports.CompoundMarkets = CompoundMarkets;
@@ -42,3 +42,17 @@ export declare const v3USDTCollAssets: {
42
42
  42161: string[];
43
43
  8453: never[];
44
44
  };
45
+ export declare const v3USDSCollAssetsEth: string[];
46
+ export declare const v3USDSCollAssets: {
47
+ 1: string[];
48
+ 10: never[];
49
+ 42161: never[];
50
+ 8453: never[];
51
+ };
52
+ export declare const v3wstETHCollAssetsEth: string[];
53
+ export declare const v3wstETHCollAssets: {
54
+ 1: string[];
55
+ 10: never[];
56
+ 42161: never[];
57
+ 8453: never[];
58
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.v3USDTCollAssets = exports.v3USDTCollAssetsOpt = exports.v3USDTCollAssetsArb = exports.v3USDTCollAssetsEth = exports.v3USDbCCollAssets = exports.v3USDbCCollAssetsBase = exports.v3ETHCollAssets = exports.v3ETHCollAssetsOpt = exports.v3ETHCollAssetsArb = exports.v3ETHCollAssetsBase = exports.v3ETHCollAssetsEth = exports.v3USDCeCollAssets = exports.v3USDCeCollAssetsArb = exports.v3USDCCollAssets = exports.v3USDCCollAssetsOpt = exports.v3USDCCollAssetsBase = exports.v3USDCCollAssetsArb = exports.v3USDCCollAssetsEth = exports.compoundV2CollateralAssets = void 0;
3
+ exports.v3wstETHCollAssets = exports.v3wstETHCollAssetsEth = exports.v3USDSCollAssets = exports.v3USDSCollAssetsEth = exports.v3USDTCollAssets = exports.v3USDTCollAssetsOpt = exports.v3USDTCollAssetsArb = exports.v3USDTCollAssetsEth = exports.v3USDbCCollAssets = exports.v3USDbCCollAssetsBase = exports.v3ETHCollAssets = exports.v3ETHCollAssetsOpt = exports.v3ETHCollAssetsArb = exports.v3ETHCollAssetsBase = exports.v3ETHCollAssetsEth = exports.v3USDCeCollAssets = exports.v3USDCeCollAssetsArb = exports.v3USDCCollAssets = exports.v3USDCCollAssetsOpt = exports.v3USDCCollAssetsBase = exports.v3USDCCollAssetsArb = exports.v3USDCCollAssetsEth = exports.compoundV2CollateralAssets = void 0;
4
4
  const tokens_1 = require("@defisaver/tokens");
5
5
  const common_1 = require("../../types/common");
6
6
  exports.compoundV2CollateralAssets = [
@@ -8,7 +8,7 @@ exports.compoundV2CollateralAssets = [
8
8
  'cTUSD', 'cLINK', 'cUSDP', 'cUNI', 'cCOMP', 'cMKR', 'cSUSHI', 'cAAVE', 'cYFI',
9
9
  ].map((symbol) => (0, tokens_1.getAssetInfo)(symbol));
10
10
  exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC'];
11
- exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH'];
11
+ exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH', 'wUSDM'];
12
12
  exports.v3USDCCollAssetsBase = ['ETH', 'cbETH', 'wstETH', 'cbBTC'];
13
13
  exports.v3USDCCollAssetsOpt = ['ETH', 'OP', 'WBTC', 'wstETH'];
14
14
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
@@ -45,7 +45,7 @@ exports.v3USDbCCollAssets = {
45
45
  [common_1.NetworkNumber.Arb]: [],
46
46
  [common_1.NetworkNumber.Base]: exports.v3USDbCCollAssetsBase,
47
47
  };
48
- exports.v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'wUSDM', 'sFRAX'];
48
+ exports.v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'wUSDM', 'sFRAX', 'mETH'];
49
49
  exports.v3USDTCollAssetsArb = ['ETH', 'WBTC', 'wstETH', 'ARB', 'GMX'];
50
50
  exports.v3USDTCollAssetsOpt = ['ETH', 'WBTC', 'OP', 'wstETH'];
51
51
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
@@ -55,3 +55,17 @@ exports.v3USDTCollAssets = {
55
55
  [common_1.NetworkNumber.Arb]: exports.v3USDTCollAssetsArb,
56
56
  [common_1.NetworkNumber.Base]: [],
57
57
  };
58
+ exports.v3USDSCollAssetsEth = ['wstETH', 'ETH', 'sUSDS', 'cbETH', 'tBTC', 'USDe'];
59
+ exports.v3USDSCollAssets = {
60
+ [common_1.NetworkNumber.Eth]: exports.v3USDSCollAssetsEth,
61
+ [common_1.NetworkNumber.Opt]: [],
62
+ [common_1.NetworkNumber.Arb]: [],
63
+ [common_1.NetworkNumber.Base]: [],
64
+ };
65
+ exports.v3wstETHCollAssetsEth = ['rsETH', 'ezETH'];
66
+ exports.v3wstETHCollAssets = {
67
+ [common_1.NetworkNumber.Eth]: exports.v3wstETHCollAssetsEth,
68
+ [common_1.NetworkNumber.Opt]: [],
69
+ [common_1.NetworkNumber.Arb]: [],
70
+ [common_1.NetworkNumber.Base]: [],
71
+ };
@@ -48,6 +48,10 @@ export declare const MORPHO_BLUE_RETH_ETH_945_BASE: (networkId?: NetworkNumber)
48
48
  export declare const MORPHO_BLUE_CBBTC_ETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
49
49
  export declare const MORPHO_BLUE_CBBTC_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
50
50
  export declare const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
51
+ export declare const MORPHO_BLUE_LBTC_WBTC_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
52
+ export declare const MORPHO_BLUE_LBTC_CBBTC_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
53
+ export declare const MORPHO_BLUE_WSTETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
54
+ export declare const MORPHO_BLUE_CBBTC_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
51
55
  export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
52
56
  readonly morphobluewstethusdc: MorphoBlueMarketData;
53
57
  readonly morphobluesdaiusdc: MorphoBlueMarketData;
@@ -72,6 +76,7 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
72
76
  readonly morphobluecbbtcusdc: MorphoBlueMarketData;
73
77
  readonly morphoblueretheth_945: MorphoBlueMarketData;
74
78
  readonly morphobluesusdeusdc_915: MorphoBlueMarketData;
79
+ readonly morphobluelbtcwbtc_945: MorphoBlueMarketData;
75
80
  readonly morphobluewstetheth_945: MorphoBlueMarketData;
76
81
  readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
77
82
  readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
@@ -92,6 +97,9 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
92
97
  readonly morphoblueretheth_945_base: MorphoBlueMarketData;
93
98
  readonly morphobluecbbtceth_915_base: MorphoBlueMarketData;
94
99
  readonly morphobluecbbtcusdc_860_base: MorphoBlueMarketData;
100
+ readonly morphobluecbbtceurc_860_base: MorphoBlueMarketData;
101
+ readonly morphobluewstetheurc_860_base: MorphoBlueMarketData;
102
+ readonly morphobluelbtccbbtc_945_base: MorphoBlueMarketData;
95
103
  readonly morphobluewsuperoethbweth_915_base: MorphoBlueMarketData;
96
104
  readonly morphobluecbetheth_945_base: MorphoBlueMarketData;
97
105
  readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_RETH_ETH_945 = exports.MORPHO_BLUE_USDE_DAI_945 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_USDE_DAI_770 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_770 = exports.MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_860 = exports.MORPHO_BLUE_EZETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_860 = exports.MORPHO_BLUE_SUSDE_USDC_915 = exports.MORPHO_BLUE_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_SDAI_ETH = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WSTETH_PYUSD = exports.MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_USDT = exports.MORPHO_BLUE_WBTC_ETH = exports.MORPHO_BLUE_WBTC_PYUSD = exports.MORPHO_BLUE_WBTC_USDT = exports.MORPHO_BLUE_ETH_USDC = exports.MORPHO_BLUE_WBTC_USDC = exports.MORPHO_BLUE_SDAI_USDC = exports.MORPHO_BLUE_WSTETH_USDC = void 0;
3
+ exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_RETH_ETH_945 = exports.MORPHO_BLUE_USDE_DAI_945 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_USDE_DAI_770 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_770 = exports.MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_860 = exports.MORPHO_BLUE_EZETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_860 = exports.MORPHO_BLUE_SUSDE_USDC_915 = exports.MORPHO_BLUE_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_SDAI_ETH = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WSTETH_PYUSD = exports.MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_USDT = exports.MORPHO_BLUE_WBTC_ETH = exports.MORPHO_BLUE_WBTC_PYUSD = exports.MORPHO_BLUE_WBTC_USDT = exports.MORPHO_BLUE_ETH_USDC = exports.MORPHO_BLUE_WBTC_USDC = exports.MORPHO_BLUE_SDAI_USDC = exports.MORPHO_BLUE_WSTETH_USDC = void 0;
4
+ exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = void 0;
4
5
  const utils_1 = require("../../services/utils");
5
6
  const types_1 = require("../../types");
6
7
  const common_1 = require("../../types/common");
@@ -765,7 +766,7 @@ exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = MORPHO_BLUE_CBBTC_USDC_860_BASE;
765
766
  const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
766
767
  chainIds: [common_1.NetworkNumber.Base],
767
768
  label: 'Morpho',
768
- shortLabel: 'wsuperOETHb/WETH',
769
+ shortLabel: 'wsuperOETHb/ETH',
769
770
  value: types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base,
770
771
  url: 'wsuperoethbweth-144bf18d',
771
772
  loanToken: '0x4200000000000000000000000000000000000006',
@@ -778,6 +779,70 @@ const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = common_1.NetworkNumbe
778
779
  protocolName: 'morpho-blue',
779
780
  });
780
781
  exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE;
782
+ const MORPHO_BLUE_LBTC_WBTC_945 = (networkId = common_1.NetworkNumber.Eth) => ({
783
+ chainIds: [common_1.NetworkNumber.Eth],
784
+ label: 'Morpho',
785
+ shortLabel: 'LBTC/WBTC',
786
+ value: types_1.MorphoBlueVersions.MorphoBlueLBTCWBTC_945,
787
+ url: 'lbtcwbtc-f6a05662',
788
+ loanToken: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
789
+ collateralToken: '0x8236a87084f8B84306f72007F36F2618A5634494',
790
+ oracle: '0xa98105B8227E0f2157816Feb7A331364A9B74F80',
791
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
792
+ irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
793
+ lltv: 0.945,
794
+ marketId: '0xf6a056627a51e511ec7f48332421432ea6971fc148d8f3c451e14ea108026549',
795
+ protocolName: 'morpho-blue',
796
+ });
797
+ exports.MORPHO_BLUE_LBTC_WBTC_945 = MORPHO_BLUE_LBTC_WBTC_945;
798
+ const MORPHO_BLUE_LBTC_CBBTC_945_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
799
+ chainIds: [common_1.NetworkNumber.Base],
800
+ label: 'Morpho',
801
+ shortLabel: 'LBTC/cbBTC',
802
+ value: types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945_Base,
803
+ url: 'lbtccbbtc-30767836',
804
+ loanToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
805
+ collateralToken: '0xecAc9C5F704e954931349Da37F60E39f515c11c1',
806
+ oracle: '0x9Ae0E86e88AEE94B700240eBE0BD17D969BAD0EA',
807
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
808
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
809
+ lltv: 0.945,
810
+ marketId: '0x30767836635facec1282e6ef4a5981406ed4e72727b3a63a3a72c74e8279a8d7',
811
+ protocolName: 'morpho-blue',
812
+ });
813
+ exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = MORPHO_BLUE_LBTC_CBBTC_945_BASE;
814
+ const MORPHO_BLUE_WSTETH_EURC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
815
+ chainIds: [common_1.NetworkNumber.Base],
816
+ label: 'Morpho',
817
+ shortLabel: 'wstETH/EURC',
818
+ value: types_1.MorphoBlueVersions.MorphoBlueWstEthEURC_860_Base,
819
+ url: 'wstetheurc-f7e40290',
820
+ loanToken: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42',
821
+ collateralToken: '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452',
822
+ oracle: '0xa54122f0E0766258377Ffe732e454A3248f454F4',
823
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
824
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
825
+ lltv: 0.86,
826
+ marketId: '0xf7e40290f8ca1d5848b3c129502599aa0f0602eb5f5235218797a34242719561',
827
+ protocolName: 'morpho-blue',
828
+ });
829
+ exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = MORPHO_BLUE_WSTETH_EURC_860_BASE;
830
+ const MORPHO_BLUE_CBBTC_EURC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
831
+ chainIds: [common_1.NetworkNumber.Base],
832
+ label: 'Morpho',
833
+ shortLabel: 'cbBTC/EURC',
834
+ value: types_1.MorphoBlueVersions.MorphoBlueCbBTCEURC_860_Base,
835
+ url: 'cbbtceurc-67ebd84b',
836
+ loanToken: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42',
837
+ collateralToken: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
838
+ oracle: '0xA857411CB2231a6A87a3bEF987a4cED8A067d799',
839
+ oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
840
+ irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
841
+ lltv: 0.86,
842
+ marketId: '0x67ebd84b2fb39e3bc5a13d97e4c07abe1ea617e40654826e9abce252e95f049e',
843
+ protocolName: 'morpho-blue',
844
+ });
845
+ exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = MORPHO_BLUE_CBBTC_EURC_860_BASE;
781
846
  const MorphoBlueMarkets = (networkId) => ({
782
847
  [types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC]: (0, exports.MORPHO_BLUE_WSTETH_USDC)(networkId),
783
848
  [types_1.MorphoBlueVersions.MorphoBlueSDAIUSDC]: (0, exports.MORPHO_BLUE_SDAI_USDC)(networkId),
@@ -802,6 +867,7 @@ const MorphoBlueMarkets = (networkId) => ({
802
867
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860)(networkId),
803
868
  [types_1.MorphoBlueVersions.MorphoBlueREthEth_945]: (0, exports.MORPHO_BLUE_RETH_ETH_945)(networkId),
804
869
  [types_1.MorphoBlueVersions.MorphoBlueSUSDeUSDC_915]: (0, exports.MORPHO_BLUE_SUSDE_USDC_915)(networkId),
870
+ [types_1.MorphoBlueVersions.MorphoBlueLBTCWBTC_945]: (0, exports.MORPHO_BLUE_LBTC_WBTC_945)(networkId),
805
871
  // wstETH/WETH
806
872
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
807
873
  [types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
@@ -826,6 +892,9 @@ const MorphoBlueMarkets = (networkId) => ({
826
892
  [types_1.MorphoBlueVersions.MorphoBlueREthEth_945_Base]: (0, exports.MORPHO_BLUE_RETH_ETH_945_BASE)(networkId),
827
893
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCEth_915_Base]: (0, exports.MORPHO_BLUE_CBBTC_ETH_915_BASE)(networkId),
828
894
  [types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860_Base]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860_BASE)(networkId),
895
+ [types_1.MorphoBlueVersions.MorphoBlueCbBTCEURC_860_Base]: (0, exports.MORPHO_BLUE_CBBTC_EURC_860_BASE)(networkId),
896
+ [types_1.MorphoBlueVersions.MorphoBlueWstEthEURC_860_Base]: (0, exports.MORPHO_BLUE_WSTETH_EURC_860_BASE)(networkId),
897
+ [types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945_Base]: (0, exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE)(networkId),
829
898
  // wsuperOETHb/WETH Base
830
899
  [types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base]: (0, exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE)(networkId),
831
900
  // cbETH/WETH Base
@@ -21,23 +21,40 @@ const constants_1 = require("../constants");
21
21
  const staking_1 = require("../staking");
22
22
  const utils_1 = require("../services/utils");
23
23
  const morphoBlueHelpers_1 = require("../helpers/morphoBlueHelpers");
24
+ const priceService_1 = require("../services/priceService");
25
+ const isMainnetNetwork = (network) => network === common_1.NetworkNumber.Eth;
24
26
  function getMorphoBlueMarketData(web3, network, selectedMarket, mainnetWeb3) {
25
27
  return __awaiter(this, void 0, void 0, function* () {
26
28
  const { loanToken, collateralToken, oracle, irm, lltv, oracleType, } = selectedMarket;
27
29
  const lltvInWei = new decimal_js_1.default(lltv).mul(constants_1.WAD).toString();
28
30
  const loanTokenInfo = (0, tokens_1.getAssetInfoByAddress)(loanToken, network);
29
31
  const collateralTokenInfo = (0, tokens_1.getAssetInfoByAddress)(collateralToken, network);
30
- let loanTokenFeedAddress = loanTokenInfo.addresses[common_1.NetworkNumber.Eth];
31
- if (loanTokenInfo.symbol === 'WETH') {
32
- const ethAddress = (0, tokens_1.getAssetInfo)('ETH').address;
33
- loanTokenFeedAddress = ethAddress;
34
- }
35
- const feedRegistryContract = (0, contracts_1.FeedRegistryContract)(mainnetWeb3, common_1.NetworkNumber.Eth);
32
+ const loanTokenFeedAddress = (0, priceService_1.getChainlinkAssetAddress)(loanTokenInfo.symbol, network);
36
33
  const morphoBlueViewContract = (0, contracts_1.MorphoBlueViewContract)(web3, network);
37
- const [loanTokenPrice, marketInfo] = yield Promise.all([
38
- loanTokenInfo.symbol === 'USDA' ? '100000000' : feedRegistryContract.methods.latestAnswer(loanTokenFeedAddress, constants_1.USD_QUOTE).call(),
39
- morphoBlueViewContract.methods.getMarketInfoNotTuple(loanToken, collateralToken, oracle, irm, lltvInWei).call(),
40
- ]);
34
+ let marketInfo;
35
+ let loanTokenPrice;
36
+ const isTokenUSDA = loanTokenInfo.symbol === 'USDA';
37
+ const isMainnet = isMainnetNetwork(network);
38
+ if (isMainnet) {
39
+ const feedRegistryContract = (0, contracts_1.FeedRegistryContract)(mainnetWeb3, common_1.NetworkNumber.Eth);
40
+ const [_loanTokenPrice, _marketInfo] = yield Promise.all([
41
+ isTokenUSDA ? Promise.resolve('100000000') : feedRegistryContract.methods.latestAnswer(loanTokenFeedAddress, constants_1.USD_QUOTE).call(),
42
+ morphoBlueViewContract.methods.getMarketInfoNotTuple(loanToken, collateralToken, oracle, irm, lltvInWei).call(),
43
+ ]);
44
+ marketInfo = _marketInfo;
45
+ loanTokenPrice = _loanTokenPrice;
46
+ }
47
+ else {
48
+ // Currently only base network is supported
49
+ const feedRegistryContract = (0, contracts_1.DFSFeedRegistryContract)(web3, network);
50
+ const [loanTokenPriceRound, _marketInfo] = yield Promise.all([
51
+ isTokenUSDA ? Promise.resolve({ answer: '100000000' }) // Normalize to match the expected object structure
52
+ : feedRegistryContract.methods.latestRoundData(loanTokenFeedAddress, constants_1.USD_QUOTE).call(),
53
+ morphoBlueViewContract.methods.getMarketInfoNotTuple(loanToken, collateralToken, oracle, irm, lltvInWei).call(),
54
+ ]);
55
+ marketInfo = _marketInfo;
56
+ loanTokenPrice = loanTokenPriceRound.answer;
57
+ }
41
58
  const supplyRate = (0, morphoBlueHelpers_1.getSupplyRate)(marketInfo.totalSupplyAssets, marketInfo.totalBorrowAssets, marketInfo.borrowRate, marketInfo.fee);
42
59
  const compoundedBorrowRate = (0, morphoBlueHelpers_1.getBorrowRate)(marketInfo.borrowRate, marketInfo.totalBorrowShares);
43
60
  const utillization = new decimal_js_1.default(marketInfo.totalBorrowAssets).div(marketInfo.totalSupplyAssets).mul(100).toString();
@@ -1,4 +1,7 @@
1
1
  import Web3 from 'web3';
2
+ import { NetworkNumber } from '../types/common';
2
3
  export declare const getEthPrice: (web3: Web3) => Promise<string>;
3
4
  export declare const getUSDCPrice: (web3: Web3) => Promise<string>;
4
5
  export declare const getCompPrice: (web3: Web3) => Promise<string>;
6
+ export declare const getWstETHPrice: (web3: Web3) => Promise<string>;
7
+ export declare const getChainlinkAssetAddress: (symbol: string, network: NetworkNumber) => string;
@@ -12,10 +12,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getCompPrice = exports.getUSDCPrice = exports.getEthPrice = void 0;
15
+ exports.getChainlinkAssetAddress = exports.getWstETHPrice = exports.getCompPrice = exports.getUSDCPrice = exports.getEthPrice = void 0;
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
+ const tokens_1 = require("@defisaver/tokens");
17
18
  const contracts_1 = require("../contracts");
18
19
  const common_1 = require("../types/common");
20
+ const multicall_1 = require("../multicall");
19
21
  const getEthPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
20
22
  const contract = (0, contracts_1.ETHPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
21
23
  const price = yield contract.methods.latestAnswer().call();
@@ -34,3 +36,33 @@ const getCompPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
34
36
  return new decimal_js_1.default(price).div(1e8).toString();
35
37
  });
36
38
  exports.getCompPrice = getCompPrice;
39
+ const getWstETHPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
40
+ const wstETHFeedContract = (0, contracts_1.WstETHPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
41
+ const ethFeedContract = (0, contracts_1.ETHPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
42
+ const calls = [
43
+ {
44
+ target: ethFeedContract.options.address,
45
+ abiItem: ethFeedContract.options.jsonInterface.find(({ name }) => name === 'latestAnswer'),
46
+ params: [],
47
+ },
48
+ {
49
+ target: wstETHFeedContract.options.address,
50
+ abiItem: wstETHFeedContract.options.jsonInterface.find(({ name }) => name === 'latestRoundData'),
51
+ params: [],
52
+ },
53
+ ];
54
+ const multicallRes = yield (0, multicall_1.multicall)(calls, web3);
55
+ const ethPrice = new decimal_js_1.default(multicallRes[0][0]).div(1e8);
56
+ const wstETHRate = new decimal_js_1.default(multicallRes[1].answer).div(1e8);
57
+ return new decimal_js_1.default(ethPrice).mul(wstETHRate).toString();
58
+ });
59
+ exports.getWstETHPrice = getWstETHPrice;
60
+ // chainlink price feed available only on mainnet
61
+ const getChainlinkAssetAddress = (symbol, network) => {
62
+ if (['WBTC', 'RENBTC'].includes(symbol === null || symbol === void 0 ? void 0 : symbol.toUpperCase()))
63
+ return '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB';
64
+ if ((symbol === null || symbol === void 0 ? void 0 : symbol.toUpperCase()) === 'WETH')
65
+ return (0, tokens_1.getAssetInfo)('ETH').addresses[network];
66
+ return (0, tokens_1.getAssetInfo)(symbol).addresses[network];
67
+ };
68
+ exports.getChainlinkAssetAddress = getChainlinkAssetAddress;
@@ -5,7 +5,9 @@ export declare enum CompoundVersions {
5
5
  'CompoundV3USDCe' = "v3-USDC.e",
6
6
  'CompoundV3ETH' = "v3-ETH",
7
7
  'CompoundV3USDbC' = "v3-USDbC",
8
- 'CompoundV3USDT' = "v3-USDT"
8
+ 'CompoundV3USDT' = "v3-USDT",
9
+ 'CompoundV3USDS' = "v3-USDS",
10
+ 'CompoundV3wstETH' = "v3-wstETH"
9
11
  }
10
12
  export interface CompoundBulkerOptions {
11
13
  supply: number | string;
@@ -9,4 +9,6 @@ var CompoundVersions;
9
9
  CompoundVersions["CompoundV3ETH"] = "v3-ETH";
10
10
  CompoundVersions["CompoundV3USDbC"] = "v3-USDbC";
11
11
  CompoundVersions["CompoundV3USDT"] = "v3-USDT";
12
+ CompoundVersions["CompoundV3USDS"] = "v3-USDS";
13
+ CompoundVersions["CompoundV3wstETH"] = "v3-wstETH";
12
14
  })(CompoundVersions || (exports.CompoundVersions = CompoundVersions = {}));