@defisaver/positions-sdk 0.0.216 → 0.0.217

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 (82) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  5. package/cjs/markets/fluid/index.d.ts +2 -1
  6. package/cjs/markets/fluid/index.js +4 -1
  7. package/cjs/markets/index.d.ts +1 -1
  8. package/cjs/markets/index.js +2 -1
  9. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  10. package/esm/markets/fluid/index.d.ts +2 -1
  11. package/esm/markets/fluid/index.js +2 -0
  12. package/esm/markets/index.d.ts +1 -1
  13. package/esm/markets/index.js +1 -1
  14. package/package.json +52 -52
  15. package/src/aaveV2/index.ts +227 -227
  16. package/src/aaveV3/index.ts +625 -625
  17. package/src/assets/index.ts +60 -60
  18. package/src/chickenBonds/index.ts +123 -123
  19. package/src/compoundV2/index.ts +220 -220
  20. package/src/compoundV3/index.ts +291 -291
  21. package/src/config/contracts.js +1147 -1147
  22. package/src/constants/index.ts +6 -6
  23. package/src/contracts.ts +134 -134
  24. package/src/curveUsd/index.ts +229 -229
  25. package/src/eulerV2/index.ts +303 -303
  26. package/src/exchange/index.ts +17 -17
  27. package/src/fluid/index.ts +349 -349
  28. package/src/helpers/aaveHelpers/index.ts +198 -198
  29. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  30. package/src/helpers/compoundHelpers/index.ts +246 -246
  31. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  32. package/src/helpers/eulerHelpers/index.ts +232 -232
  33. package/src/helpers/fluidHelpers/index.ts +53 -53
  34. package/src/helpers/index.ts +11 -11
  35. package/src/helpers/liquityV2Helpers/index.ts +80 -80
  36. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  37. package/src/helpers/makerHelpers/index.ts +94 -94
  38. package/src/helpers/morphoBlueHelpers/index.ts +365 -365
  39. package/src/helpers/sparkHelpers/index.ts +150 -150
  40. package/src/index.ts +52 -52
  41. package/src/liquity/index.ts +116 -116
  42. package/src/liquityV2/index.ts +295 -295
  43. package/src/llamaLend/index.ts +275 -275
  44. package/src/maker/index.ts +117 -117
  45. package/src/markets/aave/index.ts +152 -152
  46. package/src/markets/aave/marketAssets.ts +44 -44
  47. package/src/markets/compound/index.ts +213 -213
  48. package/src/markets/compound/marketsAssets.ts +82 -82
  49. package/src/markets/curveUsd/index.ts +69 -69
  50. package/src/markets/euler/index.ts +26 -26
  51. package/src/markets/fluid/index.ts +2012 -2010
  52. package/src/markets/index.ts +27 -27
  53. package/src/markets/liquityV2/index.ts +54 -54
  54. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  55. package/src/markets/llamaLend/index.ts +235 -235
  56. package/src/markets/morphoBlue/index.ts +895 -895
  57. package/src/markets/spark/index.ts +29 -29
  58. package/src/markets/spark/marketAssets.ts +10 -10
  59. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  60. package/src/morphoAaveV2/index.ts +256 -256
  61. package/src/morphoAaveV3/index.ts +630 -630
  62. package/src/morphoBlue/index.ts +202 -202
  63. package/src/multicall/index.ts +33 -33
  64. package/src/services/priceService.ts +91 -91
  65. package/src/services/utils.ts +59 -59
  66. package/src/setup.ts +8 -8
  67. package/src/spark/index.ts +460 -460
  68. package/src/staking/staking.ts +220 -220
  69. package/src/types/aave.ts +271 -271
  70. package/src/types/chickenBonds.ts +45 -45
  71. package/src/types/common.ts +84 -84
  72. package/src/types/compound.ts +131 -131
  73. package/src/types/curveUsd.ts +118 -118
  74. package/src/types/euler.ts +171 -171
  75. package/src/types/fluid.ts +264 -264
  76. package/src/types/index.ts +11 -11
  77. package/src/types/liquity.ts +30 -30
  78. package/src/types/liquityV2.ts +119 -119
  79. package/src/types/llamaLend.ts +155 -155
  80. package/src/types/maker.ts +50 -50
  81. package/src/types/morphoBlue.ts +192 -192
  82. package/src/types/spark.ts +131 -131
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
@@ -115,73 +115,73 @@ const getApyAfterValuesEstimation = (selectedMarket, actions, web3, network) =>
115
115
  });
