@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.
Files changed (145) hide show
  1. package/cjs/aaveV2/index.d.ts +4 -4
  2. package/cjs/aaveV2/index.js +7 -7
  3. package/cjs/aaveV3/index.d.ts +4 -3
  4. package/cjs/aaveV3/index.js +14 -10
  5. package/cjs/aaveV3/merkl.d.ts +5 -1
  6. package/cjs/aaveV3/merkl.js +8 -3
  7. package/cjs/aaveV4/index.d.ts +4 -3
  8. package/cjs/aaveV4/index.js +19 -16
  9. package/cjs/aaveV4/merkl.d.ts +10 -2
  10. package/cjs/aaveV4/merkl.js +15 -6
  11. package/cjs/claiming/aaveV3.d.ts +2 -2
  12. package/cjs/claiming/aaveV3.js +5 -4
  13. package/cjs/claiming/king.d.ts +2 -2
  14. package/cjs/claiming/king.js +3 -2
  15. package/cjs/claiming/spark.d.ts +3 -3
  16. package/cjs/claiming/spark.js +8 -7
  17. package/cjs/claiming/uniswap.d.ts +2 -2
  18. package/cjs/claiming/uniswap.js +3 -2
  19. package/cjs/compoundV2/index.d.ts +4 -4
  20. package/cjs/compoundV2/index.js +9 -9
  21. package/cjs/compoundV3/index.d.ts +5 -4
  22. package/cjs/compoundV3/index.js +17 -13
  23. package/cjs/compoundV3/merkl.d.ts +1 -1
  24. package/cjs/compoundV3/merkl.js +2 -5
  25. package/cjs/curveUsd/index.d.ts +5 -5
  26. package/cjs/curveUsd/index.js +17 -17
  27. package/cjs/fluid/index.d.ts +23 -22
  28. package/cjs/fluid/index.js +75 -72
  29. package/cjs/fluid/merkl.d.ts +5 -3
  30. package/cjs/fluid/merkl.js +11 -6
  31. package/cjs/liquity/index.d.ts +4 -4
  32. package/cjs/liquity/index.js +23 -23
  33. package/cjs/liquityV2/index.d.ts +10 -10
  34. package/cjs/liquityV2/index.js +59 -59
  35. package/cjs/llamaLend/index.d.ts +5 -5
  36. package/cjs/llamaLend/index.js +13 -13
  37. package/cjs/maker/index.d.ts +6 -6
  38. package/cjs/maker/index.js +16 -16
  39. package/cjs/morphoBlue/index.d.ts +7 -7
  40. package/cjs/morphoBlue/index.js +28 -26
  41. package/cjs/morphoBlue/merkl.d.ts +5 -3
  42. package/cjs/morphoBlue/merkl.js +6 -8
  43. package/cjs/morphoMidnight/index.d.ts +5 -5
  44. package/cjs/morphoMidnight/index.js +18 -18
  45. package/cjs/portfolio/customDeFiData.js +45 -40
  46. package/cjs/services/merkl.d.ts +36 -2
  47. package/cjs/services/merkl.js +142 -19
  48. package/cjs/services/priceService.d.ts +12 -12
  49. package/cjs/services/priceService.js +30 -29
  50. package/cjs/services/viem.d.ts +10 -2
  51. package/cjs/services/viem.js +27 -1
  52. package/cjs/spark/index.d.ts +4 -4
  53. package/cjs/spark/index.js +9 -9
  54. package/cjs/types/merkl.d.ts +18 -0
  55. package/cjs/types/portfolio.d.ts +2 -0
  56. package/cjs/umbrella/index.d.ts +2 -2
  57. package/cjs/umbrella/index.js +5 -4
  58. package/esm/aaveV2/index.d.ts +4 -4
  59. package/esm/aaveV2/index.js +8 -8
  60. package/esm/aaveV3/index.d.ts +4 -3
  61. package/esm/aaveV3/index.js +15 -11
  62. package/esm/aaveV3/merkl.d.ts +5 -1
  63. package/esm/aaveV3/merkl.js +9 -4
  64. package/esm/aaveV4/index.d.ts +4 -3
  65. package/esm/aaveV4/index.js +20 -17
  66. package/esm/aaveV4/merkl.d.ts +10 -2
  67. package/esm/aaveV4/merkl.js +16 -7
  68. package/esm/claiming/aaveV3.d.ts +2 -2
  69. package/esm/claiming/aaveV3.js +5 -4
  70. package/esm/claiming/king.d.ts +2 -2
  71. package/esm/claiming/king.js +3 -2
  72. package/esm/claiming/spark.d.ts +3 -3
  73. package/esm/claiming/spark.js +8 -7
  74. package/esm/claiming/uniswap.d.ts +2 -2
  75. package/esm/claiming/uniswap.js +3 -2
  76. package/esm/compoundV2/index.d.ts +4 -4
  77. package/esm/compoundV2/index.js +9 -9
  78. package/esm/compoundV3/index.d.ts +5 -4
  79. package/esm/compoundV3/index.js +19 -15
  80. package/esm/compoundV3/merkl.d.ts +1 -1
  81. package/esm/compoundV3/merkl.js +3 -6
  82. package/esm/curveUsd/index.d.ts +5 -5
  83. package/esm/curveUsd/index.js +17 -17
  84. package/esm/fluid/index.d.ts +23 -22
  85. package/esm/fluid/index.js +76 -73
  86. package/esm/fluid/merkl.d.ts +5 -3
  87. package/esm/fluid/merkl.js +12 -7
  88. package/esm/liquity/index.d.ts +4 -4
  89. package/esm/liquity/index.js +23 -23
  90. package/esm/liquityV2/index.d.ts +10 -10
  91. package/esm/liquityV2/index.js +60 -60
  92. package/esm/llamaLend/index.d.ts +5 -5
  93. package/esm/llamaLend/index.js +13 -13
  94. package/esm/maker/index.d.ts +6 -6
  95. package/esm/maker/index.js +16 -16
  96. package/esm/morphoBlue/index.d.ts +7 -7
  97. package/esm/morphoBlue/index.js +29 -27
  98. package/esm/morphoBlue/merkl.d.ts +5 -3
  99. package/esm/morphoBlue/merkl.js +7 -9
  100. package/esm/morphoMidnight/index.d.ts +5 -5
  101. package/esm/morphoMidnight/index.js +18 -18
  102. package/esm/portfolio/customDeFiData.js +47 -42
  103. package/esm/services/merkl.d.ts +36 -2
  104. package/esm/services/merkl.js +136 -18
  105. package/esm/services/priceService.d.ts +12 -12
  106. package/esm/services/priceService.js +31 -30
  107. package/esm/services/viem.d.ts +10 -2
  108. package/esm/services/viem.js +25 -0
  109. package/esm/spark/index.d.ts +4 -4
  110. package/esm/spark/index.js +10 -10
  111. package/esm/types/merkl.d.ts +18 -0
  112. package/esm/types/portfolio.d.ts +2 -0
  113. package/esm/umbrella/index.d.ts +2 -2
  114. package/esm/umbrella/index.js +5 -4
  115. package/package.json +1 -1
  116. package/src/aaveV2/index.ts +7 -7
  117. package/src/aaveV3/index.ts +15 -11
  118. package/src/aaveV3/merkl.ts +9 -4
  119. package/src/aaveV4/index.ts +19 -16
  120. package/src/aaveV4/merkl.ts +16 -7
  121. package/src/claiming/aaveV3.ts +5 -3
  122. package/src/claiming/king.ts +6 -3
  123. package/src/claiming/spark.ts +9 -6
  124. package/src/claiming/uniswap.ts +4 -3
  125. package/src/compoundV2/index.ts +10 -9
  126. package/src/compoundV3/index.ts +20 -14
  127. package/src/compoundV3/merkl.ts +5 -4
  128. package/src/curveUsd/index.ts +19 -17
  129. package/src/fluid/index.ts +88 -70
  130. package/src/fluid/merkl.ts +12 -7
  131. package/src/liquity/index.ts +23 -23
  132. package/src/liquityV2/index.ts +64 -56
  133. package/src/llamaLend/index.ts +15 -13
  134. package/src/maker/index.ts +19 -16
  135. package/src/morphoBlue/index.ts +23 -20
  136. package/src/morphoBlue/merkl.ts +9 -6
  137. package/src/morphoMidnight/index.ts +13 -13
  138. package/src/portfolio/customDeFiData.ts +48 -41
  139. package/src/services/merkl.ts +152 -19
  140. package/src/services/priceService.ts +33 -30
  141. package/src/services/viem.ts +16 -0
  142. package/src/spark/index.ts +11 -8
  143. package/src/types/merkl.ts +20 -0
  144. package/src/types/portfolio.ts +2 -0
  145. package/src/umbrella/index.ts +6 -5
