@1delta/margin-fetcher 0.0.32 → 0.0.34

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 (214) 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 -7
  5. package/dist/assets/index.d.ts.map +1 -1
  6. package/dist/assets/index.js +12 -25
  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 -3
  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 +3 -3
  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 +9 -12
  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 +3 -3
  78. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  79. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +6 -8
  80. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +1 -1
  81. package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
  82. package/dist/lending/user-data/aave-v3-type/userCallParse.js +5 -5
  83. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +2 -2
  84. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
  85. package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +15 -15
  86. package/dist/lending/user-data/abis.d.ts +1 -1
  87. package/dist/lending/user-data/abis.d.ts.map +1 -1
  88. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +2 -2
  89. package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -1
  90. package/dist/lending/user-data/compound-v3/userCallBuild.js +2 -2
  91. package/dist/lending/user-data/compound-v3/userCallParse.d.ts +1 -1
  92. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  93. package/dist/lending/user-data/compound-v3/userCallParse.js +4 -4
  94. package/dist/lending/user-data/fetchUserData.d.ts +1 -0
  95. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
  96. package/dist/lending/user-data/fetchUserData.js +6 -5
  97. package/dist/lending/user-data/init/userCallBuild.d.ts +2 -2
  98. package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -1
  99. package/dist/lending/user-data/init/userCallBuild.js +3 -3
  100. package/dist/lending/user-data/init/userCallParse.d.ts +1 -1
  101. package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
  102. package/dist/lending/user-data/init/userCallParse.js +4 -4
  103. package/dist/lending/user-data/morpho/userCallBuild.d.ts +1 -1
  104. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  105. package/dist/lending/user-data/morpho/userCallBuild.js +6 -4
  106. package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -1
  107. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  108. package/dist/lending/user-data/morpho/userCallParse.js +5 -5
  109. package/dist/lending/user-data/types.d.ts +2 -0
  110. package/dist/lending/user-data/types.d.ts.map +1 -1
  111. package/dist/lending/user-data/types.js +7 -3
  112. package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
  113. package/dist/lending-pairs/computeLendingPairs.js +6 -6
  114. package/dist/prices/main-prices/addresses/api3.js +1 -1
  115. package/dist/prices/main-prices/addresses/chainlink.js +1 -1
  116. package/dist/prices/main-prices/fetchOracleData.d.ts +6 -0
  117. package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
  118. package/dist/prices/main-prices/fetchOracleData.js +78 -20
  119. package/dist/types/index.d.ts +8 -2
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/index.js +2 -2
  122. package/dist/utils/constants.js +1 -1
  123. package/dist/utils/index.d.ts +2 -3
  124. package/dist/utils/index.d.ts.map +1 -1
  125. package/dist/utils/index.js +11 -17
  126. package/dist/utils/parsing.d.ts +1 -1
  127. package/dist/utils/parsing.d.ts.map +1 -1
  128. package/dist/utils/parsing.js +9 -8
  129. package/dist/yields/index.d.ts.map +1 -1
  130. package/dist/yields/index.js +3 -2
  131. package/package.json +2 -2
  132. package/src/abis/oracle/UniV3.ts +63 -0
  133. package/src/assets/index.ts +26 -56
  134. package/src/assets/liquidityThresholds.ts +55 -43
  135. package/src/flash-liquidity/assets.ts +68 -44
  136. package/src/flash-liquidity/fetchLiquidity.ts +13 -14
  137. package/src/flash-liquidity/utils.ts +22 -16
  138. package/src/lending/aave-v2-type/misc.ts +7 -3
  139. package/src/lending/aave-v2-type/publicCallBuild.ts +28 -17
  140. package/src/lending/aave-v2-type/publicCallParse.ts +5 -5
  141. package/src/lending/aave-v3-type/publicCallBuild.ts +1 -1
  142. package/src/lending/aave-v3-type/publicCallParse.ts +4 -14
  143. package/src/lending/addresses/aave.ts +1 -1
  144. package/src/lending/addresses/aaveV2.ts +1 -1
  145. package/src/lending/addresses/aurelius.ts +1 -1
  146. package/src/lending/addresses/compoundV3.ts +5 -8
  147. package/src/lending/addresses/contracts.ts +1 -1
  148. package/src/lending/addresses/hana.ts +1 -1
  149. package/src/lending/addresses/init.ts +1 -1
  150. package/src/lending/addresses/lendle.ts +1 -1
  151. package/src/lending/addresses/meridian.ts +1 -1
  152. package/src/lending/addresses/takotako.ts +1 -1
  153. package/src/lending/compound-v3/publicCallBuild.ts +1 -1
  154. package/src/lending/compound-v3/publicCallParse.ts +3 -10
  155. package/src/lending/fetchLender.ts +1 -1
  156. package/src/lending/fetchLenderAll.ts +1 -1
  157. package/src/lending/fetchLenderExt.ts +1 -1
  158. package/src/lending/index.ts +1 -0
  159. package/src/lending/init/publicCallBuild.ts +1 -1
  160. package/src/lending/init/publicCallParse.ts +64 -48
  161. package/src/lending/meta/index.ts +124 -0
  162. package/src/lending/morpho/publicCallBuild.ts +0 -1
  163. package/src/lending/user-data/aave-v2-type/userCallBuild.ts +26 -32
  164. package/src/lending/user-data/aave-v2-type/userCallParse.ts +181 -122
  165. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +18 -16
  166. package/src/lending/user-data/aave-v3-type/userCallParse.ts +7 -8
  167. package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +37 -34
  168. package/src/lending/user-data/abis.ts +1 -1
  169. package/src/lending/user-data/compound-v3/userCallBuild.ts +3 -2
  170. package/src/lending/user-data/compound-v3/userCallParse.ts +5 -11
  171. package/src/lending/user-data/fetchUserData.ts +9 -7
  172. package/src/lending/user-data/init/userCallBuild.ts +11 -7
  173. package/src/lending/user-data/init/userCallParse.ts +5 -5
  174. package/src/lending/user-data/morpho/userCallBuild.ts +7 -4
  175. package/src/lending/user-data/morpho/userCallParse.ts +7 -6
  176. package/src/lending/user-data/types.ts +8 -4
  177. package/src/lending-pairs/computeLendingPairs.ts +6 -12
  178. package/src/prices/main-prices/addresses/api3.ts +1 -1
  179. package/src/prices/main-prices/addresses/chainlink.ts +1 -1
  180. package/src/prices/main-prices/fetchOracleData.ts +117 -20
  181. package/src/types/index.ts +10 -4
  182. package/src/utils/constants.ts +1 -1
  183. package/src/utils/index.ts +18 -27
  184. package/src/utils/parsing.ts +37 -35
  185. package/src/yields/index.ts +3 -2
  186. package/test/flashLiquidity.test.ts +6 -6
  187. package/test/index.test.ts +1 -1
  188. package/test/lenderData.test.ts +9 -10
  189. package/test/lenderDataBasic.test.ts +1 -1
  190. package/test/mainPriceMB.test.ts +1 -1
  191. package/test/mainPrices.test.ts +14 -14
  192. package/test/morpho.test.ts +1 -1
  193. package/test/morphoPrice.test.ts +1 -1
  194. package/test/userData.test.ts +2 -1
  195. package/test/userDataAave.test.ts +1 -1
  196. package/test/userDataAaveMainnet.test.ts +10 -11
  197. package/test/userDataAll.test.ts +2 -1
  198. package/test/userDataCompound.test.ts +2 -1
  199. package/test/userDataMorpho.test.ts +2 -1
  200. package/test/userDataMorphoEthereum.test.ts +25 -26
  201. package/test/userDataMorphoKatana.test.ts +2 -1
  202. package/test/utils.ts +11 -1
  203. package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts +0 -11
  204. package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts.map +0 -1
  205. package/dist/lending/user-data/morpho/userCallParseNoDeploy.js +0 -112
  206. package/dist/prices/main-prices/addresses/aaveOracles.d.ts +0 -303
  207. package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +0 -1
  208. package/dist/prices/main-prices/addresses/aaveOracles.js +0 -302
  209. package/dist/prices/main-prices/addresses/morpho.d.ts +0 -11
  210. package/dist/prices/main-prices/addresses/morpho.d.ts.map +0 -1
  211. package/dist/prices/main-prices/addresses/morpho.js +0 -2554
  212. package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +0 -168
  213. package/src/prices/main-prices/addresses/aaveOracles.ts +0 -302
  214. package/src/prices/main-prices/addresses/morpho.ts +0 -2563
