@pearcurve/sdk 0.0.0-stage → 0.1.0
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/json/collateralTokenRegistry.json +257 -0
- package/dist/abis/json/errors.json +1034 -0
- package/dist/abis/json/feeManager.json +668 -0
- package/dist/abis/json/intentRegistry.json +1169 -0
- package/dist/abis/json/intentRegistryViews.json +958 -0
- package/dist/abis/json/loanAssetRegistry.json +220 -0
- package/dist/abis/json/loanHealthViewer.json +176 -0
- package/dist/abis/json/loanManager.json +1404 -0
- package/dist/abis/json/loanMarketCaps.json +1642 -0
- package/dist/abis/json/loanPositionToken.json +650 -0
- package/dist/abis/json/main.json +1951 -0
- package/dist/abis/json/matchingEngine.json +2060 -0
- package/dist/abis/json/priceOracle.json +453 -0
- package/dist/abis/json/protocolViewer.json +959 -0
- package/dist/abis/json/secondaryMarket.json +1348 -0
- package/dist/abis/json/strategyRegistry.json +237 -0
- package/dist/abis/json/termCurveOracle.json +346 -0
- package/dist/abis/json/yieldSource.json +298 -0
- package/dist/abis/json/yieldSourceRegistry.json +295 -0
- 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
- package/src/abis/json/collateralTokenRegistry.json +257 -0
- package/src/abis/json/errors.json +1034 -0
- package/src/abis/json/feeManager.json +668 -0
- package/src/abis/json/intentRegistry.json +1169 -0
- package/src/abis/json/intentRegistryViews.json +958 -0
- package/src/abis/json/loanAssetRegistry.json +220 -0
- package/src/abis/json/loanHealthViewer.json +176 -0
- package/src/abis/json/loanManager.json +1404 -0
- package/src/abis/json/loanMarketCaps.json +1642 -0
- package/src/abis/json/loanPositionToken.json +650 -0
- package/src/abis/json/main.json +1951 -0
- package/src/abis/json/matchingEngine.json +2060 -0
- package/src/abis/json/priceOracle.json +453 -0
- package/src/abis/json/protocolViewer.json +959 -0
- package/src/abis/json/secondaryMarket.json +1348 -0
- package/src/abis/json/strategyRegistry.json +237 -0
- package/src/abis/json/termCurveOracle.json +346 -0
- package/src/abis/json/yieldSource.json +298 -0
- package/src/abis/json/yieldSourceRegistry.json +295 -0
package/dist/pause.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { getMain } from './clients.js';
|
|
2
|
+
import { formatProtocolError } from './decodeError.js';
|
|
3
|
+
export var MarketFeature;
|
|
4
|
+
(function (MarketFeature) {
|
|
5
|
+
MarketFeature[MarketFeature["Deposit"] = 0] = "Deposit";
|
|
6
|
+
MarketFeature[MarketFeature["Withdraw"] = 1] = "Withdraw";
|
|
7
|
+
MarketFeature[MarketFeature["Borrow"] = 2] = "Borrow";
|
|
8
|
+
MarketFeature[MarketFeature["Repay"] = 3] = "Repay";
|
|
9
|
+
MarketFeature[MarketFeature["Liquidate"] = 4] = "Liquidate";
|
|
10
|
+
MarketFeature[MarketFeature["Refinance"] = 5] = "Refinance";
|
|
11
|
+
MarketFeature[MarketFeature["Match"] = 6] = "Match";
|
|
12
|
+
MarketFeature[MarketFeature["Secondary"] = 7] = "Secondary";
|
|
13
|
+
})(MarketFeature || (MarketFeature = {}));
|
|
14
|
+
/** Reads OpenZeppelin `Pausable.paused()` from Main. */
|
|
15
|
+
export async function isProtocolPaused(mainAddress, runner) {
|
|
16
|
+
const main = getMain(mainAddress, runner);
|
|
17
|
+
return Boolean(await main.paused());
|
|
18
|
+
}
|
|
19
|
+
/** Reads market-level pause flag from Main. */
|
|
20
|
+
export async function isMarketPaused(mainAddress, market, runner) {
|
|
21
|
+
const main = getMain(mainAddress, runner);
|
|
22
|
+
return Boolean(await main.isMarketPaused(market));
|
|
23
|
+
}
|
|
24
|
+
/** Reads market-feature-level pause flag from Main. */
|
|
25
|
+
export async function isMarketFeaturePaused(mainAddress, market, feature, runner) {
|
|
26
|
+
const main = getMain(mainAddress, runner);
|
|
27
|
+
return Boolean(await main.isMarketFeaturePaused(market, feature));
|
|
28
|
+
}
|
|
29
|
+
export function mapPauseError(error) {
|
|
30
|
+
const formatted = formatProtocolError(error);
|
|
31
|
+
if (!formatted)
|
|
32
|
+
return null;
|
|
33
|
+
const lower = formatted.toLowerCase();
|
|
34
|
+
if (lower.includes('paused') ||
|
|
35
|
+
lower.includes('pause')) {
|
|
36
|
+
return formatted;
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=pause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pause.js","sourceRoot":"","sources":["../src/pause.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAGtD,MAAM,CAAN,IAAY,aASX;AATD,WAAY,aAAa;IACvB,uDAAW,CAAA;IACX,yDAAY,CAAA;IACZ,qDAAU,CAAA;IACV,mDAAS,CAAA;IACT,2DAAa,CAAA;IACb,2DAAa,CAAA;IACb,mDAAS,CAAA;IACT,2DAAa,CAAA;AACf,CAAC,EATW,aAAa,KAAb,aAAa,QASxB;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAoB,EAAE,MAAsB;IACjF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAoB,EACpB,MAAe,EACf,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAoB,EACpB,MAAe,EACf,OAA+B,EAC/B,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACrC,IACE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EACvB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/reads.d.ts
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type { ContractRunner } from 'ethers';
|
|
2
|
+
import { getLoanManager } from './clients.js';
|
|
3
|
+
import { MarketFeature } from './pause.js';
|
|
4
|
+
import type { Address } from './types.js';
|
|
5
|
+
export { MarketFeature };
|
|
6
|
+
export type LoanAgreementExtras = {
|
|
7
|
+
strategy: string | null;
|
|
8
|
+
lltv: bigint;
|
|
9
|
+
yieldSource: string | null;
|
|
10
|
+
blockEarlyRepayment: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type LoanReadBundle = {
|
|
13
|
+
agreement: Awaited<ReturnType<ReturnType<typeof getLoanManager>['getAgreement']>>;
|
|
14
|
+
} & LoanAgreementExtras;
|
|
15
|
+
export type YieldSourceBalancePack = {
|
|
16
|
+
sources: string[];
|
|
17
|
+
balances: bigint[];
|
|
18
|
+
};
|
|
19
|
+
/** Full loan row inputs for UI formatters (`getAgreement` + per-loan metadata). */
|
|
20
|
+
export declare function readLoanBundle(loanManagerAddress: Address, loanId: bigint, runner: ContractRunner): Promise<LoanReadBundle>;
|
|
21
|
+
/** `Main.getAllYieldSourceBalances(owner, asset)`. */
|
|
22
|
+
export declare function readAllYieldSourceBalances(mainAddress: Address, owner: Address, asset: Address, runner: ContractRunner): Promise<YieldSourceBalancePack>;
|
|
23
|
+
/** `LoanHealthViewer.getLoanHealth(loanId)`. */
|
|
24
|
+
export declare function readLoanHealth(viewerAddress: Address, loanId: bigint, runner: ContractRunner): Promise<any>;
|
|
25
|
+
/** Core `IntentRegistry` address behind a views facade. */
|
|
26
|
+
export declare function readIntentRegistryAddress(viewsAddress: Address, runner: ContractRunner): Promise<Address>;
|
|
27
|
+
/** `IntentRegistry.committedCollateral(owner, collateral)` — on-chain borrower intent bookings only. */
|
|
28
|
+
export declare function readCommittedCollateral(intentRegistryAddress: Address, owner: Address, collateral: Address, runner: ContractRunner): Promise<bigint>;
|
|
29
|
+
/** `IntentRegistry.committedCapacity(owner, yieldSource, asset)` — on-chain lender intent bookings only. */
|
|
30
|
+
export declare function readCommittedCapacity(intentRegistryAddress: Address, owner: Address, yieldSource: Address, asset: Address, runner: ContractRunner): Promise<bigint>;
|
|
31
|
+
export declare function readLenderIntent(viewsAddress: Address, intentId: bigint, runner: ContractRunner): Promise<any>;
|
|
32
|
+
export declare function readBorrowerIntent(viewsAddress: Address, intentId: bigint, runner: ContractRunner): Promise<any>;
|
|
33
|
+
/** `PriceOracle.getAssetPrice(asset)` when supported by deployment. */
|
|
34
|
+
export declare function readAssetPrice(oracleAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint>;
|
|
35
|
+
/** `IPriceOracle.getPrice(collateral, quote)` (e.g. mock testnet oracle). */
|
|
36
|
+
export declare function readOraclePairPrice(oracleAddress: Address, collateral: Address, quote: Address, runner: ContractRunner): Promise<bigint>;
|
|
37
|
+
/** `IYieldSource.totalAssets(asset)`. */
|
|
38
|
+
export declare function readYieldSourceTotalAssets(yieldSourceAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint>;
|
|
39
|
+
export type ProtocolTotalsSnapshot = {
|
|
40
|
+
activeLoanCount: bigint;
|
|
41
|
+
nextLoanId: bigint;
|
|
42
|
+
nextLenderIntentId: bigint;
|
|
43
|
+
nextBorrowerIntentId: bigint;
|
|
44
|
+
};
|
|
45
|
+
export type LoanSummaryRow = {
|
|
46
|
+
loanId: bigint;
|
|
47
|
+
status: number;
|
|
48
|
+
lenderOwner: string;
|
|
49
|
+
borrowerOwner: string;
|
|
50
|
+
asset: string;
|
|
51
|
+
collateral: string;
|
|
52
|
+
principal: bigint;
|
|
53
|
+
collateralAmount: bigint;
|
|
54
|
+
interestRate: bigint;
|
|
55
|
+
lltv: number;
|
|
56
|
+
startTime: bigint;
|
|
57
|
+
maturity: bigint;
|
|
58
|
+
};
|
|
59
|
+
export type LenderIntentSummaryRow = {
|
|
60
|
+
intentId: bigint;
|
|
61
|
+
owner: string;
|
|
62
|
+
asset: string;
|
|
63
|
+
maxPrincipal: bigint;
|
|
64
|
+
filledAmount: bigint;
|
|
65
|
+
minRate: bigint;
|
|
66
|
+
expiry: bigint;
|
|
67
|
+
active: boolean;
|
|
68
|
+
yieldSource: string;
|
|
69
|
+
};
|
|
70
|
+
export type BorrowerIntentSummaryRow = {
|
|
71
|
+
intentId: bigint;
|
|
72
|
+
owner: string;
|
|
73
|
+
asset: string;
|
|
74
|
+
principal: bigint;
|
|
75
|
+
filledAmount: bigint;
|
|
76
|
+
maxRate: bigint;
|
|
77
|
+
duration: bigint;
|
|
78
|
+
collateral: string;
|
|
79
|
+
expiry: bigint;
|
|
80
|
+
active: boolean;
|
|
81
|
+
};
|
|
82
|
+
export type YieldTvlBreakdownRow = {
|
|
83
|
+
yieldSource: string;
|
|
84
|
+
asset: string;
|
|
85
|
+
totalAssets: bigint;
|
|
86
|
+
name: string;
|
|
87
|
+
};
|
|
88
|
+
export type YieldApyRow = {
|
|
89
|
+
yieldSource: string;
|
|
90
|
+
asset: string;
|
|
91
|
+
apyBps: bigint;
|
|
92
|
+
};
|
|
93
|
+
export type MarketCapRow = {
|
|
94
|
+
asset: string;
|
|
95
|
+
defaultSupplyCap: bigint;
|
|
96
|
+
defaultBorrowCap: bigint;
|
|
97
|
+
};
|
|
98
|
+
export type WalletYieldBalanceRow = {
|
|
99
|
+
asset: string;
|
|
100
|
+
yieldSource: string;
|
|
101
|
+
balance: bigint;
|
|
102
|
+
};
|
|
103
|
+
export type ProtocolSnapshotBundle = {
|
|
104
|
+
totals: ProtocolTotalsSnapshot;
|
|
105
|
+
assetPrices: bigint[];
|
|
106
|
+
yieldTvl: Array<{
|
|
107
|
+
asset: string;
|
|
108
|
+
totalAssets: bigint;
|
|
109
|
+
}>;
|
|
110
|
+
yieldBreakdown: YieldTvlBreakdownRow[];
|
|
111
|
+
yieldApys: YieldApyRow[];
|
|
112
|
+
marketCaps: MarketCapRow[];
|
|
113
|
+
};
|
|
114
|
+
/** `ProtocolViewer.getProtocolTotals()`. */
|
|
115
|
+
export declare function readProtocolTotals(viewerAddress: Address, runner: ContractRunner): Promise<ProtocolTotalsSnapshot>;
|
|
116
|
+
/** `ProtocolViewer.getLoanSummaries(startId, limit)`. */
|
|
117
|
+
export declare function readLoanSummaries(viewerAddress: Address, startId: bigint, limit: bigint, runner: ContractRunner): Promise<LoanSummaryRow[]>;
|
|
118
|
+
/** `ProtocolViewer.getProtocolSnapshot(assets)` — single-call landing fast slice. */
|
|
119
|
+
export declare function readProtocolSnapshot(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<ProtocolSnapshotBundle>;
|
|
120
|
+
export type SummaryPage<T> = {
|
|
121
|
+
rows: T[];
|
|
122
|
+
/** `startId` for the next page, or 0 once the id range up to `next{Lender,Borrower}IntentId` is exhausted. */
|
|
123
|
+
nextId: bigint;
|
|
124
|
+
};
|
|
125
|
+
/** `ProtocolViewer.getLenderIntentSummaries(startId, limit)` — returns `(rows, nextId)`. */
|
|
126
|
+
export declare function readLenderIntentSummaries(viewerAddress: Address, startId: bigint, limit: bigint, runner: ContractRunner): Promise<SummaryPage<LenderIntentSummaryRow>>;
|
|
127
|
+
/** `ProtocolViewer.getBorrowerIntentSummaries(startId, limit)` — returns `(rows, nextId)`. */
|
|
128
|
+
export declare function readBorrowerIntentSummaries(viewerAddress: Address, startId: bigint, limit: bigint, runner: ContractRunner): Promise<SummaryPage<BorrowerIntentSummaryRow>>;
|
|
129
|
+
/** `ProtocolViewer.getLoanSummariesByIds(loanIds)`. */
|
|
130
|
+
export declare function readLoanSummariesByIds(viewerAddress: Address, loanIds: bigint[], runner: ContractRunner): Promise<LoanSummaryRow[]>;
|
|
131
|
+
/** `ProtocolViewer.getLenderIntentSummariesByIds(intentIds)`. */
|
|
132
|
+
export declare function readLenderIntentSummariesByIds(viewerAddress: Address, intentIds: bigint[], runner: ContractRunner): Promise<LenderIntentSummaryRow[]>;
|
|
133
|
+
/** `ProtocolViewer.getBorrowerIntentSummariesByIds(intentIds)`. */
|
|
134
|
+
export declare function readBorrowerIntentSummariesByIds(viewerAddress: Address, intentIds: bigint[], runner: ContractRunner): Promise<BorrowerIntentSummaryRow[]>;
|
|
135
|
+
/** `ProtocolViewer.getYieldTvlBreakdown(assets)`. */
|
|
136
|
+
export declare function readYieldTvlBreakdownFromViewer(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<YieldTvlBreakdownRow[]>;
|
|
137
|
+
/** `ProtocolViewer.getYieldTvlByAssets(assets)`. */
|
|
138
|
+
export declare function readYieldTvlByAssetsFromViewer(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<Array<{
|
|
139
|
+
asset: string;
|
|
140
|
+
totalAssets: bigint;
|
|
141
|
+
}>>;
|
|
142
|
+
/** `ProtocolViewer.getAssetPricesUsd(assets)`. */
|
|
143
|
+
export declare function readAssetPricesFromViewer(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<bigint[]>;
|
|
144
|
+
/** `ProtocolViewer.getYieldApys(assets)`. */
|
|
145
|
+
export declare function readYieldApysFromViewer(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<YieldApyRow[]>;
|
|
146
|
+
/** `ProtocolViewer.getMarketCaps(assets)`. */
|
|
147
|
+
export declare function readMarketCapsFromViewer(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<MarketCapRow[]>;
|
|
148
|
+
/** `ProtocolViewer.getWalletYieldSnapshot(user, assets)`. */
|
|
149
|
+
export declare function readWalletYieldSnapshot(viewerAddress: Address, user: Address, assetAddresses: Address[], runner: ContractRunner): Promise<WalletYieldBalanceRow[]>;
|
|
150
|
+
/** `ProtocolViewer.getActiveLenderIntentCounts(assets)`. */
|
|
151
|
+
export declare function readActiveLenderIntentCounts(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<bigint[]>;
|
|
152
|
+
/** `ProtocolViewer.getActiveBorrowerIntentCounts(assets)`. */
|
|
153
|
+
export declare function readActiveBorrowerIntentCounts(viewerAddress: Address, assetAddresses: Address[], runner: ContractRunner): Promise<bigint[]>;
|
|
154
|
+
export type PaginatedIds = {
|
|
155
|
+
ids: bigint[];
|
|
156
|
+
nextId: bigint;
|
|
157
|
+
};
|
|
158
|
+
/** `IntentRegistryViews.getActiveLenderIntents(asset)` — full rate-sorted list, unbounded. */
|
|
159
|
+
export declare function readActiveLenderIntents(viewsAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint[]>;
|
|
160
|
+
/** `IntentRegistryViews.getActiveLenderIntentsCount(asset)`. */
|
|
161
|
+
export declare function readActiveLenderIntentsCount(viewsAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint>;
|
|
162
|
+
/** `IntentRegistryViews.getActiveLenderIntentsPaginated(asset, startId, limit)` — rate-sorted, cursor-based. */
|
|
163
|
+
export declare function readActiveLenderIntentsPaginated(viewsAddress: Address, asset: Address, startId: bigint, limit: bigint, runner: ContractRunner): Promise<PaginatedIds>;
|
|
164
|
+
/** `IntentRegistryViews.getActiveBorrowerIntents(asset)` — full FIFO (oldest-first) list, unbounded. */
|
|
165
|
+
export declare function readActiveBorrowerIntents(viewsAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint[]>;
|
|
166
|
+
/** `IntentRegistryViews.getActiveBorrowerIntentsCount(asset)`. */
|
|
167
|
+
export declare function readActiveBorrowerIntentsCount(viewsAddress: Address, asset: Address, runner: ContractRunner): Promise<bigint>;
|
|
168
|
+
/** `IntentRegistryViews.getActiveBorrowerIntentsPaginated(asset, startId, limit)` — FIFO, cursor-based. */
|
|
169
|
+
export declare function readActiveBorrowerIntentsPaginated(viewsAddress: Address, asset: Address, startId: bigint, limit: bigint, runner: ContractRunner): Promise<PaginatedIds>;
|
|
170
|
+
export type PauseSnapshot = {
|
|
171
|
+
protocolPaused: boolean;
|
|
172
|
+
/** Lowercase market asset address → paused */
|
|
173
|
+
marketPausedByAddress: Record<string, boolean>;
|
|
174
|
+
/** `MarketFeature` enum name → paused (sampled on first market) */
|
|
175
|
+
featurePausedByName: Record<string, boolean>;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Batch pause reads for risk UI.
|
|
179
|
+
* Feature flags are read against `sampleMarketForFeatures` (first market if omitted).
|
|
180
|
+
*/
|
|
181
|
+
export declare function fetchPauseSnapshot(mainAddress: Address, marketAddresses: Address[], runner: ContractRunner, sampleMarketForFeatures?: Address | null): Promise<PauseSnapshot>;
|
|
182
|
+
/**
|
|
183
|
+
* Protocol → market → feature pause preflight (user-facing reason or null).
|
|
184
|
+
* @param runner ethers provider/signer attached to the target chain
|
|
185
|
+
*/
|
|
186
|
+
export declare function preflightPauseReason(mainAddress: Address, market: Address, feature: MarketFeature | number | null | undefined, runner: ContractRunner): Promise<string | null>;
|
|
187
|
+
//# sourceMappingURL=reads.d.ts.map
|
|
@@ -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"}
|