@@ -24,10 +24,10 @@ const markets_1 = require("../markets");
24
24
  const compoundHelpers_1 = require("../helpers/compoundHelpers");
25
25
  const viem_1 = require("../services/viem");
26
26
  const compAddress = '0xc00e94cb662c3520282e6f5717214004a7f26888';
27
- const _getCompoundV2MarketsData = (provider, network) => __awaiter(void 0, void 0, void 0, function* () {
27
+ const _getCompoundV2MarketsData = (provider_1, network_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, ...args_1], void 0, function* (provider, network, blockNumber = 'latest') {
28
28
  const cAddresses = markets_1.compoundV2CollateralAssets.map(a => a.address);
29
29
  const loanInfoContract = (0, contracts_1.CompoundLoanInfoContractViem)(provider, network);
30
- const loanInfo = yield loanInfoContract.read.getFullTokensInfo([cAddresses]);
30
+ const loanInfo = yield loanInfoContract.read.getFullTokensInfo([cAddresses], (0, viem_1.setViemBlockNumber)(blockNumber));
31
31
  const compPrice = loanInfo.find(m => (0, utils_1.compareAddresses)(m.underlyingTokenAddress, compAddress)).price.toString();
32
32
  const assetsData = loanInfo
33
33
  .map((market, i) => {
@@ -85,7 +85,7 @@ const _getCompoundV2MarketsData = (provider, network) => __awaiter(void 0, void
85
85
  return { assetsData: payload };
86
86
  });
87
87
  exports._getCompoundV2MarketsData = _getCompoundV2MarketsData;
88
- const getCompoundV2MarketsData = (provider, network) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV2MarketsData)((0, viem_1.getViemProvider)(provider, network), network); });
88
+ 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 (0, exports._getCompoundV2MarketsData)((0, viem_1.getViemProvider)(provider, network), network, blockNumber); });
89
89
  exports.getCompoundV2MarketsData = getCompoundV2MarketsData;
