@defisaver/positions-sdk 0.0.200 → 0.0.201-fluid-dev-1

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 (135) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/config/contracts.d.ts +43 -0
  5. package/cjs/config/contracts.js +6 -0
  6. package/cjs/contracts.d.ts +1 -0
  7. package/cjs/contracts.js +2 -1
  8. package/cjs/fluid/index.d.ts +39 -0
  9. package/cjs/fluid/index.js +216 -0
  10. package/cjs/helpers/fluidHelpers/index.d.ts +6 -0
  11. package/cjs/helpers/fluidHelpers/index.js +40 -0
  12. package/cjs/helpers/index.d.ts +1 -0
  13. package/cjs/helpers/index.js +2 -1
  14. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  15. package/cjs/index.d.ts +2 -1
  16. package/cjs/index.js +3 -1
  17. package/cjs/markets/aave/marketAssets.js +1 -1
  18. package/cjs/markets/fluid/index.d.ts +176 -0
  19. package/cjs/markets/fluid/index.js +1630 -0
  20. package/cjs/markets/index.d.ts +1 -0
  21. package/cjs/markets/index.js +5 -1
  22. package/cjs/morphoBlue/index.js +1 -2
  23. package/cjs/multicall/index.d.ts +1 -0
  24. package/cjs/multicall/index.js +8 -1
  25. package/cjs/services/utils.d.ts +1 -0
  26. package/cjs/services/utils.js +3 -1
  27. package/cjs/types/contracts/generated/FluidView.d.ts +276 -0
  28. package/cjs/types/contracts/generated/FluidView.js +5 -0
  29. package/cjs/types/contracts/generated/index.d.ts +1 -0
  30. package/cjs/types/fluid.d.ts +236 -0
  31. package/cjs/types/fluid.js +129 -0
  32. package/cjs/types/index.d.ts +1 -0
  33. package/cjs/types/index.js +1 -0
  34. package/esm/config/contracts.d.ts +43 -0
  35. package/esm/config/contracts.js +6 -0
  36. package/esm/contracts.d.ts +1 -0
  37. package/esm/contracts.js +1 -0
  38. package/esm/fluid/index.d.ts +39 -0
  39. package/esm/fluid/index.js +205 -0
  40. package/esm/helpers/fluidHelpers/index.d.ts +6 -0
  41. package/esm/helpers/fluidHelpers/index.js +33 -0
  42. package/esm/helpers/index.d.ts +1 -0
  43. package/esm/helpers/index.js +1 -0
  44. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  45. package/esm/index.d.ts +2 -1
  46. package/esm/index.js +2 -1
  47. package/esm/markets/aave/marketAssets.js +1 -1
  48. package/esm/markets/fluid/index.d.ts +176 -0
  49. package/esm/markets/fluid/index.js +1538 -0
  50. package/esm/markets/index.d.ts +1 -0
  51. package/esm/markets/index.js +1 -0
  52. package/esm/morphoBlue/index.js +1 -2
  53. package/esm/multicall/index.d.ts +1 -0
  54. package/esm/multicall/index.js +6 -0
  55. package/esm/services/utils.d.ts +1 -0
  56. package/esm/services/utils.js +1 -0
  57. package/esm/types/contracts/generated/FluidView.d.ts +276 -0
  58. package/esm/types/contracts/generated/FluidView.js +4 -0
  59. package/esm/types/contracts/generated/index.d.ts +1 -0
  60. package/esm/types/fluid.d.ts +236 -0
  61. package/esm/types/fluid.js +126 -0
  62. package/esm/types/index.d.ts +1 -0
  63. package/esm/types/index.js +1 -0
  64. package/package.json +51 -49
  65. package/src/aaveV2/index.ts +227 -227
  66. package/src/aaveV3/index.ts +625 -625
  67. package/src/assets/index.ts +60 -60
  68. package/src/chickenBonds/index.ts +123 -123
  69. package/src/compoundV2/index.ts +220 -220
  70. package/src/compoundV3/index.ts +291 -291
  71. package/src/config/contracts.js +1115 -1109
  72. package/src/constants/index.ts +6 -6
  73. package/src/contracts.ts +134 -133
  74. package/src/curveUsd/index.ts +229 -229
  75. package/src/eulerV2/index.ts +303 -303
  76. package/src/exchange/index.ts +17 -17
  77. package/src/fluid/index.ts +277 -0
  78. package/src/helpers/aaveHelpers/index.ts +198 -198
  79. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  80. package/src/helpers/compoundHelpers/index.ts +246 -246
  81. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  82. package/src/helpers/eulerHelpers/index.ts +232 -232
  83. package/src/helpers/fluidHelpers/index.ts +54 -0
  84. package/src/helpers/index.ts +11 -10
  85. package/src/helpers/liquityV2Helpers/index.ts +79 -79
  86. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  87. package/src/helpers/makerHelpers/index.ts +94 -94
  88. package/src/helpers/morphoBlueHelpers/index.ts +365 -365
  89. package/src/helpers/sparkHelpers/index.ts +150 -150
  90. package/src/index.ts +52 -50
  91. package/src/liquity/index.ts +116 -116
  92. package/src/liquityV2/index.ts +227 -227
  93. package/src/llamaLend/index.ts +275 -275
  94. package/src/maker/index.ts +117 -117
  95. package/src/markets/aave/index.ts +152 -152
  96. package/src/markets/aave/marketAssets.ts +44 -44
  97. package/src/markets/compound/index.ts +213 -213
  98. package/src/markets/compound/marketsAssets.ts +82 -82
  99. package/src/markets/curveUsd/index.ts +69 -69
  100. package/src/markets/euler/index.ts +26 -26
  101. package/src/markets/fluid/index.ts +1635 -0
  102. package/src/markets/index.ts +25 -24
  103. package/src/markets/liquityV2/index.ts +43 -43
  104. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  105. package/src/markets/llamaLend/index.ts +235 -235
  106. package/src/markets/morphoBlue/index.ts +895 -895
  107. package/src/markets/spark/index.ts +29 -29
  108. package/src/markets/spark/marketAssets.ts +10 -10
  109. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  110. package/src/morphoAaveV2/index.ts +256 -256
  111. package/src/morphoAaveV3/index.ts +631 -631
  112. package/src/morphoBlue/index.ts +202 -204
  113. package/src/multicall/index.ts +32 -23
  114. package/src/services/dsrService.ts +15 -15
  115. package/src/services/priceService.ts +62 -62
  116. package/src/services/utils.ts +59 -57
  117. package/src/setup.ts +8 -8
  118. package/src/spark/index.ts +461 -461
  119. package/src/staking/staking.ts +220 -220
  120. package/src/types/aave.ts +271 -271
  121. package/src/types/chickenBonds.ts +45 -45
  122. package/src/types/common.ts +84 -84
  123. package/src/types/compound.ts +131 -131
  124. package/src/types/contracts/generated/FluidView.ts +317 -0
  125. package/src/types/contracts/generated/index.ts +1 -0
  126. package/src/types/curveUsd.ts +118 -118
  127. package/src/types/euler.ts +171 -171
  128. package/src/types/fluid.ts +251 -0
  129. package/src/types/index.ts +12 -11
  130. package/src/types/liquity.ts +30 -30
  131. package/src/types/liquityV2.ts +118 -118
  132. package/src/types/llamaLend.ts +155 -155
  133. package/src/types/maker.ts +50 -50
  134. package/src/types/morphoBlue.ts +192 -192
  135. package/src/types/spark.ts +131 -131
