@1delta/margin-fetcher 0.0.10 → 0.0.13

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 (89) hide show
  1. package/dist/lending/aave-v2-type/types.d.ts +2 -0
  2. package/dist/lending/aave-v2-type/types.d.ts.map +1 -1
  3. package/dist/lending/compound-v3/publicCallParse.d.ts +4 -4
  4. package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
  5. package/dist/lending/compound-v3/publicCallParse.js +37 -22
  6. package/dist/lending/fetchLender.d.ts.map +1 -1
  7. package/dist/lending/fetchLender.js +25 -29
  8. package/dist/lending/fetchLenderAll.d.ts +2 -1
  9. package/dist/lending/fetchLenderAll.d.ts.map +1 -1
  10. package/dist/lending/fetchLenderAll.js +3 -3
  11. package/dist/lending/fetchLenderExt.d.ts +2 -1
  12. package/dist/lending/fetchLenderExt.d.ts.map +1 -1
  13. package/dist/lending/fetchLenderExt.js +28 -14
  14. package/dist/lending/index.d.ts +2 -0
  15. package/dist/lending/index.d.ts.map +1 -1
  16. package/dist/lending/index.js +2 -0
  17. package/dist/lending/morpho/convertPublic.d.ts +3 -5
  18. package/dist/lending/morpho/convertPublic.d.ts.map +1 -1
  19. package/dist/lending/morpho/convertPublic.js +16 -12
  20. package/dist/lending/morpho/fetchPublic.js +1 -1
  21. package/dist/lending/morpho/publicCallBuild.d.ts +1 -4
  22. package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
  23. package/dist/lending/morpho/types.d.ts +2 -0
  24. package/dist/lending/morpho/types.d.ts.map +1 -1
  25. package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
  26. package/dist/lending/user-data/aave-v3-type/userCallBuild.js +4 -7
  27. package/dist/lending/user-data/abis.d.ts +88 -0
  28. package/dist/lending/user-data/abis.d.ts.map +1 -1
  29. package/dist/lending/user-data/abis.js +5 -1
  30. package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
  31. package/dist/lending/user-data/compound-v3/userCallParse.js +3 -2
  32. package/dist/lending/user-data/fetchUserData.d.ts +4 -4
  33. package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
  34. package/dist/lending/user-data/fetchUserData.js +46 -25
  35. package/dist/lending/user-data/init/userCallParse.js +1 -1
  36. package/dist/lending/user-data/morpho/userCallBuild.d.ts +4 -5
  37. package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
  38. package/dist/lending/user-data/morpho/userCallBuild.js +15 -9
  39. package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -2
  40. package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
  41. package/dist/lending/user-data/morpho/userCallParse.js +15 -12
  42. package/dist/lending/user-data/types.d.ts +30 -19
  43. package/dist/lending/user-data/types.d.ts.map +1 -1
  44. package/dist/lending/user-data/types.js +12 -0
  45. package/dist/lending/user-data/utils/createGeneralUserState.d.ts +4 -4
  46. package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -1
  47. package/dist/lending/user-data/utils/createGeneralUserState.js +24 -17
  48. package/dist/utils/index.d.ts +5 -3
  49. package/dist/utils/index.d.ts.map +1 -1
  50. package/dist/utils/index.js +20 -11
  51. package/dist/utils/parsing.d.ts +1 -0
  52. package/dist/utils/parsing.d.ts.map +1 -1
  53. package/dist/utils/parsing.js +3 -0
  54. package/dist/yields/index.d.ts.map +1 -1
  55. package/dist/yields/index.js +12 -5
  56. package/package.json +1 -1
  57. package/src/abis/morpho/blue.ts +99 -0
  58. package/src/abis/morpho/lens.ts +31 -0
  59. package/src/lending/aave-v2-type/types.ts +2 -0
  60. package/src/lending/compound-v3/publicCallParse.ts +93 -37
  61. package/src/lending/fetchLender.ts +86 -49
  62. package/src/lending/fetchLenderAll.ts +30 -0
  63. package/src/lending/fetchLenderExt.ts +82 -0
  64. package/src/lending/index.ts +3 -1
  65. package/src/lending/morpho/convertPublic.ts +153 -0
  66. package/src/lending/morpho/fetchPublic.ts +80 -0
  67. package/src/lending/morpho/publicCallBuild.ts +11 -0
  68. package/src/lending/morpho/types.ts +129 -0
  69. package/src/lending/user-data/aave-v3-type/userCallBuild.ts +2 -8
  70. package/src/lending/user-data/abis.ts +4 -1
  71. package/src/lending/user-data/compound-v3/userCallParse.ts +3 -2
  72. package/src/lending/user-data/fetchUserData.ts +114 -33
  73. package/src/lending/user-data/init/userCallParse.ts +1 -1
  74. package/src/lending/user-data/morpho/decoder.ts +71 -0
  75. package/src/lending/user-data/morpho/morphoLib.ts +61 -0
  76. package/src/lending/user-data/morpho/types.ts +12 -0
  77. package/src/lending/user-data/morpho/userCallBuild.ts +63 -0
  78. package/src/lending/user-data/morpho/userCallParse.ts +150 -0
  79. package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +168 -0
  80. package/src/lending/user-data/types.ts +64 -42
  81. package/src/lending/user-data/utils/createGeneralUserState.ts +56 -32
  82. package/src/utils/index.ts +32 -14
  83. package/src/utils/parsing.ts +5 -0
  84. package/src/yields/index.ts +13 -4
  85. package/test/lenderData.test.ts +13251 -13649
  86. package/test/mainPrices.test.ts +1 -13
  87. package/test/morpho.test.ts +20 -0
  88. package/test/userDataMorpho.test.ts +79 -0
  89. package/test/utils.ts +13 -0