90
90
  exports.EMPTY_COMPOUND_DATA = {
91
91
  usedAssets: {},
@@ -101,9 +101,9 @@ exports.EMPTY_COMPOUND_DATA = {
101
101
  borrowStableSupplyUnstable: false,
102
102
  exposure: 'N/A',
103
103
  };
104
- const getCollateralAssetsAddresses = (provider, network, account) => __awaiter(void 0, void 0, void 0, function* () {
104
+ 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') {
105
105
  const contract = (0, contracts_1.ComptrollerContractViem)(provider, network);
106
- return contract.read.getAssetsIn([account]);
106
+ return contract.read.getAssetsIn([account], (0, viem_1.setViemBlockNumber)(blockNumber));
107
107
  });
108
108
  const getAllMarketAddresses = (provider, network, block) => __awaiter(void 0, void 0, void 0, function* () {
109
109
  const contract = (0, contracts_1.ComptrollerContractViem)(provider, network);
@@ -140,14 +140,14 @@ const _getCompoundV2AccountBalances = (provider, network, block, addressMapping,
140
140
  exports._getCompoundV2AccountBalances = _getCompoundV2AccountBalances;
141
141
  const getCompoundV2AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV2AccountBalances)((0, viem_1.getViemProvider)(provider, network), network, block, addressMapping, address); });
142
142
  exports.getCompoundV2AccountBalances = getCompoundV2AccountBalances;
143
- const _getCompoundV2AccountData = (provider, network, address, assetsData) => __awaiter(void 0, void 0, void 0, function* () {
143
+ 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') {
144
144
  if (!address)
145
145
  throw new Error('No address provided');
146
146
  let payload = Object.assign(Object.assign({}, exports.EMPTY_COMPOUND_DATA), { lastUpdated: Date.now() });
147
147
  const loanInfoContract = (0, contracts_1.CompoundLoanInfoContractViem)(provider, network);
148
148
  const [loanInfo, collateralAssetsAddresses] = yield Promise.all([
149
- loanInfoContract.read.getTokenBalances([address, markets_1.compoundV2CollateralAssets.map(a => a.address)]),
150
- getCollateralAssetsAddresses(provider, network, address),
149
+ loanInfoContract.read.getTokenBalances([address, markets_1.compoundV2CollateralAssets.map(a => a.address)], (0, viem_1.setViemBlockNumber)(blockNumber)),
150
+ getCollateralAssetsAddresses(provider, network, address, blockNumber),
151
151
  ]);
152
152
  const usedAssets = {};
153
153
  loanInfo[0].forEach((weiAmount, i) => {
@@ -179,7 +179,7 @@ const _getCompoundV2AccountData = (provider, network, address, assetsData) => __
179
179
  return payload;
180
180
  });
181
181
  exports._getCompoundV2AccountData = _getCompoundV2AccountData;
182
- const getCompoundV2AccountData = (provider, network, address, assetsData) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV2AccountData)((0, viem_1.getViemProvider)(provider, network), network, address, assetsData); });
182
+ 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 (0, exports._getCompoundV2AccountData)((0, viem_1.getViemProvider)(provider, network), network, address, assetsData, blockNumber); });
183
183
  exports.getCompoundV2AccountData = getCompoundV2AccountData;