@@ -6,3 +6,4 @@ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
7
  export { LiquityV2Markets } from './liquityV2';
8
8
  export { EulerV2Markets } from './euler';
9
+ export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById } from './fluid';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EulerV2Markets = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
3
+ exports.getFluidMarketInfoById = exports.getFluidVersionsDataForNetwork = exports.FluidMarkets = exports.EulerV2Markets = exports.LiquityV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
4
4
  var aave_1 = require("./aave");
5
5
  Object.defineProperty(exports, "AaveMarkets", { enumerable: true, get: function () { return aave_1.AaveMarkets; } });
6
6
  Object.defineProperty(exports, "aaveV1AssetsDefaultMarket", { enumerable: true, get: function () { return aave_1.aaveV1AssetsDefaultMarket; } });
@@ -30,3 +30,7 @@ var liquityV2_1 = require("./liquityV2");
30
30
  Object.defineProperty(exports, "LiquityV2Markets", { enumerable: true, get: function () { return liquityV2_1.LiquityV2Markets; } });
31
31
  var euler_1 = require("./euler");
32
32
  Object.defineProperty(exports, "EulerV2Markets", { enumerable: true, get: function () { return euler_1.EulerV2Markets; } });
33
+ var fluid_1 = require("./fluid");
34
+ Object.defineProperty(exports, "FluidMarkets", { enumerable: true, get: function () { return fluid_1.FluidMarkets; } });
35
+ Object.defineProperty(exports, "getFluidVersionsDataForNetwork", { enumerable: true, get: function () { return fluid_1.getFluidVersionsDataForNetwork; } });
36
+ Object.defineProperty(exports, "getFluidMarketInfoById", { enumerable: true, get: function () { return fluid_1.getFluidMarketInfoById; } });
@@ -22,7 +22,6 @@ const staking_1 = require("../staking");
22
22
  const utils_1 = require("../services/utils");