@@ -1,26 +1,26 @@
1
1
  import { describe, it } from 'vitest'
2
- import { fetchMainPrices } from '../src'
3
- import { Chain } from '@1delta/asset-registry'
2
+ import { fetchLenderMetaFromDirAndInitialize, fetchMainPrices } from '../src'
3
+ import { Chain } from '@1delta/chain-registry'
4
4
  import { prettyPrint } from './utils'
5
5
 
6
6
  describe(
7
7
  'find prices',
8
8
  () => {
9
9
  it('should return prices for valid tokens', async () => {
10
+
11
+ await fetchLenderMetaFromDirAndInitialize()
10
12
  const mainPrices = await fetchMainPrices([
11
- // Chain.MANTLE,
12
- // Chain.BNB_SMART_CHAIN_MAINNET,
13
- // Chain.OP_MAINNET,
14
- // Chain.POLYGON_MAINNET,
15
- // Chain.HEMI_NETWORK,
16
- // Chain.ARBITRUM_ONE,
17
- // Chain.HYPEREVM,
18
- // Chain.ETHEREUM_MAINNET,
19
- Chain.BERACHAIN,
20
- Chain.XDC_NETWORK,
21
- Chain.CRONOS_MAINNET,
13
+ Chain.MANTLE,
14
+ Chain.BNB_SMART_CHAIN_MAINNET,
15
+ Chain.OP_MAINNET,
16
+ Chain.POLYGON_MAINNET,
17
+ Chain.HEMI_NETWORK,
18
+ Chain.ARBITRUM_ONE,
19
+ Chain.HYPEREVM,
20
+ Chain.ETHEREUM_MAINNET,
21
+ Chain.HEMI_NETWORK,
22
22
  ])
23
- console.log(mainPrices['SOL'])
23
+ // console.log(mainPrices['Hemi::HEMI'])
24
24
  prettyPrint(mainPrices)
25
25
  })
26
26
  },
@@ -1,5 +1,5 @@
1
1
  import { describe, it } from 'vitest'
2
- import { Chain } from "@1delta/asset-registry"
2
+ import { Chain } from "@1delta/chain-registry"
3
3
  import { prettyPrint } from './utils'
4
4
  import { fetchMorphoMarkets } from "../src/lending/morpho/fetchPublic"
5
5
  import { convertMarketsToMorphoResponse } from "../src/lending/morpho/convertPublic"
@@ -1,6 +1,6 @@
1
1
  import { describe, it } from 'vitest'
2
2
  import { fetchMorphoPriceMeta } from './morpho'
3
- import { Chain } from '@1delta/asset-registry'
3
+ import { Chain } from '@1delta/chain-registry'
4
4
 
5
5
  const chainId = Chain.KATANA
6
6
  describe(
@@ -9,7 +9,8 @@ import {
9
9
  getLenderPublicData,
10
10
  } from '../src'
11
11
  import { multicallRetry, getEvmClient } from '@1delta/providers'
12
- import { Chain, Lender } from '@1delta/asset-registry'
12
+ import { Chain } from '@1delta/chain-registry'
13
+ import { Lender } from '@1delta/lender-registry'
13
14
  import { LenderUserQuery } from '../src/lending/user-data/types'
14
15
  import { getLendersForChain } from '../src/utils'
15
16
 
@@ -4,7 +4,7 @@ import {
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
6
  import { getEvmClient } from '@1delta/providers'
7
- import { Chain } from '@1delta/asset-registry'
7
+ import { Chain } from '@1delta/chain-registry'
8
8
  import { prettyPrint } from './utils'
9
9
  import { TestData } from './data'
10
10
 
@@ -4,11 +4,12 @@ import {
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
6
  import { getEvmClient } from '@1delta/providers'
7
- import { Chain } from '@1delta/asset-registry'
7
+ import { Chain } from '@1delta/chain-registry'
8
8
  import { prettyPrint } from './utils'
9
9
  import { TestDataMainnet } from './dataMainnet'
10
+ import { fetchLenderMetaFromDirAndInitialize } from '../src/lending'
10
11
 
11
- export const queries = {
12
+ const queries = {
12
13
  '1': [
13
14
  {
14
15
  account: '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5',
@@ -83,17 +84,15 @@ describe(
83
84
  it.only(
84
85
  'should fetch user data for Morpho on Base',
85
86
  async () => {
86
- try {
87
- const { userData } = await getUserData([Chain.ETHEREUM_MAINNET])
87
+ await fetchLenderMetaFromDirAndInitialize()
88
88
 
89
- prettyPrint(userData)
89
+ const { userData } = await getUserData([Chain.ETHEREUM_MAINNET])
90
90
 
91
- // Basic validation
92
- expect(userData).toBeDefined()
93
- expect(typeof userData).toBe('object')
94
- } catch (error) {
95
- console.log('Error fetching Morpho Base data:', error)
96
- }
91
+ prettyPrint(userData)
92
+
93
+ // Basic validation
94
+ expect(userData).toBeDefined()
95
+ expect(typeof userData).toBe('object')
97
96
  },
98
97
  { timeout: 30000 },
99
98
  )
@@ -4,7 +4,8 @@ import {
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
6
  import { getEvmClient } from '@1delta/providers'
7
- import { Chain, Lender } from '@1delta/asset-registry'
7
+ import { Chain } from '@1delta/chain-registry'
8
+ import { Lender } from '@1delta/lender-registry'
8
9
  import { prettyPrint } from './utils'
9
10
  import { TestData } from './data'
10
11
  // random user with ETH
@@ -9,7 +9,8 @@ import {
9
9
  getLenderPublicData,
10
10
  } from '../src'
11
11
  import { multicallRetry, getEvmClient } from '@1delta/providers'
12
- import { Chain, Lender } from '@1delta/asset-registry'
12
+ import { Chain } from '@1delta/chain-registry'
13
+ import { Lender } from '@1delta/lender-registry'
13
14
  import { LenderUserQuery } from '../src/lending/user-data/types'
14
15
  import { getLendersForChain } from '../src/utils'
15
16
  import { prettyPrint } from './utils'
@@ -5,7 +5,8 @@ import {
5
5
  } from '../src/lending/user-data/fetchUserData'
6
6
  import { fetchGeneralYields, fetchMainPrices } from '../src'
7
7
  import { getEvmClient } from '@1delta/providers'
8
- import { Chain, Lender } from '@1delta/asset-registry'
8
+ import { Chain } from '@1delta/chain-registry'
9
+ import { Lender } from '@1delta/lender-registry'
9
10
  import { LenderUserQuery } from '../src/lending/user-data/types'
10
11
  import { fetchMorphoPublicData } from '../src/lending/morpho/publicCallBuild'
11
12
  import { prettyPrint } from './utils'
@@ -3,38 +3,44 @@ import {
3
3
  getLenderUserDataResult,
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
- import { getEvmClient } from '@1delta/providers'
7
- import { Chain, Lender } from '@1delta/asset-registry'
6
+ import { getEvmClient, getEvmClientWithCustomRpcs } from '@1delta/providers'
7
+ import { Chain } from '@1delta/chain-registry'
8
+ import { Lender } from '@1delta/lender-registry'
8
9
  import { LenderUserQuery } from '../src/lending/user-data/types'
9
10
  import { prettyPrint } from './utils'
11
+ import { fetchLenderMetaFromDirAndInitialize } from '../src/lending'
10
12
 
11
13
  // random user with ETH
12
14
  const TEST_ADDRESS = '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5'
13
- let prices
15
+ let prices, pricesHist
14
16
 
15
17
  async function getUserData(chainId: Chain, publicData: any) {
16
18
  // Define user queries
17
19
  const queries: LenderUserQuery[] = Object.keys(publicData.data).map((m) => ({
18
20
  lender: m,
19
21
  account: TEST_ADDRESS.toLowerCase(),
22
+ assets: Object.keys(publicData.data[m].data), // map the assets to query
20
23
  // params: lenders,
21
24
  }))
22
25
 
23
- // console.log("queries", queries)
26
+ // console.log("queries", queries)
24
27
 
25
28
  // Fetch raw user data
26
29
  const rawUserData = await getLenderUserDataResult(
27
30
  chainId,
28
31
  queries,
29
- getEvmClient,
32
+ getEvmClientWithCustomRpcs,
30
33
  )
34
+
35
+ // console.log('rawUserData', rawUserData)
36
+
31
37
  // Convert raw data to structured format
32
38
  const userData = convertLenderUserDataResult(
33
39
  chainId,
34
40
  queries,
35
41
  rawUserData,
36
42
  prices as any,
37
- prices as any,
43
+ pricesHist as any,
38
44
  { [chainId]: publicData },
39
45
  )
40
46
 
@@ -47,28 +53,21 @@ describe(
47
53
  it(
48
54
  'should fetch user data for Morpho on KATANA',
49
55
  async () => {
50
- try {
51
- const chainId = Chain.ETHEREUM_MAINNET
52
- const all = await fetch(
53
- `https://margin-data.1delta.io/lending-multi?chains=${chainId}`,
54
- ).then((a) => a.json())
55
- prices = all.prices
56
-
57
- const publicData = all.data[chainId]
58
- const { userData } = await getUserData(chainId, publicData)
56
+ await fetchLenderMetaFromDirAndInitialize()
57
+ const chainId = Chain.ETHEREUM_MAINNET
58
+ const all = await fetch(
59
+ `https://margin-data.1delta.io/lending-multi?chains=${chainId}`,
60
+ ).then((a) => a.json())
61
+ prices = all.prices
62
+ pricesHist = all.pricesHist
63
+ const publicData = all.data[chainId]
64
+ const { userData } = await getUserData(chainId, publicData)
59
65
 
60
- prettyPrint(
61
- userData[
62
- 'MORPHO_BLUE_C4E18EB6D0E9B0FA90A15BC0A98190CBF3D5BA763AF410346F5174B014CEFD8D'
63
- ],
64
- )
66
+ prettyPrint(userData)
65
67
 
66
- // Basic validation
67
- expect(userData).toBeDefined()
68
- expect(typeof userData).toBe('object')
69
- } catch (error) {
70
- console.log('Error fetching Morpho KATANA data:', error)
71
- }
68
+ // Basic validation
69
+ expect(userData).toBeDefined()
70
+ expect(typeof userData).toBe('object')
72
71
  },
73
72
  { timeout: 30000 },
74
73
  )
@@ -4,7 +4,8 @@ import {
4
4
  convertLenderUserDataResult,
5
5
  } from '../src/lending/user-data/fetchUserData'
6
6
  import { getEvmClient } from '@1delta/providers'
7
- import { Chain, Lender } from '@1delta/asset-registry'
7
+ import { Chain } from '@1delta/chain-registry'
8
+ import { Lender } from '@1delta/lender-registry'
8
9
  import { LenderUserQuery } from '../src/lending/user-data/types'
9
10
  import { prettyPrint } from './utils'
10
11
 
package/test/utils.ts CHANGED
@@ -10,4 +10,14 @@ export function prettyPrint(obj: any) {
10
10
  console.log(`${keyStr} ${value}`)
11
11
  }
12
12
  }
13
- }
13
+ }
14
+
15
+ const getListUrl = (chainId: string) =>
16
+ `https://raw.githubusercontent.com/1delta-DAO/asset-lists/main/${chainId}.json`
17
+
18
+ export async function getDeltaTokenList(chain: string) {
19
+ const data = await fetch(getListUrl(chain))
20
+ // @ts-ignore
21
+ const list = (await data.json()).list as GenericTokenList
22
+ return list
23
+ }
@@ -1,11 +0,0 @@
1
- import { Lender } from "@1delta/asset-registry";
2
- import { MorphoUserReserveResponse } from "../types";
3
- import { MorphoMarket } from "../../morpho/types";
4
- export declare const getMorphoUserDataConverter: (lender: Lender, chainId: string, account: string, markets: MorphoMarket[], prices: {
5
- [asset: string]: number;
6
- }, pricesHist: {
7
- [asset: string]: number;
8
- }, lenderData: any) => [(data: any[]) => {
9
- [market: string]: MorphoUserReserveResponse;
10
- } | undefined, number];
11
- //# sourceMappingURL=userCallParseNoDeploy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"userCallParseNoDeploy.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/morpho/userCallParseNoDeploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,YAAY,EAAE,EACvB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,YAAY;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACvC,YAAY,GAAG,KACd,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAoDvF,CAAA"}
@@ -1,112 +0,0 @@
1
- import { getAssetMeta, toGenericPriceKey, toOracleKey } from "../../../assets";
2
- import { createBaseTypeUserState } from "../utils";
3
- import { MorphoPositionParams } from "./types";
4
- import { parseRawAmount } from "../../../utils/parsing";
5
- import { toAssetsDown } from "./morphoLib";
6
- export const getMorphoUserDataConverter = (lender, chainId, account, markets, prices, pricesHist, lenderData) => {
7
- const expectedNumberOfCalls = markets.length * 2;
8
- return [
9
- (data) => {
10
- if (data.length !== expectedNumberOfCalls) {
11
- return undefined;
12
- }
13
- let datas = {};
14
- for (let i = 0; i < markets.length; i++) {
15
- let totalDebt24h = 0;
16
- let totalDeposits24h = 0;
17
- const market = markets[i];
18
- const { dataForMarket, addedDebt, addedDeposits } = createMorphoEntryFromMarket(i, data, chainId, market, prices, pricesHist);
19
- if (!dataForMarket)
20
- continue;
21
- totalDebt24h += addedDebt;
22
- totalDeposits24h += addedDeposits;
23
- const payload = {
24
- chainId,
25
- account,
26
- lendingPositions: { "0": dataForMarket },
27
- rewards: {},
28
- };
29
- const userData = createBaseTypeUserState(payload, lenderData, totalDeposits24h, totalDebt24h);
30
- datas[market.lender] = {
31
- ...payload,
32
- ...userData,
33
- id: market.id
34
- };
35
- }
36
- return datas;
37
- },
38
- expectedNumberOfCalls,
39
- ];
40
- };
41
- function createMorphoEntryFromMarket(i, data, chainId, market, prices, pricesHist) {
42
- const userPosition = data[2 * i];
43
- const marketData = data[2 * i + 1];
44
- const collateralBalance = userPosition[MorphoPositionParams.collateral]?.toString();
45
- const currentLendShares = userPosition[MorphoPositionParams.supplyShares]?.toString();
46
- const currentBorrowShares = userPosition[MorphoPositionParams.borrowShares]?.toString();
47
- const totalSupplyShares = BigInt(marketData[MorphoPositionParams.collateral]?.toString() ?? 0n);
48
- const totalSupplyAssets = BigInt(marketData[MorphoPositionParams.supplyShares]?.toString() ?? 0n);
49
- const totalBorrowShares = BigInt(marketData[MorphoPositionParams.borrowShares]?.toString() ?? 0n);
50
- const totalBorrowAssets = BigInt(marketData[MorphoPositionParams.borrowShares]?.toString() ?? 0n);
51
- if (currentLendShares === "0" &&
52
- currentBorrowShares === "0" &&
53
- collateralBalance === "0") {
54
- return {
55
- dataForMarket: undefined,
56
- addedDeposits: 0,
57
- addedDebt: 0
58
- };
59
- }
60
- const loanMeta = getAssetMeta(chainId, market.loanAddress);
61
- const loanKey = toOracleKey(loanMeta?.assetGroup) ?? toGenericPriceKey(market.loanAddress, chainId);
62
- // prices
63
- const priceLoan = prices[loanKey] ?? 1;
64
- const priceHistLoan = pricesHist?.[loanKey] ?? priceLoan;
65
- const deposits = toAssetsDown(currentLendShares, totalSupplyAssets, totalSupplyShares);
66
- const borrow = toAssetsDown(currentBorrowShares, totalBorrowAssets, totalBorrowShares);
67
- const depositDec = parseRawAmount(deposits.toString(), market.loanDecimals ?? loanMeta?.decimals ?? 18);
68
- const borrowDec = parseRawAmount(borrow.toString(), market.loanDecimals ?? loanMeta?.decimals ?? 18);
69
- const dataForLoanAsset = {
70
- poolId: market.loanAddress,
71
- underlying: market.loanAddress,
72
- deposits: parseRawAmount(deposits.toString(), market.loanDecimals ?? loanMeta?.decimals ?? 18),
73
- depositsRaw: deposits.toString(),
74
- debtStable: "0",
75
- debt: borrowDec,
76
- depositsUSD: Number(depositDec) * priceLoan,
77
- debtStableUSD: 0,
78
- debtUSD: Number(borrowDec) * priceLoan,
79
- stableBorrowRate: "0",
80
- collateralActive: true,
81
- claimableRewards: 0,
82
- };
83
- const assetMeta = getAssetMeta(chainId, market.collateralAddress);
84
- const decimals = market.collateralDecimals ?? assetMeta?.decimals ?? 18;
85
- const collateralDec = parseRawAmount(collateralBalance, decimals);
86
- const key = toOracleKey(assetMeta?.assetGroup) ?? toGenericPriceKey(market.collateralAddress, chainId);
87
- // prices
88
- const price = prices[key] ?? 1;
89
- const priceHist = pricesHist?.[key] ?? price;
90
- const dataForCollateralAsset = {
91
- poolId: market.collateralAddress,
92
- underlying: market.collateralAddress,
93
- deposits: collateralDec,
94
- depositsRaw: collateralBalance,
95
- debtStable: "0",
96
- debt: "0",
97
- depositsUSD: Number(collateralDec) * price,
98
- debtStableUSD: 0,
99
- debtUSD: 0,
100
- stableBorrowRate: "0",
101
- collateralActive: true,
102
- claimableRewards: 0,
103
- };
104
- return {
105
- dataForMarket: {
106
- [market.loanAddress]: dataForLoanAsset,
107
- [market.collateralAddress]: dataForCollateralAsset
108
- },
109
- addedDeposits: Number(depositDec) * priceHistLoan + Number(collateralDec) * priceHist,
110
- addedDebt: Number(borrowDec) * priceHistLoan
111
- };
112
- }