184
184
  const getCompoundV2FullPositionData = (provider, network, address) => __awaiter(void 0, void 0, void 0, function* () {
185
185
  const marketData = yield (0, exports.getCompoundV2MarketsData)(provider, network);
@@ -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
- export declare const _getCompoundV3MarketsData: (provider: Client, network: NetworkNumber, selectedMarket: CompoundMarketData, defaultProvider: Client) => Promise<CompoundV3MarketsData>;
6
- export declare const getCompoundV3MarketsData: (provider: EthereumProvider, network: NetworkNumber, selectedMarket: CompoundMarketData, defaultProvider: EthereumProvider) => Promise<CompoundV3MarketsData>;
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>;
@@ -30,25 +30,29 @@ var merkl_2 = require("./merkl");
30
30
  Object.defineProperty(exports, "getCompoundV3MerklOpportunities", { enumerable: true, get: function () { return merkl_2.getCompoundV3MerklOpportunities; } });
31
31
  Object.defineProperty(exports, "attachCompoundV3MerklIncentives", { enumerable: true, get: function () { return merkl_2.attachCompoundV3MerklIncentives; } });
32
32
  const getSupportedAssetsAddressesForMarket = (selectedMarket, network) => selectedMarket.collAssets.map(asset => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(asset), network)).map(addr => addr.address.toLowerCase());
33
+ // Every branch takes (client, block) so the caller can pin the price read to the market block.
33
34
  const getBaseAssetPriceFunction = (asset) => {
34
35
  switch (asset) {
35
36
  case 'wstETH':
36
- return priceService_1.getWstETHPrice;
37
+ return (client, block) => (0, priceService_1.getWstETHPrice)(client, common_1.NetworkNumber.Eth, block);
37
38
  case 'ETH':
38
39
  return priceService_1.getEthPrice;
39
40
  default:
40
41
  return priceService_1.getUSDCPrice;
41
42
  }
42
43
  };
43
- const _getCompoundV3MarketsData = (provider, network, selectedMarket, defaultProvider) => __awaiter(void 0, void 0, void 0, function* () {
44
+ /** `blockTimestamp` (unix seconds) is the historical block's timestamp when already known; otherwise it is read from the block. */
45
+ 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) {
44
46
  const contract = (0, contracts_1.CompV3ViewContractViem)(provider, network);
45
47
  const [baseAssetPrice, compPrice, baseTokenInfo, collInfos, govInfo, merklOpportunities] = yield Promise.all([
46
- getBaseAssetPriceFunction(selectedMarket.baseAsset)(defaultProvider),
47
- (0, priceService_1.getCompPrice)(defaultProvider),
48
- contract.read.getFullBaseTokenInfo([selectedMarket.baseMarketAddress]),
49
- contract.read.getFullCollInfos([selectedMarket.baseMarketAddress]),
50
- contract.read.getGovernanceInfoFull([selectedMarket.baseMarketAddress]),
51
- (0, merkl_1.getCompoundV3MerklOpportunities)(),
48
+ getBaseAssetPriceFunction(selectedMarket.baseAsset)(defaultProvider, blockNumber),
49
+ (0, priceService_1.getCompPrice)(defaultProvider, blockNumber),
50
+ contract.read.getFullBaseTokenInfo([selectedMarket.baseMarketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
51
+ contract.read.getFullCollInfos([selectedMarket.baseMarketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
52
+ contract.read.getGovernanceInfoFull([selectedMarket.baseMarketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
53
+ // Merkl rewards are keyed by time: a historical block resolves to its timestamp first (one RPC
54
+ // call unless given, none for 'latest') so the rewards in force at that moment are attached.
55
+ (0, viem_1.getBlockTimestamp)(provider, blockNumber, blockTimestamp).then((asOfTimestamp) => (0, merkl_1.getCompoundV3MerklOpportunities)(asOfTimestamp, network)),
52
56
  ]);
53
57
  const { isSupplyPaused, isWithdrawPaused } = govInfo;
54
58
  const supportedAssetsAddresses = getSupportedAssetsAddressesForMarket(selectedMarket, network);
@@ -84,7 +88,7 @@ const _getCompoundV3MarketsData = (provider, network, selectedMarket, defaultPro
84
88
  };
85
89
  });
86
90
  exports._getCompoundV3MarketsData = _getCompoundV3MarketsData;
87
- const getCompoundV3MarketsData = (provider, network, selectedMarket, defaultProvider) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV3MarketsData)((0, viem_1.getViemProvider)(provider, network), network, selectedMarket, (0, viem_1.getViemProvider)(defaultProvider, network)); });
91
+ 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 (0, exports._getCompoundV3MarketsData)((0, viem_1.getViemProvider)(provider, network), network, selectedMarket, (0, viem_1.getViemProvider)(defaultProvider, network), blockNumber, blockTimestamp); });
88
92
  exports.getCompoundV3MarketsData = getCompoundV3MarketsData;
89
93
  exports.EMPTY_COMPOUND_V3_DATA = {
90
94
  usedAssets: {},
@@ -147,15 +151,15 @@ const _getCompoundV3AccountBalances = (provider, network, block, addressMapping,
147
151
  exports._getCompoundV3AccountBalances = _getCompoundV3AccountBalances;
148
152
  const getCompoundV3AccountBalances = (provider, network, block, addressMapping, address, marketAddress) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV3AccountBalances)((0, viem_1.getViemProvider)(provider, network), network, block, addressMapping, address, marketAddress); });
149
153
  exports.getCompoundV3AccountBalances = getCompoundV3AccountBalances;
150
- const _getCompoundV3AccountData = (provider, network, address, proxyAddress, extractedState) => __awaiter(void 0, void 0, void 0, function* () {
154
+ 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') {
151
155
  if (!address)
152
156
  throw new Error('No address provided');
153
157
  const { selectedMarket, assetsData, } = extractedState;
154
158
  let payload = Object.assign(Object.assign({}, exports.EMPTY_COMPOUND_V3_DATA), { lastUpdated: Date.now() });
155
159
  const contract = (0, contracts_1.CompV3ViewContractViem)(provider, network);
156
160
  const [loanData, isAllowed] = yield Promise.all([
157
- contract.read.getLoanData([selectedMarket.baseMarketAddress, address]),
158
- contract.read.isAllowed([selectedMarket.baseMarketAddress, address, (proxyAddress || constants_1.ZERO_ADDRESS)]),
161
+ contract.read.getLoanData([selectedMarket.baseMarketAddress, address], (0, viem_1.setViemBlockNumber)(blockNumber)),
162
+ contract.read.isAllowed([selectedMarket.baseMarketAddress, address, (proxyAddress || constants_1.ZERO_ADDRESS)], (0, viem_1.setViemBlockNumber)(blockNumber)),
159
163
  ]);
160
164
  const usedAssets = {};
161
165
  const baseAssetInfo = (0, tokens_1.getAssetInfo)(selectedMarket.baseAsset);
@@ -201,7 +205,7 @@ const _getCompoundV3AccountData = (provider, network, address, proxyAddress, ext
201
205
  return payload;
202
206
  });
203
207
  exports._getCompoundV3AccountData = _getCompoundV3AccountData;
204
- const getCompoundV3AccountData = (provider, network, address, proxyAddress, extractedState) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCompoundV3AccountData)((0, viem_1.getViemProvider)(provider, network), network, address, proxyAddress, extractedState); });
208
+ 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 (0, exports._getCompoundV3AccountData)((0, viem_1.getViemProvider)(provider, network), network, address, proxyAddress, extractedState, blockNumber); });
205
209
  exports.getCompoundV3AccountData = getCompoundV3AccountData;