23
23
  const morphoBlueHelpers_1 = require("../helpers/morphoBlueHelpers");
24
24
  const priceService_1 = require("../services/priceService");
25
- const isMainnetNetwork = (network) => network === common_1.NetworkNumber.Eth;
26
25
  function getMorphoBlueMarketData(web3, network, selectedMarket, mainnetWeb3) {
27
26
  return __awaiter(this, void 0, void 0, function* () {
28
27
  const { loanToken, collateralToken, oracle, irm, lltv, oracleType, } = selectedMarket;
@@ -34,7 +33,7 @@ function getMorphoBlueMarketData(web3, network, selectedMarket, mainnetWeb3) {
34
33
  let marketInfo;
35
34
  let loanTokenPrice;
36
35
  const isTokenUSDA = loanTokenInfo.symbol === 'USDA';
37
- const isMainnet = isMainnetNetwork(network);
36
+ const isMainnet = (0, utils_1.isMainnetNetwork)(network);
38
37
  if (isMainnet) {
39
38
  const feedRegistryContract = (0, contracts_1.FeedRegistryContract)(mainnetWeb3, common_1.NetworkNumber.Eth);
40
39
  const [_loanTokenPrice, _marketInfo] = yield Promise.all([
@@ -1,3 +1,4 @@
1
1
  import Web3 from 'web3';
2
2
  import { NetworkNumber } from '../types/common';
3
3
  export declare const multicall: (calls: any[], web3: Web3, network?: NetworkNumber, blockNumber?: 'latest' | number) => Promise<any[]>;
4
+ export declare const chunkAndMulticall: (calls: any[], chunkSize: number, blockNumber: number | "latest" | undefined, web3: Web3, network?: NetworkNumber) => Promise<any[]>;
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.multicall = void 0;
12
+ exports.chunkAndMulticall = exports.multicall = void 0;
13
+ const lodash_1 = require("lodash");
13
14
  const contracts_1 = require("../contracts");
14
15
  const common_1 = require("../types/common");
15
16
  const multicall = (calls, web3, network = common_1.NetworkNumber.Eth, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
@@ -29,3 +30,9 @@ const multicall = (calls, web3, network = common_1.NetworkNumber.Eth, blockNumbe
29
30
  return formattedResult;
30
31
  });
31
32
  exports.multicall = multicall;
33
+ const chunkAndMulticall = (calls, chunkSize, blockNumber = 'latest', web3, network = common_1.NetworkNumber.Eth) => __awaiter(void 0, void 0, void 0, function* () {
34
+ const chunkedCalls = (0, lodash_1.chunk)(calls, chunkSize);
35
+ const results = yield Promise.all(chunkedCalls.map((cnk) => (0, exports.multicall)(cnk, web3, network, blockNumber)));
36
+ return results.flat(1);
37
+ });
38
+ exports.chunkAndMulticall = chunkAndMulticall;
@@ -22,3 +22,4 @@ export declare const mapRange: (input: number | string, minInput: number | strin
22
22
  export declare const isEnabledOnBitmap: (bitmap: number, assetId: number) => bigint;
23
23
  export declare const MAXUINT: string;
24
24
  export declare const isMaxuint: (amount: string) => boolean;
25
+ export declare const isMainnetNetwork: (network: NetworkNumber) => boolean;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.wethToEth = exports.ethToWeth = exports.addToObjectIf = exports.isLayer2Network = void 0;
6
+ exports.isMainnetNetwork = exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.wethToEth = exports.ethToWeth = exports.addToObjectIf = exports.isLayer2Network = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const tokens_1 = require("@defisaver/tokens");
9
9
  const common_1 = require("../types/common");
@@ -59,3 +59,5 @@ exports.isEnabledOnBitmap = isEnabledOnBitmap;
59
59
  exports.MAXUINT = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
60
60
  const isMaxuint = (amount) => (0, exports.compareAddresses)(exports.MAXUINT, amount);
61
61
  exports.isMaxuint = isMaxuint;
62
+ const isMainnetNetwork = (network) => network === common_1.NetworkNumber.Eth;
63
+ exports.isMainnetNetwork = isMainnetNetwork;
@@ -0,0 +1,276 @@
1
+ /// <reference types="node" />
2
+ import type BN from "bn.js";
3
+ import type { ContractOptions } from "web3-eth-contract";
4
+ import type { EventLog } from "web3-core";
5
+ import type { EventEmitter } from "events";
6
+ import type { Callback, NonPayableTransactionObject, BlockType, BaseContract } from "./types";
7
+ export interface EventOptions {
8
+ filter?: object;
9
+ fromBlock?: BlockType;
10
+ topics?: string[];
11
+ }
12
+ export declare namespace FluidView {
13
+ type UserPositionStruct = [
14
+ number | string | BN,
15
+ string,
16
+ boolean,
17
+ boolean,
18
+ number | string | BN,
19
+ number | string | BN,
20
+ number | string | BN,
21
+ number | string | BN,
22
+ number | string | BN
23
+ ] | {
24
+ nftId: number | string | BN;
25
+ owner: string;
26
+ isLiquidated: boolean;
27
+ isSupplyPosition: boolean;
28
+ supply: number | string | BN;
29
+ borrow: number | string | BN;
30
+ ratio: number | string | BN;
31
+ tick: number | string | BN;
32
+ tickId: number | string | BN;
33
+ };
34
+ type UserPositionStructOutputArray = [
35
+ string,
36
+ string,
37
+ boolean,
38
+ boolean,
39
+ string,
40
+ string,
41
+ string,
42
+ string,
43
+ string
44
+ ];
45
+ type UserPositionStructOutputStruct = {
46
+ nftId: string;
47
+ owner: string;
48
+ isLiquidated: boolean;
49
+ isSupplyPosition: boolean;
50
+ supply: string;
51
+ borrow: string;
52
+ ratio: string;
53
+ tick: string;
54
+ tickId: string;
55
+ };
56
+ type UserPositionStructOutput = UserPositionStructOutputArray & UserPositionStructOutputStruct;
57
+ type VaultDataStruct = [
58
+ string,
59
+ number | string | BN,
60
+ number | string | BN,
61
+ boolean,
62
+ boolean,
63
+ string,
64
+ string,
65
+ string,
66
+ string,
67
+ number | string | BN,
68
+ number | string | BN,
69
+ number | string | BN,
70
+ number | string | BN,
71
+ number | string | BN,
72
+ number | string | BN,
73
+ number | string | BN,
74
+ number | string | BN,
75
+ number | string | BN,
76
+ number | string | BN,
77
+ string,
78
+ number | string | BN,
79
+ number | string | BN,
80
+ number | string | BN,
81
+ number | string | BN,
82
+ number | string | BN,
83
+ number | string | BN,
84
+ number | string | BN,
85
+ number | string | BN,
86
+ number | string | BN,
87
+ number | string | BN,
88
+ number | string | BN,
89
+ number | string | BN,
90
+ number | string | BN,
91
+ number | string | BN,
92
+ number | string | BN,
93
+ number | string | BN,
94
+ number | string | BN,
95
+ number | string | BN,
96
+ number | string | BN,
97
+ number | string | BN,
98
+ number | string | BN,
99
+ number | string | BN,
100
+ number | string | BN,
101
+ number | string | BN,
102
+ number | string | BN,
103
+ number | string | BN
104
+ ] | {
105
+ vault: string;
106
+ vaultId: number | string | BN;
107
+ vaultType: number | string | BN;
108
+ isSmartColl: boolean;
109
+ isSmartDebt: boolean;
110
+ supplyToken0: string;
111
+ supplyToken1: string;
112
+ borrowToken0: string;
113
+ borrowToken1: string;
114
+ supplyToken0Decimals: number | string | BN;
115
+ supplyToken1Decimals: number | string | BN;
116
+ borrowToken0Decimals: number | string | BN;
117
+ borrowToken1Decimals: number | string | BN;
118
+ collateralFactor: number | string | BN;
119
+ liquidationThreshold: number | string | BN;
120
+ liquidationMaxLimit: number | string | BN;
121
+ withdrawalGap: number | string | BN;
122
+ liquidationPenalty: number | string | BN;
123
+ borrowFee: number | string | BN;
124
+ oracle: string;
125
+ oraclePriceOperate: number | string | BN;
126
+ oraclePriceLiquidate: number | string | BN;
127
+ vaultSupplyExchangePrice: number | string | BN;
128
+ vaultBorrowExchangePrice: number | string | BN;
129
+ supplyRateVault: number | string | BN;
130
+ borrowRateVault: number | string | BN;
131
+ rewardsOrFeeRateSupply: number | string | BN;
132
+ rewardsOrFeeRateBorrow: number | string | BN;
133
+ totalPositions: number | string | BN;
134
+ totalSupplyVault: number | string | BN;
135
+ totalBorrowVault: number | string | BN;
136
+ withdrawalLimit: number | string | BN;
137
+ withdrawableUntilLimit: number | string | BN;
138
+ withdrawable: number | string | BN;
139
+ baseWithdrawalLimit: number | string | BN;
140
+ withdrawExpandPercent: number | string | BN;
141
+ withdrawExpandDuration: number | string | BN;
142
+ borrowLimit: number | string | BN;
143
+ borrowableUntilLimit: number | string | BN;
144
+ borrowable: number | string | BN;
145
+ borrowLimitUtilization: number | string | BN;
146
+ maxBorrowLimit: number | string | BN;
147
+ borrowExpandPercent: number | string | BN;
148
+ borrowExpandDuration: number | string | BN;
149
+ baseBorrowLimit: number | string | BN;
150
+ minimumBorrowing: number | string | BN;
151
+ };
152
+ type VaultDataStructOutputArray = [
153
+ string,
154
+ string,
155
+ string,
156
+ boolean,
157
+ boolean,
158
+ string,
159
+ string,
160
+ string,
161
+ string,
162
+ string,
163
+ string,
164
+ string,
165
+ string,
166
+ string,
167
+ string,
168
+ string,
169
+ string,
170
+ string,
171
+ string,
172
+ string,
173
+ string,
174
+ string,
175
+ string,
176
+ string,
177
+ string,
178
+ string,
179
+ string,
180
+ string,
181
+ string,
182
+ string,
183
+ string,
184
+ string,
185
+ string,
186
+ string,
187
+ string,
188
+ string,
189
+ string,
190
+ string,
191
+ string,
192
+ string,
193
+ string,
194
+ string,
195
+ string,
196
+ string,
197
+ string,
198
+ string
199
+ ];
200
+ type VaultDataStructOutputStruct = {
201
+ vault: string;
202
+ vaultId: string;
203
+ vaultType: string;
204
+ isSmartColl: boolean;
205
+ isSmartDebt: boolean;
206
+ supplyToken0: string;
207
+ supplyToken1: string;
208
+ borrowToken0: string;
209
+ borrowToken1: string;
210
+ supplyToken0Decimals: string;
211
+ supplyToken1Decimals: string;
212
+ borrowToken0Decimals: string;
213
+ borrowToken1Decimals: string;
214
+ collateralFactor: string;
215
+ liquidationThreshold: string;
216
+ liquidationMaxLimit: string;
217
+ withdrawalGap: string;
218
+ liquidationPenalty: string;
219
+ borrowFee: string;
220
+ oracle: string;
221
+ oraclePriceOperate: string;
222
+ oraclePriceLiquidate: string;
223
+ vaultSupplyExchangePrice: string;
224
+ vaultBorrowExchangePrice: string;
225
+ supplyRateVault: string;
226
+ borrowRateVault: string;
227
+ rewardsOrFeeRateSupply: string;
228
+ rewardsOrFeeRateBorrow: string;
229
+ totalPositions: string;
230
+ totalSupplyVault: string;
231
+ totalBorrowVault: string;
232
+ withdrawalLimit: string;
233
+ withdrawableUntilLimit: string;
234
+ withdrawable: string;
235
+ baseWithdrawalLimit: string;
236
+ withdrawExpandPercent: string;
237
+ withdrawExpandDuration: string;
238
+ borrowLimit: string;
239
+ borrowableUntilLimit: string;
240
+ borrowable: string;
241
+ borrowLimitUtilization: string;
242
+ maxBorrowLimit: string;
243
+ borrowExpandPercent: string;
244
+ borrowExpandDuration: string;
245
+ baseBorrowLimit: string;
246
+ minimumBorrowing: string;
247
+ };
248
+ type VaultDataStructOutput = VaultDataStructOutputArray & VaultDataStructOutputStruct;
249
+ }
250
+ export interface FluidView extends BaseContract {
251
+ constructor(jsonInterface: any[], address?: string, options?: ContractOptions): FluidView;
252
+ clone(): FluidView;
253
+ methods: {
254
+ getPositionByNftId(_nftId: number | string | BN): NonPayableTransactionObject<[
255
+ FluidView.UserPositionStructOutput,
256
+ FluidView.VaultDataStructOutput
257
+ ] & {
258
+ position: FluidView.UserPositionStructOutput;
259
+ vault: FluidView.VaultDataStructOutput;
260
+ }>;
261
+ getRatio(_nftId: number | string | BN): NonPayableTransactionObject<string>;
262
+ getUserNftIds(_user: string): NonPayableTransactionObject<string[]>;
263
+ getUserPositions(_user: string): NonPayableTransactionObject<[
264
+ FluidView.UserPositionStructOutput[],
265
+ FluidView.VaultDataStructOutput[]
266
+ ] & {
267
+ positions: FluidView.UserPositionStructOutput[];
268
+ vaults: FluidView.VaultDataStructOutput[];
269
+ }>;
270
+ getVaultAddresses(_ids: number | string | BN[], _fetchAll: boolean): NonPayableTransactionObject<string[]>;
271
+ getVaultData(_vault: string): NonPayableTransactionObject<FluidView.VaultDataStructOutput>;
272
+ };
273
+ events: {
274
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
275
+ };
276
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -29,6 +29,7 @@ export type { ETHPriceFeed } from "./ETHPriceFeed";
29
29
  export type { Erc20 } from "./Erc20";
30
30
  export type { EulerV2View } from "./EulerV2View";
31
31
  export type { FeedRegistry } from "./FeedRegistry";
32
+ export type { FluidView } from "./FluidView";
32
33
  export type { GHO } from "./GHO";
33
34
  export type { GhoDiscountRateStrategy } from "./GhoDiscountRateStrategy";
34
35
  export type { IAToken } from "./IAToken";
@@ -0,0 +1,236 @@
1
+ import { NetworkNumber } from './common';
2
+ export interface FluidMarketInfo {
3
+ chainIds: number[];
4
+ label: string;
5
+ shortLabel: string;
6
+ value: FluidVersions;
7
+ url: string;
8
+ id?: number;
9
+ marketAddress: string;
10
+ hasSmartCollateral: boolean;
11
+ hasSmartDebt: boolean;
12
+ collateralAsset: string;
13
+ debtAsset: string;
14
+ ethBased?: boolean;
15
+ btcBased?: boolean;
16
+ wstETHBased?: boolean;
17
+ type: FluidVaultType;
18
+ }
19
+ export declare enum FluidMainnetVersion {
20
+ ETH_USDC_1 = "ETH_USDC_1",
21
+ ETH_USDT_2 = "ETH_USDT_2",
22
+ WSTETH_ETH_3 = "WSTETH_ETH_3",
23
+ WSTETH_USDC_4 = "WSTETH_USDC_4",
24
+ WSTETH_USDT_5 = "WSTETH_USDT_5",
25
+ WEETH_WSTETH_6 = "WEETH_WSTETH_6",
26
+ SUSDE_USDC_7 = "SUSDE_USDC_7",
27
+ SUSDE_USDT_8 = "SUSDE_USDT_8",
28
+ WEETH_USDC_9 = "WEETH_USDC_9",
29
+ WEETH_USDT_10 = "WEETH_USDT_10",
30
+ ETH_USDC_11 = "ETH_USDC_11",
31
+ ETH_USDT_12 = "ETH_USDT_12",
32
+ WSTETH_ETH_13 = "WSTETH_ETH_13",
33
+ WSTETH_USDC_14 = "WSTETH_USDC_14",
34
+ WSTETH_USDT_15 = "WSTETH_USDT_15",
35
+ WEETH_WSTETH_16 = "WEETH_WSTETH_16",
36
+ SUSDE_USDC_17 = "SUSDE_USDC_17",
37
+ SUSDE_USDT_18 = "SUSDE_USDT_18",
38
+ WEETH_USDC_19 = "WEETH_USDC_19",
39
+ WEETH_USDT_20 = "WEETH_USDT_20",
40
+ WBTC_USDC_21 = "WBTC_USDC_21",
41
+ WBTC_USDT_22 = "WBTC_USDT_22",
42
+ WBTC_ETH_23 = "WBTC_ETH_23",
43
+ ETH_WBTC_24 = "ETH_WBTC_24",
44
+ WSTETH_WBTC_25 = "WSTETH_WBTC_25",
45
+ WEETH_WBTC_26 = "WEETH_WBTC_26",
46
+ WEETHS_WSTETH_27 = "WEETHS_WSTETH_27",
47
+ CBBTC_ETH_28 = "CBBTC_ETH_28",
48
+ CBBTC_USDC_29 = "CBBTC_USDC_29",
49
+ CBBTC_USDT_30 = "CBBTC_USDT_30",
50
+ ETH_CBBTC_31 = "ETH_CBBTC_31",
51
+ WEETH_CBBTC_32 = "WEETH_CBBTC_32",
52
+ WSTETH_CBBTC_33 = "WSTETH_CBBTC_33",
53
+ WSTETH_ETH_WSTETH_ETH_44 = "WSTETH_ETH_WSTETH_ETH_44",
54
+ ETH_USDC_USDT_45 = "ETH_USDC_USDT_45",
55
+ WSTETH_USDC_USDT_46 = "WSTETH_USDC_USDT_46",
56
+ WEETH_USDC_USDT_47 = "WEETH_USDC_USDT_47",
57
+ WBTC_USDC_USDT_48 = "WBTC_USDC_USDT_48",
58
+ CBBTC_USDC_USDT_49 = "CBBTC_USDC_USDT_49",
59
+ SUSDE_USDC_USDT_50 = "SUSDE_USDC_USDT_50",
60
+ WBTC_CBBTC_WBTC_CBBTC_51 = "WBTC_CBBTC_WBTC_CBBTC_51",
61
+ WBTC_CBBTC_USDC_52 = "WBTC_CBBTC_USDC_52",
62
+ WBTC_CBBTC_USDT_53 = "WBTC_CBBTC_USDT_53",
63
+ ETH_GHO_54 = "ETH_GHO_54",
64
+ WSTETH_GHO_55 = "WSTETH_GHO_55",
65
+ SUSDE_GHO_56 = "SUSDE_GHO_56",
66
+ WEETH_GHO_57 = "WEETH_GHO_57",
67
+ SUSDS_GHO_58 = "SUSDS_GHO_58",
68
+ WBTC_GHO_59 = "WBTC_GHO_59",
69
+ CBBTC_GHO_60 = "CBBTC_GHO_60",
70
+ GHO_USDC_GHO_USDC_61 = "GHO_USDC_GHO_USDC_61",
71
+ WEETH_ETH_WSTETH_74 = "WEETH_ETH_WSTETH_74",
72
+ USDC_ETH_USDC_ETH_77 = "USDC_ETH_USDC_ETH_77",
73
+ RSETH_ETH_WSTETH_78 = "RSETH_ETH_WSTETH_78",
74
+ RSETH_WSTETH_79 = "RSETH_WSTETH_79",
75
+ WEETHS_ETH_WSTETH_80 = "WEETHS_ETH_WSTETH_80"
76
+ }
77
+ export declare enum FluidArbitrumVersion {
78
+ ETH_USDC_1_ARB = "ETH_USDC_1_ARB",
79
+ ETH_USDT_2_ARB = "ETH_USDT_2_ARB",
80
+ WSTETH_USDC_3_ARB = "WSTETH_USDC_3_ARB",
81
+ WSTETH_USDT_4_ARB = "WSTETH_USDT_4_ARB",
82
+ WSTETH_ETH_5_ARB = "WSTETH_ETH_5_ARB",
83
+ WEETH_WSTETH_6_ARB = "WEETH_WSTETH_6_ARB",
84
+ WEETH_USDC_7_ARB = "WEETH_USDC_7_ARB",
85
+ WEETH_USDT_8_ARB = "WEETH_USDT_8_ARB",
86
+ ETH_ARB_9_ARB = "ETH_ARB_9_ARB",
87
+ ARB_USDC_10_ARB = "ARB_USDC_10_ARB",
88
+ ARB_USDT_11_ARB = "ARB_USDT_11_ARB",
89
+ WSTETH_ETH_WSTETH_ETH_16_ARB = "WSTETH_ETH_WSTETH_ETH_16_ARB",
90
+ WEETH_ETH_WSTETH_17_ARB = "WEETH_ETH_WSTETH_17_ARB"
91
+ }
92
+ export declare enum FluidBaseVersions {
93
+ ETH_USDC_1_BASE = "ETH_USDC_1_BASE",
94
+ WSTETH_USDC_2_BASE = "WSTETH_USDC_2_BASE",
95
+ WSTETH_ETH_3_BASE = "WSTETH_ETH_3_BASE",
96
+ WEETH_WSTETH_4_BASE = "WEETH_WSTETH_4_BASE",
97
+ WEETH_USDC_5_BASE = "WEETH_USDC_5_BASE",
98
+ CBETH_USDC_6_BASE = "CBETH_USDC_6_BASE",
99
+ CBBTC_USDC_7_BASE = "CBBTC_USDC_7_BASE",
100
+ CBBTC_EURC_8_BASE = "CBBTC_EURC_8_BASE",
101
+ CBETH_EURC_9_BASE = "CBETH_EURC_9_BASE",
102
+ ETH_EURC_10_BASE = "ETH_EURC_10_BASE",
103
+ WEETH_EURC_11_BASE = "WEETH_EURC_11_BASE",
104
+ WSTETH_EURC_12_BASE = "WSTETH_EURC_12_BASE",
105
+ CBBTC_ETH_13_BASE = "CBBTC_ETH_13_BASE",
106
+ ETH_CBBTC_14_BASE = "ETH_CBBTC_14_BASE",
107
+ WEETH_CBBTC_15_BASE = "WEETH_CBBTC_15_BASE",
108
+ WSTETH_CBBTC_16_BASE = "WSTETH_CBBTC_16_BASE"
109
+ }
110
+ export type FluidVersions = FluidArbitrumVersion | FluidBaseVersions | FluidMainnetVersion;
111
+ export declare enum FluidMainnetDepositToken {
112
+ ETH = "ETH",
113
+ wstETH = "wstETH",
114
+ USDC = "USDC",
115
+ USDT = "USDT",
116
+ GHO = "GHO"
117
+ }
118
+ export declare enum FluidArbitrumDepositToken {
119
+ ETH = "ETH",
120
+ wstETH = "wstETH",
121
+ USDC = "USDC",
122
+ USDT = "USDT",
123
+ ARB = "ARB"
124
+ }
125
+ export declare enum FluidBaseDepositToken {
126
+ ETH = "ETH",
127
+ USDC = "USDC",
128
+ wstETH = "wstETH",
129
+ EURC = "EURC"
130
+ }
131
+ export type FluidDepositTokenByNetwork = {
132
+ [NetworkNumber.Eth]: FluidMainnetDepositToken;
133
+ [NetworkNumber.Arb]: FluidArbitrumDepositToken;
134
+ [NetworkNumber.Base]: FluidBaseDepositToken;
135
+ };
136
+ export declare enum FluidVaultType {
137
+ T1 = "T1",
138
+ T2 = "T2",
139
+ T3 = "T3",
140
+ T4 = "T4",
141
+ Unknown = "Unknown"
142
+ }
143
+ export interface FluidAssetData {
144
+ symbol: string;
145
+ address: string;
146
+ price: string;
147
+ incentiveSupplyApy?: string;
148
+ incentiveSupplyToken?: string;
149
+ totalSupply: string;
150
+ totalBorrow: string;
151
+ canBeSupplied: boolean;
152
+ canBeBorrowed: boolean;
153
+ supplyRate: string;
154
+ borrowRate: string;
155
+ }
156
+ export type FluidAssetsData = {
157
+ [key: string]: FluidAssetData;
158
+ };
159
+ export interface InnerFluidMarketData {
160
+ vaultId: number;
161
+ isSmartColl: boolean;
162
+ isSmartDebt: boolean;
163
+ marketAddress: string;
164
+ vaultType: FluidVaultType;
165
+ vaultValue?: FluidVersions;
166
+ oracle: string;
167
+ liquidationPenaltyPercent: string;
168
+ collFactor: string;
169
+ liquidationRatio: string;
170
+ liqFactor: string;
171
+ minRatio: string;
172
+ collAsset0: string;
173
+ collAsset1?: string;
174
+ debtAsset0: string;
175
+ debtAsset1?: string;
176
+ totalPositions: string;
177
+ totalSupplyVault: string;
178
+ totalSupplyVaultUsd: string;
179
+ totalBorrowVault: string;
180
+ totalBorrowVaultUsd: string;
181
+ withdrawalLimit: string;
182
+ withdrawableUntilLimit: string;
183
+ withdrawable: string;
184
+ borrowLimit: string;
185
+ borrowableUntilLimit: string;
186
+ borrowable: string;
187
+ borrowLimitUtilization: string;
188
+ maxBorrowLimit: string;
189
+ baseBorrowLimit: string;
190
+ minimumBorrowing: string;
191
+ supplyRate: string;
192
+ borrowRate: string;
193
+ }
194
+ export interface FluidMarketData {
195
+ assetsData: FluidAssetsData;
196
+ marketData: InnerFluidMarketData;
197
+ }
198
+ export interface FluidUsedAsset {
199
+ symbol: string;
200
+ collateral?: boolean;
201
+ supplied: string;
202
+ suppliedUsd: string;
203
+ borrowed: string;
204
+ borrowedUsd: string;
205
+ isSupplied: boolean;
206
+ isBorrowed: boolean;
207
+ }
208
+ export type FluidUsedAssets = {
209
+ [key: string]: FluidUsedAsset;
210
+ };
211
+ export interface FluidAggregatedVaultData {
212
+ suppliedUsd: string;
213
+ borrowedUsd: string;
214
+ borrowLimitUsd: string;
215
+ liquidationLimitUsd: string;
216
+ leftToBorrowUsd: string;
217
+ netApy: string;
218
+ incentiveUsd: string;
219
+ ratio: string;
220
+ collRatio: string;
221
+ minRatio: string;
222
+ totalInterestUsd: string;
223
+ leveragedType?: string;
224
+ leveragedAsset?: string;
225
+ liquidationPrice?: string;
226
+ leveragedLsdAssetRatio?: string;
227
+ }
228
+ export interface BaseFluidVaultData {
229
+ owner: string;
230
+ vaultId: number;
231
+ usedAssets: FluidUsedAssets;
232
+ isSubscribedToAutomation: boolean;
233
+ automationResubscribeRequired: boolean;
234
+ lastUpdated: number;
235
+ }
236
+ export type FluidVaultData = FluidAggregatedVaultData & BaseFluidVaultData;