@1delta/margin-fetcher 0.0.181 → 0.0.182
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/README.md +197 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/compound-v2/convert/sumer.d.ts +1 -1
- package/dist/lending/public-data/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/public-data/morpho/convertPublic.d.ts.map +1 -1
- package/dist/types/apiReturnType.d.ts +1 -1
- package/dist/types/lender/aave-v3-types.d.ts +1 -1
- package/dist/types/lender/compound-v2-types.d.ts +1 -1
- package/dist/types/lender/init-types.d.ts +1 -1
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# @1delta/margin-fetcher
|
|
2
|
+
|
|
3
|
+
Multi-protocol lending data fetcher supporting Morpho Blue, Aave V2/V3, Compound V2/V3, Euler, Init, and Lista DAO. Provides public market data (rates, TVL, configs) and per-user position data (balances, shares, collateral) in a unified format.
|
|
4
|
+
|
|
5
|
+
## How Morpho Blue Works
|
|
6
|
+
|
|
7
|
+
### Protocol overview
|
|
8
|
+
|
|
9
|
+
Morpho Blue is an **isolated-market** lending protocol. Unlike pooled protocols (Aave, Compound) where all assets share a single pool, each Morpho market is a **standalone pair** defined by five parameters:
|
|
10
|
+
|
|
11
|
+
| Parameter | Description |
|
|
12
|
+
|-----------|-------------|
|
|
13
|
+
| `loanToken` | The asset that can be supplied and borrowed |
|
|
14
|
+
| `collateralToken` | The asset deposited as collateral |
|
|
15
|
+
| `oracle` | Price oracle for the pair |
|
|
16
|
+
| `irm` | Interest Rate Model contract |
|
|
17
|
+
| `lltv` | Liquidation Loan-To-Value ratio (18-decimal WAD) |
|
|
18
|
+
|
|
19
|
+
These five parameters are hashed into a `uniqueKey` (bytes32) that identifies the market on-chain.
|
|
20
|
+
|
|
21
|
+
### Interest rate model
|
|
22
|
+
|
|
23
|
+
Morpho uses an **adaptive curve IRM** that adjusts rates based on utilization relative to a 90% target:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
utilization = totalBorrowAssets / totalSupplyAssets
|
|
27
|
+
|
|
28
|
+
If utilization > 90%: rateAtTarget increases over time (via exponential adjustment)
|
|
29
|
+
If utilization < 90%: rateAtTarget decreases over time
|
|
30
|
+
|
|
31
|
+
borrowRate = curve(rateAtTarget, utilization)
|
|
32
|
+
supplyRate = borrowRate * utilization * (1 - fee)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The curve uses a steepness factor of 4x, meaning at full utilization the rate is 4x the rate-at-target. Rates are stored as per-second WAD values and compounded continuously.
|
|
36
|
+
|
|
37
|
+
Key constants:
|
|
38
|
+
- **Target utilization**: 90%
|
|
39
|
+
- **Curve steepness**: 4x
|
|
40
|
+
- **Min rate at target**: ~0.1% APY
|
|
41
|
+
- **Max rate at target**: ~200% APY
|
|
42
|
+
- **Adjustment speed**: 50x/year (exponential)
|
|
43
|
+
|
|
44
|
+
### Share-based accounting
|
|
45
|
+
|
|
46
|
+
Positions are tracked via **shares** rather than raw assets. This allows interest to accrue without storage updates per-user:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
assets = shares * (totalAssets + 1) / (totalShares + VIRTUAL_SHARES)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Where `VIRTUAL_SHARES = 1e6` prevents share inflation attacks.
|
|
53
|
+
|
|
54
|
+
### Market data representation
|
|
55
|
+
|
|
56
|
+
Each Morpho market produces **two entries** in the normalized output:
|
|
57
|
+
|
|
58
|
+
1. **Loan entry** — the borrowable asset
|
|
59
|
+
- Has `borrowingEnabled: true`, `collateralActive: false`
|
|
60
|
+
- Contains deposit/borrow APRs, total supply/debt, liquidity
|
|
61
|
+
- Rewards (MORPHO token incentives) attached here
|
|
62
|
+
|
|
63
|
+
2. **Collateral entry** — the collateral asset
|
|
64
|
+
- Has `borrowingEnabled: false`, `collateralActive: true`
|
|
65
|
+
- LTV factors derived from the market's `lltv`
|
|
66
|
+
- No interest rates (collateral doesn't earn yield in Morpho)
|
|
67
|
+
|
|
68
|
+
### Whitelisted vs unlisted markets
|
|
69
|
+
|
|
70
|
+
Morpho markets can be **whitelisted** (curated, visible in the Morpho UI) or **unlisted** (removed from curation). The `includeUnlistedMorphoMarkets` flag controls whether unlisted markets are fetched from the API. Unlisted markets are tagged with `isListed: false` on the `MorphoMarket` params.
|
|
71
|
+
|
|
72
|
+
## Architecture
|
|
73
|
+
|
|
74
|
+
### Data fetching strategy
|
|
75
|
+
|
|
76
|
+
The fetcher uses a **hybrid approach** that routes each lender to either an API or on-chain path:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
getLenderPublicDataAll(chainId, lenders, ...)
|
|
80
|
+
├── lenderCanUseApi(lender, chainId)?
|
|
81
|
+
│ ├── YES → getLenderPublicDataViaApi() → Morpho GraphQL API
|
|
82
|
+
│ └── NO → getLenderPublicData() → On-chain multicall via Morpho Lens
|
|
83
|
+
└── Promise.all([onChain, api]) → merged result
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Morpho Blue uses the API** on most chains. On-chain fallback is used for chains without API support (OP Mainnet, Soneium, Hemi, Berachain, Sei).
|
|
87
|
+
|
|
88
|
+
### API path (GraphQL)
|
|
89
|
+
|
|
90
|
+
Fetches from `https://blue-api.morpho.org/graphql`:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
fetchMorphoMarkets(chainId, includeUnlisted)
|
|
94
|
+
→ GraphQL query (paginated: 200/page, 2 pages for Ethereum mainnet)
|
|
95
|
+
→ GetMarketsResponse
|
|
96
|
+
→ convertMarketsToMorphoResponse()
|
|
97
|
+
→ { [marketId]: MorphoGeneralPublicResponse }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The API provides pre-computed APYs, USD values, and reward data. APY→APR conversion is applied during normalization.
|
|
101
|
+
|
|
102
|
+
### On-chain path (Morpho Lens)
|
|
103
|
+
|
|
104
|
+
Uses a custom lens contract that returns compact binary-encoded market data:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
buildMorphoCall(chainId)
|
|
108
|
+
→ multicall to MORPHO_LENS.getMarketDataCompact(morpho, marketHashes[])
|
|
109
|
+
→ chunks of 50 markets per call (calldata size limit)
|
|
110
|
+
→ raw bytes response
|
|
111
|
+
|
|
112
|
+
getMorphoMarketDataConverter()
|
|
113
|
+
→ decodeMarkets(bytes) // 256-byte records → Market[]
|
|
114
|
+
→ MathLib.getBorrowApy(...) // compute rates from rateAtTarget + utilization
|
|
115
|
+
→ MathLib.getSupplyApy(...)
|
|
116
|
+
→ { [marketId]: MorphoGeneralPublicResponse }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Binary encoding (256 bytes per market)
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Offset Size Field
|
|
123
|
+
0 20 loanToken (address)
|
|
124
|
+
20 20 collateralToken (address)
|
|
125
|
+
40 20 oracle (address)
|
|
126
|
+
60 20 irm (address)
|
|
127
|
+
80 16 lltv (uint128)
|
|
128
|
+
96 32 price (uint256) — collateral/loan exchange rate in WAD
|
|
129
|
+
128 32 rateAtTarget (uint256) — per-second interest rate
|
|
130
|
+
160 16 totalSupplyAssets (uint128)
|
|
131
|
+
176 16 totalSupplyShares (uint128)
|
|
132
|
+
192 16 totalBorrowAssets (uint128)
|
|
133
|
+
208 16 totalBorrowShares (uint128)
|
|
134
|
+
224 16 lastUpdate (uint128) — timestamp
|
|
135
|
+
240 16 fee (uint128)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### User data path
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
buildMorphoUserCallWithLens(chainId, account, lender, marketIds)
|
|
142
|
+
→ MORPHO_LENS.getUserDataCompact(marketHashes[], account, morpho)
|
|
143
|
+
→ chunks of 100 markets per call
|
|
144
|
+
|
|
145
|
+
decodePackedMorphoUserDataset(hex)
|
|
146
|
+
→ [uint16 count] + [130-byte records × count]
|
|
147
|
+
→ BalanceInfo[] { index, supplyShares, borrowShares, supplyAssets, borrowAssets, collateral }
|
|
148
|
+
|
|
149
|
+
getMorphoUserDataConverterWithLens()
|
|
150
|
+
→ map balances to market IDs via index
|
|
151
|
+
→ separate loan positions (supply/borrow) from collateral positions
|
|
152
|
+
→ format to UserData with USD values
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## File structure
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
src/lending/
|
|
159
|
+
├── public-data/
|
|
160
|
+
│ ├── fetchLenderAll.ts # Hybrid router (API vs on-chain)
|
|
161
|
+
│ ├── fetchLender.ts # On-chain multicall dispatcher
|
|
162
|
+
│ ├── fetchLenderExt.ts # API dispatcher
|
|
163
|
+
│ └── morpho/
|
|
164
|
+
│ ├── fetchPublic.ts # GraphQL query + fetch logic
|
|
165
|
+
│ ├── convertPublic.ts # API response → normalized format
|
|
166
|
+
│ ├── publicCallBuild.ts # Morpho Lens call builder
|
|
167
|
+
│ ├── getMarketsFromChain.ts # On-chain response → normalized format
|
|
168
|
+
│ └── utils/
|
|
169
|
+
│ ├── evmParser.ts # Binary decoder (256-byte records)
|
|
170
|
+
│ ├── mathLib.ts # WAD math, rate calculations
|
|
171
|
+
│ └── parsers.ts # LTV parsing, number formatting
|
|
172
|
+
├── user-data/
|
|
173
|
+
│ └── morpho/
|
|
174
|
+
│ ├── userCallBuild.ts # User position call builder
|
|
175
|
+
│ ├── decoder.ts # User data binary decoder
|
|
176
|
+
│ ├── userCallParse.ts # Balance → UserData conversion
|
|
177
|
+
│ ├── morphoLib.ts # Share ↔ asset conversion
|
|
178
|
+
│ └── types.ts # Parameter position enums
|
|
179
|
+
└── ...
|
|
180
|
+
|
|
181
|
+
src/types/lender/
|
|
182
|
+
└── morpho-types.ts # GetMarketsResponse, MorphoMarket, MorphoGeneralPublicResponse
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Lista DAO extension
|
|
186
|
+
|
|
187
|
+
Lista is a Morpho Blue fork with additional per-market fields. Uses a 357-byte binary record instead of 256:
|
|
188
|
+
|
|
189
|
+
| Extra field | Type | Description |
|
|
190
|
+
|-------------|------|-------------|
|
|
191
|
+
| `minLoan` | uint128 | Minimum loan amount |
|
|
192
|
+
| `hasWhitelist` | bool | Whether the market has access control |
|
|
193
|
+
| `loanProvider` | address | Yield source for loan token |
|
|
194
|
+
| `collateralProvider` | address | Yield source for collateral |
|
|
195
|
+
| `broker` | address | Authorized broker contract |
|
|
196
|
+
|
|
197
|
+
User data also includes per-market whitelist flags prepended before the balance records.
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export type { SumerPositionInput, GroupAccumulator, } from './lending/margin/bas
|
|
|
16
16
|
export type { LenderYieldComplete, LenderCrossPoolMeta, LenderToLenderCrossPoolMeta, CompoundV2Metadata, AaveMetadata, InitMetadata, EulerV2Metadata, ProtocolParams, } from './lending/user-data/utils/types';
|
|
17
17
|
export { computeSumerWaterfall, buildSumerAccumulators, applyPositionDelta, } from './lending/margin/base/sumer/waterfall';
|
|
18
18
|
export { computeSumerDepositDelta, computeSumerWithdrawDelta, computeSumerBorrowDelta, computeSumerRepayDelta, } from './lending/margin/base/sumer';
|
|
19
|
+
export { fetchEulerSubAccountIndexes, getSubAccountAddress, getSubAccountIndex, } from './lending/user-data/euler/userCallBuild';
|
|
19
20
|
export { MorphoLensAbi } from '@1delta/abis';
|
|
20
21
|
export { type PreparedCall, type RawRpcCall, type RawRpcBatch, type MulticallRpcBatch, createRawRpcCalls, createMulticallRpcCall, multicall3Abi, } from './utils/rpcCall';
|
|
21
22
|
export { type RawRpcResponse, parseRawRpcResponses, parseRawRpcBatchResponses, parseMulticallRpcResponses, } from './utils/rpcParse';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12089,7 +12089,7 @@ function convertMarketsToMorphoResponse(response, chainId, additionalYields = {
|
|
|
12089
12089
|
state,
|
|
12090
12090
|
whitelisted
|
|
12091
12091
|
} = market;
|
|
12092
|
-
if (collateralAsset && loanAsset && oracleAddress && oracleAddress !== zeroAddress) {
|
|
12092
|
+
if (collateralAsset && collateralAsset.symbol && loanAsset && loanAsset.symbol && oracleAddress && oracleAddress !== zeroAddress) {
|
|
12093
12093
|
const m = "MORPHO_BLUE_" + uniqueKey.slice(2).toUpperCase();
|
|
12094
12094
|
if (!data[m]) data[m] = { data: {} };
|
|
12095
12095
|
const loanRewards = [];
|
|
@@ -18024,7 +18024,6 @@ var getLenderPublicDataViaApi = async (chainId, lenders, prices, additionalYield
|
|
|
18024
18024
|
};
|
|
18025
18025
|
function lenderCanUseApi(lender, chainId) {
|
|
18026
18026
|
if (lender === Lender.MORPHO_BLUE) {
|
|
18027
|
-
if (chainId === Chain.OP_MAINNET) return false;
|
|
18028
18027
|
if (chainId === Chain.SONEIUM) return false;
|
|
18029
18028
|
if (chainId === Chain.HEMI_NETWORK) return false;
|
|
18030
18029
|
if (chainId === Chain.BERACHAIN) return false;
|
|
@@ -31757,6 +31756,6 @@ async function fetchTokenBalances(chainId, account, tokens, options = {}) {
|
|
|
31757
31756
|
return parseTokenBalanceResult(rawResult, prepared.query);
|
|
31758
31757
|
}
|
|
31759
31758
|
|
|
31760
|
-
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchFlashLiquidityForChain, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getTopPairs, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
31759
|
+
export { EMPTY_BALANCE, MORPHO_LENS, MaxParamThresholds, applyPositionDelta, attachPricesToFlashLiquidity, buildLoopResult, buildMorphoTypeCall, buildMorphoTypeUserCallWithLens, buildPortfolioTotals, buildSumerAccumulators, buildSummaries, calculateLeverage, calculateNetApr, calculateOverallNetApr, calculateWeightedAverage, computeBorrowDelta2 as computeBorrowDelta, computeCloseTradeDeltas, computeCollateralSwapDeltas, computeDebtSwapDeltas, computeDepositDelta2 as computeDepositDelta, computeEModeAnalysis, computeOpenTradeDeltas, computePostTradeMetrics, computeRepayDelta2 as computeRepayDelta, computeSumerBorrowDelta, computeSumerDepositDelta, computeSumerRepayDelta, computeSumerWaterfall, computeSumerWithdrawDelta, computeWithdrawDelta2 as computeWithdrawDelta, computeZapTradeDeltas, convertLenderUserDataResult, createMarketUid, createMulticallRpcCall, createRawRpcCalls, decodeListaMarkets, decodeMarkets, decodePackedListaUserDataset, decodePackedMorphoUserDataset, encodeBalanceFetcherCalldata, fetchDefillamaData, fetchDefillamaHistData, fetchEulerSubAccountIndexes, fetchFlashLiquidityForChain, fetchGeneralYields, fetchGeneralYieldsByMarketUid, fetchMainPrices, fetchOraclePrices, fetchPendlePrices, fetchTokenBalances, fetchTokenMetadata, filterActiveLenders, filterLendersByProtocol, fuseLenderData, generateLendingPairs, generateLendingPools, getAavesForChain, getAssetConfig, getBalanceForMarketUid, getBorrowCapacity, getHealthFactor, getLenderAssets, getLenderPublicData, getLenderPublicDataAll, getLenderPublicDataViaApi, getLenderUserDataMulti, getLenderUserDataResult, getLendersForChain, getMaxAmountOpen, getMergedUserData, getMorphoTypeMarketConverter, getSubAccountAddress, getSubAccountIndex, getTopPairs, keysFromMaps, multicall3Abi, nanTo, needsLenderApproval, needsTokenApproval, noOpResult, normalizeToBytes, parseBalanceFetcherResult, parseMergedResult, parseMulticallRpcResponses, parseRawRpcBatchResponses, parseRawRpcResponses, parseTokenBalanceResult, positivePart2 as positivePart, prepareLenderUserDataRpcCalls, prepareMergedMulticallParams, prepareMergedRpcCalls, prepareMulticallInputs, prepareTokenBalanceRpcCalls, selectAssetGroupPrices, unflattenLenderData };
|
|
31761
31760
|
//# sourceMappingURL=index.js.map
|
|
31762
31761
|
//# sourceMappingURL=index.js.map
|