@@ -2,6 +2,7 @@ import { describe, it } from 'vitest'
2
2
  import { fetchMainPrices } from "../src"
3
3
  import { Chain } from "@1delta/asset-registry"
4
4
  import { getEvmClient } from '@1delta/providers'
5
+ import { prettyPrint } from './utils'
5
6
 
6
7
 
7
8
  describe('find prices', () => {
@@ -20,16 +21,3 @@ describe('find prices', () => {
20
21
  })
21
22
  }, { timeout: 10000 })
22
23
 
23
-
24
- function prettyPrint(obj: any) {
25
- for (const key in obj) {
26
- const value = obj[key]
27
- const keyStr = `\x1b[1m\x1b[36m${key}:\x1b[0m` // bold cyan
28
- if (typeof value === 'object' && value !== null) {
29
- console.log(`${keyStr}`)
30
- console.dir(value, { depth: null, colors: true })
31
- } else {
32
- console.log(`${keyStr} ${value}`)
33
- }
34
- }
35
- }
@@ -0,0 +1,20 @@
1
+ import { describe, it } from 'vitest'
2
+ import { Chain } from "@1delta/asset-registry"
3
+ import { prettyPrint } from './utils'
4
+ import { fetchMorphoMarkets } from "../src/lending/morpho/fetchPublic"
5
+ import { convertMarketsToMorphoResponse } from "../src/lending/morpho/convertPublic"
6
+
7
+
8
+ describe('find MB lending data', () => {
9
+
10
+ it('should return and convert MB public data', async () => {
11
+ const chainId = Chain.BASE
12
+
13
+ const mbData = await fetchMorphoMarkets(chainId)
14
+
15
+ const converted = convertMarketsToMorphoResponse(mbData, chainId)
16
+
17
+ prettyPrint(converted)
18
+ })
19
+
20
+ })
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect, beforeAll } from 'vitest'
2
+ import {
3
+ getLenderUserDataResult,
4
+ convertLenderUserDataResult,
5
+ } from '../src/lending/user-data/fetchUserData'
6
+ import { fetchGeneralYields, fetchMainPrices } from '../src'
7
+ import { getEvmClient } from '@1delta/providers'
8
+ import { Chain, Lender } from '@1delta/asset-registry'
9
+ import { LenderUserQuery } from '../src/lending/user-data/types'
10
+ import { fetchMorphoPublicData } from '../src/lending/morpho/publicCallBuild'
11
+ import { prettyPrint } from './utils'
12
+
13
+ // random user with ETH
14
+ const TEST_ADDRESS = '0xbadA9c382165b31419F4CC0eDf0Fa84f80A3C8E5'
15
+ let prices, yields
16
+
17
+ async function getUserData(chainId: Chain, lenders: string[]) {
18
+ const publicData = {
19
+ data: await fetchMorphoPublicData(chainId),
20
+ }
21
+ // Define user queries
22
+ const queries: LenderUserQuery = {
23
+ lender: lenders[0],
24
+ account: TEST_ADDRESS.toLowerCase(),
25
+ // params: lenders,
26
+ }
27
+
28
+ // Fetch raw user data
29
+ const rawUserData = await getLenderUserDataResult(
30
+ chainId,
31
+ [queries],
32
+ getEvmClient,
33
+ )
34
+
35
+ // Convert raw data to structured format
36
+ const userData = convertLenderUserDataResult(
37
+ chainId,
38
+ [queries],
39
+ rawUserData,
40
+ prices as any,
41
+ prices as any,
42
+ { [chainId]: publicData },
43
+ )
44
+
45
+ return { userData, rawUserData, publicData, queries }
46
+ }
47
+
48
+ describe(
49
+ 'user data fetching',
50
+ () => {
51
+ beforeAll(async () => {
52
+ ;[prices, yields] = await Promise.all([
53
+ fetchMainPrices([Chain.BASE], getEvmClient),
54
+ fetchGeneralYields(),
55
+ ])
56
+ }, 30000)
57
+
58
+ it(
59
+ 'should fetch user data for Morpho on Base',
60
+ async () => {
61
+ try {
62
+ const { userData } = await getUserData(Chain.BASE, [
63
+ 'MORPHO_BLUE_6600AAE6C56D242FA6BA68BD527AFF1A146E77813074413186828FD3F1CDCA91',
64
+ ])
65
+
66
+ prettyPrint(userData)
67
+
68
+ // Basic validation
69
+ expect(userData).toBeDefined()
70
+ expect(typeof userData).toBe('object')
71
+ } catch (error) {
72
+ console.log('Error fetching Morpho Base data:', error)
73
+ }
74
+ },
75
+ { timeout: 30000 },
76
+ )
77
+ },
78
+ { timeout: 90000 },
79
+ )
package/test/utils.ts ADDED
@@ -0,0 +1,13 @@
1
+
2
+ export function prettyPrint(obj: any) {
3
+ for (const key in obj) {
4
+ const value = obj[key]
5
+ const keyStr = `\x1b[1m\x1b[36m${key}:\x1b[0m` // bold cyan
6
+ if (typeof value === 'object' && value !== null) {
7
+ console.log(`${keyStr}`)
8
+ console.dir(value, { depth: null, colors: true })
9
+ } else {
10
+ console.log(`${keyStr} ${value}`)
11
+ }
12
+ }
13
+ }