@defisaver/positions-sdk 1.0.28 → 1.0.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.
Files changed (86) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/config/contracts.d.ts +3 -0
  5. package/cjs/config/contracts.js +3 -0
  6. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  7. package/cjs/markets/aave/marketAssets.js +1 -1
  8. package/cjs/markets/compound/index.js +2 -2
  9. package/cjs/markets/compound/marketsAssets.d.ts +2 -1
  10. package/cjs/markets/compound/marketsAssets.js +7 -6
  11. package/esm/config/contracts.d.ts +3 -0
  12. package/esm/config/contracts.js +3 -0
  13. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  14. package/esm/markets/aave/marketAssets.js +1 -1
  15. package/esm/markets/compound/index.js +2 -2
  16. package/esm/markets/compound/marketsAssets.d.ts +2 -1
  17. package/esm/markets/compound/marketsAssets.js +6 -5
  18. package/package.json +53 -53
  19. package/src/aaveV2/index.ts +227 -227
  20. package/src/aaveV3/index.ts +512 -512
  21. package/src/assets/index.ts +60 -60
  22. package/src/chickenBonds/index.ts +123 -123
  23. package/src/compoundV2/index.ts +220 -220
  24. package/src/compoundV3/index.ts +291 -291
  25. package/src/config/contracts.js +1173 -1170
  26. package/src/constants/index.ts +6 -6
  27. package/src/contracts.ts +136 -136
  28. package/src/curveUsd/index.ts +239 -239
  29. package/src/eulerV2/index.ts +303 -303
  30. package/src/exchange/index.ts +17 -17
  31. package/src/fluid/index.ts +1348 -1348
  32. package/src/helpers/aaveHelpers/index.ts +203 -203
  33. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  34. package/src/helpers/compoundHelpers/index.ts +248 -248
  35. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  36. package/src/helpers/eulerHelpers/index.ts +234 -234
  37. package/src/helpers/fluidHelpers/index.ts +325 -325
  38. package/src/helpers/index.ts +11 -11
  39. package/src/helpers/liquityV2Helpers/index.ts +80 -80
  40. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  41. package/src/helpers/makerHelpers/index.ts +94 -94
  42. package/src/helpers/morphoBlueHelpers/index.ts +367 -367
  43. package/src/helpers/sparkHelpers/index.ts +154 -154
  44. package/src/index.ts +52 -52
  45. package/src/liquity/index.ts +116 -116
  46. package/src/liquityV2/index.ts +327 -327
  47. package/src/llamaLend/index.ts +275 -275
  48. package/src/maker/index.ts +117 -117
  49. package/src/markets/aave/index.ts +152 -152
  50. package/src/markets/aave/marketAssets.ts +47 -47
  51. package/src/markets/compound/index.ts +215 -213
  52. package/src/markets/compound/marketsAssets.ts +83 -82
  53. package/src/markets/curveUsd/index.ts +69 -69
  54. package/src/markets/euler/index.ts +26 -26
  55. package/src/markets/fluid/index.ts +2456 -2456
  56. package/src/markets/index.ts +27 -27
  57. package/src/markets/liquityV2/index.ts +102 -102
  58. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  59. package/src/markets/llamaLend/index.ts +235 -235
  60. package/src/markets/morphoBlue/index.ts +895 -895
  61. package/src/markets/spark/index.ts +29 -29
  62. package/src/markets/spark/marketAssets.ts +10 -10
  63. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  64. package/src/morphoAaveV2/index.ts +256 -256
  65. package/src/morphoAaveV3/index.ts +630 -630
  66. package/src/morphoBlue/index.ts +202 -202
  67. package/src/multicall/index.ts +33 -33
  68. package/src/services/priceService.ts +143 -143
  69. package/src/services/utils.ts +59 -59
  70. package/src/setup.ts +8 -8
  71. package/src/spark/index.ts +460 -460
  72. package/src/staking/staking.ts +221 -221
  73. package/src/types/aave.ts +264 -264
  74. package/src/types/chickenBonds.ts +45 -45
  75. package/src/types/common.ts +83 -83
  76. package/src/types/compound.ts +133 -133
  77. package/src/types/curveUsd.ts +119 -119
  78. package/src/types/euler.ts +173 -173
  79. package/src/types/fluid.ts +330 -330
  80. package/src/types/index.ts +11 -11
  81. package/src/types/liquity.ts +30 -30
  82. package/src/types/liquityV2.ts +126 -126
  83. package/src/types/llamaLend.ts +155 -155
  84. package/src/types/maker.ts +50 -50
  85. package/src/types/morphoBlue.ts +194 -194
  86. package/src/types/spark.ts +135 -135
