@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,4 +1,4 @@
1
- import { Lender } from '@1delta/asset-registry';
1
+ import { Lender } from '@1delta/lender-registry';
2
2
  import { MorphoUserReserveResponse } from '../types';
3
3
  export declare const getMorphoUserDataConverterWithlens: (lender: Lender, chainId: string, account: string, markets: string[], prices: {
4
4
  [asset: string]: number;
@@ -1 +1 @@
1
- {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,CA4FP,CAAA"}
1
+ {"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAiDpD,eAAO,MAAM,kCAAkC,GAC7C,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CACD,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAC5E,MAAM,CA6FP,CAAA"}
@@ -1,4 +1,4 @@
1
- import { getAssetMeta, toGenericPriceKey, toOracleKey } from '../../../assets';
1
+ import { toGenericPriceKey, toOracleKey } from '../../../assets';
2
2
  import { createBaseTypeUserState } from '../utils';
3
3
  import { parseRawAmount } from '../../../utils/parsing';
4
4
  import { decodePackedDataset } from './decoder';
@@ -69,7 +69,7 @@ export const getMorphoUserDataConverterWithlens = (lender, chainId, account, mar
69
69
  const markeId = markets[mapMarketToChunk(balanceData.index, i)];
70
70
  marketsHandled.push(markeId);
71
71
  const market = lenderData[markeId]?.params?.market;
72
- const { dataForMarket, addedDebt, addedDeposits } = createMorphoEntryFromMarketWithLens(balanceData, chainId, market, prices, pricesHist);
72
+ const { dataForMarket, addedDebt, addedDeposits } = createMorphoEntryFromMarketWithLens(balanceData, chainId, market, lenderData[markeId].data, prices, pricesHist);
73
73
  const payload = {
74
74
  chainId,
75
75
  account,
@@ -110,9 +110,9 @@ export const getMorphoUserDataConverterWithlens = (lender, chainId, account, mar
110
110
  expectedNumberOfCalls,
111
111
  ];
112
112
  };
113
- function createMorphoEntryFromMarketWithLens(balanceInfo, chainId, market, prices, pricesHist) {
113
+ function createMorphoEntryFromMarketWithLens(balanceInfo, chainId, market, lenderData, prices, pricesHist) {
114
114
  const loanAddress = market.loanAddress.toLowerCase();
115
- const loanMeta = getAssetMeta(chainId, loanAddress);
115
+ const loanMeta = lenderData[loanAddress].asset;
116
116
  const loanKey = toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(loanAddress, chainId);
117
117
  // prices
118
118
  const priceLoan = prices[loanKey] ?? 1;
@@ -129,7 +129,7 @@ function createMorphoEntryFromMarketWithLens(balanceInfo, chainId, market, price
129
129
  addedDebt: 0,
130
130
  };
131
131
  const collateralAddress = market.collateralAddress.toLowerCase();
132
- const collateralAssetMeta = getAssetMeta(chainId, collateralAddress);
132
+ const collateralAssetMeta = lenderData[collateralAddress].asset;
133
133
  // loan asset deposits
134
134
  const loanDepositNumber = parseRawAmount(deposits.toString(), market.loanDecimals ?? loanMeta?.decimals ?? 18);
135
135
  // collateral amount
@@ -1,4 +1,4 @@
1
- import { Lender } from '@1delta/asset-registry';
1
+ import { Lender } from '@1delta/lender-registry';
2
2
  /** Filter all morphos into one for querying */
3
3
  export function organizeUserQueries(queries) {
4
4
  const morphos = queries.filter((q) => q.lender?.startsWith('MORPHO_BLUE'));
@@ -1 +1 @@
1
- {"version":3,"file":"computeLendingPairs.d.ts","sourceRoot":"","sources":["../../src/lending-pairs/computeLendingPairs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAe,UAAU,EAAY,MAAM,UAAU,CAAA;AAG5D,UAAU,eAAe;IACvB,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAElB,sBAAsB;IACtB,QAAQ,EAAE,eAAe,CAAA;IACzB,SAAS,EAAE,eAAe,CAAA;IAG1B,cAAc,EAAE,MAAM,CAAA;IAEtB,eAAe,EAAE,MAAM,CAAA;IAEvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IAGnB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAG9B,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAmDD,kDAAkD;AAClD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC/B,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAClC,WAAW,EAAE,CA4If;AAkFD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE;;;;;EAyB/C;AAMD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAAE,GACnB,WAAW,EAAE,CAwFf"}
1
+ {"version":3,"file":"computeLendingPairs.d.ts","sourceRoot":"","sources":["../../src/lending-pairs/computeLendingPairs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAe,UAAU,EAAY,MAAM,UAAU,CAAA;AAG5D,UAAU,eAAe;IACvB,KAAK,EAAE,eAAe,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IAEd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAElB,sBAAsB;IACtB,QAAQ,EAAE,eAAe,CAAA;IACzB,SAAS,EAAE,eAAe,CAAA;IAG1B,cAAc,EAAE,MAAM,CAAA;IAEtB,eAAe,EAAE,MAAM,CAAA;IAEvB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IAGnB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAG9B,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAmDD,kDAAkD;AAClD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC/B,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAClC,WAAW,EAAE,CAsIf;AAkFD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE;;;;;EAyB/C;AAMD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,WAAW,EAAE,GACnB,WAAW,EAAE,CAwFf"}
@@ -1,4 +1,4 @@
1
- import { getAssetMeta, toGenericPriceKey, toOracleKey } from '../assets';
1
+ import { toGenericPriceKey, toOracleKey } from '../assets';
2
2
  import { getLiquidityThresholds, meetsLiquidityThresholdsLong, meetsLiquidityThresholdsShort, } from '../assets/liquidityThresholds';
3
3
  import { isAaveV3Type, isInit } from '../utils';
4
4
  const isEMode = (longData, shortData) => Boolean(longData.eMode)
@@ -92,8 +92,8 @@ export function generateLendingPairs(lenderData, prices, histPrices) {
92
92
  }
93
93
  const depositApr = long.depositRate + long.stakingYield;
94
94
  const borrowApr = short.variableBorrowRate + short.stakingYield;
95
- const [assetGroupLong, keyLong] = getPriceKey(long.underlying, chainId);
96
- const [assetGroupShort, keyShort] = getPriceKey(short.underlying, chainId);
95
+ const [assetGroupLong, keyLong] = getPriceKey(long.asset);
96
+ const [assetGroupShort, keyShort] = getPriceKey(short.asset);
97
97
  const priceLong = prices[keyLong] ?? 0;
98
98
  const priceShort = prices[keyShort] ?? 0;
99
99
  const price24hLong = histPrices[keyLong] ?? priceLong;
@@ -141,11 +141,11 @@ export function generateLendingPairs(lenderData, prices, histPrices) {
141
141
  }
142
142
  return pairs;
143
143
  }
144
- function getPriceKey(asset, chainId) {
145
- const assetGroup = getAssetMeta(chainId, asset)?.assetGroup;
144
+ function getPriceKey(asset) {
145
+ const assetGroup = asset?.assetGroup;
146
146
  return [
147
147
  assetGroup,
148
- toOracleKey(assetGroup) ?? toGenericPriceKey(asset, chainId),
148
+ toOracleKey(assetGroup) ?? toGenericPriceKey(asset.address, asset.chainId),
149
149
  ];
150
150
  }
151
151
  const MAX_ENTRIES = 10;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/prices/defillama/index.ts"],"names":[],"mappings":"AAkQA,wBAAsB,kBAAkB,iBAyCvC;AAED,wBAAsB,sBAAsB,iBA6C3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/prices/defillama/index.ts"],"names":[],"mappings":"AAoRA,wBAAsB,kBAAkB,iBA4CvC;AAED,wBAAsB,sBAAsB,iBAgD3C"}
@@ -119,6 +119,12 @@ const kHYPE = '0xfd739d4e423301ce9385c1fb8850539d657c296d';
119
119
  const prefixSolana = 'solana:';
120
120
  const JITOSOL = 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn';
121
121
  const SOL = 'So11111111111111111111111111111111111111112';
122
+ const prefixXdc = 'xdc:';
123
+ const WXDC = '0x951857744785e80e2de051c32ee7b25f9c458c42';
124
+ const prefixBera = 'berachain:';
125
+ const WBERA = '0x6969696969696969696969696969696969696969';
126
+ const prefixCronos = 'cronos:';
127
+ const WCRO = '0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23';
122
128
  // const prefixKaia = 'kaia:'
123
129
  // const WKAIA = '0x19aac5f612f524b754ca7e7c41cbfa2e981a4432'
124
130
  const datasAvalanche = [WAVAX, SAVAX].map((d) => prefixAvalanche + d).join(',');
@@ -136,6 +142,9 @@ const datasHyperEvm = [WYPE, WSTHYPE, kHYPE]
136
142
  .map((d) => prefixHyperEVM + d)
137
143
  .join(',');
138
144
  const datasSolana = [JITOSOL, SOL].map((d) => prefixSolana + d).join(',');
145
+ const datasBera = [WBERA].map((d) => prefixBera + d).join(',');
146
+ const datasXdc = [WXDC].map((d) => prefixXdc + d).join(',');
147
+ const datasCrpnos = [WCRO].map((d) => prefixCronos + d).join(',');
139
148
  // const datasKaia = [WKAIA].map((d) => prefixKaia + d).join(',')
140
149
  const URL = `https://coins.llama.fi/prices/current/${[
141
150
  datasEthereum,
@@ -151,6 +160,9 @@ const URL = `https://coins.llama.fi/prices/current/${[
151
160
  datasSonic,
152
161
  datasPolygon,
153
162
  datasSolana,
163
+ datasBera,
164
+ datasXdc,
165
+ datasCrpnos,
154
166
  ].join(',')}?searchWidth=4h`;
155
167
  const URL_HIST = (ref) => `https://coins.llama.fi/prices/historical/${ref}/${[
156
168
  datasEthereum,
@@ -237,6 +249,9 @@ const SYMBOL_MAP = {
237
249
  woeth: 'Wrapped OETH::WOETH',
238
250
  jitosol: 'Jito Staked SOL::JitoSOL',
239
251
  sol: 'SOL',
252
+ wcro: 'WCRO',
253
+ wxdc: 'WXDC',
254
+ wbera: 'WBERA',
240
255
  };
241
256
  export async function fetchDefillamaData() {
242
257
  try {
@@ -253,6 +268,9 @@ export async function fetchDefillamaData() {
253
268
  prices['WSOL'] = prices['SOL'];
254
269
  prices['AVAX'] = prices['WAVAX'];
255
270
  prices['METIS'] = prices['WMETIS'];
271
+ prices['CRO'] = prices['WCRO'];
272
+ prices['XDC'] = prices['WXDC'];
273
+ prices['BERA'] = prices['WBERA'];
256
274
  // prices['WKAIA'] = prices['KAIA']
257
275
  prices['USDBC'] = prices['USDC'];
258
276
  prices['BTCB'] = prices['WBTC'];
@@ -290,6 +308,9 @@ export async function fetchDefillamaHistData() {
290
308
  histPrices['AVAX'] = histPrices['WAVAX'];
291
309
  histPrices['METIS'] = histPrices['WMETIS'];
292
310
  histPrices['HYPE'] = histPrices['WHYPE'];
311
+ histPrices['BERA'] = histPrices['WBERA'];
312
+ histPrices['CRO'] = histPrices['WCRO'];
313
+ histPrices['XDC'] = histPrices['WXDC'];
293
314
  // histPrices['WKAIA'] = histPrices['KAIA']
294
315
  histPrices['LUSD'] = histPrices['USDT'];
295
316
  histPrices['XDAI'] = histPrices['DAI'];
@@ -1,4 +1,4 @@
1
- import { Chain } from "@1delta/asset-registry";
1
+ import { Chain } from "@1delta/chain-registry";
2
2
  export const api3OracleAddresses = {
3
3
  [Chain.MANTLE]: {
4
4
  ["WETH"]: '0x009E9B1eec955E9Fe7FE64f80aE868e661cb4729',
@@ -1,4 +1,4 @@
1
- import { Chain } from '@1delta/asset-registry';
1
+ import { Chain } from '@1delta/chain-registry';
2
2
  export var ChainlinkAggregatorIndexes;
3
3
  (function (ChainlinkAggregatorIndexes) {
4
4
  ChainlinkAggregatorIndexes[ChainlinkAggregatorIndexes["roundId"] = 0] = "roundId";
@@ -1,3 +1,4 @@
1
+ import { TokenList } from '../../types';
1
2
  export declare const formatAavePrice: (price: string, isV2?: boolean) => number;
2
3
  export declare const formatMorphoPrice: (price: string, collateralDec: number, debtDec: number) => number;
3
4
  interface OracleData {
@@ -8,6 +9,11 @@ interface OracleData {
8
9
  */
9
10
  export declare const fetchMainPrices: (chainIds: string[], rpcOverrides?: {
10
11
  [chainId: string]: string;
12
+ }, lists?: {
13
+ [chainId: string]: {
14
+ list: TokenList;
15
+ };
11
16
  }) => Promise<OracleData>;
17
+ export declare function getV3PriceFromSqrt(sqrtPrice: bigint, t0d: number, t1d: number): number;
12
18
  export {};
13
19
  //# sourceMappingURL=fetchOracleData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchOracleData.d.ts","sourceRoot":"","sources":["../../../src/prices/main-prices/fetchOracleData.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,cAAY,KAAG,MAY7D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,SAAS,MAAM,KACd,MAYF,CAAA;AAOD,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAID;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,eAAe;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,KAC3C,OAAO,CAAC,UAAU,CAkKpB,CAAA"}
1
+ {"version":3,"file":"fetchOracleData.d.ts","sourceRoot":"","sources":["../../../src/prices/main-prices/fetchOracleData.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAIvC,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,cAAY,KAAG,MAY7D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,SAAS,MAAM,KACd,MAYF,CAAA;AAOD,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAID;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAAE,EAClB,eAAe;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC5C,QAAO;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;CAAO,KACrD,OAAO,CAAC,UAAU,CAqMpB,CAAA;AAuDD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,UAiBZ"}
@@ -4,18 +4,19 @@ import { ChainLinkAggregatorAbi } from '../../abis/oracle/ChainLinkAggregator';
4
4
  import { Api3OracleAbi } from '../../abis/oracle/Api3Oracle';
5
5
  import { RWADynamicOracleAbi } from '../../abis/oracle/RWADynamicOracle';
6
6
  import { api3OracleAddresses } from './addresses/api3';
7
- import { AAVE_V2_LENDERS, ASSET_META, Chain } from '@1delta/asset-registry';
7
+ import { AAVE_V2_LENDERS } from '@1delta/lender-registry';
8
+ import { Chain } from '@1delta/chain-registry';
8
9
  import { formatEther, formatUnits } from 'viem';
9
10
  import { getAaveAssets } from '../../assets';
10
11
  import { chainlinkOracles, getChainLinkKeys, ChainlinkAggregatorIndexes, } from './addresses/chainlink';
11
12
  import { fetchDefillamaData } from '../defillama';
12
13
  import { fetchPendlePrices } from '../pendle';
13
- import { AAVE_STYLE_ORACLES } from './addresses/aaveOracles';
14
- import { AAVES_PER_CHAIN } from '../../utils';
14
+ import { getAavesForChain } from '../../utils';
15
15
  import { parseRawAmount } from '../../utils/parsing';
16
16
  import { ProxyOracleAbi } from '../../abis/oracle/ProxyOracle';
17
- import { MrophoOracles } from './addresses/morpho';
18
17
  import { multicallRetry } from '@1delta/providers';
18
+ import { UniswapV3Abi } from '../../abis/oracle/UniV3';
19
+ import { aaveOracles, morphoOracles } from '@1delta/data-sdk';
19
20
  export const formatAavePrice = (price, isV2 = false) => {
20
21
  try {
21
22
  return Number(formatEther(BigInt(price ?? '0') *
@@ -43,9 +44,10 @@ const RWA_DYNAMIC_ORACLE = '0xA96abbe61AfEdEB0D14a20440Ae7100D9aB4882f';
43
44
  /**
44
45
  * Fetches Aave and uniswap V2 oracle data
45
46
  */
46
- export const fetchMainPrices = async (chainIds, rpcOverrides) => {
47
+ export const fetchMainPrices = async (chainIds, rpcOverrides, lists = {}) => {
48
+ const aaves = getAavesForChain();
47
49
  const multicallPromises = chainIds.map(async (chainId) => {
48
- const aaveForks = AAVES_PER_CHAIN[chainId];
50
+ const aaveForks = aaves?.[chainId];
49
51
  const reservesToQuery = aaveForks?.map((a) => ({
50
52
  fork: a,
51
53
  assets: getAaveAssets(chainId, a),
@@ -58,23 +60,26 @@ export const fetchMainPrices = async (chainIds, rpcOverrides) => {
58
60
  queries.push({
59
61
  assets: newAssets,
60
62
  // @ts-ignore
61
- oracle: AAVE_STYLE_ORACLES[e.fork][chainId],
63
+ oracle: aaveOracles()?.[e.fork]?.[chainId],
62
64
  fork: e.fork,
63
65
  });
64
66
  newAssets.forEach((a) => handled.add(a));
65
67
  }
66
68
  }
67
- const morphoQueries = (MrophoOracles[chainId] ?? []).filter((a) => !handled.has(a.collateralAsset) || !handled.has(a.loanAsset));
69
+ const morphoOraclesObtained = morphoOracles();
70
+ const morphoQueries = (morphoOraclesObtained[chainId] ?? []).filter((a) => !handled.has(a.collateralAsset) || !handled.has(a.loanAsset));
68
71
  const morphoCalls = getMorphoCalls(morphoQueries);
69
72
  const aaveCalls = getAaveCalls(queries);
70
73
  const [chainlinkCalls, chainlinkNames] = getChainLinkCalls(chainId);
71
74
  const uniswapCalls = getUniswapV2Calls(chainId);
75
+ const uniswapV3Calls = getUniswapV3Calls(chainId);
72
76
  const [api3Calls, api3Names] = getApi3Calls(chainId);
73
77
  const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId);
74
78
  const allCalls = [
75
79
  ...chainlinkCalls,
76
80
  ...aaveCalls,
77
81
  ...uniswapCalls,
82
+ ...uniswapV3Calls,
78
83
  ...api3Calls,
79
84
  ...rwaCalls,
80
85
  ...morphoCalls,
@@ -82,6 +87,7 @@ export const fetchMainPrices = async (chainIds, rpcOverrides) => {
82
87
  const abis = [
83
88
  ...ChainLinkAggregatorAbi,
84
89
  ...UniswapV2PairAbi,
90
+ ...UniswapV3Abi,
85
91
  ...AaveOracleAbi,
86
92
  ...Api3OracleAbi,
87
93
  ...RWADynamicOracleAbi,
@@ -98,6 +104,7 @@ export const fetchMainPrices = async (chainIds, rpcOverrides) => {
98
104
  rwa: { calls: rwaCalls, names: rwaNames },
99
105
  morpho: { queries: morphoQueries },
100
106
  uniswapCalls,
107
+ uniswapV3Calls,
101
108
  aaveCalls,
102
109
  },
103
110
  };
@@ -109,17 +116,20 @@ export const fetchMainPrices = async (chainIds, rpcOverrides) => {
109
116
  ]);
110
117
  let allPrices = {};
111
118
  // Parse all except morpho first
112
- for (const { chainId, result, meta: { queries, chainlink, api3, rwa, uniswapCalls, aaveCalls }, } of chainResults) {
119
+ for (const { chainId, result, meta: { queries, chainlink, api3, rwa, uniswapCalls, uniswapV3Calls, aaveCalls, }, } of chainResults) {
113
120
  let offset = 0;
114
121
  const chainlinkSlice = result.slice(offset, offset + chainlink.calls.length);
115
122
  const chainlinkData = parseChainLinkResults(chainId, chainlinkSlice, chainlink.names);
116
123
  offset += chainlink.calls.length;
117
124
  const aaveSlice = result.slice(offset, offset + aaveCalls.length);
118
- const aaveData = parseAaveResults(chainId, aaveSlice, queries);
125
+ const aaveData = parseAaveResults(chainId, aaveSlice, queries, lists[chainId]?.list);
119
126
  offset += aaveCalls.length;
120
127
  const uniswapSlice = result.slice(offset, offset + uniswapCalls.length);
121
128
  const uniswapData = parseUniswapV2results(uniswapSlice, chainId);
122
129
  offset += uniswapCalls.length;
130
+ const uniswapV3Slice = result.slice(offset, offset + uniswapV3Calls.length);
131
+ const uniswapV3Data = parseUniswapV3results(uniswapV3Slice, chainId);
132
+ offset += uniswapV3Calls.length;
123
133
  const api3Slice = result.slice(offset, offset + api3.calls.length);
124
134
  const api3Data = parseApi3Results(chainId, api3Slice, api3.names);
125
135
  offset += api3.calls.length;
@@ -131,20 +141,22 @@ export const fetchMainPrices = async (chainIds, rpcOverrides) => {
131
141
  ...chainlinkData,
132
142
  ...aaveData,
133
143
  ...uniswapData,
144
+ ...uniswapV3Data,
134
145
  ...api3Data,
135
146
  ...rwaData,
136
147
  };
137
148
  }
138
149
  allPrices = { ...allPrices, ...otherResults[0], ...otherResults[1] };
139
150
  // Parse morpho data (needs allPrices)
140
- for (const { chainId, result, meta: { morpho, chainlink, aaveCalls, uniswapCalls, api3, rwa }, } of chainResults) {
151
+ for (const { chainId, result, meta: { morpho, chainlink, aaveCalls, uniswapCalls, uniswapV3Calls, api3, rwa, }, } of chainResults) {
141
152
  const morphoOffset = chainlink.calls.length +
142
153
  aaveCalls.length +
143
154
  uniswapCalls.length +
155
+ uniswapV3Calls.length +
144
156
  api3.calls.length +
145
157
  rwa.calls.length;
146
158
  const morphoResult = result.slice(morphoOffset);
147
- const morphoData = parseMorphoResults(chainId, morphoResult, morpho.queries, allPrices);
159
+ const morphoData = parseMorphoResults(chainId, morphoResult, morpho.queries, allPrices, lists[chainId]?.list);
148
160
  allPrices = {
149
161
  ...allPrices,
150
162
  ...morphoData,
@@ -185,6 +197,55 @@ const getUniswapV2Calls = (chainId) => {
185
197
  return [];
186
198
  }
187
199
  };
200
+ /**
201
+ * Gets the calls foir the uniswap pools
202
+ * @param chainId network id
203
+ * @returns array of calls
204
+ */
205
+ const getUniswapV3Calls = (chainId) => {
206
+ switch (chainId) {
207
+ case Chain.HEMI_NETWORK:
208
+ return [
209
+ {
210
+ // HMEU/USDC pool
211
+ address: '0xe2f1012fa5e8709ed38888c15615207fac278b57',
212
+ name: 'slot0',
213
+ params: [],
214
+ },
215
+ ];
216
+ default:
217
+ return [];
218
+ }
219
+ };
220
+ const BASE_MULTI = 10n ** 18n;
221
+ export function getV3PriceFromSqrt(sqrtPrice, t0d, t1d) {
222
+ const scalarNumerator = 10n ** BigInt(t0d);
223
+ const scalarDenominator = 10n ** BigInt(t1d);
224
+ const sqrtP = BigInt(sqrtPrice);
225
+ const inputNumerator = sqrtP * sqrtP;
226
+ const inputDenominator = 2n ** 192n;
227
+ const adjustedForDecimalsNumerator = scalarDenominator * inputDenominator;
228
+ const adjustedForDecimalsDenominator = scalarNumerator * inputNumerator;
229
+ const price0to1 = Number(formatUnits((adjustedForDecimalsDenominator * BASE_MULTI) /
230
+ adjustedForDecimalsNumerator, 18)); // in token1 / token0
231
+ return price0to1;
232
+ }
233
+ const parseUniswapV3results = (data, chainId) => {
234
+ switch (chainId) {
235
+ case Chain.HEMI_NETWORK: {
236
+ let uniswapData = {};
237
+ if (data.length > 0) {
238
+ const state = data[0];
239
+ const [sqrtPriceX96, , , , , ,] = state;
240
+ const price = getV3PriceFromSqrt(sqrtPriceX96, 18, 6);
241
+ uniswapData['Hemi::HEMI'] = price;
242
+ }
243
+ return uniswapData;
244
+ }
245
+ default:
246
+ return {};
247
+ }
248
+ };
188
249
  /**
189
250
  * Create calldata for aave oracles
190
251
  * @param chainId network
@@ -281,6 +342,8 @@ function lowDecimalOracle(chainId, fork) {
281
342
  if (chainId === Chain.AVALANCHE_C_CHAIN || chainId === Chain.MODE) {
282
343
  return false;
283
344
  }
345
+ if (chainId === Chain.XDC_NETWORK)
346
+ return true;
284
347
  // otherwise, it depends on whether it is aave V3
285
348
  return AAVE_V2_LENDERS.includes(fork);
286
349
  }
@@ -291,31 +354,28 @@ function lowDecimalOracle(chainId, fork) {
291
354
  * @param assetName asset names (aligned with the originall addresses called)
292
355
  * @returns price mapping asset->number
293
356
  */
294
- const parseAaveResults = (chainId, data, queries) => {
357
+ const parseAaveResults = (chainId, data, queries, list = {}) => {
295
358
  let prices = {};
296
359
  data.forEach((d, i) => {
297
360
  if (d !== '0x') {
298
361
  const details = queries[i];
299
362
  details.assets.forEach((a, j) => {
300
- const oracleId = ASSET_META[chainId][a]?.assetGroup ??
301
- ASSET_META[chainId]?.[a]?.symbol ??
302
- chainId + '-' + a;
363
+ const oracleId = list[a]?.assetGroup ?? chainId + '-' + a;
303
364
  prices[oracleId] = formatAavePrice(d[j].toString(), lowDecimalOracle(chainId, details.fork));
304
365
  });
305
366
  }
306
367
  });
307
368
  return prices;
308
369
  };
309
- const parseMorphoResults = (chainId, data, queries, donePrices = {}) => {
370
+ const parseMorphoResults = (chainId, data, queries, donePrices = {}, list = {}) => {
310
371
  let prices = {};
311
372
  data.forEach((d, i) => {
312
373
  const details = queries[i];
313
374
  const { loanAsset, collateralAsset, loanAssetDecimals, collateralAssetDecimals, } = details;
314
- const oracleId = ASSET_META[chainId][loanAsset]?.assetGroup ?? chainId + '-' + loanAsset;
375
+ const oracleId = list[loanAsset]?.assetGroup ?? chainId + '-' + loanAsset;
315
376
  // get price from map or just computed ones
316
377
  const debtPrice = donePrices[oracleId] ?? prices[oracleId];
317
- const oracleIdCollateral = ASSET_META[chainId][collateralAsset]?.assetGroup ??
318
- chainId + '-' + collateralAsset;
378
+ const oracleIdCollateral = list[collateralAsset]?.assetGroup ?? chainId + '-' + collateralAsset;
319
379
  // get price from map or just computed ones
320
380
  const collateralPrice = donePrices[oracleIdCollateral] ?? prices[oracleIdCollateral];
321
381
  const priceDebtToCollateral = formatMorphoPrice(d.toString(), loanAssetDecimals, collateralAssetDecimals);
@@ -1,4 +1,4 @@
1
- export * from "./apiReturnType";
1
+ export * from './apiReturnType';
2
2
  export interface ParsedResponse {
3
3
  price: number;
4
4
  time: number;
@@ -38,5 +38,11 @@ export declare interface GeneralCall {
38
38
  name: string;
39
39
  params?: any[];
40
40
  }
41
- export * from "./providers";
41
+ export type TokenList = {
42
+ [address: string]: {
43
+ decimals: number;
44
+ assetGroup?: string;
45
+ };
46
+ };
47
+ export * from './providers';
42
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAE/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,oBAAY,0BAA0B;IACpC,OAAO,IAAI;IACX,MAAM,IAAA;IACN,SAAS,IAAA;IACT,SAAS,IAAA;IACT,eAAe,IAAA;CAChB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAA;AACpE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,oBAAoB,GAAG;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;CAAE,CAAA;AAChG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,oBAAoB,CAAA;IACnC,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AACD,MAAM,CAAC,OAAO,WAAW,WAAW;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;CACf;AAED,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAE/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AACD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,oBAAY,0BAA0B;IACpC,OAAO,IAAI;IACX,MAAM,IAAA;IACN,SAAS,IAAA;IACT,SAAS,IAAA;IACT,eAAe,IAAA;CAChB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAA;AACpE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAA;CAC1D,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,eAAe,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,oBAAoB,CAAA;IACnC,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AACD,MAAM,CAAC,OAAO,WAAW,WAAW;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;CACf;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7D,CAAA;AAED,cAAc,aAAa,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from "./apiReturnType";
1
+ export * from './apiReturnType';
2
2
  export var ChainlinkAggregatorIndexes;
3
3
  (function (ChainlinkAggregatorIndexes) {
4
4
  ChainlinkAggregatorIndexes[ChainlinkAggregatorIndexes["roundId"] = 0] = "roundId";
@@ -7,4 +7,4 @@ export var ChainlinkAggregatorIndexes;
7
7
  ChainlinkAggregatorIndexes[ChainlinkAggregatorIndexes["updatedAt"] = 3] = "updatedAt";
8
8
  ChainlinkAggregatorIndexes[ChainlinkAggregatorIndexes["answeredInRound"] = 4] = "answeredInRound";
9
9
  })(ChainlinkAggregatorIndexes || (ChainlinkAggregatorIndexes = {}));
10
- export * from "./providers";
10
+ export * from './providers';
@@ -1,4 +1,4 @@
1
- import { Chain } from '@1delta/asset-registry';
1
+ import { Chain } from '@1delta/chain-registry';
2
2
  // Uniswap interface Multicalls
3
3
  const CELO_MULTICALL_ADDRESS = '0x633987602DE5C4F337e3DbF265303A1080324204';
4
4
  const BNB_MULTICALL_ADDRESS = '0x963Df249eD09c358A4819E39d9Cd5736c3087184';
@@ -1,4 +1,4 @@
1
- import { Lender } from "@1delta/asset-registry";
1
+ import { Lender } from '@1delta/lender-registry';
2
2
  export declare function isCompoundV3(lender: string): boolean;
3
3
  export declare function isCompoundV3Type(lender: string): boolean;
4
4
  export declare function isInit(lender: string): lender is Lender.INIT;
@@ -13,7 +13,7 @@ export declare const getLendersForChain: (c: string) => string[];
13
13
  /** Filter lenders by protocol list */
14
14
  export declare const filterLendersByProtocol: (allLenders: string[], protocolList?: string[]) => string[];
15
15
  /** All aave protocols per chain */
16
- export declare const AAVES_PER_CHAIN: {
16
+ export declare const getAavesForChain: () => {
17
17
  [c: string]: string[];
18
18
  };
19
19
  export declare const getComposerAddress: (chainId: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,MAAM,EAKP,MAAM,wBAAwB,CAAA;AAO/B,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAAgD;AAE3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAAgD;AAE/F,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAAmC;AAExE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,aA4B3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,EAAE,EAAE,eAAe,MAAM,EAAE,KAAG,MAAM,EAS7F,CAAA;AAaD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;CAAqB,CAAA;AAEjD,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EACpC,wBAAgC,KAC/B,MAAM,EAOR,CAAA;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EAEP,MAAM,yBAAyB,CAAA;AAehC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,WAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,yBAEpC;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,WAExC;AAED,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,aA2B3C,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,EAAE,EACpB,eAAe,MAAM,EAAE,KACtB,MAAM,EAaR,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB;;CAS5B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAEpD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,EACpC,wBAAgC,KAC/B,MAAM,EAOR,CAAA;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,WAE3C"}
@@ -1,15 +1,22 @@
1
- import { AAVE_FORK_POOL_DATA, AAVE_STYLE_RESERVE_ASSETS, AAVE_V2_LENDERS, AAVE_V3_LENDERS, COMPOUND_BASE_TOKENS, COMPOUND_STYLE_RESERVE_ASSETS, INIT_STYLE_RESERVE_ASSETS, Lender, SWAYLEND_RESERVE_ASSETS, INIT_CONFIG_DATA, MORPHO_BLUE_POOL_DATA, AAVE_V32_LENDERS, } from "@1delta/asset-registry";
2
- import { uniq } from "lodash";
3
- import { COMPOSERS } from "./constants";
4
- import { zeroAddress } from "viem";
5
- const COMPOUND_V3_KEY = "COMPOUND_V3";
6
- export function isCompoundV3(lender) { return lender?.startsWith(COMPOUND_V3_KEY); }
7
- export function isCompoundV3Type(lender) { return lender?.startsWith(COMPOUND_V3_KEY); }
8
- export function isInit(lender) { return lender === Lender.INIT; }
1
+ import { AAVE_V2_LENDERS, AAVE_V3_LENDERS, Lender, AAVE_V32_LENDERS, } from '@1delta/lender-registry';
2
+ import { uniq } from 'lodash';
3
+ import { COMPOSERS } from './constants';
4
+ import { zeroAddress } from 'viem';
5
+ import { aavePools, aaveReserves, compoundV3Pools, compoundV3Reserves, initConfig, morphoPools, } from '@1delta/data-sdk';
6
+ const COMPOUND_V3_KEY = 'COMPOUND_V3';
7
+ export function isCompoundV3(lender) {
8
+ return lender?.startsWith(COMPOUND_V3_KEY);
9
+ }
10
+ export function isCompoundV3Type(lender) {
11
+ return lender?.startsWith(COMPOUND_V3_KEY);
12
+ }
13
+ export function isInit(lender) {
14
+ return lender === Lender.INIT;
15
+ }
9
16
  export function isMorphoType(lender) {
10
- return lender?.startsWith("MORPHO_BLUE");
17
+ return lender?.startsWith('MORPHO_BLUE');
11
18
  }
12
- const SWAYLEND_KEY = "SWAYLEND";
19
+ const SWAYLEND_KEY = 'SWAYLEND';
13
20
  export function isAaveV3Type(lender) {
14
21
  return AAVE_V3_LENDERS.includes(lender);
15
22
  }
@@ -31,25 +38,25 @@ export function isSwaylend(lender) {
31
38
  export const getLendersForChain = (c) => {
32
39
  let lenders = [];
33
40
  // aaves
34
- Object.entries(AAVE_FORK_POOL_DATA).forEach(([l, data]) => {
41
+ Object.entries(aavePools() ?? {}).forEach(([l, data]) => {
35
42
  const chains = Object.keys(data);
36
43
  if (chains.includes(c))
37
44
  lenders.push(l);
38
45
  });
39
46
  // compound V3s
40
- Object.entries(COMPOUND_BASE_TOKENS).forEach(([l, data]) => {
47
+ Object.entries(compoundV3Pools() ?? {}).forEach(([l, data]) => {
41
48
  const chains = Object.keys(data);
42
49
  if (chains.includes(c))
43
50
  lenders.push(l);
44
51
  });
45
52
  // init
46
- Object.entries(INIT_CONFIG_DATA).forEach(([l, data]) => {
53
+ Object.entries(initConfig() ?? {}).forEach(([l, data]) => {
47
54
  const chains = Object.keys(data);
48
55
  if (chains.includes(c))
49
56
  lenders.push(l);
50
57
  });
51
58
  // morpho
52
- Object.entries(MORPHO_BLUE_POOL_DATA).forEach(([l, data]) => {
59
+ Object.entries(morphoPools() ?? {}).forEach(([l, data]) => {
53
60
  const chains = Object.keys(data);
54
61
  if (chains.includes(c))
55
62
  lenders.push(l);
@@ -64,11 +71,13 @@ export const filterLendersByProtocol = (allLenders, protocolList) => {
64
71
  }
65
72
  const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE);
66
73
  // Filter lenders based on protocol list
67
- return allLenders.filter((lender) => protocolList.includes(lender) || (hasMorpho && lender?.startsWith("MORPHO_BLUE")));
74
+ return allLenders.filter((lender) => protocolList.includes(lender) ||
75
+ (hasMorpho && lender?.startsWith('MORPHO_BLUE')));
68
76
  };
69
- const getAavesForChain = () => {
77
+ /** All aave protocols per chain */
78
+ export const getAavesForChain = () => {
70
79
  let lenders = {};
71
- Object.entries(AAVE_FORK_POOL_DATA).forEach(([l, data]) => {
80
+ Object.entries(aavePools() ?? {}).forEach(([l, data]) => {
72
81
  Object.entries(data).forEach(([chain, data]) => {
73
82
  if (!lenders[chain])
74
83
  lenders[chain] = [];
@@ -77,8 +86,6 @@ const getAavesForChain = () => {
77
86
  });
78
87
  return lenders;
79
88
  };
80
- /** All aave protocols per chain */
81
- export const AAVES_PER_CHAIN = getAavesForChain();
82
89
  export const getComposerAddress = (chainId) => {
83
90
  return COMPOSERS[chainId] ?? zeroAddress;
84
91
  };
@@ -86,15 +93,11 @@ export const getLenderAssets = (chainId, lendingProtocol = Lender.AAVE_V3) => {
86
93
  if (!chainId)
87
94
  return [];
88
95
  if (isAaveType(lendingProtocol))
89
- return AAVE_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? [];
96
+ return aaveReserves()?.[lendingProtocol]?.[chainId] ?? [];
90
97
  if (isCompoundV3(lendingProtocol))
91
- return COMPOUND_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? [];
92
- if (isInit(lendingProtocol))
93
- return INIT_STYLE_RESERVE_ASSETS[lendingProtocol]?.[chainId] ?? [];
94
- if (isSwaylend(lendingProtocol))
95
- return SWAYLEND_RESERVE_ASSETS[lendingProtocol]?.[chainId ?? 0] ?? [];
98
+ return compoundV3Reserves()?.[lendingProtocol]?.[chainId] ?? [];
96
99
  return [];
97
100
  };
98
101
  export function isMultiMarket(lender) {
99
- return lender?.startsWith("MORPHO_BLUE");
102
+ return lender?.startsWith('MORPHO_BLUE');
100
103
  }
@@ -1,4 +1,4 @@
1
- import { Lender } from "@1delta/asset-registry";
1
+ import { Lender } from '@1delta/lender-registry';
2
2
  export declare const BPS = 10000;
3
3
  export declare const parseRawAmount: (answer?: string, decimals?: number) => string;
4
4
  export declare enum TimeScale {
@@ -1 +1 @@
1
- {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIvD,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAC;AAEF,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAE1C,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAC;AACF,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAC"}
1
+ {"version":3,"file":"parsing.d.ts","sourceRoot":"","sources":["../../src/utils/parsing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,eAAO,MAAM,GAAG,QAAQ,CAAA;AAExB,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,iBAAa,KAAG,MAO/D,CAAA;AAED,oBAAY,SAAS;IACnB,KAAK,IAAA;IACL,EAAE,IAAA;CACH;AAYD,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WAI1C,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,GAAG,MAAM,KAAG,MAG7D,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,GAAG,MAAM,EACT,SAAS,MAAM,EACf,eAAiC,KAChC,MAgBF,CAAA;AACD,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,WAGrE,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,GAAG,MAAM,WAI9D,CAAA"}