@1delta/margin-fetcher 0.0.7 → 0.0.9
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/abis/aave/AaveOracle.d.ts +10 -0
- package/dist/abis/aave/AaveOracle.d.ts.map +1 -1
- package/dist/abis/aave/AaveOracle.js +13 -0
- package/dist/abis/oracle/AaveOracle.d.ts +10 -0
- package/dist/abis/oracle/AaveOracle.d.ts.map +1 -1
- package/dist/abis/oracle/AaveOracle.js +13 -0
- package/dist/assets/index.d.ts +4 -4
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +8 -8
- package/dist/assets/liquidityThresholds.d.ts +29 -0
- package/dist/assets/liquidityThresholds.d.ts.map +1 -0
- package/dist/assets/liquidityThresholds.js +51 -0
- package/dist/lending/aave-v2-type/publicCallParse.js +3 -3
- package/dist/lending/addresses/compoundV3.d.ts +1 -1
- package/dist/lending/addresses/compoundV3.d.ts.map +1 -1
- package/dist/lending/addresses/compoundV3.js +8 -7
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.js +4 -23
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallParse.js +23 -10
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.js +1 -16
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.js +13 -6
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +12 -6
- package/dist/lending/user-data/compound-v3/addresses.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/addresses.js +8 -7
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.js +2 -0
- package/dist/lending-pairs/computeLendingPairs.d.ts +11 -0
- package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
- package/dist/lending-pairs/computeLendingPairs.js +84 -5
- package/dist/prices/main-prices/fetchOracleData.d.ts +1 -1
- package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
- package/dist/prices/main-prices/fetchOracleData.js +11 -2
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +4 -2
- package/package.json +2 -2
- package/src/abis/aave/AaveOracle.ts +13 -0
- package/src/abis/oracle/AaveOracle.ts +13 -0
- package/src/assets/index.ts +70 -51
- package/src/assets/liquidityThresholds.ts +83 -0
- package/src/lending/aave-v2-type/publicCallParse.ts +3 -3
- package/src/lending/addresses/compoundV3.ts +29 -15
- package/src/lending/user-data/aave-v2-type/userCallBuild.ts +1 -25
- package/src/lending/user-data/aave-v2-type/userCallParse.ts +23 -10
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +1 -16
- package/src/lending/user-data/aave-v3-type/userCallParse.ts +15 -6
- package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +14 -6
- package/src/lending/user-data/compound-v3/addresses.ts +58 -39
- package/src/lending/user-data/compound-v3/userCallParse.ts +2 -2
- package/src/lending-pairs/computeLendingPairs.ts +135 -5
- package/src/prices/main-prices/fetchOracleData.ts +14 -2
- package/src/utils/parsing.ts +51 -51
- package/test/userdata.test.ts +5 -5
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export declare const AaveOracleAbi: readonly [{
|
|
2
|
+
readonly inputs: readonly [];
|
|
3
|
+
readonly name: "BASE_CURRENCY_UNIT";
|
|
4
|
+
readonly outputs: readonly [{
|
|
5
|
+
readonly internalType: "uint256";
|
|
6
|
+
readonly name: "";
|
|
7
|
+
readonly type: "uint256";
|
|
8
|
+
}];
|
|
9
|
+
readonly stateMutability: "view";
|
|
10
|
+
readonly type: "function";
|
|
11
|
+
}, {
|
|
2
12
|
readonly inputs: readonly [{
|
|
3
13
|
readonly internalType: "address";
|
|
4
14
|
readonly name: "asset";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/aave/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/aave/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEhB,CAAA"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export const AaveOracleAbi = [
|
|
2
|
+
{
|
|
3
|
+
"inputs": [],
|
|
4
|
+
"name": "BASE_CURRENCY_UNIT",
|
|
5
|
+
"outputs": [
|
|
6
|
+
{
|
|
7
|
+
"internalType": "uint256",
|
|
8
|
+
"name": "",
|
|
9
|
+
"type": "uint256"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"stateMutability": "view",
|
|
13
|
+
"type": "function"
|
|
14
|
+
},
|
|
2
15
|
{
|
|
3
16
|
"inputs": [
|
|
4
17
|
{
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
export declare const AaveOracleAbi: readonly [{
|
|
2
|
+
readonly inputs: readonly [];
|
|
3
|
+
readonly name: "BASE_CURRENCY_UNIT";
|
|
4
|
+
readonly outputs: readonly [{
|
|
5
|
+
readonly internalType: "uint256";
|
|
6
|
+
readonly name: "";
|
|
7
|
+
readonly type: "uint256";
|
|
8
|
+
}];
|
|
9
|
+
readonly stateMutability: "view";
|
|
10
|
+
readonly type: "function";
|
|
11
|
+
}, {
|
|
2
12
|
readonly inputs: readonly [{
|
|
3
13
|
readonly internalType: "address";
|
|
4
14
|
readonly name: "asset";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/oracle/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"AaveOracle.d.ts","sourceRoot":"","sources":["../../../src/abis/oracle/AaveOracle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEhB,CAAA"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export const AaveOracleAbi = [
|
|
2
|
+
{
|
|
3
|
+
"inputs": [],
|
|
4
|
+
"name": "BASE_CURRENCY_UNIT",
|
|
5
|
+
"outputs": [
|
|
6
|
+
{
|
|
7
|
+
"internalType": "uint256",
|
|
8
|
+
"name": "",
|
|
9
|
+
"type": "uint256"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"stateMutability": "view",
|
|
13
|
+
"type": "function"
|
|
14
|
+
},
|
|
2
15
|
{
|
|
3
16
|
"inputs": [
|
|
4
17
|
{
|
package/dist/assets/index.d.ts
CHANGED
|
@@ -11,10 +11,10 @@ export declare function getAaveTypePoolDataProviderAddress(chainId: string, lend
|
|
|
11
11
|
export declare function getAaveTypePoolAddress(chainId: string, lender: string): string;
|
|
12
12
|
export declare function getAssetMeta(chainId: string, asset: string | undefined): any;
|
|
13
13
|
/**
|
|
14
|
-
* Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
|
|
15
|
-
* @param a string
|
|
16
|
-
* @returns SupportedAsset
|
|
17
|
-
*/
|
|
14
|
+
* Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
|
|
15
|
+
* @param a string
|
|
16
|
+
* @returns SupportedAsset
|
|
17
|
+
*/
|
|
18
18
|
export declare const toOracleKey: (a: string) => string;
|
|
19
19
|
export declare const toGenericPriceKey: (assetAddress: string, chainId: string) => string;
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAGhC,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAC3B,GAAG,CACnD;AAED,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,GAAG,SAAS,EAC3B,kBAAiB,MAAuB,KACvC,MAAM,EAIR,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA6B,KAC5B,MAAM,EAIR,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA0C,KACzC,MAAM,EAMR,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAA8B,KAC7B,MAAM,EAMR,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,GAAG,SAAS,EAC3B,wBAAsC,KACrC,MAAM,EAIR,CAAC;AAEF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,OAIf;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAGR;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GACF,GAAG,CACvE;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,WAEpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,cAAc,MAAM,EAAE,SAAS,MAAM,WAEtE,CAAC"}
|
package/dist/assets/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_STYLE_TOKENS, ASSET_META, COMPOUND_STYLE_RESERVE_ASSETS, COMPOUND_V2_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS } from "@1delta/asset-registry";
|
|
1
|
+
import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_STYLE_TOKENS, ASSET_META, COMPOUND_STYLE_RESERVE_ASSETS, COMPOUND_V2_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, } from "@1delta/asset-registry";
|
|
2
2
|
import { isAaveType, isCompoundV3, isInit, isSwaylend } from "../utils";
|
|
3
3
|
/** No specific configuration */
|
|
4
4
|
export const LENDER_MODE_NO_MODE = 0;
|
|
@@ -17,12 +17,12 @@ export const getInitAssets = (chainId, lendingProtocol = Lender.INIT) => {
|
|
|
17
17
|
};
|
|
18
18
|
export const getCompoundV3Assets = (chainId, lendingProtocol = Lender.COMPOUND_V3_USDCE) => {
|
|
19
19
|
if (isCompoundV3(lendingProtocol))
|
|
20
|
-
return COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? [];
|
|
20
|
+
return (COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? []);
|
|
21
21
|
return [];
|
|
22
22
|
};
|
|
23
23
|
export const getCompoundV2Assets = (chainId, lendingProtocol = Lender.VENUS) => {
|
|
24
24
|
if (isCompoundV3(lendingProtocol))
|
|
25
|
-
return COMPOUND_V2_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? [];
|
|
25
|
+
return (COMPOUND_V2_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? "0"] ?? []);
|
|
26
26
|
return [];
|
|
27
27
|
};
|
|
28
28
|
export const getSwaylendAssets = (chainId, lendingProtocol = Lender.SWAYLEND_USDC) => {
|
|
@@ -42,12 +42,12 @@ export function getAssetMeta(chainId, asset) {
|
|
|
42
42
|
return ASSET_META[chainId ?? "0"]?.[asset?.toLowerCase() ?? ""];
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
* Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
|
|
46
|
-
* @param a string
|
|
47
|
-
* @returns SupportedAsset
|
|
48
|
-
*/
|
|
45
|
+
* Convert a string (asset symbol) to a Supported asset, considering also naming conflicts
|
|
46
|
+
* @param a string
|
|
47
|
+
* @returns SupportedAsset
|
|
48
|
+
*/
|
|
49
49
|
export const toOracleKey = (a) => {
|
|
50
|
-
return a
|
|
50
|
+
return a;
|
|
51
51
|
};
|
|
52
52
|
export const toGenericPriceKey = (assetAddress, chainId) => {
|
|
53
53
|
return chainId + "-" + assetAddress;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface LiquidityThresholds {
|
|
2
|
+
/** Minimum total deposits in USD */
|
|
3
|
+
minDepositsUSD: number;
|
|
4
|
+
/** Minimum total debt/borrows in USD */
|
|
5
|
+
minDebtUSD: number;
|
|
6
|
+
/** Minimum total liquidity in USD */
|
|
7
|
+
minLiquidityUSD: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const DEFAULT_LIQUIDITY_THRESHOLDS: LiquidityThresholds;
|
|
10
|
+
export declare const ASSET_GROUP_LIQUIDITY_THRESHOLDS: {
|
|
11
|
+
[assetGroup: string]: LiquidityThresholds;
|
|
12
|
+
};
|
|
13
|
+
export declare const CHAIN_THRESHOLD_MULTIPLIERS: {
|
|
14
|
+
[chainId: string]: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Asset based overrides (per chain)
|
|
18
|
+
* assetKey format: "chainId-assetAddress" (lowercase)
|
|
19
|
+
*/
|
|
20
|
+
export declare const ASSET_SPECIFIC_THRESHOLDS: {
|
|
21
|
+
[assetKey: string]: LiquidityThresholds;
|
|
22
|
+
};
|
|
23
|
+
export declare function getLiquidityThresholds(chainId: string, assetAddress: string, assetGroup?: string): LiquidityThresholds;
|
|
24
|
+
export declare function meetsLiquidityThresholds(pool: {
|
|
25
|
+
totalDepositsUSD: number;
|
|
26
|
+
totalDebtUSD: number;
|
|
27
|
+
totalLiquidityUSD: number;
|
|
28
|
+
}, thresholds: LiquidityThresholds): boolean;
|
|
29
|
+
//# sourceMappingURL=liquidityThresholds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidityThresholds.d.ts","sourceRoot":"","sources":["../../src/assets/liquidityThresholds.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,4BAA4B,EAAE,mBAI1C,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE;IAAE,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAMzF,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAWpE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAEhF,CAAC;AAKF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAC,MAAM,GACjB,mBAAmB,CAkBrB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EACnF,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAMT"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Chain } from "@1delta/asset-registry";
|
|
2
|
+
export const DEFAULT_LIQUIDITY_THRESHOLDS = {
|
|
3
|
+
minDepositsUSD: 50_000,
|
|
4
|
+
minDebtUSD: 10_000,
|
|
5
|
+
minLiquidityUSD: 25_000,
|
|
6
|
+
};
|
|
7
|
+
export const ASSET_GROUP_LIQUIDITY_THRESHOLDS = {
|
|
8
|
+
'USDC': {
|
|
9
|
+
minDepositsUSD: 25_000,
|
|
10
|
+
minDebtUSD: 5_000,
|
|
11
|
+
minLiquidityUSD: 15_000,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export const CHAIN_THRESHOLD_MULTIPLIERS = {
|
|
15
|
+
[Chain.POLYGON_MAINNET]: 1.0,
|
|
16
|
+
[Chain.ARBITRUM_ONE]: 1.0,
|
|
17
|
+
[Chain.OP_MAINNET]: 1.0,
|
|
18
|
+
[Chain.BASE]: 1.0,
|
|
19
|
+
[Chain.MANTLE]: 0.8,
|
|
20
|
+
[Chain.LINEA]: 0.8,
|
|
21
|
+
[Chain.ZKSYNC_MAINNET]: 0.8,
|
|
22
|
+
[Chain.SCROLL]: 0.8,
|
|
23
|
+
[Chain.TAIKO_ALETHIA]: 0.6,
|
|
24
|
+
[Chain.HEMI_NETWORK]: 0.6,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Asset based overrides (per chain)
|
|
28
|
+
* assetKey format: "chainId-assetAddress" (lowercase)
|
|
29
|
+
*/
|
|
30
|
+
export const ASSET_SPECIFIC_THRESHOLDS = {};
|
|
31
|
+
export function getLiquidityThresholds(chainId, assetAddress, assetGroup) {
|
|
32
|
+
// Check for asset overrides
|
|
33
|
+
const assetKey = `${chainId}-${assetAddress.toLowerCase()}`;
|
|
34
|
+
if (ASSET_SPECIFIC_THRESHOLDS[assetKey]) {
|
|
35
|
+
return ASSET_SPECIFIC_THRESHOLDS[assetKey];
|
|
36
|
+
}
|
|
37
|
+
let baseThresholds = assetGroup && ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]
|
|
38
|
+
? ASSET_GROUP_LIQUIDITY_THRESHOLDS[assetGroup]
|
|
39
|
+
: DEFAULT_LIQUIDITY_THRESHOLDS;
|
|
40
|
+
const chainMultiplier = CHAIN_THRESHOLD_MULTIPLIERS[chainId] ?? 1.0;
|
|
41
|
+
return {
|
|
42
|
+
minDepositsUSD: Math.floor(baseThresholds.minDepositsUSD * chainMultiplier),
|
|
43
|
+
minDebtUSD: Math.floor(baseThresholds.minDebtUSD * chainMultiplier),
|
|
44
|
+
minLiquidityUSD: Math.floor(baseThresholds.minLiquidityUSD * chainMultiplier),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function meetsLiquidityThresholds(pool, thresholds) {
|
|
48
|
+
return (pool.totalDepositsUSD >= thresholds.minDepositsUSD &&
|
|
49
|
+
pool.totalDebtUSD >= thresholds.minDebtUSD &&
|
|
50
|
+
pool.totalLiquidityUSD >= thresholds.minLiquidityUSD);
|
|
51
|
+
}
|
|
@@ -27,7 +27,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
|
|
|
27
27
|
const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
|
|
28
28
|
const liquidity = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals);
|
|
29
29
|
const totalAToken = Number(liquidity) + Number(totalStableDebt) + Number(totalVariableDebt);
|
|
30
|
-
const oracleKey = toOracleKey(assetMeta?.
|
|
30
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
31
31
|
const price = prices[oracleKey] ?? 1;
|
|
32
32
|
const totalDepositsUSD = totalAToken * price;
|
|
33
33
|
const totalDebtUSD = Number(totalVariableDebt) * price;
|
|
@@ -116,7 +116,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
|
|
|
116
116
|
const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
|
|
117
117
|
const liquidity = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals);
|
|
118
118
|
const totalAToken = Number(liquidity) + Number(totalStableDebt) + Number(totalVariableDebt);
|
|
119
|
-
const oracleKey = toOracleKey(assetMeta?.
|
|
119
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
120
120
|
const price = prices?.[oracleKey] ?? 1;
|
|
121
121
|
const totalDepositsUSD = totalAToken * price;
|
|
122
122
|
const totalDebtUSD = Number(totalVariableDebt) * price;
|
|
@@ -193,7 +193,7 @@ export const getAaveV2ReservesDataConverter = (lender, chainId, prices, addition
|
|
|
193
193
|
const totalVariableDebt = parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.totalVariableDebt]?.toString(), decimals);
|
|
194
194
|
const liquidity = Number(parseRawAmount(reserveData?.[AaveV2TypeGetReserveDataIndexes.availableLiquidity]?.toString(), decimals));
|
|
195
195
|
const totalAToken = liquidity + Number(totalStableDebt) + Number(totalVariableDebt);
|
|
196
|
-
const oracleKey = toOracleKey(assetMeta?.
|
|
196
|
+
const oracleKey = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId);
|
|
197
197
|
const price = prices[oracleKey] ?? 1;
|
|
198
198
|
const totalDepositsUSD = Number(totalAToken) * price;
|
|
199
199
|
const totalDebtUSD = Number(totalVariableDebt) * price;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Lender } from
|
|
1
|
+
import { Lender } from "@1delta/asset-registry";
|
|
2
2
|
export declare function getCompoundV3CometAddress(chainId: string, lender?: Lender): string | undefined;
|
|
3
3
|
export declare function getCompoundV3CometRewardsAddress(chainId: string): any;
|
|
4
4
|
export declare function getCompoundV3CometIRGetterAddress(chainId: string): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compoundV3.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/compoundV3.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"compoundV3.d.ts","sourceRoot":"","sources":["../../../src/lending/addresses/compoundV3.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,SAA2B,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,OAG/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,OAGhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,OAGrD;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,MAAM;;;EAMhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Chain, COMETS_PER_CHAIN_MAP, COMPOUND_BASE_TOKENS, Lender, SWAYLEND_BASE_TOKENS } from
|
|
1
|
+
import { Chain, COMETS_PER_CHAIN_MAP, COMPOUND_BASE_TOKENS, Lender, SWAYLEND_BASE_TOKENS, } from "@1delta/asset-registry";
|
|
2
2
|
export function getCompoundV3CometAddress(chainId, lender = Lender.COMPOUND_V3_USDCE) {
|
|
3
3
|
return COMETS_PER_CHAIN_MAP[chainId]?.[lender];
|
|
4
4
|
}
|
|
@@ -16,20 +16,21 @@ export function getCompoundV3CometLens(chainId) {
|
|
|
16
16
|
}
|
|
17
17
|
const addressesCompoundV3 = {
|
|
18
18
|
lens: {
|
|
19
|
-
[Chain.POLYGON_MAINNET]:
|
|
20
|
-
[Chain.MANTLE]:
|
|
21
|
-
[Chain.ARBITRUM_ONE]:
|
|
19
|
+
[Chain.POLYGON_MAINNET]: "0x4eDA401658c5286d16c4d342884F32280B4E8b1b",
|
|
20
|
+
[Chain.MANTLE]: "0x32B31A066c8dd3F7b77283Ba1d89Ddaf6DA0a8aE",
|
|
21
|
+
[Chain.ARBITRUM_ONE]: "0x13D9c35f4901491Ac4FFebd3100238BBfFBD7181",
|
|
22
22
|
[Chain.BASE]: "0x7e2D250E4FD0EeD6BD2cB3DC525A2b9f12508152",
|
|
23
23
|
[Chain.OP_MAINNET]: "0xA453ba397c61B0c292EA3959A858821145B2707F",
|
|
24
24
|
},
|
|
25
25
|
cometRewards: {
|
|
26
26
|
[Chain.POLYGON_MAINNET]: "0x45939657d1CA34A8FA39A924B71D28Fe8431e581",
|
|
27
27
|
[Chain.MANTLE]: "0xCd83CbBFCE149d141A5171C3D6a0F0fCCeE225Ab",
|
|
28
|
-
[Chain.ARBITRUM_ONE]:
|
|
28
|
+
[Chain.ARBITRUM_ONE]: "0x88730d254A2f7e6AC8388c3198aFd694bA9f7fae",
|
|
29
29
|
[Chain.BASE]: "0x123964802e6ABabBE1Bc9547D72Ef1B69B00A6b1",
|
|
30
30
|
[Chain.OP_MAINNET]: "0x443EA0340cb75a160F31A440722dec7b5bc3C2E9",
|
|
31
|
-
}
|
|
31
|
+
},
|
|
32
32
|
};
|
|
33
33
|
export function getCompoundV3BaseAsset(lender, chainId) {
|
|
34
|
-
return COMPOUND_BASE_TOKENS[lender]?.[chainId] ??
|
|
34
|
+
return (COMPOUND_BASE_TOKENS[lender]?.[chainId] ??
|
|
35
|
+
SWAYLEND_BASE_TOKENS[lender]?.[chainId]);
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAmB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAiG1F,CAAA"}
|
|
@@ -1,31 +1,13 @@
|
|
|
1
1
|
import { Lender } from "@1delta/asset-registry";
|
|
2
2
|
import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets";
|
|
3
3
|
import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses";
|
|
4
|
-
|
|
5
|
-
const fallbackDebtToken = '0x52A1CeB68Ee6b7B5D13E0376A1E0E4423A8cE26e';
|
|
6
|
-
const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery, aaveTokenMap) => {
|
|
7
|
-
const broker = getComposerAddress(chainId);
|
|
4
|
+
const getBaseAaveV2Calls = (chainId, account, lender, assetsToQuery) => {
|
|
8
5
|
return assetsToQuery.flatMap((tk) => [
|
|
9
6
|
{
|
|
10
7
|
address: getAaveTypePoolDataProviderAddress(chainId, lender),
|
|
11
8
|
name: 'getUserReserveData',
|
|
12
9
|
params: [tk, account],
|
|
13
10
|
},
|
|
14
|
-
{
|
|
15
|
-
address: aaveTokenMap[tk].aToken,
|
|
16
|
-
name: 'allowance',
|
|
17
|
-
params: [account, broker],
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
address: aaveTokenMap[tk].vToken ?? fallbackDebtToken,
|
|
21
|
-
name: 'borrowAllowance',
|
|
22
|
-
params: [account, broker],
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
address: aaveTokenMap[tk].sToken ?? fallbackDebtToken,
|
|
26
|
-
name: 'borrowAllowance',
|
|
27
|
-
params: [account, broker],
|
|
28
|
-
},
|
|
29
11
|
]);
|
|
30
12
|
};
|
|
31
13
|
export const buildAaveV2UserCall = (chainId, lender, account) => {
|
|
@@ -37,7 +19,7 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
|
|
|
37
19
|
const aTokens = Object.values(aaveTokenMap).map((a) => a.aToken);
|
|
38
20
|
const vTokens = Object.values(aaveTokenMap).map((a) => a.vToken);
|
|
39
21
|
return [
|
|
40
|
-
...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery
|
|
22
|
+
...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
|
|
41
23
|
{
|
|
42
24
|
address: rewarder,
|
|
43
25
|
name: 'getAllUserRewardsBalance',
|
|
@@ -92,15 +74,14 @@ export const buildAaveV2UserCall = (chainId, lender, account) => {
|
|
|
92
74
|
};
|
|
93
75
|
}
|
|
94
76
|
return [
|
|
95
|
-
...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery
|
|
77
|
+
...getBaseAaveV2Calls(chainId, account, lender, assetsToQuery),
|
|
96
78
|
rewardsBalance,
|
|
97
79
|
unclaimedRewards
|
|
98
80
|
];
|
|
99
81
|
}
|
|
100
82
|
default: {
|
|
101
83
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
102
|
-
|
|
103
|
-
return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery, aaveTokenMap);
|
|
84
|
+
return getBaseAaveV2Calls(chainId, account, lender, assetsToQuery);
|
|
104
85
|
}
|
|
105
86
|
}
|
|
106
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAgC,yBAAyB,EAAmB,MAAM,UAAU,CAAA;AAQnG,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v2-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAgC,yBAAyB,EAAmB,MAAM,UAAU,CAAA;AAQnG,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CA0QjE,CAAA"}
|
|
@@ -10,7 +10,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
10
10
|
switch (lender) {
|
|
11
11
|
case Lender.AURELIUS: {
|
|
12
12
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
13
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
13
|
+
const expectedNumberOfCalls = assetsToQuery.length + 1;
|
|
14
14
|
return [
|
|
15
15
|
(data) => {
|
|
16
16
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -22,11 +22,13 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
22
22
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
23
23
|
const asset = assetsToQuery[i];
|
|
24
24
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, 0);
|
|
25
|
+
if (!dataForAsset)
|
|
26
|
+
continue;
|
|
25
27
|
totalDebt24h += addedDebt;
|
|
26
28
|
totalDeposits24h += addedDeposits;
|
|
27
29
|
lendingPositions[asset] = dataForAsset;
|
|
28
30
|
}
|
|
29
|
-
const startIndex = assetsToQuery.length
|
|
31
|
+
const startIndex = assetsToQuery.length;
|
|
30
32
|
const rewardMapping = Object.fromEntries(data[startIndex][0].map((key, index) => [key.toLowerCase(), data[startIndex][1][index]]));
|
|
31
33
|
const rewards = {};
|
|
32
34
|
for (let i = 0; i < AURELIUS_REWARD_ASSETS.length; i++) {
|
|
@@ -54,7 +56,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
54
56
|
}
|
|
55
57
|
case Lender.LENDLE: {
|
|
56
58
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
57
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
59
|
+
const expectedNumberOfCalls = assetsToQuery.length + 2;
|
|
58
60
|
return [
|
|
59
61
|
(data) => {
|
|
60
62
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -77,6 +79,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
77
79
|
const asset = assetsToQuery[i];
|
|
78
80
|
totalClaimableLend += mappedClaimableRewardsToTokens[i][asset];
|
|
79
81
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, mappedClaimableRewardsToTokens[i][asset]);
|
|
82
|
+
if (!dataForAsset)
|
|
83
|
+
continue;
|
|
80
84
|
totalDebt24h += addedDebt;
|
|
81
85
|
totalDeposits24h += addedDeposits;
|
|
82
86
|
lendingPositions[asset] = dataForAsset;
|
|
@@ -102,7 +106,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
102
106
|
}
|
|
103
107
|
case Lender.MERIDIAN: {
|
|
104
108
|
const assetsToQuery = getLenderAssets(chainId, lender);
|
|
105
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
109
|
+
const expectedNumberOfCalls = assetsToQuery.length + 2;
|
|
106
110
|
return [
|
|
107
111
|
(data) => {
|
|
108
112
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -128,6 +132,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
128
132
|
const assetClaimableRewards = mappedClaimableRewardsToTokens[i][asset];
|
|
129
133
|
totalClaimableRewards += assetClaimableRewards;
|
|
130
134
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, assetClaimableRewards);
|
|
135
|
+
if (!dataForAsset)
|
|
136
|
+
continue;
|
|
131
137
|
totalDebt24h += addedDebt;
|
|
132
138
|
totalDeposits24h += addedDeposits;
|
|
133
139
|
lendingPositions[asset] = dataForAsset;
|
|
@@ -154,7 +160,7 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
154
160
|
}
|
|
155
161
|
default: {
|
|
156
162
|
const assetsToQuery = getLenderAssets(chainId, lender);
|
|
157
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
163
|
+
const expectedNumberOfCalls = assetsToQuery.length;
|
|
158
164
|
return [
|
|
159
165
|
(data) => {
|
|
160
166
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -166,6 +172,8 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
166
172
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
167
173
|
const asset = assetsToQuery[i];
|
|
168
174
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, 0);
|
|
175
|
+
if (!dataForAsset)
|
|
176
|
+
continue;
|
|
169
177
|
totalDebt24h += addedDebt;
|
|
170
178
|
totalDeposits24h += addedDeposits;
|
|
171
179
|
lendingPositions[asset] = dataForAsset;
|
|
@@ -188,10 +196,19 @@ export const getAaveV2UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
188
196
|
}
|
|
189
197
|
};
|
|
190
198
|
function createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, claimableRewards) {
|
|
191
|
-
const reserveData = data[i
|
|
199
|
+
const reserveData = data[i];
|
|
192
200
|
const currentATokenBalanceRaw = reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString();
|
|
193
201
|
const currentStableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString();
|
|
194
202
|
const currentVariableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString();
|
|
203
|
+
if (currentATokenBalanceRaw === "0" &&
|
|
204
|
+
currentStableDebtRaw === "0" &&
|
|
205
|
+
currentVariableDebtRaw === "0") {
|
|
206
|
+
return {
|
|
207
|
+
dataForAsset: undefined,
|
|
208
|
+
addedDeposits: 0,
|
|
209
|
+
addedDebt: 0
|
|
210
|
+
};
|
|
211
|
+
}
|
|
195
212
|
const assetMeta = getAssetMeta(chainId, asset);
|
|
196
213
|
const decimals = assetMeta?.decimals ?? 18;
|
|
197
214
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
|
|
@@ -213,10 +230,6 @@ function createAaveV2Entry(i, data, chainId, asset, prices, pricesHist, claimabl
|
|
|
213
230
|
stableBorrowRate: reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),
|
|
214
231
|
collateralActive: Boolean(reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled]),
|
|
215
232
|
claimableRewards,
|
|
216
|
-
// allowances
|
|
217
|
-
allowanceWithdrawal: data[i * 4 + 1]?.toString(),
|
|
218
|
-
allowanceBorrowingVariable: data[i * 4 + 2]?.toString(),
|
|
219
|
-
allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
|
|
220
233
|
};
|
|
221
234
|
return {
|
|
222
235
|
dataForAsset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAuB/C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAG,IAAI,EAuB1F,CAAA"}
|
|
@@ -8,22 +8,7 @@ const getBaseAaveV3Calls = (chainId, account, lender, assetsToQuery, aaveTokenMa
|
|
|
8
8
|
address: getAaveTypePoolDataProviderAddress(chainId, lender),
|
|
9
9
|
name: 'getUserReserveData',
|
|
10
10
|
params: [tk, account],
|
|
11
|
-
}
|
|
12
|
-
{
|
|
13
|
-
address: aaveTokenMap[tk].aToken,
|
|
14
|
-
name: 'allowance',
|
|
15
|
-
params: [account, broker],
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
address: aaveTokenMap[tk].vToken ?? fallbackDebtToken,
|
|
19
|
-
name: 'borrowAllowance',
|
|
20
|
-
params: [account, broker],
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
address: aaveTokenMap[tk].sToken ?? fallbackDebtToken,
|
|
24
|
-
name: 'borrowAllowance',
|
|
25
|
-
params: [account, broker],
|
|
26
|
-
},
|
|
11
|
+
}
|
|
27
12
|
]);
|
|
28
13
|
};
|
|
29
14
|
export const buildAaveV3UserCall = (chainId, lender, account) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,eAAO,MAAM,0BAA0B,GACrC,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAmDjE,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { AaveTypeGetUserReserveIndexes } from "../../aave-v3-type/types";
|
|
|
4
4
|
import { parseRawAmount } from "../../../utils/parsing";
|
|
5
5
|
export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pricesHist, lenderData) => {
|
|
6
6
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
7
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
7
|
+
const expectedNumberOfCalls = assetsToQuery.length + 1;
|
|
8
8
|
return [
|
|
9
9
|
(data) => {
|
|
10
10
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -17,6 +17,8 @@ export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
17
17
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
18
18
|
const asset = assetsToQuery[i];
|
|
19
19
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, asset, prices, pricesHist);
|
|
20
|
+
if (!dataForAsset)
|
|
21
|
+
continue;
|
|
20
22
|
totalDebt24h += addedDebt;
|
|
21
23
|
totalDeposits24h += addedDeposits;
|
|
22
24
|
lendingPositions[asset] = dataForAsset;
|
|
@@ -38,10 +40,19 @@ export const getAaveV3UserDataConverter = (lender, chainId, account, prices, pri
|
|
|
38
40
|
];
|
|
39
41
|
};
|
|
40
42
|
function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
|
|
41
|
-
const reserveData = data[i
|
|
43
|
+
const reserveData = data[i];
|
|
42
44
|
const currentATokenBalanceRaw = reserveData[AaveTypeGetUserReserveIndexes.currentATokenBalance]?.toString();
|
|
43
45
|
const currentStableDebtRaw = reserveData[AaveTypeGetUserReserveIndexes.currentStableDebt]?.toString();
|
|
44
46
|
const currentVariableDebtRaw = reserveData[AaveTypeGetUserReserveIndexes.currentVariableDebt]?.toString();
|
|
47
|
+
if (currentATokenBalanceRaw === "0" &&
|
|
48
|
+
currentStableDebtRaw === "0" &&
|
|
49
|
+
currentVariableDebtRaw === "0") {
|
|
50
|
+
return {
|
|
51
|
+
dataForAsset: undefined,
|
|
52
|
+
addedDeposits: 0,
|
|
53
|
+
addedDebt: 0
|
|
54
|
+
};
|
|
55
|
+
}
|
|
45
56
|
const assetMeta = getAssetMeta(chainId, asset);
|
|
46
57
|
const decimals = assetMeta?.decimals ?? 18;
|
|
47
58
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
|
|
@@ -64,10 +75,6 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
|
|
|
64
75
|
stableBorrowRate: reserveData[AaveTypeGetUserReserveIndexes.stableBorrowRate]?.toString() ?? "0",
|
|
65
76
|
collateralActive: Boolean(reserveData[AaveTypeGetUserReserveIndexes.usageAsCollateralEnabled]),
|
|
66
77
|
claimableRewards: 0,
|
|
67
|
-
// allowances
|
|
68
|
-
allowanceWithdrawal: data[i * 4 + 1]?.toString(),
|
|
69
|
-
allowanceBorrowingVariable: data[i * 4 + 2]?.toString(),
|
|
70
|
-
allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
|
|
71
78
|
};
|
|
72
79
|
return {
|
|
73
80
|
dataForAsset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,sDAAsD;AACtD,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"userCallParseYldr.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/aave-v3-type/userCallParseYldr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAKpD,sDAAsD;AACtD,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,yBAAyB,GAAG,SAAS,EAAE,MAAM,CAkDjE,CAAA"}
|
|
@@ -5,7 +5,7 @@ import { parseRawAmount } from "../../../utils/parsing";
|
|
|
5
5
|
/** Like Aave V3, not stable debt data and no emode */
|
|
6
6
|
export const getYldrUserDataConverter = (lender, chainId, account, prices, pricesHist, lenderData) => {
|
|
7
7
|
const assetsToQuery = getAaveAssets(chainId, lender);
|
|
8
|
-
const expectedNumberOfCalls = assetsToQuery.length
|
|
8
|
+
const expectedNumberOfCalls = assetsToQuery.length;
|
|
9
9
|
return [
|
|
10
10
|
(data) => {
|
|
11
11
|
if (data.length !== expectedNumberOfCalls) {
|
|
@@ -17,6 +17,8 @@ export const getYldrUserDataConverter = (lender, chainId, account, prices, price
|
|
|
17
17
|
for (let i = 0; i < assetsToQuery.length; i++) {
|
|
18
18
|
const asset = assetsToQuery[i];
|
|
19
19
|
const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(i, data, chainId, asset, prices, pricesHist);
|
|
20
|
+
if (!dataForAsset)
|
|
21
|
+
continue;
|
|
20
22
|
totalDebt24h += addedDebt;
|
|
21
23
|
totalDeposits24h += addedDeposits;
|
|
22
24
|
lendingPositions[asset] = dataForAsset;
|
|
@@ -38,9 +40,17 @@ export const getYldrUserDataConverter = (lender, chainId, account, prices, price
|
|
|
38
40
|
];
|
|
39
41
|
};
|
|
40
42
|
function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
|
|
41
|
-
const reserveData = data[i
|
|
43
|
+
const reserveData = data[i];
|
|
42
44
|
const currentATokenBalanceRaw = reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString();
|
|
43
45
|
const currentVariableDebtRaw = reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString();
|
|
46
|
+
if (currentATokenBalanceRaw === "0" &&
|
|
47
|
+
currentVariableDebtRaw === "0") {
|
|
48
|
+
return {
|
|
49
|
+
dataForAsset: undefined,
|
|
50
|
+
addedDeposits: 0,
|
|
51
|
+
addedDebt: 0
|
|
52
|
+
};
|
|
53
|
+
}
|
|
44
54
|
const assetMeta = getAssetMeta(chainId, asset);
|
|
45
55
|
const decimals = assetMeta?.decimals ?? 18;
|
|
46
56
|
const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals);
|
|
@@ -62,10 +72,6 @@ function createAaveV3Entry(i, data, chainId, asset, prices, pricesHist) {
|
|
|
62
72
|
stableBorrowRate: 0,
|
|
63
73
|
collateralActive: Boolean(reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled]),
|
|
64
74
|
claimableRewards: 0,
|
|
65
|
-
// allowances
|
|
66
|
-
allowanceWithdrawal: data[i * 4 + 1]?.toString(),
|
|
67
|
-
allowanceBorrowingVariable: "0",
|
|
68
|
-
allowanceBorrowingStable: data[i * 4 + 3]?.toString(),
|
|
69
75
|
};
|
|
70
76
|
return {
|
|
71
77
|
dataForAsset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/compound-v3/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,SAA2B,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,UAI/D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,UAIhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,UAIrD;AAmBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,MAAM;;;EAMhB"}
|