@1delta/margin-fetcher 0.0.31 → 0.0.33

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.
Files changed (210) hide show
  1. package/dist/abis/oracle/UniV3.d.ts +50 -0
  2. package/dist/abis/oracle/UniV3.d.ts.map +1 -0
  3. package/dist/abis/oracle/UniV3.js +63 -0
  4. package/dist/assets/index.d.ts +3 -8
  5. package/dist/assets/index.d.ts.map +1 -1
  6. package/dist/assets/index.js +12 -30
  7. package/dist/assets/liquidityThresholds.d.ts.map +1 -1
  8. package/dist/assets/liquidityThresholds.js +3 -3
  9. package/dist/flash-liquidity/assets.d.ts.map +1 -1
  10. package/dist/flash-liquidity/assets.js +22 -13
  11. package/dist/flash-liquidity/fetchLiquidity.d.ts +2 -2
  12. package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -1
  13. package/dist/flash-liquidity/fetchLiquidity.js +11 -10
  14. package/dist/flash-liquidity/utils.d.ts +3 -2
  15. package/dist/flash-liquidity/utils.d.ts.map +1 -1
  16. package/dist/flash-liquidity/utils.js +5 -5
  17. package/dist/lending/aave-v2-type/misc.d.ts +1 -1
  18. package/dist/lending/aave-v2-type/misc.d.ts.map +1 -1
  19. package/dist/lending/aave-v2-type/misc.js +7 -3
  20. package/dist/lending/aave-v2-type/publicCallBuild.d.ts +1 -1
  21. package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -1
  22. package/dist/lending/aave-v2-type/publicCallBuild.js +11 -11
  23. package/dist/lending/aave-v2-type/publicCallParse.d.ts +1 -1
  24. package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -1
  25. package/dist/lending/aave-v2-type/publicCallParse.js +5 -5
  26. package/dist/lending/aave-v3-type/publicCallBuild.d.ts +1 -1
  27. package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -1
  28. package/dist/lending/aave-v3-type/publicCallBuild.js +1 -1
  29. package/dist/lending/aave-v3-type/publicCallParse.d.ts +1 -1
  30. package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -1
  31. package/dist/lending/aave-v3-type/publicCallParse.js +5 -14
  32. package/dist/lending/addresses/aave.js +1 -1
  33. package/dist/lending/addresses/aaveV2.js +1 -1
  34. package/dist/lending/addresses/aurelius.js +1 -1
  35. package/dist/lending/addresses/compoundV3.d.ts +1 -1
  36. package/dist/lending/addresses/compoundV3.d.ts.map +1 -1
  37. package/dist/lending/addresses/compoundV3.js +5 -4
  38. package/dist/lending/addresses/contracts.d.ts +1 -1
  39. package/dist/lending/addresses/contracts.d.ts.map +1 -1
  40. package/dist/lending/addresses/contracts.js +1 -1
  41. package/dist/lending/addresses/hana.js +1 -1
  42. package/dist/lending/addresses/init.js +1 -1
  43. package/dist/lending/addresses/lendle.js +1 -1
  44. package/dist/lending/addresses/meridian.js +1 -1
  45. package/dist/lending/addresses/takotako.js +1 -1
  46. package/dist/lending/compound-v3/publicCallBuild.d.ts +1 -1
  47. package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -1
  48. package/dist/lending/compound-v3/publicCallParse.d.ts +1 -1
  49. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
  50. package/dist/lending/compound-v3/publicCallParse.js +3 -9
  51. package/dist/lending/fetchLender.d.ts +1 -1
  52. package/dist/lending/fetchLender.d.ts.map +1 -1
  53. package/dist/lending/fetchLender.js +1 -1
  54. package/dist/lending/fetchLenderAll.d.ts +1 -1
  55. package/dist/lending/fetchLenderAll.d.ts.map +1 -1
  56. package/dist/lending/fetchLenderAll.js +1 -1
  57. package/dist/lending/fetchLenderExt.d.ts +1 -1
  58. package/dist/lending/fetchLenderExt.d.ts.map +1 -1
  59. package/dist/lending/index.d.ts +1 -0
  60. package/dist/lending/index.d.ts.map +1 -1
  61. package/dist/lending/index.js +1 -0
  62. package/dist/lending/init/publicCallBuild.d.ts +1 -1
  63. package/dist/lending/init/publicCallBuild.d.ts.map +1 -1
  64. package/dist/lending/init/publicCallParse.d.ts +4 -4
  65. package/dist/lending/init/publicCallParse.d.ts.map +1 -1
  66. package/dist/lending/init/publicCallParse.js +7 -7
  67. package/dist/lending/meta/index.d.ts +19 -0
  68. package/dist/lending/meta/index.d.ts.map +1 -0
  69. package/dist/lending/meta/index.js +83 -0
  70. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
  71. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +1 -1
  72. package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
  73. package/dist/lending/user-data/aave-v2-type/userCallBuild.js +1 -1
  74. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +2 -2
  75. package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
  76. package/dist/lending/user-data/aave-v2-type/userCallParse.js +44 -38
  77. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +1 -1
  78. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  79. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +1 -1
  80. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
  81. package/dist/lending/user-data/aave-v3-type/userCallParse.js +5 -5
  82. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +2 -2
  83. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
  84. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +15 -15
  85. package/dist/lending/user-data/abis.d.ts +1 -1
  86. package/dist/lending/user-data/abis.d.ts.map +1 -1
  87. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +1 -1
  88. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -1
  89. package/dist/lending/user-data/compound-v3/userCallParse.d.ts +1 -1
  90. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  91. package/dist/lending/user-data/compound-v3/userCallParse.js +4 -4
  92. package/dist/lending/user-data/init/userCallBuild.d.ts +2 -2
  93. package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -1
  94. package/dist/lending/user-data/init/userCallBuild.js +3 -3
  95. package/dist/lending/user-data/init/userCallParse.d.ts +1 -1
  96. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
  97. package/dist/lending/user-data/init/userCallParse.js +4 -4
  98. package/dist/lending/user-data/morpho/userCallBuild.d.ts +1 -1
  99. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  100. package/dist/lending/user-data/morpho/userCallBuild.js +6 -4
  101. package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -1
  102. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  103. package/dist/lending/user-data/morpho/userCallParse.js +5 -5
  104. package/dist/lending/user-data/types.js +1 -1
  105. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
  106. package/dist/lending-pairs/computeLendingPairs.js +6 -6
  107. package/dist/prices/defillama/index.d.ts.map +1 -1
  108. package/dist/prices/defillama/index.js +21 -0
  109. package/dist/prices/main-prices/addresses/api3.js +1 -1
  110. package/dist/prices/main-prices/addresses/chainlink.js +1 -1
  111. package/dist/prices/main-prices/fetchOracleData.d.ts +6 -0
  112. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
  113. package/dist/prices/main-prices/fetchOracleData.js +80 -20
  114. package/dist/types/index.d.ts +8 -2
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/dist/types/index.js +2 -2
  117. package/dist/utils/constants.js +1 -1
  118. package/dist/utils/index.d.ts +2 -2
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +29 -26
  121. package/dist/utils/parsing.d.ts +1 -1
  122. package/dist/utils/parsing.d.ts.map +1 -1
  123. package/dist/utils/parsing.js +9 -8
  124. package/dist/yields/index.d.ts.map +1 -1
  125. package/dist/yields/index.js +7 -3
  126. package/package.json +2 -2
  127. package/src/abis/oracle/UniV3.ts +63 -0
  128. package/src/assets/index.ts +26 -66
  129. package/src/assets/liquidityThresholds.ts +55 -43
  130. package/src/flash-liquidity/assets.ts +68 -44
  131. package/src/flash-liquidity/fetchLiquidity.ts +13 -14
  132. package/src/flash-liquidity/utils.ts +22 -16
  133. package/src/lending/aave-v2-type/misc.ts +7 -3
  134. package/src/lending/aave-v2-type/publicCallBuild.ts +28 -17
  135. package/src/lending/aave-v2-type/publicCallParse.ts +5 -5
  136. package/src/lending/aave-v3-type/publicCallBuild.ts +1 -1
  137. package/src/lending/aave-v3-type/publicCallParse.ts +4 -14
  138. package/src/lending/addresses/aave.ts +1 -1
  139. package/src/lending/addresses/aaveV2.ts +1 -1
  140. package/src/lending/addresses/aurelius.ts +1 -1
  141. package/src/lending/addresses/compoundV3.ts +5 -12
  142. package/src/lending/addresses/contracts.ts +1 -1
  143. package/src/lending/addresses/hana.ts +1 -1
  144. package/src/lending/addresses/init.ts +1 -1
  145. package/src/lending/addresses/lendle.ts +1 -1
  146. package/src/lending/addresses/meridian.ts +1 -1
  147. package/src/lending/addresses/takotako.ts +1 -1
  148. package/src/lending/compound-v3/publicCallBuild.ts +1 -1
  149. package/src/lending/compound-v3/publicCallParse.ts +3 -10
  150. package/src/lending/fetchLender.ts +1 -1
  151. package/src/lending/fetchLenderAll.ts +1 -1
  152. package/src/lending/fetchLenderExt.ts +1 -1
  153. package/src/lending/index.ts +1 -0
  154. package/src/lending/init/publicCallBuild.ts +1 -1
  155. package/src/lending/init/publicCallParse.ts +64 -48
  156. package/src/lending/meta/index.ts +124 -0
  157. package/src/lending/morpho/publicCallBuild.ts +0 -1
  158. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +1 -1
  159. package/src/lending/user-data/aave-v2-type/userCallParse.ts +181 -122
  160. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +1 -1
  161. package/src/lending/user-data/aave-v3-type/userCallParse.ts +7 -8
  162. package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +37 -34
  163. package/src/lending/user-data/abis.ts +1 -1
  164. package/src/lending/user-data/compound-v3/userCallBuild.ts +1 -1
  165. package/src/lending/user-data/compound-v3/userCallParse.ts +4 -6
  166. package/src/lending/user-data/fetchUserData.ts +1 -1
  167. package/src/lending/user-data/init/userCallBuild.ts +11 -7
  168. package/src/lending/user-data/init/userCallParse.ts +5 -5
  169. package/src/lending/user-data/morpho/userCallBuild.ts +7 -4
  170. package/src/lending/user-data/morpho/userCallParse.ts +8 -5
  171. package/src/lending/user-data/types.ts +1 -1
  172. package/src/lending-pairs/computeLendingPairs.ts +6 -12
  173. package/src/prices/defillama/index.ts +24 -0
  174. package/src/prices/main-prices/addresses/api3.ts +1 -1
  175. package/src/prices/main-prices/addresses/chainlink.ts +1 -1
  176. package/src/prices/main-prices/fetchOracleData.ts +118 -20
  177. package/src/types/index.ts +10 -4
  178. package/src/utils/constants.ts +1 -1
  179. package/src/utils/index.ts +48 -39
  180. package/src/utils/parsing.ts +37 -35
  181. package/src/yields/index.ts +7 -3
  182. package/test/flashLiquidity.test.ts +6 -6
  183. package/test/index.test.ts +1 -1
  184. package/test/lenderData.test.ts +10 -11
  185. package/test/lenderDataBasic.test.ts +1 -1
  186. package/test/mainPriceMB.test.ts +1 -1
  187. package/test/mainPrices.test.ts +16 -15
  188. package/test/morpho.test.ts +1 -1
  189. package/test/morphoPrice.test.ts +1 -1
  190. package/test/userData.test.ts +2 -1
  191. package/test/userDataAave.test.ts +1 -1
  192. package/test/userDataAaveMainnet.test.ts +1 -1
  193. package/test/userDataAll.test.ts +2 -1
  194. package/test/userDataCompound.test.ts +2 -1
  195. package/test/userDataMorpho.test.ts +2 -1
  196. package/test/userDataMorphoEthereum.test.ts +2 -1
  197. package/test/userDataMorphoKatana.test.ts +2 -1
  198. package/test/utils.ts +11 -1
  199. package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts +0 -11
  200. package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts.map +0 -1
  201. package/dist/lending/user-data/morpho/userCallParseNoDeploy.js +0 -112
  202. package/dist/prices/main-prices/addresses/aaveOracles.d.ts +0 -300
  203. package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +0 -1
  204. package/dist/prices/main-prices/addresses/aaveOracles.js +0 -299
  205. package/dist/prices/main-prices/addresses/morpho.d.ts +0 -11
  206. package/dist/prices/main-prices/addresses/morpho.d.ts.map +0 -1
  207. package/dist/prices/main-prices/addresses/morpho.js +0 -2554
  208. package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +0 -168
  209. package/src/prices/main-prices/addresses/aaveOracles.ts +0 -299
  210. package/src/prices/main-prices/addresses/morpho.ts +0 -2563