116
116
  exports.getApyAfterValuesEstimation = getApyAfterValuesEstimation;
117
117
  const API_URL = 'https://blue-api.morpho.org/graphql';
118
- const MARKET_QUERY = `
119
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
120
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
121
- reallocatableLiquidityAssets
122
- targetBorrowUtilization
123
- loanAsset {
124
- address
125
- decimals
126
- priceUsd
127
- }
128
- state {
129
- liquidityAssets
130
- borrowAssets
131
- supplyAssets
132
- }
133
- publicAllocatorSharedLiquidity {
134
- assets
135
- vault {
136
- address
137
- name
138
- }
139
- allocationMarket {
140
- uniqueKey
141
- loanAsset {
142
- address
143
- }
144
- collateralAsset {
145
- address
146
- }
147
- irmAddress
148
- oracle {
149
- address
150
- }
151
- lltv
152
- }
153
- }
154
- loanAsset {
155
- address
156
- }
157
- collateralAsset {
158
- address
159
- }
160
- oracle {
161
- address
162
- }
163
- irmAddress
164
- lltv
165
- }
166
- }
118
+ const MARKET_QUERY = `
119
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
120
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
121
+ reallocatableLiquidityAssets
122
+ targetBorrowUtilization
123
+ loanAsset {
124
+ address
125
+ decimals
126
+ priceUsd
127
+ }
128
+ state {
129
+ liquidityAssets
130
+ borrowAssets
131
+ supplyAssets
132
+ }
133
+ publicAllocatorSharedLiquidity {
134
+ assets
135
+ vault {
136
+ address
137
+ name
138
+ }
139
+ allocationMarket {
140
+ uniqueKey
141
+ loanAsset {
142
+ address
143
+ }
144
+ collateralAsset {
145
+ address
146
+ }
147
+ irmAddress
148
+ oracle {
149
+ address
150
+ }
151
+ lltv
152
+ }
153
+ }
154
+ loanAsset {
155
+ address
156
+ }
157
+ collateralAsset {
158
+ address
159
+ }
160
+ oracle {
161
+ address
162
+ }
163
+ irmAddress
164
+ lltv
165
+ }
166
+ }
167
167
  `;
168
- const REWARDS_QUERY = `
169
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
170
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
171
- uniqueKey
172
- state {
173
- rewards {
174
- amountPerSuppliedToken
175
- supplyApr
176
- amountPerBorrowedToken
177
- borrowApr
178
- asset {
179
- address
180
- }
181
- }
182
- }
183
- }
184
- }
168
+ const REWARDS_QUERY = `
169
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
170
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
171
+ uniqueKey
172
+ state {
173
+ rewards {
174
+ amountPerSuppliedToken
175
+ supplyApr
176
+ amountPerBorrowedToken
177
+ borrowApr
178
+ asset {
179
+ address
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
185
  `;
