@1delta/margin-fetcher 0.0.234 → 0.0.235

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.
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLiquidity.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/fetchLiquidity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAgB,MAAM,SAAS,CAAA;AAwB/D,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,sBAAsB,EACtC,IAAI,GAAE,SAAc,oCA6PrB"}
1
+ {"version":3,"file":"fetchLiquidity.d.ts","sourceRoot":"","sources":["../../src/flash-liquidity/fetchLiquidity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE5D,OAAO,EAAE,uBAAuB,EAAgB,MAAM,SAAS,CAAA;AA2B/D,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,sBAAsB,EACtC,IAAI,GAAE,SAAc,oCA+PrB"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ import { getEvmChain, getEvmClient, getEvmClientUniversal, multicallRetryUnivers
8
8
  import { MorphoLensAbi, AaveV4SpokeAbi, AaveV4OracleAbi, AaveV4HubAbi, MorphoBlueAbi } from '@1delta/abis';
9
9
  export { MorphoLensAbi } from '@1delta/abis';
10
10
  import { prepareDebitDataMulticall, prepareLenderDebitMulticall, parseDebitDataResult, parseLenderDebitResult, getPermit2ContractAddress, getCompoundV3CometAddress as getCompoundV3CometAddress$1, getMorphoAddress, getAaveCollateralTokenAddress, getSiloHalfForUnderlying, InitMarginAddresses } from '@1delta/calldata-sdk';
11
- import { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, FLASH_LOAN_IDS } from '@1delta/dex-registry';
11
+ import { BALANCER_V2_FORKS, BALANCER_V3_FORKS, UNISWAP_V4_FORKS, isFlashLoanSourceExcluded, FLASH_LOAN_IDS } from '@1delta/dex-registry';
12
12
 
13
13
  // src/abis/aave-v2/ProtocolDataProvider.ts
14
14
  var ProtocolDataProviderAbi = [
@@ -28634,10 +28634,32 @@ async function getListsMulti(chainIds) {
28634
28634
  // src/yields/intrinsic/fetchers/lido.ts
28635
28635
  var WSTETH_URL = "https://eth-api.lido.fi/v1/protocol/steth/apr/sma";
28636
28636
  var tETH = "Treehouse ETH::TETH";
28637
+ var robustFetchJson = async (url, { timeoutMs = 5e3, attempts = 3 } = {}) => {
28638
+ let lastErr;
28639
+ for (let i = 0; i < attempts; i++) {
28640
+ try {
28641
+ const res = await fetch(url, {
28642
+ headers: {
28643
+ accept: "application/json",
28644
+ "user-agent": "1delta-margin-fetcher"
28645
+ },
28646
+ signal: AbortSignal.timeout(timeoutMs)
28647
+ });
28648
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
28649
+ return await res.json();
28650
+ } catch (e) {
28651
+ lastErr = e;
28652
+ if (i < attempts - 1) {
28653
+ await new Promise((r) => setTimeout(r, 250 * (i + 1)));
28654
+ }
28655
+ }
28656
+ }
28657
+ throw lastErr;
28658
+ };
28637
28659
  var wstethFetcher = {
28638
28660
  label: "WSTETH",
28639
28661
  fetch: async () => {
28640
- const res = await fetch(WSTETH_URL).then((r) => r.json());
28662
+ const res = await robustFetchJson(WSTETH_URL);
28641
28663
  const apr = Number(res.data.aprs.at(-1).apr) * 0.9;
28642
28664
  return {
28643
28665
  WSTETH: apr,
@@ -29596,6 +29618,29 @@ var infinifiFetcher = {
29596
29618
  }
29597
29619
  };
29598
29620
 
29621
+ // src/yields/intrinsic/fetchers/avant.ts
29622
+ var AVANT_BASE = "https://app.avantprotocol.com/api/apy";
29623
+ var sAVUSD = "Staked avUSD::savUSD";
29624
+ var sAVETH = "Staked avETH::savETH";
29625
+ var sAVBTC = "Staked avBTC::savBTC";
29626
+ var fetchAvantApr = async (slug) => {
29627
+ const res = await fetch(`${AVANT_BASE}/${slug}`).then((r) => r.json());
29628
+ const apy = Number(res?.apy ?? 0);
29629
+ return apyToAprPercent(apy);
29630
+ };
29631
+ var savusdFetcher = {
29632
+ label: "SAVUSD",
29633
+ fetch: async () => ({ [sAVUSD]: await fetchAvantApr("savusd") })
29634
+ };
29635
+ var savethFetcher = {
29636
+ label: "SAVETH",
29637
+ fetch: async () => ({ [sAVETH]: await fetchAvantApr("saveth") })
29638
+ };
29639
+ var savbtcFetcher = {
29640
+ label: "SAVBTC",
29641
+ fetch: async () => ({ [sAVBTC]: await fetchAvantApr("savbtc") })
29642
+ };
29643
+
29599
29644
  // src/yields/intrinsic/index.ts
29600
29645
  async function fetchIntrinsicYields() {
29601
29646
  const wstethPromise = safeFetch(wstethFetcher.label, wstethFetcher.fetch);
@@ -29648,7 +29693,10 @@ async function fetchIntrinsicYields() {
29648
29693
  susdfFetcher,
29649
29694
  midasFetcher,
29650
29695
  capFetcher,
29651
- infinifiFetcher
29696
+ infinifiFetcher,
29697
+ savusdFetcher,
29698
+ savethFetcher,
29699
+ savbtcFetcher
29652
29700
  ];
29653
29701
  const results = await Promise.all([
29654
29702
  wstethPromise,
@@ -32285,7 +32333,9 @@ async function fetchFlashLiquidityForChain(chain, multicallRetry, list = {}) {
32285
32333
  let aaveAssets = {};
32286
32334
  let aaveCalls = [];
32287
32335
  const aaves = getAavesForChain();
32288
- const aaveProtocols = aaves[chain] ?? [];
32336
+ const aaveProtocols = (aaves[chain] ?? []).filter(
32337
+ (l) => !isFlashLoanSourceExcluded(chain, l)
32338
+ );
32289
32339
  const allAaveUnderlyings = [];
32290
32340
  aaveProtocols.forEach((aaveFork) => {
32291
32341
  const underlyingsAndATokens = Object.entries(