206
210
  const getCompoundV3FullPositionData = (provider, network, address, proxyAddress, selectedMarket, defaultProvider) => __awaiter(void 0, void 0, void 0, function* () {
207
211
  const marketData = yield (0, exports.getCompoundV3MarketsData)(provider, network, selectedMarket, defaultProvider);
@@ -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
@@ -23,12 +23,9 @@ const types_1 = require("../types");
23
23
  * be gated and sized by a curated check in EligibilityMapping; unknown ids apply
24
24
  * unconditionally, mirroring Aave V3.
25
25
  */
26
- const getCompoundV3MerklOpportunities = () => __awaiter(void 0, void 0, void 0, function* () {
26
+ const getCompoundV3MerklOpportunities = (asOfTimestamp, chainId) => __awaiter(void 0, void 0, void 0, function* () {
27
27
  try {
28
- return yield (0, merkl_1.fetchAllMerklOpportunities)({
29
- mainProtocolId: 'compound-v3',
30
- status: types_1.OpportunityStatus.LIVE,
31
- });
28
+ return yield (0, merkl_1.fetchMerklOpportunities)(Object.assign({ mainProtocolId: 'compound-v3', status: types_1.OpportunityStatus.LIVE }, (chainId ? { chainId: chainId.toString() } : {})), asOfTimestamp);
32
29
  }
33
30
  catch (e) {
34
31
  console.error('Failed to fetch Compound V3 Merkl campaigns', e);
@@ -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>;
@@ -28,7 +28,7 @@ const ammRateToBorrowApy = (rateWei) => {
28
28
  const exponent = new decimal_js_1.default((0, tokens_1.assetAmountInEth)(rateWei)).mul(365).mul(86400);
29
29
  return new decimal_js_1.default(new decimal_js_1.default(2.718281828459).pow(exponent).minus(1)).mul(100).toString();
30
30
  };
31
- const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand) => __awaiter(void 0, void 0, void 0, function* () {
31
+ 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') {
32
32
  const contract = (0, contracts_1.CrvUSDViewContractViem)(provider, network);
33
33
  const minBand = parseInt(_minBand, 10);
34
34
  const maxBand = parseInt(_maxBand, 10);
@@ -52,7 +52,7 @@ const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand
52
52
  else {
53
53
  start = pivots[index - 1] + 1;
54
54
  }
55
- const pivotedBandsData = yield contract.read.getBandsData([selectedMarket.controllerAddress, BigInt(start), BigInt(pivot)]);
55
+ const pivotedBandsData = yield contract.read.getBandsData([selectedMarket.controllerAddress, BigInt(start), BigInt(pivot)], (0, viem_1.setViemBlockNumber)(blockNumber));
56
56
  return pivotedBandsData;
57
57
  })))).flat();
58
58
  return bandsData.map((band) => ({
@@ -63,23 +63,23 @@ const getAndFormatBands = (provider, network, selectedMarket, _minBand, _maxBand
63
63
  highPrice: (0, tokens_1.assetAmountInEth)(band.highPrice.toString()),
64
64
  }));
65
65
  });
66
- const _getCurveUsdGlobalData = (provider, network, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
66
+ 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') {
67
67
  const contract = (0, contracts_1.CrvUSDViewContractViem)(provider, network);
68
68
  const factoryContract = (0, contracts_1.CrvUSDFactoryContractViem)(provider, network);
69
69
  const cntrollerContract = (0, contracts_1.createViemContractFromConfigFunc)('crvUSDwstETHController', selectedMarket.controllerAddress)(provider, network);
70
70
  const debtAsset = selectedMarket.baseAsset;
71
71
  const [debtCeiling, _, data, loanDiscountWei] = yield Promise.all([
72
- factoryContract.read.debt_ceiling([selectedMarket.controllerAddress]),
73
- factoryContract.read.total_debt(),
74
- contract.read.globalData([selectedMarket.controllerAddress]),
75
- cntrollerContract.read.loan_discount(),
72
+ factoryContract.read.debt_ceiling([selectedMarket.controllerAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
73
+ factoryContract.read.total_debt((0, viem_1.setViemBlockNumber)(blockNumber)),
74
+ contract.read.globalData([selectedMarket.controllerAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
75
+ cntrollerContract.read.loan_discount((0, viem_1.setViemBlockNumber)(blockNumber)),
76
76
  ]);
77
77
  // all prices are in 18 decimals
78
78
  const totalDebt = (0, tokens_1.assetAmountInEth)(data.totalDebt.toString(), debtAsset);
79
79
  const ammPrice = (0, tokens_1.assetAmountInEth)(data.ammPrice.toString(), debtAsset);
80
80
  const borrowRate = ammRateToBorrowApy(data.ammRate.toString());
81
81
  const futureBorrowRate = ammRateToBorrowApy(data.monetaryPolicyRate.toString());
82
- const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString());
82
+ const bandsData = yield getAndFormatBands(provider, network, selectedMarket, data.minBand.toString(), data.maxBand.toString(), blockNumber);
83
83
  const leftToBorrow = new decimal_js_1.default(debtCeiling.toString()).minus(totalDebt).toString();
84
84
  const loanDiscount = (0, tokens_1.assetAmountInEth)(loanDiscountWei.toString(), debtAsset);
85
85
  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,
@@ -88,7 +88,7 @@ const _getCurveUsdGlobalData = (provider, network, selectedMarket) => __awaiter(
88
88
  loanDiscount });
89
89
  });
90
90
  exports._getCurveUsdGlobalData = _getCurveUsdGlobalData;
91
- const getCurveUsdGlobalData = (provider, network, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCurveUsdGlobalData)((0, viem_1.getViemProvider)(provider, network), network, selectedMarket); });
91
+ 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 (0, exports._getCurveUsdGlobalData)((0, viem_1.getViemProvider)(provider, network), network, selectedMarket, blockNumber); });
92
92
  exports.getCurveUsdGlobalData = getCurveUsdGlobalData;
