@defisaver/positions-sdk 0.0.201-fluid-dev → 0.0.201-fluid-dev-2
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/config/contracts.d.ts +11 -5
- package/cjs/config/contracts.js +4 -2
- package/cjs/fluid/index.d.ts +1 -0
- package/cjs/fluid/index.js +65 -12
- package/cjs/markets/fluid/index.d.ts +8 -10
- package/cjs/markets/fluid/index.js +466 -77
- package/cjs/markets/index.d.ts +1 -1
- package/cjs/markets/index.js +3 -1
- package/cjs/morphoBlue/index.js +1 -2
- package/cjs/multicall/index.d.ts +1 -0
- package/cjs/multicall/index.js +8 -1
- package/cjs/services/utils.d.ts +1 -0
- package/cjs/services/utils.js +3 -1
- package/cjs/types/contracts/generated/FluidView.d.ts +125 -41
- package/cjs/types/fluid.d.ts +16 -1
- package/cjs/types/fluid.js +3 -0
- package/esm/config/contracts.d.ts +11 -5
- package/esm/config/contracts.js +4 -2
- package/esm/fluid/index.d.ts +1 -0
- package/esm/fluid/index.js +65 -13
- package/esm/markets/fluid/index.d.ts +8 -10
- package/esm/markets/fluid/index.js +460 -71
- package/esm/markets/index.d.ts +1 -1
- package/esm/markets/index.js +1 -1
- package/esm/morphoBlue/index.js +1 -2
- package/esm/multicall/index.d.ts +1 -0
- package/esm/multicall/index.js +6 -0
- package/esm/services/utils.d.ts +1 -0
- package/esm/services/utils.js +1 -0
- package/esm/types/contracts/generated/FluidView.d.ts +125 -41
- package/esm/types/fluid.d.ts +16 -1
- package/esm/types/fluid.js +3 -0
- package/package.json +5 -3
- package/src/config/contracts.js +4 -2
- package/src/fluid/index.ts +69 -12
- package/src/markets/fluid/index.ts +467 -74
- package/src/markets/index.ts +1 -1
- package/src/morphoBlue/index.ts +1 -3
- package/src/multicall/index.ts +10 -1
- package/src/services/utils.ts +3 -1
- package/src/types/contracts/generated/FluidView.ts +159 -79
- package/src/types/fluid.ts +15 -0
package/src/markets/index.ts
CHANGED
|
@@ -22,4 +22,4 @@ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
|
|
|
22
22
|
export { LlamaLendMarkets } from './llamaLend';
|
|
23
23
|
export { LiquityV2Markets } from './liquityV2';
|
|
24
24
|
export { EulerV2Markets } from './euler';
|
|
25
|
-
export { FluidMarkets } from './fluid';
|
|
25
|
+
export { FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById } from './fluid';
|
package/src/morphoBlue/index.ts
CHANGED
|
@@ -10,14 +10,12 @@ import {
|
|
|
10
10
|
} from '../types';
|
|
11
11
|
import { USD_QUOTE, WAD } from '../constants';
|
|
12
12
|
import { getStakingApy, STAKING_ASSETS } from '../staking';
|
|
13
|
-
import { wethToEth } from '../services/utils';
|
|
13
|
+
import { isMainnetNetwork, wethToEth } from '../services/utils';
|
|
14
14
|
import {
|
|
15
15
|
getBorrowRate, getMorphoBlueAggregatedPositionData, getRewardsForMarket, getSupplyRate,
|
|
16
16
|
} from '../helpers/morphoBlueHelpers';
|
|
17
17
|
import { getChainlinkAssetAddress } from '../services/priceService';
|
|
18
18
|
|
|
19
|
-
const isMainnetNetwork = (network: NetworkNumber) => network === NetworkNumber.Eth;
|
|
20
|
-
|
|
21
19
|
export async function getMorphoBlueMarketData(web3: Web3, network: NetworkNumber, selectedMarket: MorphoBlueMarketData, mainnetWeb3: Web3): Promise<MorphoBlueMarketInfo> {
|
|
22
20
|
const {
|
|
23
21
|
loanToken, collateralToken, oracle, irm, lltv, oracleType,
|
package/src/multicall/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Web3 from 'web3';
|
|
2
|
+
import { chunk } from 'lodash';
|
|
2
3
|
import { UniMulticallContract } from '../contracts';
|
|
3
4
|
import { NetworkNumber } from '../types/common';
|
|
4
5
|
|
|
@@ -20,4 +21,12 @@ export const multicall = async (calls: any[], web3: Web3, network: NetworkNumber
|
|
|
20
21
|
});
|
|
21
22
|
|
|
22
23
|
return formattedResult;
|
|
23
|
-
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const chunkAndMulticall = async (calls: any[], chunkSize: number, blockNumber: 'latest' | number = 'latest', web3: Web3, network: NetworkNumber = NetworkNumber.Eth) => {
|
|
27
|
+
const chunkedCalls = chunk(calls, chunkSize);
|
|
28
|
+
|
|
29
|
+
const results = await Promise.all(chunkedCalls.map((cnk) => multicall(cnk, web3, network, blockNumber)));
|
|
30
|
+
|
|
31
|
+
return results.flat(1);
|
|
32
|
+
};
|
package/src/services/utils.ts
CHANGED
|
@@ -54,4 +54,6 @@ export const isEnabledOnBitmap = (bitmap: number, assetId: number) => (BigInt(bi
|
|
|
54
54
|
|
|
55
55
|
export const MAXUINT:string = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
|
|
56
56
|
|
|
57
|
-
export const isMaxuint = (amount: string) => compareAddresses(MAXUINT, amount);
|
|
57
|
+
export const isMaxuint = (amount: string) => compareAddresses(MAXUINT, amount);
|
|
58
|
+
|
|
59
|
+
export const isMainnetNetwork = (network: NetworkNumber) => network === NetworkNumber.Eth;
|
|
@@ -22,6 +22,112 @@ export interface EventOptions {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export declare namespace FluidView {
|
|
25
|
+
export type FTokenDataStruct =
|
|
26
|
+
| [
|
|
27
|
+
string,
|
|
28
|
+
boolean,
|
|
29
|
+
string,
|
|
30
|
+
string,
|
|
31
|
+
number | string | BN,
|
|
32
|
+
string,
|
|
33
|
+
number | string | BN,
|
|
34
|
+
number | string | BN,
|
|
35
|
+
number | string | BN,
|
|
36
|
+
number | string | BN,
|
|
37
|
+
number | string | BN,
|
|
38
|
+
number | string | BN,
|
|
39
|
+
number | string | BN,
|
|
40
|
+
boolean,
|
|
41
|
+
number | string | BN,
|
|
42
|
+
number | string | BN
|
|
43
|
+
]
|
|
44
|
+
| {
|
|
45
|
+
tokenAddress: string;
|
|
46
|
+
isNativeUnderlying: boolean;
|
|
47
|
+
name: string;
|
|
48
|
+
symbol: string;
|
|
49
|
+
decimals: number | string | BN;
|
|
50
|
+
asset: string;
|
|
51
|
+
totalAssets: number | string | BN;
|
|
52
|
+
totalSupply: number | string | BN;
|
|
53
|
+
convertToShares: number | string | BN;
|
|
54
|
+
convertToAssets: number | string | BN;
|
|
55
|
+
rewardsRate: number | string | BN;
|
|
56
|
+
supplyRate: number | string | BN;
|
|
57
|
+
withdrawable: number | string | BN;
|
|
58
|
+
modeWithInterest: boolean;
|
|
59
|
+
expandPercent: number | string | BN;
|
|
60
|
+
expandDuration: number | string | BN;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export type FTokenDataStructOutputArray = [
|
|
64
|
+
string,
|
|
65
|
+
boolean,
|
|
66
|
+
string,
|
|
67
|
+
string,
|
|
68
|
+
string,
|
|
69
|
+
string,
|
|
70
|
+
string,
|
|
71
|
+
string,
|
|
72
|
+
string,
|
|
73
|
+
string,
|
|
74
|
+
string,
|
|
75
|
+
string,
|
|
76
|
+
string,
|
|
77
|
+
boolean,
|
|
78
|
+
string,
|
|
79
|
+
string
|
|
80
|
+
];
|
|
81
|
+
export type FTokenDataStructOutputStruct = {
|
|
82
|
+
tokenAddress: string;
|
|
83
|
+
isNativeUnderlying: boolean;
|
|
84
|
+
name: string;
|
|
85
|
+
symbol: string;
|
|
86
|
+
decimals: string;
|
|
87
|
+
asset: string;
|
|
88
|
+
totalAssets: string;
|
|
89
|
+
totalSupply: string;
|
|
90
|
+
convertToShares: string;
|
|
91
|
+
convertToAssets: string;
|
|
92
|
+
rewardsRate: string;
|
|
93
|
+
supplyRate: string;
|
|
94
|
+
withdrawable: string;
|
|
95
|
+
modeWithInterest: boolean;
|
|
96
|
+
expandPercent: string;
|
|
97
|
+
expandDuration: string;
|
|
98
|
+
};
|
|
99
|
+
export type FTokenDataStructOutput = FTokenDataStructOutputArray &
|
|
100
|
+
FTokenDataStructOutputStruct;
|
|
101
|
+
|
|
102
|
+
export type UserEarnPositionStruct =
|
|
103
|
+
| [
|
|
104
|
+
number | string | BN,
|
|
105
|
+
number | string | BN,
|
|
106
|
+
number | string | BN,
|
|
107
|
+
number | string | BN
|
|
108
|
+
]
|
|
109
|
+
| {
|
|
110
|
+
fTokenShares: number | string | BN;
|
|
111
|
+
underlyingAssets: number | string | BN;
|
|
112
|
+
underlyingBalance: number | string | BN;
|
|
113
|
+
allowance: number | string | BN;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export type UserEarnPositionStructOutputArray = [
|
|
117
|
+
string,
|
|
118
|
+
string,
|
|
119
|
+
string,
|
|
120
|
+
string
|
|
121
|
+
];
|
|
122
|
+
export type UserEarnPositionStructOutputStruct = {
|
|
123
|
+
fTokenShares: string;
|
|
124
|
+
underlyingAssets: string;
|
|
125
|
+
underlyingBalance: string;
|
|
126
|
+
allowance: string;
|
|
127
|
+
};
|
|
128
|
+
export type UserEarnPositionStructOutput = UserEarnPositionStructOutputArray &
|
|
129
|
+
UserEarnPositionStructOutputStruct;
|
|
130
|
+
|
|
25
131
|
export type UserPositionStruct =
|
|
26
132
|
| [
|
|
27
133
|
number | string | BN,
|
|
@@ -118,10 +224,6 @@ export declare namespace FluidView {
|
|
|
118
224
|
number | string | BN,
|
|
119
225
|
number | string | BN,
|
|
120
226
|
number | string | BN,
|
|
121
|
-
number | string | BN,
|
|
122
|
-
number | string | BN,
|
|
123
|
-
number | string | BN,
|
|
124
|
-
number | string | BN,
|
|
125
227
|
number | string | BN
|
|
126
228
|
]
|
|
127
229
|
| {
|
|
@@ -147,10 +249,6 @@ export declare namespace FluidView {
|
|
|
147
249
|
oracle: string;
|
|
148
250
|
oraclePriceOperate: number | string | BN;
|
|
149
251
|
oraclePriceLiquidate: number | string | BN;
|
|
150
|
-
priceOfSupplyToken0InUSD: number | string | BN;
|
|
151
|
-
priceOfSupplyToken1InUSD: number | string | BN;
|
|
152
|
-
priceOfBorrowToken0InUSD: number | string | BN;
|
|
153
|
-
priceOfBorrowToken1InUSD: number | string | BN;
|
|
154
252
|
vaultSupplyExchangePrice: number | string | BN;
|
|
155
253
|
vaultBorrowExchangePrice: number | string | BN;
|
|
156
254
|
supplyRateVault: number | string | BN;
|
|
@@ -223,10 +321,6 @@ export declare namespace FluidView {
|
|
|
223
321
|
string,
|
|
224
322
|
string,
|
|
225
323
|
string,
|
|
226
|
-
string,
|
|
227
|
-
string,
|
|
228
|
-
string,
|
|
229
|
-
string,
|
|
230
324
|
string
|
|
231
325
|
];
|
|
232
326
|
export type VaultDataStructOutputStruct = {
|
|
@@ -252,10 +346,6 @@ export declare namespace FluidView {
|
|
|
252
346
|
oracle: string;
|
|
253
347
|
oraclePriceOperate: string;
|
|
254
348
|
oraclePriceLiquidate: string;
|
|
255
|
-
priceOfSupplyToken0InUSD: string;
|
|
256
|
-
priceOfSupplyToken1InUSD: string;
|
|
257
|
-
priceOfBorrowToken0InUSD: string;
|
|
258
|
-
priceOfBorrowToken1InUSD: string;
|
|
259
349
|
vaultSupplyExchangePrice: string;
|
|
260
350
|
vaultBorrowExchangePrice: string;
|
|
261
351
|
supplyRateVault: string;
|
|
@@ -283,6 +373,23 @@ export declare namespace FluidView {
|
|
|
283
373
|
};
|
|
284
374
|
export type VaultDataStructOutput = VaultDataStructOutputArray &
|
|
285
375
|
VaultDataStructOutputStruct;
|
|
376
|
+
|
|
377
|
+
export type NftWithVaultStruct =
|
|
378
|
+
| [number | string | BN, number | string | BN, string]
|
|
379
|
+
| {
|
|
380
|
+
nftId: number | string | BN;
|
|
381
|
+
vaultId: number | string | BN;
|
|
382
|
+
vaultAddr: string;
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
export type NftWithVaultStructOutputArray = [string, string, string];
|
|
386
|
+
export type NftWithVaultStructOutputStruct = {
|
|
387
|
+
nftId: string;
|
|
388
|
+
vaultId: string;
|
|
389
|
+
vaultAddr: string;
|
|
390
|
+
};
|
|
391
|
+
export type NftWithVaultStructOutput = NftWithVaultStructOutputArray &
|
|
392
|
+
NftWithVaultStructOutputStruct;
|
|
286
393
|
}
|
|
287
394
|
|
|
288
395
|
export interface FluidView extends BaseContract {
|
|
@@ -293,36 +400,27 @@ export interface FluidView extends BaseContract {
|
|
|
293
400
|
): FluidView;
|
|
294
401
|
clone(): FluidView;
|
|
295
402
|
methods: {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
getAaveTokenPriceInETH(
|
|
299
|
-
_tokenAddr: string
|
|
300
|
-
): NonPayableTransactionObject<string>;
|
|
301
|
-
|
|
302
|
-
getAaveTokenPriceInUSD(
|
|
303
|
-
_tokenAddr: string
|
|
304
|
-
): NonPayableTransactionObject<string>;
|
|
403
|
+
getAllFTokens(): NonPayableTransactionObject<string[]>;
|
|
305
404
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
getAaveV3TokenPriceInUSD(
|
|
311
|
-
_tokenAddr: string
|
|
312
|
-
): NonPayableTransactionObject<string>;
|
|
313
|
-
|
|
314
|
-
getAddrForChainlinkOracle(
|
|
315
|
-
_inputTokenAddr: string
|
|
316
|
-
): NonPayableTransactionObject<string>;
|
|
405
|
+
getAllFTokensData(): NonPayableTransactionObject<
|
|
406
|
+
FluidView.FTokenDataStructOutput[]
|
|
407
|
+
>;
|
|
317
408
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
): NonPayableTransactionObject<
|
|
409
|
+
getAllUserEarnPositionsWithFTokens(
|
|
410
|
+
_user: string
|
|
411
|
+
): NonPayableTransactionObject<
|
|
412
|
+
[
|
|
413
|
+
FluidView.UserEarnPositionStructOutput[],
|
|
414
|
+
FluidView.FTokenDataStructOutput[]
|
|
415
|
+
] & {
|
|
416
|
+
userPositions: FluidView.UserEarnPositionStructOutput[];
|
|
417
|
+
fTokensData: FluidView.FTokenDataStructOutput[];
|
|
418
|
+
}
|
|
419
|
+
>;
|
|
321
420
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
): NonPayableTransactionObject<string>;
|
|
421
|
+
getFTokenData(
|
|
422
|
+
_fToken: string
|
|
423
|
+
): NonPayableTransactionObject<FluidView.FTokenDataStructOutput>;
|
|
326
424
|
|
|
327
425
|
getPositionByNftId(
|
|
328
426
|
_nftId: number | string | BN
|
|
@@ -333,37 +431,32 @@ export interface FluidView extends BaseContract {
|
|
|
333
431
|
}
|
|
334
432
|
>;
|
|
335
433
|
|
|
336
|
-
getPriceInETH(_inputTokenAddr: string): NonPayableTransactionObject<string>;
|
|
337
|
-
|
|
338
|
-
getPriceInUSD(_inputTokenAddr: string): NonPayableTransactionObject<string>;
|
|
339
|
-
|
|
340
434
|
getRatio(_nftId: number | string | BN): NonPayableTransactionObject<string>;
|
|
341
435
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
): NonPayableTransactionObject<
|
|
347
|
-
[string, string] & { updateTimestamp: string }
|
|
348
|
-
>;
|
|
436
|
+
getUserEarnPosition(
|
|
437
|
+
_fToken: string,
|
|
438
|
+
_user: string
|
|
439
|
+
): NonPayableTransactionObject<FluidView.UserEarnPositionStructOutput>;
|
|
349
440
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
441
|
+
getUserEarnPositionWithFToken(
|
|
442
|
+
_fToken: string,
|
|
443
|
+
_user: string
|
|
353
444
|
): NonPayableTransactionObject<
|
|
354
|
-
[
|
|
445
|
+
[
|
|
446
|
+
FluidView.UserEarnPositionStructOutput,
|
|
447
|
+
FluidView.FTokenDataStructOutput
|
|
448
|
+
] & {
|
|
449
|
+
userPosition: FluidView.UserEarnPositionStructOutput;
|
|
450
|
+
fTokenData: FluidView.FTokenDataStructOutput;
|
|
451
|
+
}
|
|
355
452
|
>;
|
|
356
453
|
|
|
357
|
-
getSparkTokenPriceInETH(
|
|
358
|
-
_tokenAddr: string
|
|
359
|
-
): NonPayableTransactionObject<string>;
|
|
360
|
-
|
|
361
|
-
getSparkTokenPriceInUSD(
|
|
362
|
-
_tokenAddr: string
|
|
363
|
-
): NonPayableTransactionObject<string>;
|
|
364
|
-
|
|
365
454
|
getUserNftIds(_user: string): NonPayableTransactionObject<string[]>;
|
|
366
455
|
|
|
456
|
+
getUserNftIdsWithVaultIds(
|
|
457
|
+
_user: string
|
|
458
|
+
): NonPayableTransactionObject<FluidView.NftWithVaultStructOutput[]>;
|
|
459
|
+
|
|
367
460
|
getUserPositions(
|
|
368
461
|
_user: string
|
|
369
462
|
): NonPayableTransactionObject<
|
|
@@ -376,22 +469,9 @@ export interface FluidView extends BaseContract {
|
|
|
376
469
|
}
|
|
377
470
|
>;
|
|
378
471
|
|
|
379
|
-
getVaultAddresses(
|
|
380
|
-
_ids: number | string | BN[],
|
|
381
|
-
_fetchAll: boolean
|
|
382
|
-
): NonPayableTransactionObject<string[]>;
|
|
383
|
-
|
|
384
472
|
getVaultData(
|
|
385
473
|
_vault: string
|
|
386
474
|
): NonPayableTransactionObject<FluidView.VaultDataStructOutput>;
|
|
387
|
-
|
|
388
|
-
getWBtcPrice(
|
|
389
|
-
_btcPrice: number | string | BN
|
|
390
|
-
): NonPayableTransactionObject<string>;
|
|
391
|
-
|
|
392
|
-
getWStEthPrice(
|
|
393
|
-
_stEthPrice: number | string | BN
|
|
394
|
-
): NonPayableTransactionObject<string>;
|
|
395
475
|
};
|
|
396
476
|
events: {
|
|
397
477
|
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
|
package/src/types/fluid.ts
CHANGED
|
@@ -12,6 +12,11 @@ export interface FluidMarketInfo {
|
|
|
12
12
|
hasSmartDebt: boolean
|
|
13
13
|
collateralAsset: string
|
|
14
14
|
debtAsset: string
|
|
15
|
+
ethBased?: boolean,
|
|
16
|
+
btcBased?: boolean,
|
|
17
|
+
wstETHBased?: boolean,
|
|
18
|
+
stableBased?: boolean,
|
|
19
|
+
type: FluidVaultType
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
export enum FluidMainnetVersion {
|
|
@@ -71,6 +76,9 @@ export enum FluidMainnetVersion {
|
|
|
71
76
|
RSETH_ETH_WSTETH_78 = 'RSETH_ETH_WSTETH_78',
|
|
72
77
|
RSETH_WSTETH_79 = 'RSETH_WSTETH_79',
|
|
73
78
|
WEETHS_ETH_WSTETH_80 = 'WEETHS_ETH_WSTETH_80',
|
|
79
|
+
SUSDE_USDT_USDT_92 = 'SUSDE_USDT_USDT_92',
|
|
80
|
+
USDE_USDT_USDT_93 = 'USDE_USDT_USDT_93',
|
|
81
|
+
LBTC_CBBTC_WBTC_97 = 'LBTC_CBBTC_WBTC_97',
|
|
74
82
|
}
|
|
75
83
|
|
|
76
84
|
export enum FluidArbitrumVersion {
|
|
@@ -169,17 +177,22 @@ export interface InnerFluidMarketData {
|
|
|
169
177
|
isSmartDebt: boolean,
|
|
170
178
|
marketAddress: string,
|
|
171
179
|
vaultType: FluidVaultType,
|
|
180
|
+
vaultValue?: FluidVersions
|
|
172
181
|
oracle: string,
|
|
173
182
|
liquidationPenaltyPercent: string,
|
|
174
183
|
collFactor: string,
|
|
175
184
|
liquidationRatio: string,
|
|
185
|
+
liqFactor: string,
|
|
186
|
+
minRatio: string,
|
|
176
187
|
collAsset0: string,
|
|
177
188
|
collAsset1?: string,
|
|
178
189
|
debtAsset0: string,
|
|
179
190
|
debtAsset1?: string,
|
|
180
191
|
totalPositions: string,
|
|
181
192
|
totalSupplyVault: string,
|
|
193
|
+
totalSupplyVaultUsd: string,
|
|
182
194
|
totalBorrowVault: string,
|
|
195
|
+
totalBorrowVaultUsd: string,
|
|
183
196
|
withdrawalLimit: string,
|
|
184
197
|
withdrawableUntilLimit: string,
|
|
185
198
|
withdrawable: string,
|
|
@@ -190,6 +203,8 @@ export interface InnerFluidMarketData {
|
|
|
190
203
|
maxBorrowLimit: string,
|
|
191
204
|
baseBorrowLimit: string,
|
|
192
205
|
minimumBorrowing: string,
|
|
206
|
+
supplyRate: string,
|
|
207
|
+
borrowRate: string,
|
|
193
208
|
}
|
|
194
209
|
|
|
195
210
|
export interface FluidMarketData {
|