@defisaver/positions-sdk 1.0.26-dev-portfolio-13 → 1.0.26-dev-portfolio-15
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/portfolio/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
2
2
|
import { PortfolioPositionsData, PortfolioPositionsDataSlower } from '../types';
|
|
3
|
-
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[]): Promise<PortfolioPositionsData>;
|
|
4
|
-
export declare function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[]): Promise<PortfolioPositionsDataSlower>;
|
|
3
|
+
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], summerFiAddresses: EthAddress[]): Promise<PortfolioPositionsData>;
|
|
4
|
+
export declare function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[], isFork?: boolean): Promise<PortfolioPositionsDataSlower>;
|
package/cjs/portfolio/index.js
CHANGED
|
@@ -34,7 +34,7 @@ const liquity_1 = require("../liquity");
|
|
|
34
34
|
const liquityV2_1 = require("../liquityV2");
|
|
35
35
|
const fluid_1 = require("../fluid");
|
|
36
36
|
const eulerHelpers_1 = require("../helpers/eulerHelpers");
|
|
37
|
-
function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
37
|
+
function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
38
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
39
|
const isMainnet = network === common_1.NetworkNumber.Eth;
|
|
40
40
|
const morphoMarkets = Object.values((0, markets_1.MorphoBlueMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -102,8 +102,9 @@ function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
|
102
102
|
compoundV2MarketsData[market.value] = marketData;
|
|
103
103
|
})),
|
|
104
104
|
]);
|
|
105
|
+
const allAddresses = [...addresses, ...summerFiAddresses];
|
|
105
106
|
const positions = {};
|
|
106
|
-
for (const address of
|
|
107
|
+
for (const address of allAddresses) {
|
|
107
108
|
positions[address.toLowerCase()] = {
|
|
108
109
|
aaveV3: {},
|
|
109
110
|
morphoBlue: {},
|
|
@@ -117,7 +118,7 @@ function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
|
117
118
|
};
|
|
118
119
|
}
|
|
119
120
|
yield Promise.all([
|
|
120
|
-
...aaveV3Markets.map((market) =>
|
|
121
|
+
...aaveV3Markets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
121
122
|
const accData = yield (0, aaveV3_1._getAaveV3AccountData)(client, network, address, Object.assign({ selectedMarket: market }, aaveV3MarketsData[market.value]));
|
|
122
123
|
if (new decimal_js_1.default(accData.suppliedUsd).gt(0))
|
|
123
124
|
positions[address.toLowerCase()].aaveV3[market.value] = accData;
|
|
@@ -132,7 +133,7 @@ function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
|
132
133
|
if (new decimal_js_1.default(accData.suppliedUsd).gt(0))
|
|
133
134
|
positions[address.toLowerCase()].compoundV3[market.value] = accData;
|
|
134
135
|
}))).flat(),
|
|
135
|
-
...sparkMarkets.map((market) =>
|
|
136
|
+
...sparkMarkets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
136
137
|
const accData = yield (0, spark_1._getSparkAccountData)(client, network, address, { selectedMarket: market, assetsData: sparkMarketsData[market.value].assetsData });
|
|
137
138
|
if (new decimal_js_1.default(accData.suppliedUsd).gt(0))
|
|
138
139
|
positions[address.toLowerCase()].spark[market.value] = accData;
|
|
@@ -180,8 +181,8 @@ function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
|
180
181
|
return positions;
|
|
181
182
|
});
|
|
182
183
|
}
|
|
183
|
-
function getPortfolioDataSlower(
|
|
184
|
-
return __awaiter(this,
|
|
184
|
+
function getPortfolioDataSlower(provider_1, network_1, addresses_1) {
|
|
185
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, addresses, isFork = false) {
|
|
185
186
|
const crvUsdMarkets = Object.values((0, markets_1.CrvUsdMarkets)(network)).filter((market) => market.chainIds.includes(network));
|
|
186
187
|
const llamaLendMarkets = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Arb].includes(network) ? Object.values((0, markets_1.LlamaLendMarkets)(network)).filter((market) => market.chainIds.includes(network)) : [];
|
|
187
188
|
const liquityV2Markets = Object.values((0, markets_1.LiquityV2Markets)(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -240,7 +241,7 @@ function getPortfolioDataSlower(provider, network, addresses) {
|
|
|
240
241
|
}
|
|
241
242
|
}))).flat(),
|
|
242
243
|
...liquityV2Markets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
243
|
-
const troveIds = yield (0, liquityV2_1._getLiquityV2UserTroveIds)(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress,
|
|
244
|
+
const troveIds = yield (0, liquityV2_1._getLiquityV2UserTroveIds)(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress, isFork, address);
|
|
244
245
|
return Promise.all(troveIds.troves.map((troveId) => __awaiter(this, void 0, void 0, function* () {
|
|
245
246
|
const troveData = yield (0, liquityV2_1._getLiquityV2TroveData)(client, network, {
|
|
246
247
|
selectedMarket: market,
|
package/esm/portfolio/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
2
2
|
import { PortfolioPositionsData, PortfolioPositionsDataSlower } from '../types';
|
|
3
|
-
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[]): Promise<PortfolioPositionsData>;
|
|
4
|
-
export declare function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[]): Promise<PortfolioPositionsDataSlower>;
|
|
3
|
+
export declare function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], summerFiAddresses: EthAddress[]): Promise<PortfolioPositionsData>;
|
|
4
|
+
export declare function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[], isFork?: boolean): Promise<PortfolioPositionsDataSlower>;
|
package/esm/portfolio/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import { _getLiquityTroveInfo } from '../liquity';
|
|
|
27
27
|
import { _getLiquityV2MarketData, _getLiquityV2TroveData, _getLiquityV2UserTroveIds } from '../liquityV2';
|
|
28
28
|
import { _getUserPositions } from '../fluid';
|
|
29
29
|
import { getEulerV2SubAccounts } from '../helpers/eulerHelpers';
|
|
30
|
-
export function getPortfolioData(provider, network, defaultProvider, addresses) {
|
|
30
|
+
export function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
const isMainnet = network === NetworkNumber.Eth;
|
|
33
33
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -95,8 +95,9 @@ export function getPortfolioData(provider, network, defaultProvider, addresses)
|
|
|
95
95
|
compoundV2MarketsData[market.value] = marketData;
|
|
96
96
|
})),
|
|
97
97
|
]);
|
|
98
|
+
const allAddresses = [...addresses, ...summerFiAddresses];
|
|
98
99
|
const positions = {};
|
|
99
|
-
for (const address of
|
|
100
|
+
for (const address of allAddresses) {
|
|
100
101
|
positions[address.toLowerCase()] = {
|
|
101
102
|
aaveV3: {},
|
|
102
103
|
morphoBlue: {},
|
|
@@ -110,7 +111,7 @@ export function getPortfolioData(provider, network, defaultProvider, addresses)
|
|
|
110
111
|
};
|
|
111
112
|
}
|
|
112
113
|
yield Promise.all([
|
|
113
|
-
...aaveV3Markets.map((market) =>
|
|
114
|
+
...aaveV3Markets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
114
115
|
const accData = yield _getAaveV3AccountData(client, network, address, Object.assign({ selectedMarket: market }, aaveV3MarketsData[market.value]));
|
|
115
116
|
if (new Dec(accData.suppliedUsd).gt(0))
|
|
116
117
|
positions[address.toLowerCase()].aaveV3[market.value] = accData;
|
|
@@ -125,7 +126,7 @@ export function getPortfolioData(provider, network, defaultProvider, addresses)
|
|
|
125
126
|
if (new Dec(accData.suppliedUsd).gt(0))
|
|
126
127
|
positions[address.toLowerCase()].compoundV3[market.value] = accData;
|
|
127
128
|
}))).flat(),
|
|
128
|
-
...sparkMarkets.map((market) =>
|
|
129
|
+
...sparkMarkets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
129
130
|
const accData = yield _getSparkAccountData(client, network, address, { selectedMarket: market, assetsData: sparkMarketsData[market.value].assetsData });
|
|
130
131
|
if (new Dec(accData.suppliedUsd).gt(0))
|
|
131
132
|
positions[address.toLowerCase()].spark[market.value] = accData;
|
|
@@ -173,8 +174,8 @@ export function getPortfolioData(provider, network, defaultProvider, addresses)
|
|
|
173
174
|
return positions;
|
|
174
175
|
});
|
|
175
176
|
}
|
|
176
|
-
export function getPortfolioDataSlower(
|
|
177
|
-
return __awaiter(this,
|
|
177
|
+
export function getPortfolioDataSlower(provider_1, network_1, addresses_1) {
|
|
178
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, addresses, isFork = false) {
|
|
178
179
|
const crvUsdMarkets = Object.values(CrvUsdMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
179
180
|
const llamaLendMarkets = [NetworkNumber.Eth, NetworkNumber.Arb].includes(network) ? Object.values(LlamaLendMarkets(network)).filter((market) => market.chainIds.includes(network)) : [];
|
|
180
181
|
const liquityV2Markets = Object.values(LiquityV2Markets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -233,7 +234,7 @@ export function getPortfolioDataSlower(provider, network, addresses) {
|
|
|
233
234
|
}
|
|
234
235
|
}))).flat(),
|
|
235
236
|
...liquityV2Markets.map((market) => addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
const troveIds = yield _getLiquityV2UserTroveIds(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress,
|
|
237
|
+
const troveIds = yield _getLiquityV2UserTroveIds(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress, isFork, address);
|
|
237
238
|
return Promise.all(troveIds.troves.map((troveId) => __awaiter(this, void 0, void 0, function* () {
|
|
238
239
|
const troveData = yield _getLiquityV2TroveData(client, network, {
|
|
239
240
|
selectedMarket: market,
|
package/package.json
CHANGED
package/src/portfolio/index.ts
CHANGED
|
@@ -16,7 +16,6 @@ import {
|
|
|
16
16
|
CrvUSDGlobalMarketData,
|
|
17
17
|
EulerV2FullMarketData,
|
|
18
18
|
LiquityV2MarketData,
|
|
19
|
-
LiquityV2Versions,
|
|
20
19
|
LlamaLendGlobalMarketData,
|
|
21
20
|
MorphoBlueMarketInfo,
|
|
22
21
|
PortfolioPositionsData,
|
|
@@ -39,7 +38,7 @@ import { _getLiquityV2MarketData, _getLiquityV2TroveData, _getLiquityV2UserTrove
|
|
|
39
38
|
import { _getUserPositions } from '../fluid';
|
|
40
39
|
import { getEulerV2SubAccounts } from '../helpers/eulerHelpers';
|
|
41
40
|
|
|
42
|
-
export async function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[]): Promise<PortfolioPositionsData> {
|
|
41
|
+
export async function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], summerFiAddresses: EthAddress[]): Promise<PortfolioPositionsData> {
|
|
43
42
|
const isMainnet = network === NetworkNumber.Eth;
|
|
44
43
|
|
|
45
44
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -110,8 +109,10 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
110
109
|
}),
|
|
111
110
|
]);
|
|
112
111
|
|
|
112
|
+
const allAddresses = [...addresses, ...summerFiAddresses];
|
|
113
|
+
|
|
113
114
|
const positions: PortfolioPositionsData = {};
|
|
114
|
-
for (const address of
|
|
115
|
+
for (const address of allAddresses) {
|
|
115
116
|
positions[address.toLowerCase() as EthAddress] = {
|
|
116
117
|
aaveV3: {},
|
|
117
118
|
morphoBlue: {},
|
|
@@ -126,7 +127,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
126
127
|
}
|
|
127
128
|
|
|
128
129
|
await Promise.all([
|
|
129
|
-
...aaveV3Markets.map((market) =>
|
|
130
|
+
...aaveV3Markets.map((market) => allAddresses.map(async (address) => {
|
|
130
131
|
const accData = await _getAaveV3AccountData(client, network, address, { selectedMarket: market, ...aaveV3MarketsData[market.value] });
|
|
131
132
|
if (new Dec(accData.suppliedUsd).gt(0)) positions[address.toLowerCase() as EthAddress].aaveV3[market.value] = accData;
|
|
132
133
|
})).flat(),
|
|
@@ -138,7 +139,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
138
139
|
const accData = await _getCompoundV3AccountData(client, network, address, ZERO_ADDRESS, { selectedMarket: market, assetsData: compoundV3MarketsData[market.value].assetsData });
|
|
139
140
|
if (new Dec(accData.suppliedUsd).gt(0)) positions[address.toLowerCase() as EthAddress].compoundV3[market.value] = accData;
|
|
140
141
|
})).flat(),
|
|
141
|
-
...sparkMarkets.map((market) =>
|
|
142
|
+
...sparkMarkets.map((market) => allAddresses.map(async (address) => {
|
|
142
143
|
const accData = await _getSparkAccountData(client, network, address, { selectedMarket: market, assetsData: sparkMarketsData[market.value].assetsData });
|
|
143
144
|
if (new Dec(accData.suppliedUsd).gt(0)) positions[address.toLowerCase() as EthAddress].spark[market.value] = accData;
|
|
144
145
|
})).flat(),
|
|
@@ -179,7 +180,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
179
180
|
return positions;
|
|
180
181
|
}
|
|
181
182
|
|
|
182
|
-
export async function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[]): Promise<PortfolioPositionsDataSlower> {
|
|
183
|
+
export async function getPortfolioDataSlower(provider: EthereumProvider, network: NetworkNumber, addresses: EthAddress[], isFork: boolean = false): Promise<PortfolioPositionsDataSlower> {
|
|
183
184
|
const crvUsdMarkets = Object.values(CrvUsdMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
184
185
|
const llamaLendMarkets = [NetworkNumber.Eth, NetworkNumber.Arb].includes(network) ? Object.values(LlamaLendMarkets(network)).filter((market) => market.chainIds.includes(network)) : [];
|
|
185
186
|
const liquityV2Markets = Object.values(LiquityV2Markets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -243,7 +244,7 @@ export async function getPortfolioDataSlower(provider: EthereumProvider, network
|
|
|
243
244
|
}
|
|
244
245
|
})).flat(),
|
|
245
246
|
...liquityV2Markets.map((market) => addresses.map(async (address) => {
|
|
246
|
-
const troveIds = await _getLiquityV2UserTroveIds(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress,
|
|
247
|
+
const troveIds = await _getLiquityV2UserTroveIds(client, network, market, liquityV2MarketsData[market.value].marketData.troveNFTAddress, isFork, address);
|
|
247
248
|
return Promise.all(troveIds.troves.map(async (troveId) => {
|
|
248
249
|
const troveData = await _getLiquityV2TroveData(client, network, {
|
|
249
250
|
selectedMarket: market,
|