@1delta/margin-fetcher 0.0.30 → 0.0.31
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/morpho/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallParse.js +3 -6
- package/dist/prices/main-prices/addresses/morpho.d.ts.map +1 -1
- package/dist/prices/main-prices/addresses/morpho.js +39 -32
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +18 -2
- package/dist/yields/yieldTypes.d.ts +76 -0
- package/dist/yields/yieldTypes.d.ts.map +1 -0
- package/dist/yields/yieldTypes.js +7 -0
- package/package.json +1 -1
- package/src/lending/user-data/morpho/userCallParse.ts +4 -10
- package/src/prices/main-prices/addresses/morpho.ts +39 -32
- package/src/yields/index.ts +22 -2
- package/src/yields/yieldTypes.ts +80 -0
- package/test/lenderData.test.ts +2 -3
- package/test/morphoPrice.test.ts +1 -1
- package/test/userDataMorphoKatana.test.ts +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,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,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,
|
|
1
|
+
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,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,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,CA4FP,CAAA"}
|
|
@@ -61,8 +61,6 @@ export const getMorphoUserDataConverterWithlens = (lender, chainId, account, mar
|
|
|
61
61
|
let datas = {};
|
|
62
62
|
// we loop over the return dat
|
|
63
63
|
for (let i = 0; i < data.length; i++) {
|
|
64
|
-
let totalDebt24h = 0;
|
|
65
|
-
let totalDeposits24h = 0;
|
|
66
64
|
// get balance data array for chunk
|
|
67
65
|
const balanceDatas = decodePackedDataset(data[i]);
|
|
68
66
|
// itereate of balanceDatas received in chunk
|
|
@@ -72,8 +70,6 @@ export const getMorphoUserDataConverterWithlens = (lender, chainId, account, mar
|
|
|
72
70
|
marketsHandled.push(markeId);
|
|
73
71
|
const market = lenderData[markeId]?.params?.market;
|
|
74
72
|
const { dataForMarket, addedDebt, addedDeposits } = createMorphoEntryFromMarketWithLens(balanceData, chainId, market, prices, pricesHist);
|
|
75
|
-
totalDebt24h += addedDebt;
|
|
76
|
-
totalDeposits24h += addedDeposits;
|
|
77
73
|
const payload = {
|
|
78
74
|
chainId,
|
|
79
75
|
account,
|
|
@@ -81,7 +77,7 @@ export const getMorphoUserDataConverterWithlens = (lender, chainId, account, mar
|
|
|
81
77
|
rewards: {},
|
|
82
78
|
userEMode: 0,
|
|
83
79
|
};
|
|
84
|
-
const userData = createBaseTypeUserState(payload, lenderData[markeId].data,
|
|
80
|
+
const userData = createBaseTypeUserState(payload, lenderData[markeId].data, addedDeposits, addedDebt);
|
|
85
81
|
datas[market.lender] = {
|
|
86
82
|
...payload,
|
|
87
83
|
...userData,
|
|
@@ -179,7 +175,8 @@ function createMorphoEntryFromMarketWithLens(balanceInfo, chainId, market, price
|
|
|
179
175
|
[loanAddress]: dataForLoanAsset,
|
|
180
176
|
[collateralAddress]: dataForCollateralAsset,
|
|
181
177
|
},
|
|
182
|
-
addedDeposits: Number(loanDepositNumber) * priceHistLoan +
|
|
178
|
+
addedDeposits: Number(loanDepositNumber) * priceHistLoan +
|
|
179
|
+
Number(collateralDec) * priceHist,
|
|
183
180
|
addedDebt: Number(borrowDec) * priceHistLoan,
|
|
184
181
|
};
|
|
185
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morpho.d.ts","sourceRoot":"","sources":["../../../../src/prices/main-prices/addresses/morpho.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,uBAAuB,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"morpho.d.ts","sourceRoot":"","sources":["../../../../src/prices/main-prices/addresses/morpho.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,uBAAuB,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAw/E5D,CAAA"}
|
|
@@ -1029,6 +1029,13 @@ export const MrophoOracles = {
|
|
|
1029
1029
|
loanAssetDecimals: 18,
|
|
1030
1030
|
collateralAssetDecimals: 18,
|
|
1031
1031
|
},
|
|
1032
|
+
{
|
|
1033
|
+
oracle: '0xC3dA445C9c4Cd78325C6DCDD314936C2Aa226372',
|
|
1034
|
+
loanAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1035
|
+
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1036
|
+
loanAssetDecimals: 8,
|
|
1037
|
+
collateralAssetDecimals: 8,
|
|
1038
|
+
},
|
|
1032
1039
|
{
|
|
1033
1040
|
oracle: '0xB60F728BdcE5e3921C0E42c1a6F07A1313D0040e',
|
|
1034
1041
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1043,13 +1050,6 @@ export const MrophoOracles = {
|
|
|
1043
1050
|
loanAssetDecimals: 6,
|
|
1044
1051
|
collateralAssetDecimals: 18,
|
|
1045
1052
|
},
|
|
1046
|
-
{
|
|
1047
|
-
oracle: '0xC3dA445C9c4Cd78325C6DCDD314936C2Aa226372',
|
|
1048
|
-
loanAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1049
|
-
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1050
|
-
loanAssetDecimals: 8,
|
|
1051
|
-
collateralAssetDecimals: 8,
|
|
1052
|
-
},
|
|
1053
1053
|
{
|
|
1054
1054
|
oracle: '0xBa4c6d027b3c08Cb8c21840501Cd04ad6Bb37Cd0',
|
|
1055
1055
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1072,11 +1072,11 @@ export const MrophoOracles = {
|
|
|
1072
1072
|
collateralAssetDecimals: 6,
|
|
1073
1073
|
},
|
|
1074
1074
|
{
|
|
1075
|
-
oracle: '
|
|
1076
|
-
loanAsset: '
|
|
1077
|
-
collateralAsset: '
|
|
1075
|
+
oracle: '0xD978CE03d8BB0eb3f09cB2a469DbbC25DB42F3Ae',
|
|
1076
|
+
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
1077
|
+
collateralAsset: '0x9a6bd7b6fd5c4f87eb66356441502fc7dcdd185b',
|
|
1078
1078
|
loanAssetDecimals: 6,
|
|
1079
|
-
collateralAssetDecimals:
|
|
1079
|
+
collateralAssetDecimals: 6,
|
|
1080
1080
|
},
|
|
1081
1081
|
{
|
|
1082
1082
|
oracle: '0x3C40506CcD8f124f05a900446d38dDA4baAfd82d',
|
|
@@ -1086,25 +1086,25 @@ export const MrophoOracles = {
|
|
|
1086
1086
|
collateralAssetDecimals: 8,
|
|
1087
1087
|
},
|
|
1088
1088
|
{
|
|
1089
|
-
oracle: '
|
|
1090
|
-
loanAsset: '
|
|
1091
|
-
collateralAsset: '
|
|
1089
|
+
oracle: '0x970b106C6C1df8276577dBdC8FdA010e418fC1EC',
|
|
1090
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1091
|
+
collateralAsset: '0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62',
|
|
1092
1092
|
loanAssetDecimals: 6,
|
|
1093
|
-
collateralAssetDecimals:
|
|
1093
|
+
collateralAssetDecimals: 18,
|
|
1094
1094
|
},
|
|
1095
1095
|
{
|
|
1096
|
-
oracle: '
|
|
1097
|
-
loanAsset: '
|
|
1098
|
-
collateralAsset: '
|
|
1096
|
+
oracle: '0x83F4197076614efe8e4c37BB9EFBfeaD08d4719f',
|
|
1097
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1098
|
+
collateralAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1099
1099
|
loanAssetDecimals: 6,
|
|
1100
|
-
collateralAssetDecimals:
|
|
1100
|
+
collateralAssetDecimals: 8,
|
|
1101
1101
|
},
|
|
1102
1102
|
{
|
|
1103
|
-
oracle: '
|
|
1103
|
+
oracle: '0x2477367cFF71b31b4BE6963e5691859E8fcDF084',
|
|
1104
1104
|
loanAsset: '0x2dca96907fde857dd3d816880a0df407eeb2d2f2',
|
|
1105
|
-
collateralAsset: '
|
|
1105
|
+
collateralAsset: '0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62',
|
|
1106
1106
|
loanAssetDecimals: 6,
|
|
1107
|
-
collateralAssetDecimals:
|
|
1107
|
+
collateralAssetDecimals: 18,
|
|
1108
1108
|
},
|
|
1109
1109
|
{
|
|
1110
1110
|
oracle: '0xcC139318686969b9D30Dd62aA206725B269DA40d',
|
|
@@ -1114,9 +1114,9 @@ export const MrophoOracles = {
|
|
|
1114
1114
|
collateralAssetDecimals: 8,
|
|
1115
1115
|
},
|
|
1116
1116
|
{
|
|
1117
|
-
oracle: '
|
|
1118
|
-
loanAsset: '
|
|
1119
|
-
collateralAsset: '
|
|
1117
|
+
oracle: '0x07A9c82f38aAD9855FaF76D398F9C64a7A12F0AE',
|
|
1118
|
+
loanAsset: '0x2dca96907fde857dd3d816880a0df407eeb2d2f2',
|
|
1119
|
+
collateralAsset: '0x0913da6da4b42f538b445599b46bb4622342cf52',
|
|
1120
1120
|
loanAssetDecimals: 6,
|
|
1121
1121
|
collateralAssetDecimals: 8,
|
|
1122
1122
|
},
|
|
@@ -1176,6 +1176,13 @@ export const MrophoOracles = {
|
|
|
1176
1176
|
loanAssetDecimals: 6,
|
|
1177
1177
|
collateralAssetDecimals: 8,
|
|
1178
1178
|
},
|
|
1179
|
+
{
|
|
1180
|
+
oracle: '0xaa9853c78B92606b21cE57Da7F04F301f031Aba4',
|
|
1181
|
+
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
1182
|
+
collateralAsset: '0xe007ca01894c863d7898045ed5a3b4abf0b18f37',
|
|
1183
|
+
loanAssetDecimals: 6,
|
|
1184
|
+
collateralAssetDecimals: 18,
|
|
1185
|
+
},
|
|
1179
1186
|
{
|
|
1180
1187
|
oracle: '0xcb2d3027Be1Fe4c88fc1840187efCF301Ff7176a',
|
|
1181
1188
|
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
@@ -1204,6 +1211,13 @@ export const MrophoOracles = {
|
|
|
1204
1211
|
loanAssetDecimals: 6,
|
|
1205
1212
|
collateralAssetDecimals: 18,
|
|
1206
1213
|
},
|
|
1214
|
+
{
|
|
1215
|
+
oracle: '0x269013966Ef83A88B75f0573199CF1Cad8c30f82',
|
|
1216
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1217
|
+
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1218
|
+
loanAssetDecimals: 6,
|
|
1219
|
+
collateralAssetDecimals: 8,
|
|
1220
|
+
},
|
|
1207
1221
|
{
|
|
1208
1222
|
oracle: '0x1c5f3862c913E015eD0a2A9d71E13BE74101F47d',
|
|
1209
1223
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1218,13 +1232,6 @@ export const MrophoOracles = {
|
|
|
1218
1232
|
loanAssetDecimals: 6,
|
|
1219
1233
|
collateralAssetDecimals: 18,
|
|
1220
1234
|
},
|
|
1221
|
-
{
|
|
1222
|
-
oracle: '0x269013966Ef83A88B75f0573199CF1Cad8c30f82',
|
|
1223
|
-
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1224
|
-
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1225
|
-
loanAssetDecimals: 6,
|
|
1226
|
-
collateralAssetDecimals: 8,
|
|
1227
|
-
},
|
|
1228
1235
|
{
|
|
1229
1236
|
oracle: '0xe8F70671Bc494A96332c809d042bD9bF09452B57',
|
|
1230
1237
|
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/yields/index.ts"],"names":[],"mappings":"AAkGA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,qBAAqB,EAAE,GAAG,CAAA;IAC1B,oBAAoB,EAAE,GAAG,CAAA;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;IACxD,aAAa,EAAE;QACb,CAAC,OAAO,EAAE,MAAM,GAAG;YACjB,CAAC,MAAM,EAAE,MAAM,GAAG;gBAAE,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAA;aAAE,CAAA;SACzD,CAAA;KACF,CAAA;CACF;AAcD,eAAO,MAAM,kBAAkB,uCA4b9B,CAAA"}
|
package/dist/yields/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { apyToAprPercent, apyToApr } from '../utils/parsing';
|
|
2
|
+
import { addressToAssetYearn } from './yieldTypes';
|
|
2
3
|
const hyUSD = 'High Yield USD Base::HYUSD';
|
|
3
4
|
const bsdETH = 'Based ETH::BSDETH';
|
|
4
5
|
const wstHype = 'Staked HYPE Shares::WSTHYPE';
|
|
@@ -61,6 +62,7 @@ const FeedData = {
|
|
|
61
62
|
ETHZERO: 'https://app.usual.money/api/rewards/rates/ETH0',
|
|
62
63
|
JITOSOL: 'https://www.jito.network/api/getJitoPoolStats/',
|
|
63
64
|
THBILL: 'https://thbill-api.theo.xyz/snapshots',
|
|
65
|
+
YEARN_KATANA: 'https://katana-apr-service.vercel.app/api/vaults',
|
|
64
66
|
};
|
|
65
67
|
const LenderAPIs = {
|
|
66
68
|
MERIDIAN: 'https://omnidex.bmaa3ajd1gjri.eu-west-2.cs.amazonlightsail.com/lending_yields',
|
|
@@ -175,6 +177,18 @@ export const fetchGeneralYields = async () => {
|
|
|
175
177
|
const res = await fetch(FeedData.ETHX).then((r) => r.json());
|
|
176
178
|
return apyToAprPercent(res.value);
|
|
177
179
|
});
|
|
180
|
+
const yearnKatanaPromise = safeFetch('YEARN_KATANA', async () => {
|
|
181
|
+
const res = await fetch(FeedData.YEARN_KATANA).then((r) => r.json());
|
|
182
|
+
let map = {};
|
|
183
|
+
Object.entries(res).forEach(([addr, data]) => {
|
|
184
|
+
const key = addressToAssetYearn[addr.toLowerCase()];
|
|
185
|
+
if (key) {
|
|
186
|
+
const apr = ((data.apr.netAPR ?? 0) + (data.apr.extra.extrinsicYield ?? 0)) * 100;
|
|
187
|
+
map[key] = apr;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
return map;
|
|
191
|
+
});
|
|
178
192
|
const osEthPromise = safeFetch('OSETH', async () => {
|
|
179
193
|
const res = await fetch(FeedData.OSETH, {
|
|
180
194
|
method: 'POST',
|
|
@@ -223,7 +237,7 @@ export const fetchGeneralYields = async () => {
|
|
|
223
237
|
const jitoSolPromise = safeFetch('JITOSOL', async () => {
|
|
224
238
|
const res = await fetch(FeedData.JITOSOL, {
|
|
225
239
|
method: 'GET',
|
|
226
|
-
headers: { Accept: 'application/json' },
|
|
240
|
+
headers: { Accept: 'application/json', 'User-Agent': '1delta/yields' },
|
|
227
241
|
}).then((r) => r.json());
|
|
228
242
|
const val = averageDataLastN(res?.getStakePoolStats?.apy, 7);
|
|
229
243
|
return apyToApr(val) * 100;
|
|
@@ -362,7 +376,7 @@ export const fetchGeneralYields = async () => {
|
|
|
362
376
|
},
|
|
363
377
|
})));
|
|
364
378
|
});
|
|
365
|
-
const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData, trumaticData, rtokensData, hypeData, osEthData, ethXData, pufEthData, angleData, susdsData, srUsdData, yusdData, rlpData, wstusrData, csusdlData, sdeusdData, rswethData, ynethxData, ethZeroData, usdZeroPlusData, jitoSolData, thBillData,] = await Promise.all([
|
|
379
|
+
const [wstethData, ezethData, rethData, weethData, stmaticData, methData, maticXdata, susdeData, meridianData, savaxData, cbethData, rsethData, trumaticData, rtokensData, hypeData, osEthData, ethXData, pufEthData, angleData, susdsData, srUsdData, yusdData, rlpData, wstusrData, csusdlData, sdeusdData, rswethData, ynethxData, ethZeroData, usdZeroPlusData, jitoSolData, thBillData, yearnKatanaData,] = await Promise.all([
|
|
366
380
|
wstethPromise,
|
|
367
381
|
ezethPromise,
|
|
368
382
|
rethPromise,
|
|
@@ -395,6 +409,7 @@ export const fetchGeneralYields = async () => {
|
|
|
395
409
|
usdZeroPlusPromise,
|
|
396
410
|
jitoSolPromise,
|
|
397
411
|
thbillPromise,
|
|
412
|
+
yearnKatanaPromise,
|
|
398
413
|
]);
|
|
399
414
|
const data = {
|
|
400
415
|
intrinsicYields: {
|
|
@@ -432,6 +447,7 @@ export const fetchGeneralYields = async () => {
|
|
|
432
447
|
...rtokensData,
|
|
433
448
|
...hypeData,
|
|
434
449
|
...angleData,
|
|
450
|
+
...yearnKatanaData,
|
|
435
451
|
},
|
|
436
452
|
lenderRewards: {
|
|
437
453
|
'167000': {
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export type YearnVault = {
|
|
2
|
+
address: string;
|
|
3
|
+
symbol: string;
|
|
4
|
+
name: string;
|
|
5
|
+
chainID: number;
|
|
6
|
+
token: {
|
|
7
|
+
address: string;
|
|
8
|
+
name: string;
|
|
9
|
+
symbol: string;
|
|
10
|
+
description: string;
|
|
11
|
+
decimals: number;
|
|
12
|
+
};
|
|
13
|
+
tvl: {
|
|
14
|
+
totalAssets: string;
|
|
15
|
+
tvl: number;
|
|
16
|
+
price: number;
|
|
17
|
+
};
|
|
18
|
+
apr: {
|
|
19
|
+
type: string;
|
|
20
|
+
netAPR: number | null;
|
|
21
|
+
fees: {
|
|
22
|
+
performance: number;
|
|
23
|
+
management: number;
|
|
24
|
+
};
|
|
25
|
+
points: {
|
|
26
|
+
weekAgo: number;
|
|
27
|
+
monthAgo: number;
|
|
28
|
+
inception: number;
|
|
29
|
+
};
|
|
30
|
+
pricePerShare: {
|
|
31
|
+
today: number;
|
|
32
|
+
weekAgo: number;
|
|
33
|
+
monthAgo: number;
|
|
34
|
+
};
|
|
35
|
+
extra: {
|
|
36
|
+
stakingRewardsAPR: number | null;
|
|
37
|
+
gammaRewardAPR: number | null;
|
|
38
|
+
katanaRewardsAPR: number | null;
|
|
39
|
+
katanaAppRewardsAPR: number | null;
|
|
40
|
+
FixedRateKatanaRewards: number | null;
|
|
41
|
+
katanaBonusAPY: number | null;
|
|
42
|
+
extrinsicYield: number | null;
|
|
43
|
+
katanaNativeYield: number | null;
|
|
44
|
+
};
|
|
45
|
+
forwardAPR: {
|
|
46
|
+
type: string;
|
|
47
|
+
netAPR: number | null;
|
|
48
|
+
composite: {
|
|
49
|
+
boost: number | null;
|
|
50
|
+
poolAPY: number | null;
|
|
51
|
+
boostedAPR: number | null;
|
|
52
|
+
baseAPR: number | null;
|
|
53
|
+
cvxAPR: number | null;
|
|
54
|
+
rewardsAPR: number | null;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
strategies: {
|
|
59
|
+
address: string;
|
|
60
|
+
name: string;
|
|
61
|
+
status: string;
|
|
62
|
+
netAPR?: number;
|
|
63
|
+
details: {
|
|
64
|
+
totalDebt: string;
|
|
65
|
+
totalLoss: string;
|
|
66
|
+
totalGain: string;
|
|
67
|
+
performanceFee: number;
|
|
68
|
+
lastReport: number;
|
|
69
|
+
debtRatio?: number;
|
|
70
|
+
};
|
|
71
|
+
}[];
|
|
72
|
+
};
|
|
73
|
+
export declare const addressToAssetYearn: {
|
|
74
|
+
[a: string]: string;
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=yieldTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yieldTypes.d.ts","sourceRoot":"","sources":["../../src/yields/yieldTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,GAAG,EAAE;QACH,WAAW,EAAE,MAAM,CAAA;QACnB,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM,CAAA;YACnB,UAAU,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,aAAa,EAAE;YACb,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,KAAK,EAAE;YACL,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;YAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;YAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;YAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;YAClC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;YACrC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;YAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;YAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;SACjC,CAAA;QACD,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;YACrB,SAAS,EAAE;gBACT,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;gBACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;gBACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;gBACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;gBACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;aAC1B,CAAA;SACF,CAAA;KACF,CAAA;IACD,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,cAAc,EAAE,MAAM,CAAA;YACtB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,CAAC,EAAE,MAAM,CAAA;SACnB,CAAA;KACF,EAAE,CAAA;CACJ,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAMtD,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const addressToAssetYearn = {
|
|
2
|
+
'0xe007ca01894c863d7898045ed5a3b4abf0b18f37': 'vbETH yVault::yvvbETH',
|
|
3
|
+
'0x80c34bd3a3569e126e7055831036aa7b212cb159': 'vbUSDC yVault::yvvbUSDC',
|
|
4
|
+
'0x9a6bd7b6fd5c4f87eb66356441502fc7dcdd185b': 'vbUSDT yVault::yvvbUSDT',
|
|
5
|
+
'0xaa0362ecc584b985056e47812931270b99c91f9d': 'vbWBTC yVault::yvvbWBTC',
|
|
6
|
+
'0x93fec6639717b6215a48e5a72a162c50dcc40d68': 'vbAUSD yVault::yvvbAUSD',
|
|
7
|
+
};
|
package/package.json
CHANGED
|
@@ -83,9 +83,6 @@ export const getMorphoUserDataConverterWithlens = (
|
|
|
83
83
|
|
|
84
84
|
// we loop over the return dat
|
|
85
85
|
for (let i = 0; i < data.length; i++) {
|
|
86
|
-
let totalDebt24h = 0
|
|
87
|
-
let totalDeposits24h = 0
|
|
88
|
-
|
|
89
86
|
// get balance data array for chunk
|
|
90
87
|
const balanceDatas = decodePackedDataset(data[i])
|
|
91
88
|
|
|
@@ -107,9 +104,6 @@ export const getMorphoUserDataConverterWithlens = (
|
|
|
107
104
|
pricesHist,
|
|
108
105
|
)
|
|
109
106
|
|
|
110
|
-
totalDebt24h += addedDebt
|
|
111
|
-
totalDeposits24h += addedDeposits
|
|
112
|
-
|
|
113
107
|
const payload = {
|
|
114
108
|
chainId,
|
|
115
109
|
account,
|
|
@@ -121,8 +115,8 @@ export const getMorphoUserDataConverterWithlens = (
|
|
|
121
115
|
const userData = createBaseTypeUserState(
|
|
122
116
|
payload,
|
|
123
117
|
lenderData[markeId].data,
|
|
124
|
-
|
|
125
|
-
|
|
118
|
+
addedDeposits,
|
|
119
|
+
addedDebt,
|
|
126
120
|
)
|
|
127
121
|
|
|
128
122
|
datas[market.lender] = {
|
|
@@ -174,7 +168,6 @@ function createMorphoEntryFromMarketWithLens(
|
|
|
174
168
|
// prices
|
|
175
169
|
const priceLoan = prices[loanKey] ?? 1
|
|
176
170
|
const priceHistLoan = pricesHist?.[loanKey] ?? priceLoan
|
|
177
|
-
|
|
178
171
|
// balances
|
|
179
172
|
const deposits = balanceInfo.supplyAssets
|
|
180
173
|
const borrow = balanceInfo.borrowAssets
|
|
@@ -250,7 +243,8 @@ function createMorphoEntryFromMarketWithLens(
|
|
|
250
243
|
[collateralAddress]: dataForCollateralAsset,
|
|
251
244
|
},
|
|
252
245
|
addedDeposits:
|
|
253
|
-
Number(loanDepositNumber) * priceHistLoan +
|
|
246
|
+
Number(loanDepositNumber) * priceHistLoan +
|
|
247
|
+
Number(collateralDec) * priceHist,
|
|
254
248
|
addedDebt: Number(borrowDec) * priceHistLoan,
|
|
255
249
|
}
|
|
256
250
|
}
|
|
@@ -1038,6 +1038,13 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1038
1038
|
loanAssetDecimals: 18,
|
|
1039
1039
|
collateralAssetDecimals: 18,
|
|
1040
1040
|
},
|
|
1041
|
+
{
|
|
1042
|
+
oracle: '0xC3dA445C9c4Cd78325C6DCDD314936C2Aa226372',
|
|
1043
|
+
loanAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1044
|
+
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1045
|
+
loanAssetDecimals: 8,
|
|
1046
|
+
collateralAssetDecimals: 8,
|
|
1047
|
+
},
|
|
1041
1048
|
{
|
|
1042
1049
|
oracle: '0xB60F728BdcE5e3921C0E42c1a6F07A1313D0040e',
|
|
1043
1050
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1052,13 +1059,6 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1052
1059
|
loanAssetDecimals: 6,
|
|
1053
1060
|
collateralAssetDecimals: 18,
|
|
1054
1061
|
},
|
|
1055
|
-
{
|
|
1056
|
-
oracle: '0xC3dA445C9c4Cd78325C6DCDD314936C2Aa226372',
|
|
1057
|
-
loanAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1058
|
-
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1059
|
-
loanAssetDecimals: 8,
|
|
1060
|
-
collateralAssetDecimals: 8,
|
|
1061
|
-
},
|
|
1062
1062
|
{
|
|
1063
1063
|
oracle: '0xBa4c6d027b3c08Cb8c21840501Cd04ad6Bb37Cd0',
|
|
1064
1064
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1081,11 +1081,11 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1081
1081
|
collateralAssetDecimals: 6,
|
|
1082
1082
|
},
|
|
1083
1083
|
{
|
|
1084
|
-
oracle: '
|
|
1085
|
-
loanAsset: '
|
|
1086
|
-
collateralAsset: '
|
|
1084
|
+
oracle: '0xD978CE03d8BB0eb3f09cB2a469DbbC25DB42F3Ae',
|
|
1085
|
+
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
1086
|
+
collateralAsset: '0x9a6bd7b6fd5c4f87eb66356441502fc7dcdd185b',
|
|
1087
1087
|
loanAssetDecimals: 6,
|
|
1088
|
-
collateralAssetDecimals:
|
|
1088
|
+
collateralAssetDecimals: 6,
|
|
1089
1089
|
},
|
|
1090
1090
|
{
|
|
1091
1091
|
oracle: '0x3C40506CcD8f124f05a900446d38dDA4baAfd82d',
|
|
@@ -1095,25 +1095,25 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1095
1095
|
collateralAssetDecimals: 8,
|
|
1096
1096
|
},
|
|
1097
1097
|
{
|
|
1098
|
-
oracle: '
|
|
1099
|
-
loanAsset: '
|
|
1100
|
-
collateralAsset: '
|
|
1098
|
+
oracle: '0x970b106C6C1df8276577dBdC8FdA010e418fC1EC',
|
|
1099
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1100
|
+
collateralAsset: '0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62',
|
|
1101
1101
|
loanAssetDecimals: 6,
|
|
1102
|
-
collateralAssetDecimals:
|
|
1102
|
+
collateralAssetDecimals: 18,
|
|
1103
1103
|
},
|
|
1104
1104
|
{
|
|
1105
|
-
oracle: '
|
|
1106
|
-
loanAsset: '
|
|
1107
|
-
collateralAsset: '
|
|
1105
|
+
oracle: '0x83F4197076614efe8e4c37BB9EFBfeaD08d4719f',
|
|
1106
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1107
|
+
collateralAsset: '0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072',
|
|
1108
1108
|
loanAssetDecimals: 6,
|
|
1109
|
-
collateralAssetDecimals:
|
|
1109
|
+
collateralAssetDecimals: 8,
|
|
1110
1110
|
},
|
|
1111
1111
|
{
|
|
1112
|
-
oracle: '
|
|
1112
|
+
oracle: '0x2477367cFF71b31b4BE6963e5691859E8fcDF084',
|
|
1113
1113
|
loanAsset: '0x2dca96907fde857dd3d816880a0df407eeb2d2f2',
|
|
1114
|
-
collateralAsset: '
|
|
1114
|
+
collateralAsset: '0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62',
|
|
1115
1115
|
loanAssetDecimals: 6,
|
|
1116
|
-
collateralAssetDecimals:
|
|
1116
|
+
collateralAssetDecimals: 18,
|
|
1117
1117
|
},
|
|
1118
1118
|
{
|
|
1119
1119
|
oracle: '0xcC139318686969b9D30Dd62aA206725B269DA40d',
|
|
@@ -1123,9 +1123,9 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1123
1123
|
collateralAssetDecimals: 8,
|
|
1124
1124
|
},
|
|
1125
1125
|
{
|
|
1126
|
-
oracle: '
|
|
1127
|
-
loanAsset: '
|
|
1128
|
-
collateralAsset: '
|
|
1126
|
+
oracle: '0x07A9c82f38aAD9855FaF76D398F9C64a7A12F0AE',
|
|
1127
|
+
loanAsset: '0x2dca96907fde857dd3d816880a0df407eeb2d2f2',
|
|
1128
|
+
collateralAsset: '0x0913da6da4b42f538b445599b46bb4622342cf52',
|
|
1129
1129
|
loanAssetDecimals: 6,
|
|
1130
1130
|
collateralAssetDecimals: 8,
|
|
1131
1131
|
},
|
|
@@ -1185,6 +1185,13 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1185
1185
|
loanAssetDecimals: 6,
|
|
1186
1186
|
collateralAssetDecimals: 8,
|
|
1187
1187
|
},
|
|
1188
|
+
{
|
|
1189
|
+
oracle: '0xaa9853c78B92606b21cE57Da7F04F301f031Aba4',
|
|
1190
|
+
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
1191
|
+
collateralAsset: '0xe007ca01894c863d7898045ed5a3b4abf0b18f37',
|
|
1192
|
+
loanAssetDecimals: 6,
|
|
1193
|
+
collateralAssetDecimals: 18,
|
|
1194
|
+
},
|
|
1188
1195
|
{
|
|
1189
1196
|
oracle: '0xcb2d3027Be1Fe4c88fc1840187efCF301Ff7176a',
|
|
1190
1197
|
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
@@ -1213,6 +1220,13 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1213
1220
|
loanAssetDecimals: 6,
|
|
1214
1221
|
collateralAssetDecimals: 18,
|
|
1215
1222
|
},
|
|
1223
|
+
{
|
|
1224
|
+
oracle: '0x269013966Ef83A88B75f0573199CF1Cad8c30f82',
|
|
1225
|
+
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1226
|
+
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1227
|
+
loanAssetDecimals: 6,
|
|
1228
|
+
collateralAssetDecimals: 8,
|
|
1229
|
+
},
|
|
1216
1230
|
{
|
|
1217
1231
|
oracle: '0x1c5f3862c913E015eD0a2A9d71E13BE74101F47d',
|
|
1218
1232
|
loanAsset: '0x203a662b0bd271a6ed5a60edfbd04bfce608fd36',
|
|
@@ -1227,13 +1241,6 @@ export const MrophoOracles: { [c: string]: MrophoOracleInfo[] } = {
|
|
|
1227
1241
|
loanAssetDecimals: 6,
|
|
1228
1242
|
collateralAssetDecimals: 18,
|
|
1229
1243
|
},
|
|
1230
|
-
{
|
|
1231
|
-
oracle: '0x269013966Ef83A88B75f0573199CF1Cad8c30f82',
|
|
1232
|
-
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
|
1233
|
-
collateralAsset: '0xecac9c5f704e954931349da37f60e39f515c11c1',
|
|
1234
|
-
loanAssetDecimals: 6,
|
|
1235
|
-
collateralAssetDecimals: 8,
|
|
1236
|
-
},
|
|
1237
1244
|
{
|
|
1238
1245
|
oracle: '0xe8F70671Bc494A96332c809d042bD9bF09452B57',
|
|
1239
1246
|
loanAsset: '0x00000000efe302beaa2b3e6e1b18d08d69a9012a',
|
package/src/yields/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { apyToAprPercent, apyToApr } from '../utils/parsing'
|
|
2
|
+
import { addressToAssetYearn, YearnVault } from './yieldTypes'
|
|
2
3
|
|
|
3
4
|
const hyUSD = 'High Yield USD Base::HYUSD'
|
|
4
5
|
const bsdETH = 'Based ETH::BSDETH'
|
|
@@ -65,6 +66,7 @@ const FeedData = {
|
|
|
65
66
|
ETHZERO: 'https://app.usual.money/api/rewards/rates/ETH0',
|
|
66
67
|
JITOSOL: 'https://www.jito.network/api/getJitoPoolStats/',
|
|
67
68
|
THBILL: 'https://thbill-api.theo.xyz/snapshots',
|
|
69
|
+
YEARN_KATANA: 'https://katana-apr-service.vercel.app/api/vaults',
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
const LenderAPIs = {
|
|
@@ -219,6 +221,22 @@ export const fetchGeneralYields = async () => {
|
|
|
219
221
|
return apyToAprPercent(res.value)
|
|
220
222
|
})
|
|
221
223
|
|
|
224
|
+
const yearnKatanaPromise = safeFetch('YEARN_KATANA', async () => {
|
|
225
|
+
const res: { [address: string]: YearnVault } = await fetch(
|
|
226
|
+
FeedData.YEARN_KATANA,
|
|
227
|
+
).then((r) => r.json())
|
|
228
|
+
let map: any = {}
|
|
229
|
+
Object.entries(res).forEach(([addr, data]) => {
|
|
230
|
+
const key = addressToAssetYearn[addr.toLowerCase()]
|
|
231
|
+
if (key) {
|
|
232
|
+
const apr =
|
|
233
|
+
((data.apr.netAPR ?? 0) + (data.apr.extra.extrinsicYield ?? 0)) * 100
|
|
234
|
+
map[key] = apr
|
|
235
|
+
}
|
|
236
|
+
})
|
|
237
|
+
return map
|
|
238
|
+
})
|
|
239
|
+
|
|
222
240
|
const osEthPromise = safeFetch('OSETH', async () => {
|
|
223
241
|
const res = await fetch(FeedData.OSETH, {
|
|
224
242
|
method: 'POST',
|
|
@@ -274,7 +292,7 @@ export const fetchGeneralYields = async () => {
|
|
|
274
292
|
const jitoSolPromise = safeFetch('JITOSOL', async () => {
|
|
275
293
|
const res = await fetch(FeedData.JITOSOL, {
|
|
276
294
|
method: 'GET',
|
|
277
|
-
headers: { Accept: 'application/json' },
|
|
295
|
+
headers: { Accept: 'application/json', 'User-Agent': '1delta/yields' },
|
|
278
296
|
}).then((r) => r.json())
|
|
279
297
|
const val = averageDataLastN(res?.getStakePoolStats?.apy, 7)
|
|
280
298
|
return apyToApr(val) * 100
|
|
@@ -317,7 +335,6 @@ export const fetchGeneralYields = async () => {
|
|
|
317
335
|
method: 'GET',
|
|
318
336
|
headers: {
|
|
319
337
|
Accept: 'application/json',
|
|
320
|
-
|
|
321
338
|
'User-Agent': '1delta/yields',
|
|
322
339
|
},
|
|
323
340
|
}).then((r) => r.json())
|
|
@@ -469,6 +486,7 @@ export const fetchGeneralYields = async () => {
|
|
|
469
486
|
usdZeroPlusData,
|
|
470
487
|
jitoSolData,
|
|
471
488
|
thBillData,
|
|
489
|
+
yearnKatanaData,
|
|
472
490
|
] = await Promise.all([
|
|
473
491
|
wstethPromise,
|
|
474
492
|
ezethPromise,
|
|
@@ -502,6 +520,7 @@ export const fetchGeneralYields = async () => {
|
|
|
502
520
|
usdZeroPlusPromise,
|
|
503
521
|
jitoSolPromise,
|
|
504
522
|
thbillPromise,
|
|
523
|
+
yearnKatanaPromise,
|
|
505
524
|
])
|
|
506
525
|
|
|
507
526
|
const data: YieldDataWithTimestamp = {
|
|
@@ -540,6 +559,7 @@ export const fetchGeneralYields = async () => {
|
|
|
540
559
|
...rtokensData,
|
|
541
560
|
...hypeData,
|
|
542
561
|
...angleData,
|
|
562
|
+
...yearnKatanaData,
|
|
543
563
|
},
|
|
544
564
|
lenderRewards: {
|
|
545
565
|
'167000': {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export type YearnVault = {
|
|
2
|
+
address: string
|
|
3
|
+
symbol: string
|
|
4
|
+
name: string
|
|
5
|
+
chainID: number
|
|
6
|
+
token: {
|
|
7
|
+
address: string
|
|
8
|
+
name: string
|
|
9
|
+
symbol: string
|
|
10
|
+
description: string
|
|
11
|
+
decimals: number
|
|
12
|
+
}
|
|
13
|
+
tvl: {
|
|
14
|
+
totalAssets: string
|
|
15
|
+
tvl: number
|
|
16
|
+
price: number
|
|
17
|
+
}
|
|
18
|
+
apr: {
|
|
19
|
+
type: string
|
|
20
|
+
netAPR: number | null
|
|
21
|
+
fees: {
|
|
22
|
+
performance: number
|
|
23
|
+
management: number
|
|
24
|
+
}
|
|
25
|
+
points: {
|
|
26
|
+
weekAgo: number
|
|
27
|
+
monthAgo: number
|
|
28
|
+
inception: number
|
|
29
|
+
}
|
|
30
|
+
pricePerShare: {
|
|
31
|
+
today: number
|
|
32
|
+
weekAgo: number
|
|
33
|
+
monthAgo: number
|
|
34
|
+
}
|
|
35
|
+
extra: {
|
|
36
|
+
stakingRewardsAPR: number | null
|
|
37
|
+
gammaRewardAPR: number | null
|
|
38
|
+
katanaRewardsAPR: number | null
|
|
39
|
+
katanaAppRewardsAPR: number | null
|
|
40
|
+
FixedRateKatanaRewards: number | null
|
|
41
|
+
katanaBonusAPY: number | null
|
|
42
|
+
extrinsicYield: number | null
|
|
43
|
+
katanaNativeYield: number | null
|
|
44
|
+
}
|
|
45
|
+
forwardAPR: {
|
|
46
|
+
type: string
|
|
47
|
+
netAPR: number | null
|
|
48
|
+
composite: {
|
|
49
|
+
boost: number | null
|
|
50
|
+
poolAPY: number | null
|
|
51
|
+
boostedAPR: number | null
|
|
52
|
+
baseAPR: number | null
|
|
53
|
+
cvxAPR: number | null
|
|
54
|
+
rewardsAPR: number | null
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
strategies: {
|
|
59
|
+
address: string
|
|
60
|
+
name: string
|
|
61
|
+
status: string
|
|
62
|
+
netAPR?: number
|
|
63
|
+
details: {
|
|
64
|
+
totalDebt: string
|
|
65
|
+
totalLoss: string
|
|
66
|
+
totalGain: string
|
|
67
|
+
performanceFee: number
|
|
68
|
+
lastReport: number
|
|
69
|
+
debtRatio?: number
|
|
70
|
+
}
|
|
71
|
+
}[]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const addressToAssetYearn: { [a: string]: string } = {
|
|
75
|
+
'0xe007ca01894c863d7898045ed5a3b4abf0b18f37': 'vbETH yVault::yvvbETH',
|
|
76
|
+
'0x80c34bd3a3569e126e7055831036aa7b212cb159': 'vbUSDC yVault::yvvbUSDC',
|
|
77
|
+
'0x9a6bd7b6fd5c4f87eb66356441502fc7dcdd185b': 'vbUSDT yVault::yvvbUSDT',
|
|
78
|
+
'0xaa0362ecc584b985056e47812931270b99c91f9d': 'vbWBTC yVault::yvvbWBTC',
|
|
79
|
+
'0x93fec6639717b6215a48e5a72a162c50dcc40d68': 'vbAUSD yVault::yvvbAUSD',
|
|
80
|
+
}
|
package/test/lenderData.test.ts
CHANGED
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
generateLendingPairs,
|
|
7
7
|
getLenderPublicData,
|
|
8
8
|
getLenderPublicDataAll,
|
|
9
|
-
getTopPairs,
|
|
10
9
|
} from '../src'
|
|
11
10
|
import { getEvmClient, multicallRetry } from '@1delta/providers'
|
|
12
11
|
import { Chain, Lender } from '@1delta/asset-registry'
|
|
@@ -20,7 +19,7 @@ describe(
|
|
|
20
19
|
const chainId = Chain.ARBITRUM_ONE
|
|
21
20
|
|
|
22
21
|
const ps = [
|
|
23
|
-
fetchMainPrices([chainId]
|
|
22
|
+
fetchMainPrices([chainId]),
|
|
24
23
|
fetchGeneralYields(),
|
|
25
24
|
]
|
|
26
25
|
|
|
@@ -46,7 +45,7 @@ describe(
|
|
|
46
45
|
const chainId = Chain.POLYGON_MAINNET
|
|
47
46
|
|
|
48
47
|
const ps = [
|
|
49
|
-
fetchMainPrices([chainId]
|
|
48
|
+
fetchMainPrices([chainId]),
|
|
50
49
|
fetchGeneralYields(),
|
|
51
50
|
]
|
|
52
51
|
|
package/test/morphoPrice.test.ts
CHANGED
|
@@ -9,8 +9,8 @@ import { LenderUserQuery } from '../src/lending/user-data/types'
|
|
|
9
9
|
import { prettyPrint } from './utils'
|
|
10
10
|
|
|
11
11
|
// random user with ETH
|
|
12
|
-
const TEST_ADDRESS = '
|
|
13
|
-
let prices, yields
|
|
12
|
+
const TEST_ADDRESS = '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5'
|
|
13
|
+
let prices, yields, pricesHist
|
|
14
14
|
|
|
15
15
|
async function getUserData(chainId: Chain, publicData: any) {
|
|
16
16
|
// Define user queries
|
|
@@ -51,14 +51,13 @@ describe(
|
|
|
51
51
|
`https://margin-data.1delta.io/lending-multi?chains=${chainId}`,
|
|
52
52
|
).then((a) => a.json())
|
|
53
53
|
prices = all.prices
|
|
54
|
+
pricesHist = all.priceHist
|
|
54
55
|
yields = all.yields
|
|
55
56
|
const publicData = all.data[chainId]
|
|
56
57
|
const { userData } = await getUserData(chainId, publicData)
|
|
57
58
|
|
|
58
59
|
prettyPrint(
|
|
59
|
-
userData[
|
|
60
|
-
'MORPHO_BLUE_16DED80178992B02F7C467C373CFC9F4EEE7F0356DF672F6A768EC92B2FFDEFF'
|
|
61
|
-
],
|
|
60
|
+
userData ['MORPHO_BLUE_6691CDCADD5D23AC68D2C1CF54DC97AB8242D2A888230DE411094480252C2ED3'],
|
|
62
61
|
)
|
|
63
62
|
|
|
64
63
|
// Basic validation
|