package/.mocharc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "require": "ts-node/register",
3
- "extension": ["ts"]
4
- }
1
+ {
2
+ "require": "ts-node/register",
3
+ "extension": ["ts"]
4
+ }
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- v20.17.0
1
+ v20.17.0
package/README.md CHANGED
@@ -1,69 +1,69 @@
1
- # DeFi Saver Positions SDK
2
-
3
- Supported protocols:
4
- - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
- - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
- - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
- - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
- - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
- - [Morpho Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV2)
10
- - [Morpho Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV3)
11
- - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
12
- - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
13
- - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
14
- - [Chicken Bonds](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/chickenBonds)
15
-
16
- ## Setup
17
- Supported Node version is v10.
18
-
19
- - run `npm install` (first time)
20
- - run `npm run build`
21
-
22
- `build` command will generate contracts and build ejs and esm folders
23
-
24
- ## How to use
25
- [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
26
-
27
- This is a Compound V3 example, and every other protocol is similar
28
- ```js
29
- import Web3 from 'web3';
30
- import { compoundV3 } from '@defisaver/positions-sdk';
31
-
32
-
33
- // every protocol has market data and user data getters
34
- const {
35
- getCompoundV3MarketsData,
36
- getCompoundV3AccountData,
37
- } = compoundV3;
38
-
39
- const provider = 'Your RPC provider';
40
- const web3 = new Web3(provider);
41
-
42
- const user = '0x123...';
43
-
44
- const { assetsData } = await getCompoundV3MarketsData(
45
- web3, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
46
- 1, // network
47
- selectedMarket, // market object like in /src/markets/compound/index.ts
48
- web3, // this must be mainnet rpc - used for getting prices onchain and calculating apys
49
- );
50
-
51
- const userData = await getCompoundV3AccountData(
52
- web3,
53
- 1, // network
54
- userAddress, // EOA or DSProxy
55
- '', // proxy address of the user, or just empty string if checking for EOA
56
- {
57
- selectedMarket, // market object as in /src/markets/compound/index.ts
58
- assetsData,
59
- }
60
- );
61
- ```
62
-
63
- More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
64
-
65
- ## Testing
66
-
67
- `npm run test` - Run all tests
68
-
69
- `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
1
+ # DeFi Saver Positions SDK
2
+
3
+ Supported protocols:
4
+ - [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
5
+ - [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
6
+ - [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
7
+ - [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
8
+ - [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
9
+ - [Morpho Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV2)
10
+ - [Morpho Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV3)
11
+ - [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
12
+ - [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
13
+ - [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
14
+ - [Chicken Bonds](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/chickenBonds)
15
+
16
+ ## Setup
17
+ Supported Node version is v10.
18
+
19
+ - run `npm install` (first time)
20
+ - run `npm run build`
21
+
22
+ `build` command will generate contracts and build ejs and esm folders
23
+
24
+ ## How to use
25
+ [All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
26
+
27
+ This is a Compound V3 example, and every other protocol is similar
28
+ ```js
29
+ import Web3 from 'web3';
30
+ import { compoundV3 } from '@defisaver/positions-sdk';
31
+
32
+
33
+ // every protocol has market data and user data getters
34
+ const {
35
+ getCompoundV3MarketsData,
36
+ getCompoundV3AccountData,
37
+ } = compoundV3;
38
+
39
+ const provider = 'Your RPC provider';
40
+ const web3 = new Web3(provider);
41
+
42
+ const user = '0x123...';
43
+
44
+ const { assetsData } = await getCompoundV3MarketsData(
45
+ web3, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
46
+ 1, // network
47
+ selectedMarket, // market object like in /src/markets/compound/index.ts
48
+ web3, // this must be mainnet rpc - used for getting prices onchain and calculating apys
49
+ );
50
+
51
+ const userData = await getCompoundV3AccountData(
52
+ web3,
53
+ 1, // network
54
+ userAddress, // EOA or DSProxy
55
+ '', // proxy address of the user, or just empty string if checking for EOA
56
+ {
57
+ selectedMarket, // market object as in /src/markets/compound/index.ts
58
+ assetsData,
59
+ }
60
+ );
61
+ ```
62
+
63
+ More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
64
+
65
+ ## Testing
66
+
67
+ `npm run test` - Run all tests
68
+
69
+ `npm run test-single --name=your_test_name` - Run single test for specified name e.g. for MyTest.js test name is MyTest
@@ -3636,6 +3636,9 @@ export namespace cUSDSv3 {
3636
3636
  "1": {
3637
3637
  address: string;
3638
3638
  };
3639
+ "8453": {
3640
+ address: string;
3641
+ };
3639
3642
  };
3640
3643
  export { networks_22 as networks };
3641
3644
  }
@@ -452,6 +452,9 @@ module.exports = {
452
452
  "1": {
453
453
  "address": "0x5D409e56D886231aDAf00c8775665AD0f9897b56",
454
454
  },
455
+ "8453": {
456
+ "address": "0x2c776041CCFe903071AF44aa147368a9c8EEA518",
457
+ },
455
458
  },
456
459
  },
457
460
  "cWstETHv3": {
@@ -117,73 +117,73 @@ const getApyAfterValuesEstimation = (selectedMarket, actions, web3, network) =>
117
117
  });
118
118
  exports.getApyAfterValuesEstimation = getApyAfterValuesEstimation;
119
119
  const API_URL = 'https://blue-api.morpho.org/graphql';
120
- const MARKET_QUERY = `
121
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
122
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
123
- reallocatableLiquidityAssets
124
- targetBorrowUtilization
125
- loanAsset {
126
- address
127
- decimals
128
- priceUsd
129
- }
130
- state {
131
- liquidityAssets
132
- borrowAssets
133
- supplyAssets
134
- }
135
- publicAllocatorSharedLiquidity {
136
- assets
137
- vault {
138
- address
139
- name
140
- }
141
- allocationMarket {
142
- uniqueKey
143
- loanAsset {
144
- address
145
- }
146
- collateralAsset {
147
- address
148
- }
149
- irmAddress
150
- oracle {
151
- address
152
- }
153
- lltv
154
- }
155
- }
156
- loanAsset {
157
- address
158
- }
159
- collateralAsset {
160
- address
161
- }
162
- oracle {
163
- address
164
- }
165
- irmAddress
166
- lltv
167
- }
168
- }
120
+ const MARKET_QUERY = `
121
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
122
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
123
+ reallocatableLiquidityAssets
124
+ targetBorrowUtilization
125
+ loanAsset {
126
+ address
127
+ decimals
128
+ priceUsd
129
+ }
130
+ state {
131
+ liquidityAssets
132
+ borrowAssets
133
+ supplyAssets
134
+ }
135
+ publicAllocatorSharedLiquidity {
136
+ assets
137
+ vault {
138
+ address
139
+ name
140
+ }
141
+ allocationMarket {
142
+ uniqueKey
143
+ loanAsset {
144
+ address
145
+ }
146
+ collateralAsset {
147
+ address
148
+ }
149
+ irmAddress
150
+ oracle {
151
+ address
152
+ }
153
+ lltv
154
+ }
155
+ }
156
+ loanAsset {
157
+ address
158
+ }
159
+ collateralAsset {
160
+ address
161
+ }
162
+ oracle {
163
+ address
164
+ }
165
+ irmAddress
166
+ lltv
167
+ }
168
+ }
169
169
  `;
