@defisaver/positions-sdk 2.1.169-custom-fetching-dev → 2.1.169-custom-fetching-3-dev
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/cjs/aaveV2/index.d.ts +4 -4
- package/cjs/aaveV2/index.js +7 -7
- package/cjs/aaveV3/index.d.ts +4 -3
- package/cjs/aaveV3/index.js +14 -10
- package/cjs/aaveV3/merkl.d.ts +5 -1
- package/cjs/aaveV3/merkl.js +8 -3
- package/cjs/aaveV4/index.d.ts +4 -3
- package/cjs/aaveV4/index.js +19 -16
- package/cjs/aaveV4/merkl.d.ts +10 -2
- package/cjs/aaveV4/merkl.js +15 -6
- package/cjs/claiming/aaveV3.d.ts +2 -2
- package/cjs/claiming/aaveV3.js +5 -4
- package/cjs/claiming/king.d.ts +2 -2
- package/cjs/claiming/king.js +3 -2
- package/cjs/claiming/spark.d.ts +3 -3
- package/cjs/claiming/spark.js +8 -7
- package/cjs/claiming/uniswap.d.ts +2 -2
- package/cjs/claiming/uniswap.js +3 -2
- package/cjs/compoundV2/index.d.ts +4 -4
- package/cjs/compoundV2/index.js +9 -9
- package/cjs/compoundV3/index.d.ts +5 -4
- package/cjs/compoundV3/index.js +17 -13
- package/cjs/compoundV3/merkl.d.ts +1 -1
- package/cjs/compoundV3/merkl.js +2 -5
- package/cjs/curveUsd/index.d.ts +5 -5
- package/cjs/curveUsd/index.js +17 -17
- package/cjs/fluid/index.d.ts +23 -22
- package/cjs/fluid/index.js +75 -72
- package/cjs/fluid/merkl.d.ts +5 -3
- package/cjs/fluid/merkl.js +11 -6
- package/cjs/liquity/index.d.ts +4 -4
- package/cjs/liquity/index.js +23 -23
- package/cjs/liquityV2/index.d.ts +10 -10
- package/cjs/liquityV2/index.js +59 -59
- package/cjs/llamaLend/index.d.ts +5 -5
- package/cjs/llamaLend/index.js +13 -13
- package/cjs/maker/index.d.ts +6 -6
- package/cjs/maker/index.js +16 -16
- package/cjs/morphoBlue/index.d.ts +7 -7
- package/cjs/morphoBlue/index.js +28 -26
- package/cjs/morphoBlue/merkl.d.ts +5 -3
- package/cjs/morphoBlue/merkl.js +6 -8
- package/cjs/morphoMidnight/index.d.ts +5 -5
- package/cjs/morphoMidnight/index.js +18 -18
- package/cjs/portfolio/customDeFiData.js +45 -40
- package/cjs/services/merkl.d.ts +36 -2
- package/cjs/services/merkl.js +142 -19
- package/cjs/services/priceService.d.ts +12 -12
- package/cjs/services/priceService.js +30 -29
- package/cjs/services/viem.d.ts +10 -2
- package/cjs/services/viem.js +27 -1
- package/cjs/spark/index.d.ts +4 -4
- package/cjs/spark/index.js +9 -9
- package/cjs/types/merkl.d.ts +18 -0
- package/cjs/types/portfolio.d.ts +2 -0
- package/cjs/umbrella/index.d.ts +2 -2
- package/cjs/umbrella/index.js +5 -4
- package/esm/aaveV2/index.d.ts +4 -4
- package/esm/aaveV2/index.js +8 -8
- package/esm/aaveV3/index.d.ts +4 -3
- package/esm/aaveV3/index.js +15 -11
- package/esm/aaveV3/merkl.d.ts +5 -1
- package/esm/aaveV3/merkl.js +9 -4
- package/esm/aaveV4/index.d.ts +4 -3
- package/esm/aaveV4/index.js +20 -17
- package/esm/aaveV4/merkl.d.ts +10 -2
- package/esm/aaveV4/merkl.js +16 -7
- package/esm/claiming/aaveV3.d.ts +2 -2
- package/esm/claiming/aaveV3.js +5 -4
- package/esm/claiming/king.d.ts +2 -2
- package/esm/claiming/king.js +3 -2
- package/esm/claiming/spark.d.ts +3 -3
- package/esm/claiming/spark.js +8 -7
- package/esm/claiming/uniswap.d.ts +2 -2
- package/esm/claiming/uniswap.js +3 -2
- package/esm/compoundV2/index.d.ts +4 -4
- package/esm/compoundV2/index.js +9 -9
- package/esm/compoundV3/index.d.ts +5 -4
- package/esm/compoundV3/index.js +19 -15
- package/esm/compoundV3/merkl.d.ts +1 -1
- package/esm/compoundV3/merkl.js +3 -6
- package/esm/curveUsd/index.d.ts +5 -5
- package/esm/curveUsd/index.js +17 -17
- package/esm/fluid/index.d.ts +23 -22
- package/esm/fluid/index.js +76 -73
- package/esm/fluid/merkl.d.ts +5 -3
- package/esm/fluid/merkl.js +12 -7
- package/esm/liquity/index.d.ts +4 -4
- package/esm/liquity/index.js +23 -23
- package/esm/liquityV2/index.d.ts +10 -10
- package/esm/liquityV2/index.js +60 -60
- package/esm/llamaLend/index.d.ts +5 -5
- package/esm/llamaLend/index.js +13 -13
- package/esm/maker/index.d.ts +6 -6
- package/esm/maker/index.js +16 -16
- package/esm/morphoBlue/index.d.ts +7 -7
- package/esm/morphoBlue/index.js +29 -27
- package/esm/morphoBlue/merkl.d.ts +5 -3
- package/esm/morphoBlue/merkl.js +7 -9
- package/esm/morphoMidnight/index.d.ts +5 -5
- package/esm/morphoMidnight/index.js +18 -18
- package/esm/portfolio/customDeFiData.js +47 -42
- package/esm/services/merkl.d.ts +36 -2
- package/esm/services/merkl.js +136 -18
- package/esm/services/priceService.d.ts +12 -12
- package/esm/services/priceService.js +31 -30
- package/esm/services/viem.d.ts +10 -2
- package/esm/services/viem.js +25 -0
- package/esm/spark/index.d.ts +4 -4
- package/esm/spark/index.js +10 -10
- package/esm/types/merkl.d.ts +18 -0
- package/esm/types/portfolio.d.ts +2 -0
- package/esm/umbrella/index.d.ts +2 -2
- package/esm/umbrella/index.js +5 -4
- package/package.json +1 -1
- package/src/aaveV2/index.ts +7 -7
- package/src/aaveV3/index.ts +15 -11
- package/src/aaveV3/merkl.ts +9 -4
- package/src/aaveV4/index.ts +19 -16
- package/src/aaveV4/merkl.ts +16 -7
- package/src/claiming/aaveV3.ts +5 -3
- package/src/claiming/king.ts +6 -3
- package/src/claiming/spark.ts +9 -6
- package/src/claiming/uniswap.ts +4 -3
- package/src/compoundV2/index.ts +10 -9
- package/src/compoundV3/index.ts +20 -14
- package/src/compoundV3/merkl.ts +5 -4
- package/src/curveUsd/index.ts +19 -17
- package/src/fluid/index.ts +88 -70
- package/src/fluid/merkl.ts +12 -7
- package/src/liquity/index.ts +23 -23
- package/src/liquityV2/index.ts +64 -56
- package/src/llamaLend/index.ts +15 -13
- package/src/maker/index.ts +19 -16
- package/src/morphoBlue/index.ts +23 -20
- package/src/morphoBlue/merkl.ts +9 -6
- package/src/morphoMidnight/index.ts +13 -13
- package/src/portfolio/customDeFiData.ts +48 -41
- package/src/services/merkl.ts +152 -19
- package/src/services/priceService.ts +33 -30
- package/src/services/viem.ts +16 -0
- package/src/spark/index.ts +11 -8
- package/src/types/merkl.ts +20 -0
- package/src/types/portfolio.ts +2 -0
- package/src/umbrella/index.ts +6 -5
package/esm/compoundV2/index.js
CHANGED
|
@@ -18,10 +18,10 @@ import { compoundV2CollateralAssets } from '../markets';
|
|
|
18
18
|
import { getCompoundV2AggregatedData } from '../helpers/compoundHelpers';
|
|
19
19
|
import { getViemProvider, setViemBlockNumber } from '../services/viem';
|
|
20
20
|
const compAddress = '0xc00e94cb662c3520282e6f5717214004a7f26888';
|
|
21
|
-
export const _getCompoundV2MarketsData = (
|
|
21
|
+
export const _getCompoundV2MarketsData = (provider_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, ...args_1], void 0, function* (provider, network, blockNumber = 'latest') {
|
|
22
22
|
const cAddresses = compoundV2CollateralAssets.map(a => a.address);
|
|
23
23
|
const loanInfoContract = CompoundLoanInfoContractViem(provider, network);
|
|
24
|
-
const loanInfo = yield loanInfoContract.read.getFullTokensInfo([cAddresses]);
|
|
24
|
+
const loanInfo = yield loanInfoContract.read.getFullTokensInfo([cAddresses], setViemBlockNumber(blockNumber));
|
|
25
25
|
const compPrice = loanInfo.find(m => compareAddresses(m.underlyingTokenAddress, compAddress)).price.toString();
|
|
26
26
|
const assetsData = loanInfo
|
|
27
27
|
.map((market, i) => {
|
|
@@ -78,7 +78,7 @@ export const _getCompoundV2MarketsData = (provider, network) => __awaiter(void 0
|
|
|
78
78
|
.forEach((market, i) => { payload[market.symbol] = Object.assign(Object.assign({}, market), { sortIndex: i }); });
|
|
79
79
|
return { assetsData: payload };
|
|
80
80
|
});
|
|
81
|
-
export const getCompoundV2MarketsData = (
|
|
81
|
+
export const getCompoundV2MarketsData = (provider_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, ...args_1], void 0, function* (provider, network, blockNumber = 'latest') { return _getCompoundV2MarketsData(getViemProvider(provider, network), network, blockNumber); });
|
|
82
82
|
export const EMPTY_COMPOUND_DATA = {
|
|
83
83
|
usedAssets: {},
|
|
84
84
|
suppliedUsd: '0',
|
|
@@ -93,9 +93,9 @@ export const EMPTY_COMPOUND_DATA = {
|
|
|
93
93
|
borrowStableSupplyUnstable: false,
|
|
94
94
|
exposure: 'N/A',
|
|
95
95
|
};
|
|
96
|
-
const getCollateralAssetsAddresses = (
|
|
96
|
+
const getCollateralAssetsAddresses = (provider_1, network_1, account_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, account_1, ...args_1], void 0, function* (provider, network, account, blockNumber = 'latest') {
|
|
97
97
|
const contract = ComptrollerContractViem(provider, network);
|
|
98
|
-
return contract.read.getAssetsIn([account]);
|
|
98
|
+
return contract.read.getAssetsIn([account], setViemBlockNumber(blockNumber));
|
|
99
99
|
});
|
|
100
100
|
const getAllMarketAddresses = (provider, network, block) => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
101
|
const contract = ComptrollerContractViem(provider, network);
|
|
@@ -130,14 +130,14 @@ export const _getCompoundV2AccountBalances = (provider, network, block, addressM
|
|
|
130
130
|
return balances;
|
|
131
131
|
});
|
|
132
132
|
export const getCompoundV2AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () { return _getCompoundV2AccountBalances(getViemProvider(provider, network), network, block, addressMapping, address); });
|
|
133
|
-
export const _getCompoundV2AccountData = (
|
|
133
|
+
export const _getCompoundV2AccountData = (provider_1, network_1, address_1, assetsData_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, assetsData_1, ...args_1], void 0, function* (provider, network, address, assetsData, blockNumber = 'latest') {
|
|
134
134
|
if (!address)
|
|
135
135
|
throw new Error('No address provided');
|
|
136
136
|
let payload = Object.assign(Object.assign({}, EMPTY_COMPOUND_DATA), { lastUpdated: Date.now() });
|
|
137
137
|
const loanInfoContract = CompoundLoanInfoContractViem(provider, network);
|
|
138
138
|
const [loanInfo, collateralAssetsAddresses] = yield Promise.all([
|
|
139
|
-
loanInfoContract.read.getTokenBalances([address, compoundV2CollateralAssets.map(a => a.address)]),
|
|
140
|
-
getCollateralAssetsAddresses(provider, network, address),
|
|
139
|
+
loanInfoContract.read.getTokenBalances([address, compoundV2CollateralAssets.map(a => a.address)], setViemBlockNumber(blockNumber)),
|
|
140
|
+
getCollateralAssetsAddresses(provider, network, address, blockNumber),
|
|
141
141
|
]);
|
|
142
142
|
const usedAssets = {};
|
|
143
143
|
loanInfo[0].forEach((weiAmount, i) => {
|
|
@@ -168,7 +168,7 @@ export const _getCompoundV2AccountData = (provider, network, address, assetsData
|
|
|
168
168
|
}));
|
|
169
169
|
return payload;
|
|
170
170
|
});
|
|
171
|
-
export const getCompoundV2AccountData = (
|
|
171
|
+
export const getCompoundV2AccountData = (provider_1, network_1, address_1, assetsData_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, assetsData_1, ...args_1], void 0, function* (provider, network, address, assetsData, blockNumber = 'latest') { return _getCompoundV2AccountData(getViemProvider(provider, network), network, address, assetsData, blockNumber); });
|
|
172
172
|
export const getCompoundV2FullPositionData = (provider, network, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
173
|
const marketData = yield getCompoundV2MarketsData(provider, network);
|
|
174
174
|
const positionData = yield getCompoundV2AccountData(provider, network, address, marketData.assetsData);
|
|
@@ -2,8 +2,9 @@ import { Client } from 'viem';
|
|
|
2
2
|
import { CompoundMarketData, CompoundV3AssetsData, CompoundV3MarketsData, CompoundV3PositionData } from '../types';
|
|
3
3
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
4
4
|
export { getCompoundV3MerklOpportunities, attachCompoundV3MerklIncentives } from './merkl';
|
|
5
|
-
|
|
6
|
-
export declare const
|
|
5
|
+
/** `blockTimestamp` (unix seconds) is the historical block's timestamp when already known; otherwise it is read from the block. */
|
|
6
|
+
export declare const _getCompoundV3MarketsData: (provider: Client, network: NetworkNumber, selectedMarket: CompoundMarketData, defaultProvider: Client, blockNumber?: Blockish, blockTimestamp?: number) => Promise<CompoundV3MarketsData>;
|
|
7
|
+
export declare const getCompoundV3MarketsData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CompoundMarketData, defaultProvider: EthereumProvider, blockNumber?: Blockish, blockTimestamp?: number) => Promise<CompoundV3MarketsData>;
|
|
7
8
|
export declare const EMPTY_COMPOUND_V3_DATA: {
|
|
8
9
|
usedAssets: {};
|
|
9
10
|
suppliedUsd: string;
|
|
@@ -37,9 +38,9 @@ export declare const getCompoundV3AccountBalances: (provider: EthereumProvider,
|
|
|
37
38
|
export declare const _getCompoundV3AccountData: (provider: Client, network: NetworkNumber, address: EthAddress, proxyAddress: EthAddress, extractedState: ({
|
|
38
39
|
selectedMarket: CompoundMarketData;
|
|
39
40
|
assetsData: CompoundV3AssetsData;
|
|
40
|
-
})) => Promise<CompoundV3PositionData>;
|
|
41
|
+
}), blockNumber?: Blockish) => Promise<CompoundV3PositionData>;
|
|
41
42
|
export declare const getCompoundV3AccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, proxyAddress: EthAddress, extractedState: ({
|
|
42
43
|
selectedMarket: CompoundMarketData;
|
|
43
44
|
assetsData: CompoundV3AssetsData;
|
|
44
|
-
})) => Promise<CompoundV3PositionData>;
|
|
45
|
+
}), blockNumber?: Blockish) => Promise<CompoundV3PositionData>;
|
|
45
46
|
export declare const getCompoundV3FullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, proxyAddress: EthAddress, selectedMarket: CompoundMarketData, defaultProvider: EthereumProvider) => Promise<CompoundV3PositionData>;
|
package/esm/compoundV3/index.js
CHANGED
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import Dec from 'decimal.js';
|
|
11
11
|
import { assetAmountInEth, getAssetInfo, getAssetInfoByAddress, } from '@defisaver/tokens';
|
|
12
12
|
import { CompV3ViewContractViem } from '../contracts';
|
|
13
|
-
import { IncentiveKind, } from '../types/common';
|
|
13
|
+
import { IncentiveKind, NetworkNumber, } from '../types/common';
|
|
14
14
|
import { getStakingApy, STAKING_ASSETS, } from '../staking';
|
|
15
15
|
import { ethToWeth, wethToEth } from '../services/utils';
|
|
16
16
|
import { ZERO_ADDRESS } from '../constants';
|
|
@@ -18,29 +18,33 @@ import { calculateBorrowingAssetLimit } from '../moneymarket';
|
|
|
18
18
|
import { formatBaseData, formatMarketData, getCompoundV3AggregatedData, getIncentiveApys, } from '../helpers/compoundHelpers';
|
|
19
19
|
import { CompoundMarkets } from '../markets/compound';
|
|
20
20
|
import { getEthPrice, getCompPrice, getUSDCPrice, getWstETHPrice, } from '../services/priceService';
|
|
21
|
-
import { getViemProvider, setViemBlockNumber } from '../services/viem';
|
|
21
|
+
import { getBlockTimestamp, getViemProvider, setViemBlockNumber } from '../services/viem';
|
|
22
22
|
import { attachCompoundV3MerklIncentives, getCompoundV3MerklOpportunities } from './merkl';
|
|
23
23
|
export { getCompoundV3MerklOpportunities, attachCompoundV3MerklIncentives } from './merkl';
|
|
24
24
|
const getSupportedAssetsAddressesForMarket = (selectedMarket, network) => selectedMarket.collAssets.map(asset => getAssetInfo(ethToWeth(asset), network)).map(addr => addr.address.toLowerCase());
|
|
25
|
+
// Every branch takes (client, block) so the caller can pin the price read to the market block.
|
|
25
26
|
const getBaseAssetPriceFunction = (asset) => {
|
|
26
27
|
switch (asset) {
|
|
27
28
|
case 'wstETH':
|
|
28
|
-
return getWstETHPrice;
|
|
29
|
+
return (client, block) => getWstETHPrice(client, NetworkNumber.Eth, block);
|
|
29
30
|
case 'ETH':
|
|
30
31
|
return getEthPrice;
|
|
31
32
|
default:
|
|
32
33
|
return getUSDCPrice;
|
|
33
34
|
}
|
|
34
35
|
};
|
|
35
|
-
|
|
36
|
+
/** `blockTimestamp` (unix seconds) is the historical block's timestamp when already known; otherwise it is read from the block. */
|
|
37
|
+
export const _getCompoundV3MarketsData = (provider_1, network_1, selectedMarket_1, defaultProvider_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, selectedMarket_1, defaultProvider_1, ...args_1], void 0, function* (provider, network, selectedMarket, defaultProvider, blockNumber = 'latest', blockTimestamp) {
|
|
36
38
|
const contract = CompV3ViewContractViem(provider, network);
|
|
37
39
|
const [baseAssetPrice, compPrice, baseTokenInfo, collInfos, govInfo, merklOpportunities] = yield Promise.all([
|
|
38
|
-
getBaseAssetPriceFunction(selectedMarket.baseAsset)(defaultProvider),
|
|
39
|
-
getCompPrice(defaultProvider),
|
|
40
|
-
contract.read.getFullBaseTokenInfo([selectedMarket.baseMarketAddress]),
|
|
41
|
-
contract.read.getFullCollInfos([selectedMarket.baseMarketAddress]),
|
|
42
|
-
contract.read.getGovernanceInfoFull([selectedMarket.baseMarketAddress]),
|
|
43
|
-
|
|
40
|
+
getBaseAssetPriceFunction(selectedMarket.baseAsset)(defaultProvider, blockNumber),
|
|
41
|
+
getCompPrice(defaultProvider, blockNumber),
|
|
42
|
+
contract.read.getFullBaseTokenInfo([selectedMarket.baseMarketAddress], setViemBlockNumber(blockNumber)),
|
|
43
|
+
contract.read.getFullCollInfos([selectedMarket.baseMarketAddress], setViemBlockNumber(blockNumber)),
|
|
44
|
+
contract.read.getGovernanceInfoFull([selectedMarket.baseMarketAddress], setViemBlockNumber(blockNumber)),
|
|
45
|
+
// Merkl rewards are keyed by time: a historical block resolves to its timestamp first (one RPC
|
|
46
|
+
// call unless given, none for 'latest') so the rewards in force at that moment are attached.
|
|
47
|
+
getBlockTimestamp(provider, blockNumber, blockTimestamp).then((asOfTimestamp) => getCompoundV3MerklOpportunities(asOfTimestamp, network)),
|
|
44
48
|
]);
|
|
45
49
|
const { isSupplyPaused, isWithdrawPaused } = govInfo;
|
|
46
50
|
const supportedAssetsAddresses = getSupportedAssetsAddressesForMarket(selectedMarket, network);
|
|
@@ -75,7 +79,7 @@ export const _getCompoundV3MarketsData = (provider, network, selectedMarket, def
|
|
|
75
79
|
assetsData: payload, isMarketBorrowPaused: isWithdrawPaused, isMarketSupplyPaused: isSupplyPaused, isMarketWithdrawPaused: isWithdrawPaused,
|
|
76
80
|
};
|
|
77
81
|
});
|
|
78
|
-
export const getCompoundV3MarketsData = (
|
|
82
|
+
export const getCompoundV3MarketsData = (provider_1, network_1, selectedMarket_1, defaultProvider_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, selectedMarket_1, defaultProvider_1, ...args_1], void 0, function* (provider, network, selectedMarket, defaultProvider, blockNumber = 'latest', blockTimestamp) { return _getCompoundV3MarketsData(getViemProvider(provider, network), network, selectedMarket, getViemProvider(defaultProvider, network), blockNumber, blockTimestamp); });
|
|
79
83
|
export const EMPTY_COMPOUND_V3_DATA = {
|
|
80
84
|
usedAssets: {},
|
|
81
85
|
suppliedUsd: '0',
|
|
@@ -135,15 +139,15 @@ export const _getCompoundV3AccountBalances = (provider, network, block, addressM
|
|
|
135
139
|
return balances;
|
|
136
140
|
});
|
|
137
141
|
export const getCompoundV3AccountBalances = (provider, network, block, addressMapping, address, marketAddress) => __awaiter(void 0, void 0, void 0, function* () { return _getCompoundV3AccountBalances(getViemProvider(provider, network), network, block, addressMapping, address, marketAddress); });
|
|
138
|
-
export const _getCompoundV3AccountData = (
|
|
142
|
+
export const _getCompoundV3AccountData = (provider_1, network_1, address_1, proxyAddress_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, proxyAddress_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, proxyAddress, extractedState, blockNumber = 'latest') {
|
|
139
143
|
if (!address)
|
|
140
144
|
throw new Error('No address provided');
|
|
141
145
|
const { selectedMarket, assetsData, } = extractedState;
|
|
142
146
|
let payload = Object.assign(Object.assign({}, EMPTY_COMPOUND_V3_DATA), { lastUpdated: Date.now() });
|
|
143
147
|
const contract = CompV3ViewContractViem(provider, network);
|
|
144
148
|
const [loanData, isAllowed] = yield Promise.all([
|
|
145
|
-
contract.read.getLoanData([selectedMarket.baseMarketAddress, address]),
|
|
146
|
-
contract.read.isAllowed([selectedMarket.baseMarketAddress, address, (proxyAddress || ZERO_ADDRESS)]),
|
|
149
|
+
contract.read.getLoanData([selectedMarket.baseMarketAddress, address], setViemBlockNumber(blockNumber)),
|
|
150
|
+
contract.read.isAllowed([selectedMarket.baseMarketAddress, address, (proxyAddress || ZERO_ADDRESS)], setViemBlockNumber(blockNumber)),
|
|
147
151
|
]);
|
|
148
152
|
const usedAssets = {};
|
|
149
153
|
const baseAssetInfo = getAssetInfo(selectedMarket.baseAsset);
|
|
@@ -188,7 +192,7 @@ export const _getCompoundV3AccountData = (provider, network, address, proxyAddre
|
|
|
188
192
|
});
|
|
189
193
|
return payload;
|
|
190
194
|
});
|
|
191
|
-
export const getCompoundV3AccountData = (
|
|
195
|
+
export const getCompoundV3AccountData = (provider_1, network_1, address_1, proxyAddress_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, proxyAddress_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, proxyAddress, extractedState, blockNumber = 'latest') { return _getCompoundV3AccountData(getViemProvider(provider, network), network, address, proxyAddress, extractedState, blockNumber); });
|
|
192
196
|
export const getCompoundV3FullPositionData = (provider, network, address, proxyAddress, selectedMarket, defaultProvider) => __awaiter(void 0, void 0, void 0, function* () {
|
|
193
197
|
const marketData = yield getCompoundV3MarketsData(provider, network, selectedMarket, defaultProvider);
|
|
194
198
|
const positionData = yield getCompoundV3AccountData(provider, network, address, proxyAddress, { selectedMarket, assetsData: marketData.assetsData });
|
|
@@ -7,7 +7,7 @@ import { CompoundV3AssetData, MerklOpportunity, NetworkNumber } from '../types';
|
|
|
7
7
|
* be gated and sized by a curated check in EligibilityMapping; unknown ids apply
|
|
8
8
|
* unconditionally, mirroring Aave V3.
|
|
9
9
|
*/
|
|
10
|
-
export declare const getCompoundV3MerklOpportunities: () => Promise<MerklOpportunity[]>;
|
|
10
|
+
export declare const getCompoundV3MerklOpportunities: (asOfTimestamp?: number, chainId?: NetworkNumber) => Promise<MerklOpportunity[]>;
|
|
11
11
|
/**
|
|
12
12
|
* Appends the comet's Merkl campaigns to its assets' incentive arrays (mutating them, like the
|
|
13
13
|
* staking incentives are attached). BORROW campaigns land on the base asset — the only borrowable
|
package/esm/compoundV3/merkl.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { getAssetInfoByAddress } from '@defisaver/tokens';
|
|
11
11
|
import { aprToApy } from '../moneymarket';
|
|
12
|
-
import {
|
|
12
|
+
import { fetchMerklOpportunities } from '../services/merkl';
|
|
13
13
|
import { compareAddresses, wethToEth } from '../services/utils';
|
|
14
14
|
import { IncentiveKind, OpportunityAction, OpportunityStatus, } from '../types';
|
|
15
15
|
/**
|
|
@@ -20,12 +20,9 @@ import { IncentiveKind, OpportunityAction, OpportunityStatus, } from '../types';
|
|
|
20
20
|
* be gated and sized by a curated check in EligibilityMapping; unknown ids apply
|
|
21
21
|
* unconditionally, mirroring Aave V3.
|
|
22
22
|
*/
|
|
23
|
-
export const getCompoundV3MerklOpportunities = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
export const getCompoundV3MerklOpportunities = (asOfTimestamp, chainId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
24
|
try {
|
|
25
|
-
return yield
|
|
26
|
-
mainProtocolId: 'compound-v3',
|
|
27
|
-
status: OpportunityStatus.LIVE,
|
|
28
|
-
});
|
|
25
|
+
return yield fetchMerklOpportunities(Object.assign({ mainProtocolId: 'compound-v3', status: OpportunityStatus.LIVE }, (chainId ? { chainId: chainId.toString() } : {})), asOfTimestamp);
|
|
29
26
|
}
|
|
30
27
|
catch (e) {
|
|
31
28
|
console.error('Failed to fetch Compound V3 Merkl campaigns', e);
|
package/esm/curveUsd/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { CrvUSDGlobalMarketData, CrvUSDMarketData, CrvUSDUserData } from '../types';
|
|
3
3
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
4
|
-
export declare const _getCurveUsdGlobalData: (provider: Client, network: NetworkNumber, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDGlobalMarketData>;
|
|
5
|
-
export declare const getCurveUsdGlobalData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDGlobalMarketData>;
|
|
4
|
+
export declare const _getCurveUsdGlobalData: (provider: Client, network: NetworkNumber, selectedMarket: CrvUSDMarketData, blockNumber?: Blockish) => Promise<CrvUSDGlobalMarketData>;
|
|
5
|
+
export declare const getCurveUsdGlobalData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CrvUSDMarketData, blockNumber?: Blockish) => Promise<CrvUSDGlobalMarketData>;
|
|
6
6
|
export declare const _getCrvUsdAccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress, includeDeposited?: boolean) => Promise<PositionBalances>;
|
|
7
7
|
export declare const getCrvUsdAccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress, controllerAddress: EthAddress) => Promise<PositionBalances>;
|
|
8
8
|
/**
|
|
9
9
|
* @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
|
|
10
10
|
*/
|
|
11
|
-
export declare const _getCurveUsdUserData: (provider: Client, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
|
|
12
|
-
export declare const getCurveUsdUserData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string) => Promise<CrvUSDUserData>;
|
|
13
|
-
export declare const getCurveUsdFullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData) => Promise<CrvUSDUserData>;
|
|
11
|
+
export declare const _getCurveUsdUserData: (provider: Client, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string, blockNumber?: Blockish) => Promise<CrvUSDUserData>;
|
|
12
|
+
export declare const getCurveUsdUserData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, activeBand: string, borrowRate?: string, blockNumber?: Blockish) => Promise<CrvUSDUserData>;
|
|
13
|
+
export declare const getCurveUsdFullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, selectedMarket: CrvUSDMarketData, blockNumber?: Blockish) => Promise<CrvUSDUserData>;
|
package/esm/curveUsd/index.js
CHANGED
|
@@ -22,7 +22,7 @@ const ammRateToBorrowApy = (rateWei) => {
|
|
|
22
22
|
const exponent = new Dec(assetAmountInEth(rateWei)).mul(365).mul(86400);
|
|
23
23
|
return new Dec(new Dec(2.718281828459).pow(exponent).minus(1)).mul(100).toString();
|
|
24
24
|
};
|
|
25
|
-
const getAndFormatBands = (
|
|
25
|
+
const getAndFormatBands = (provider_1, network_1, selectedMarket_1, _minBand_1, _maxBand_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, selectedMarket_1, _minBand_1, _maxBand_1, ...args_1], void 0, function* (provider, network, selectedMarket, _minBand, _maxBand, blockNumber = 'latest') {
|
|
26
26
|
const contract = CrvUSDViewContractViem(provider, network);
|
|
27
27
|
const minBand = parseInt(_minBand, 10);
|
|
28
28
|
const maxBand = parseInt(_maxBand, 10);
|
|
@@ -46,7 +46,7 @@ const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand
|
|
|
46
46
|
else {
|
|
47
47
|
start = pivots[index - 1] + 1;
|
|
48
48
|
}
|
|
49
|
-
const pivotedBandsData = yield contract.read.getBandsData([selectedMarket.controllerAddress, BigInt(start), BigInt(pivot)]);
|
|
49
|
+
const pivotedBandsData = yield contract.read.getBandsData([selectedMarket.controllerAddress, BigInt(start), BigInt(pivot)], setViemBlockNumber(blockNumber));
|
|
50
50
|
return pivotedBandsData;
|
|
51
51
|
})))).flat();
|
|
52
52
|
return bandsData.map((band) => ({
|
|
@@ -57,23 +57,23 @@ const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand
|
|
|
57
57
|
highPrice: assetAmountInEth(band.highPrice.toString()),
|
|
58
58
|
}));
|
|
59
59
|
});
|
|
60
|
-
export const _getCurveUsdGlobalData = (
|
|
60
|
+
export const _getCurveUsdGlobalData = (provider_1, network_1, selectedMarket_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, selectedMarket_1, ...args_1], void 0, function* (provider, network, selectedMarket, blockNumber = 'latest') {
|
|
61
61
|
const contract = CrvUSDViewContractViem(provider, network);
|
|
62
62
|
const factoryContract = CrvUSDFactoryContractViem(provider, network);
|
|
63
63
|
const cntrollerContract = createViemContractFromConfigFunc('crvUSDwstETHController', selectedMarket.controllerAddress)(provider, network);
|
|
64
64
|
const debtAsset = selectedMarket.baseAsset;
|
|
65
65
|
const [debtCeiling, _, data, loanDiscountWei] = yield Promise.all([
|
|
66
|
-
factoryContract.read.debt_ceiling([selectedMarket.controllerAddress]),
|
|
67
|
-
factoryContract.read.total_debt(),
|
|
68
|
-
contract.read.globalData([selectedMarket.controllerAddress]),
|
|
69
|
-
cntrollerContract.read.loan_discount(),
|
|
66
|
+
factoryContract.read.debt_ceiling([selectedMarket.controllerAddress], setViemBlockNumber(blockNumber)),
|
|
67
|
+
factoryContract.read.total_debt(setViemBlockNumber(blockNumber)),
|
|
68
|
+
contract.read.globalData([selectedMarket.controllerAddress], setViemBlockNumber(blockNumber)),
|
|
69
|
+
cntrollerContract.read.loan_discount(setViemBlockNumber(blockNumber)),
|
|
70
70
|
]);
|
|
71
71
|
// all prices are in 18 decimals
|
|
72
72
|
const totalDebt = assetAmountInEth(data.totalDebt.toString(), debtAsset);
|
|
73
73
|
const ammPrice = assetAmountInEth(data.ammPrice.toString(), debtAsset);
|
|
74
74
|
const borrowRate = ammRateToBorrowApy(data.ammRate.toString());
|
|
75
75
|
const futureBorrowRate = ammRateToBorrowApy(data.monetaryPolicyRate.toString());
|
|
76
|
-
const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString());
|
|
76
|
+
const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString(), blockNumber);
|
|
77
77
|
const leftToBorrow = new Dec(debtCeiling.toString()).minus(totalDebt).toString();
|
|
78
78
|
const loanDiscount = assetAmountInEth(loanDiscountWei.toString(), debtAsset);
|
|
79
79
|
return Object.assign(Object.assign({}, data), { decimals: data.decimals.toString(), activeBand: data.activeBand.toString(), monetaryPolicyRate: data.monetaryPolicyRate.toString(), ammRate: data.ammRate.toString(), minBand: data.minBand.toString(), maxBand: data.maxBand.toString(), debtCeiling: debtCeiling.toString(), totalDebt,
|
|
@@ -81,7 +81,7 @@ export const _getCurveUsdGlobalData = (provider, network, selectedMarket) => __a
|
|
|
81
81
|
futureBorrowRate, bands: bandsData, leftToBorrow,
|
|
82
82
|
loanDiscount });
|
|
83
83
|
});
|
|
84
|
-
export const getCurveUsdGlobalData = (
|
|
84
|
+
export const getCurveUsdGlobalData = (provider_1, network_1, selectedMarket_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, selectedMarket_1, ...args_1], void 0, function* (provider, network, selectedMarket, blockNumber = 'latest') { return _getCurveUsdGlobalData(getViemProvider(provider, network), network, selectedMarket, blockNumber); });
|
|
85
85
|
const getStatusForUser = (bandRange, activeBand, crvUSDSupplied, collSupplied, healthPercent) => {
|
|
86
86
|
// if bands are equal, that can only be [0,0] which means user doesn't have loan (min number of bands is 4)
|
|
87
87
|
if (new Dec(bandRange[0]).eq(bandRange[1]))
|
|
@@ -129,16 +129,16 @@ export const getCrvUsdAccountBalances = (provider, network, block, addressMappin
|
|
|
129
129
|
/**
|
|
130
130
|
* @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
|
|
131
131
|
*/
|
|
132
|
-
export const _getCurveUsdUserData = (
|
|
132
|
+
export const _getCurveUsdUserData = (provider_1, network_1, address_1, selectedMarket_1, activeBand_1, borrowRate_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, selectedMarket_1, activeBand_1, borrowRate_1, ...args_1], void 0, function* (provider, network, address, selectedMarket, activeBand, borrowRate, blockNumber = 'latest') {
|
|
133
133
|
const contract = CrvUSDViewContractViem(provider, network);
|
|
134
134
|
const collAsset = selectedMarket.collAsset;
|
|
135
135
|
const debtAsset = selectedMarket.baseAsset;
|
|
136
136
|
const [data, collStakingApy, marketBorrowRate] = yield Promise.all([
|
|
137
|
-
contract.read.userData([selectedMarket.controllerAddress, address]),
|
|
137
|
+
contract.read.userData([selectedMarket.controllerAddress, address], setViemBlockNumber(blockNumber)),
|
|
138
138
|
STAKING_ASSETS.includes(collAsset) ? getStakingApy(collAsset) : Promise.resolve('0'),
|
|
139
139
|
borrowRate !== undefined
|
|
140
140
|
? Promise.resolve(borrowRate)
|
|
141
|
-
: contract.read.globalData([selectedMarket.controllerAddress]).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
|
|
141
|
+
: contract.read.globalData([selectedMarket.controllerAddress], setViemBlockNumber(blockNumber)).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
|
|
142
142
|
]);
|
|
143
143
|
const health = assetAmountInEth(data.health.toString());
|
|
144
144
|
const healthPercent = new Dec(health).mul(100).toString();
|
|
@@ -175,7 +175,7 @@ export const _getCurveUsdUserData = (provider, network, address, selectedMarket,
|
|
|
175
175
|
} : {};
|
|
176
176
|
const priceHigh = assetAmountInEth(data.priceHigh.toString());
|
|
177
177
|
const priceLow = assetAmountInEth(data.priceLow.toString());
|
|
178
|
-
const _userBands = data.loanExists ? (yield getAndFormatBands(provider, network, selectedMarket, data.bandRange[0].toString(), data.bandRange[1].toString())) : [];
|
|
178
|
+
const _userBands = data.loanExists ? (yield getAndFormatBands(provider, network, selectedMarket, data.bandRange[0].toString(), data.bandRange[1].toString(), blockNumber)) : [];
|
|
179
179
|
const status = data.loanExists ? getStatusForUser(data.bandRange.map(b => b.toString()), activeBand, crvUSDSupplied, collSupplied, healthPercent) : CrvUSDStatus.Nonexistant;
|
|
180
180
|
const userBands = _userBands.map((band, index) => (Object.assign(Object.assign({}, band), { userDebtAmount: assetAmountInEth(data.usersBands[0][index].toString(), debtAsset), userCollAmount: assetAmountInEth(data.usersBands[1][index].toString(), collAsset) }))).sort((a, b) => parseInt(b.id, 10) - parseInt(a.id, 10));
|
|
181
181
|
return Object.assign(Object.assign(Object.assign(Object.assign({}, data), { collRatio, collateralPrice: collPrice, debtAmount: assetAmountInEth(data.debtAmount.toString(), debtAsset), health,
|
|
@@ -192,9 +192,9 @@ export const _getCurveUsdUserData = (provider, network, address, selectedMarket,
|
|
|
192
192
|
collStakingApy,
|
|
193
193
|
})), { userBands });
|
|
194
194
|
});
|
|
195
|
-
export const getCurveUsdUserData = (
|
|
196
|
-
export const getCurveUsdFullPositionData = (
|
|
197
|
-
const marketData = yield getCurveUsdGlobalData(provider, network, selectedMarket);
|
|
198
|
-
const positionData = yield getCurveUsdUserData(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate);
|
|
195
|
+
export const getCurveUsdUserData = (provider_1, network_1, address_1, selectedMarket_1, activeBand_1, borrowRate_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, selectedMarket_1, activeBand_1, borrowRate_1, ...args_1], void 0, function* (provider, network, address, selectedMarket, activeBand, borrowRate, blockNumber = 'latest') { return _getCurveUsdUserData(getViemProvider(provider, network), network, address, selectedMarket, activeBand, borrowRate, blockNumber); });
|
|
196
|
+
export const getCurveUsdFullPositionData = (provider_1, network_1, address_1, selectedMarket_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, selectedMarket_1, ...args_1], void 0, function* (provider, network, address, selectedMarket, blockNumber = 'latest') {
|
|
197
|
+
const marketData = yield getCurveUsdGlobalData(provider, network, selectedMarket, blockNumber);
|
|
198
|
+
const positionData = yield getCurveUsdUserData(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate, blockNumber);
|
|
199
199
|
return positionData;
|
|
200
200
|
});
|
package/esm/fluid/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client, PublicClient } from 'viem';
|
|
2
2
|
import { EthAddress, EthereumProvider, NetworkNumber } from '../types/common';
|
|
3
|
-
import { FluidAssetsData, FluidMarketData, FluidMarketInfo, FluidUsedAssets, FluidVaultData, InnerFluidMarketData } from '../types';
|
|
3
|
+
import { FluidAssetsData, FluidMarketData, FluidMarketInfo, FluidUsedAssets, FluidVaultData, InnerFluidMarketData, Blockish } from '../types';
|
|
4
4
|
export { FluidMerklOpportunityType, buildFluidMerklRewardMap, getFluidMerklCampaigns, attachFluidMerklIncentives, } from './merkl';
|
|
5
5
|
export declare const EMPTY_USED_ASSET: {
|
|
6
6
|
isSupplied: boolean;
|
|
@@ -29,29 +29,29 @@ export declare const EMPTY_FLUID_DATA: {
|
|
|
29
29
|
automationResubscribeRequired: boolean;
|
|
30
30
|
lastUpdated: number;
|
|
31
31
|
};
|
|
32
|
-
export declare const _getFluidMarketData: (provider: PublicClient, network: NetworkNumber, market: FluidMarketInfo) => Promise<FluidMarketData | undefined>;
|
|
33
|
-
export declare const getFluidMarketData: (provider: EthereumProvider, network: NetworkNumber, market: FluidMarketInfo) => Promise<FluidMarketData | undefined>;
|
|
34
|
-
export declare const _getFluidVaultIdsForUser: (provider: Client, network: NetworkNumber, user: EthAddress) => Promise<string[]>;
|
|
35
|
-
export declare const getFluidVaultIdsForUser: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress) => Promise<string[]>;
|
|
32
|
+
export declare const _getFluidMarketData: (provider: PublicClient, network: NetworkNumber, market: FluidMarketInfo, blockNumber?: Blockish) => Promise<FluidMarketData | undefined>;
|
|
33
|
+
export declare const getFluidMarketData: (provider: EthereumProvider, network: NetworkNumber, market: FluidMarketInfo, blockNumber?: Blockish) => Promise<FluidMarketData | undefined>;
|
|
34
|
+
export declare const _getFluidVaultIdsForUser: (provider: Client, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<string[]>;
|
|
35
|
+
export declare const getFluidVaultIdsForUser: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<string[]>;
|
|
36
36
|
export declare const _getFluidPosition: (provider: Client, network: NetworkNumber, vaultId: string, extractedState: {
|
|
37
37
|
assetsData: FluidAssetsData;
|
|
38
38
|
marketData: InnerFluidMarketData;
|
|
39
|
-
}) => Promise<FluidVaultData>;
|
|
39
|
+
}, blockNumber?: Blockish) => Promise<FluidVaultData>;
|
|
40
40
|
export declare const getFluidPosition: (provider: EthereumProvider, network: NetworkNumber, vaultId: string, extractedState: {
|
|
41
41
|
assetsData: FluidAssetsData;
|
|
42
42
|
marketData: InnerFluidMarketData;
|
|
43
|
-
}) => Promise<FluidVaultData>;
|
|
44
|
-
export declare const _getFluidPositionWithMarket: (provider: PublicClient, network: NetworkNumber, vaultId: string) => Promise<{
|
|
43
|
+
}, blockNumber?: Blockish) => Promise<FluidVaultData>;
|
|
44
|
+
export declare const _getFluidPositionWithMarket: (provider: PublicClient, network: NetworkNumber, vaultId: string, blockNumber?: Blockish) => Promise<{
|
|
45
45
|
userData: FluidVaultData;
|
|
46
46
|
marketData: FluidMarketData;
|
|
47
47
|
} | undefined>;
|
|
48
|
-
export declare const getFluidPositionWithMarket: (provider: EthereumProvider, network: NetworkNumber, vaultId: string) => Promise<{
|
|
48
|
+
export declare const getFluidPositionWithMarket: (provider: EthereumProvider, network: NetworkNumber, vaultId: string, blockNumber?: Blockish) => Promise<{
|
|
49
49
|
userData: FluidVaultData;
|
|
50
50
|
marketData: FluidMarketData;
|
|
51
51
|
} | undefined>;
|
|
52
|
-
export declare const _getAllFluidMarketDataChunked: (network: NetworkNumber, provider: PublicClient) => Promise<(FluidMarketData | undefined)[]>;
|
|
53
|
-
export declare const getAllFluidMarketDataChunked: (network: NetworkNumber, provider: EthereumProvider) => Promise<(FluidMarketData | undefined)[]>;
|
|
54
|
-
export declare const _getFluidTokenData: (provider: Client, network: NetworkNumber, token: string) => Promise<{
|
|
52
|
+
export declare const _getAllFluidMarketDataChunked: (network: NetworkNumber, provider: PublicClient, blockNumber?: Blockish) => Promise<(FluidMarketData | undefined)[]>;
|
|
53
|
+
export declare const getAllFluidMarketDataChunked: (network: NetworkNumber, provider: EthereumProvider, blockNumber?: Blockish) => Promise<(FluidMarketData | undefined)[]>;
|
|
54
|
+
export declare const _getFluidTokenData: (provider: Client, network: NetworkNumber, token: string, blockNumber?: Blockish) => Promise<{
|
|
55
55
|
fTokenAddress: any;
|
|
56
56
|
fTokenSymbol: string;
|
|
57
57
|
decimals: string;
|
|
@@ -61,7 +61,7 @@ export declare const _getFluidTokenData: (provider: Client, network: NetworkNumb
|
|
|
61
61
|
depositRate: string;
|
|
62
62
|
withdrawRate: string;
|
|
63
63
|
}>;
|
|
64
|
-
export declare const getFluidTokenData: (provider: EthereumProvider, network: NetworkNumber, token: string) => Promise<{
|
|
64
|
+
export declare const getFluidTokenData: (provider: EthereumProvider, network: NetworkNumber, token: string, blockNumber?: Blockish) => Promise<{
|
|
65
65
|
fTokenAddress: any;
|
|
66
66
|
fTokenSymbol: string;
|
|
67
67
|
decimals: string;
|
|
@@ -71,7 +71,7 @@ export declare const getFluidTokenData: (provider: EthereumProvider, network: Ne
|
|
|
71
71
|
depositRate: string;
|
|
72
72
|
withdrawRate: string;
|
|
73
73
|
}>;
|
|
74
|
-
export declare const _getFluidDepositData: (provider: Client, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
74
|
+
export declare const _getFluidDepositData: (provider: Client, network: NetworkNumber, token: string, address: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
75
75
|
fTokenAddress: string | undefined;
|
|
76
76
|
fTokenSymbol: string;
|
|
77
77
|
decimals: string;
|
|
@@ -83,7 +83,7 @@ export declare const _getFluidDepositData: (provider: Client, network: NetworkNu
|
|
|
83
83
|
deposited: string;
|
|
84
84
|
depositedShares: string;
|
|
85
85
|
}>;
|
|
86
|
-
export declare const getFluidDepositData: (provider: EthereumProvider, network: NetworkNumber, token: string, address: EthAddress) => Promise<{
|
|
86
|
+
export declare const getFluidDepositData: (provider: EthereumProvider, network: NetworkNumber, token: string, address: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
87
87
|
fTokenAddress: string | undefined;
|
|
88
88
|
fTokenSymbol: string;
|
|
89
89
|
decimals: string;
|
|
@@ -95,7 +95,7 @@ export declare const getFluidDepositData: (provider: EthereumProvider, network:
|
|
|
95
95
|
deposited: string;
|
|
96
96
|
depositedShares: string;
|
|
97
97
|
}>;
|
|
98
|
-
export declare const _getAllUserEarnPositionsWithFTokens: (provider: Client, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
98
|
+
export declare const _getAllUserEarnPositionsWithFTokens: (provider: Client, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
99
99
|
fTokenAddress: string | undefined;
|
|
100
100
|
fTokenSymbol: string;
|
|
101
101
|
decimals: string;
|
|
@@ -107,7 +107,7 @@ export declare const _getAllUserEarnPositionsWithFTokens: (provider: Client, net
|
|
|
107
107
|
deposited: string;
|
|
108
108
|
depositedShares: string;
|
|
109
109
|
}[]>;
|
|
110
|
-
export declare const getAllUserEarnPositionsWithFTokens: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
110
|
+
export declare const getAllUserEarnPositionsWithFTokens: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
111
111
|
fTokenAddress: string | undefined;
|
|
112
112
|
fTokenSymbol: string;
|
|
113
113
|
decimals: string;
|
|
@@ -119,7 +119,7 @@ export declare const getAllUserEarnPositionsWithFTokens: (provider: EthereumProv
|
|
|
119
119
|
deposited: string;
|
|
120
120
|
depositedShares: string;
|
|
121
121
|
}[]>;
|
|
122
|
-
export declare const _getUserPositions: (provider: PublicClient, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
122
|
+
export declare const _getUserPositions: (provider: PublicClient, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
123
123
|
marketData: FluidMarketData | undefined;
|
|
124
124
|
userData: {
|
|
125
125
|
suppliedUsd: string;
|
|
@@ -154,7 +154,7 @@ export declare const _getUserPositions: (provider: PublicClient, network: Networ
|
|
|
154
154
|
nftId: string;
|
|
155
155
|
} | undefined;
|
|
156
156
|
}[]>;
|
|
157
|
-
export declare const getUserPositions: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
157
|
+
export declare const getUserPositions: (provider: EthereumProvider, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
158
158
|
marketData: FluidMarketData | undefined;
|
|
159
159
|
userData: {
|
|
160
160
|
suppliedUsd: string;
|
|
@@ -189,7 +189,7 @@ export declare const getUserPositions: (provider: EthereumProvider, network: Net
|
|
|
189
189
|
nftId: string;
|
|
190
190
|
} | undefined;
|
|
191
191
|
}[]>;
|
|
192
|
-
export declare const _getUserPositionsPortfolio: (provider: PublicClient, network: NetworkNumber, user: EthAddress) => Promise<{
|
|
192
|
+
export declare const _getUserPositionsPortfolio: (provider: PublicClient, network: NetworkNumber, user: EthAddress, blockNumber?: Blockish) => Promise<{
|
|
193
193
|
marketData: FluidMarketData | undefined;
|
|
194
194
|
userData: {
|
|
195
195
|
suppliedUsd: string;
|
|
@@ -224,5 +224,6 @@ export declare const _getUserPositionsPortfolio: (provider: PublicClient, networ
|
|
|
224
224
|
nftId: string;
|
|
225
225
|
} | undefined;
|
|
226
226
|
}[]>;
|
|
227
|
-
|
|
228
|
-
export declare const
|
|
227
|
+
/** `blockTimestamp` (unix seconds) is the historical block's timestamp when already known; otherwise it is read from the block. */
|
|
228
|
+
export declare const _getAllFluidMarketDataPortfolio: (provider: PublicClient, network: NetworkNumber, blockNumber?: Blockish, blockTimestamp?: number) => Promise<Record<string, FluidMarketData>>;
|
|
229
|
+
export declare const getAllFluidMarketDataPortfolio: (provider: EthereumProvider, network: NetworkNumber, blockNumber?: Blockish, blockTimestamp?: number) => Promise<Record<string, FluidMarketData>>;
|