@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
@@ -1,9 +1,10 @@
1
- import { Lender } from "@1delta/asset-registry"
2
- import { getAaveAssets, getAssetMeta, toGenericPriceKey, toOracleKey } from "../../../assets"
3
- import { AaveV3UserReserveResponse } from "../types"
4
- import { createBaseTypeUserState } from "../utils"
5
- import { YldrTypeGetUserReserveIndexes } from "../../aave-v3-type/types"
6
- import { parseRawAmount } from "../../../utils/parsing"
1
+ import { Lender } from '@1delta/lender-registry'
2
+ import { toGenericPriceKey, toOracleKey } from '../../../assets'
3
+ import { AaveV3UserReserveResponse } from '../types'
4
+ import { createBaseTypeUserState } from '../utils'
5
+ import { YldrTypeGetUserReserveIndexes } from '../../aave-v3-type/types'
6
+ import { parseRawAmount } from '../../../utils/parsing'
7
+ import { GenericCurrency } from '../../types'
7
8
 
8
9
  /** Like Aave V3, not stable debt data and no emode */
9
10
  export const getYldrUserDataConverter = (
@@ -12,10 +13,9 @@ export const getYldrUserDataConverter = (
12
13
  account: string,
13
14
  prices: { [asset: string]: number },
14
15
  pricesHist: { [asset: string]: number },
15
- lenderData: any
16
+ lenderData: any,
16
17
  ): [(data: any[]) => AaveV3UserReserveResponse | undefined, number] => {
17
-
18
- const assetsToQuery = getAaveAssets(chainId, lender)
18
+ const assetsToQuery = Object.keys(lenderData)
19
19
  const expectedNumberOfCalls = assetsToQuery.length
20
20
  return [
21
21
  (data: any[]) => {
@@ -29,19 +29,15 @@ export const getYldrUserDataConverter = (
29
29
 
30
30
  for (let i = 0; i < assetsToQuery.length; i++) {
31
31
  const asset = assetsToQuery[i]
32
- const {
33
- dataForAsset,
34
- addedDebt,
35
- addedDeposits
36
- } = createAaveV3Entry(
32
+ const { dataForAsset, addedDebt, addedDeposits } = createAaveV3Entry(
37
33
  i,
38
34
  data,
39
35
  chainId,
40
- asset,
36
+ lenderData[asset].asset``,
41
37
  prices,
42
38
  pricesHist,
43
39
  )
44
- if (!dataForAsset) continue;
40
+ if (!dataForAsset) continue
45
41
  totalDebt24h += addedDebt
46
42
  totalDeposits24h += addedDeposits
47
43
  lendingPositions[asset] = dataForAsset
@@ -50,15 +46,20 @@ export const getYldrUserDataConverter = (
50
46
  const payload = {
51
47
  chainId,
52
48
  account,
53
- lendingPositions: { "0": lendingPositions },
49
+ lendingPositions: { '0': lendingPositions },
54
50
  rewards: {},
55
51
  userEMode: 0,
56
52
  }
57
53
 
58
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h)
54
+ const userData = createBaseTypeUserState(
55
+ payload,
56
+ lenderData,
57
+ totalDeposits24h,
58
+ totalDebt24h,
59
+ )
59
60
  return {
60
61
  ...payload,
61
- ...userData
62
+ ...userData,
62
63
  }
63
64
  },
64
65
  expectedNumberOfCalls,
@@ -69,34 +70,34 @@ function createAaveV3Entry(
69
70
  i: number,
70
71
  data: any[],
71
72
  chainId: string,
72
- asset: string,
73
+ asset: GenericCurrency,
73
74
  prices: any,
74
75
  pricesHist: any,
75
76
  ) {
76
77
  const reserveData = data[i]
77
78
 
78
- const currentATokenBalanceRaw = reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString()
79
- const currentVariableDebtRaw = reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString()
80
-
79
+ const currentATokenBalanceRaw =
80
+ reserveData[YldrTypeGetUserReserveIndexes.currentYTokenBalance]?.toString()
81
+ const currentVariableDebtRaw =
82
+ reserveData[YldrTypeGetUserReserveIndexes.currentVariableDebt]?.toString()
81
83
 
82
- if (
83
- currentATokenBalanceRaw === "0" &&
84
- currentVariableDebtRaw === "0") {
84
+ if (currentATokenBalanceRaw === '0' && currentVariableDebtRaw === '0') {
85
85
  return {
86
86
  dataForAsset: undefined,
87
87
  addedDeposits: 0,
88
- addedDebt: 0
88
+ addedDebt: 0,
89
89
  }
90
90
  }
91
91
 
92
- const assetMeta = getAssetMeta(chainId, asset)
92
+ const assetMeta = asset
93
93
  const decimals = assetMeta?.decimals ?? 18
94
94
 
95
95
  const currentATokenBalance = parseRawAmount(currentATokenBalanceRaw, decimals)
96
96
  const currentVariableDebt = parseRawAmount(currentVariableDebtRaw, decimals)
97
97
 
98
-
99
- const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(asset, chainId)
98
+ const key =
99
+ toOracleKey(assetMeta?.assetGroup) ??
100
+ toGenericPriceKey(asset.address, chainId)
100
101
  // prices
101
102
  const price = prices[key] ?? 1
102
103
  const priceHist = pricesHist?.[key] ?? price
@@ -106,19 +107,21 @@ function createAaveV3Entry(
106
107
  underlying: asset,
107
108
  deposits: currentATokenBalance,
108
109
  depositsRaw: currentATokenBalanceRaw,
109
- debtStable: "0",
110
+ debtStable: '0',
110
111
  debt: currentVariableDebt,
111
112
  depositsUSD: Number(currentATokenBalance) * price,
112
113
  debtStableUSD: 0,
113
114
  debtUSD: Number(currentVariableDebt) * price,
114
115
  stableBorrowRate: 0,
115
- collateralActive: Boolean(reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled]),
116
+ collateralActive: Boolean(
117
+ reserveData[YldrTypeGetUserReserveIndexes.usageAsCollateralEnabled],
118
+ ),
116
119
  claimableRewards: 0,
117
120
  }
118
121
 
119
122
  return {
120
123
  dataForAsset,
121
124
  addedDeposits: Number(currentATokenBalance) * priceHist,
122
- addedDebt: Number(currentVariableDebt) * priceHist
125
+ addedDebt: Number(currentVariableDebt) * priceHist,
123
126
  }
124
- }
127
+ }
@@ -1,4 +1,4 @@
1
- import { Lender } from "@1delta/asset-registry"
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import { isAaveV2Type, isAaveV3Type, isCompoundV3, isInit, isAaveV32Type, isYLDR, isMorphoType } from "../../utils"
3
3
  import { IncentivesControllerAbi } from "../../abis/lendle/IncentivesController"
4
4
  import { RewarderAbi } from "../../abis/aurelius/Rewarder"
@@ -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 { getLenderAssets } from '../../../utils'
4
4
  import {
@@ -1,8 +1,6 @@
1
- import { Lender } from '@1delta/asset-registry'
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import { CompoundV3UserReserveResponse } from '../types'
3
3
  import {
4
- getAssetMeta,
5
- getCompoundV3Assets,
6
4
  toGenericPriceKey,
7
5
  toOracleKey,
8
6
  } from '../../../assets'
@@ -18,7 +16,7 @@ export const getCompoundV3UserDataConverter = (
18
16
  pricesHist: { [asset: string]: number },
19
17
  lenderData: any,
20
18
  ): [(data: any[]) => CompoundV3UserReserveResponse | undefined, number] => {
21
- const assetAddresses = getCompoundV3Assets(chainId, lender)
19
+ const assetAddresses = Object.keys(lenderData)
22
20
  const baseAsset = getCompoundV3BaseAsset(lender, chainId)?.baseAsset
23
21
  const assetsNoBase = assetAddresses.filter((a) => a !== baseAsset)
24
22
  const expectedNumberOfCalls = assetsNoBase.length + 2 + 1
@@ -34,7 +32,7 @@ export const getCompoundV3UserDataConverter = (
34
32
  let result: { [asset: string]: any } = {}
35
33
  for (let i = 0; i < assetsNoBase.length; i++) {
36
34
  const asset = assetsNoBase[i]
37
- const assetMeta = getAssetMeta(chainId, asset)
35
+ const assetMeta = lenderData[asset].asset
38
36
  const decimals = assetMeta?.decimals ?? 18
39
37
  const depositsRaw = data[i][0]?.toString()
40
38
  if (depositsRaw === '0') continue
@@ -67,7 +65,7 @@ export const getCompoundV3UserDataConverter = (
67
65
 
68
66
  const depositsRaw = data[assetsNoBase.length]?.toString()
69
67
  const debtRaw = data[assetsNoBase.length + 1]?.toString()
70
- const baseMeta = getAssetMeta(chainId, baseAsset)
68
+ const baseMeta = lenderData[baseAsset].asset
71
69
  const baseDecimals = baseMeta.decimals ?? 18
72
70
  const deposits = parseRawAmount(depositsRaw, baseDecimals)
73
71
  const debt = parseRawAmount(debtRaw, baseDecimals)
@@ -3,7 +3,7 @@ import {
3
3
  MULTICALL_DEFAULT_BATCH_SIZE,
4
4
  multicallViemAbiArray,
5
5
  } from '../../utils/multicall'
6
- import { Lender } from '@1delta/asset-registry'
6
+ import { Lender } from '@1delta/lender-registry'
7
7
  import {
8
8
  isAaveV2Type,
9
9
  isAaveV3Type,
@@ -1,9 +1,10 @@
1
- import { Chain, Lender } from "@1delta/asset-registry"
2
- import { Call } from "../../../utils/multicall"
3
- import { getInitLensAddress } from "../../addresses/init"
1
+ import { Chain } from '@1delta/chain-registry'
2
+ import { Lender } from '@1delta/lender-registry'
3
+ import { Call } from '../../../utils/multicall'
4
+ import { getInitLensAddress } from '../../addresses/init'
4
5
 
5
6
  export const initBrokerAddresses = {
6
- [Chain.MANTLE]: '0xc08BFef7E778f3519D79E96780b77066F5d4FCC0'
7
+ [Chain.MANTLE]: '0xc08BFef7E778f3519D79E96780b77066F5d4FCC0',
7
8
  }
8
9
 
9
10
  export function getInitFlashAggregatorAddress(chainId?: string) {
@@ -11,7 +12,11 @@ export function getInitFlashAggregatorAddress(chainId?: string) {
11
12
  return initBrokerAddresses[chainId as keyof typeof initBrokerAddresses]
12
13
  }
13
14
 
14
- export const buildInitUserCall = (chainId: string, lender: Lender, account: string): Call[] => {
15
+ export const buildInitUserCall = (
16
+ chainId: string,
17
+ lender: Lender,
18
+ account: string,
19
+ ): Call[] => {
15
20
  const lensContract = getInitLensAddress(chainId)
16
21
  const brokerAddress = getInitFlashAggregatorAddress(chainId)
17
22
 
@@ -22,5 +27,4 @@ export const buildInitUserCall = (chainId: string, lender: Lender, account: stri
22
27
  }
23
28
 
24
29
  return [call]
25
-
26
- }
30
+ }
@@ -1,9 +1,9 @@
1
- import { Lender } from "@1delta/asset-registry"
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import { InitUserReserveResponse } from "../types"
3
3
  import { getInitFlashAggregatorAddress } from "./userCallBuild"
4
4
  import { InitGetUserPositionDataIndexes } from "../../init/types"
5
5
  import { getLenderAssets } from "../../../utils"
6
- import { getAssetMeta, toOracleKey } from "../../../assets"
6
+ import { toOracleKey } from "../../../assets"
7
7
  import { parseRawAmount } from "../../../utils/parsing"
8
8
  import { createMultiAccountTypeUserState } from "../utils/createMultiAccountStyleUserState"
9
9
 
@@ -41,14 +41,14 @@ export const getInitUserDataConverter = (
41
41
  const id = entry.posId.toString()
42
42
  const collatData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.collaterals][index].map((c: any) => {
43
43
  const asset = c.underlying.toLowerCase()
44
- const decimals = getAssetMeta(chainId, asset)?.decimals ?? 18
44
+ const decimals = lenderData[asset].asset?.decimals ?? 18
45
45
  const depositsRaw = c.amount.toString()
46
46
  return { [asset]: { deposits: parseRawAmount(depositsRaw, decimals), depositsRaw } }
47
47
  })
48
48
  )
49
49
  const debtData = Object.assign({}, ...data[InitGetUserPositionDataIndexes.debts][index].map((c: any) => {
50
50
  const asset = c.underlying.toLowerCase()
51
- const decimals = getAssetMeta(chainId, asset)?.decimals ?? 18
51
+ const decimals = lenderData[asset]?.asset?.decimals ?? 18
52
52
  return { [asset]: { debt: parseRawAmount(c.amount.toString(), decimals) } }
53
53
  })
54
54
  )
@@ -57,7 +57,7 @@ export const getInitUserDataConverter = (
57
57
  [id]: {
58
58
  mode,
59
59
  ...Object.assign({}, ...assets.map(a => {
60
- const ams = toOracleKey(getAssetMeta(chainId, a)?.assetGroup!)
60
+ const ams = toOracleKey(lenderData[a]?.asset?.assetGroup!)
61
61
  const price = prices[ams] ?? 1
62
62
  const priceHist = pricesHist?.[ams] ?? price
63
63
  if (!histData[id]) histData[id] = {
@@ -1,6 +1,8 @@
1
- import { Chain, Lender, MORPHO_BLUE_POOL_DATA } from '@1delta/asset-registry'
1
+ import { Lender } from '@1delta/lender-registry'
2
+ import { Chain } from '@1delta/chain-registry'
2
3
  import { Call } from '../../../utils/multicall'
3
4
  import { chunk } from 'lodash'
5
+ import { morphoPools } from '@1delta/data-sdk'
4
6
 
5
7
  const MORPHO_LENS: { [c: string]: string } = {
6
8
  [Chain.BASE]: '0x98542B95B44a4732EffB1F4F01A696F1546236d3',
@@ -18,16 +20,17 @@ const getBaseMorphoCalls = (
18
20
  account: string,
19
21
  marketsToQuery: string[],
20
22
  ) => {
23
+ const mbPool = morphoPools()?.[lender]?.[chainId]
21
24
  return marketsToQuery.flatMap((id) => [
22
25
  {
23
26
  // @ts-ignore
24
- address: MORPHO_BLUE_POOL_DATA[lender][chainId],
27
+ address: mbPool,
25
28
  name: 'position',
26
29
  params: ['0x' + id.split('_')[1], account],
27
30
  },
28
31
  {
29
32
  // @ts-ignore
30
- address: MORPHO_BLUE_POOL_DATA[lender][chainId],
33
+ address: mbPool,
31
34
  name: 'market',
32
35
  params: ['0x' + id.split('_')[1]],
33
36
  },
@@ -60,7 +63,7 @@ export const buildMorphoUserCallWithLens = (
60
63
  marketsInChunk.map((a) => a.replace('MORPHO_BLUE_', '0x')),
61
64
  account,
62
65
  // @ts-ignore
63
- MORPHO_BLUE_POOL_DATA[lender][chainId],
66
+ morphoPools()?.[lender]?.[chainId],
64
67
  ],
65
68
  }))
66
69
  }
@@ -1,5 +1,5 @@
1
- import { Lender } from '@1delta/asset-registry'
2
- import { getAssetMeta, toGenericPriceKey, toOracleKey } from '../../../assets'
1
+ import { Lender } from '@1delta/lender-registry'
2
+ import { toGenericPriceKey, toOracleKey } from '../../../assets'
3
3
  import { MorphoUserReserveResponse } from '../types'
4
4
  import { createBaseTypeUserState } from '../utils'
5
5
  import { parseRawAmount } from '../../../utils/parsing'
@@ -100,6 +100,7 @@ export const getMorphoUserDataConverterWithlens = (
100
100
  balanceData,
101
101
  chainId,
102
102
  market,
103
+ lenderData[markeId].data,
103
104
  prices,
104
105
  pricesHist,
105
106
  )
@@ -157,11 +158,12 @@ function createMorphoEntryFromMarketWithLens(
157
158
  balanceInfo: BalanceInfo,
158
159
  chainId: string,
159
160
  market: MorphoMarket,
161
+ lenderData: any,
160
162
  prices: any,
161
163
  pricesHist: any,
162
164
  ) {
163
165
  const loanAddress = market.loanAddress.toLowerCase()
164
- const loanMeta = getAssetMeta(chainId, loanAddress)
166
+ const loanMeta = lenderData[loanAddress].asset
165
167
 
166
168
  const loanKey =
167
169
  toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId)
@@ -181,8 +183,9 @@ function createMorphoEntryFromMarketWithLens(
181
183
  }
182
184
 
183
185
  const collateralAddress = market.collateralAddress.toLowerCase()
184
- const collateralAssetMeta = getAssetMeta(chainId, collateralAddress)
185
-
186
+
187
+ const collateralAssetMeta = lenderData[collateralAddress].asset
188
+
186
189
  // loan asset deposits
187
190
  const loanDepositNumber = parseRawAmount(
188
191
  deposits.toString(),
@@ -1,4 +1,4 @@
1
- import { Lender } from '@1delta/asset-registry'
1
+ import { Lender } from '@1delta/lender-registry'
2
2
  import { BaseYields, RewardsMap } from '../aave-v3-type/types'
3
3
 
4
4
  export type SerializedBigNumber = string
@@ -1,4 +1,4 @@
1
- import { getAssetMeta, toGenericPriceKey, toOracleKey } from '../assets'
1
+ import { toGenericPriceKey, toOracleKey } from '../assets'
2
2
  import {
3
3
  getLiquidityThresholds,
4
4
  meetsLiquidityThresholdsLong,
@@ -188,14 +188,8 @@ export function generateLendingPairs(
188
188
  const depositApr = long.depositRate + long.stakingYield
189
189
  const borrowApr = short.variableBorrowRate + short.stakingYield
190
190
 
191
- const [assetGroupLong, keyLong] = getPriceKey(
192
- long.underlying,
193
- chainId,
194
- )
195
- const [assetGroupShort, keyShort] = getPriceKey(
196
- short.underlying,
197
- chainId,
198
- )
191
+ const [assetGroupLong, keyLong] = getPriceKey(long.asset)
192
+ const [assetGroupShort, keyShort] = getPriceKey(short.asset)
199
193
  const priceLong = prices[keyLong] ?? 0
200
194
  const priceShort = prices[keyShort] ?? 0
201
195
 
@@ -254,11 +248,11 @@ export function generateLendingPairs(
254
248
  return pairs
255
249
  }
256
250
 
257
- function getPriceKey(asset: string, chainId: string): [string, string] {
258
- const assetGroup = getAssetMeta(chainId, asset)?.assetGroup
251
+ function getPriceKey(asset: GenericCurrency): [string, string] {
252
+ const assetGroup = asset?.assetGroup
259
253
  return [
260
254
  assetGroup,
261
- toOracleKey(assetGroup) ?? toGenericPriceKey(asset, chainId),
255
+ toOracleKey(assetGroup) ?? toGenericPriceKey(asset.address, asset.chainId),
262
256
  ]
263
257
  }
264
258
 
@@ -132,6 +132,15 @@ const prefixSolana = 'solana:'
132
132
  const JITOSOL = 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn'
133
133
  const SOL = 'So11111111111111111111111111111111111111112'
134
134
 
135
+ const prefixXdc = 'xdc:'
136
+ const WXDC = '0x951857744785e80e2de051c32ee7b25f9c458c42'
137
+
138
+ const prefixBera = 'berachain:'
139
+ const WBERA = '0x6969696969696969696969696969696969696969'
140
+
141
+ const prefixCronos = 'cronos:'
142
+ const WCRO = '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23'
143
+
135
144
  // const prefixKaia = 'kaia:'
136
145
  // const WKAIA = '0x19aac5f612f524b754ca7e7c41cbfa2e981a4432'
137
146
 
@@ -150,6 +159,9 @@ const datasHyperEvm = [WYPE, WSTHYPE, kHYPE]
150
159
  .map((d) => prefixHyperEVM + d)
151
160
  .join(',')
152
161
  const datasSolana = [JITOSOL, SOL].map((d) => prefixSolana + d).join(',')
162
+ const datasBera = [WBERA].map((d) => prefixBera + d).join(',')
163
+ const datasXdc = [WXDC].map((d) => prefixXdc + d).join(',')
164
+ const datasCrpnos = [WCRO].map((d) => prefixCronos + d).join(',')
153
165
  // const datasKaia = [WKAIA].map((d) => prefixKaia + d).join(',')
154
166
 
155
167
  const URL = `https://coins.llama.fi/prices/current/${[
@@ -166,6 +178,9 @@ const URL = `https://coins.llama.fi/prices/current/${[
166
178
  datasSonic,
167
179
  datasPolygon,
168
180
  datasSolana,
181
+ datasBera,
182
+ datasXdc,
183
+ datasCrpnos,
169
184
  ].join(',')}?searchWidth=4h`
170
185
  const URL_HIST = (ref: number) =>
171
186
  `https://coins.llama.fi/prices/historical/${ref}/${[
@@ -254,6 +269,9 @@ const SYMBOL_MAP = {
254
269
  woeth: 'Wrapped OETH::WOETH',
255
270
  jitosol: 'Jito Staked SOL::JitoSOL',
256
271
  sol: 'SOL',
272
+ wcro: 'WCRO',
273
+ wxdc: 'WXDC',
274
+ wbera: 'WBERA',
257
275
  }
258
276
 
259
277
  export async function fetchDefillamaData() {
@@ -276,6 +294,9 @@ export async function fetchDefillamaData() {
276
294
  prices['WSOL'] = prices['SOL']
277
295
  prices['AVAX'] = prices['WAVAX']
278
296
  prices['METIS'] = prices['WMETIS']
297
+ prices['CRO'] = prices['WCRO']
298
+ prices['XDC'] = prices['WXDC']
299
+ prices['BERA'] = prices['WBERA']
279
300
  // prices['WKAIA'] = prices['KAIA']
280
301
 
281
302
  prices['USDBC'] = prices['USDC']
@@ -321,6 +342,9 @@ export async function fetchDefillamaHistData() {
321
342
  histPrices['AVAX'] = histPrices['WAVAX']
322
343
  histPrices['METIS'] = histPrices['WMETIS']
323
344
  histPrices['HYPE'] = histPrices['WHYPE']
345
+ histPrices['BERA'] = histPrices['WBERA']
346
+ histPrices['CRO'] = histPrices['WCRO']
347
+ histPrices['XDC'] = histPrices['WXDC']
324
348
  // histPrices['WKAIA'] = histPrices['KAIA']
325
349
 
326
350
  histPrices['LUSD'] = histPrices['USDT']
@@ -1,4 +1,4 @@
1
- import { Chain } from "@1delta/asset-registry";
1
+ import { Chain } from "@1delta/chain-registry";
2
2
 
3
3
  export const api3OracleAddresses: { [chainId: string]: { [asset: string]: string } } = {
4
4
  [Chain.MANTLE]: {
@@ -1,4 +1,4 @@
1
- import { Chain } from '@1delta/asset-registry'
1
+ import { Chain } from '@1delta/chain-registry'
2
2
 
3
3
  export enum ChainlinkAggregatorIndexes {
4
4
  roundId = 0,