@@ -0,0 +1,124 @@
1
+ import { initializeChainData, initializeLenderData } from '@1delta/data-sdk'
2
+
3
+ const baseUrl =
4
+ 'https://raw.githubusercontent.com/1delta-DAO/lender-metadata/multi-fetch'
5
+ const aavePools = baseUrl + '/config/aave-pools.json'
6
+ const aaveOracles = baseUrl + '/data/aave-oracles.json'
7
+ const morphoOracles = baseUrl + '/data/morpho-oracles.json'
8
+ const compoundV2Pools = baseUrl + '/config/compound-v2-pools.json'
9
+ const compoundV3Pools = baseUrl + '/config/compound-v3-pools.json'
10
+ // const initPools = baseUrl + '/config/init-pools.json'
11
+ const morphoPools = baseUrl + '/config/morpho-pools.json'
12
+
13
+ const aaveReserves = baseUrl + '/data/aave-reserves.json'
14
+ const compoundV2Reserves = baseUrl + '/data/compound-v2-reserves.json'
15
+ const compoundV3Reserves = baseUrl + '/data/compound-v3-reserves.json'
16
+ const initConfig = baseUrl + '/data/init-config.json'
17
+ const aaveTokens = baseUrl + '/data/aave-tokens.json'
18
+ const compoundV2CTokens = baseUrl + '/data/compound-v2-c-tokens.json'
19
+ const compoundV3Base = baseUrl + '/data/compound-v3-base-data.json'
20
+ const baseUrlChains = 'https://raw.githubusercontent.com/1delta-DAO/chains/main'
21
+
22
+ const chains = baseUrlChains + '/data.json'
23
+
24
+ export function inititalizeAllData(params: any) {
25
+ const { chainsOverride, ...lenderOverrides } = params
26
+
27
+ initializeLenderData(lenderOverrides)
28
+
29
+ initializeChainData({ chainsOverride })
30
+ }
31
+
32
+ export async function fetchLenderMetaFromDirAndInitialize() {
33
+ const {
34
+ aavePoolsOverride,
35
+ compoundV2PoolsOverride,
36
+ compoundV3PoolsOverride,
37
+ // initPoolsOverride,
38
+ morphoPoolsOverride,
39
+ aaveReservesOverride,
40
+ compoundV2ReservesOverride,
41
+ compoundV3ReservesOverride,
42
+ initConfigOverride,
43
+ aaveTokensOverride,
44
+ compoundV2TokensOverride,
45
+ compoundV3BaseDataOverride,
46
+ aaveOraclesOverride,
47
+ morphoOraclesOverride,
48
+ chainsOverride,
49
+ } = await fetchLenderMetaFromDir()
50
+
51
+ initializeLenderData({
52
+ aaveTokensOverride,
53
+ aavePoolsOverride,
54
+ compoundV3PoolsOverride,
55
+ compoundV3BaseDataOverride,
56
+ morphoPoolsOverride,
57
+ compoundV2TokensOverride,
58
+ compoundV2PoolsOverride,
59
+ initConfigOverride,
60
+ aaveReservesOverride,
61
+ compoundV3ReservesOverride,
62
+ compoundV2ReservesOverride,
63
+ aaveOraclesOverride,
64
+ morphoOraclesOverride,
65
+ })
66
+
67
+ initializeChainData({ chainsOverride })
68
+ }
69
+
70
+ export async function fetchLenderMetaFromDir() {
71
+ const promises = [
72
+ aavePools,
73
+ compoundV2Pools,
74
+ compoundV3Pools,
75
+ // initPools,
76
+ morphoPools,
77
+ aaveReserves,
78
+ compoundV2Reserves,
79
+ compoundV3Reserves,
80
+ initConfig,
81
+ aaveTokens,
82
+ compoundV2CTokens,
83
+ compoundV3Base,
84
+ aaveOracles,
85
+ morphoOracles,
86
+ chains,
87
+ ].map(async (a) => fetch(a).then(async (b) => await b.json()))
88
+
89
+ const [
90
+ aavePoolsOverride,
91
+ compoundV2PoolsOverride,
92
+ compoundV3PoolsOverride,
93
+ // initPoolsOverride,
94
+ morphoPoolsOverride,
95
+ aaveReservesOverride,
96
+ compoundV2ReservesOverride,
97
+ compoundV3ReservesOverride,
98
+ initConfigOverride,
99
+ aaveTokensOverride,
100
+ compoundV2TokensOverride,
101
+ compoundV3BaseDataOverride,
102
+ aaveOraclesOverride,
103
+ morphoOraclesOverride,
104
+ chainsOverride,
105
+ ] = await Promise.all(promises)
106
+
107
+ return {
108
+ aavePoolsOverride,
109
+ compoundV2PoolsOverride,
110
+ compoundV3PoolsOverride,
111
+ // initPoolsOverride,
112
+ morphoPoolsOverride,
113
+ aaveReservesOverride,
114
+ compoundV2ReservesOverride,
115
+ compoundV3ReservesOverride,
116
+ initConfigOverride,
117
+ aaveTokensOverride,
118
+ compoundV2TokensOverride,
119
+ compoundV3BaseDataOverride,
120
+ aaveOraclesOverride,
121
+ morphoOraclesOverride,
122
+ chainsOverride,
123
+ }
124
+ }
@@ -1,4 +1,3 @@
1
- import { Chain } from '@1delta/asset-registry'
2
1
  import { AdditionalYields } from '../../types'