170
- const REWARDS_QUERY = `
171
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
172
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
173
- uniqueKey
174
- state {
175
- rewards {
176
- amountPerSuppliedToken
177
- supplyApr
178
- amountPerBorrowedToken
179
- borrowApr
180
- asset {
181
- address
182
- }
183
- }
184
- }
185
- }
186
- }
170
+ const REWARDS_QUERY = `
171
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
172
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
173
+ uniqueKey
174
+ state {
175
+ rewards {
176
+ amountPerSuppliedToken
177
+ supplyApr
178
+ amountPerBorrowedToken
179
+ borrowApr
180
+ asset {
181
+ address
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
187
  `;
188
188
  /**
189
189
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -18,7 +18,7 @@ exports.aaveV3AssetsDefaultMarketOpt = [
18
18
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
19
19
  ];
20
20
  exports.aaveV3AssetsDefaultMarketArb = ['DAI', 'LINK', 'USDC.e', 'WBTC', 'ETH', 'USDT', 'AAVE', 'EURS', 'wstETH', 'MAI', 'rETH', 'LUSD', 'USDC', 'FRAX', 'ARB', 'weETH', 'GHO', 'ezETH', 'rsETH'];
21
- exports.aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'wrsETH', 'LBTC', 'EURC', 'GHO'];
21
+ exports.aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'GHO', 'wrsETH', 'LBTC', 'EURC', 'AAVE'];
22
22
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
23
23
  exports.aaveV3AssetsDefaultMarket = {
24
24
  [common_1.NetworkNumber.Eth]: exports.aaveV3AssetsDefaultMarketEth,
@@ -43,12 +43,12 @@ const BULKER_OPTIONS = {
43
43
  [types_1.CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
44
44
  [types_1.CompoundVersions.CompoundV3USDbC]: STANDARD_BULKER_OPTIONS,
45
45
  [types_1.CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
46
+ [types_1.CompoundVersions.CompoundV3USDS]: STANDARD_BULKER_OPTIONS,
46
47
  // Non-existing markets, keeping it because of typescript
47
48
  [types_1.CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
48
49
  [types_1.CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
49
50
  [types_1.CompoundVersions.CompoundV3USDT]: EMPTY_BULKER_OPTIONS,
50
51
  [types_1.CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
51
- [types_1.CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
52
52
  },
53
53
  [common_1.NetworkNumber.Opt]: {
54
54
  [types_1.CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
@@ -173,7 +173,7 @@ const COMPOUND_V3_WSTETH = (networkId) => ({
173
173
  });
174
174
  exports.COMPOUND_V3_WSTETH = COMPOUND_V3_WSTETH;
175
175
  const COMPOUND_V3_USDS = (networkId) => ({
176
- chainIds: [common_1.NetworkNumber.Eth],
176
+ chainIds: [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Base],
177
177
  label: 'Compound V3 - USDS',
178
178
  shortLabel: 'v3',
179
179
  value: types_1.CompoundVersions.CompoundV3USDS,
@@ -44,11 +44,12 @@ export declare const v3USDTCollAssets: {
44
44
  8453: never[];
45
45
  };
46
46
  export declare const v3USDSCollAssetsEth: string[];
47
+ export declare const v3USDSCollAssetsBase: string[];
47
48
  export declare const v3USDSCollAssets: {
48
49
  1: string[];
49
50
  10: never[];
50
51
  42161: never[];
51
- 8453: never[];
52
+ 8453: string[];
52
53
  };
53
54
  export declare const v3wstETHCollAssetsEth: string[];
54
55
  export declare const v3wstETHCollAssets: {
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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;
3
+ exports.v3wstETHCollAssets = exports.v3wstETHCollAssetsEth = exports.v3USDSCollAssets = exports.v3USDSCollAssetsBase = 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 = [
7
7
  'cETH', 'cDAI', 'cBAT', 'cZRX', 'cUSDC', 'cWBTC Legacy', 'cWBTC', 'cUSDT',
8
8
  'cTUSD', 'cLINK', 'cUSDP', 'cUNI', 'cCOMP', 'cMKR', 'cSUSHI', 'cAAVE', 'cYFI',
9
9
  ].map((symbol) => (0, tokens_1.getAssetInfo)(symbol));
10
- exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC'];
10
+ exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'weETH', 'deUSD', 'sdeUSD'];
11
11
  exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH', 'wUSDM'];
12
- exports.v3USDCCollAssetsBase = ['ETH', 'cbETH', 'wstETH', 'cbBTC'];
12
+ exports.v3USDCCollAssetsBase = ['cbETH', 'ETH', 'wstETH', 'cbBTC', 'tBTC'];
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`
15
15
  exports.v3USDCCollAssets = {
@@ -26,7 +26,7 @@ exports.v3USDCeCollAssets = {
26
26
  [common_1.NetworkNumber.Arb]: exports.v3USDCeCollAssetsArb,
27
27
  [common_1.NetworkNumber.Base]: [],
28
28
  };
29
- exports.v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH', 'tBTC', 'ETHx', 'tETH'];
29
+ exports.v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH', 'tBTC', 'ETHx', 'tETH', 'pufETH', 'wOETH'];
30
30
  exports.v3ETHCollAssetsBase = ['cbETH', 'ezETH', 'wstETH', 'USDC', 'weETH', 'wrsETH', 'cbBTC', 'wsuperOETHb'];
31
31
  exports.v3ETHCollAssetsArb = ['weETH', 'rETH', 'wstETH', 'WBTC', 'rsETH', 'ezETH', 'USDC', 'USDT'];
32
32
  exports.v3ETHCollAssetsOpt = ['rETH', 'wstETH', 'WBTC', 'ezETH', 'USDC', 'USDT', 'weETH', 'wrsETH'];
@@ -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', 'mETH', 'weETH'];
48
+ exports.v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'wUSDM', 'sFRAX', 'mETH', 'weETH', 'sdeUSD', 'deUSD'];
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`
@@ -56,11 +56,12 @@ exports.v3USDTCollAssets = {
56
56
  [common_1.NetworkNumber.Base]: [],
57
57
  };
58
58
  exports.v3USDSCollAssetsEth = ['wstETH', 'ETH', 'sUSDS', 'cbETH', 'tBTC', 'USDe'];
59
+ exports.v3USDSCollAssetsBase = ['sUSDS', 'cbBTC'];
59
60
  exports.v3USDSCollAssets = {
60
61
  [common_1.NetworkNumber.Eth]: exports.v3USDSCollAssetsEth,
61
62
  [common_1.NetworkNumber.Opt]: [],
62
63
  [common_1.NetworkNumber.Arb]: [],
63
- [common_1.NetworkNumber.Base]: [],
64
+ [common_1.NetworkNumber.Base]: exports.v3USDSCollAssetsBase,
64
65
  };
65
66
  exports.v3wstETHCollAssetsEth = ['rsETH', 'ezETH'];
66
67
  exports.v3wstETHCollAssets = {
@@ -3636,6 +3636,9 @@ export namespace cUSDSv3 {
3636
3636
  "1": {
3637
3637
  address: string;
3638
3638
  };
3639
+ "8453": {
3640
+ address: string;
3641
+ };
3639
3642
  };
3640
3643
  export { networks_22 as networks };
3641
3644
  }
@@ -451,6 +451,9 @@ module.exports = {
451
451
  "1": {
452
452
  "address": "0x5D409e56D886231aDAf00c8775665AD0f9897b56",
453
453
  },
454
+ "8453": {
455
+ "address": "0x2c776041CCFe903071AF44aa147368a9c8EEA518",
456
+ },
454
457
  },
455
458
  },
456
459
  "cWstETHv3": {
@@ -107,73 +107,73 @@ export const getApyAfterValuesEstimation = (selectedMarket, actions, web3, netwo
107
107
  return { borrowRate, supplyRate };
108
108
  });
109
109
  const API_URL = 'https://blue-api.morpho.org/graphql';
110
- const MARKET_QUERY = `
111
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
112
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
113
- reallocatableLiquidityAssets
114
- targetBorrowUtilization
115
- loanAsset {
116
- address
117
- decimals
118
- priceUsd
119
- }
120
- state {
121
- liquidityAssets
122
- borrowAssets
123
- supplyAssets
124
- }
125
- publicAllocatorSharedLiquidity {
126
- assets
127
- vault {
128
- address
129
- name
130
- }
131
- allocationMarket {
132
- uniqueKey
133
- loanAsset {
134
- address
135
- }
136
- collateralAsset {
137
- address
138
- }
139
- irmAddress
140
- oracle {
141
- address
142
- }
143
- lltv
144
- }
145
- }
146
- loanAsset {
147
- address
148
- }
149
- collateralAsset {
150
- address
151
- }
152
- oracle {
153
- address
154
- }
155
- irmAddress
156
- lltv
157
- }
158
- }
110
+ const MARKET_QUERY = `
111
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
112
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
113
+ reallocatableLiquidityAssets
114
+ targetBorrowUtilization
115
+ loanAsset {
116
+ address
117
+ decimals
118
+ priceUsd
119
+ }
120
+ state {
121
+ liquidityAssets
122
+ borrowAssets
123
+ supplyAssets
124
+ }
125
+ publicAllocatorSharedLiquidity {
126
+ assets
127
+ vault {
128
+ address
129
+ name
130
+ }
131
+ allocationMarket {
132
+ uniqueKey
133
+ loanAsset {
134
+ address
135
+ }
136
+ collateralAsset {
137
+ address
138
+ }
139
+ irmAddress
140
+ oracle {
141
+ address
142
+ }
143
+ lltv
144
+ }
145
+ }
146
+ loanAsset {
147
+ address
148
+ }
149
+ collateralAsset {
150
+ address
151
+ }
152
+ oracle {
153
+ address
154
+ }
155
+ irmAddress
156
+ lltv
157
+ }
158
+ }
159
159
  `;
160
- const REWARDS_QUERY = `
161
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
162
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
163
- uniqueKey
164
- state {
165
- rewards {
166
- amountPerSuppliedToken
167
- supplyApr
168
- amountPerBorrowedToken
169
- borrowApr
170
- asset {
171
- address
172
- }
173
- }
174
- }
175
- }
176
- }
160
+ const REWARDS_QUERY = `
161
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
162
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
163
+ uniqueKey
164
+ state {
165
+ rewards {
166
+ amountPerSuppliedToken
167
+ supplyApr
168
+ amountPerBorrowedToken
169
+ borrowApr
170
+ asset {
171
+ address
172
+ }
173
+ }
174
+ }
175
+ }
176
+ }
177
177
  `;
178
178
  /**
179
179
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -15,7 +15,7 @@ export const aaveV3AssetsDefaultMarketOpt = [
15
15
  'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
16
16
  ];
17
17
  export const aaveV3AssetsDefaultMarketArb = ['DAI', 'LINK', 'USDC.e', 'WBTC', 'ETH', 'USDT', 'AAVE', 'EURS', 'wstETH', 'MAI', 'rETH', 'LUSD', 'USDC', 'FRAX', 'ARB', 'weETH', 'GHO', 'ezETH', 'rsETH'];
18
- export const aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'wrsETH', 'LBTC', 'EURC', 'GHO'];
18
+ export const aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'GHO', 'wrsETH', 'LBTC', 'EURC', 'AAVE'];
19
19
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
20
20
  export const aaveV3AssetsDefaultMarket = {
21
21
  [NetworkNumber.Eth]: aaveV3AssetsDefaultMarketEth,
@@ -35,12 +35,12 @@ const BULKER_OPTIONS = {
35
35
  [CompoundVersions.CompoundV3ETH]: STANDARD_BULKER_OPTIONS,
36
36
  [CompoundVersions.CompoundV3USDbC]: STANDARD_BULKER_OPTIONS,
37
37
  [CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
38
+ [CompoundVersions.CompoundV3USDS]: STANDARD_BULKER_OPTIONS,
38
39
  // Non-existing markets, keeping it because of typescript
39
40
  [CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
40
41
  [CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
41
42
  [CompoundVersions.CompoundV3USDT]: EMPTY_BULKER_OPTIONS,
42
43
  [CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
43
- [CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
44
44
  },
45
45
  [NetworkNumber.Opt]: {
46
46
  [CompoundVersions.CompoundV3USDC]: STANDARD_BULKER_OPTIONS,
@@ -159,7 +159,7 @@ export const COMPOUND_V3_WSTETH = (networkId) => ({
159
159
  bulkerOptions: BULKER_OPTIONS[networkId][CompoundVersions.CompoundV3wstETH],
160
160
  });
161
161
  export const COMPOUND_V3_USDS = (networkId) => ({
162
- chainIds: [NetworkNumber.Eth],
162
+ chainIds: [NetworkNumber.Eth, NetworkNumber.Base],
163
163
  label: 'Compound V3 - USDS',
164
164
  shortLabel: 'v3',
165
165
  value: CompoundVersions.CompoundV3USDS,
@@ -44,11 +44,12 @@ export declare const v3USDTCollAssets: {
44
44
  8453: never[];
45
45
  };
46
46
  export declare const v3USDSCollAssetsEth: string[];
47
+ export declare const v3USDSCollAssetsBase: string[];
47
48
  export declare const v3USDSCollAssets: {
48
49
  1: string[];
49
50
  10: never[];
50
51
  42161: never[];
51
- 8453: never[];
52
+ 8453: string[];
52
53
  };
53
54
  export declare const v3wstETHCollAssetsEth: string[];
54
55
  export declare const v3wstETHCollAssets: {