@1delta/margin-fetcher 0.0.11 → 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.
- package/dist/lending/aave-v2-type/types.d.ts +2 -0
- package/dist/lending/aave-v2-type/types.d.ts.map +1 -1
- package/dist/lending/fetchLender.d.ts.map +1 -1
- package/dist/lending/fetchLender.js +25 -29
- package/dist/lending/fetchLenderAll.d.ts +2 -1
- package/dist/lending/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/fetchLenderAll.js +3 -3
- package/dist/lending/fetchLenderExt.d.ts +2 -1
- package/dist/lending/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/fetchLenderExt.js +28 -14
- package/dist/lending/index.d.ts +2 -0
- package/dist/lending/index.d.ts.map +1 -1
- package/dist/lending/index.js +2 -0
- package/dist/lending/morpho/convertPublic.d.ts +3 -5
- package/dist/lending/morpho/convertPublic.d.ts.map +1 -1
- package/dist/lending/morpho/convertPublic.js +16 -12
- package/dist/lending/morpho/fetchPublic.js +1 -1
- package/dist/lending/morpho/publicCallBuild.d.ts +1 -4
- package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/morpho/types.d.ts +2 -0
- package/dist/lending/morpho/types.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.js +4 -7
- package/dist/lending/user-data/abis.d.ts +88 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/abis.js +5 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.js +1 -0
- package/dist/lending/user-data/fetchUserData.d.ts +4 -4
- package/dist/lending/user-data/fetchUserData.d.ts.map +1 -1
- package/dist/lending/user-data/fetchUserData.js +46 -25
- package/dist/lending/user-data/morpho/userCallBuild.d.ts +4 -5
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.js +15 -9
- package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -2
- package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallParse.js +15 -12
- package/dist/lending/user-data/types.d.ts +30 -19
- package/dist/lending/user-data/types.d.ts.map +1 -1
- package/dist/lending/user-data/types.js +12 -0
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts +4 -4
- package/dist/lending/user-data/utils/createGeneralUserState.d.ts.map +1 -1
- package/dist/lending/user-data/utils/createGeneralUserState.js +24 -17
- package/dist/utils/index.d.ts +5 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +20 -11
- package/dist/utils/parsing.d.ts +1 -0
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +3 -0
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +12 -5
- package/package.json +1 -1
- package/src/abis/morpho/blue.ts +99 -0
- package/src/abis/morpho/lens.ts +31 -0
- package/src/lending/aave-v2-type/types.ts +2 -0
- package/src/lending/fetchLender.ts +86 -49
- package/src/lending/fetchLenderAll.ts +30 -0
- package/src/lending/fetchLenderExt.ts +82 -0
- package/src/lending/index.ts +3 -1
- package/src/lending/morpho/convertPublic.ts +153 -0
- package/src/lending/morpho/fetchPublic.ts +80 -0
- package/src/lending/morpho/publicCallBuild.ts +11 -0
- package/src/lending/morpho/types.ts +129 -0
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +2 -8
- package/src/lending/user-data/abis.ts +4 -1
- package/src/lending/user-data/compound-v3/userCallParse.ts +1 -0
- package/src/lending/user-data/fetchUserData.ts +114 -33
- package/src/lending/user-data/morpho/decoder.ts +71 -0
- package/src/lending/user-data/morpho/morphoLib.ts +61 -0
- package/src/lending/user-data/morpho/types.ts +12 -0
- package/src/lending/user-data/morpho/userCallBuild.ts +63 -0
- package/src/lending/user-data/morpho/userCallParse.ts +150 -0
- package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +168 -0
- package/src/lending/user-data/types.ts +64 -42
- package/src/lending/user-data/utils/createGeneralUserState.ts +56 -32
- package/src/utils/index.ts +32 -14
- package/src/utils/parsing.ts +5 -0
- package/src/yields/index.ts +13 -4
- package/test/lenderData.test.ts +13251 -13649
- package/test/mainPrices.test.ts +1 -13
- package/test/morpho.test.ts +20 -0
- package/test/userDataMorpho.test.ts +79 -0
- package/test/utils.ts +13 -0
package/test/mainPrices.test.ts
CHANGED
|
@@ -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
|
+
}
|