@1delta/margin-fetcher 0.0.226 → 0.0.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abis/silo-v2/Silo.d.ts +101 -0
- package/dist/abis/silo-v2/Silo.d.ts.map +1 -0
- package/dist/abis/silo-v2/SiloConfig.d.ts +78 -0
- package/dist/abis/silo-v2/SiloConfig.d.ts.map +1 -0
- package/dist/abis/silo-v2/SiloLens.d.ts +50 -0
- package/dist/abis/silo-v2/SiloLens.d.ts.map +1 -0
- package/dist/abis/silo-v2/index.d.ts +4 -0
- package/dist/abis/silo-v2/index.d.ts.map +1 -0
- package/dist/index.js +1848 -94
- package/dist/index.js.map +1 -1
- package/dist/lending/public-data/fetchLender.d.ts.map +1 -1
- package/dist/lending/public-data/fetchLenderAll.d.ts.map +1 -1
- package/dist/lending/public-data/fetchLenderExt.d.ts.map +1 -1
- package/dist/lending/public-data/lista/getMarketsFromChain.d.ts.map +1 -1
- package/dist/lending/public-data/silo-v2/convertPublic.d.ts +28 -0
- package/dist/lending/public-data/silo-v2/convertPublic.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v2/fetchPublic.d.ts +70 -0
- package/dist/lending/public-data/silo-v2/fetchPublic.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v2/publicCallBuild.d.ts +23 -0
- package/dist/lending/public-data/silo-v2/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v2/publicCallParse.d.ts +25 -0
- package/dist/lending/public-data/silo-v2/publicCallParse.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v3/convertPublic.d.ts +18 -0
- package/dist/lending/public-data/silo-v3/convertPublic.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v3/publicCallBuild.d.ts +19 -0
- package/dist/lending/public-data/silo-v3/publicCallBuild.d.ts.map +1 -0
- package/dist/lending/public-data/silo-v3/publicCallParse.d.ts +16 -0
- package/dist/lending/public-data/silo-v3/publicCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/abis.d.ts.map +1 -1
- package/dist/lending/user-data/fetch-balances/parse.d.ts.map +1 -1
- package/dist/lending/user-data/fetch-balances/prepare.d.ts.map +1 -1
- package/dist/lending/user-data/silo-v2/userCallBuild.d.ts +21 -0
- package/dist/lending/user-data/silo-v2/userCallBuild.d.ts.map +1 -0
- package/dist/lending/user-data/silo-v2/userCallParse.d.ts +23 -0
- package/dist/lending/user-data/silo-v2/userCallParse.d.ts.map +1 -0
- package/dist/lending/user-data/utils/types.d.ts +20 -0
- package/dist/lending/user-data/utils/types.d.ts.map +1 -1
- package/dist/prices/oracle-prices/fetchOraclePrices.d.ts.map +1 -1
- package/dist/prices/oracle-prices/fetchers/index.d.ts +2 -0
- package/dist/prices/oracle-prices/fetchers/index.d.ts.map +1 -1
- package/dist/prices/oracle-prices/fetchers/siloV2.d.ts +108 -0
- package/dist/prices/oracle-prices/fetchers/siloV2.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchers/siloV2Graphql.d.ts +36 -0
- package/dist/prices/oracle-prices/fetchers/siloV2Graphql.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchers/siloV3.d.ts +52 -0
- package/dist/prices/oracle-prices/fetchers/siloV3.d.ts.map +1 -0
- package/dist/prices/oracle-prices/fetchers/siloV3Graphql.d.ts +19 -0
- package/dist/prices/oracle-prices/fetchers/siloV3Graphql.d.ts.map +1 -0
- package/dist/prices/oracle-prices/index.d.ts +2 -0
- package/dist/prices/oracle-prices/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLender.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAkBtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchLender.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLender.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAkBtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAmCtD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,GAAE,gBAAqB,EAChC,eAAe,CAAC,EAAE,MAAM,EAAE,8CAmB3B;AAoJD,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,KACA,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA+DnC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"fetchLenderAll.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLenderAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAUtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAmCtD,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,gBAAgB,sBAAsB,EACtC,YAAY,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAC3C,sCAAoC,KACnC,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAoDnC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLenderExt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetchLenderExt.d.ts","sourceRoot":"","sources":["../../../src/lending/public-data/fetchLenderExt.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAM9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AA2BtD,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,SAAS,MAAM,EAAE,EACjB,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,MAAM,OAAO,CAAC,gBAAgB,CAExC,EACD,yBAAuB,KACtB,OAAO,CAAC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA4JnC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMarketsFromChain.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/lista/getMarketsFromChain.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAUjD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,EACX,gBAAgB,GAAE,gBAIjB,EACD,MAAM,GAAE,gBAAqB,EAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"getMarketsFromChain.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/lista/getMarketsFromChain.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAUjD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,GAAG,EACX,gBAAgB,GAAE,gBAIjB,EACD,MAAM,GAAE,gBAAqB,EAC7B,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC,CA+N5C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AdditionalYields } from '../../../types';
|
|
2
|
+
import type { GenericTokenList } from '../../../types/general';
|
|
3
|
+
import type { SiloApiEntry } from './fetchPublic';
|
|
4
|
+
/**
|
|
5
|
+
* Convert a Silo GraphQL `silos.items` response into the same per-pair
|
|
6
|
+
* shape emitted by the on-chain Silo v2 parser
|
|
7
|
+
* (`getSiloV2ReservesDataConverter`).
|
|
8
|
+
*
|
|
9
|
+
* Per API silo entry we emit exactly one per-pair lender key
|
|
10
|
+
* (`SILO_V2_<configAddress>`) carrying BOTH sides of the pair as reserve
|
|
11
|
+
* entries, keyed by `createMarketUid(chainId, lender, siloAddress)`.
|
|
12
|
+
*
|
|
13
|
+
* The API's dynamic fields (`supply`, `borrowed`, `borrowRate`,
|
|
14
|
+
* `depositRate`, `supplyUsd`, `borrowedUsd`) are decimal strings already
|
|
15
|
+
* denominated in token units — we consume them directly without any wei /
|
|
16
|
+
* 1e18 shifting. `lt` and `maxLtv` stay as 1e18-scaled bigint strings.
|
|
17
|
+
*
|
|
18
|
+
* Static metadata the API does not expose (protected share token, per-side
|
|
19
|
+
* IRM address unless present, hook receiver) is pulled from the data-sdk
|
|
20
|
+
* registry via `getSiloV2MarketEntry`. If the registry has no entry for a
|
|
21
|
+
* given `configAddress` we skip it — the on-chain path owns discovery.
|
|
22
|
+
*/
|
|
23
|
+
export declare function convertSiloMarketsToPublicResponse(apiItems: SiloApiEntry[], chainId: string, prices: {
|
|
24
|
+
[asset: string]: number;
|
|
25
|
+
}, additionalYields?: AdditionalYields, tokenList?: GenericTokenList): {
|
|
26
|
+
[lender: string]: any;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=convertPublic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v2/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,eAAe,CAAA;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,gBAAgB,GAAE,gBAIjB,EACD,SAAS,GAAE,gBAAqB,GAC/B;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA+K3B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chains for which the Silo GraphQL indexer has data. For any chain not in
|
|
3
|
+
* this set, the caller must fall back to the on-chain path.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SILO_API_SUPPORTED_CHAIN_IDS: Set<string>;
|
|
6
|
+
export type SiloApiMarket = {
|
|
7
|
+
index: number;
|
|
8
|
+
inputTokenId: string;
|
|
9
|
+
inputToken?: {
|
|
10
|
+
id: string;
|
|
11
|
+
symbol: string;
|
|
12
|
+
decimals: number;
|
|
13
|
+
} | null;
|
|
14
|
+
lt: string;
|
|
15
|
+
maxLtv: string;
|
|
16
|
+
liquidationTargetLtv?: string | null;
|
|
17
|
+
daoFee?: string | null;
|
|
18
|
+
deployerFee?: string | null;
|
|
19
|
+
liquidationFee?: string | null;
|
|
20
|
+
flashLoanFee?: string | null;
|
|
21
|
+
borrowRate: string;
|
|
22
|
+
depositRate: string;
|
|
23
|
+
supply: string;
|
|
24
|
+
borrowed: string;
|
|
25
|
+
supplyUsd: number | null;
|
|
26
|
+
borrowedUsd: number | null;
|
|
27
|
+
liquidityUsd?: number | null;
|
|
28
|
+
utilization: string;
|
|
29
|
+
solvencyOracleAddress?: string | null;
|
|
30
|
+
maxLtvOracleAddress?: string | null;
|
|
31
|
+
interestRateModelId?: string | null;
|
|
32
|
+
sTokenId?: string | null;
|
|
33
|
+
spTokenId?: string | null;
|
|
34
|
+
dTokenId?: string | null;
|
|
35
|
+
solvencyOracle?: {
|
|
36
|
+
id: string;
|
|
37
|
+
quote: string;
|
|
38
|
+
quoteTimestamp: string;
|
|
39
|
+
baseTokenId: string;
|
|
40
|
+
quoteTokenId: string;
|
|
41
|
+
} | null;
|
|
42
|
+
maxLtvOracle?: {
|
|
43
|
+
id: string;
|
|
44
|
+
quote: string;
|
|
45
|
+
quoteTimestamp: string;
|
|
46
|
+
} | null;
|
|
47
|
+
};
|
|
48
|
+
export type SiloApiEntry = {
|
|
49
|
+
id: string;
|
|
50
|
+
chainId: number;
|
|
51
|
+
configAddress: string;
|
|
52
|
+
name?: string | null;
|
|
53
|
+
protocol?: {
|
|
54
|
+
protocolVersion: string;
|
|
55
|
+
} | null;
|
|
56
|
+
market1: SiloApiMarket;
|
|
57
|
+
market2: SiloApiMarket;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Fetch all Silo v2/v3 silos for a single chain from the GraphQL indexer.
|
|
61
|
+
*
|
|
62
|
+
* Returns the raw `silos.items` list (optionally filtered to a specific
|
|
63
|
+
* protocol version). Throws on HTTP / GraphQL errors so the caller can
|
|
64
|
+
* distinguish "API failed → fall back to RPC" from "API returned nothing".
|
|
65
|
+
*/
|
|
66
|
+
export declare function fetchSiloMarkets(chainId: string, options?: {
|
|
67
|
+
protocolVersion?: 'v2' | 'v3';
|
|
68
|
+
limit?: number;
|
|
69
|
+
}): Promise<SiloApiEntry[]>;
|
|
70
|
+
//# sourceMappingURL=fetchPublic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchPublic.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v2/fetchPublic.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,eAAO,MAAM,4BAA4B,aAMvC,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;KACjB,GAAG,IAAI,CAAA;IACR,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc,CAAC,EAAE;QACf,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,IAAI,CAAA;IACR,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,cAAc,EAAE,MAAM,CAAA;KACvB,GAAG,IAAI,CAAA;CACT,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE;QACT,eAAe,EAAE,MAAM,CAAA;KACxB,GAAG,IAAI,CAAA;IACR,OAAO,EAAE,aAAa,CAAA;IACtB,OAAO,EAAE,aAAa,CAAA;CACvB,CAAA;AA8FD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GACA,OAAO,CAAC,YAAY,EAAE,CAAC,CA8BzB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per Silo v2 pair we emit 4 multicall entries (2 per side):
|
|
3
|
+
* silo0.totalAssets() — total deposits incl. accrued interest
|
|
4
|
+
* silo0.getDebtAssets() — total borrows
|
|
5
|
+
* silo1.totalAssets()
|
|
6
|
+
* silo1.getDebtAssets()
|
|
7
|
+
*
|
|
8
|
+
* Each pair lives under its own per-pair lender key (`SILO_V2_<HEX>`),
|
|
9
|
+
* resolved via `getSiloV2MarketEntry`. All static metadata (oracle, irm, lt,
|
|
10
|
+
* fees, decimals, share tokens) lives on the entry so it's never fetched.
|
|
11
|
+
*
|
|
12
|
+
* NOTE on rates: we deliberately do NOT call `SiloLens.get{Deposit,Borrow}APR`
|
|
13
|
+
* here. The lens address is per-chain and is shipped via lender-metadata —
|
|
14
|
+
* if it's misconfigured (or the deployed lens is on a different version
|
|
15
|
+
* with a different ABI), one revert poisons the whole multicall batch.
|
|
16
|
+
* Rates can be reconstructed in the parser via the IRM (static `irm`
|
|
17
|
+
* address on each `SiloHalfStatic`) by an off-multicall path, or surfaced
|
|
18
|
+
* later as a separate optional call once the lens situation is settled.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SILO_V2_CALLS_PER_SIDE = 2;
|
|
21
|
+
export declare const SILO_V2_CALLS_PER_PAIR: number;
|
|
22
|
+
export declare function buildSiloV2LenderReserveCall(_chainId: string, lender: string): any[];
|
|
23
|
+
//# sourceMappingURL=publicCallBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v2/publicCallBuild.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AACvC,eAAO,MAAM,sBAAsB,QAA6B,CAAA;AAEhE,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,SAuBf"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AdditionalYields } from '../../../types';
|
|
2
|
+
import type { GenericTokenList } from '../../../types/general';
|
|
3
|
+
/**
|
|
4
|
+
* Parse the dynamic state returned by `buildSiloV2LenderReserveCall` for a
|
|
5
|
+
* single Silo v2 pair (one per-pair lender key `SILO_V2_<HEX>`).
|
|
6
|
+
*
|
|
7
|
+
* Result layout (6 slots):
|
|
8
|
+
* [totalAssets0, debtAssets0, depositAPR0, totalAssets1, debtAssets1, depositAPR1]
|
|
9
|
+
*
|
|
10
|
+
* Both sides are borrowable and serve as collateral for the OPPOSITE side, so
|
|
11
|
+
* each silo emits a reserve entry whose `borrowingEnabled` and
|
|
12
|
+
* `collateralActive` flags are both true. The collateral factor / LLTV used
|
|
13
|
+
* for the reserve is the LLTV of the *other* silo (the side that holds the
|
|
14
|
+
* collateral when borrowing this asset).
|
|
15
|
+
*
|
|
16
|
+
* Static metadata (decimals, oracle, lt, fees, share tokens) comes entirely
|
|
17
|
+
* from `getSiloV2MarketEntry()` and never hits the chain on this code path.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getSiloV2ReservesDataConverter: (lender: string, chainId: string, prices: {
|
|
20
|
+
[asset: string]: number;
|
|
21
|
+
}, additionalYields: AdditionalYields, tokenList?: GenericTokenList) => [(data: any[]) => {
|
|
22
|
+
data: any;
|
|
23
|
+
chainId: string;
|
|
24
|
+
} | undefined, number];
|
|
25
|
+
//# sourceMappingURL=publicCallParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v2/publicCallParse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAQ9D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CA2JtE,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AdditionalYields } from '../../../types';
|
|
2
|
+
import type { GenericTokenList } from '../../../types/general';
|
|
3
|
+
import type { SiloApiEntry } from '../silo-v2/fetchPublic';
|
|
4
|
+
/**
|
|
5
|
+
* Silo v3 GraphQL → public-data converter. Mirrors the v2 converter
|
|
6
|
+
* (`silo-v2/convertPublic.ts`) exactly — the only differences are the
|
|
7
|
+
* protocol-version filter (`v3`), the registry lookup
|
|
8
|
+
* (`getSiloV3MarketEntry`) and the synthesized lender key
|
|
9
|
+
* (`SILO_V3_<HEX>`). The API payload shape is identical for both versions,
|
|
10
|
+
* so we reuse the `SiloApiEntry` / `SiloApiMarket` types from the v2
|
|
11
|
+
* module rather than duplicating them.
|
|
12
|
+
*/
|
|
13
|
+
export declare function convertSiloV3MarketsToPublicResponse(apiItems: SiloApiEntry[], chainId: string, prices: {
|
|
14
|
+
[asset: string]: number;
|
|
15
|
+
}, additionalYields?: AdditionalYields, tokenList?: GenericTokenList): {
|
|
16
|
+
[lender: string]: any;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=convertPublic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertPublic.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v3/convertPublic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAG9D,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,gBAAgB,GAAE,gBAIjB,EACD,SAAS,GAAE,gBAAqB,GAC/B;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA8J3B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Silo v3 on-chain public-data call builder.
|
|
3
|
+
*
|
|
4
|
+
* Mirror of `silo-v2/publicCallBuild.ts` — v3 shares the exact same on-chain
|
|
5
|
+
* ABI (`Silo.sol` → `totalAssets()` / `getDebtAssets()`) and per-pair shape,
|
|
6
|
+
* so we reuse the v2 Silo ABI directly. The only difference is the registry
|
|
7
|
+
* getter (`getSiloV3MarketEntry`) so v3 and v2 pairs stay in disjoint
|
|
8
|
+
* namespaces even when deployed on the same chain.
|
|
9
|
+
*
|
|
10
|
+
* Per Silo v3 pair we emit 4 multicall entries (2 per side):
|
|
11
|
+
* silo0.totalAssets()
|
|
12
|
+
* silo0.getDebtAssets()
|
|
13
|
+
* silo1.totalAssets()
|
|
14
|
+
* silo1.getDebtAssets()
|
|
15
|
+
*/
|
|
16
|
+
export declare const SILO_V3_CALLS_PER_SIDE = 2;
|
|
17
|
+
export declare const SILO_V3_CALLS_PER_PAIR: number;
|
|
18
|
+
export declare function buildSiloV3LenderReserveCall(_chainId: string, lender: string): any[];
|
|
19
|
+
//# sourceMappingURL=publicCallBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v3/publicCallBuild.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AACvC,eAAO,MAAM,sBAAsB,QAA6B,CAAA;AAEhE,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,SAuBf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AdditionalYields } from '../../../types';
|
|
2
|
+
import type { GenericTokenList } from '../../../types/general';
|
|
3
|
+
/**
|
|
4
|
+
* Parser for the Silo v3 dynamic-state multicall. Byte-for-byte identical to
|
|
5
|
+
* the v2 parser (`silo-v2/publicCallParse.ts`) aside from the registry
|
|
6
|
+
* lookup and the `SILO_V3` branding — v3 shares the same on-chain data
|
|
7
|
+
* layout and fee/LTV semantics as v2, so every downstream consumer of the
|
|
8
|
+
* reserve payload sees the same shape regardless of version.
|
|
9
|
+
*/
|
|
10
|
+
export declare const getSiloV3ReservesDataConverter: (lender: string, chainId: string, prices: {
|
|
11
|
+
[asset: string]: number;
|
|
12
|
+
}, additionalYields: AdditionalYields, tokenList?: GenericTokenList) => [(data: any[]) => {
|
|
13
|
+
data: any;
|
|
14
|
+
chainId: string;
|
|
15
|
+
} | undefined, number];
|
|
16
|
+
//# sourceMappingURL=publicCallParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/public-data/silo-v3/publicCallParse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAQ9D;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,GACzC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,QAAQ;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACnC,kBAAkB,gBAAgB,EAClC,YAAW,gBAAqB,KAC/B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAAE,MAAM,CAoItE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/abis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../src/lending/user-data/abis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAmChD,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,QA+BpC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/parse.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAuB,MAAM,4BAA4B,CAAA;AAWjF,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AA6EtE;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,YAAY,eAAe,EAAE,EAC7B,YAAY,GAAG,EAAE,EACjB,aAAa,2BAA2B,KACvC;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;CAwC9B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/fetch-balances/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAqB/C,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,EAAE,CAAC,CAejB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Call } from '../../../utils/multicall';
|
|
2
|
+
/**
|
|
3
|
+
* Per Silo v2 pair we emit 10 user-data calls (5 per side):
|
|
4
|
+
* silo.balanceOf(account) — collateral shares
|
|
5
|
+
* protectedShareToken.balanceOf(account) — protected shares
|
|
6
|
+
* silo.convertToAssets(10^decimals, COLLATERAL) — collateral rate
|
|
7
|
+
* silo.convertToAssets(10^decimals, PROTECTED) — protected rate
|
|
8
|
+
* silo.maxRepay(account) — debt (assets)
|
|
9
|
+
*
|
|
10
|
+
* We do NOT use `maxWithdraw(account)` because it is health-constrained
|
|
11
|
+
* and returns 0 for fully-leveraged positions.
|
|
12
|
+
*
|
|
13
|
+
* The `convertToAssets` calls use the 2-arg overload with a per-call `abi`
|
|
14
|
+
* override (`SiloConvertToAssetsTypedAbi`) because viem cannot disambiguate
|
|
15
|
+
* overloaded function names within a single ABI. Same pattern as
|
|
16
|
+
* `CreamLensV2Abi` in compound-v2. The e2e layer picks `call.abi ?? abi`.
|
|
17
|
+
*/
|
|
18
|
+
export declare const SILO_V2_USER_CALLS_PER_SIDE = 5;
|
|
19
|
+
export declare const SILO_V2_USER_CALLS_PER_PAIR: number;
|
|
20
|
+
export declare const buildSiloV2UserCall: (chainId: string, lender: string, account: string) => Call[];
|
|
21
|
+
//# sourceMappingURL=userCallBuild.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userCallBuild.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/silo-v2/userCallBuild.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAQ/C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAA;AAC5C,eAAO,MAAM,2BAA2B,QAAkC,CAAA;AAE1E,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,MAAM,KACd,IAAI,EA2CN,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LenderCrossPoolMeta, UserData } from '../utils/types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a [converter, expectedCallCount] tuple for Silo v2 user data.
|
|
4
|
+
*
|
|
5
|
+
* Result layout (10 slots per pair, 5 per side):
|
|
6
|
+
* [collateralShares0, protectedShares0, collateralRate0, protectedRate0, maxRepay0,
|
|
7
|
+
* collateralShares1, protectedShares1, collateralRate1, protectedRate1, maxRepay1]
|
|
8
|
+
*
|
|
9
|
+
* Deposits are computed off-chain per deposit type with separate rates:
|
|
10
|
+
* collateralAssets = collateralShares * collateralRate / 10^decimals
|
|
11
|
+
* protectedAssets = protectedShares * protectedRate / 10^decimals
|
|
12
|
+
* totalDeposits = collateralAssets + protectedAssets
|
|
13
|
+
*
|
|
14
|
+
* Rates differ because collateral deposits accrue borrower interest while
|
|
15
|
+
* protected deposits don't.
|
|
16
|
+
*
|
|
17
|
+
* `collateralEnabled` is set to `true` when the silo has deposits and its
|
|
18
|
+
* `lt > 0` (its side can back borrows on the other silo).
|
|
19
|
+
*
|
|
20
|
+
* Aggregation goes through `createBaseTypeUserState` using config mode `'0'`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const getSiloV2UserDataConverter: (lender: string, chainId: string, account: string, metaMap?: LenderCrossPoolMeta) => [(data: any[]) => UserData | undefined, number];
|
|
23
|
+
//# sourceMappingURL=userCallParse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userCallParse.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/silo-v2/userCallParse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAM9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,SAAS,MAAM,EACf,UAAU,mBAAmB,KAC5B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,SAAS,EAAE,MAAM,CA6GhD,CAAA"}
|
|
@@ -71,6 +71,24 @@ export type EulerV2Metadata = {
|
|
|
71
71
|
unitOfAccount: string | undefined;
|
|
72
72
|
governorAdmin: string | undefined;
|
|
73
73
|
};
|
|
74
|
+
export type SiloV2Metadata = {
|
|
75
|
+
silo: string;
|
|
76
|
+
counterpartySilo: string;
|
|
77
|
+
siloConfig: string;
|
|
78
|
+
oracle: string;
|
|
79
|
+
irm: string;
|
|
80
|
+
shareTokens: {
|
|
81
|
+
collateral: string;
|
|
82
|
+
protected: string;
|
|
83
|
+
debt: string;
|
|
84
|
+
};
|
|
85
|
+
fees: {
|
|
86
|
+
dao: string;
|
|
87
|
+
deployer: string;
|
|
88
|
+
liquidation: string;
|
|
89
|
+
flashloan: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
74
92
|
export type ProtocolParams = {
|
|
75
93
|
metadata: CompoundV2Metadata;
|
|
76
94
|
} | {
|
|
@@ -79,6 +97,8 @@ export type ProtocolParams = {
|
|
|
79
97
|
metadata: InitMetadata;
|
|
80
98
|
} | {
|
|
81
99
|
metadata: EulerV2Metadata;
|
|
100
|
+
} | {
|
|
101
|
+
metadata: SiloV2Metadata;
|
|
82
102
|
};
|
|
83
103
|
export type LenderYieldComplete = {
|
|
84
104
|
depositRate: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lending/user-data/utils/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchOraclePrices.d.ts","sourceRoot":"","sources":["../../../src/prices/oracle-prices/fetchOraclePrices.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EAEX,YAAY,EAKZ,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAChB,OAAO,
|
|
1
|
+
{"version":3,"file":"fetchOraclePrices.d.ts","sourceRoot":"","sources":["../../../src/prices/oracle-prices/fetchOraclePrices.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EAEX,YAAY,EAKZ,kBAAkB,EAEnB,MAAM,SAAS,CAAA;AAChB,OAAO,EAWL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAA;AAkBnB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAA;CAChC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,2CAA2C;IAC3C,YAAY,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAC9C,sEAAsE;IACtE,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,SAAS,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACzC,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AA2KD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,CAAC,EAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,EAC9C,KAAK,GAAE,cAAmB,EAC1B,OAAO,SAAI,EACX,SAAS,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,SAAqB,EAChE,YAAY,UAAO,EACnB,UAAU,GAAE,WAAgB,EAC5B,qBAAqB,CAAC,EAAE,qBAAqB,EAC7C,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,yBAAyB,SAAO,EAChC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA0mB7B"}
|
|
@@ -5,4 +5,6 @@ export { compoundV3Fetcher, getCompoundV3Calls, parseCompoundV3Results, getCompo
|
|
|
5
5
|
export { listaFetcher, getListaCalls, parseListaResults, getListaAbi, type ListaMarketOverrides, type ListaFetcherContext, } from './lista';
|
|
6
6
|
export { eulerV2Fetcher, getEulerV2Calls, parseEulerV2Results, getEulerV2Abi, } from './euler';
|
|
7
7
|
export { aaveV4Fetcher, getAaveV4Calls, parseAaveV4Results, getAaveV4Abi, } from './aaveV4';
|
|
8
|
+
export { siloV2Fetcher, getSiloV2Calls, parseSiloV2Results, getSiloV2Abi, } from './siloV2';
|
|
9
|
+
export { siloV3Fetcher, getSiloV3Calls, parseSiloV3Results, getSiloV3Abi, } from './siloV3';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/prices/oracle-prices/fetchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAChF,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/prices/oracle-prices/fetchers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAChF,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { FetcherResult, OraclePriceEntry, ParseContext } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Metadata carried alongside the multicall batch so the parser can
|
|
4
|
+
* reassemble results without re-reading on-chain state.
|
|
5
|
+
*/
|
|
6
|
+
interface SiloV2OracleMeta {
|
|
7
|
+
/** Entries to process, one per silo half */
|
|
8
|
+
entries: {
|
|
9
|
+
token: string;
|
|
10
|
+
decimals: number;
|
|
11
|
+
silo: string;
|
|
12
|
+
lenderKey: string;
|
|
13
|
+
oracle: string;
|
|
14
|
+
/** Other half's token — used for 1:1 fallback when this side is static */
|
|
15
|
+
partnerToken: string;
|
|
16
|
+
/**
|
|
17
|
+
* True when this side has a zero-address oracle (constant price = 1.0).
|
|
18
|
+
* Treated like a Morpho loan asset: priced via the partner token's USD
|
|
19
|
+
* (or its own, if independently known) and flagged with `staticBase`.
|
|
20
|
+
*/
|
|
21
|
+
isStatic: boolean;
|
|
22
|
+
}[];
|
|
23
|
+
/**
|
|
24
|
+
* Dedup map: "oracleLc:tokenLc" → index into the calls array.
|
|
25
|
+
* The same oracle+token pair only needs one `quote` call even if it
|
|
26
|
+
* appears in multiple markets.
|
|
27
|
+
*/
|
|
28
|
+
callIndexMap: {
|
|
29
|
+
[key: string]: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* "oracleLc" → index of the quoteToken() call for that oracle.
|
|
33
|
+
*/
|
|
34
|
+
quoteTokenIndexMap: {
|
|
35
|
+
[key: string]: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build multicall calls for all Silo V2 oracle prices on the given chain.
|
|
40
|
+
*
|
|
41
|
+
* Three cases per pair:
|
|
42
|
+
* 1. Both halves have a real oracle → standard `quote` + `quoteToken` calls.
|
|
43
|
+
* 2. Exactly one half is zero-address (constant = 1.0) → emit that side as
|
|
44
|
+
* `staticBase` (priced via the partner token's USD) and run the normal
|
|
45
|
+
* flow on the other side. The non-static oracle is expected to quote in
|
|
46
|
+
* the static side's token, so the existing `quote * qtUSD` math just
|
|
47
|
+
* works once the partner USD price is in `usdPrices`.
|
|
48
|
+
* 3. Both halves are zero-address → the pair is 1:1 in its own terms. Only
|
|
49
|
+
* emit if at least one of the two tokens has a real oracle elsewhere on
|
|
50
|
+
* the chain (e.g. WBTC priced by another silo); otherwise (the WBTC-LBTC
|
|
51
|
+
* case where neither has a non-constant feed) skip the pair entirely.
|
|
52
|
+
*
|
|
53
|
+
* Calls are deduplicated at the (oracle, token) level for `quote` and at
|
|
54
|
+
* the oracle level for `quoteToken`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getSiloV2Calls(chainId: string): FetcherResult<SiloV2OracleMeta>[];
|
|
57
|
+
/**
|
|
58
|
+
* Parse Silo V2 oracle multicall results into price entries.
|
|
59
|
+
*
|
|
60
|
+
* Static halves (zero-address oracle) are resolved by looking up the USD
|
|
61
|
+
* price of the side's own token, falling back to the partner token (the
|
|
62
|
+
* relationship is 1:1 by definition). They are flagged with `staticBase`
|
|
63
|
+
* + `baseAsset = self`, mirroring the Morpho loan-asset entries.
|
|
64
|
+
*
|
|
65
|
+
* Non-static halves use `quote(1.0, token) → priceInQuoteToken × qtUSD`.
|
|
66
|
+
* When the static side's token IS the partner oracle's quoteToken, the
|
|
67
|
+
* non-static math automatically picks up the right USD via the shared
|
|
68
|
+
* `usdPrices` map (populated by other lenders earlier in the parse order).
|
|
69
|
+
*/
|
|
70
|
+
export declare function parseSiloV2Results(data: any[], meta: SiloV2OracleMeta, context: ParseContext): OraclePriceEntry[];
|
|
71
|
+
/**
|
|
72
|
+
* ABI fragments needed for Silo V2 oracle calls
|
|
73
|
+
*/
|
|
74
|
+
export declare function getSiloV2Abi(): readonly [{
|
|
75
|
+
readonly inputs: readonly [{
|
|
76
|
+
readonly name: "_baseAmount";
|
|
77
|
+
readonly type: "uint256";
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "_baseToken";
|
|
80
|
+
readonly type: "address";
|
|
81
|
+
}];
|
|
82
|
+
readonly name: "quote";
|
|
83
|
+
readonly outputs: readonly [{
|
|
84
|
+
readonly name: "quoteAmount";
|
|
85
|
+
readonly type: "uint256";
|
|
86
|
+
}];
|
|
87
|
+
readonly stateMutability: "view";
|
|
88
|
+
readonly type: "function";
|
|
89
|
+
}, {
|
|
90
|
+
readonly inputs: readonly [];
|
|
91
|
+
readonly name: "quoteToken";
|
|
92
|
+
readonly outputs: readonly [{
|
|
93
|
+
readonly name: "";
|
|
94
|
+
readonly type: "address";
|
|
95
|
+
}];
|
|
96
|
+
readonly stateMutability: "view";
|
|
97
|
+
readonly type: "function";
|
|
98
|
+
}];
|
|
99
|
+
/**
|
|
100
|
+
* Silo V2 Oracle Fetcher module
|
|
101
|
+
*/
|
|
102
|
+
export declare const siloV2Fetcher: {
|
|
103
|
+
getCalls: typeof getSiloV2Calls;
|
|
104
|
+
parse: typeof parseSiloV2Results;
|
|
105
|
+
getAbi: typeof getSiloV2Abi;
|
|
106
|
+
};
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=siloV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siloV2.d.ts","sourceRoot":"","sources":["../../../../src/prices/oracle-prices/fetchers/siloV2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAEb,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAA;AAgCjB;;;GAGG;AACH,UAAU,gBAAgB;IACxB,4CAA4C;IAC5C,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,0EAA0E;QAC1E,YAAY,EAAE,MAAM,CAAA;QACpB;;;;WAIG;QACH,QAAQ,EAAE,OAAO,CAAA;KAClB,EAAE,CAAA;IACH;;;;OAIG;IACH,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACvC;;OAEG;IACH,kBAAkB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAC9C;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GACd,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAoGnC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,YAAY,GACpB,gBAAgB,EAAE,CA8EpB;AAED;;GAEG;AACH,wBAAgB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;GAE3B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAIzB,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type SiloApiEntry } from '../../../lending/public-data/silo-v2/fetchPublic';
|
|
2
|
+
import type { OraclePriceEntry, ParseContext } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Narrowed Silo v2 oracle-price prefetch via `api-v3.silo.finance`.
|
|
5
|
+
*
|
|
6
|
+
* The `silos.market{1,2}.solvencyOracle.quote` field already exposes the
|
|
7
|
+
* same "1 baseToken in quoteToken units" value the on-chain `ISiloOracle.quote`
|
|
8
|
+
* call produces, so when the indexer has data for a chain we can skip the
|
|
9
|
+
* Silo v2 multicall entirely and emit the price entries from the GraphQL
|
|
10
|
+
* response instead.
|
|
11
|
+
*
|
|
12
|
+
* This mirrors the Morpho GraphQL prefetch in `morpho.ts`: the prefetch
|
|
13
|
+
* runs in parallel with the on-chain multicall, and the caller decides —
|
|
14
|
+
* after both are settled — which source to feed into the parse pipeline.
|
|
15
|
+
*
|
|
16
|
+
* Returns `null` when the indexer has no data for the chain (caller must
|
|
17
|
+
* fall back to on-chain) and throws on transport / GraphQL errors so the
|
|
18
|
+
* caller can log and fall back.
|
|
19
|
+
*/
|
|
20
|
+
export declare function fetchSiloV2GraphQLMarkets(chainId: string): Promise<SiloApiEntry[] | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Convert a GraphQL-fetched silos list into oracle price entries.
|
|
23
|
+
*
|
|
24
|
+
* For each silo half:
|
|
25
|
+
* - If the solvencyOracle is the zero address → emit a `staticBase` entry
|
|
26
|
+
* priced via the partner token's USD (mirrors the on-chain parser).
|
|
27
|
+
* - Otherwise, `priceUSD = Number(quote) * quoteTokenUSD`. The raw price
|
|
28
|
+
* surfaced to consumers is `Number(quote)` so downstream math matches
|
|
29
|
+
* the on-chain output.
|
|
30
|
+
*
|
|
31
|
+
* Entries whose quote token has no resolved USD are skipped — the parse
|
|
32
|
+
* order in `fetchOraclePrices.ts` must run this AFTER the base-USD tier
|
|
33
|
+
* (Aave / Chainlink / Compound) so the cross-asset prices are available.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseSiloV2GraphQLResults(items: SiloApiEntry[], context: ParseContext): OraclePriceEntry[];
|
|
36
|
+
//# sourceMappingURL=siloV2Graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siloV2Graphql.d.ts","sourceRoot":"","sources":["../../../../src/prices/oracle-prices/fetchers/siloV2Graphql.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,kDAAkD,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAYhC;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,YAAY,GACpB,gBAAgB,EAAE,CA8HpB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { FetcherResult, OraclePriceEntry, ParseContext } from '../types';
|
|
2
|
+
interface SiloV3OracleMeta {
|
|
3
|
+
entries: {
|
|
4
|
+
token: string;
|
|
5
|
+
decimals: number;
|
|
6
|
+
silo: string;
|
|
7
|
+
lenderKey: string;
|
|
8
|
+
oracle: string;
|
|
9
|
+
partnerToken: string;
|
|
10
|
+
isStatic: boolean;
|
|
11
|
+
}[];
|
|
12
|
+
callIndexMap: {
|
|
13
|
+
[key: string]: number;
|
|
14
|
+
};
|
|
15
|
+
quoteTokenIndexMap: {
|
|
16
|
+
[key: string]: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function getSiloV3Calls(chainId: string): FetcherResult<SiloV3OracleMeta>[];
|
|
20
|
+
export declare function parseSiloV3Results(data: any[], meta: SiloV3OracleMeta, context: ParseContext): OraclePriceEntry[];
|
|
21
|
+
export declare function getSiloV3Abi(): readonly [{
|
|
22
|
+
readonly inputs: readonly [{
|
|
23
|
+
readonly name: "_baseAmount";
|
|
24
|
+
readonly type: "uint256";
|
|
25
|
+
}, {
|
|
26
|
+
readonly name: "_baseToken";
|
|
27
|
+
readonly type: "address";
|
|
28
|
+
}];
|
|
29
|
+
readonly name: "quote";
|
|
30
|
+
readonly outputs: readonly [{
|
|
31
|
+
readonly name: "quoteAmount";
|
|
32
|
+
readonly type: "uint256";
|
|
33
|
+
}];
|
|
34
|
+
readonly stateMutability: "view";
|
|
35
|
+
readonly type: "function";
|
|
36
|
+
}, {
|
|
37
|
+
readonly inputs: readonly [];
|
|
38
|
+
readonly name: "quoteToken";
|
|
39
|
+
readonly outputs: readonly [{
|
|
40
|
+
readonly name: "";
|
|
41
|
+
readonly type: "address";
|
|
42
|
+
}];
|
|
43
|
+
readonly stateMutability: "view";
|
|
44
|
+
readonly type: "function";
|
|
45
|
+
}];
|
|
46
|
+
export declare const siloV3Fetcher: {
|
|
47
|
+
getCalls: typeof getSiloV3Calls;
|
|
48
|
+
parse: typeof parseSiloV3Results;
|
|
49
|
+
getAbi: typeof getSiloV3Abi;
|
|
50
|
+
};
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=siloV3.d.ts.map
|