@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.
- package/dist/abis/oracle/UniV3.d.ts +50 -0
- package/dist/abis/oracle/UniV3.d.ts.map +1 -0
- package/dist/abis/oracle/UniV3.js +63 -0
- package/dist/assets/index.d.ts +3 -8
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +12 -30
- package/dist/assets/liquidityThresholds.d.ts.map +1 -1
- package/dist/assets/liquidityThresholds.js +3 -3
- package/dist/flash-liquidity/assets.d.ts.map +1 -1
- package/dist/flash-liquidity/assets.js +22 -13
- package/dist/flash-liquidity/fetchLiquidity.d.ts +2 -2
- package/dist/flash-liquidity/fetchLiquidity.d.ts.map +1 -1
- package/dist/flash-liquidity/fetchLiquidity.js +11 -10
- package/dist/flash-liquidity/utils.d.ts +3 -2
- package/dist/flash-liquidity/utils.d.ts.map +1 -1
- package/dist/flash-liquidity/utils.js +5 -5
- package/dist/lending/aave-v2-type/misc.d.ts +1 -1
- package/dist/lending/aave-v2-type/misc.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/misc.js +7 -3
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts +1 -1
- package/dist/lending/aave-v2-type/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/publicCallBuild.js +11 -11
- package/dist/lending/aave-v2-type/publicCallParse.d.ts +1 -1
- package/dist/lending/aave-v2-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v2-type/publicCallParse.js +5 -5
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts +1 -1
- package/dist/lending/aave-v3-type/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/aave-v3-type/publicCallBuild.js +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.d.ts +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.d.ts.map +1 -1
- package/dist/lending/aave-v3-type/publicCallParse.js +5 -14
- package/dist/lending/addresses/aave.js +1 -1
- package/dist/lending/addresses/aaveV2.js +1 -1
- package/dist/lending/addresses/aurelius.js +1 -1
- package/dist/lending/addresses/compoundV3.d.ts +1 -1
- package/dist/lending/addresses/compoundV3.d.ts.map +1 -1
- package/dist/lending/addresses/compoundV3.js +5 -4
- package/dist/lending/addresses/contracts.d.ts +1 -1
- package/dist/lending/addresses/contracts.d.ts.map +1 -1
- package/dist/lending/addresses/contracts.js +1 -1
- package/dist/lending/addresses/hana.js +1 -1
- package/dist/lending/addresses/init.js +1 -1
- package/dist/lending/addresses/lendle.js +1 -1
- package/dist/lending/addresses/meridian.js +1 -1
- package/dist/lending/addresses/takotako.js +1 -1
- package/dist/lending/compound-v3/publicCallBuild.d.ts +1 -1
- package/dist/lending/compound-v3/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.d.ts +1 -1
- package/dist/lending/compound-v3/publicCallParse.d.ts.map +1 -1
- package/dist/lending/compound-v3/publicCallParse.js +3 -9
- package/dist/lending/fetchLender.d.ts +1 -1
- package/dist/lending/fetchLender.d.ts.map +1 -1
- package/dist/lending/fetchLender.js +1 -1
- package/dist/lending/fetchLenderAll.d.ts +1 -1
- package/dist/lending/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/fetchLenderAll.js +1 -1
- package/dist/lending/fetchLenderExt.d.ts +1 -1
- package/dist/lending/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/index.d.ts +1 -0
- package/dist/lending/index.d.ts.map +1 -1
- package/dist/lending/index.js +1 -0
- package/dist/lending/init/publicCallBuild.d.ts +1 -1
- package/dist/lending/init/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/init/publicCallParse.d.ts +4 -4
- package/dist/lending/init/publicCallParse.d.ts.map +1 -1
- package/dist/lending/init/publicCallParse.js +7 -7
- package/dist/lending/meta/index.d.ts +19 -0
- package/dist/lending/meta/index.d.ts.map +1 -0
- package/dist/lending/meta/index.js +83 -0
- package/dist/lending/morpho/publicCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallBuild.js +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts +2 -2
- package/dist/lending/user-data/aave-v2-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v2-type/userCallParse.js +44 -38
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParse.js +5 -5
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts +2 -2
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.d.ts.map +1 -1
- package/dist/lending/user-data/aave-v3-type/userCallParseYldr.js +15 -15
- package/dist/lending/user-data/abis.d.ts +1 -1
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/compound-v3/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/compound-v3/userCallParse.js +4 -4
- package/dist/lending/user-data/init/userCallBuild.d.ts +2 -2
- package/dist/lending/user-data/init/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/init/userCallBuild.js +3 -3
- package/dist/lending/user-data/init/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/init/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/init/userCallParse.js +4 -4
- package/dist/lending/user-data/morpho/userCallBuild.d.ts +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallBuild.js +6 -4
- package/dist/lending/user-data/morpho/userCallParse.d.ts +1 -1
- package/dist/lending/user-data/morpho/userCallParse.d.ts.map +1 -1
- package/dist/lending/user-data/morpho/userCallParse.js +5 -5
- package/dist/lending/user-data/types.js +1 -1
- package/dist/lending-pairs/computeLendingPairs.d.ts.map +1 -1
- package/dist/lending-pairs/computeLendingPairs.js +6 -6
- package/dist/prices/defillama/index.d.ts.map +1 -1
- package/dist/prices/defillama/index.js +21 -0
- package/dist/prices/main-prices/addresses/api3.js +1 -1
- package/dist/prices/main-prices/addresses/chainlink.js +1 -1
- package/dist/prices/main-prices/fetchOracleData.d.ts +6 -0
- package/dist/prices/main-prices/fetchOracleData.d.ts.map +1 -1
- package/dist/prices/main-prices/fetchOracleData.js +80 -20
- package/dist/types/index.d.ts +8 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/utils/constants.js +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +29 -26
- package/dist/utils/parsing.d.ts +1 -1
- package/dist/utils/parsing.d.ts.map +1 -1
- package/dist/utils/parsing.js +9 -8
- package/dist/yields/index.d.ts.map +1 -1
- package/dist/yields/index.js +7 -3
- package/package.json +2 -2
- package/src/abis/oracle/UniV3.ts +63 -0
- package/src/assets/index.ts +26 -66
- package/src/assets/liquidityThresholds.ts +55 -43
- package/src/flash-liquidity/assets.ts +68 -44
- package/src/flash-liquidity/fetchLiquidity.ts +13 -14
- package/src/flash-liquidity/utils.ts +22 -16
- package/src/lending/aave-v2-type/misc.ts +7 -3
- package/src/lending/aave-v2-type/publicCallBuild.ts +28 -17
- package/src/lending/aave-v2-type/publicCallParse.ts +5 -5
- package/src/lending/aave-v3-type/publicCallBuild.ts +1 -1
- package/src/lending/aave-v3-type/publicCallParse.ts +4 -14
- package/src/lending/addresses/aave.ts +1 -1
- package/src/lending/addresses/aaveV2.ts +1 -1
- package/src/lending/addresses/aurelius.ts +1 -1
- package/src/lending/addresses/compoundV3.ts +5 -12
- package/src/lending/addresses/contracts.ts +1 -1
- package/src/lending/addresses/hana.ts +1 -1
- package/src/lending/addresses/init.ts +1 -1
- package/src/lending/addresses/lendle.ts +1 -1
- package/src/lending/addresses/meridian.ts +1 -1
- package/src/lending/addresses/takotako.ts +1 -1
- package/src/lending/compound-v3/publicCallBuild.ts +1 -1
- package/src/lending/compound-v3/publicCallParse.ts +3 -10
- package/src/lending/fetchLender.ts +1 -1
- package/src/lending/fetchLenderAll.ts +1 -1
- package/src/lending/fetchLenderExt.ts +1 -1
- package/src/lending/index.ts +1 -0
- package/src/lending/init/publicCallBuild.ts +1 -1
- package/src/lending/init/publicCallParse.ts +64 -48
- package/src/lending/meta/index.ts +124 -0
- package/src/lending/morpho/publicCallBuild.ts +0 -1
- package/src/lending/user-data/aave-v2-type/userCallBuild.ts +1 -1
- package/src/lending/user-data/aave-v2-type/userCallParse.ts +181 -122
- package/src/lending/user-data/aave-v3-type/userCallBuild.ts +1 -1
- package/src/lending/user-data/aave-v3-type/userCallParse.ts +7 -8
- package/src/lending/user-data/aave-v3-type/userCallParseYldr.ts +37 -34
- package/src/lending/user-data/abis.ts +1 -1
- package/src/lending/user-data/compound-v3/userCallBuild.ts +1 -1
- package/src/lending/user-data/compound-v3/userCallParse.ts +4 -6
- package/src/lending/user-data/fetchUserData.ts +1 -1
- package/src/lending/user-data/init/userCallBuild.ts +11 -7
- package/src/lending/user-data/init/userCallParse.ts +5 -5
- package/src/lending/user-data/morpho/userCallBuild.ts +7 -4
- package/src/lending/user-data/morpho/userCallParse.ts +8 -5
- package/src/lending/user-data/types.ts +1 -1
- package/src/lending-pairs/computeLendingPairs.ts +6 -12
- package/src/prices/defillama/index.ts +24 -0
- package/src/prices/main-prices/addresses/api3.ts +1 -1
- package/src/prices/main-prices/addresses/chainlink.ts +1 -1
- package/src/prices/main-prices/fetchOracleData.ts +118 -20
- package/src/types/index.ts +10 -4
- package/src/utils/constants.ts +1 -1
- package/src/utils/index.ts +48 -39
- package/src/utils/parsing.ts +37 -35
- package/src/yields/index.ts +7 -3
- package/test/flashLiquidity.test.ts +6 -6
- package/test/index.test.ts +1 -1
- package/test/lenderData.test.ts +10 -11
- package/test/lenderDataBasic.test.ts +1 -1
- package/test/mainPriceMB.test.ts +1 -1
- package/test/mainPrices.test.ts +16 -15
- package/test/morpho.test.ts +1 -1
- package/test/morphoPrice.test.ts +1 -1
- package/test/userData.test.ts +2 -1
- package/test/userDataAave.test.ts +1 -1
- package/test/userDataAaveMainnet.test.ts +1 -1
- package/test/userDataAll.test.ts +2 -1
- package/test/userDataCompound.test.ts +2 -1
- package/test/userDataMorpho.test.ts +2 -1
- package/test/userDataMorphoEthereum.test.ts +2 -1
- package/test/userDataMorphoKatana.test.ts +2 -1
- package/test/utils.ts +11 -1
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts +0 -11
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.d.ts.map +0 -1
- package/dist/lending/user-data/morpho/userCallParseNoDeploy.js +0 -112
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts +0 -300
- package/dist/prices/main-prices/addresses/aaveOracles.d.ts.map +0 -1
- package/dist/prices/main-prices/addresses/aaveOracles.js +0 -299
- package/dist/prices/main-prices/addresses/morpho.d.ts +0 -11
- package/dist/prices/main-prices/addresses/morpho.d.ts.map +0 -1
- package/dist/prices/main-prices/addresses/morpho.js +0 -2554
- package/src/lending/user-data/morpho/userCallParseNoDeploy.ts +0 -168
- package/src/prices/main-prices/addresses/aaveOracles.ts +0 -299
- package/src/prices/main-prices/addresses/morpho.ts +0 -2563
|
@@ -5,7 +5,8 @@ import { Api3OracleAbi } from '../../abis/oracle/Api3Oracle'
|
|
|
5
5
|
import { RWADynamicOracleAbi } from '../../abis/oracle/RWADynamicOracle'
|
|
6
6
|
|
|
7
7
|
import { api3OracleAddresses } from './addresses/api3'
|
|
8
|
-
import { AAVE_V2_LENDERS
|
|
8
|
+
import { AAVE_V2_LENDERS } from '@1delta/lender-registry'
|
|
9
|
+
import { Chain } from '@1delta/chain-registry'
|
|
9
10
|
import { formatEther, formatUnits } from 'viem'
|
|
10
11
|
import { getAaveAssets } from '../../assets'
|
|
11
12
|
import {
|
|
@@ -15,12 +16,13 @@ import {
|
|
|
15
16
|
} from './addresses/chainlink'
|
|
16
17
|
import { fetchDefillamaData } from '../defillama'
|
|
17
18
|
import { fetchPendlePrices } from '../pendle'
|
|
18
|
-
import {
|
|
19
|
-
import { AAVES_PER_CHAIN } from '../../utils'
|
|
19
|
+
import { getAavesForChain } from '../../utils'
|
|
20
20
|
import { parseRawAmount } from '../../utils/parsing'
|
|
21
21
|
import { ProxyOracleAbi } from '../../abis/oracle/ProxyOracle'
|
|
22
|
-
import { MrophoOracleInfo, MrophoOracles } from './addresses/morpho'
|
|
23
22
|
import { multicallRetry } from '@1delta/providers'
|
|
23
|
+
import { TokenList } from '../../types'
|
|
24
|
+
import { UniswapV3Abi } from '../../abis/oracle/UniV3'
|
|
25
|
+
import { aaveOracles, morphoOracles } from '@1delta/data-sdk'
|
|
24
26
|
|
|
25
27
|
export const formatAavePrice = (price: string, isV2 = false): number => {
|
|
26
28
|
try {
|
|
@@ -71,9 +73,11 @@ type QueryAave = { oracle: string; assets: string[]; fork: string }
|
|
|
71
73
|
export const fetchMainPrices = async (
|
|
72
74
|
chainIds: string[],
|
|
73
75
|
rpcOverrides?: { [chainId: string]: string },
|
|
76
|
+
lists: { [chainId: string]: { list: TokenList } } = {},
|
|
74
77
|
): Promise<OracleData> => {
|
|
78
|
+
const aaves = getAavesForChain()
|
|
75
79
|
const multicallPromises = chainIds.map(async (chainId) => {
|
|
76
|
-
const aaveForks =
|
|
80
|
+
const aaveForks = aaves?.[chainId]
|
|
77
81
|
const reservesToQuery =
|
|
78
82
|
aaveForks?.map((a) => ({
|
|
79
83
|
fork: a,
|
|
@@ -89,14 +93,15 @@ export const fetchMainPrices = async (
|
|
|
89
93
|
queries.push({
|
|
90
94
|
assets: newAssets,
|
|
91
95
|
// @ts-ignore
|
|
92
|
-
oracle:
|
|
96
|
+
oracle: aaveOracles()?.[e.fork]?.[chainId],
|
|
93
97
|
fork: e.fork,
|
|
94
98
|
})
|
|
95
99
|
newAssets.forEach((a) => handled.add(a))
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
const
|
|
103
|
+
const morphoOraclesObtained = morphoOracles()
|
|
104
|
+
const morphoQueries = (morphoOraclesObtained[chainId] ?? []).filter(
|
|
100
105
|
(a) => !handled.has(a.collateralAsset) || !handled.has(a.loanAsset),
|
|
101
106
|
)
|
|
102
107
|
|
|
@@ -104,6 +109,7 @@ export const fetchMainPrices = async (
|
|
|
104
109
|
const aaveCalls = getAaveCalls(queries)
|
|
105
110
|
const [chainlinkCalls, chainlinkNames] = getChainLinkCalls(chainId)
|
|
106
111
|
const uniswapCalls = getUniswapV2Calls(chainId)
|
|
112
|
+
const uniswapV3Calls = getUniswapV3Calls(chainId)
|
|
107
113
|
const [api3Calls, api3Names] = getApi3Calls(chainId)
|
|
108
114
|
const [rwaCalls, rwaNames] = getRWADynamicOracleCalls(chainId)
|
|
109
115
|
|
|
@@ -111,6 +117,7 @@ export const fetchMainPrices = async (
|
|
|
111
117
|
...chainlinkCalls,
|
|
112
118
|
...aaveCalls,
|
|
113
119
|
...uniswapCalls,
|
|
120
|
+
...uniswapV3Calls,
|
|
114
121
|
...api3Calls,
|
|
115
122
|
...rwaCalls,
|
|
116
123
|
...morphoCalls,
|
|
@@ -119,6 +126,7 @@ export const fetchMainPrices = async (
|
|
|
119
126
|
const abis = [
|
|
120
127
|
...ChainLinkAggregatorAbi,
|
|
121
128
|
...UniswapV2PairAbi,
|
|
129
|
+
...UniswapV3Abi,
|
|
122
130
|
...AaveOracleAbi,
|
|
123
131
|
...Api3OracleAbi,
|
|
124
132
|
...RWADynamicOracleAbi,
|
|
@@ -146,6 +154,7 @@ export const fetchMainPrices = async (
|
|
|
146
154
|
rwa: { calls: rwaCalls, names: rwaNames },
|
|
147
155
|
morpho: { queries: morphoQueries },
|
|
148
156
|
uniswapCalls,
|
|
157
|
+
uniswapV3Calls,
|
|
149
158
|
aaveCalls,
|
|
150
159
|
},
|
|
151
160
|
}
|
|
@@ -163,7 +172,15 @@ export const fetchMainPrices = async (
|
|
|
163
172
|
for (const {
|
|
164
173
|
chainId,
|
|
165
174
|
result,
|
|
166
|
-
meta: {
|
|
175
|
+
meta: {
|
|
176
|
+
queries,
|
|
177
|
+
chainlink,
|
|
178
|
+
api3,
|
|
179
|
+
rwa,
|
|
180
|
+
uniswapCalls,
|
|
181
|
+
uniswapV3Calls,
|
|
182
|
+
aaveCalls,
|
|
183
|
+
},
|
|
167
184
|
} of chainResults) {
|
|
168
185
|
let offset = 0
|
|
169
186
|
|
|
@@ -176,13 +193,22 @@ export const fetchMainPrices = async (
|
|
|
176
193
|
offset += chainlink.calls.length
|
|
177
194
|
|
|
178
195
|
const aaveSlice = result.slice(offset, offset + aaveCalls.length)
|
|
179
|
-
const aaveData = parseAaveResults(
|
|
196
|
+
const aaveData = parseAaveResults(
|
|
197
|
+
chainId,
|
|
198
|
+
aaveSlice,
|
|
199
|
+
queries,
|
|
200
|
+
lists[chainId]?.list,
|
|
201
|
+
)
|
|
180
202
|
offset += aaveCalls.length
|
|
181
203
|
|
|
182
204
|
const uniswapSlice = result.slice(offset, offset + uniswapCalls.length)
|
|
183
205
|
const uniswapData = parseUniswapV2results(uniswapSlice, chainId)
|
|
184
206
|
offset += uniswapCalls.length
|
|
185
207
|
|
|
208
|
+
const uniswapV3Slice = result.slice(offset, offset + uniswapV3Calls.length)
|
|
209
|
+
const uniswapV3Data = parseUniswapV3results(uniswapV3Slice, chainId)
|
|
210
|
+
offset += uniswapV3Calls.length
|
|
211
|
+
|
|
186
212
|
const api3Slice = result.slice(offset, offset + api3.calls.length)
|
|
187
213
|
const api3Data = parseApi3Results(chainId, api3Slice, api3.names)
|
|
188
214
|
offset += api3.calls.length
|
|
@@ -196,6 +222,7 @@ export const fetchMainPrices = async (
|
|
|
196
222
|
...chainlinkData,
|
|
197
223
|
...aaveData,
|
|
198
224
|
...uniswapData,
|
|
225
|
+
...uniswapV3Data,
|
|
199
226
|
...api3Data,
|
|
200
227
|
...rwaData,
|
|
201
228
|
}
|
|
@@ -205,20 +232,31 @@ export const fetchMainPrices = async (
|
|
|
205
232
|
for (const {
|
|
206
233
|
chainId,
|
|
207
234
|
result,
|
|
208
|
-
meta: {
|
|
235
|
+
meta: {
|
|
236
|
+
morpho,
|
|
237
|
+
chainlink,
|
|
238
|
+
aaveCalls,
|
|
239
|
+
uniswapCalls,
|
|
240
|
+
uniswapV3Calls,
|
|
241
|
+
api3,
|
|
242
|
+
rwa,
|
|
243
|
+
},
|
|
209
244
|
} of chainResults) {
|
|
210
245
|
const morphoOffset =
|
|
211
246
|
chainlink.calls.length +
|
|
212
247
|
aaveCalls.length +
|
|
213
248
|
uniswapCalls.length +
|
|
249
|
+
uniswapV3Calls.length +
|
|
214
250
|
api3.calls.length +
|
|
215
251
|
rwa.calls.length
|
|
216
252
|
const morphoResult = result.slice(morphoOffset)
|
|
253
|
+
|
|
217
254
|
const morphoData = parseMorphoResults(
|
|
218
255
|
chainId,
|
|
219
256
|
morphoResult,
|
|
220
257
|
morpho.queries,
|
|
221
258
|
allPrices,
|
|
259
|
+
lists[chainId]?.list,
|
|
222
260
|
)
|
|
223
261
|
|
|
224
262
|
allPrices = {
|
|
@@ -265,6 +303,68 @@ const getUniswapV2Calls = (chainId: string) => {
|
|
|
265
303
|
}
|
|
266
304
|
}
|
|
267
305
|
|
|
306
|
+
/**
|
|
307
|
+
* Gets the calls foir the uniswap pools
|
|
308
|
+
* @param chainId network id
|
|
309
|
+
* @returns array of calls
|
|
310
|
+
*/
|
|
311
|
+
const getUniswapV3Calls = (chainId: string) => {
|
|
312
|
+
switch (chainId) {
|
|
313
|
+
case Chain.HEMI_NETWORK:
|
|
314
|
+
return [
|
|
315
|
+
{
|
|
316
|
+
// HMEU/USDC pool
|
|
317
|
+
address: '0xe2f1012fa5e8709ed38888c15615207fac278b57',
|
|
318
|
+
name: 'slot0',
|
|
319
|
+
params: [],
|
|
320
|
+
},
|
|
321
|
+
]
|
|
322
|
+
default:
|
|
323
|
+
return []
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
const BASE_MULTI = 10n ** 18n
|
|
328
|
+
|
|
329
|
+
export function getV3PriceFromSqrt(
|
|
330
|
+
sqrtPrice: bigint,
|
|
331
|
+
t0d: number,
|
|
332
|
+
t1d: number,
|
|
333
|
+
) {
|
|
334
|
+
const scalarNumerator = 10n ** BigInt(t0d)
|
|
335
|
+
const scalarDenominator = 10n ** BigInt(t1d)
|
|
336
|
+
const sqrtP = BigInt(sqrtPrice)
|
|
337
|
+
const inputNumerator = sqrtP * sqrtP
|
|
338
|
+
const inputDenominator = 2n ** 192n
|
|
339
|
+
const adjustedForDecimalsNumerator = scalarDenominator * inputDenominator
|
|
340
|
+
const adjustedForDecimalsDenominator = scalarNumerator * inputNumerator
|
|
341
|
+
const price0to1 = Number(
|
|
342
|
+
formatUnits(
|
|
343
|
+
(adjustedForDecimalsDenominator * BASE_MULTI) /
|
|
344
|
+
adjustedForDecimalsNumerator,
|
|
345
|
+
18, // normalize amount to 18
|
|
346
|
+
),
|
|
347
|
+
) // in token1 / token0
|
|
348
|
+
return price0to1
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
const parseUniswapV3results = (data: any[], chainId: string) => {
|
|
352
|
+
switch (chainId) {
|
|
353
|
+
case Chain.HEMI_NETWORK: {
|
|
354
|
+
let uniswapData: any = {}
|
|
355
|
+
if (data.length > 0) {
|
|
356
|
+
const state = data[0]
|
|
357
|
+
const [sqrtPriceX96, , , , , ,] = state
|
|
358
|
+
const price = getV3PriceFromSqrt(sqrtPriceX96, 18, 6)
|
|
359
|
+
uniswapData['Hemi::HEMI'] = price
|
|
360
|
+
}
|
|
361
|
+
return uniswapData
|
|
362
|
+
}
|
|
363
|
+
default:
|
|
364
|
+
return {}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
268
368
|
/**
|
|
269
369
|
* Create calldata for aave oracles
|
|
270
370
|
* @param chainId network
|
|
@@ -288,7 +388,7 @@ const getAaveCalls = (query: QueryAave[]) => {
|
|
|
288
388
|
* @param addressesAaveUnderlyings address array
|
|
289
389
|
* @returns call data
|
|
290
390
|
*/
|
|
291
|
-
const getMorphoCalls = (query:
|
|
391
|
+
const getMorphoCalls = (query: any[] = []) => {
|
|
292
392
|
if (query.length === 0) return []
|
|
293
393
|
return query.map(({ oracle }) => ({
|
|
294
394
|
address: oracle,
|
|
@@ -384,6 +484,7 @@ function lowDecimalOracle(chainId: string, fork: string) {
|
|
|
384
484
|
if (chainId === Chain.AVALANCHE_C_CHAIN || chainId === Chain.MODE) {
|
|
385
485
|
return false
|
|
386
486
|
}
|
|
487
|
+
if (chainId === Chain.XDC_NETWORK) return true
|
|
387
488
|
// otherwise, it depends on whether it is aave V3
|
|
388
489
|
return AAVE_V2_LENDERS.includes(fork as any)
|
|
389
490
|
}
|
|
@@ -399,6 +500,7 @@ const parseAaveResults = (
|
|
|
399
500
|
chainId: string,
|
|
400
501
|
data: any[],
|
|
401
502
|
queries: QueryAave[],
|
|
503
|
+
list: TokenList = {},
|
|
402
504
|
) => {
|
|
403
505
|
let prices: any = {}
|
|
404
506
|
|
|
@@ -406,10 +508,7 @@ const parseAaveResults = (
|
|
|
406
508
|
if (d !== '0x') {
|
|
407
509
|
const details = queries[i]
|
|
408
510
|
details.assets.forEach((a, j) => {
|
|
409
|
-
const oracleId =
|
|
410
|
-
ASSET_META[chainId][a]?.assetGroup ??
|
|
411
|
-
ASSET_META[chainId]?.[a]?.symbol ??
|
|
412
|
-
chainId + '-' + a
|
|
511
|
+
const oracleId = list[a]?.assetGroup ?? chainId + '-' + a
|
|
413
512
|
prices[oracleId] = formatAavePrice(
|
|
414
513
|
d[j].toString(),
|
|
415
514
|
lowDecimalOracle(chainId, details.fork as any),
|
|
@@ -424,8 +523,9 @@ const parseAaveResults = (
|
|
|
424
523
|
const parseMorphoResults = (
|
|
425
524
|
chainId: string,
|
|
426
525
|
data: any[],
|
|
427
|
-
queries:
|
|
526
|
+
queries: any[],
|
|
428
527
|
donePrices: any = {},
|
|
528
|
+
list: TokenList = {},
|
|
429
529
|
) => {
|
|
430
530
|
let prices: any = {}
|
|
431
531
|
data.forEach((d, i) => {
|
|
@@ -437,13 +537,11 @@ const parseMorphoResults = (
|
|
|
437
537
|
collateralAssetDecimals,
|
|
438
538
|
} = details
|
|
439
539
|
|
|
440
|
-
const oracleId =
|
|
441
|
-
ASSET_META[chainId][loanAsset]?.assetGroup ?? chainId + '-' + loanAsset
|
|
540
|
+
const oracleId = list[loanAsset]?.assetGroup ?? chainId + '-' + loanAsset
|
|
442
541
|
// get price from map or just computed ones
|
|
443
542
|
const debtPrice = donePrices[oracleId] ?? prices[oracleId]
|
|
444
543
|
const oracleIdCollateral =
|
|
445
|
-
|
|
446
|
-
chainId + '-' + collateralAsset
|
|
544
|
+
list[collateralAsset]?.assetGroup ?? chainId + '-' + collateralAsset
|
|
447
545
|
// get price from map or just computed ones
|
|
448
546
|
const collateralPrice =
|
|
449
547
|
donePrices[oracleIdCollateral] ?? prices[oracleIdCollateral]
|
package/src/types/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './apiReturnType'
|
|
2
2
|
|
|
3
3
|
export interface ParsedResponse {
|
|
4
4
|
price: number
|
|
@@ -13,7 +13,7 @@ export enum ChainlinkAggregatorIndexes {
|
|
|
13
13
|
answer,
|
|
14
14
|
startedAt,
|
|
15
15
|
updatedAt,
|
|
16
|
-
answeredInRound
|
|
16
|
+
answeredInRound,
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
interface LenderRewardsEntry {
|
|
@@ -23,7 +23,9 @@ interface LenderRewardsEntry {
|
|
|
23
23
|
|
|
24
24
|
export type LenderRewardsMap = { [key: string]: LenderRewardsEntry }
|
|
25
25
|
export type NumberMap = { [key: string]: number }
|
|
26
|
-
export type FullLenderRewardsMap = {
|
|
26
|
+
export type FullLenderRewardsMap = {
|
|
27
|
+
[chainId: string]: { [lender: string]: LenderRewardsMap }
|
|
28
|
+
}
|
|
27
29
|
export type AdditionalYields = {
|
|
28
30
|
intrinsicYields: NumberMap
|
|
29
31
|
lenderRewards: FullLenderRewardsMap
|
|
@@ -35,4 +37,8 @@ export declare interface GeneralCall {
|
|
|
35
37
|
params?: any[] // Function params
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
export
|
|
40
|
+
export type TokenList = {
|
|
41
|
+
[address: string]: { decimals: number; assetGroup?: string }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export * from './providers'
|
package/src/utils/constants.ts
CHANGED
package/src/utils/index.ts
CHANGED
|
@@ -1,34 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AAVE_FORK_POOL_DATA,
|
|
3
|
-
AAVE_STYLE_RESERVE_ASSETS,
|
|
4
2
|
AAVE_V2_LENDERS,
|
|
5
3
|
AAVE_V3_LENDERS,
|
|
6
|
-
COMPOUND_BASE_TOKENS,
|
|
7
|
-
COMPOUND_STYLE_RESERVE_ASSETS,
|
|
8
|
-
INIT_STYLE_RESERVE_ASSETS,
|
|
9
4
|
Lender,
|
|
10
|
-
SWAYLEND_RESERVE_ASSETS,
|
|
11
|
-
INIT_CONFIG_DATA,
|
|
12
|
-
MORPHO_BLUE_POOL_DATA,
|
|
13
5
|
AAVE_V32_LENDERS,
|
|
14
|
-
} from
|
|
15
|
-
import { uniq } from
|
|
16
|
-
import { COMPOSERS } from
|
|
17
|
-
import { zeroAddress } from
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
} from '@1delta/lender-registry'
|
|
7
|
+
import { uniq } from 'lodash'
|
|
8
|
+
import { COMPOSERS } from './constants'
|
|
9
|
+
import { zeroAddress } from 'viem'
|
|
10
|
+
import {
|
|
11
|
+
aavePools,
|
|
12
|
+
aaveReserves,
|
|
13
|
+
compoundV3Pools,
|
|
14
|
+
compoundV3Reserves,
|
|
15
|
+
initConfig,
|
|
16
|
+
morphoPools,
|
|
17
|
+
} from '@1delta/data-sdk'
|
|
18
|
+
|
|
19
|
+
const COMPOUND_V3_KEY = 'COMPOUND_V3'
|
|
20
|
+
|
|
21
|
+
export function isCompoundV3(lender: string) {
|
|
22
|
+
return lender?.startsWith(COMPOUND_V3_KEY)
|
|
23
|
+
}
|
|
22
24
|
|
|
23
|
-
export function isCompoundV3Type(lender: string) {
|
|
25
|
+
export function isCompoundV3Type(lender: string) {
|
|
26
|
+
return lender?.startsWith(COMPOUND_V3_KEY)
|
|
27
|
+
}
|
|
24
28
|
|
|
25
|
-
export function isInit(lender: string) {
|
|
29
|
+
export function isInit(lender: string) {
|
|
30
|
+
return lender === Lender.INIT
|
|
31
|
+
}
|
|
26
32
|
|
|
27
33
|
export function isMorphoType(lender: string) {
|
|
28
|
-
return lender?.startsWith(
|
|
34
|
+
return lender?.startsWith('MORPHO_BLUE')
|
|
29
35
|
}
|
|
30
36
|
|
|
31
|
-
const SWAYLEND_KEY =
|
|
37
|
+
const SWAYLEND_KEY = 'SWAYLEND'
|
|
32
38
|
|
|
33
39
|
export function isAaveV3Type(lender: string) {
|
|
34
40
|
return AAVE_V3_LENDERS.includes(lender as any)
|
|
@@ -57,35 +63,37 @@ export function isSwaylend(lender: string) {
|
|
|
57
63
|
export const getLendersForChain = (c: string) => {
|
|
58
64
|
let lenders: string[] = []
|
|
59
65
|
// aaves
|
|
60
|
-
Object.entries(
|
|
66
|
+
Object.entries(aavePools() ?? {}).forEach(([l, data]) => {
|
|
61
67
|
const chains = Object.keys(data)
|
|
62
68
|
if (chains.includes(c)) lenders.push(l)
|
|
63
69
|
})
|
|
64
70
|
|
|
65
71
|
// compound V3s
|
|
66
|
-
Object.entries(
|
|
72
|
+
Object.entries(compoundV3Pools() ?? {}).forEach(([l, data]) => {
|
|
67
73
|
const chains = Object.keys(data)
|
|
68
74
|
if (chains.includes(c)) lenders.push(l)
|
|
69
75
|
})
|
|
70
76
|
|
|
71
77
|
// init
|
|
72
|
-
Object.entries(
|
|
78
|
+
Object.entries(initConfig() ?? {}).forEach(([l, data]) => {
|
|
73
79
|
const chains = Object.keys(data)
|
|
74
80
|
if (chains.includes(c)) lenders.push(l)
|
|
75
81
|
})
|
|
76
82
|
|
|
77
83
|
// morpho
|
|
78
|
-
Object.entries(
|
|
84
|
+
Object.entries(morphoPools() ?? {}).forEach(([l, data]) => {
|
|
79
85
|
const chains = Object.keys(data)
|
|
80
86
|
if (chains.includes(c)) lenders.push(l)
|
|
81
87
|
})
|
|
82
88
|
|
|
83
|
-
|
|
84
89
|
return lenders
|
|
85
90
|
}
|
|
86
91
|
|
|
87
92
|
/** Filter lenders by protocol list */
|
|
88
|
-
export const filterLendersByProtocol = (
|
|
93
|
+
export const filterLendersByProtocol = (
|
|
94
|
+
allLenders: string[],
|
|
95
|
+
protocolList?: string[],
|
|
96
|
+
): string[] => {
|
|
89
97
|
// return all lenders if no filter is provided
|
|
90
98
|
if (!protocolList || protocolList.length === 0) {
|
|
91
99
|
return allLenders
|
|
@@ -93,12 +101,17 @@ export const filterLendersByProtocol = (allLenders: string[], protocolList?: str
|
|
|
93
101
|
|
|
94
102
|
const hasMorpho = protocolList.includes(Lender.MORPHO_BLUE)
|
|
95
103
|
// Filter lenders based on protocol list
|
|
96
|
-
return allLenders.filter(
|
|
104
|
+
return allLenders.filter(
|
|
105
|
+
(lender) =>
|
|
106
|
+
protocolList.includes(lender) ||
|
|
107
|
+
(hasMorpho && lender?.startsWith('MORPHO_BLUE')),
|
|
108
|
+
)
|
|
97
109
|
}
|
|
98
110
|
|
|
99
|
-
|
|
111
|
+
/** All aave protocols per chain */
|
|
112
|
+
export const getAavesForChain = () => {
|
|
100
113
|
let lenders: { [c: string]: string[] } = {}
|
|
101
|
-
Object.entries(
|
|
114
|
+
Object.entries(aavePools() ?? {}).forEach(([l, data]) => {
|
|
102
115
|
Object.entries(data).forEach(([chain, data]) => {
|
|
103
116
|
if (!lenders[chain]) lenders[chain] = []
|
|
104
117
|
lenders[chain] = uniq([...lenders[chain], l])
|
|
@@ -107,26 +120,22 @@ const getAavesForChain = () => {
|
|
|
107
120
|
return lenders
|
|
108
121
|
}
|
|
109
122
|
|
|
110
|
-
/** All aave protocols per chain */
|
|
111
|
-
export const AAVES_PER_CHAIN = getAavesForChain()
|
|
112
|
-
|
|
113
123
|
export const getComposerAddress = (chainId: string): string => {
|
|
114
124
|
return COMPOSERS[chainId as keyof typeof COMPOSERS] ?? zeroAddress
|
|
115
125
|
}
|
|
116
126
|
|
|
117
127
|
export const getLenderAssets = (
|
|
118
128
|
chainId: string | number | undefined,
|
|
119
|
-
lendingProtocol = Lender.AAVE_V3
|
|
129
|
+
lendingProtocol = Lender.AAVE_V3,
|
|
120
130
|
): string[] => {
|
|
121
131
|
if (!chainId) return []
|
|
122
|
-
if (isAaveType(lendingProtocol))
|
|
123
|
-
|
|
124
|
-
if (
|
|
125
|
-
|
|
132
|
+
if (isAaveType(lendingProtocol))
|
|
133
|
+
return aaveReserves()?.[lendingProtocol]?.[chainId] ?? []
|
|
134
|
+
if (isCompoundV3(lendingProtocol))
|
|
135
|
+
return compoundV3Reserves()?.[lendingProtocol]?.[chainId] ?? []
|
|
126
136
|
return []
|
|
127
137
|
}
|
|
128
138
|
|
|
129
|
-
|
|
130
139
|
export function isMultiMarket(lender: string) {
|
|
131
|
-
return lender?.startsWith(
|
|
140
|
+
return lender?.startsWith('MORPHO_BLUE')
|
|
132
141
|
}
|
package/src/utils/parsing.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { Chain
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Chain } from '@1delta/chain-registry'
|
|
2
|
+
import { Lender } from '@1delta/lender-registry'
|
|
3
|
+
import { formatEther, formatUnits } from 'viem'
|
|
4
|
+
import { isCompoundV3 } from '.'
|
|
4
5
|
|
|
5
|
-
export const BPS = 10000
|
|
6
|
+
export const BPS = 10000
|
|
6
7
|
|
|
7
8
|
export const parseRawAmount = (answer?: string, decimals = 18): string => {
|
|
8
|
-
if (!answer || answer ===
|
|
9
|
+
if (!answer || answer === '0x') return '0'
|
|
9
10
|
try {
|
|
10
|
-
return formatUnits(BigInt(answer ??
|
|
11
|
+
return formatUnits(BigInt(answer ?? '0'), decimals ?? 18)
|
|
11
12
|
} catch (e) {
|
|
12
|
-
return
|
|
13
|
+
return '0'
|
|
13
14
|
}
|
|
14
|
-
}
|
|
15
|
+
}
|
|
15
16
|
|
|
16
17
|
export enum TimeScale {
|
|
17
18
|
BLOCK,
|
|
@@ -22,59 +23,60 @@ const BLOCK_TIMES: { [chainId: string]: number } = {
|
|
|
22
23
|
5: 12,
|
|
23
24
|
1: 12,
|
|
24
25
|
56: 3,
|
|
25
|
-
}
|
|
26
|
+
}
|
|
26
27
|
|
|
27
28
|
// Converters from apy to apr and reversed
|
|
28
29
|
|
|
29
|
-
const SECONDS_PER_YEAR = 31536000
|
|
30
|
+
const SECONDS_PER_YEAR = 31536000
|
|
30
31
|
|
|
31
32
|
export const aprToApy = (apr: number) => {
|
|
32
|
-
return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1
|
|
33
|
-
}
|
|
33
|
+
return (1 + apr / SECONDS_PER_YEAR) ** SECONDS_PER_YEAR - 1
|
|
34
|
+
}
|
|
34
35
|
|
|
35
36
|
export const apyToApr = (apy: number) => {
|
|
36
|
-
return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR
|
|
37
|
-
}
|
|
37
|
+
return ((apy + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR
|
|
38
|
+
}
|
|
38
39
|
|
|
39
40
|
export const apyToAprPercent = (apy: number) => {
|
|
40
|
-
return
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
return (
|
|
42
|
+
100 * ((apy / 100 + 1) ** (1 / SECONDS_PER_YEAR) - 1) * SECONDS_PER_YEAR
|
|
43
|
+
)
|
|
44
|
+
}
|
|
43
45
|
|
|
44
46
|
export const formatAaveYieldToNumber = (n?: string | bigint): number => {
|
|
45
|
-
if (!n) return 0
|
|
46
|
-
return Number(formatEther(BigInt(n) / BigInt(1e7)))
|
|
47
|
-
}
|
|
47
|
+
if (!n) return 0
|
|
48
|
+
return Number(formatEther(BigInt(n) / BigInt(1e7)))
|
|
49
|
+
}
|
|
48
50
|
|
|
49
51
|
export const calculateRateForCompound = (
|
|
50
52
|
n: string,
|
|
51
53
|
chainId: string,
|
|
52
|
-
lender = Lender.COMPOUND_V3_USDCE
|
|
54
|
+
lender = Lender.COMPOUND_V3_USDCE,
|
|
53
55
|
): number => {
|
|
54
|
-
let scale = TimeScale.MS
|
|
56
|
+
let scale = TimeScale.MS
|
|
55
57
|
if (isCompoundV3(lender) || Lender.COMPOUND_V2) {
|
|
56
|
-
scale = TimeScale.BLOCK
|
|
58
|
+
scale = TimeScale.BLOCK
|
|
57
59
|
} else if (chainId === Chain.BNB_SMART_CHAIN_MAINNET) {
|
|
58
|
-
scale = TimeScale.BLOCK
|
|
60
|
+
scale = TimeScale.BLOCK
|
|
59
61
|
}
|
|
60
|
-
const rate = Number(formatEther(BigInt(n)))
|
|
62
|
+
const rate = Number(formatEther(BigInt(n)))
|
|
61
63
|
if (scale === TimeScale.BLOCK)
|
|
62
64
|
return (
|
|
63
65
|
(Math.pow((rate * 60 * 60 * 24) / (BLOCK_TIMES[chainId] ?? 1) + 1, 365) -
|
|
64
66
|
1) *
|
|
65
67
|
100
|
|
66
|
-
)
|
|
68
|
+
)
|
|
67
69
|
|
|
68
|
-
return (Math.pow(rate * 60 * 60 * 24 + 1, 365) - 1) * 100
|
|
69
|
-
}
|
|
70
|
+
return (Math.pow(rate * 60 * 60 * 24 + 1, 365) - 1) * 100
|
|
71
|
+
}
|
|
70
72
|
export const formatAaveRawApyToApr = (raw: bigint | string | undefined) => {
|
|
71
|
-
const apy = formatAaveYieldToNumber(raw)
|
|
72
|
-
return apyToApr(apy / 100) * 100
|
|
73
|
-
}
|
|
73
|
+
const apy = formatAaveYieldToNumber(raw)
|
|
74
|
+
return apyToApr(apy / 100) * 100
|
|
75
|
+
}
|
|
74
76
|
|
|
75
77
|
// converts rate per second to rate per year
|
|
76
78
|
export const convertRateToApr = (ratePerSecond: number | string) => {
|
|
77
|
-
const rps = Number(ratePerSecond)
|
|
78
|
-
if (isNaN(rps)) return 0
|
|
79
|
-
return rps * 3600 * 24 * 365 * 100
|
|
80
|
-
}
|
|
79
|
+
const rps = Number(ratePerSecond)
|
|
80
|
+
if (isNaN(rps)) return 0
|
|
81
|
+
return rps * 3600 * 24 * 365 * 100
|
|
82
|
+
}
|
package/src/yields/index.ts
CHANGED
|
@@ -153,8 +153,9 @@ export const fetchGeneralYields = async () => {
|
|
|
153
153
|
})
|
|
154
154
|
|
|
155
155
|
const stmaticPromise = safeFetch('STMATIC', async () => {
|
|
156
|
-
const res = await fetch(FeedData.STMATIC).then((r) => r.json())
|
|
157
|
-
return Number(res.apr) * 0.9
|
|
156
|
+
// const res = await fetch(FeedData.STMATIC).then((r) => r.json())
|
|
157
|
+
// return Number(res.apr) * 0.9
|
|
158
|
+
return 0
|
|
158
159
|
})
|
|
159
160
|
|
|
160
161
|
const savaxPromise = safeFetch('SAVAX', async () => {
|
|
@@ -230,7 +231,10 @@ export const fetchGeneralYields = async () => {
|
|
|
230
231
|
const key = addressToAssetYearn[addr.toLowerCase()]
|
|
231
232
|
if (key) {
|
|
232
233
|
const apr =
|
|
233
|
-
((data.apr.netAPR ?? 0) +
|
|
234
|
+
((data.apr.netAPR ?? 0) +
|
|
235
|
+
(data.apr.extra.extrinsicYield ?? 0) +
|
|
236
|
+
(data.apr.extra.katanaNativeYield ?? 0)) *
|
|
237
|
+
100
|
|
234
238
|
map[key] = apr
|
|
235
239
|
}
|
|
236
240
|
})
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { describe, it } from 'vitest'
|
|
2
2
|
import { attachPricesToFlashLiquidity, fetchFlashLiquidityForChain, fetchMainPrices } from "../src"
|
|
3
3
|
import { getEvmClient, multicallRetry } from "@1delta/providers"
|
|
4
|
-
import { Chain } from "@1delta/
|
|
4
|
+
import { Chain } from "@1delta/chain-registry"
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
describe('find flash liquidity', () => {
|
|
9
9
|
it('flash liquidity for chain', async () => {
|
|
10
10
|
|
|
11
|
-
const chain = Chain.
|
|
11
|
+
const chain = Chain.XDC_NETWORK
|
|
12
12
|
|
|
13
13
|
const liquidity = await fetchFlashLiquidityForChain(chain, multicallRetry)
|
|
14
14
|
|
|
15
15
|
console.log("liquidity", liquidity)
|
|
16
16
|
|
|
17
|
-
const prices = await fetchMainPrices([chain]
|
|
17
|
+
// const prices = await fetchMainPrices([chain])
|
|
18
18
|
|
|
19
|
-
console.log("prices", prices)
|
|
19
|
+
// console.log("prices", prices)
|
|
20
20
|
|
|
21
|
-
const dataWithPrices = attachPricesToFlashLiquidity(chain, liquidity, prices)
|
|
21
|
+
// const dataWithPrices = attachPricesToFlashLiquidity(chain, liquidity, prices)
|
|
22
22
|
|
|
23
|
-
console.log(dataWithPrices)
|
|
23
|
+
// console.log(dataWithPrices)
|
|
24
24
|
|
|
25
25
|
})
|
|
26
26
|
}, { timeout: 10000 })
|
package/test/index.test.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
getLenderPublicData,
|
|
9
9
|
} from '../src'
|
|
10
10
|
import { getEvmClient, multicallRetry } from '@1delta/providers'
|
|
11
|
-
import { Chain } from '@1delta/
|
|
11
|
+
import { Chain } from '@1delta/chain-registry'
|
|
12
12
|
import { getLendersForChain } from '../src/utils'
|
|
13
13
|
|
|
14
14
|
describe(
|