@pearcurve/sdk 0.0.0-stage → 0.1.1
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/LICENSE +64 -0
- package/README.md +122 -2
- package/dist/abis.d.ts +21 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +39 -0
- package/dist/abis.js.map +1 -0
- package/dist/borrowerSubmitPreflight.d.ts +14 -0
- package/dist/borrowerSubmitPreflight.d.ts.map +1 -0
- package/dist/borrowerSubmitPreflight.js +28 -0
- package/dist/borrowerSubmitPreflight.js.map +1 -0
- package/dist/bps.d.ts +11 -0
- package/dist/bps.d.ts.map +1 -0
- package/dist/bps.js +25 -0
- package/dist/bps.js.map +1 -0
- package/dist/clients.d.ts +23 -0
- package/dist/clients.d.ts.map +1 -0
- package/dist/clients.js +59 -0
- package/dist/clients.js.map +1 -0
- package/dist/decodeError.d.ts +24 -0
- package/dist/decodeError.d.ts.map +1 -0
- package/dist/decodeError.js +358 -0
- package/dist/decodeError.js.map +1 -0
- package/dist/encoding.d.ts +18 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +94 -0
- package/dist/encoding.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/lenderSubmitPreflight.d.ts +20 -0
- package/dist/lenderSubmitPreflight.d.ts.map +1 -0
- package/dist/lenderSubmitPreflight.js +42 -0
- package/dist/lenderSubmitPreflight.js.map +1 -0
- package/dist/loanPositions.d.ts +23 -0
- package/dist/loanPositions.d.ts.map +1 -0
- package/dist/loanPositions.js +37 -0
- package/dist/loanPositions.js.map +1 -0
- package/dist/marketStats.d.ts +70 -0
- package/dist/marketStats.d.ts.map +1 -0
- package/dist/marketStats.js +117 -0
- package/dist/marketStats.js.map +1 -0
- package/dist/networkConfig.d.ts +48 -0
- package/dist/networkConfig.d.ts.map +1 -0
- package/dist/networkConfig.js +48 -0
- package/dist/networkConfig.js.map +1 -0
- package/dist/pause.d.ts +20 -0
- package/dist/pause.d.ts.map +1 -0
- package/dist/pause.js +40 -0
- package/dist/pause.js.map +1 -0
- package/dist/reads.d.ts +187 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +353 -0
- package/dist/reads.js.map +1 -0
- package/dist/strategies.d.ts +14 -0
- package/dist/strategies.d.ts.map +1 -0
- package/dist/strategies.js +49 -0
- package/dist/strategies.js.map +1 -0
- package/dist/txGas.d.ts +19 -0
- package/dist/txGas.d.ts.map +1 -0
- package/dist/txGas.js +37 -0
- package/dist/txGas.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/dist/yieldMigrationPreflight.d.ts +29 -0
- package/dist/yieldMigrationPreflight.d.ts.map +1 -0
- package/dist/yieldMigrationPreflight.js +61 -0
- package/dist/yieldMigrationPreflight.js.map +1 -0
- package/dist/yieldSources.d.ts +33 -0
- package/dist/yieldSources.d.ts.map +1 -0
- package/dist/yieldSources.js +106 -0
- package/dist/yieldSources.js.map +1 -0
- package/package.json +47 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../src/reads.ts"],"names":[],"mappings":"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"}
|
package/dist/reads.js
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { getIntentRegistry, getIntentRegistryViews, getLoanHealthViewer, getLoanManager, getMain, getPriceOracle, getProtocolViewer, getYieldSource, } from './clients.js';
|
|
2
|
+
import { MarketFeature, isMarketFeaturePaused, isMarketPaused, isProtocolPaused, } from './pause.js';
|
|
3
|
+
export { MarketFeature };
|
|
4
|
+
/** Full loan row inputs for UI formatters (`getAgreement` + per-loan metadata). */
|
|
5
|
+
export async function readLoanBundle(loanManagerAddress, loanId, runner) {
|
|
6
|
+
const lm = getLoanManager(loanManagerAddress, runner);
|
|
7
|
+
const [agreement, strategy, lltv, yieldSource, blockEarlyRepayment] = await Promise.all([
|
|
8
|
+
lm.getAgreement(loanId),
|
|
9
|
+
lm.loanStrategy(loanId).catch(() => null),
|
|
10
|
+
lm.loanLltv(loanId).catch(() => 0n),
|
|
11
|
+
lm.loanYieldSource(loanId).catch(() => null),
|
|
12
|
+
lm.loanBlockEarlyRepayment(loanId).catch(() => false),
|
|
13
|
+
]);
|
|
14
|
+
return { agreement, strategy, lltv, yieldSource, blockEarlyRepayment: Boolean(blockEarlyRepayment) };
|
|
15
|
+
}
|
|
16
|
+
/** `Main.getAllYieldSourceBalances(owner, asset)`. */
|
|
17
|
+
export async function readAllYieldSourceBalances(mainAddress, owner, asset, runner) {
|
|
18
|
+
const main = getMain(mainAddress, runner);
|
|
19
|
+
const result = await main.getAllYieldSourceBalances(owner, asset);
|
|
20
|
+
const tuple = result;
|
|
21
|
+
return { sources: tuple[0] ?? [], balances: tuple[1] ?? [] };
|
|
22
|
+
}
|
|
23
|
+
/** `LoanHealthViewer.getLoanHealth(loanId)`. */
|
|
24
|
+
export async function readLoanHealth(viewerAddress, loanId, runner) {
|
|
25
|
+
const viewer = getLoanHealthViewer(viewerAddress, runner);
|
|
26
|
+
return viewer.getLoanHealth(loanId);
|
|
27
|
+
}
|
|
28
|
+
/** Core `IntentRegistry` address behind a views facade. */
|
|
29
|
+
export async function readIntentRegistryAddress(viewsAddress, runner) {
|
|
30
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
31
|
+
return (await views.registry());
|
|
32
|
+
}
|
|
33
|
+
/** `IntentRegistry.committedCollateral(owner, collateral)` — on-chain borrower intent bookings only. */
|
|
34
|
+
export async function readCommittedCollateral(intentRegistryAddress, owner, collateral, runner) {
|
|
35
|
+
const reg = getIntentRegistry(intentRegistryAddress, runner);
|
|
36
|
+
return reg.committedCollateral(owner, collateral);
|
|
37
|
+
}
|
|
38
|
+
/** `IntentRegistry.committedCapacity(owner, yieldSource, asset)` — on-chain lender intent bookings only. */
|
|
39
|
+
export async function readCommittedCapacity(intentRegistryAddress, owner, yieldSource, asset, runner) {
|
|
40
|
+
const reg = getIntentRegistry(intentRegistryAddress, runner);
|
|
41
|
+
return reg.committedCapacity(owner, yieldSource, asset);
|
|
42
|
+
}
|
|
43
|
+
export async function readLenderIntent(viewsAddress, intentId, runner) {
|
|
44
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
45
|
+
return views.getLenderIntent(intentId);
|
|
46
|
+
}
|
|
47
|
+
export async function readBorrowerIntent(viewsAddress, intentId, runner) {
|
|
48
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
49
|
+
return views.getBorrowerIntent(intentId);
|
|
50
|
+
}
|
|
51
|
+
/** `PriceOracle.getAssetPrice(asset)` when supported by deployment. */
|
|
52
|
+
export async function readAssetPrice(oracleAddress, asset, runner) {
|
|
53
|
+
const oracle = getPriceOracle(oracleAddress, runner);
|
|
54
|
+
return oracle.getAssetPrice(asset);
|
|
55
|
+
}
|
|
56
|
+
/** `IPriceOracle.getPrice(collateral, quote)` (e.g. mock testnet oracle). */
|
|
57
|
+
export async function readOraclePairPrice(oracleAddress, collateral, quote, runner) {
|
|
58
|
+
const oracle = getPriceOracle(oracleAddress, runner);
|
|
59
|
+
return oracle.getPrice(collateral, quote);
|
|
60
|
+
}
|
|
61
|
+
/** `IYieldSource.totalAssets(asset)`. */
|
|
62
|
+
export async function readYieldSourceTotalAssets(yieldSourceAddress, asset, runner) {
|
|
63
|
+
const source = getYieldSource(yieldSourceAddress, runner);
|
|
64
|
+
return source.totalAssets(asset);
|
|
65
|
+
}
|
|
66
|
+
function mapLoanSummaryRow(r) {
|
|
67
|
+
return {
|
|
68
|
+
loanId: r.loanId,
|
|
69
|
+
status: Number(r.status),
|
|
70
|
+
lenderOwner: String(r.lenderOwner),
|
|
71
|
+
borrowerOwner: String(r.borrowerOwner),
|
|
72
|
+
asset: String(r.asset),
|
|
73
|
+
collateral: String(r.collateral),
|
|
74
|
+
principal: r.principal,
|
|
75
|
+
collateralAmount: r.collateralAmount,
|
|
76
|
+
interestRate: r.interestRate,
|
|
77
|
+
lltv: Number(r.lltv),
|
|
78
|
+
startTime: r.startTime,
|
|
79
|
+
maturity: r.maturity,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function mapLenderIntentSummaryRow(r) {
|
|
83
|
+
return {
|
|
84
|
+
intentId: r.intentId,
|
|
85
|
+
owner: String(r.owner),
|
|
86
|
+
asset: String(r.asset),
|
|
87
|
+
maxPrincipal: r.maxPrincipal,
|
|
88
|
+
filledAmount: r.filledAmount,
|
|
89
|
+
minRate: r.minRate,
|
|
90
|
+
expiry: r.expiry,
|
|
91
|
+
active: Boolean(r.active),
|
|
92
|
+
yieldSource: String(r.yieldSource),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function mapBorrowerIntentSummaryRow(r) {
|
|
96
|
+
return {
|
|
97
|
+
intentId: r.intentId,
|
|
98
|
+
owner: String(r.owner),
|
|
99
|
+
asset: String(r.asset),
|
|
100
|
+
principal: r.principal,
|
|
101
|
+
filledAmount: r.filledAmount,
|
|
102
|
+
maxRate: r.maxRate,
|
|
103
|
+
duration: r.duration,
|
|
104
|
+
collateral: String(r.collateral),
|
|
105
|
+
expiry: r.expiry,
|
|
106
|
+
active: Boolean(r.active),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** `ProtocolViewer.getProtocolTotals()`. */
|
|
110
|
+
export async function readProtocolTotals(viewerAddress, runner) {
|
|
111
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
112
|
+
const t = await viewer.getProtocolTotals();
|
|
113
|
+
return {
|
|
114
|
+
activeLoanCount: t.activeLoanCount,
|
|
115
|
+
nextLoanId: t.nextLoanId,
|
|
116
|
+
nextLenderIntentId: t.nextLenderIntentId,
|
|
117
|
+
nextBorrowerIntentId: t.nextBorrowerIntentId,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** `ProtocolViewer.getLoanSummaries(startId, limit)`. */
|
|
121
|
+
export async function readLoanSummaries(viewerAddress, startId, limit, runner) {
|
|
122
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
123
|
+
const rows = await viewer.getLoanSummaries(startId, limit);
|
|
124
|
+
return rows.map(mapLoanSummaryRow);
|
|
125
|
+
}
|
|
126
|
+
/** `ProtocolViewer.getProtocolSnapshot(assets)` — single-call landing fast slice. */
|
|
127
|
+
export async function readProtocolSnapshot(viewerAddress, assetAddresses, runner) {
|
|
128
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
129
|
+
const snap = await viewer.getProtocolSnapshot(assetAddresses);
|
|
130
|
+
return {
|
|
131
|
+
totals: {
|
|
132
|
+
activeLoanCount: snap.totals.activeLoanCount,
|
|
133
|
+
nextLoanId: snap.totals.nextLoanId,
|
|
134
|
+
nextLenderIntentId: snap.totals.nextLenderIntentId,
|
|
135
|
+
nextBorrowerIntentId: snap.totals.nextBorrowerIntentId,
|
|
136
|
+
},
|
|
137
|
+
assetPrices: snap.assetPrices,
|
|
138
|
+
yieldTvl: snap.yieldTvl.map((r) => ({
|
|
139
|
+
asset: String(r.asset),
|
|
140
|
+
totalAssets: r.totalAssets,
|
|
141
|
+
})),
|
|
142
|
+
yieldBreakdown: snap.yieldBreakdown.map((r) => ({
|
|
143
|
+
yieldSource: String(r.yieldSource),
|
|
144
|
+
asset: String(r.asset),
|
|
145
|
+
totalAssets: r.totalAssets,
|
|
146
|
+
name: String(r.name ?? ''),
|
|
147
|
+
})),
|
|
148
|
+
yieldApys: snap.yieldApys.map((r) => ({
|
|
149
|
+
yieldSource: String(r.yieldSource),
|
|
150
|
+
asset: String(r.asset),
|
|
151
|
+
apyBps: r.apyBps,
|
|
152
|
+
})),
|
|
153
|
+
marketCaps: snap.marketCaps.map((r) => ({
|
|
154
|
+
asset: String(r.asset),
|
|
155
|
+
defaultSupplyCap: r.defaultSupplyCap,
|
|
156
|
+
defaultBorrowCap: r.defaultBorrowCap,
|
|
157
|
+
})),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/** `ProtocolViewer.getLenderIntentSummaries(startId, limit)` — returns `(rows, nextId)`. */
|
|
161
|
+
export async function readLenderIntentSummaries(viewerAddress, startId, limit, runner) {
|
|
162
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
163
|
+
const [rows, nextId] = await viewer.getLenderIntentSummaries(startId, limit);
|
|
164
|
+
return {
|
|
165
|
+
rows: rows.map(mapLenderIntentSummaryRow),
|
|
166
|
+
nextId: nextId,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/** `ProtocolViewer.getBorrowerIntentSummaries(startId, limit)` — returns `(rows, nextId)`. */
|
|
170
|
+
export async function readBorrowerIntentSummaries(viewerAddress, startId, limit, runner) {
|
|
171
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
172
|
+
const [rows, nextId] = await viewer.getBorrowerIntentSummaries(startId, limit);
|
|
173
|
+
return {
|
|
174
|
+
rows: rows.map(mapBorrowerIntentSummaryRow),
|
|
175
|
+
nextId: nextId,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/** `ProtocolViewer.getLoanSummariesByIds(loanIds)`. */
|
|
179
|
+
export async function readLoanSummariesByIds(viewerAddress, loanIds, runner) {
|
|
180
|
+
if (!loanIds.length)
|
|
181
|
+
return [];
|
|
182
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
183
|
+
const rows = await viewer.getLoanSummariesByIds(loanIds);
|
|
184
|
+
return rows.map(mapLoanSummaryRow);
|
|
185
|
+
}
|
|
186
|
+
/** `ProtocolViewer.getLenderIntentSummariesByIds(intentIds)`. */
|
|
187
|
+
export async function readLenderIntentSummariesByIds(viewerAddress, intentIds, runner) {
|
|
188
|
+
if (!intentIds.length)
|
|
189
|
+
return [];
|
|
190
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
191
|
+
const rows = await viewer.getLenderIntentSummariesByIds(intentIds);
|
|
192
|
+
return rows.map(mapLenderIntentSummaryRow);
|
|
193
|
+
}
|
|
194
|
+
/** `ProtocolViewer.getBorrowerIntentSummariesByIds(intentIds)`. */
|
|
195
|
+
export async function readBorrowerIntentSummariesByIds(viewerAddress, intentIds, runner) {
|
|
196
|
+
if (!intentIds.length)
|
|
197
|
+
return [];
|
|
198
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
199
|
+
const rows = await viewer.getBorrowerIntentSummariesByIds(intentIds);
|
|
200
|
+
return rows.map(mapBorrowerIntentSummaryRow);
|
|
201
|
+
}
|
|
202
|
+
/** `ProtocolViewer.getYieldTvlBreakdown(assets)`. */
|
|
203
|
+
export async function readYieldTvlBreakdownFromViewer(viewerAddress, assetAddresses, runner) {
|
|
204
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
205
|
+
const rows = await viewer.getYieldTvlBreakdown(assetAddresses);
|
|
206
|
+
return rows.map((r) => ({
|
|
207
|
+
yieldSource: String(r.yieldSource),
|
|
208
|
+
asset: String(r.asset),
|
|
209
|
+
totalAssets: r.totalAssets,
|
|
210
|
+
name: String(r.name ?? ''),
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
/** `ProtocolViewer.getYieldTvlByAssets(assets)`. */
|
|
214
|
+
export async function readYieldTvlByAssetsFromViewer(viewerAddress, assetAddresses, runner) {
|
|
215
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
216
|
+
const rows = await viewer.getYieldTvlByAssets(assetAddresses);
|
|
217
|
+
return rows.map((r) => ({
|
|
218
|
+
asset: String(r.asset),
|
|
219
|
+
totalAssets: r.totalAssets,
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
/** `ProtocolViewer.getAssetPricesUsd(assets)`. */
|
|
223
|
+
export async function readAssetPricesFromViewer(viewerAddress, assetAddresses, runner) {
|
|
224
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
225
|
+
const prices = await viewer.getAssetPricesUsd(assetAddresses);
|
|
226
|
+
return prices;
|
|
227
|
+
}
|
|
228
|
+
/** `ProtocolViewer.getYieldApys(assets)`. */
|
|
229
|
+
export async function readYieldApysFromViewer(viewerAddress, assetAddresses, runner) {
|
|
230
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
231
|
+
const rows = await viewer.getYieldApys(assetAddresses);
|
|
232
|
+
return rows.map((r) => ({
|
|
233
|
+
yieldSource: String(r.yieldSource),
|
|
234
|
+
asset: String(r.asset),
|
|
235
|
+
apyBps: r.apyBps,
|
|
236
|
+
}));
|
|
237
|
+
}
|
|
238
|
+
/** `ProtocolViewer.getMarketCaps(assets)`. */
|
|
239
|
+
export async function readMarketCapsFromViewer(viewerAddress, assetAddresses, runner) {
|
|
240
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
241
|
+
const rows = await viewer.getMarketCaps(assetAddresses);
|
|
242
|
+
return rows.map((r) => ({
|
|
243
|
+
asset: String(r.asset),
|
|
244
|
+
defaultSupplyCap: r.defaultSupplyCap,
|
|
245
|
+
defaultBorrowCap: r.defaultBorrowCap,
|
|
246
|
+
}));
|
|
247
|
+
}
|
|
248
|
+
/** `ProtocolViewer.getWalletYieldSnapshot(user, assets)`. */
|
|
249
|
+
export async function readWalletYieldSnapshot(viewerAddress, user, assetAddresses, runner) {
|
|
250
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
251
|
+
const rows = await viewer.getWalletYieldSnapshot(user, assetAddresses);
|
|
252
|
+
return rows.map((r) => ({
|
|
253
|
+
asset: String(r.asset),
|
|
254
|
+
yieldSource: String(r.yieldSource),
|
|
255
|
+
balance: r.balance,
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
/** `ProtocolViewer.getActiveLenderIntentCounts(assets)`. */
|
|
259
|
+
export async function readActiveLenderIntentCounts(viewerAddress, assetAddresses, runner) {
|
|
260
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
261
|
+
return viewer.getActiveLenderIntentCounts(assetAddresses);
|
|
262
|
+
}
|
|
263
|
+
/** `ProtocolViewer.getActiveBorrowerIntentCounts(assets)`. */
|
|
264
|
+
export async function readActiveBorrowerIntentCounts(viewerAddress, assetAddresses, runner) {
|
|
265
|
+
const viewer = getProtocolViewer(viewerAddress, runner);
|
|
266
|
+
return viewer.getActiveBorrowerIntentCounts(assetAddresses);
|
|
267
|
+
}
|
|
268
|
+
/** `IntentRegistryViews.getActiveLenderIntents(asset)` — full rate-sorted list, unbounded. */
|
|
269
|
+
export async function readActiveLenderIntents(viewsAddress, asset, runner) {
|
|
270
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
271
|
+
return views.getActiveLenderIntents(asset);
|
|
272
|
+
}
|
|
273
|
+
/** `IntentRegistryViews.getActiveLenderIntentsCount(asset)`. */
|
|
274
|
+
export async function readActiveLenderIntentsCount(viewsAddress, asset, runner) {
|
|
275
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
276
|
+
return views.getActiveLenderIntentsCount(asset);
|
|
277
|
+
}
|
|
278
|
+
/** `IntentRegistryViews.getActiveLenderIntentsPaginated(asset, startId, limit)` — rate-sorted, cursor-based. */
|
|
279
|
+
export async function readActiveLenderIntentsPaginated(viewsAddress, asset, startId, limit, runner) {
|
|
280
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
281
|
+
const [ids, nextId] = await views.getActiveLenderIntentsPaginated(asset, startId, limit);
|
|
282
|
+
return { ids: ids, nextId: nextId };
|
|
283
|
+
}
|
|
284
|
+
/** `IntentRegistryViews.getActiveBorrowerIntents(asset)` — full FIFO (oldest-first) list, unbounded. */
|
|
285
|
+
export async function readActiveBorrowerIntents(viewsAddress, asset, runner) {
|
|
286
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
287
|
+
return views.getActiveBorrowerIntents(asset);
|
|
288
|
+
}
|
|
289
|
+
/** `IntentRegistryViews.getActiveBorrowerIntentsCount(asset)`. */
|
|
290
|
+
export async function readActiveBorrowerIntentsCount(viewsAddress, asset, runner) {
|
|
291
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
292
|
+
return views.getActiveBorrowerIntentsCount(asset);
|
|
293
|
+
}
|
|
294
|
+
/** `IntentRegistryViews.getActiveBorrowerIntentsPaginated(asset, startId, limit)` — FIFO, cursor-based. */
|
|
295
|
+
export async function readActiveBorrowerIntentsPaginated(viewsAddress, asset, startId, limit, runner) {
|
|
296
|
+
const views = getIntentRegistryViews(viewsAddress, runner);
|
|
297
|
+
const [ids, nextId] = await views.getActiveBorrowerIntentsPaginated(asset, startId, limit);
|
|
298
|
+
return { ids: ids, nextId: nextId };
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Batch pause reads for risk UI.
|
|
302
|
+
* Feature flags are read against `sampleMarketForFeatures` (first market if omitted).
|
|
303
|
+
*/
|
|
304
|
+
export async function fetchPauseSnapshot(mainAddress, marketAddresses, runner, sampleMarketForFeatures) {
|
|
305
|
+
const protocolPaused = await isProtocolPaused(mainAddress, runner);
|
|
306
|
+
const marketPausedByAddress = {};
|
|
307
|
+
await Promise.all(marketAddresses.map(async (market) => {
|
|
308
|
+
const paused = await isMarketPaused(mainAddress, market, runner);
|
|
309
|
+
marketPausedByAddress[market.toLowerCase()] = paused;
|
|
310
|
+
}));
|
|
311
|
+
const sample = sampleMarketForFeatures ?? marketAddresses[0] ?? null;
|
|
312
|
+
const featurePausedByName = {};
|
|
313
|
+
if (sample) {
|
|
314
|
+
const names = Object.keys(MarketFeature).filter((k) => Number.isNaN(Number(k)));
|
|
315
|
+
await Promise.all(names.map(async (name) => {
|
|
316
|
+
const feature = MarketFeature[name];
|
|
317
|
+
featurePausedByName[name] = await isMarketFeaturePaused(mainAddress, sample, feature, runner);
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
return { protocolPaused, marketPausedByAddress, featurePausedByName };
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Protocol → market → feature pause preflight (user-facing reason or null).
|
|
324
|
+
* @param runner ethers provider/signer attached to the target chain
|
|
325
|
+
*/
|
|
326
|
+
export async function preflightPauseReason(mainAddress, market, feature, runner) {
|
|
327
|
+
if (!mainAddress || !market || !runner)
|
|
328
|
+
return null;
|
|
329
|
+
if (feature == null) {
|
|
330
|
+
const [protocolPaused, marketPaused] = await Promise.all([
|
|
331
|
+
isProtocolPaused(mainAddress, runner),
|
|
332
|
+
isMarketPaused(mainAddress, market, runner),
|
|
333
|
+
]);
|
|
334
|
+
if (protocolPaused)
|
|
335
|
+
return 'Protocol is paused.';
|
|
336
|
+
if (marketPaused)
|
|
337
|
+
return 'This market is paused.';
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
const [protocolPaused, marketPaused, featurePaused] = await Promise.all([
|
|
341
|
+
isProtocolPaused(mainAddress, runner),
|
|
342
|
+
isMarketPaused(mainAddress, market, runner),
|
|
343
|
+
isMarketFeaturePaused(mainAddress, market, feature, runner),
|
|
344
|
+
]);
|
|
345
|
+
if (protocolPaused)
|
|
346
|
+
return 'Protocol is paused.';
|
|
347
|
+
if (marketPaused)
|
|
348
|
+
return 'This market is paused.';
|
|
349
|
+
if (featurePaused)
|
|
350
|
+
return 'This action is paused for this market.';
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
//# sourceMappingURL=reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reads.js","sourceRoot":"","sources":["../src/reads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ContractRunner } from 'ethers';
|
|
2
|
+
import type { Address } from './types.js';
|
|
3
|
+
export type ApprovedStrategyRow = {
|
|
4
|
+
address: Address;
|
|
5
|
+
name: string;
|
|
6
|
+
strategyType: string;
|
|
7
|
+
};
|
|
8
|
+
/** Approved strategies from `Main.strategyRegistry()` → `getStrategies()` + `ICreditStrategy` metadata. */
|
|
9
|
+
export declare function fetchApprovedStrategiesFromMain(mainAddress: Address, runner: ContractRunner): Promise<ApprovedStrategyRow[]>;
|
|
10
|
+
/** `Main.feeManager()` address. */
|
|
11
|
+
export declare function readFeeManagerAddressFromMain(mainAddress: Address, runner: ContractRunner): Promise<Address>;
|
|
12
|
+
/** `FeeManager.maxSolverTipBps()`. */
|
|
13
|
+
export declare function readMaxSolverTipBps(feeManagerAddress: Address, runner: ContractRunner): Promise<bigint>;
|
|
14
|
+
//# sourceMappingURL=strategies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../src/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAA;AAGtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAmBzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,2GAA2G;AAC3G,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoBhC;AAED,mCAAmC;AACnC,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,sCAAsC;AACtC,wBAAsB,mBAAmB,CACvC,iBAAiB,EAAE,OAAO,EAC1B,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Contract } from 'ethers';
|
|
2
|
+
import { getFeeManager, getMain, getStrategyRegistry } from './clients.js';
|
|
3
|
+
const creditStrategyAbi = [
|
|
4
|
+
{
|
|
5
|
+
type: 'function',
|
|
6
|
+
name: 'name',
|
|
7
|
+
inputs: [],
|
|
8
|
+
outputs: [{ name: '', type: 'string' }],
|
|
9
|
+
stateMutability: 'view',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
type: 'function',
|
|
13
|
+
name: 'strategyType',
|
|
14
|
+
inputs: [],
|
|
15
|
+
outputs: [{ name: '', type: 'string' }],
|
|
16
|
+
stateMutability: 'view',
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
/** Approved strategies from `Main.strategyRegistry()` → `getStrategies()` + `ICreditStrategy` metadata. */
|
|
20
|
+
export async function fetchApprovedStrategiesFromMain(mainAddress, runner) {
|
|
21
|
+
const main = getMain(mainAddress, runner);
|
|
22
|
+
const registryAddr = (await main.strategyRegistry());
|
|
23
|
+
if (!registryAddr || registryAddr === '0x0000000000000000000000000000000000000000')
|
|
24
|
+
return [];
|
|
25
|
+
const registry = getStrategyRegistry(registryAddr, runner);
|
|
26
|
+
const addrs = (await registry.getStrategies());
|
|
27
|
+
if (!addrs?.length)
|
|
28
|
+
return [];
|
|
29
|
+
const rows = await Promise.all(addrs.map(async (addr) => {
|
|
30
|
+
const strategy = new Contract(addr, creditStrategyAbi, runner);
|
|
31
|
+
const [name, strategyType] = await Promise.all([
|
|
32
|
+
strategy.name(),
|
|
33
|
+
strategy.strategyType(),
|
|
34
|
+
]);
|
|
35
|
+
return { address: addr, name: String(name), strategyType: String(strategyType) };
|
|
36
|
+
}));
|
|
37
|
+
return rows;
|
|
38
|
+
}
|
|
39
|
+
/** `Main.feeManager()` address. */
|
|
40
|
+
export async function readFeeManagerAddressFromMain(mainAddress, runner) {
|
|
41
|
+
const main = getMain(mainAddress, runner);
|
|
42
|
+
return (await main.feeManager());
|
|
43
|
+
}
|
|
44
|
+
/** `FeeManager.maxSolverTipBps()`. */
|
|
45
|
+
export async function readMaxSolverTipBps(feeManagerAddress, runner) {
|
|
46
|
+
const fm = getFeeManager(feeManagerAddress, runner);
|
|
47
|
+
return fm.maxSolverTipBps();
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=strategies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../src/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAG1E,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACxB;CACO,CAAA;AAQV,2GAA2G;AAC3G,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,WAAoB,EACpB,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAY,CAAA;IAC/D,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,4CAA4C;QAAE,OAAO,EAAE,CAAA;IAE7F,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAc,CAAA;IAC3D,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,EAAE,CAAA;IAE7B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAA;QAC9D,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,QAAQ,CAAC,IAAI,EAAqB;YAClC,QAAQ,CAAC,YAAY,EAAqB;SAC3C,CAAC,CAAA;QACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;IAClF,CAAC,CAAC,CACH,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,WAAoB,EACpB,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAY,CAAA;AAC7C,CAAC;AAED,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,iBAA0B,EAC1B,MAAsB;IAEtB,MAAM,EAAE,GAAG,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IACnD,OAAO,EAAE,CAAC,eAAe,EAAqB,CAAA;AAChD,CAAC"}
|
package/dist/txGas.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Transaction gas limits on Base L2** — not protocol deployments.
|
|
3
|
+
*
|
|
4
|
+
* Base (and Base Sepolia) reject transactions whose gas limit exceeds this value
|
|
5
|
+
* (RPC / execution error: "exceeds maximum per-transaction gas limit").
|
|
6
|
+
* Use when setting `gasLimit` overrides with ethers or any signer on those networks.
|
|
7
|
+
*
|
|
8
|
+
* **Contract addresses per chain** live in `networkConfig.ts` (`deployments`, `getDeployment`).
|
|
9
|
+
*
|
|
10
|
+
* @see https://docs.base.org/base-chain/network-information/troubleshooting-transactions
|
|
11
|
+
*/
|
|
12
|
+
export declare const BASE_FAMILY_MAX_TX_GAS = 25000000n;
|
|
13
|
+
export declare const BASE_MAINNET_CHAIN_ID = 8453;
|
|
14
|
+
export declare const BASE_SEPOLIA_CHAIN_ID = 84532;
|
|
15
|
+
export declare function isBaseFamilyChain(chainId: bigint | number | null | undefined): boolean;
|
|
16
|
+
export declare function capGasForBaseFamily(chainId: bigint | number | null | undefined, gas: bigint | null | undefined): bigint | null | undefined;
|
|
17
|
+
/** Headroom for execution variance; still clamped to Base max tx gas. */
|
|
18
|
+
export declare function gasWithBufferForBaseFamily(chainId: bigint | number | null | undefined, gas: bigint | null | undefined, bufferBps?: bigint): bigint | undefined;
|
|
19
|
+
//# sourceMappingURL=txGas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"txGas.d.ts","sourceRoot":"","sources":["../src/txGas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,YAAc,CAAA;AAEjD,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,qBAAqB,QAAQ,CAAA;AAQ1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAGtF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,GAAG,SAAS,CAG3B;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9B,SAAS,GAAE,MAAc,GACxB,MAAM,GAAG,SAAS,CAKpB"}
|
package/dist/txGas.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **Transaction gas limits on Base L2** — not protocol deployments.
|
|
3
|
+
*
|
|
4
|
+
* Base (and Base Sepolia) reject transactions whose gas limit exceeds this value
|
|
5
|
+
* (RPC / execution error: "exceeds maximum per-transaction gas limit").
|
|
6
|
+
* Use when setting `gasLimit` overrides with ethers or any signer on those networks.
|
|
7
|
+
*
|
|
8
|
+
* **Contract addresses per chain** live in `networkConfig.ts` (`deployments`, `getDeployment`).
|
|
9
|
+
*
|
|
10
|
+
* @see https://docs.base.org/base-chain/network-information/troubleshooting-transactions
|
|
11
|
+
*/
|
|
12
|
+
export const BASE_FAMILY_MAX_TX_GAS = 25000000n;
|
|
13
|
+
export const BASE_MAINNET_CHAIN_ID = 8453;
|
|
14
|
+
export const BASE_SEPOLIA_CHAIN_ID = 84532;
|
|
15
|
+
const BASE_FAMILY_IDS = new Set([BASE_MAINNET_CHAIN_ID, BASE_SEPOLIA_CHAIN_ID]);
|
|
16
|
+
function chainIdToNumber(chainId) {
|
|
17
|
+
return typeof chainId === 'bigint' ? Number(chainId) : chainId;
|
|
18
|
+
}
|
|
19
|
+
export function isBaseFamilyChain(chainId) {
|
|
20
|
+
if (chainId == null)
|
|
21
|
+
return false;
|
|
22
|
+
return BASE_FAMILY_IDS.has(chainIdToNumber(chainId));
|
|
23
|
+
}
|
|
24
|
+
export function capGasForBaseFamily(chainId, gas) {
|
|
25
|
+
if (!isBaseFamilyChain(chainId) || gas == null)
|
|
26
|
+
return gas;
|
|
27
|
+
return gas > BASE_FAMILY_MAX_TX_GAS ? BASE_FAMILY_MAX_TX_GAS : gas;
|
|
28
|
+
}
|
|
29
|
+
/** Headroom for execution variance; still clamped to Base max tx gas. */
|
|
30
|
+
export function gasWithBufferForBaseFamily(chainId, gas, bufferBps = 1500n) {
|
|
31
|
+
if (gas == null)
|
|
32
|
+
return undefined;
|
|
33
|
+
const withBuf = (gas * (10000n + bufferBps)) / 10000n;
|
|
34
|
+
const capped = capGasForBaseFamily(chainId, withBuf);
|
|
35
|
+
return capped === null || capped === undefined ? undefined : capped;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=txGas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"txGas.js","sourceRoot":"","sources":["../src/txGas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAW,CAAA;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAE1C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAA;AAEvF,SAAS,eAAe,CAAC,OAAwB;IAC/C,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2C;IAC3E,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IACjC,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAA2C,EAC3C,GAA8B;IAE9B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,GAAG,CAAA;IAC1D,OAAO,GAAG,GAAG,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAA;AACpE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,0BAA0B,CACxC,OAA2C,EAC3C,GAA8B,EAC9B,YAAoB,KAAK;IAEzB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IACjC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,MAAO,GAAG,SAAS,CAAC,CAAC,GAAG,MAAO,CAAA;IACvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACpD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AACrE,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** Checksummed or lower-case `0x` address string. */
|
|
2
|
+
export type Address = string;
|
|
3
|
+
/** Zero address sentinel used for wallet-mode lender intents (no yield source deposit). */
|
|
4
|
+
export declare const WALLET_MODE_YIELD_SOURCE: Address;
|
|
5
|
+
/**
|
|
6
|
+
* Returns true if a lender intent uses wallet mode — i.e. `yieldSource` is the zero address.
|
|
7
|
+
* In wallet mode, funds are pulled from the lender's wallet via `transferFrom` at match time
|
|
8
|
+
* rather than from a yield source. The lender must approve the LoanManager for the asset.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isWalletModeLenderIntent(params: {
|
|
11
|
+
yieldSource: Address;
|
|
12
|
+
}): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Per-collateral LTV / LLTV in **basis points** (100% = 10_000).
|
|
15
|
+
* On-chain `Types.CollateralConfig` uses **`uint16`** for both fields (packing); protocol caps at 10_000 bps.
|
|
16
|
+
*/
|
|
17
|
+
export interface CollateralConfig {
|
|
18
|
+
token: Address;
|
|
19
|
+
/** Origination LTV cap, 1–10_000 bps. */
|
|
20
|
+
ltv: bigint;
|
|
21
|
+
/** Liquidation LTV threshold, 0–10_000 bps (`0` = no LLTV-based liquidation for this collateral). */
|
|
22
|
+
lltv: bigint;
|
|
23
|
+
}
|
|
24
|
+
/** Mirrors `LenderIntentParams` in `src/core/Types.sol`. */
|
|
25
|
+
export interface LenderIntentParams {
|
|
26
|
+
asset: Address;
|
|
27
|
+
minPrincipal: bigint;
|
|
28
|
+
maxPrincipal: bigint;
|
|
29
|
+
minRate: bigint;
|
|
30
|
+
minDuration: bigint;
|
|
31
|
+
maxDuration: bigint;
|
|
32
|
+
collateralToken: Address;
|
|
33
|
+
/** Origination LTV cap, 1–10_000 bps. */
|
|
34
|
+
ltv: bigint;
|
|
35
|
+
/** Liquidation LTV threshold, 1–10_000 bps. */
|
|
36
|
+
lltv: bigint;
|
|
37
|
+
expiry: bigint;
|
|
38
|
+
yieldSource: Address;
|
|
39
|
+
allowPartialFill: boolean;
|
|
40
|
+
/** 0 = unlimited; cap on cumulative fill by one borrower wallet. */
|
|
41
|
+
maxPerBorrowerAddress: bigint;
|
|
42
|
+
earlyRepaymentFeeBps: bigint;
|
|
43
|
+
blockEarlyRepayment: boolean;
|
|
44
|
+
callbackReceiver: Address;
|
|
45
|
+
}
|
|
46
|
+
/** Mirrors `BorrowerIntentParams` in `src/core/Types.sol`. */
|
|
47
|
+
export interface BorrowerIntentParams {
|
|
48
|
+
asset: Address;
|
|
49
|
+
principal: bigint;
|
|
50
|
+
maxRate: bigint;
|
|
51
|
+
duration: bigint;
|
|
52
|
+
collateral: Address;
|
|
53
|
+
maxCollateralAmount: bigint;
|
|
54
|
+
expiry: bigint;
|
|
55
|
+
autoRefinanceThresholdRate: bigint;
|
|
56
|
+
solverTipBps: bigint;
|
|
57
|
+
}
|
|
58
|
+
/** On-chain solver batch referencing existing intent IDs (`Types.SolverSolution`). */
|
|
59
|
+
export interface SolverSolution {
|
|
60
|
+
lenderIntentIds: bigint[];
|
|
61
|
+
borrowerIntentIds: bigint[];
|
|
62
|
+
agreedRates: bigint[];
|
|
63
|
+
fillAmounts: bigint[];
|
|
64
|
+
solverTip: bigint;
|
|
65
|
+
solver: Address;
|
|
66
|
+
deadline: bigint;
|
|
67
|
+
signature: string;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,2FAA2F;AAC3F,eAAO,MAAM,wBAAwB,EAAE,OAAsD,CAAA;AAE7F;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,qGAAqG;IACrG,IAAI,EAAE,MAAM,CAAA;CACb;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,oEAAoE;IACpE,qBAAqB,EAAE,MAAM,CAAA;IAC7B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,0BAA0B,EAAE,MAAM,CAAA;IAClC,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Zero address sentinel used for wallet-mode lender intents (no yield source deposit). */
|
|
2
|
+
export const WALLET_MODE_YIELD_SOURCE = '0x0000000000000000000000000000000000000000';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if a lender intent uses wallet mode — i.e. `yieldSource` is the zero address.
|
|
5
|
+
* In wallet mode, funds are pulled from the lender's wallet via `transferFrom` at match time
|
|
6
|
+
* rather than from a yield source. The lender must approve the LoanManager for the asset.
|
|
7
|
+
*/
|
|
8
|
+
export function isWalletModeLenderIntent(params) {
|
|
9
|
+
return !params.yieldSource || params.yieldSource === WALLET_MODE_YIELD_SOURCE;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,2FAA2F;AAC3F,MAAM,CAAC,MAAM,wBAAwB,GAAY,4CAA4C,CAAA;AAE7F;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAgC;IACvE,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,wBAAwB,CAAA;AAC/E,CAAC"}
|