93
93
  const getStatusForUser = (bandRange, activeBand, crvUSDSupplied, collSupplied, healthPercent) => {
94
94
  // if bands are equal, that can only be [0,0] which means user doesn't have loan (min number of bands is 4)
@@ -139,16 +139,16 @@ exports.getCrvUsdAccountBalances = getCrvUsdAccountBalances;
139
139
  /**
140
140
  * @param borrowRate market borrow APY in % (`CrvUSDGlobalMarketData.borrowRate`); when omitted it is read from the view contract
141
141
  */
142
- const _getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () {
142
+ 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') {
143
143
  const contract = (0, contracts_1.CrvUSDViewContractViem)(provider, network);
144
144
  const collAsset = selectedMarket.collAsset;
145
145
  const debtAsset = selectedMarket.baseAsset;
146
146
  const [data, collStakingApy, marketBorrowRate] = yield Promise.all([
147
- contract.read.userData([selectedMarket.controllerAddress, address]),
147
+ contract.read.userData([selectedMarket.controllerAddress, address], (0, viem_1.setViemBlockNumber)(blockNumber)),
148
148
  staking_1.STAKING_ASSETS.includes(collAsset) ? (0, staking_1.getStakingApy)(collAsset) : Promise.resolve('0'),
149
149
  borrowRate !== undefined
150
150
  ? Promise.resolve(borrowRate)
151
- : contract.read.globalData([selectedMarket.controllerAddress]).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
151
+ : contract.read.globalData([selectedMarket.controllerAddress], (0, viem_1.setViemBlockNumber)(blockNumber)).then((globalData) => ammRateToBorrowApy(globalData.ammRate.toString())),
152
152
  ]);
153
153
  const health = (0, tokens_1.assetAmountInEth)(data.health.toString());
154
154
  const healthPercent = new decimal_js_1.default(health).mul(100).toString();
@@ -185,7 +185,7 @@ const _getCurveUsdUserData = (provider, network, address, selectedMarket, active
185
185
  } : {};
186
186
  const priceHigh = (0, tokens_1.assetAmountInEth)(data.priceHigh.toString());
187
187
  const priceLow = (0, tokens_1.assetAmountInEth)(data.priceLow.toString());
188
- const _userBands = data.loanExists ? (yield getAndFormatBands(provider, network, selectedMarket, data.bandRange[0].toString(), data.bandRange[1].toString())) : [];
188
+ const _userBands = data.loanExists ? (yield getAndFormatBands(provider, network, selectedMarket, data.bandRange[0].toString(), data.bandRange[1].toString(), blockNumber)) : [];
189
189
  const status = data.loanExists ? getStatusForUser(data.bandRange.map(b => b.toString()), activeBand, crvUSDSupplied, collSupplied, healthPercent) : types_1.CrvUSDStatus.Nonexistant;
190
190
  const userBands = _userBands.map((band, index) => (Object.assign(Object.assign({}, band), { userDebtAmount: (0, tokens_1.assetAmountInEth)(data.usersBands[0][index].toString(), debtAsset), userCollAmount: (0, tokens_1.assetAmountInEth)(data.usersBands[1][index].toString(), collAsset) }))).sort((a, b) => parseInt(b.id, 10) - parseInt(a.id, 10));
191
191
  return Object.assign(Object.assign(Object.assign(Object.assign({}, data), { collRatio, collateralPrice: collPrice, debtAmount: (0, tokens_1.assetAmountInEth)(data.debtAmount.toString(), debtAsset), health,
@@ -203,11 +203,11 @@ const _getCurveUsdUserData = (provider, network, address, selectedMarket, active
203
203
  })), { userBands });
204
204
  });
205
205
  exports._getCurveUsdUserData = _getCurveUsdUserData;
206
- const getCurveUsdUserData = (provider, network, address, selectedMarket, activeBand, borrowRate) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getCurveUsdUserData)((0, viem_1.getViemProvider)(provider, network), network, address, selectedMarket, activeBand, borrowRate); });
206
+ 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 (0, exports._getCurveUsdUserData)((0, viem_1.getViemProvider)(provider, network), network, address, selectedMarket, activeBand, borrowRate, blockNumber); });
207
207
  exports.getCurveUsdUserData = getCurveUsdUserData;
208
- const getCurveUsdFullPositionData = (provider, network, address, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () {
209
- const marketData = yield (0, exports.getCurveUsdGlobalData)(provider, network, selectedMarket);
210
- const positionData = yield (0, exports.getCurveUsdUserData)(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate);
208
+ 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') {
209
+ const marketData = yield (0, exports.getCurveUsdGlobalData)(provider, network, selectedMarket, blockNumber);
210
+ const positionData = yield (0, exports.getCurveUsdUserData)(provider, network, address, selectedMarket, marketData.activeBand, marketData.borrowRate, blockNumber);
211
211
  return positionData;
212
212
  });
213
213
  exports.getCurveUsdFullPositionData = getCurveUsdFullPositionData;
@@ -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
- export declare const _getAllFluidMarketDataPortfolio: (provider: PublicClient, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
228
- export declare const getAllFluidMarketDataPortfolio: (provider: EthereumProvider, network: NetworkNumber) => Promise<Record<string, FluidMarketData>>;
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>>;