@defisaver/positions-sdk 1.0.19 → 1.0.21-dev-1
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.
- package/.mocharc.json +4 -4
- package/.nvmrc +1 -1
- package/README.md +69 -69
- package/cjs/fluid/index.d.ts +13 -1
- package/cjs/fluid/index.js +23 -5
- package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
- package/cjs/markets/morphoBlue/index.d.ts +4 -0
- package/cjs/markets/morphoBlue/index.js +38 -2
- package/cjs/morphoBlue/index.js +9 -7
- package/cjs/types/morphoBlue.d.ts +2 -0
- package/cjs/types/morphoBlue.js +3 -0
- package/esm/fluid/index.d.ts +13 -1
- package/esm/fluid/index.js +21 -4
- package/esm/helpers/morphoBlueHelpers/index.js +66 -66
- package/esm/markets/morphoBlue/index.d.ts +4 -0
- package/esm/markets/morphoBlue/index.js +34 -0
- package/esm/morphoBlue/index.js +9 -7
- package/esm/types/morphoBlue.d.ts +2 -0
- package/esm/types/morphoBlue.js +3 -0
- package/package.json +54 -54
- package/src/aaveV2/index.ts +227 -227
- package/src/aaveV3/index.ts +624 -624
- package/src/assets/index.ts +60 -60
- package/src/chickenBonds/index.ts +123 -123
- package/src/compoundV2/index.ts +220 -220
- package/src/compoundV3/index.ts +291 -291
- package/src/config/contracts.js +1173 -1173
- package/src/constants/index.ts +6 -6
- package/src/contracts.ts +138 -138
- package/src/curveUsd/index.ts +239 -239
- package/src/eulerV2/index.ts +303 -303
- package/src/exchange/index.ts +17 -17
- package/src/fluid/index.ts +1348 -1325
- package/src/helpers/aaveHelpers/index.ts +203 -203
- package/src/helpers/chickenBondsHelpers/index.ts +23 -23
- package/src/helpers/compoundHelpers/index.ts +248 -248
- package/src/helpers/curveUsdHelpers/index.ts +40 -40
- package/src/helpers/eulerHelpers/index.ts +234 -234
- package/src/helpers/fluidHelpers/index.ts +325 -325
- package/src/helpers/index.ts +11 -11
- package/src/helpers/liquityV2Helpers/index.ts +80 -80
- package/src/helpers/llamaLendHelpers/index.ts +53 -53
- package/src/helpers/makerHelpers/index.ts +94 -94
- package/src/helpers/morphoBlueHelpers/index.ts +367 -367
- package/src/helpers/sparkHelpers/index.ts +154 -154
- package/src/index.ts +52 -52
- package/src/liquity/index.ts +116 -116
- package/src/liquityV2/index.ts +317 -317
- package/src/llamaLend/index.ts +275 -275
- package/src/maker/index.ts +117 -117
- package/src/markets/aave/index.ts +152 -152
- package/src/markets/aave/marketAssets.ts +47 -47
- package/src/markets/compound/index.ts +213 -213
- package/src/markets/compound/marketsAssets.ts +82 -82
- package/src/markets/curveUsd/index.ts +69 -69
- package/src/markets/euler/index.ts +26 -26
- package/src/markets/fluid/index.ts +2456 -2456
- package/src/markets/index.ts +27 -27
- package/src/markets/liquityV2/index.ts +102 -102
- package/src/markets/llamaLend/contractAddresses.ts +141 -141
- package/src/markets/llamaLend/index.ts +235 -235
- package/src/markets/morphoBlue/index.ts +932 -895
- package/src/markets/spark/index.ts +29 -29
- package/src/markets/spark/marketAssets.ts +10 -10
- package/src/moneymarket/moneymarketCommonService.ts +80 -80
- package/src/morphoAaveV2/index.ts +256 -256
- package/src/morphoAaveV3/index.ts +630 -630
- package/src/morphoBlue/index.ts +204 -202
- package/src/multicall/index.ts +33 -33
- package/src/services/priceService.ts +143 -143
- package/src/services/utils.ts +59 -59
- package/src/setup.ts +8 -8
- package/src/spark/index.ts +460 -460
- package/src/staking/staking.ts +221 -221
- package/src/types/aave.ts +275 -275
- package/src/types/chickenBonds.ts +45 -45
- package/src/types/common.ts +84 -84
- package/src/types/compound.ts +133 -133
- package/src/types/curveUsd.ts +119 -119
- package/src/types/euler.ts +173 -173
- package/src/types/fluid.ts +330 -330
- package/src/types/index.ts +11 -11
- package/src/types/liquity.ts +30 -30
- package/src/types/liquityV2.ts +126 -126
- package/src/types/llamaLend.ts +155 -155
- package/src/types/maker.ts +50 -50
- package/src/types/morphoBlue.ts +197 -194
- 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
|
package/cjs/fluid/index.d.ts
CHANGED
|
@@ -48,7 +48,7 @@ export declare const getFluidTokenData: (web3: Web3, network: NetworkNumber, tok
|
|
|
48
48
|
withdrawRate: string;
|
|
49
49
|
}>;
|
|
50
50
|
export declare const getFluidDepositData: (web3: Web3, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
51
|
-
fTokenAddress:
|
|
51
|
+
fTokenAddress: string | undefined;
|
|
52
52
|
fTokenSymbol: string;
|
|
53
53
|
decimals: string;
|
|
54
54
|
totalDeposited: string;
|
|
@@ -59,6 +59,18 @@ export declare const getFluidDepositData: (web3: Web3, network: NetworkNumber, t
|
|
|
59
59
|
deposited: string;
|
|
60
60
|
depositedShares: string;
|
|
61
61
|
}>;
|
|
62
|
+
export declare const getAllUserEarnPositionsWithFTokens: (web3: Web3, network: NetworkNumber, user: EthAddress, mainnetWeb3: Web3) => Promise<{
|
|
63
|
+
fTokenAddress: string | undefined;
|
|
64
|
+
fTokenSymbol: string;
|
|
65
|
+
decimals: string;
|
|
66
|
+
totalDeposited: string;
|
|
67
|
+
withdrawable: string;
|
|
68
|
+
apy: string;
|
|
69
|
+
depositRate: string;
|
|
70
|
+
withdrawRate: string;
|
|
71
|
+
deposited: string;
|
|
72
|
+
depositedShares: string;
|
|
73
|
+
}[]>;
|
|
62
74
|
export declare const getUserPositions: (web3: Web3, network: NetworkNumber, user: EthAddress, mainnetWeb3: Web3) => Promise<{
|
|
63
75
|
marketData: FluidMarketData;
|
|
64
76
|
userData: {
|
package/cjs/fluid/index.js
CHANGED
|
@@ -12,7 +12,7 @@ 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.getUserPositions = exports.getFluidDepositData = exports.getFluidTokenData = exports.getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports.getFluidPosition = exports.getFluidVaultIdsForUser = exports.getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = void 0;
|
|
15
|
+
exports.getUserPositions = exports.getAllUserEarnPositionsWithFTokens = exports.getFluidDepositData = exports.getFluidTokenData = exports.getAllFluidMarketDataChunked = exports.getFluidPositionWithMarket = exports.getFluidPosition = exports.getFluidVaultIdsForUser = exports.getFluidMarketData = exports.EMPTY_FLUID_DATA = exports.EMPTY_USED_ASSET = void 0;
|
|
16
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
17
|
const tokens_1 = require("@defisaver/tokens");
|
|
18
18
|
const common_1 = require("../types/common");
|
|
@@ -960,10 +960,7 @@ const getFluidTokenData = (web3, network, token) => __awaiter(void 0, void 0, vo
|
|
|
960
960
|
};
|
|
961
961
|
});
|
|
962
962
|
exports.getFluidTokenData = getFluidTokenData;
|
|
963
|
-
const
|
|
964
|
-
const view = (0, contracts_1.FluidViewContract)(web3, network);
|
|
965
|
-
const fTokenAddress = (0, markets_1.getFTokenAddress)(token, network);
|
|
966
|
-
const { fTokenData, userPosition } = yield view.methods.getUserEarnPositionWithFToken(fTokenAddress, address).call();
|
|
963
|
+
const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
967
964
|
const supplyRate = new decimal_js_1.default(fTokenData.supplyRate).div(100).toString();
|
|
968
965
|
const rewardsRate = new decimal_js_1.default(fTokenData.rewardsRate).div(1e12).toString();
|
|
969
966
|
const decimals = fTokenData.decimals;
|
|
@@ -981,8 +978,29 @@ const getFluidDepositData = (web3, network, token, address) => __awaiter(void 0,
|
|
|
981
978
|
deposited: (0, utils_1.getEthAmountForDecimals)(userPosition.underlyingAssets, decimals),
|
|
982
979
|
depositedShares: (0, utils_1.getEthAmountForDecimals)(userPosition.fTokenShares, decimals),
|
|
983
980
|
};
|
|
981
|
+
};
|
|
982
|
+
const getFluidDepositData = (web3, network, token, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
983
|
+
const view = (0, contracts_1.FluidViewContract)(web3, network);
|
|
984
|
+
const fTokenAddress = (0, markets_1.getFTokenAddress)(token, network);
|
|
985
|
+
const { fTokenData, userPosition } = yield view.methods.getUserEarnPositionWithFToken(fTokenAddress, address).call();
|
|
986
|
+
return parseFDepositTokenData(fTokenData, userPosition, fTokenAddress);
|
|
984
987
|
});
|
|
985
988
|
exports.getFluidDepositData = getFluidDepositData;
|
|
989
|
+
const getAllUserEarnPositionsWithFTokens = (web3, network, user, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
990
|
+
const view = (0, contracts_1.FluidViewContract)(web3, network);
|
|
991
|
+
const { fTokensData, userPositions } = yield view.methods.getAllUserEarnPositionsWithFTokens(user).call();
|
|
992
|
+
const parsedRes = fTokensData.reduce((acc, fTokenData, i) => {
|
|
993
|
+
const userPosition = userPositions[i];
|
|
994
|
+
const deposited = userPosition === null || userPosition === void 0 ? void 0 : userPosition.underlyingAssets;
|
|
995
|
+
if (Number(deposited) > 0) {
|
|
996
|
+
const fTokenAddress = (0, markets_1.getFTokenAddress)(fTokenData.symbol, network);
|
|
997
|
+
acc.push(parseFDepositTokenData(fTokenData, userPosition, fTokenAddress));
|
|
998
|
+
}
|
|
999
|
+
return acc;
|
|
1000
|
+
}, []);
|
|
1001
|
+
return parsedRes;
|
|
1002
|
+
});
|
|
1003
|
+
exports.getAllUserEarnPositionsWithFTokens = getAllUserEarnPositionsWithFTokens;
|
|
986
1004
|
const getUserPositions = (web3, network, user, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
987
1005
|
const view = (0, contracts_1.FluidViewContract)(web3, network);
|
|
988
1006
|
const data = yield view.methods.getUserPositions(user).call();
|
|
@@ -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,6 +18,7 @@ export declare const MORPHO_BLUE_TBTC_USDC: (networkId?: NetworkNumber) => Morph
|
|
|
18
18
|
export declare const MORPHO_BLUE_CBBTC_ETH_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
19
19
|
export declare const MORPHO_BLUE_CBBTC_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
20
20
|
export declare const MORPHO_BLUE_SUSDE_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
21
|
+
export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
21
22
|
export declare const MORPHO_BLUE_EZETH_ETH_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
22
23
|
export declare const MORPHO_BLUE_EZETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
23
24
|
export declare const MORPHO_BLUE_WEETH_ETH_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
@@ -35,6 +36,7 @@ export declare const MORPHO_BLUE_USDE_DAI_915: (networkId?: NetworkNumber) => Mo
|
|
|
35
36
|
export declare const MORPHO_BLUE_USDE_DAI_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
36
37
|
export declare const MORPHO_BLUE_RETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
37
38
|
export declare const MORPHO_BLUE_USR_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
39
|
+
export declare const MORPHO_BLUE_PTSYRUPUSDCAUG_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
38
40
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
39
41
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
40
42
|
export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
@@ -79,6 +81,7 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
79
81
|
readonly morphobluesusdeusdc_915: MorphoBlueMarketData;
|
|
80
82
|
readonly morphobluelbtcwbtc_945: MorphoBlueMarketData;
|
|
81
83
|
readonly morphoblueusrusdc_915: MorphoBlueMarketData;
|
|
84
|
+
readonly morphobluesyrupusdcusdc_915: MorphoBlueMarketData;
|
|
82
85
|
readonly morphobluewstetheth_945: MorphoBlueMarketData;
|
|
83
86
|
readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
|
|
84
87
|
readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
|
|
@@ -90,6 +93,7 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
90
93
|
readonly morphoblueusdedai_860: MorphoBlueMarketData;
|
|
91
94
|
readonly morphoblueusdedai_915: MorphoBlueMarketData;
|
|
92
95
|
readonly morphoblueusdedai_945: MorphoBlueMarketData;
|
|
96
|
+
readonly morphoblueptsyrupusdcaugusdc_860: MorphoBlueMarketData;
|
|
93
97
|
readonly morphobluecbethusdc_860_base: MorphoBlueMarketData;
|
|
94
98
|
readonly morphobluecbethusdc_860_base_1c21c59d: MorphoBlueMarketData;
|
|
95
99
|
readonly morphobluewstethusdc_860_base: MorphoBlueMarketData;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = void 0;
|
|
3
|
+
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_PTSYRUPUSDCAUG_USDC_860 = exports.MORPHO_BLUE_USR_USDC_915 = 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_SYRUPUSDC_USDC_915 = 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 = exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = void 0;
|
|
5
5
|
const utils_1 = require("../../services/utils");
|
|
6
6
|
const types_1 = require("../../types");
|
|
7
7
|
const common_1 = require("../../types/common");
|
|
@@ -293,6 +293,22 @@ const MORPHO_BLUE_SUSDE_USDC_915 = (networkId = common_1.NetworkNumber.Eth) => (
|
|
|
293
293
|
protocolName: 'morpho-blue',
|
|
294
294
|
});
|
|
295
295
|
exports.MORPHO_BLUE_SUSDE_USDC_915 = MORPHO_BLUE_SUSDE_USDC_915;
|
|
296
|
+
const MORPHO_BLUE_SYRUPUSDC_USDC_915 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
297
|
+
chainIds: [1],
|
|
298
|
+
label: 'Morpho',
|
|
299
|
+
shortLabel: 'syrupUSDC/USDC',
|
|
300
|
+
value: types_1.MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915,
|
|
301
|
+
url: 'syrupusdc-729badf2',
|
|
302
|
+
loanToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
303
|
+
collateralToken: '0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b',
|
|
304
|
+
oracle: '0x80032f4cb6e3573b9ed61e888af658e48fb790cc',
|
|
305
|
+
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
306
|
+
irm: '0x870ac11d48b15db9a138cf899d20f13f79ba00bc',
|
|
307
|
+
lltv: 0.915,
|
|
308
|
+
marketId: '729badf297ee9f2f6b3f717b96fd355fc6ec00422284ce1968e76647b258cf44',
|
|
309
|
+
protocolName: 'morpho-blue',
|
|
310
|
+
});
|
|
311
|
+
exports.MORPHO_BLUE_SYRUPUSDC_USDC_915 = MORPHO_BLUE_SYRUPUSDC_USDC_915;
|
|
296
312
|
// ezETH/ETH
|
|
297
313
|
const MORPHO_BLUE_EZETH_ETH_860 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
298
314
|
chainIds: [1],
|
|
@@ -570,6 +586,23 @@ const MORPHO_BLUE_USR_USDC_915 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
|
570
586
|
protocolName: 'morpho-blue',
|
|
571
587
|
});
|
|
572
588
|
exports.MORPHO_BLUE_USR_USDC_915 = MORPHO_BLUE_USR_USDC_915;
|
|
589
|
+
// Pendle
|
|
590
|
+
const MORPHO_BLUE_PTSYRUPUSDCAUG_USDC_860 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
591
|
+
chainIds: [1],
|
|
592
|
+
label: 'Morpho',
|
|
593
|
+
shortLabel: 'Pt syrupUSDC Aug/USDC',
|
|
594
|
+
value: types_1.MorphoBlueVersions.MorphoBluePTsyrupUSDCAugUSDC_860,
|
|
595
|
+
url: 'ptsyrupusdcaug-a3819a7d',
|
|
596
|
+
loanToken: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
597
|
+
collateralToken: '0xCcE7D12f683c6dAe700154f0BAdf779C0bA1F89A',
|
|
598
|
+
oracle: '0x3b74c5fd1005cd98f349d5d9df78ec8b15131fa5',
|
|
599
|
+
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
600
|
+
irm: '0x870ac11d48b15db9a138cf899d20f13f79ba00bc',
|
|
601
|
+
lltv: 0.860,
|
|
602
|
+
marketId: 'a3819a7d2aee958ca0e7404137d012b51ea47d051db69d94656956eff8c80c23',
|
|
603
|
+
protocolName: 'morpho-blue',
|
|
604
|
+
});
|
|
605
|
+
exports.MORPHO_BLUE_PTSYRUPUSDCAUG_USDC_860 = MORPHO_BLUE_PTSYRUPUSDCAUG_USDC_860;
|
|
573
606
|
// ###### BASE ########
|
|
574
607
|
const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
575
608
|
chainIds: [common_1.NetworkNumber.Base],
|
|
@@ -885,6 +918,7 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
885
918
|
[types_1.MorphoBlueVersions.MorphoBlueSUSDeUSDC_915]: (0, exports.MORPHO_BLUE_SUSDE_USDC_915)(networkId),
|
|
886
919
|
[types_1.MorphoBlueVersions.MorphoBlueLBTCWBTC_945]: (0, exports.MORPHO_BLUE_LBTC_WBTC_945)(networkId),
|
|
887
920
|
[types_1.MorphoBlueVersions.MorphoBlueUSRUSDC_915]: (0, exports.MORPHO_BLUE_USR_USDC_915)(networkId),
|
|
921
|
+
[types_1.MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915]: (0, exports.MORPHO_BLUE_SYRUPUSDC_USDC_915)(networkId),
|
|
888
922
|
// wstETH/WETH
|
|
889
923
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
|
|
890
924
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
|
|
@@ -899,6 +933,8 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
899
933
|
[types_1.MorphoBlueVersions.MorphoBlueUSDeDAI_860]: (0, exports.MORPHO_BLUE_USDE_DAI_860)(networkId),
|
|
900
934
|
[types_1.MorphoBlueVersions.MorphoBlueUSDeDAI_915]: (0, exports.MORPHO_BLUE_USDE_DAI_915)(networkId),
|
|
901
935
|
[types_1.MorphoBlueVersions.MorphoBlueUSDeDAI_945]: (0, exports.MORPHO_BLUE_USDE_DAI_945)(networkId),
|
|
936
|
+
// Pendle
|
|
937
|
+
[types_1.MorphoBlueVersions.MorphoBluePTsyrupUSDCAugUSDC_860]: (0, exports.MORPHO_BLUE_PTSYRUPUSDCAUG_USDC_860)(networkId),
|
|
902
938
|
// Base
|
|
903
939
|
[types_1.MorphoBlueVersions.MorphoBlueCbEthUSDC_860_Base]: (0, exports.MORPHO_BLUE_CBETH_USDC_860_BASE)(networkId),
|
|
904
940
|
[types_1.MorphoBlueVersions.MorphoBlueCbEthUSDC_860_Base_1c21c59d]: (0, exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d)(networkId),
|
package/cjs/morphoBlue/index.js
CHANGED
|
@@ -56,13 +56,15 @@ function getMorphoBlueMarketData(web3, network, selectedMarket, mainnetWeb3) {
|
|
|
56
56
|
}
|
|
57
57
|
let morphoSupplyApy = '0';
|
|
58
58
|
let morphoBorrowApy = '0';
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
if (!collateralTokenInfo.isPendle) {
|
|
60
|
+
try {
|
|
61
|
+
const { supplyApy: _morphoSupplyApy, borrowApy: _morphoBorrowApy } = yield (0, morphoBlueHelpers_1.getRewardsForMarket)(selectedMarket.marketId, network);
|
|
62
|
+
morphoSupplyApy = _morphoSupplyApy;
|
|
63
|
+
morphoBorrowApy = _morphoBorrowApy;
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
console.error(e);
|
|
67
|
+
}
|
|
66
68
|
}
|
|
67
69
|
const supplyRate = (0, morphoBlueHelpers_1.getSupplyRate)(marketInfo.totalSupplyAssets, marketInfo.totalBorrowAssets, marketInfo.borrowRate, marketInfo.fee);
|
|
68
70
|
const compoundedBorrowRate = (0, morphoBlueHelpers_1.getBorrowRate)(marketInfo.borrowRate, marketInfo.totalBorrowShares);
|
|
@@ -21,6 +21,7 @@ export declare enum MorphoBlueVersions {
|
|
|
21
21
|
MorphoBlueSUSDeUSDC_915 = "morphobluesusdeusdc_915",
|
|
22
22
|
MorphoBlueLBTCWBTC_945 = "morphobluelbtcwbtc_945",
|
|
23
23
|
MorphoBlueUSRUSDC_915 = "morphoblueusrusdc_915",
|
|
24
|
+
MorphoBlueSyrupUSDCUSDC_915 = "morphobluesyrupusdcusdc_915",
|
|
24
25
|
MorphoBlueEzEthEth_860 = "morphoblueezetheth_860",
|
|
25
26
|
MorphoBlueEzEthEth_945 = "morphoblueezetheth_945",
|
|
26
27
|
MorphoBlueWeEthEth_860 = "morphoblueweetheth_860",
|
|
@@ -36,6 +37,7 @@ export declare enum MorphoBlueVersions {
|
|
|
36
37
|
MorphoBlueUSDeDAI_860 = "morphoblueusdedai_860",
|
|
37
38
|
MorphoBlueUSDeDAI_915 = "morphoblueusdedai_915",
|
|
38
39
|
MorphoBlueUSDeDAI_945 = "morphoblueusdedai_945",
|
|
40
|
+
MorphoBluePTsyrupUSDCAugUSDC_860 = "morphoblueptsyrupusdcaugusdc_860",
|
|
39
41
|
MorphoBlueCbEthUSDC_860_Base = "morphobluecbethusdc_860_base",
|
|
40
42
|
MorphoBlueCbEthUSDC_860_Base_1c21c59d = "morphobluecbethusdc_860_base_1c21c59d",
|
|
41
43
|
MorphoBlueWstEthUSDC_860_Base = "morphobluewstethusdc_860_base",
|
package/cjs/types/morphoBlue.js
CHANGED
|
@@ -25,6 +25,7 @@ var MorphoBlueVersions;
|
|
|
25
25
|
MorphoBlueVersions["MorphoBlueSUSDeUSDC_915"] = "morphobluesusdeusdc_915";
|
|
26
26
|
MorphoBlueVersions["MorphoBlueLBTCWBTC_945"] = "morphobluelbtcwbtc_945";
|
|
27
27
|
MorphoBlueVersions["MorphoBlueUSRUSDC_915"] = "morphoblueusrusdc_915";
|
|
28
|
+
MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915"] = "morphobluesyrupusdcusdc_915";
|
|
28
29
|
// ezETH/ETH
|
|
29
30
|
MorphoBlueVersions["MorphoBlueEzEthEth_860"] = "morphoblueezetheth_860";
|
|
30
31
|
MorphoBlueVersions["MorphoBlueEzEthEth_945"] = "morphoblueezetheth_945";
|
|
@@ -45,6 +46,8 @@ var MorphoBlueVersions;
|
|
|
45
46
|
MorphoBlueVersions["MorphoBlueUSDeDAI_860"] = "morphoblueusdedai_860";
|
|
46
47
|
MorphoBlueVersions["MorphoBlueUSDeDAI_915"] = "morphoblueusdedai_915";
|
|
47
48
|
MorphoBlueVersions["MorphoBlueUSDeDAI_945"] = "morphoblueusdedai_945";
|
|
49
|
+
// Pendle
|
|
50
|
+
MorphoBlueVersions["MorphoBluePTsyrupUSDCAugUSDC_860"] = "morphoblueptsyrupusdcaugusdc_860";
|
|
48
51
|
// BASE
|
|
49
52
|
MorphoBlueVersions["MorphoBlueCbEthUSDC_860_Base"] = "morphobluecbethusdc_860_base";
|
|
50
53
|
MorphoBlueVersions["MorphoBlueCbEthUSDC_860_Base_1c21c59d"] = "morphobluecbethusdc_860_base_1c21c59d";
|
package/esm/fluid/index.d.ts
CHANGED
|
@@ -48,7 +48,7 @@ export declare const getFluidTokenData: (web3: Web3, network: NetworkNumber, tok
|
|
|
48
48
|
withdrawRate: string;
|
|
49
49
|
}>;
|
|
50
50
|
export declare const getFluidDepositData: (web3: Web3, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
51
|
-
fTokenAddress:
|
|
51
|
+
fTokenAddress: string | undefined;
|
|
52
52
|
fTokenSymbol: string;
|
|
53
53
|
decimals: string;
|
|
54
54
|
totalDeposited: string;
|
|
@@ -59,6 +59,18 @@ export declare const getFluidDepositData: (web3: Web3, network: NetworkNumber, t
|
|
|
59
59
|
deposited: string;
|
|
60
60
|
depositedShares: string;
|
|
61
61
|
}>;
|
|
62
|
+
export declare const getAllUserEarnPositionsWithFTokens: (web3: Web3, network: NetworkNumber, user: EthAddress, mainnetWeb3: Web3) => Promise<{
|
|
63
|
+
fTokenAddress: string | undefined;
|
|
64
|
+
fTokenSymbol: string;
|
|
65
|
+
decimals: string;
|
|
66
|
+
totalDeposited: string;
|
|
67
|
+
withdrawable: string;
|
|
68
|
+
apy: string;
|
|
69
|
+
depositRate: string;
|
|
70
|
+
withdrawRate: string;
|
|
71
|
+
deposited: string;
|
|
72
|
+
depositedShares: string;
|
|
73
|
+
}[]>;
|
|
62
74
|
export declare const getUserPositions: (web3: Web3, network: NetworkNumber, user: EthAddress, mainnetWeb3: Web3) => Promise<{
|
|
63
75
|
marketData: FluidMarketData;
|
|
64
76
|
userData: {
|
package/esm/fluid/index.js
CHANGED
|
@@ -948,10 +948,7 @@ export const getFluidTokenData = (web3, network, token) => __awaiter(void 0, voi
|
|
|
948
948
|
withdrawRate,
|
|
949
949
|
};
|
|
950
950
|
});
|
|
951
|
-
|
|
952
|
-
const view = FluidViewContract(web3, network);
|
|
953
|
-
const fTokenAddress = getFTokenAddress(token, network);
|
|
954
|
-
const { fTokenData, userPosition } = yield view.methods.getUserEarnPositionWithFToken(fTokenAddress, address).call();
|
|
951
|
+
const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
955
952
|
const supplyRate = new Dec(fTokenData.supplyRate).div(100).toString();
|
|
956
953
|
const rewardsRate = new Dec(fTokenData.rewardsRate).div(1e12).toString();
|
|
957
954
|
const decimals = fTokenData.decimals;
|
|
@@ -969,6 +966,26 @@ export const getFluidDepositData = (web3, network, token, address) => __awaiter(
|
|
|
969
966
|
deposited: getEthAmountForDecimals(userPosition.underlyingAssets, decimals),
|
|
970
967
|
depositedShares: getEthAmountForDecimals(userPosition.fTokenShares, decimals),
|
|
971
968
|
};
|
|
969
|
+
};
|
|
970
|
+
export const getFluidDepositData = (web3, network, token, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
971
|
+
const view = FluidViewContract(web3, network);
|
|
972
|
+
const fTokenAddress = getFTokenAddress(token, network);
|
|
973
|
+
const { fTokenData, userPosition } = yield view.methods.getUserEarnPositionWithFToken(fTokenAddress, address).call();
|
|
974
|
+
return parseFDepositTokenData(fTokenData, userPosition, fTokenAddress);
|
|
975
|
+
});
|
|
976
|
+
export const getAllUserEarnPositionsWithFTokens = (web3, network, user, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
977
|
+
const view = FluidViewContract(web3, network);
|
|
978
|
+
const { fTokensData, userPositions } = yield view.methods.getAllUserEarnPositionsWithFTokens(user).call();
|
|
979
|
+
const parsedRes = fTokensData.reduce((acc, fTokenData, i) => {
|
|
980
|
+
const userPosition = userPositions[i];
|
|
981
|
+
const deposited = userPosition === null || userPosition === void 0 ? void 0 : userPosition.underlyingAssets;
|
|
982
|
+
if (Number(deposited) > 0) {
|
|
983
|
+
const fTokenAddress = getFTokenAddress(fTokenData.symbol, network);
|
|
984
|
+
acc.push(parseFDepositTokenData(fTokenData, userPosition, fTokenAddress));
|
|
985
|
+
}
|
|
986
|
+
return acc;
|
|
987
|
+
}, []);
|
|
988
|
+
return parsedRes;
|
|
972
989
|
});
|
|
973
990
|
export const getUserPositions = (web3, network, user, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
974
991
|
const view = FluidViewContract(web3, network);
|