3
2
  import { convertMarketsToMorphoResponse } from './convertPublic'
4
3
  import { fetchMorphoMarkets } from './fetchPublic'
@@ -1,5 +1,5 @@
1
1
  import { Call } from "../../../utils/multicall"
2
- import { Lender } from "@1delta/asset-registry"
2
+ import { Lender } from '@1delta/lender-registry'
3
3
  import { getAaveAssets, getAaveStyleProtocolTokenMap, getAaveTypePoolDataProviderAddress } from "../../../assets"
4
4
  import { getAaveTypeIncentivesControllerAddress, getAaveTypeMultiFeeDistribution } from "../../addresses"
5
5
 
@@ -1,11 +1,14 @@
1
- import { Lender } from "@1delta/asset-registry"
2
- import { getAaveAssets, getAssetMeta, toGenericPriceKey, toOracleKey } from "../../../assets"
3
- import { AaveV2TypeGetUserReserveData, AaveV2UserReserveResponse, UserRewardEntry } from "../types"
4
- import { AURELIUS_REWARD_ASSETS } from "../../aave-v2-type/misc"
5
- import { getLenderAssets } from "../../../utils"
6
- import { createBaseTypeUserState } from "../utils"
7
- import { parseRawAmount } from "../../../utils/parsing"
8
-
1
+ import { Lender } from '@1delta/lender-registry'
2
+ import { toGenericPriceKey, toOracleKey } from '../../../assets'
3
+ import {
4
+ AaveV2TypeGetUserReserveData,
5
+ AaveV2UserReserveResponse,
6
+ UserRewardEntry,
7
+ } from '../types'
8
+ import { AURELIUS_REWARD_ASSETS } from '../../aave-v2-type/misc'
9
+ import { createBaseTypeUserState } from '../utils'
10
+ import { parseRawAmount } from '../../../utils/parsing'
11
+ import { GenericCurrency } from '../../types'
9
12
 
