@1delta/margin-fetcher 0.0.314 → 0.0.316
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/index.js +92 -91
- package/dist/index.js.map +1 -1
- package/dist/yields/intrinsic/index.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -32839,6 +32839,67 @@ var hastraPrimeFetcher = {
|
|
|
32839
32839
|
return { [HASTRA_PRIME_KEY]: Math.max(0, apr) };
|
|
32840
32840
|
}
|
|
32841
32841
|
};
|
|
32842
|
+
var CHAIN_ID4 = "4663";
|
|
32843
|
+
var VAULT2 = "0xde770c84fe66e063336b31737cfe9790f18c4087";
|
|
32844
|
+
var SPARK_SAVINGS_USDG_KEY = "SPUSDG";
|
|
32845
|
+
var RAY3 = 10n ** 27n;
|
|
32846
|
+
var YEAR_SECONDS6 = 365 * 24 * 60 * 60;
|
|
32847
|
+
var WINDOW_BLOCKS3 = 400000n;
|
|
32848
|
+
var MAX_RPC_TRIES3 = 3;
|
|
32849
|
+
var CHI_ABI = [
|
|
32850
|
+
{
|
|
32851
|
+
name: "chi",
|
|
32852
|
+
type: "function",
|
|
32853
|
+
stateMutability: "view",
|
|
32854
|
+
inputs: [],
|
|
32855
|
+
outputs: [{ type: "uint256" }]
|
|
32856
|
+
}
|
|
32857
|
+
];
|
|
32858
|
+
var readChiAt = (client, blockNumber) => client.readContract({
|
|
32859
|
+
address: VAULT2,
|
|
32860
|
+
abi: CHI_ABI,
|
|
32861
|
+
functionName: "chi",
|
|
32862
|
+
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
32863
|
+
});
|
|
32864
|
+
var computeApr4 = async () => {
|
|
32865
|
+
let lastErr;
|
|
32866
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES3; rpcId++) {
|
|
32867
|
+
try {
|
|
32868
|
+
const client = getEvmClient(CHAIN_ID4, rpcId);
|
|
32869
|
+
const head = await client.getBlockNumber();
|
|
32870
|
+
const pastBlock = head > WINDOW_BLOCKS3 ? head - WINDOW_BLOCKS3 : 0n;
|
|
32871
|
+
const [chiNow, chiThen, headBlock, thenBlock] = await Promise.all([
|
|
32872
|
+
readChiAt(client),
|
|
32873
|
+
readChiAt(client, pastBlock),
|
|
32874
|
+
client.getBlock({ blockNumber: head }),
|
|
32875
|
+
client.getBlock({ blockNumber: pastBlock })
|
|
32876
|
+
]);
|
|
32877
|
+
if (chiNow < RAY3 || chiThen < RAY3 || chiNow < chiThen) {
|
|
32878
|
+
throw new Error(
|
|
32879
|
+
`non-archival or invalid chi (now=${chiNow}, then=${chiThen})`
|
|
32880
|
+
);
|
|
32881
|
+
}
|
|
32882
|
+
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
32883
|
+
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
32884
|
+
const growth = Number(chiNow - chiThen) / Number(chiThen);
|
|
32885
|
+
const apr = growth * (YEAR_SECONDS6 / elapsed) * 100;
|
|
32886
|
+
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
32887
|
+
return apr;
|
|
32888
|
+
} catch (e) {
|
|
32889
|
+
lastErr = e;
|
|
32890
|
+
}
|
|
32891
|
+
}
|
|
32892
|
+
throw new Error(
|
|
32893
|
+
`spUSDG APR: no Robinhood RPC returned valid historical chi (${String(lastErr)})`
|
|
32894
|
+
);
|
|
32895
|
+
};
|
|
32896
|
+
var sparkSavingsUsdgFetcher = {
|
|
32897
|
+
label: "SPARK_SAVINGS_USDG",
|
|
32898
|
+
fetch: async () => {
|
|
32899
|
+
const apr = await computeApr4();
|
|
32900
|
+
return { [SPARK_SAVINGS_USDG_KEY]: apr };
|
|
32901
|
+
}
|
|
32902
|
+
};
|
|
32842
32903
|
|
|
32843
32904
|
// src/yields/intrinsic/fetchers/lombard.ts
|
|
32844
32905
|
var LBTC_APY_URL = "https://mainnet.prod.lombard.finance/api/v1/analytics/estimated-apy";
|
|
@@ -33035,6 +33096,7 @@ async function fetchIntrinsicYields() {
|
|
|
33035
33096
|
psxdcFetcher,
|
|
33036
33097
|
coreLstFetcher,
|
|
33037
33098
|
hastraPrimeFetcher,
|
|
33099
|
+
sparkSavingsUsdgFetcher,
|
|
33038
33100
|
lombardLbtcFetcher,
|
|
33039
33101
|
lombardLbtcvFetcher,
|
|
33040
33102
|
accountableFetcher,
|
|
@@ -38496,14 +38558,14 @@ var fetchEulerEarnVaults = async (chainId, prices = {}, tokenList = {}, multical
|
|
|
38496
38558
|
).catch(() => void 0);
|
|
38497
38559
|
return isNonEmpty(fromSubgraph) ? fromSubgraph : fromApi ?? {};
|
|
38498
38560
|
};
|
|
38499
|
-
var
|
|
38561
|
+
var CHAIN_ID5 = "1";
|
|
38500
38562
|
var SWBTC = "0x8db2350d78abc13f5673a411d4700bcf87864dde";
|
|
38501
38563
|
var ONE_E8 = 10n ** 8n;
|
|
38502
|
-
var
|
|
38564
|
+
var YEAR_SECONDS7 = 365 * 24 * 60 * 60;
|
|
38503
38565
|
var WINDOW_SECONDS4 = 7 * 24 * 60 * 60;
|
|
38504
38566
|
var BLOCK_TIME_SECONDS3 = 12;
|
|
38505
|
-
var
|
|
38506
|
-
var
|
|
38567
|
+
var WINDOW_BLOCKS4 = BigInt(Math.floor(WINDOW_SECONDS4 / BLOCK_TIME_SECONDS3));
|
|
38568
|
+
var MAX_RPC_TRIES4 = 5;
|
|
38507
38569
|
var CONVERT_TO_ASSETS_ABI3 = [
|
|
38508
38570
|
{
|
|
38509
38571
|
name: "convertToAssets",
|
|
@@ -38520,13 +38582,13 @@ var readRateAt3 = (client, blockNumber) => client.readContract({
|
|
|
38520
38582
|
args: [ONE_E8],
|
|
38521
38583
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38522
38584
|
});
|
|
38523
|
-
var
|
|
38585
|
+
var computeApr5 = async () => {
|
|
38524
38586
|
let lastErr;
|
|
38525
|
-
for (let rpcId = 0; rpcId <
|
|
38587
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES4; rpcId++) {
|
|
38526
38588
|
try {
|
|
38527
|
-
const client = getEvmClient(
|
|
38589
|
+
const client = getEvmClient(CHAIN_ID5, rpcId);
|
|
38528
38590
|
const head = await client.getBlockNumber();
|
|
38529
|
-
const pastBlock = head >
|
|
38591
|
+
const pastBlock = head > WINDOW_BLOCKS4 ? head - WINDOW_BLOCKS4 : 0n;
|
|
38530
38592
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38531
38593
|
readRateAt3(client),
|
|
38532
38594
|
readRateAt3(client, pastBlock),
|
|
@@ -38541,7 +38603,7 @@ var computeApr4 = async () => {
|
|
|
38541
38603
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38542
38604
|
if (elapsed <= 0) throw new Error(`bad elapsed ${elapsed}`);
|
|
38543
38605
|
const growth = Number(rateNow) / Number(rateThen) - 1;
|
|
38544
|
-
const apr = growth * (
|
|
38606
|
+
const apr = growth * (YEAR_SECONDS7 / elapsed) * 100;
|
|
38545
38607
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38546
38608
|
return apr;
|
|
38547
38609
|
} catch (e) {
|
|
@@ -38556,20 +38618,20 @@ var swBtcFetcher = {
|
|
|
38556
38618
|
label: "SWBTC",
|
|
38557
38619
|
fetch: async () => {
|
|
38558
38620
|
try {
|
|
38559
|
-
return { SWBTC: await
|
|
38621
|
+
return { SWBTC: await computeApr5() };
|
|
38560
38622
|
} catch {
|
|
38561
38623
|
return { SWBTC: 0 };
|
|
38562
38624
|
}
|
|
38563
38625
|
}
|
|
38564
38626
|
};
|
|
38565
|
-
var
|
|
38627
|
+
var CHAIN_ID6 = "42220";
|
|
38566
38628
|
var MANAGER = "0x0239b96d10a434a56cc9e09383077a0490cf9398";
|
|
38567
38629
|
var ONE_E184 = 10n ** 18n;
|
|
38568
|
-
var
|
|
38630
|
+
var YEAR_SECONDS8 = 365 * 24 * 60 * 60;
|
|
38569
38631
|
var WINDOW_SECONDS5 = 7 * 24 * 60 * 60;
|
|
38570
38632
|
var BLOCK_TIME_SECONDS4 = 1;
|
|
38571
|
-
var
|
|
38572
|
-
var
|
|
38633
|
+
var WINDOW_BLOCKS5 = BigInt(Math.floor(WINDOW_SECONDS5 / BLOCK_TIME_SECONDS4));
|
|
38634
|
+
var MAX_RPC_TRIES5 = 5;
|
|
38573
38635
|
var TO_CELO_ABI = [
|
|
38574
38636
|
{
|
|
38575
38637
|
name: "toCelo",
|
|
@@ -38586,13 +38648,13 @@ var readRateAt4 = (client, blockNumber) => client.readContract({
|
|
|
38586
38648
|
args: [ONE_E184],
|
|
38587
38649
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38588
38650
|
});
|
|
38589
|
-
var
|
|
38651
|
+
var computeApr6 = async () => {
|
|
38590
38652
|
let lastErr;
|
|
38591
|
-
for (let rpcId = 0; rpcId <
|
|
38653
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES5; rpcId++) {
|
|
38592
38654
|
try {
|
|
38593
|
-
const client = getEvmClient(
|
|
38655
|
+
const client = getEvmClient(CHAIN_ID6, rpcId);
|
|
38594
38656
|
const head = await client.getBlockNumber();
|
|
38595
|
-
const pastBlock = head >
|
|
38657
|
+
const pastBlock = head > WINDOW_BLOCKS5 ? head - WINDOW_BLOCKS5 : 0n;
|
|
38596
38658
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38597
38659
|
readRateAt4(client),
|
|
38598
38660
|
readRateAt4(client, pastBlock),
|
|
@@ -38607,7 +38669,7 @@ var computeApr5 = async () => {
|
|
|
38607
38669
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38608
38670
|
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
38609
38671
|
const growth = Number(rateNow - rateThen) / Number(rateThen);
|
|
38610
|
-
const apr = growth * (
|
|
38672
|
+
const apr = growth * (YEAR_SECONDS8 / elapsed) * 100;
|
|
38611
38673
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38612
38674
|
return apr;
|
|
38613
38675
|
} catch (e) {
|
|
@@ -38621,18 +38683,18 @@ var computeApr5 = async () => {
|
|
|
38621
38683
|
var stceloFetcher = {
|
|
38622
38684
|
label: "STCELO",
|
|
38623
38685
|
fetch: async () => {
|
|
38624
|
-
const apr = await
|
|
38686
|
+
const apr = await computeApr6();
|
|
38625
38687
|
return { STCELO: apr };
|
|
38626
38688
|
}
|
|
38627
38689
|
};
|
|
38628
|
-
var
|
|
38690
|
+
var CHAIN_ID7 = "1284";
|
|
38629
38691
|
var STDOT = "0xbc7e02c4178a7df7d3e564323a5c359dc96c4db4";
|
|
38630
38692
|
var ONE_E185 = 10n ** 18n;
|
|
38631
|
-
var
|
|
38693
|
+
var YEAR_SECONDS9 = 365 * 24 * 60 * 60;
|
|
38632
38694
|
var WINDOW_SECONDS6 = 180 * 24 * 60 * 60;
|
|
38633
38695
|
var BLOCK_TIME_SECONDS5 = 6;
|
|
38634
|
-
var
|
|
38635
|
-
var
|
|
38696
|
+
var WINDOW_BLOCKS6 = BigInt(Math.floor(WINDOW_SECONDS6 / BLOCK_TIME_SECONDS5));
|
|
38697
|
+
var MAX_RPC_TRIES6 = 5;
|
|
38636
38698
|
var POOLED_BY_SHARES_ABI = [
|
|
38637
38699
|
{
|
|
38638
38700
|
name: "getPooledTokenByShares",
|
|
@@ -38649,13 +38711,13 @@ var readRateAt5 = (client, blockNumber) => client.readContract({
|
|
|
38649
38711
|
args: [ONE_E185],
|
|
38650
38712
|
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
38651
38713
|
});
|
|
38652
|
-
var
|
|
38714
|
+
var computeApr7 = async () => {
|
|
38653
38715
|
let lastErr;
|
|
38654
|
-
for (let rpcId = 0; rpcId <
|
|
38716
|
+
for (let rpcId = 0; rpcId < MAX_RPC_TRIES6; rpcId++) {
|
|
38655
38717
|
try {
|
|
38656
|
-
const client = getEvmClient(
|
|
38718
|
+
const client = getEvmClient(CHAIN_ID7, rpcId);
|
|
38657
38719
|
const head = await client.getBlockNumber();
|
|
38658
|
-
const pastBlock = head >
|
|
38720
|
+
const pastBlock = head > WINDOW_BLOCKS6 ? head - WINDOW_BLOCKS6 : 0n;
|
|
38659
38721
|
const [rateNow, rateThen, headBlock, thenBlock] = await Promise.all([
|
|
38660
38722
|
readRateAt5(client),
|
|
38661
38723
|
readRateAt5(client, pastBlock),
|
|
@@ -38670,7 +38732,7 @@ var computeApr6 = async () => {
|
|
|
38670
38732
|
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
38671
38733
|
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
38672
38734
|
const growth = Number(rateNow - rateThen) / Number(rateThen);
|
|
38673
|
-
const apr = growth * (
|
|
38735
|
+
const apr = growth * (YEAR_SECONDS9 / elapsed) * 100;
|
|
38674
38736
|
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
38675
38737
|
return apr;
|
|
38676
38738
|
} catch (e) {
|
|
@@ -38684,7 +38746,7 @@ var computeApr6 = async () => {
|
|
|
38684
38746
|
var stDotFetcher = {
|
|
38685
38747
|
label: "STDOT",
|
|
38686
38748
|
fetch: async () => {
|
|
38687
|
-
const apr = await
|
|
38749
|
+
const apr = await computeApr7();
|
|
38688
38750
|
return { STDOT: apr };
|
|
38689
38751
|
}
|
|
38690
38752
|
};
|
|
@@ -44946,67 +45008,6 @@ var readerErc46262 = (entry) => {
|
|
|
44946
45008
|
|
|
44947
45009
|
// src/vaults/savings/readers/index.ts
|
|
44948
45010
|
var buildReader2 = (entry) => readerErc46262(entry);
|
|
44949
|
-
var CHAIN_ID7 = "4663";
|
|
44950
|
-
var VAULT2 = "0xde770c84fe66e063336b31737cfe9790f18c4087";
|
|
44951
|
-
var SPARK_SAVINGS_USDG_KEY = "SPUSDG";
|
|
44952
|
-
var RAY3 = 10n ** 27n;
|
|
44953
|
-
var YEAR_SECONDS9 = 365 * 24 * 60 * 60;
|
|
44954
|
-
var WINDOW_BLOCKS6 = 400000n;
|
|
44955
|
-
var MAX_RPC_TRIES6 = 3;
|
|
44956
|
-
var CHI_ABI = [
|
|
44957
|
-
{
|
|
44958
|
-
name: "chi",
|
|
44959
|
-
type: "function",
|
|
44960
|
-
stateMutability: "view",
|
|
44961
|
-
inputs: [],
|
|
44962
|
-
outputs: [{ type: "uint256" }]
|
|
44963
|
-
}
|
|
44964
|
-
];
|
|
44965
|
-
var readChiAt = (client, blockNumber) => client.readContract({
|
|
44966
|
-
address: VAULT2,
|
|
44967
|
-
abi: CHI_ABI,
|
|
44968
|
-
functionName: "chi",
|
|
44969
|
-
...blockNumber !== void 0 ? { blockNumber } : {}
|
|
44970
|
-
});
|
|
44971
|
-
var computeApr7 = async () => {
|
|
44972
|
-
let lastErr;
|
|
44973
|
-
for (let rpcId = 0; rpcId < MAX_RPC_TRIES6; rpcId++) {
|
|
44974
|
-
try {
|
|
44975
|
-
const client = getEvmClient(CHAIN_ID7, rpcId);
|
|
44976
|
-
const head = await client.getBlockNumber();
|
|
44977
|
-
const pastBlock = head > WINDOW_BLOCKS6 ? head - WINDOW_BLOCKS6 : 0n;
|
|
44978
|
-
const [chiNow, chiThen, headBlock, thenBlock] = await Promise.all([
|
|
44979
|
-
readChiAt(client),
|
|
44980
|
-
readChiAt(client, pastBlock),
|
|
44981
|
-
client.getBlock({ blockNumber: head }),
|
|
44982
|
-
client.getBlock({ blockNumber: pastBlock })
|
|
44983
|
-
]);
|
|
44984
|
-
if (chiNow < RAY3 || chiThen < RAY3 || chiNow < chiThen) {
|
|
44985
|
-
throw new Error(
|
|
44986
|
-
`non-archival or invalid chi (now=${chiNow}, then=${chiThen})`
|
|
44987
|
-
);
|
|
44988
|
-
}
|
|
44989
|
-
const elapsed = Number(headBlock.timestamp - thenBlock.timestamp);
|
|
44990
|
-
if (elapsed <= 0) throw new Error("non-positive elapsed window");
|
|
44991
|
-
const growth = Number(chiNow - chiThen) / Number(chiThen);
|
|
44992
|
-
const apr = growth * (YEAR_SECONDS9 / elapsed) * 100;
|
|
44993
|
-
if (!Number.isFinite(apr) || apr < 0) throw new Error(`bad apr ${apr}`);
|
|
44994
|
-
return apr;
|
|
44995
|
-
} catch (e) {
|
|
44996
|
-
lastErr = e;
|
|
44997
|
-
}
|
|
44998
|
-
}
|
|
44999
|
-
throw new Error(
|
|
45000
|
-
`spUSDG APR: no Robinhood RPC returned valid historical chi (${String(lastErr)})`
|
|
45001
|
-
);
|
|
45002
|
-
};
|
|
45003
|
-
var sparkSavingsUsdgFetcher = {
|
|
45004
|
-
label: "SPARK_SAVINGS_USDG",
|
|
45005
|
-
fetch: async () => {
|
|
45006
|
-
const apr = await computeApr7();
|
|
45007
|
-
return { [SPARK_SAVINGS_USDG_KEY]: apr };
|
|
45008
|
-
}
|
|
45009
|
-
};
|
|
45010
45011
|
|
|
45011
45012
|
// src/vaults/savings/registry.ts
|
|
45012
45013
|
var stUsdGroup = {
|