186
186
  /**
187
187
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -1,4 +1,4 @@
1
- import { NetworkNumber } from '../../types/common';
1
+ import { EthAddress, NetworkNumber } from '../../types/common';
2
2
  import { FluidMarketInfo } from '../../types';
3
3
  export declare const FLUID_ETH_USDC_1: (networkId?: NetworkNumber) => FluidMarketInfo;
4
4
  export declare const FLUID_ETH_USDT_2: (networkId?: NetworkNumber) => FluidMarketInfo;
@@ -192,6 +192,7 @@ export declare const FluidMarkets: (networkId: NetworkNumber) => {
192
192
  };
193
193
  export declare const getFluidVersionsDataForNetwork: (network: NetworkNumber) => FluidMarketInfo[];
194
194
  export declare const getFluidMarketInfoById: (vaultId: number, network?: NetworkNumber) => FluidMarketInfo | undefined;
195
+ export declare const getFluidMarketInfoByAddress: (address: EthAddress, network?: NetworkNumber) => FluidMarketInfo | undefined;
195
196
  export declare const FluidFTokens: (networkId: NetworkNumber) => {
196
197
  ETH: string;
197
198
  USDC: string;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FLUID_RSETH_WSTETH_79 = exports.FLUID_RSETH_ETH_WSTETH_78 = exports.FLUID_USDC_ETH_USDC_ETH_77 = exports.FLUID_WEETH_ETH_WSTETH_74 = exports.FLUID_GHO_USDC_GHO_USDC_61 = exports.FLUID_SUSDS_GHO_58 = exports.FLUID_WEETH_GHO_57 = exports.FLUID_SUSDE_GHO_56 = exports.FLUID_WSTETH_GHO_55 = exports.FLUID_ETH_GHO_54 = exports.FLUID_WBTC_CBBTC_USDT_53 = exports.FLUID_WBTC_CBBTC_USDC_52 = exports.FLUID_WBTC_CBBTC_WBTC_CBBTC_51 = exports.FLUID_SUSDE_USDC_USDT_50 = exports.FLUID_CBBTC_USDC_USDT_49 = exports.FLUID_WBTC_USDC_USDT_48 = exports.FLUID_WEETH_USDC_USDT_47 = exports.FLUID_WSTETH_USDC_USDT_46 = exports.FLUID_ETH_USDC_USDT_45 = exports.FLUID_WSTETH_ETH_WSTETH_ETH_44 = exports.FLUID_WEETH_CBBTC_32 = exports.FLUID_ETH_CBBTC_31 = exports.FLUID_CBBTC_USDT_30 = exports.FLUID_CBBTC_USDC_29 = exports.FLUID_CBBTC_ETH_28 = exports.FLUID_WEETHS_WSTETH_27 = exports.FLUID_WEETH_WBTC_26 = exports.FLUID_WSTETH_WBTC_25 = exports.FLUID_ETH_WBTC_24 = exports.FLUID_WBTC_ETH_23 = exports.FLUID_WBTC_USDT_22 = exports.FLUID_WBTC_USDC_21 = exports.FLUID_WEETH_USDT_20 = exports.FLUID_WEETH_USDC_19 = exports.FLUID_SUSDE_USDT_18 = exports.FLUID_SUSDE_USDC_17 = exports.FLUID_WEETH_WSTETH_16 = exports.FLUID_WSTETH_USDT_15 = exports.FLUID_WSTETH_USDC_14 = exports.FLUID_WSTETH_ETH_13 = exports.FLUID_ETH_USDT_12 = exports.FLUID_ETH_USDC_11 = exports.FLUID_WEETH_USDT_10 = exports.FLUID_WEETH_USDC_9 = exports.FLUID_WEETH_WSTETH_6 = exports.FLUID_WSTETH_USDT_5 = exports.FLUID_WSTETH_USDC_4 = exports.FLUID_WSTETH_ETH_3 = exports.FLUID_ETH_USDT_2 = exports.FLUID_ETH_USDC_1 = void 0;
4
- exports.getFTokenAddress = exports.FluidFTokens = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.FLUID_WSTETH_CBBTC_16_BASE = exports.FLUID_WEETH_CBBTC_15_BASE = exports.FLUID_ETH_CBBTC_14_BASE = exports.FLUID_CBBTC_ETH_13_BASE = exports.FLUID_WSTETH_EURC_12_BASE = exports.FLUID_WEETH_EURC_11_BASE = exports.FLUID_ETH_EURC_10_BASE = exports.FLUID_CBETH_EURC_9_BASE = exports.FLUID_CBBTC_EURC_8_BASE = exports.FLUID_CBBTC_USDC_7_BASE = exports.FLUID_CBETH_USDC_6_BASE = exports.FLUID_WEETH_USDC_5_BASE = exports.FLUID_WEETH_WSTETH_4_BASE = exports.FLUID_WSTETH_ETH_3_BASE = exports.FLUID_WSTETH_USDC_2_BASE = exports.FLUID_ETH_USDC_1_BASE = exports.FLUID_WBTC_USDC_USDT_26_ARB = exports.FLUID_WEETH_USDC_USDT_25_ARB = exports.FLUID_WSTETH_USDC_USDT_24_ARB = exports.FLUID_ETH_USDC_USDT_23_ARB = exports.FLUID_USDC_ETH_USDC_ETH_22_ARB = exports.FLUID_WEETH_WBTC_21_ARB = exports.FLUID_WSTETH_WBTC_20_ARB = exports.FLUID_ETH_WBTC_19_ARB = exports.FLUID_WBTC_ETH_18_ARB = exports.FLUID_WEETH_ETH_WSTETH_17_ARB = exports.FLUID_WSTETH_ETH_WSTETH_ETH_16_ARB = exports.FLUID_WBTC_USDT_13_ARB = exports.FLUID_WBTC_USDC_12_ARB = exports.FLUID_ARB_USDT_11_ARB = exports.FLUID_ARB_USDC_10_ARB = exports.FLUID_ETH_ARB_9_ARB = exports.FLUID_WEETH_USDT_8_ARB = exports.FLUID_WEETH_USDC_7_ARB = exports.FLUID_WEETH_WSTETH_6_ARB = exports.FLUID_WSTETH_ETH_5_ARB = exports.FLUID_WSTETH_USDT_4_ARB = exports.FLUID_WSTETH_USDC_3_ARB = exports.FLUID_ETH_USDT_2_ARB = exports.FLUID_ETH_USDC_1_ARB = exports.FLUID_LBTC_CBBTC_WBTC_97 = exports.FLUID_USDE_USDT_USDT_93 = exports.FLUID_SUSDE_USDT_USDT_92 = exports.FLUID_WEETHS_ETH_WSTETH_80 = void 0;
4
+ exports.getFTokenAddress = exports.FluidFTokens = exports.getFluidMarketInfoByAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.FLUID_WSTETH_CBBTC_16_BASE = exports.FLUID_WEETH_CBBTC_15_BASE = exports.FLUID_ETH_CBBTC_14_BASE = exports.FLUID_CBBTC_ETH_13_BASE = exports.FLUID_WSTETH_EURC_12_BASE = exports.FLUID_WEETH_EURC_11_BASE = exports.FLUID_ETH_EURC_10_BASE = exports.FLUID_CBETH_EURC_9_BASE = exports.FLUID_CBBTC_EURC_8_BASE = exports.FLUID_CBBTC_USDC_7_BASE = exports.FLUID_CBETH_USDC_6_BASE = exports.FLUID_WEETH_USDC_5_BASE = exports.FLUID_WEETH_WSTETH_4_BASE = exports.FLUID_WSTETH_ETH_3_BASE = exports.FLUID_WSTETH_USDC_2_BASE = exports.FLUID_ETH_USDC_1_BASE = exports.FLUID_WBTC_USDC_USDT_26_ARB = exports.FLUID_WEETH_USDC_USDT_25_ARB = exports.FLUID_WSTETH_USDC_USDT_24_ARB = exports.FLUID_ETH_USDC_USDT_23_ARB = exports.FLUID_USDC_ETH_USDC_ETH_22_ARB = exports.FLUID_WEETH_WBTC_21_ARB = exports.FLUID_WSTETH_WBTC_20_ARB = exports.FLUID_ETH_WBTC_19_ARB = exports.FLUID_WBTC_ETH_18_ARB = exports.FLUID_WEETH_ETH_WSTETH_17_ARB = exports.FLUID_WSTETH_ETH_WSTETH_ETH_16_ARB = exports.FLUID_WBTC_USDT_13_ARB = exports.FLUID_WBTC_USDC_12_ARB = exports.FLUID_ARB_USDT_11_ARB = exports.FLUID_ARB_USDC_10_ARB = exports.FLUID_ETH_ARB_9_ARB = exports.FLUID_WEETH_USDT_8_ARB = exports.FLUID_WEETH_USDC_7_ARB = exports.FLUID_WEETH_WSTETH_6_ARB = exports.FLUID_WSTETH_ETH_5_ARB = exports.FLUID_WSTETH_USDT_4_ARB = exports.FLUID_WSTETH_USDC_3_ARB = exports.FLUID_ETH_USDT_2_ARB = exports.FLUID_ETH_USDC_1_ARB = exports.FLUID_LBTC_CBBTC_WBTC_97 = exports.FLUID_USDE_USDT_USDT_93 = exports.FLUID_SUSDE_USDT_USDT_92 = exports.FLUID_WEETHS_ETH_WSTETH_80 = void 0;
5
5
  const common_1 = require("../../types/common");
6
6
  const types_1 = require("../../types");
7
+ const utils_1 = require("../../services/utils");
7
8
  const FLUID_ETH_USDC_1 = (networkId = common_1.NetworkNumber.Eth) => ({
8
9
  btcBased: false,
9
10
  wstETHBased: false,
@@ -1957,6 +1958,8 @@ const getFluidVersionsDataForNetwork = (network) => (Object.values((0, exports.F
1957
1958
  exports.getFluidVersionsDataForNetwork = getFluidVersionsDataForNetwork;
1958
1959
  const getFluidMarketInfoById = (vaultId, network = 1) => (0, exports.getFluidVersionsDataForNetwork)(network).find(({ id }) => id === vaultId);
1959
1960
  exports.getFluidMarketInfoById = getFluidMarketInfoById;
1961
+ const getFluidMarketInfoByAddress = (address, network = 1) => (0, exports.getFluidVersionsDataForNetwork)(network).find(({ marketAddress }) => (0, utils_1.compareAddresses)(marketAddress, address));
1962
+ exports.getFluidMarketInfoByAddress = getFluidMarketInfoByAddress;
1960
1963
  const FluidMainnetFTokenAddresses = {
1961
1964
  [types_1.FluidMainnetDepositToken.ETH]: '0x90551c1795392094FE6D29B758EcCD233cFAa260',
1962
1965
  [types_1.FluidMainnetDepositToken.USDC]: '0x9Fb7b4477576Fe5B32be4C1843aFB1e55F251B33',
@@ -6,4 +6,4 @@ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
7
  export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
8
8
  export { EulerV2Markets } from './euler';
9
- export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, } from './fluid';
9
+ export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress, } from './fluid';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.EulerV2Markets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
3
+ exports.getFluidMarketInfoByAddress = exports.getFTokenAddress = exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.EulerV2Markets = exports.findLiquityV2MarketByAddress = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
4
4
  var aave_1 = require("./aave");
5
5
  Object.defineProperty(exports, "AaveMarkets", { enumerable: true, get: function () { return aave_1.AaveMarkets; } });
6
6
  Object.defineProperty(exports, "aaveV1AssetsDefaultMarket", { enumerable: true, get: function () { return aave_1.aaveV1AssetsDefaultMarket; } });
@@ -36,3 +36,4 @@ Object.defineProperty(exports, "FluidMarkets", { enumerable: true, get: function
36
36
  Object.defineProperty(exports, "getFluidVersionsDataForNetwork", { enumerable: true, get: function () { return fluid_1.getFluidVersionsDataForNetwork; } });
37
37
  Object.defineProperty(exports, "getFluidMarketInfoById", { enumerable: true, get: function () { return fluid_1.getFluidMarketInfoById; } });
38
38
  Object.defineProperty(exports, "getFTokenAddress", { enumerable: true, get: function () { return fluid_1.getFTokenAddress; } });
39
+ Object.defineProperty(exports, "getFluidMarketInfoByAddress", { enumerable: true, get: function () { return fluid_1.getFluidMarketInfoByAddress; } });
@@ -105,73 +105,73 @@ export const getApyAfterValuesEstimation = (selectedMarket, actions, web3, netwo
105
105
  return { borrowRate, supplyRate };
106
106
  });
107
107
  const API_URL = 'https://blue-api.morpho.org/graphql';
108
- const MARKET_QUERY = `
109
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
110
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
111
- reallocatableLiquidityAssets
112
- targetBorrowUtilization
113
- loanAsset {
114
- address
115
- decimals
116
- priceUsd
117
- }
118
- state {
119
- liquidityAssets
120
- borrowAssets
121
- supplyAssets
122
- }
123
- publicAllocatorSharedLiquidity {
124
- assets
125
- vault {
126
- address
127
- name
128
- }
129
- allocationMarket {
130
- uniqueKey
131
- loanAsset {
132
- address
133
- }
134
- collateralAsset {
135
- address
136
- }
137
- irmAddress
138
- oracle {
139
- address
140
- }
141
- lltv
142
- }
143
- }
144
- loanAsset {
145
- address
146
- }
147
- collateralAsset {
148
- address
149
- }
150
- oracle {
151
- address
152
- }
153
- irmAddress
154
- lltv
155
- }
156
- }
108
+ const MARKET_QUERY = `
109
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
110
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
111
+ reallocatableLiquidityAssets
112
+ targetBorrowUtilization
113
+ loanAsset {
114
+ address
115
+ decimals
116
+ priceUsd
117
+ }
118
+ state {
119
+ liquidityAssets
120
+ borrowAssets
121
+ supplyAssets
122
+ }
123
+ publicAllocatorSharedLiquidity {
124
+ assets
125
+ vault {
126
+ address
127
+ name
128
+ }
129
+ allocationMarket {
130
+ uniqueKey
131
+ loanAsset {
132
+ address
133
+ }
134
+ collateralAsset {
135
+ address
136
+ }
137
+ irmAddress
138
+ oracle {
139
+ address
140
+ }
141
+ lltv
142
+ }
143
+ }
144
+ loanAsset {
145
+ address
146
+ }
147
+ collateralAsset {
148
+ address
149
+ }
150
+ oracle {
151
+ address
152
+ }
153
+ irmAddress
154
+ lltv
155
+ }
156
+ }
157
157
  `;
158
- const REWARDS_QUERY = `
159
- query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
160
- marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
161
- uniqueKey
162
- state {
163
- rewards {
164
- amountPerSuppliedToken
165
- supplyApr
166
- amountPerBorrowedToken
167
- borrowApr
168
- asset {
169
- address
170
- }
171
- }
172
- }
173
- }
174
- }
158
+ const REWARDS_QUERY = `
159
+ query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
160
+ marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
161
+ uniqueKey
162
+ state {
163
+ rewards {
164
+ amountPerSuppliedToken
165
+ supplyApr
166
+ amountPerBorrowedToken
167
+ borrowApr
168
+ asset {
169
+ address
170
+ }
171
+ }
172
+ }
173
+ }
174
+ }
175
175
  `;
176
176
  /**
177
177
  * Get reallocatable liquidity to a given market and target borrow utilization
@@ -1,4 +1,4 @@
1
- import { NetworkNumber } from '../../types/common';
1
+ import { EthAddress, NetworkNumber } from '../../types/common';
2
2
  import { FluidMarketInfo } from '../../types';
3
3
  export declare const FLUID_ETH_USDC_1: (networkId?: NetworkNumber) => FluidMarketInfo;
4
4
  export declare const FLUID_ETH_USDT_2: (networkId?: NetworkNumber) => FluidMarketInfo;
@@ -192,6 +192,7 @@ export declare const FluidMarkets: (networkId: NetworkNumber) => {
192
192
  };
193
193
  export declare const getFluidVersionsDataForNetwork: (network: NetworkNumber) => FluidMarketInfo[];
194
194
  export declare const getFluidMarketInfoById: (vaultId: number, network?: NetworkNumber) => FluidMarketInfo | undefined;
195
+ export declare const getFluidMarketInfoByAddress: (address: EthAddress, network?: NetworkNumber) => FluidMarketInfo | undefined;
195
196
  export declare const FluidFTokens: (networkId: NetworkNumber) => {
196
197
  ETH: string;
197
198
  USDC: string;
@@ -1,5 +1,6 @@
1
1
  import { NetworkNumber } from '../../types/common';
2
2
  import { FluidArbitrumDepositToken, FluidArbitrumVersion, FluidBaseDepositToken, FluidBaseVersions, FluidMainnetDepositToken, FluidMainnetVersion, FluidVaultType, } from '../../types';
3
+ import { compareAddresses } from '../../services/utils';
3
4
  export const FLUID_ETH_USDC_1 = (networkId = NetworkNumber.Eth) => ({
4
5
  btcBased: false,
5
6
  wstETHBased: false,
@@ -1856,6 +1857,7 @@ export const FluidMarkets = (networkId) => ({
1856
1857
  });
1857
1858
  export const getFluidVersionsDataForNetwork = (network) => (Object.values(FluidMarkets(network)).filter(({ chainIds, marketAddress }) => !!marketAddress && chainIds.includes(network)));
1858
1859
  export const getFluidMarketInfoById = (vaultId, network = 1) => getFluidVersionsDataForNetwork(network).find(({ id }) => id === vaultId);
1860
+ export const getFluidMarketInfoByAddress = (address, network = 1) => getFluidVersionsDataForNetwork(network).find(({ marketAddress }) => compareAddresses(marketAddress, address));
1859
1861
  const FluidMainnetFTokenAddresses = {
1860
1862
  [FluidMainnetDepositToken.ETH]: '0x90551c1795392094FE6D29B758EcCD233cFAa260',
1861
1863
  [FluidMainnetDepositToken.USDC]: '0x9Fb7b4477576Fe5B32be4C1843aFB1e55F251B33',
@@ -6,4 +6,4 @@ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
7
  export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
8
8
  export { EulerV2Markets } from './euler';
9
- export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, } from './fluid';
9
+ export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress, } from './fluid';
@@ -6,4 +6,4 @@ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
7
  export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
8
8
  export { EulerV2Markets } from './euler';
9
- export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, } from './fluid';
9
+ export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress, } from './fluid';
package/package.json CHANGED
@@ -1,52 +1,52 @@
1
- {
2
- "name": "@defisaver/positions-sdk",
3
- "version": "0.0.216",
4
- "description": "",
5
- "main": "./cjs/index.js",
6
- "module": "./esm/index.js",
7
- "types": "./esm/index.d.ts",
8
- "scripts": {
9
- "build:esm": "rm -rf esm && tsc -p tsconfig.esm.json",
10
- "build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json",
11
- "build": "npm run lint && npm run generate-contracts && npm run build:cjs && npm run build:esm",
12
- "dev": "npm run generate-contracts && tsc -p tsconfig.json --watch",
13
- "lint": "eslint src/ --fix",
14
- "lint-check": "eslint src/",
15
- "generate-contracts": "node scripts/generateContracts.js",
16
- "test": "mocha tests/*",
17
- "test-single": "mocha ./tests/$npm_config_name.ts",
18
- "test:debugger": "mocha --inspect-brk tests/*",
19
- "build-test": "npm run build && npm run test",
20
- "version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
21
- },
22
- "keywords": [],
23
- "author": "",
24
- "license": "ISC",
25
- "dependencies": {
26
- "@types/lodash": "^4.17.15",
27
- "@defisaver/tokens": "^1.5.55",
28
- "@ethersproject/bignumber": "^5.7.0",
29
- "@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
30
- "decimal.js": "^10.4.3",
31
- "lodash": "^4.17.21"
32
- },
33
- "devDependencies": {
34
- "@defisaver/eslint-config": "^1.0.1",
35
- "@types/chai": "^5.0.0",
36
- "@types/mocha": "^10.0.9",
37
- "@types/web3": "^1.0.20",
38
- "chai": "^4.3.8",
39
- "dotenv": "^16.3.1",
40
- "eslint": "^8.49.0",
41
- "eslint-plugin-import": "^2.31.0",
42
- "mocha": "^10.2.0",
43
- "nock": "^14.0.0",
44
- "ts-node": "^10.9.2",
45
- "typechain": "^8.3.1",
46
- "typechain-target-web3-v1-3mihai3": "^6.0.2",
47
- "typescript": "^5.2.2"
48
- },
49
- "peerDependencies": {
50
- "web3": "^1.10.2"
51
- }
52
- }
1
+ {
2
+ "name": "@defisaver/positions-sdk",
3
+ "version": "0.0.217",
4
+ "description": "",
5
+ "main": "./cjs/index.js",
6
+ "module": "./esm/index.js",
7
+ "types": "./esm/index.d.ts",
8
+ "scripts": {
9
+ "build:esm": "rm -rf esm && tsc -p tsconfig.esm.json",
10
+ "build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json",
11
+ "build": "npm run lint && npm run generate-contracts && npm run build:cjs && npm run build:esm",
12
+ "dev": "npm run generate-contracts && tsc -p tsconfig.json --watch",
13
+ "lint": "eslint src/ --fix",
14
+ "lint-check": "eslint src/",
15
+ "generate-contracts": "node scripts/generateContracts.js",
16
+ "test": "mocha tests/*",
17
+ "test-single": "mocha ./tests/$npm_config_name.ts",
18
+ "test:debugger": "mocha --inspect-brk tests/*",
19
+ "build-test": "npm run build && npm run test",
20
+ "version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
21
+ },
22
+ "keywords": [],
23
+ "author": "",
24
+ "license": "ISC",
25
+ "dependencies": {
26
+ "@types/lodash": "^4.17.15",
27
+ "@defisaver/tokens": "^1.5.55",
28
+ "@ethersproject/bignumber": "^5.7.0",
29
+ "@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
30
+ "decimal.js": "^10.4.3",
31
+ "lodash": "^4.17.21"
32
+ },
33
+ "devDependencies": {
34
+ "@defisaver/eslint-config": "^1.0.1",
35
+ "@types/chai": "^5.0.0",
36
+ "@types/mocha": "^10.0.9",
37
+ "@types/web3": "^1.0.20",
38
+ "chai": "^4.3.8",
39
+ "dotenv": "^16.3.1",
40
+ "eslint": "^8.49.0",
41
+ "eslint-plugin-import": "^2.31.0",
42
+ "mocha": "^10.2.0",
43
+ "nock": "^14.0.0",
44
+ "ts-node": "^10.9.2",
45
+ "typechain": "^8.3.1",
46
+ "typechain-target-web3-v1-3mihai3": "^6.0.2",
47
+ "typescript": "^5.2.2"
48
+ },
49
+ "peerDependencies": {
50
+ "web3": "^1.10.2"
51
+ }
52
+ }