10
13
  export const getAaveV2UserDataConverter = (
11
14
  lender: Lender,
@@ -13,11 +16,11 @@ export const getAaveV2UserDataConverter = (
13
16
  account: string,
14
17
  prices: { [asset: string]: number },
15
18
  pricesHist: { [asset: string]: number },
16
- lenderData: any
19
+ lenderData: any,
17
20
  ): [(data: any[]) => AaveV2UserReserveResponse | undefined, number] => {
18
21
  switch (lender) {
19
22
  case Lender.AURELIUS: {
20
- const assetsToQuery = getAaveAssets(chainId, lender)
23
+ const assetsToQuery = Object.keys(lenderData)
21
24
  const expectedNumberOfCalls = assetsToQuery.length + 1
22
25
  return [
23
26
  (data: any[]) => {
@@ -32,20 +35,17 @@ export const getAaveV2UserDataConverter = (
32
35
 
33
36
  for (let i = 0; i < assetsToQuery.length; i++) {
34
37
  const asset = assetsToQuery[i]
35
- const {
36
- dataForAsset,
37
- addedDebt,
38
- addedDeposits
39
- } = createAaveV2Entry(
40
- i,
41
- data,
42
- chainId,
43
- asset,
44
- prices,
45
- pricesHist,
46
- 0,
47
- )
48
- if(!dataForAsset) continue;
38
+ const { dataForAsset, addedDebt, addedDeposits } =
39
+ createAaveV2Entry(
40
+ i,
41
+ data,
42
+ chainId,
43
+ lenderData[asset].asset,
44
+ prices,
45
+ pricesHist,
46
+ 0,
47
+ )
48
+ if (!dataForAsset) continue
49
49
 
50
50
  totalDebt24h += addedDebt
51
51
  totalDeposits24h += addedDeposits
@@ -53,24 +53,39 @@ export const getAaveV2UserDataConverter = (
53
53
  }
54
54
 
55
55
  const startIndex = assetsToQuery.length
56
- const rewardMapping = Object.fromEntries(data[startIndex][0].map((key: string, index: number) => [key.toLowerCase(), data[startIndex][1][index]]))
56
+ const rewardMapping = Object.fromEntries(
57
+ data[startIndex][0].map((key: string, index: number) => [
58
+ key.toLowerCase(),
59
+ data[startIndex][1][index],
60
+ ]),
61
+ )
57
62
  const rewards: UserRewardEntry = {}
58
63
  for (let i = 0; i < AURELIUS_REWARD_ASSETS.length; i++) {
59
64
  const asset = AURELIUS_REWARD_ASSETS[i]
60
- const reward = Number(parseRawAmount(rewardMapping[asset.address.toLowerCase()].toString(), asset.decimals))
65
+ const reward = Number(
66
+ parseRawAmount(
67
+ rewardMapping[asset.address.toLowerCase()].toString(),
68
+ asset.decimals,
69
+ ),
70
+ )
61
71
  rewards[asset.symbol!] = {
62
72
  totalRewards: reward,
63
- claimableRewards: reward
73
+ claimableRewards: reward,
64
74
  }
65
75
  }
66
76
 
67
77
  const payload = {
68
78
  chainId,
69
79
  account,
70
- lendingPositions: { "0": lendingPositions },
71
- rewards
80
+ lendingPositions: { '0': lendingPositions },
81
+ rewards,
72
82
  }
73
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h)
83
+ const userData = createBaseTypeUserState(
84
+ payload,
85
+ lenderData,
86
+ totalDeposits24h,
87
+ totalDebt24h,
88
+ )
74
89
 
75
90
  return {
76
91
  ...payload,
@@ -81,7 +96,7 @@ export const getAaveV2UserDataConverter = (
81
96
  ]
82
97
  }
83
98
  case Lender.LENDLE: {
84
- const assetsToQuery = getAaveAssets(chainId, lender)
99
+ const assetsToQuery = Object.keys(lenderData)
85
100
  const expectedNumberOfCalls = assetsToQuery.length + 2
86
101
 
87
102
  return [
@@ -93,17 +108,28 @@ export const getAaveV2UserDataConverter = (
93
108
  const claimableRewards = data[expectedNumberOfCalls - 2]
94
109
  // map claimable rewards to tokens
95
110
  // foreach asset, we sum the l and v token rewards
96
- const mappedClaimableRewardsToTokens = assetsToQuery.map((name, index) => {
97
- return {
98
- [name]:
99
- Number(parseRawAmount(claimableRewards?.[index * 2]?.toString(), 18)) +
100
- Number(parseRawAmount(claimableRewards?.[index * 2 + 1]?.toString(), 18))
101
- }
102
- })
111
+ const mappedClaimableRewardsToTokens = assetsToQuery.map(
112
+ (name, index) => {
113
+ return {
114
+ [name]:
115
+ Number(
116
+ parseRawAmount(
117
+ claimableRewards?.[index * 2]?.toString(),
118
+ 18,
119
+ ),
120
+ ) +
121
+ Number(
122
+ parseRawAmount(
123
+ claimableRewards?.[index * 2 + 1]?.toString(),
124
+ 18,
125
+ ),
126
+ ),
127
+ }
128
+ },
129
+ )
103
130
 
104
131
  const lendingPositions: { [asset: string]: any } = {}
105
132
 
106
-
107
133
  let totalClaimableLend = 0
108
134
  let totalDebt24h = 0
109
135
  let totalDeposits24h = 0
@@ -111,20 +137,17 @@ export const getAaveV2UserDataConverter = (
111
137
  for (let i = 0; i < assetsToQuery.length; i++) {
112
138
  const asset = assetsToQuery[i]
113
139
  totalClaimableLend += mappedClaimableRewardsToTokens[i][asset]
114
- const {
115
- dataForAsset,
116
- addedDebt,
117
- addedDeposits
118
- } = createAaveV2Entry(
119
- i,
120
- data,
121
- chainId,
122
- asset,
123
- prices,
124
- pricesHist,
125
- mappedClaimableRewardsToTokens[i][asset],
126
- )
127
- if(!dataForAsset) continue;
140
+ const { dataForAsset, addedDebt, addedDeposits } =
141
+ createAaveV2Entry(
142
+ i,
143
+ data,
144
+ chainId,
145
+ lenderData[asset].asset,
146
+ prices,
147
+ pricesHist,
148
+ mappedClaimableRewardsToTokens[i][asset],
149
+ )
150
+ if (!dataForAsset) continue
128
151
  totalDebt24h += addedDebt
129
152
  totalDeposits24h += addedDeposits
130
153
  lendingPositions[asset] = dataForAsset
@@ -133,17 +156,27 @@ export const getAaveV2UserDataConverter = (
133
156
  const rewards: UserRewardEntry = {}
134
157
 
135
158
  const earnedBalances = data[expectedNumberOfCalls - 1]
136
- const lendRewards = Number(parseRawAmount(earnedBalances[0].toString(), 18))
159
+ const lendRewards = Number(
160
+ parseRawAmount(earnedBalances[0].toString(), 18),
161
+ )
137
162
 
138
- rewards["LEND"] = { totalRewards: lendRewards + totalClaimableLend, claimableRewards: totalClaimableLend }
163
+ rewards['LEND'] = {
164
+ totalRewards: lendRewards + totalClaimableLend,
165
+ claimableRewards: totalClaimableLend,
166
+ }
139
167
 
140
168
  const payload = {
141
169
  chainId,
142
170
  account,
143
- lendingPositions: { "0": lendingPositions },
144
- rewards
171
+ lendingPositions: { '0': lendingPositions },
172
+ rewards,
145
173
  }
146
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h)
174
+ const userData = createBaseTypeUserState(
175
+ payload,
176
+ lenderData,
177
+ totalDeposits24h,
178
+ totalDebt24h,
179
+ )
147
180
 
148
181
  return {
149
182
  ...payload,
@@ -154,7 +187,7 @@ export const getAaveV2UserDataConverter = (
154
187
  ]
155
188
  }
156
189
  case Lender.MERIDIAN: {
157
- const assetsToQuery = getLenderAssets(chainId, lender)
190
+ const assetsToQuery = Object.keys(lenderData)
158
191
  const expectedNumberOfCalls = assetsToQuery.length + 2
159
192
 
160
193
  return [
@@ -163,21 +196,34 @@ export const getAaveV2UserDataConverter = (
163
196
  return undefined
164
197
  }
165
198
 
166
-
167
199
  const rewardsBalanceArray = data[expectedNumberOfCalls - 2]
168
200
  const totalUnclaimedRewards = data[expectedNumberOfCalls - 1]
169
201
 
170
- const totalRewards = Number(parseRawAmount(totalUnclaimedRewards.toString(), 18))
202
+ const totalRewards = Number(
203
+ parseRawAmount(totalUnclaimedRewards.toString(), 18),
204
+ )
171
205
 
172
206
  // map claimable rewards to tokens
173
207
  // foreach asset, we sum the l and v token rewards from the rewards balance array
174
- const mappedClaimableRewardsToTokens = assetsToQuery.map((name, index) => {
175
- return {
176
- [name]:
177
- Number(parseRawAmount(rewardsBalanceArray[index * 2]?.toString() || "0", 18)) +
178
- Number(parseRawAmount(rewardsBalanceArray[index * 2 + 1]?.toString() || "0", 18))
179
- }
180
- })
208
+ const mappedClaimableRewardsToTokens = assetsToQuery.map(
209
+ (name, index) => {
210
+ return {
211
+ [name]:
212
+ Number(
213
+ parseRawAmount(
214
+ rewardsBalanceArray[index * 2]?.toString() || '0',
215
+ 18,
216
+ ),
217
+ ) +
218
+ Number(
219
+ parseRawAmount(
220
+ rewardsBalanceArray[index * 2 + 1]?.toString() || '0',
221
+ 18,
222
+ ),
223
+ ),
224
+ }
225
+ },
226
+ )
181
227
 
182
228
  const lendingPositions: { [asset: string]: any } = {}
183
229
  let totalDebt24h = 0
@@ -186,23 +232,21 @@ export const getAaveV2UserDataConverter = (
186
232
 
187
233
  for (let i = 0; i < assetsToQuery.length; i++) {
188
234
  const asset = assetsToQuery[i]
189
- const assetClaimableRewards = mappedClaimableRewardsToTokens[i][asset]
235
+ const assetClaimableRewards =
236
+ mappedClaimableRewardsToTokens[i][asset]
190
237
  totalClaimableRewards += assetClaimableRewards
191
238
 
192
- const {
193
- dataForAsset,
194
- addedDebt,
195
- addedDeposits
196
- } = createAaveV2Entry(
197
- i,
198
- data,
199
- chainId,
200
- asset,
201
- prices,
202
- pricesHist,
203
- assetClaimableRewards,
204
- )
205
- if(!dataForAsset) continue;
239
+ const { dataForAsset, addedDebt, addedDeposits } =
240
+ createAaveV2Entry(
241
+ i,
242
+ data,
243
+ chainId,
244
+ lenderData[asset].asset,
245
+ prices,
246
+ pricesHist,
247
+ assetClaimableRewards,
248
+ )
249
+ if (!dataForAsset) continue
206
250
  totalDebt24h += addedDebt
207
251
  totalDeposits24h += addedDeposits
208
252
  lendingPositions[asset] = dataForAsset
@@ -210,18 +254,23 @@ export const getAaveV2UserDataConverter = (
210
254
 
211
255
  const rewards: UserRewardEntry = {}
212
256
 
213
- rewards["TAIKO"] = {
257
+ rewards['TAIKO'] = {
214
258
  totalRewards,
215
- claimableRewards: totalClaimableRewards
259
+ claimableRewards: totalClaimableRewards,
216
260
  }
217
261
 
218
262
  const payload = {
219
263
  chainId,
220
264
  account,
221
- lendingPositions: { "0": lendingPositions },
222
- rewards
265
+ lendingPositions: { '0': lendingPositions },
266
+ rewards,
223
267
  }
224
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h)
268
+ const userData = createBaseTypeUserState(
269
+ payload,
270
+ lenderData,
271
+ totalDeposits24h,
272
+ totalDebt24h,
273
+ )
225
274
  return {
226
275
  ...payload,
227
276
  ...userData,
@@ -231,7 +280,7 @@ export const getAaveV2UserDataConverter = (
231
280
  ]
232
281
  }
233
282
  default: {
234
- const assetsToQuery = getLenderAssets(chainId, lender)
283
+ const assetsToQuery = Object.keys(lenderData)
235
284
  const expectedNumberOfCalls = assetsToQuery.length
236
285
  return [
237
286
  (data: any[]) => {
@@ -245,20 +294,17 @@ export const getAaveV2UserDataConverter = (
245
294
 
246
295
  for (let i = 0; i < assetsToQuery.length; i++) {
247
296
  const asset = assetsToQuery[i]
248
- const {
249
- dataForAsset,
250
- addedDebt,
251
- addedDeposits
252
- } = createAaveV2Entry(
253
- i,
254
- data,
255
- chainId,
256
- asset,
257
- prices,
258
- pricesHist,
259
- 0,
260
- )
261
- if(!dataForAsset) continue;
297
+ const { dataForAsset, addedDebt, addedDeposits } =
298
+ createAaveV2Entry(
299
+ i,
300
+ data,
301
+ chainId,
302
+ lenderData[asset].asset,
303
+ prices,
304
+ pricesHist,
305
+ 0,
306
+ )
307
+ if (!dataForAsset) continue
262
308
  totalDebt24h += addedDebt
263
309
  totalDeposits24h += addedDeposits
264
310
  lendingPositions[asset] = dataForAsset
@@ -267,10 +313,15 @@ export const getAaveV2UserDataConverter = (
267
313
  const payload = {
268
314
  chainId,
269
315
  account,
270
- lendingPositions: { "0": lendingPositions },
271
- rewards: {}
316
+ lendingPositions: { '0': lendingPositions },
317
+ rewards: {},
272
318
  }
273
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h)
319
+ const userData = createBaseTypeUserState(
320
+ payload,
321
+ lenderData,
322
+ totalDeposits24h,
323
+ totalDebt24h,
324
+ )
274
325
  return {
275
326
  ...payload,
276
327
  ...userData,
@@ -282,39 +333,44 @@ export const getAaveV2UserDataConverter = (
282
333
  }
283
334
  }
284
335
 
285
-
286
336
  function createAaveV2Entry(
287
337
  i: number,
288
338
  data: any[],
289
339
  chainId: string,
290
- asset: string,
340
+ asset: GenericCurrency,
291
341
  prices: any,
292
342
  pricesHist: any,
293
343
  claimableRewards: any,
294
344
  ) {
295
345
  const reserveData = data[i]
296
- const currentATokenBalanceRaw = reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString()
297
- const currentStableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString()
298
- const currentVariableDebtRaw = reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString()
346
+ const currentATokenBalanceRaw =
347
+ reserveData[AaveV2TypeGetUserReserveData.currentATokenBalance]?.toString()
348
+ const currentStableDebtRaw =
349
+ reserveData[AaveV2TypeGetUserReserveData.currentStableDebt]?.toString()
350
+ const currentVariableDebtRaw =
351
+ reserveData[AaveV2TypeGetUserReserveData.currentVariableDebt]?.toString()
299
352
 
300
353
  if (
301
- currentATokenBalanceRaw === "0" &&
302
- currentStableDebtRaw === "0" &&
303
- currentVariableDebtRaw === "0") {
354
+ currentATokenBalanceRaw === '0' &&
355
+ currentStableDebtRaw === '0' &&
356
+ currentVariableDebtRaw === '0'
357
+ ) {
304
358
  return {
305
359
  dataForAsset: undefined,
306
360
  addedDeposits: 0,
307
- addedDebt: 0
361
+ addedDebt: 0,
308
362
  }
309
363
  }
310
364
 
311
- const assetMeta = getAssetMeta(chainId, asset)
365
+ const assetMeta = asset
312
366
  const decimals = assetMeta?.decimals ?? 18
313
367
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
314
368
  const currentStableDebt = parseRawAmount(currentStableDebtRaw, decimals)
315
369
  const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
316
370
 
317
- const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
371
+ const key =
372
+ toOracleKey(assetMeta?.assetGroup) ??
373
+ toGenericPriceKey(asset.address, chainId)
318
374
  const price = prices[key] ?? 1
319
375
  const priceHist = pricesHist?.[key] ?? price
320
376
 
@@ -328,15 +384,18 @@ function createAaveV2Entry(
328
384
  depositsUSD: Number(currentATokenBalance) * price,
329
385
  debtStableUSD: Number(currentStableDebt) * price,
330
386
  debtUSD: Number(currentVariableDebt) * price,
331
- stableBorrowRate: reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),
332
- collateralActive: Boolean(reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled]),
387
+ stableBorrowRate:
388
+ reserveData[AaveV2TypeGetUserReserveData.stableBorrowRate]?.toString(),
389
+ collateralActive: Boolean(
390
+ reserveData[AaveV2TypeGetUserReserveData.usageAsCollateralEnabled],
391
+ ),
333
392
  claimableRewards,
334
-
335
393
  }
336
394
 
337
395
  return {
338
396
  dataForAsset,
339
397
  addedDeposits: Number(currentATokenBalance) * priceHist,
340
- addedDebt: (Number(currentVariableDebt) + Number(currentStableDebt)) * priceHist
398
+ addedDebt:
399
+ (Number(currentVariableDebt) + Number(currentStableDebt)) * priceHist,
341
400
  }
342
- }
401
+ }
@@ -1,4 +1,4 @@
1
- import { Lender } from "@1delta/asset-registry"
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import { Call } from "../../../utils/multicall"
3
3
  import { getAaveAssets, getAaveTypePoolDataProviderAddress, getAaveTypePoolAddress } from "../../../assets"
4
4
  import { isYLDR } from "../../../utils"
@@ -1,7 +1,5 @@
1
- import { Lender } from '@1delta/asset-registry'
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import {
3
- getAaveAssets,
4
- getAssetMeta,
5
3
  toGenericPriceKey,
6
4
  toOracleKey,
7
5
  } from '../../../assets'
@@ -9,6 +7,7 @@ import { AaveV3UserReserveResponse } from '../types'
9
7
  import { createBaseTypeUserState } from '../utils'
10
8
  import { AaveTypeGetUserReserveIndexes } from '../../aave-v3-type/types'
11
9
  import { parseRawAmount } from '../../../utils/parsing'
10
+ import { GenericCurrency } from '../../types'
12
11
 
13
12
  export const getAaveV3UserDataConverter = (
14
13
  lender: Lender,
@@ -18,7 +17,7 @@ export const getAaveV3UserDataConverter = (
18
17
  pricesHist: { [asset: string]: number },
19
18
  lenderData: any,
20
19
  ): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {
21
- const assetsToQuery = getAaveAssets(chainId, lender)
20
+ const assetsToQuery = Object.keys(lenderData)
22
21
  const expectedNumberOfCalls = assetsToQuery.length + 1
23
22
 
24
23
  return [
@@ -39,7 +38,7 @@ export const getAaveV3UserDataConverter = (
39
38
  i,
40
39
  data,
41
40
  chainId,
42
- asset,
41
+ lenderData[asset].asset,
43
42
  prices,
44
43
  pricesHist,
45
44
  )
@@ -76,7 +75,7 @@ function createAaveV3Entry(
76
75
  i: number,
77
76
  data: any[],
78
77
  chainId: string,
79
- asset: string,
78
+ asset: GenericCurrency,
80
79
  prices: any,
81
80
  pricesHist: any,
82
81
  ) {
@@ -101,7 +100,7 @@ function createAaveV3Entry(
101
100
  }
102
101
  }
103
102
 
104
- const assetMeta = getAssetMeta(chainId, asset)
103
+ const assetMeta = asset
105
104
  const decimals = assetMeta?.decimals ?? 18
106
105
 
107
106
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
@@ -109,7 +108,7 @@ function createAaveV3Entry(
109
108
  const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
110
109
 
111
110
  const key =
112
- toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
111
+ toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset.address, chainId)
113
112
  // prices
114
113
  const price = prices[key] ?? 1
115
114
  const priceHist = pricesHist?.[key] ?? price