@defisaver/positions-sdk 0.0.166-dev2-liquity-v2 → 0.0.166-dev3-liquity-v2
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/cjs/helpers/liquityV2Helpers/index.d.ts +2 -2
- package/cjs/helpers/liquityV2Helpers/index.js +3 -2
- package/cjs/liquityV2/index.js +6 -6
- package/cjs/types/liquityV2.d.ts +3 -1
- package/esm/helpers/liquityV2Helpers/index.d.ts +2 -2
- package/esm/helpers/liquityV2Helpers/index.js +3 -2
- package/esm/liquityV2/index.js +6 -6
- package/esm/types/liquityV2.d.ts +3 -1
- package/package.json +1 -1
- package/src/helpers/liquityV2Helpers/index.ts +4 -3
- package/src/liquityV2/index.ts +6 -6
- package/src/types/liquityV2.ts +3 -1
|
@@ -4,9 +4,9 @@ export declare const calculateNetApyLiquityV2: (usedAssets: LiquityV2UsedAssets,
|
|
|
4
4
|
totalInterestUsd: string;
|
|
5
5
|
incentiveUsd: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const getLiquityV2AggregatedPositionData: ({ usedAssets, assetsData,
|
|
7
|
+
export declare const getLiquityV2AggregatedPositionData: ({ usedAssets, assetsData, minCollRatio, interestRate, }: {
|
|
8
8
|
usedAssets: LiquityV2UsedAssets;
|
|
9
9
|
assetsData: LiquityV2AssetsData;
|
|
10
|
-
|
|
10
|
+
minCollRatio: string;
|
|
11
11
|
interestRate: string;
|
|
12
12
|
}) => LiquityV2AggregatedTroveData;
|
|
@@ -37,13 +37,14 @@ const calculateNetApyLiquityV2 = (usedAssets, assetsData, interestRate) => {
|
|
|
37
37
|
return { netApy, totalInterestUsd, incentiveUsd };
|
|
38
38
|
};
|
|
39
39
|
exports.calculateNetApyLiquityV2 = calculateNetApyLiquityV2;
|
|
40
|
-
const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData,
|
|
40
|
+
const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData, minCollRatio, interestRate, }) => {
|
|
41
41
|
const payload = {};
|
|
42
42
|
payload.suppliedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, (usedAsset) => usedAsset, ({ suppliedUsd }) => suppliedUsd);
|
|
43
43
|
payload.borrowedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, (usedAsset) => usedAsset, ({ borrowedUsd }) => borrowedUsd);
|
|
44
|
-
payload.borrowLimitUsd = new decimal_js_1.default(payload.suppliedUsd).div(
|
|
44
|
+
payload.borrowLimitUsd = new decimal_js_1.default(payload.suppliedUsd).div(minCollRatio).mul(100).toString();
|
|
45
45
|
const leftToBorrowUsd = new decimal_js_1.default(payload.borrowLimitUsd).sub(payload.borrowedUsd);
|
|
46
46
|
payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
|
|
47
|
+
payload.ratio = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
|
|
47
48
|
const { netApy, incentiveUsd, totalInterestUsd } = (0, exports.calculateNetApyLiquityV2)(usedAssets, assetsData, interestRate);
|
|
48
49
|
payload.netApy = netApy;
|
|
49
50
|
payload.incentiveUsd = incentiveUsd;
|
package/cjs/liquityV2/index.js
CHANGED
|
@@ -47,13 +47,13 @@ const getLiquityV2MarketData = (web3, network, selectedMarket, mainnetWeb3) => _
|
|
|
47
47
|
assetsData[collateralToken].incentiveSupplyApy = yield (0, staking_1.getStakingApy)(collateralToken, mainnetWeb3);
|
|
48
48
|
assetsData[collateralToken].incentiveSupplyToken = collateralToken;
|
|
49
49
|
}
|
|
50
|
-
const
|
|
51
|
-
return { assetsData, marketData: {
|
|
50
|
+
const minCollRatio = new decimal_js_1.default(data.MCR).div(1e16).toString();
|
|
51
|
+
return { assetsData, marketData: { minCollRatio } };
|
|
52
52
|
});
|
|
53
53
|
exports.getLiquityV2MarketData = getLiquityV2MarketData;
|
|
54
54
|
const getLiquityV2TroveData = (web3, network, { selectedMarket, assetsData, marketData, troveId, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
55
|
const viewContract = (0, contracts_1.LiquityV2ViewContract)(web3, network);
|
|
56
|
-
const {
|
|
56
|
+
const { minCollRatio } = marketData;
|
|
57
57
|
const { collateralToken, marketAddress, debtToken } = selectedMarket;
|
|
58
58
|
const data = yield viewContract.methods.getTroveInfo(marketAddress, troveId).call();
|
|
59
59
|
const usedAssets = {};
|
|
@@ -83,15 +83,15 @@ const getLiquityV2TroveData = (web3, network, { selectedMarket, assetsData, mark
|
|
|
83
83
|
isBorrowed: false,
|
|
84
84
|
isSupplied: true,
|
|
85
85
|
};
|
|
86
|
-
const
|
|
86
|
+
const collRatio = new decimal_js_1.default(data.TCRatio).div(1e16).toString();
|
|
87
87
|
const interestRate = new decimal_js_1.default(data.annualInterestRate).div(1e16).toString();
|
|
88
88
|
const interestBatchManager = data.interestBatchManager;
|
|
89
89
|
const payload = Object.assign({ usedAssets,
|
|
90
90
|
troveId,
|
|
91
|
-
|
|
91
|
+
collRatio,
|
|
92
92
|
interestRate,
|
|
93
93
|
interestBatchManager, troveStatus: types_1.LIQUITY_TROVE_STATUS_ENUM[parseInt(data.status, 10)] }, (0, liquityV2Helpers_1.getLiquityV2AggregatedPositionData)({
|
|
94
|
-
usedAssets, assetsData,
|
|
94
|
+
usedAssets, assetsData, minCollRatio, interestRate,
|
|
95
95
|
}));
|
|
96
96
|
return payload;
|
|
97
97
|
});
|
package/cjs/types/liquityV2.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type LiquityV2AssetsData = {
|
|
|
29
29
|
[key: string]: LiquityV2AssetData;
|
|
30
30
|
};
|
|
31
31
|
export interface InnerLiquityV2MarketData {
|
|
32
|
-
|
|
32
|
+
minCollRatio: string;
|
|
33
33
|
}
|
|
34
34
|
export interface LiquityV2MarketData {
|
|
35
35
|
assetsData: LiquityV2AssetsData;
|
|
@@ -60,11 +60,13 @@ export interface LiquityV2AggregatedTroveData {
|
|
|
60
60
|
leveragedType: string;
|
|
61
61
|
leveragedAsset: string;
|
|
62
62
|
liquidationPrice: string;
|
|
63
|
+
ratio: string;
|
|
63
64
|
}
|
|
64
65
|
export interface LiquityV2TroveData {
|
|
65
66
|
usedAssets: LiquityV2UsedAssets;
|
|
66
67
|
troveId: string;
|
|
67
68
|
ratio: string;
|
|
69
|
+
collRatio: string;
|
|
68
70
|
interestRate: string;
|
|
69
71
|
leftToBorrowUsd: string;
|
|
70
72
|
borrowLimitUsd: string;
|
|
@@ -4,9 +4,9 @@ export declare const calculateNetApyLiquityV2: (usedAssets: LiquityV2UsedAssets,
|
|
|
4
4
|
totalInterestUsd: string;
|
|
5
5
|
incentiveUsd: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const getLiquityV2AggregatedPositionData: ({ usedAssets, assetsData,
|
|
7
|
+
export declare const getLiquityV2AggregatedPositionData: ({ usedAssets, assetsData, minCollRatio, interestRate, }: {
|
|
8
8
|
usedAssets: LiquityV2UsedAssets;
|
|
9
9
|
assetsData: LiquityV2AssetsData;
|
|
10
|
-
|
|
10
|
+
minCollRatio: string;
|
|
11
11
|
interestRate: string;
|
|
12
12
|
}) => LiquityV2AggregatedTroveData;
|
|
@@ -30,13 +30,14 @@ export const calculateNetApyLiquityV2 = (usedAssets, assetsData, interestRate) =
|
|
|
30
30
|
const netApy = new Dec(totalInterestUsd).div(balance).times(100).toString();
|
|
31
31
|
return { netApy, totalInterestUsd, incentiveUsd };
|
|
32
32
|
};
|
|
33
|
-
export const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData,
|
|
33
|
+
export const getLiquityV2AggregatedPositionData = ({ usedAssets, assetsData, minCollRatio, interestRate, }) => {
|
|
34
34
|
const payload = {};
|
|
35
35
|
payload.suppliedUsd = getAssetsTotal(usedAssets, (usedAsset) => usedAsset, ({ suppliedUsd }) => suppliedUsd);
|
|
36
36
|
payload.borrowedUsd = getAssetsTotal(usedAssets, (usedAsset) => usedAsset, ({ borrowedUsd }) => borrowedUsd);
|
|
37
|
-
payload.borrowLimitUsd = new Dec(payload.suppliedUsd).div(
|
|
37
|
+
payload.borrowLimitUsd = new Dec(payload.suppliedUsd).div(minCollRatio).mul(100).toString();
|
|
38
38
|
const leftToBorrowUsd = new Dec(payload.borrowLimitUsd).sub(payload.borrowedUsd);
|
|
39
39
|
payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
|
|
40
|
+
payload.ratio = +payload.suppliedUsd ? new Dec(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
|
|
40
41
|
const { netApy, incentiveUsd, totalInterestUsd } = calculateNetApyLiquityV2(usedAssets, assetsData, interestRate);
|
|
41
42
|
payload.netApy = netApy;
|
|
42
43
|
payload.incentiveUsd = incentiveUsd;
|
package/esm/liquityV2/index.js
CHANGED
|
@@ -41,12 +41,12 @@ export const getLiquityV2MarketData = (web3, network, selectedMarket, mainnetWeb
|
|
|
41
41
|
assetsData[collateralToken].incentiveSupplyApy = yield getStakingApy(collateralToken, mainnetWeb3);
|
|
42
42
|
assetsData[collateralToken].incentiveSupplyToken = collateralToken;
|
|
43
43
|
}
|
|
44
|
-
const
|
|
45
|
-
return { assetsData, marketData: {
|
|
44
|
+
const minCollRatio = new Dec(data.MCR).div(1e16).toString();
|
|
45
|
+
return { assetsData, marketData: { minCollRatio } };
|
|
46
46
|
});
|
|
47
47
|
export const getLiquityV2TroveData = (web3, network, { selectedMarket, assetsData, marketData, troveId, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
48
|
const viewContract = LiquityV2ViewContract(web3, network);
|
|
49
|
-
const {
|
|
49
|
+
const { minCollRatio } = marketData;
|
|
50
50
|
const { collateralToken, marketAddress, debtToken } = selectedMarket;
|
|
51
51
|
const data = yield viewContract.methods.getTroveInfo(marketAddress, troveId).call();
|
|
52
52
|
const usedAssets = {};
|
|
@@ -76,15 +76,15 @@ export const getLiquityV2TroveData = (web3, network, { selectedMarket, assetsDat
|
|
|
76
76
|
isBorrowed: false,
|
|
77
77
|
isSupplied: true,
|
|
78
78
|
};
|
|
79
|
-
const
|
|
79
|
+
const collRatio = new Dec(data.TCRatio).div(1e16).toString();
|
|
80
80
|
const interestRate = new Dec(data.annualInterestRate).div(1e16).toString();
|
|
81
81
|
const interestBatchManager = data.interestBatchManager;
|
|
82
82
|
const payload = Object.assign({ usedAssets,
|
|
83
83
|
troveId,
|
|
84
|
-
|
|
84
|
+
collRatio,
|
|
85
85
|
interestRate,
|
|
86
86
|
interestBatchManager, troveStatus: LIQUITY_TROVE_STATUS_ENUM[parseInt(data.status, 10)] }, getLiquityV2AggregatedPositionData({
|
|
87
|
-
usedAssets, assetsData,
|
|
87
|
+
usedAssets, assetsData, minCollRatio, interestRate,
|
|
88
88
|
}));
|
|
89
89
|
return payload;
|
|
90
90
|
});
|
package/esm/types/liquityV2.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type LiquityV2AssetsData = {
|
|
|
29
29
|
[key: string]: LiquityV2AssetData;
|
|
30
30
|
};
|
|
31
31
|
export interface InnerLiquityV2MarketData {
|
|
32
|
-
|
|
32
|
+
minCollRatio: string;
|
|
33
33
|
}
|
|
34
34
|
export interface LiquityV2MarketData {
|
|
35
35
|
assetsData: LiquityV2AssetsData;
|
|
@@ -60,11 +60,13 @@ export interface LiquityV2AggregatedTroveData {
|
|
|
60
60
|
leveragedType: string;
|
|
61
61
|
leveragedAsset: string;
|
|
62
62
|
liquidationPrice: string;
|
|
63
|
+
ratio: string;
|
|
63
64
|
}
|
|
64
65
|
export interface LiquityV2TroveData {
|
|
65
66
|
usedAssets: LiquityV2UsedAssets;
|
|
66
67
|
troveId: string;
|
|
67
68
|
ratio: string;
|
|
69
|
+
collRatio: string;
|
|
68
70
|
interestRate: string;
|
|
69
71
|
leftToBorrowUsd: string;
|
|
70
72
|
borrowLimitUsd: string;
|
package/package.json
CHANGED
|
@@ -46,20 +46,21 @@ export const calculateNetApyLiquityV2 = (usedAssets: LiquityV2UsedAssets, assets
|
|
|
46
46
|
export const getLiquityV2AggregatedPositionData = ({
|
|
47
47
|
usedAssets,
|
|
48
48
|
assetsData,
|
|
49
|
-
|
|
49
|
+
minCollRatio,
|
|
50
50
|
interestRate,
|
|
51
51
|
}: {
|
|
52
52
|
usedAssets: LiquityV2UsedAssets
|
|
53
53
|
assetsData: LiquityV2AssetsData
|
|
54
|
-
|
|
54
|
+
minCollRatio: string
|
|
55
55
|
interestRate: string
|
|
56
56
|
}): LiquityV2AggregatedTroveData => {
|
|
57
57
|
const payload = {} as LiquityV2AggregatedTroveData;
|
|
58
58
|
payload.suppliedUsd = getAssetsTotal(usedAssets, (usedAsset: LiquityV2UsedAsset) => usedAsset, ({ suppliedUsd }: { suppliedUsd: string }) => suppliedUsd);
|
|
59
59
|
payload.borrowedUsd = getAssetsTotal(usedAssets, (usedAsset: LiquityV2UsedAsset) => usedAsset, ({ borrowedUsd }: { borrowedUsd: string }) => borrowedUsd);
|
|
60
|
-
payload.borrowLimitUsd = new Dec(payload.suppliedUsd).div(
|
|
60
|
+
payload.borrowLimitUsd = new Dec(payload.suppliedUsd).div(minCollRatio).mul(100).toString();
|
|
61
61
|
const leftToBorrowUsd = new Dec(payload.borrowLimitUsd).sub(payload.borrowedUsd);
|
|
62
62
|
payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
|
|
63
|
+
payload.ratio = +payload.suppliedUsd ? new Dec(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
|
|
63
64
|
const { netApy, incentiveUsd, totalInterestUsd } = calculateNetApyLiquityV2(usedAssets, assetsData, interestRate);
|
|
64
65
|
payload.netApy = netApy;
|
|
65
66
|
payload.incentiveUsd = incentiveUsd;
|
package/src/liquityV2/index.ts
CHANGED
|
@@ -41,8 +41,8 @@ export const getLiquityV2MarketData = async (web3: Web3, network: NetworkNumber,
|
|
|
41
41
|
assetsData[collateralToken].incentiveSupplyToken = collateralToken;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
const
|
|
45
|
-
return { assetsData, marketData: {
|
|
44
|
+
const minCollRatio = new Dec(data.MCR).div(1e16).toString();
|
|
45
|
+
return { assetsData, marketData: { minCollRatio } };
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
export const getLiquityV2TroveData = async (
|
|
@@ -62,7 +62,7 @@ export const getLiquityV2TroveData = async (
|
|
|
62
62
|
},
|
|
63
63
|
): Promise<LiquityV2TroveData> => {
|
|
64
64
|
const viewContract = LiquityV2ViewContract(web3, network);
|
|
65
|
-
const {
|
|
65
|
+
const { minCollRatio } = marketData;
|
|
66
66
|
const { collateralToken, marketAddress, debtToken } = selectedMarket;
|
|
67
67
|
const data = await viewContract.methods.getTroveInfo(marketAddress, troveId).call();
|
|
68
68
|
const usedAssets: LiquityV2UsedAssets = {};
|
|
@@ -95,19 +95,19 @@ export const getLiquityV2TroveData = async (
|
|
|
95
95
|
isSupplied: true,
|
|
96
96
|
};
|
|
97
97
|
|
|
98
|
-
const
|
|
98
|
+
const collRatio = new Dec(data.TCRatio).div(1e16).toString();
|
|
99
99
|
const interestRate = new Dec(data.annualInterestRate).div(1e16).toString();
|
|
100
100
|
const interestBatchManager = data.interestBatchManager;
|
|
101
101
|
|
|
102
102
|
const payload: LiquityV2TroveData = {
|
|
103
103
|
usedAssets,
|
|
104
104
|
troveId,
|
|
105
|
-
|
|
105
|
+
collRatio,
|
|
106
106
|
interestRate,
|
|
107
107
|
interestBatchManager,
|
|
108
108
|
troveStatus: LIQUITY_TROVE_STATUS_ENUM[parseInt(data.status, 10)],
|
|
109
109
|
...getLiquityV2AggregatedPositionData({
|
|
110
|
-
usedAssets, assetsData,
|
|
110
|
+
usedAssets, assetsData, minCollRatio, interestRate,
|
|
111
111
|
}),
|
|
112
112
|
};
|
|
113
113
|
|
package/src/types/liquityV2.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface LiquityV2AssetData {
|
|
|
32
32
|
export type LiquityV2AssetsData = { [key: string]: LiquityV2AssetData };
|
|
33
33
|
|
|
34
34
|
export interface InnerLiquityV2MarketData {
|
|
35
|
-
|
|
35
|
+
minCollRatio: string,
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export interface LiquityV2MarketData {
|
|
@@ -65,12 +65,14 @@ export interface LiquityV2AggregatedTroveData {
|
|
|
65
65
|
leveragedType: string,
|
|
66
66
|
leveragedAsset: string,
|
|
67
67
|
liquidationPrice: string,
|
|
68
|
+
ratio: string,
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
export interface LiquityV2TroveData {
|
|
71
72
|
usedAssets: LiquityV2UsedAssets,
|
|
72
73
|
troveId: string,
|
|
73
74
|
ratio: string,
|
|
75
|
+
collRatio: string,
|
|
74
76
|
interestRate: string,
|
|
75
77
|
leftToBorrowUsd: string,
|
|
76
78
|
borrowLimitUsd: string,
|