@1delta/margin-fetcher 0.0.2 → 0.0.4
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/dist/lending/user-data/compound-v3/userCallParse.js +1 -1
- package/dist/lending/user-data/fetchUserData.js +1 -1
- package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/init/userCallParse.js +3 -2
- package/dist/lending/user-data/types.d.ts +10 -12
- package/dist/lending/user-data/types.d.ts.map +1 -1
- package/dist/lending/user-data/utils/createMultiAccountStyleUserState.js +1 -1
- package/package.json +1 -1
- package/src/lending/user-data/compound-v3/userCallParse.ts +1 -1
- package/src/lending/user-data/fetchUserData.ts +1 -1
- package/src/lending/user-data/init/userCallParse.ts +11 -11
- package/src/lending/user-data/types.ts +11 -13
- package/src/lending/user-data/utils/createMultiAccountStyleUserState.ts +1 -1
- package/test/userdata.test.ts +32 -10
|
@@ -23,7 +23,7 @@ export const getCompoundV3UserDataConverter = (lender, chainId, account, prices,
|
|
|
23
23
|
const decimals = assetMeta?.decimals ?? 18;
|
|
24
24
|
const depositsRaw = data[i][0]?.toString();
|
|
25
25
|
const deposits = parseRawAmount(depositsRaw, decimals);
|
|
26
|
-
const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(
|
|
26
|
+
const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
27
27
|
const price = prices[key] ?? 1;
|
|
28
28
|
const priceHist = pricesHist?.[key] ?? price;
|
|
29
29
|
// accure
|
|
@@ -61,7 +61,7 @@ export const convertLenderUserDataResult = (chainId, queries, rawResults, prices
|
|
|
61
61
|
const lenderData = {};
|
|
62
62
|
let currentSlice = 0;
|
|
63
63
|
for (const query of queries) {
|
|
64
|
-
const [converter, sliceLength] = getUserDataConverter(query.lender, chainId, query.account, prices, pricesHist, lenderState[query.lender]?.
|
|
64
|
+
const [converter, sliceLength] = getUserDataConverter(query.lender, chainId, query.account, prices, pricesHist, lenderState[chainId]?.data?.[query.lender]?.data);
|
|
65
65
|
try {
|
|
66
66
|
const data = rawResults.slice(currentSlice, currentSlice + sliceLength);
|
|
67
67
|
const convertedData = converter(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/init/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/init/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAQlD,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,uBAAuB,GAAG,SAAS,EAAE,MAAM,CAkG/D,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Lender } from "@1delta/asset-registry";
|
|
2
1
|
import { getInitFlashAggregatorAddress } from "./userCallBuild";
|
|
3
2
|
import { InitGetUserPositionDataIndexes } from "../../init/types";
|
|
4
3
|
import { getLenderAssets } from "../../../utils";
|
|
@@ -17,7 +16,7 @@ export const getInitUserDataConverter = (lender, chainId, account, prices, price
|
|
|
17
16
|
const [data] = _data;
|
|
18
17
|
// filter for owner
|
|
19
18
|
const indexes = data[InitGetUserPositionDataIndexes.posMeta].map((e, i) => { return { e, i }; }).filter((a) => a.e.owner.toLowerCase() === validOwner).map((a) => a.i);
|
|
20
|
-
const assets = getLenderAssets(chainId,
|
|
19
|
+
const assets = getLenderAssets(chainId, lender);
|
|
21
20
|
let histData = {};
|
|
22
21
|
// map data
|
|
23
22
|
const result = Object.assign({}, ...indexes.map((index) => {
|
|
@@ -35,6 +34,7 @@ export const getInitUserDataConverter = (lender, chainId, account, prices, price
|
|
|
35
34
|
const decimals = getAssetMeta(chainId, asset)?.decimals ?? 18;
|
|
36
35
|
return { [asset]: { debt: parseRawAmount(c.amount.toString(), decimals) } };
|
|
37
36
|
}));
|
|
37
|
+
// sub account to asset data
|
|
38
38
|
return {
|
|
39
39
|
[id]: {
|
|
40
40
|
mode,
|
|
@@ -52,6 +52,7 @@ export const getInitUserDataConverter = (lender, chainId, account, prices, price
|
|
|
52
52
|
const depositsRaw = collatData[a]?.depositsRaw ?? "0";
|
|
53
53
|
histData[id].totalDebt24h += Number(debt) * priceHist;
|
|
54
54
|
histData[id].totalDeposits24h += Number(deposits) * priceHist;
|
|
55
|
+
// asset to data
|
|
55
56
|
return {
|
|
56
57
|
[a]: {
|
|
57
58
|
poolId: a,
|
|
@@ -190,18 +190,16 @@ export interface InitUserReserveResponse {
|
|
|
190
190
|
chainId: string;
|
|
191
191
|
lendingPositions: {
|
|
192
192
|
[posId: string]: {
|
|
193
|
-
mode:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
isAllowed: boolean;
|
|
204
|
-
};
|
|
193
|
+
mode: any;
|
|
194
|
+
[tokenSymbol: string]: {
|
|
195
|
+
deposits: number;
|
|
196
|
+
debt: number;
|
|
197
|
+
depositsUSD: number;
|
|
198
|
+
debtUSD: number;
|
|
199
|
+
debtStable: 0;
|
|
200
|
+
debtStableUSD: 0;
|
|
201
|
+
collateralActive: boolean;
|
|
202
|
+
isAllowed: boolean;
|
|
205
203
|
};
|
|
206
204
|
};
|
|
207
205
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ export function createMultiAccountTypeUserState(payload, lenderData, histData) {
|
|
|
36
36
|
let adjustedDebt = 0;
|
|
37
37
|
for (let i = 0; i < assetKeys.length; i++) {
|
|
38
38
|
const asset = assetKeys[i];
|
|
39
|
-
const { depositsUSD, debtUSD } = payload.lendingPositions[posId]
|
|
39
|
+
const { depositsUSD, debtUSD } = payload.lendingPositions[posId][asset];
|
|
40
40
|
if (!lenderData?.[asset])
|
|
41
41
|
continue;
|
|
42
42
|
const { depositRate, stakingYield, variableBorrowRate, rewards } = lenderData[asset];
|
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@ export const getCompoundV3UserDataConverter = (
|
|
|
38
38
|
const decimals = assetMeta?.decimals ?? 18
|
|
39
39
|
const depositsRaw = data[i][0]?.toString()
|
|
40
40
|
const deposits = parseRawAmount(depositsRaw, decimals)
|
|
41
|
-
const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(
|
|
41
|
+
const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
|
|
42
42
|
const price = prices[key] ?? 1
|
|
43
43
|
|
|
44
44
|
const priceHist = pricesHist?.[key] ?? price
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Lender } from "@1delta/asset-registry"
|
|
2
|
-
import {
|
|
3
|
-
import { InitUserReserveResponse, UserLendingPosition, UserRewardEntry } from "../types"
|
|
2
|
+
import { InitUserReserveResponse } from "../types"
|
|
4
3
|
import { getInitFlashAggregatorAddress } from "./userCallBuild"
|
|
5
4
|
import { InitGetUserPositionDataIndexes } from "../../init/types"
|
|
6
5
|
import { getLenderAssets } from "../../../utils"
|
|
@@ -27,33 +26,33 @@ export const getInitUserDataConverter = (
|
|
|
27
26
|
const [data] = _data
|
|
28
27
|
// filter for owner
|
|
29
28
|
const indexes = data[InitGetUserPositionDataIndexes.posMeta].map(
|
|
30
|
-
(e: any, i:
|
|
31
|
-
).filter((a:
|
|
32
|
-
const assets = getLenderAssets(chainId,
|
|
29
|
+
(e: any, i: number) => { return { e, i } }
|
|
30
|
+
).filter((a: any) => a.e.owner.toLowerCase() === validOwner).map((a: any) => a.i)
|
|
31
|
+
const assets = getLenderAssets(chainId, lender)
|
|
33
32
|
|
|
34
|
-
let histData:
|
|
33
|
+
let histData: any = {}
|
|
35
34
|
|
|
36
35
|
// map data
|
|
37
36
|
const result: any = Object.assign(
|
|
38
37
|
{},
|
|
39
|
-
...indexes.map((index:
|
|
38
|
+
...indexes.map((index: any) => {
|
|
40
39
|
const entry = data[InitGetUserPositionDataIndexes.posMeta][index]
|
|
41
40
|
const mode = entry.mode
|
|
42
41
|
const id = entry.posId.toString()
|
|
43
|
-
const collatData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.collaterals][index].map((c:
|
|
42
|
+
const collatData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.collaterals][index].map((c: any) => {
|
|
44
43
|
const asset = c.underlying.toLowerCase()
|
|
45
44
|
const decimals = getAssetMeta(chainId, asset)?.decimals ?? 18
|
|
46
45
|
const depositsRaw = c.amount.toString()
|
|
47
46
|
return { [asset]: { deposits: parseRawAmount(depositsRaw, decimals), depositsRaw } }
|
|
48
47
|
})
|
|
49
48
|
)
|
|
50
|
-
const debtData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.debts][index].map((c:
|
|
49
|
+
const debtData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.debts][index].map((c: any) => {
|
|
51
50
|
const asset = c.underlying.toLowerCase()
|
|
52
51
|
const decimals = getAssetMeta(chainId, asset)?.decimals ?? 18
|
|
53
52
|
return { [asset]: { debt: parseRawAmount(c.amount.toString(), decimals) } }
|
|
54
53
|
})
|
|
55
54
|
)
|
|
56
|
-
|
|
55
|
+
// sub account to asset data
|
|
57
56
|
return {
|
|
58
57
|
[id]: {
|
|
59
58
|
mode,
|
|
@@ -72,6 +71,7 @@ export const getInitUserDataConverter = (
|
|
|
72
71
|
histData[id].totalDebt24h += Number(debt) * priceHist
|
|
73
72
|
histData[id].totalDeposits24h += Number(deposits) * priceHist
|
|
74
73
|
|
|
74
|
+
// asset to data
|
|
75
75
|
return {
|
|
76
76
|
[a]: {
|
|
77
77
|
poolId: a,
|
|
@@ -112,4 +112,4 @@ export const getInitUserDataConverter = (
|
|
|
112
112
|
},
|
|
113
113
|
expectedNumberOfCalls,
|
|
114
114
|
]
|
|
115
|
-
}
|
|
115
|
+
}
|
|
@@ -66,7 +66,7 @@ export enum AaveV3TypeGetUserReserveData {
|
|
|
66
66
|
liquidityRate,
|
|
67
67
|
stableRateLastUpdated,
|
|
68
68
|
usageAsCollateralEnabled,
|
|
69
|
-
}
|
|
69
|
+
}
|
|
70
70
|
|
|
71
71
|
///////
|
|
72
72
|
export interface AaveV2UserReserveResponse {
|
|
@@ -249,18 +249,16 @@ export interface InitUserReserveResponse {
|
|
|
249
249
|
lendingPositions: {
|
|
250
250
|
// positionId is the NFT id
|
|
251
251
|
[posId: string]: {
|
|
252
|
-
mode:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
isAllowed: boolean
|
|
263
|
-
}
|
|
252
|
+
mode: any;
|
|
253
|
+
[tokenSymbol: string]: {
|
|
254
|
+
deposits: number
|
|
255
|
+
debt: number,
|
|
256
|
+
depositsUSD: number
|
|
257
|
+
debtUSD: number,
|
|
258
|
+
debtStable: 0,
|
|
259
|
+
debtStableUSD: 0,
|
|
260
|
+
collateralActive: boolean
|
|
261
|
+
isAllowed: boolean
|
|
264
262
|
}
|
|
265
263
|
}
|
|
266
264
|
}
|
|
@@ -48,7 +48,7 @@ export function createMultiAccountTypeUserState(
|
|
|
48
48
|
let adjustedDebt = 0
|
|
49
49
|
for (let i = 0; i < assetKeys.length; i++) {
|
|
50
50
|
const asset = assetKeys[i]
|
|
51
|
-
const { depositsUSD, debtUSD } = payload.lendingPositions[posId]
|
|
51
|
+
const { depositsUSD, debtUSD } = payload.lendingPositions[posId][asset]
|
|
52
52
|
if (!lenderData?.[asset]) continue;
|
|
53
53
|
const { depositRate, stakingYield, variableBorrowRate, rewards } = lenderData[asset]
|
|
54
54
|
// amounts
|
package/test/userdata.test.ts
CHANGED
|
@@ -18,13 +18,15 @@ let prices, yields;
|
|
|
18
18
|
|
|
19
19
|
async function getUserData(chainId: Chain, lenders: Lender[]) {
|
|
20
20
|
const _lenders = getLendersForChain(chainId);
|
|
21
|
-
const publicData =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
const publicData = {
|
|
22
|
+
data: await getLenderPublicData(
|
|
23
|
+
chainId,
|
|
24
|
+
_lenders as any,
|
|
25
|
+
prices as any,
|
|
26
|
+
yields as any,
|
|
27
|
+
multicallRetry
|
|
28
|
+
)
|
|
29
|
+
}
|
|
28
30
|
|
|
29
31
|
// Define user queries
|
|
30
32
|
const queries: LenderUserQuery[] = lenders.map((lender) => ({
|
|
@@ -46,7 +48,7 @@ async function getUserData(chainId: Chain, lenders: Lender[]) {
|
|
|
46
48
|
rawUserData,
|
|
47
49
|
prices as any,
|
|
48
50
|
prices as any,
|
|
49
|
-
publicData
|
|
51
|
+
{ [chainId]: publicData }
|
|
50
52
|
);
|
|
51
53
|
|
|
52
54
|
return { userData, rawUserData, publicData, queries };
|
|
@@ -63,19 +65,39 @@ describe(
|
|
|
63
65
|
}, 30000);
|
|
64
66
|
|
|
65
67
|
|
|
68
|
+
it(
|
|
69
|
+
"should fetch user data for INIT on Mantle",
|
|
70
|
+
async () => {
|
|
71
|
+
try {
|
|
72
|
+
const { userData } = await getUserData(Chain.MANTLE, [Lender.INIT]);
|
|
73
|
+
|
|
74
|
+
console.log("INIT Mantle user data:", userData);
|
|
75
|
+
|
|
76
|
+
// Basic validation
|
|
77
|
+
expect(userData).toBeDefined();
|
|
78
|
+
expect(typeof userData).toBe("object");
|
|
79
|
+
} catch (error) {
|
|
80
|
+
console.log("Error fetching INIT Mantle data:", error);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{ timeout: 30000 }
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
|
|
66
87
|
it(
|
|
67
88
|
"should fetch user data for YLDR on Polygon",
|
|
68
89
|
async () => {
|
|
69
90
|
try {
|
|
70
91
|
const { userData } = await getUserData(Chain.POLYGON_MAINNET, [Lender.YLDR]);
|
|
71
92
|
|
|
72
|
-
console.log("
|
|
93
|
+
console.log("YLDR Polygon user data:", userData[Lender.YLDR].balanceData);
|
|
94
|
+
console.log("YLDR Polygon user aprData:", userData[Lender.YLDR].aprData);
|
|
73
95
|
|
|
74
96
|
// Basic validation
|
|
75
97
|
expect(userData).toBeDefined();
|
|
76
98
|
expect(typeof userData).toBe("object");
|
|
77
99
|
} catch (error) {
|
|
78
|
-
console.log("Error fetching
|
|
100
|
+
console.log("Error fetching YLDR Polygon data:", error);
|
|
79
101
|
}
|
|
80
102
|
},
|
|
81
103
|
{ timeout: 30000 }
|