@defisaver/positions-sdk 0.0.201-fluid-dev-9 → 0.0.201-fluid-dev-11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/aaveV2/index.js +1 -1
- package/cjs/config/contracts.d.ts +87 -6
- package/cjs/config/contracts.js +15 -2
- package/cjs/fluid/index.d.ts +25 -2
- package/cjs/fluid/index.js +1 -1
- package/cjs/helpers/liquityV2Helpers/index.js +2 -2
- package/cjs/liquityV2/index.d.ts +9 -4
- package/cjs/liquityV2/index.js +69 -10
- package/cjs/markets/index.d.ts +1 -1
- package/cjs/markets/index.js +2 -1
- package/cjs/markets/liquityV2/index.d.ts +2 -1
- package/cjs/markets/liquityV2/index.js +12 -1
- package/cjs/markets/spark/marketAssets.js +1 -1
- package/cjs/morphoAaveV2/index.js +1 -1
- package/cjs/morphoAaveV3/index.js +1 -2
- package/cjs/spark/index.js +1 -2
- package/cjs/staking/staking.d.ts +1 -6
- package/cjs/staking/staking.js +20 -23
- package/cjs/types/contracts/generated/LiquityV2StabilityPool.d.ts +223 -0
- package/cjs/types/contracts/generated/LiquityV2StabilityPool.js +5 -0
- package/cjs/types/contracts/generated/LiquityV2View.d.ts +144 -2
- package/cjs/types/contracts/generated/index.d.ts +1 -0
- package/cjs/types/liquityV2.d.ts +1 -0
- package/esm/aaveV2/index.js +2 -2
- package/esm/config/contracts.d.ts +87 -6
- package/esm/config/contracts.js +15 -2
- package/esm/fluid/index.d.ts +25 -2
- package/esm/fluid/index.js +1 -1
- package/esm/helpers/liquityV2Helpers/index.js +2 -2
- package/esm/liquityV2/index.d.ts +9 -4
- package/esm/liquityV2/index.js +64 -10
- package/esm/markets/index.d.ts +1 -1
- package/esm/markets/index.js +1 -1
- package/esm/markets/liquityV2/index.d.ts +2 -1
- package/esm/markets/liquityV2/index.js +10 -0
- package/esm/markets/spark/marketAssets.js +1 -1
- package/esm/morphoAaveV2/index.js +2 -2
- package/esm/morphoAaveV3/index.js +1 -2
- package/esm/spark/index.js +1 -2
- package/esm/staking/staking.d.ts +1 -6
- package/esm/staking/staking.js +24 -22
- package/esm/types/contracts/generated/LiquityV2StabilityPool.d.ts +223 -0
- package/esm/types/contracts/generated/LiquityV2StabilityPool.js +4 -0
- package/esm/types/contracts/generated/LiquityV2View.d.ts +144 -2
- package/esm/types/contracts/generated/index.d.ts +1 -0
- package/esm/types/liquityV2.d.ts +1 -0
- package/package.json +2 -1
- package/src/aaveV2/index.ts +2 -2
- package/src/config/contracts.js +15 -2
- package/src/fluid/index.ts +1 -1
- package/src/helpers/liquityV2Helpers/index.ts +3 -3
- package/src/liquityV2/index.ts +79 -12
- package/src/markets/index.ts +1 -1
- package/src/markets/liquityV2/index.ts +13 -2
- package/src/markets/spark/marketAssets.ts +1 -1
- package/src/morphoAaveV2/index.ts +2 -2
- package/src/morphoAaveV3/index.ts +1 -2
- package/src/spark/index.ts +1 -2
- package/src/staking/staking.ts +22 -22
- package/src/types/contracts/generated/LiquityV2StabilityPool.ts +453 -0
- package/src/types/contracts/generated/LiquityV2View.ts +173 -2
- package/src/types/contracts/generated/index.ts +1 -0
- package/src/types/liquityV2.ts +1 -0
- package/cjs/services/dsrService.d.ts +0 -3
- package/cjs/services/dsrService.js +0 -28
- package/esm/services/dsrService.d.ts +0 -3
- package/esm/services/dsrService.js +0 -21
- package/src/services/dsrService.ts +0 -16
package/esm/staking/staking.d.ts
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import Web3 from 'web3';
|
|
2
2
|
import { MMAssetsData, MMUsedAssets } from '../types/common';
|
|
3
|
-
export declare const getStETHApy: (web3: Web3, fromBlock?: number, blockNumber?: 'latest' | number) => Promise<string>;
|
|
4
|
-
export declare const getCbETHApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
5
|
-
export declare const getREthApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
6
|
-
export declare const getDsrApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
7
|
-
export declare const getSsrApy: () => Promise<string>;
|
|
8
3
|
export declare const STAKING_ASSETS: string[];
|
|
9
|
-
export declare const getStakingApy: (asset: string, web3: Web3, blockNumber?: 'latest' | number, fromBlock?: number | undefined) =>
|
|
4
|
+
export declare const getStakingApy: (asset: string, web3: Web3, blockNumber?: 'latest' | number, fromBlock?: number | undefined) => Promise<string>;
|
|
10
5
|
export declare const calculateInterestEarned: (principal: string, interest: string, type: string, apy?: boolean) => number;
|
|
11
6
|
export declare const calculateNetApy: ({ usedAssets, assetsData, isMorpho }: {
|
|
12
7
|
usedAssets: MMUsedAssets;
|
package/esm/staking/staking.js
CHANGED
|
@@ -13,7 +13,7 @@ import { NetworkNumber } from '../types/common';
|
|
|
13
13
|
import { BLOCKS_IN_A_YEAR, SECONDS_PER_YEAR, AVG_BLOCK_TIME } from '../constants';
|
|
14
14
|
import { multicall } from '../multicall';
|
|
15
15
|
import { aprToApy } from '../moneymarket';
|
|
16
|
-
|
|
16
|
+
const getStETHApy = (web3, fromBlock = 17900000, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
17
|
try {
|
|
18
18
|
const tokenRebasedEvents = yield LidoContract(web3, NetworkNumber.Eth).getPastEvents('TokenRebased', { fromBlock, toBlock: blockNumber });
|
|
19
19
|
tokenRebasedEvents.sort((a, b) => b.blockNumber - a.blockNumber); // sort from highest to lowest block number
|
|
@@ -34,7 +34,7 @@ export const getStETHApy = (web3, fromBlock = 17900000, blockNumber = 'latest')
|
|
|
34
34
|
return aprToApy(data.data.smaApr);
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
-
|
|
37
|
+
const getCbETHApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
38
|
let currentBlock = blockNumber;
|
|
39
39
|
if (blockNumber === 'latest')
|
|
40
40
|
currentBlock = yield web3.eth.getBlockNumber();
|
|
@@ -51,7 +51,7 @@ export const getCbETHApy = (web3, blockNumber = 'latest') => __awaiter(void 0, v
|
|
|
51
51
|
.toString();
|
|
52
52
|
return aprToApy(apr);
|
|
53
53
|
});
|
|
54
|
-
|
|
54
|
+
const getREthApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
|
|
55
55
|
let currentBlock = blockNumber;
|
|
56
56
|
if (blockNumber === 'latest')
|
|
57
57
|
currentBlock = yield web3.eth.getBlockNumber();
|
|
@@ -68,7 +68,7 @@ export const getREthApy = (web3, blockNumber = 'latest') => __awaiter(void 0, vo
|
|
|
68
68
|
.toString();
|
|
69
69
|
return aprToApy(apr);
|
|
70
70
|
});
|
|
71
|
-
|
|
71
|
+
const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
72
|
const potContract = PotContract(web3, NetworkNumber.Eth);
|
|
73
73
|
return new Dec(yield potContract.methods.dsr().call())
|
|
74
74
|
.div(new Dec(1e27))
|
|
@@ -77,7 +77,7 @@ export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, voi
|
|
|
77
77
|
.mul(100)
|
|
78
78
|
.toString();
|
|
79
79
|
});
|
|
80
|
-
|
|
80
|
+
const getSsrApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
81
81
|
const res = yield fetch('https://fe.defisaver.com/api/sky/data');
|
|
82
82
|
const data = yield res.json();
|
|
83
83
|
return new Dec(data.data.skyData[0].sky_savings_rate_apy).mul(100).toString();
|
|
@@ -101,48 +101,50 @@ const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
101
101
|
});
|
|
102
102
|
const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function* () {
|
|
103
103
|
const res = yield fetch(`https://fe.defisaver.com/api/staking/apy?asset=${asset}`);
|
|
104
|
+
if (!res.ok)
|
|
105
|
+
throw new Error(`Failed to fetch APY for ${asset}`);
|
|
104
106
|
const data = yield res.json();
|
|
105
107
|
// if our server returns apr, transform it into apy
|
|
106
108
|
if (['weETH'].includes(asset)) {
|
|
107
109
|
return aprToApy(data.apy);
|
|
108
110
|
}
|
|
109
|
-
return data.apy;
|
|
111
|
+
return String(data.apy);
|
|
110
112
|
});
|
|
111
113
|
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS'];
|
|
112
|
-
export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
|
|
114
|
+
export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => __awaiter(void 0, void 0, void 0, function* () {
|
|
113
115
|
try {
|
|
114
116
|
if (asset === 'stETH' || asset === 'wstETH')
|
|
115
|
-
return getStETHApy(web3, fromBlock, blockNumber);
|
|
117
|
+
return yield getStETHApy(web3, fromBlock, blockNumber);
|
|
116
118
|
if (asset === 'cbETH')
|
|
117
|
-
return getCbETHApy(web3, blockNumber);
|
|
119
|
+
return yield getCbETHApy(web3, blockNumber);
|
|
118
120
|
if (asset === 'rETH')
|
|
119
|
-
return getREthApy(web3, blockNumber);
|
|
121
|
+
return yield getREthApy(web3, blockNumber);
|
|
120
122
|
if (asset === 'sDAI')
|
|
121
|
-
return getDsrApy(web3);
|
|
123
|
+
return yield getDsrApy(web3);
|
|
122
124
|
if (asset === 'sUSDe')
|
|
123
|
-
return getApyFromDfsApi('sUSDe');
|
|
125
|
+
return yield getApyFromDfsApi('sUSDe');
|
|
124
126
|
if (asset === 'weETH')
|
|
125
|
-
return getApyFromDfsApi('weETH');
|
|
127
|
+
return yield getApyFromDfsApi('weETH');
|
|
126
128
|
if (asset === 'ezETH')
|
|
127
|
-
return getApyFromDfsApi('ezETH');
|
|
129
|
+
return yield getApyFromDfsApi('ezETH');
|
|
128
130
|
if (asset === 'osETH')
|
|
129
|
-
return getApyFromDfsApi('osETH');
|
|
131
|
+
return yield getApyFromDfsApi('osETH');
|
|
130
132
|
if (asset === 'ETHx')
|
|
131
|
-
return getApyFromDfsApi('ETHx');
|
|
133
|
+
return yield getApyFromDfsApi('ETHx');
|
|
132
134
|
if (asset === 'rsETH' || asset === 'wrsETH')
|
|
133
|
-
return getApyFromDfsApi('rsETH');
|
|
135
|
+
return yield getApyFromDfsApi('rsETH');
|
|
134
136
|
if (asset === 'pufETH')
|
|
135
|
-
return getApyFromDfsApi('pufETH');
|
|
137
|
+
return yield getApyFromDfsApi('pufETH');
|
|
136
138
|
if (asset === 'wsuperOETHb')
|
|
137
|
-
return getSuperOETHApy();
|
|
139
|
+
return yield getSuperOETHApy();
|
|
138
140
|
if (asset === 'sUSDS')
|
|
139
|
-
return getSsrApy();
|
|
141
|
+
return yield getSsrApy();
|
|
140
142
|
}
|
|
141
143
|
catch (e) {
|
|
142
144
|
console.error(`Failed to fetch APY for ${asset}`);
|
|
143
|
-
return '0';
|
|
144
145
|
}
|
|
145
|
-
|
|
146
|
+
return '0';
|
|
147
|
+
});
|
|
146
148
|
export const calculateInterestEarned = (principal, interest, type, apy = false) => {
|
|
147
149
|
let interval = 1;
|
|
148
150
|
if (+interest === 0)
|
|
@@ -0,0 +1,223 @@
|
|
|
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, ContractEventLog, BaseContract } from "./types";
|
|
7
|
+
export interface EventOptions {
|
|
8
|
+
filter?: object;
|
|
9
|
+
fromBlock?: BlockType;
|
|
10
|
+
topics?: string[];
|
|
11
|
+
}
|
|
12
|
+
export type ActivePoolAddressChanged = ContractEventLog<{
|
|
13
|
+
_newActivePoolAddress: string;
|
|
14
|
+
0: string;
|
|
15
|
+
}>;
|
|
16
|
+
export type B_Updated = ContractEventLog<{
|
|
17
|
+
_B: string;
|
|
18
|
+
_epoch: string;
|
|
19
|
+
_scale: string;
|
|
20
|
+
0: string;
|
|
21
|
+
1: string;
|
|
22
|
+
2: string;
|
|
23
|
+
}>;
|
|
24
|
+
export type BoldTokenAddressChanged = ContractEventLog<{
|
|
25
|
+
_newBoldTokenAddress: string;
|
|
26
|
+
0: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type DefaultPoolAddressChanged = ContractEventLog<{
|
|
29
|
+
_newDefaultPoolAddress: string;
|
|
30
|
+
0: string;
|
|
31
|
+
}>;
|
|
32
|
+
export type DepositOperation = ContractEventLog<{
|
|
33
|
+
_depositor: string;
|
|
34
|
+
_operation: string;
|
|
35
|
+
_depositLossSinceLastOperation: string;
|
|
36
|
+
_depositChange: string;
|
|
37
|
+
_yieldGainSinceLastOperation: string;
|
|
38
|
+
_yieldGainClaimed: string;
|
|
39
|
+
_ethGainSinceLastOperation: string;
|
|
40
|
+
_ethGainClaimed: string;
|
|
41
|
+
0: string;
|
|
42
|
+
1: string;
|
|
43
|
+
2: string;
|
|
44
|
+
3: string;
|
|
45
|
+
4: string;
|
|
46
|
+
5: string;
|
|
47
|
+
6: string;
|
|
48
|
+
7: string;
|
|
49
|
+
}>;
|
|
50
|
+
export type DepositUpdated = ContractEventLog<{
|
|
51
|
+
_depositor: string;
|
|
52
|
+
_newDeposit: string;
|
|
53
|
+
_stashedColl: string;
|
|
54
|
+
_snapshotP: string;
|
|
55
|
+
_snapshotS: string;
|
|
56
|
+
_snapshotB: string;
|
|
57
|
+
_snapshotScale: string;
|
|
58
|
+
_snapshotEpoch: string;
|
|
59
|
+
0: string;
|
|
60
|
+
1: string;
|
|
61
|
+
2: string;
|
|
62
|
+
3: string;
|
|
63
|
+
4: string;
|
|
64
|
+
5: string;
|
|
65
|
+
6: string;
|
|
66
|
+
7: string;
|
|
67
|
+
}>;
|
|
68
|
+
export type EpochUpdated = ContractEventLog<{
|
|
69
|
+
_currentEpoch: string;
|
|
70
|
+
0: string;
|
|
71
|
+
}>;
|
|
72
|
+
export type EtherSent = ContractEventLog<{
|
|
73
|
+
_to: string;
|
|
74
|
+
_amount: string;
|
|
75
|
+
0: string;
|
|
76
|
+
1: string;
|
|
77
|
+
}>;
|
|
78
|
+
export type P_Updated = ContractEventLog<{
|
|
79
|
+
_P: string;
|
|
80
|
+
0: string;
|
|
81
|
+
}>;
|
|
82
|
+
export type PriceFeedAddressChanged = ContractEventLog<{
|
|
83
|
+
_newPriceFeedAddress: string;
|
|
84
|
+
0: string;
|
|
85
|
+
}>;
|
|
86
|
+
export type S_Updated = ContractEventLog<{
|
|
87
|
+
_S: string;
|
|
88
|
+
_epoch: string;
|
|
89
|
+
_scale: string;
|
|
90
|
+
0: string;
|
|
91
|
+
1: string;
|
|
92
|
+
2: string;
|
|
93
|
+
}>;
|
|
94
|
+
export type ScaleUpdated = ContractEventLog<{
|
|
95
|
+
_currentScale: string;
|
|
96
|
+
0: string;
|
|
97
|
+
}>;
|
|
98
|
+
export type StabilityPoolBoldBalanceUpdated = ContractEventLog<{
|
|
99
|
+
_newBalance: string;
|
|
100
|
+
0: string;
|
|
101
|
+
}>;
|
|
102
|
+
export type StabilityPoolCollBalanceUpdated = ContractEventLog<{
|
|
103
|
+
_newBalance: string;
|
|
104
|
+
0: string;
|
|
105
|
+
}>;
|
|
106
|
+
export type TroveManagerAddressChanged = ContractEventLog<{
|
|
107
|
+
_newTroveManagerAddress: string;
|
|
108
|
+
0: string;
|
|
109
|
+
}>;
|
|
110
|
+
export interface LiquityV2StabilityPool extends BaseContract {
|
|
111
|
+
constructor(jsonInterface: any[], address?: string, options?: ContractOptions): LiquityV2StabilityPool;
|
|
112
|
+
clone(): LiquityV2StabilityPool;
|
|
113
|
+
methods: {
|
|
114
|
+
NAME(): NonPayableTransactionObject<string>;
|
|
115
|
+
P(): NonPayableTransactionObject<string>;
|
|
116
|
+
SCALE_FACTOR(): NonPayableTransactionObject<string>;
|
|
117
|
+
activePool(): NonPayableTransactionObject<string>;
|
|
118
|
+
boldToken(): NonPayableTransactionObject<string>;
|
|
119
|
+
claimAllCollGains(): NonPayableTransactionObject<void>;
|
|
120
|
+
collToken(): NonPayableTransactionObject<string>;
|
|
121
|
+
currentEpoch(): NonPayableTransactionObject<string>;
|
|
122
|
+
currentScale(): NonPayableTransactionObject<string>;
|
|
123
|
+
depositSnapshots(arg0: string): NonPayableTransactionObject<[
|
|
124
|
+
string,
|
|
125
|
+
string,
|
|
126
|
+
string,
|
|
127
|
+
string,
|
|
128
|
+
string
|
|
129
|
+
] & {
|
|
130
|
+
S: string;
|
|
131
|
+
P: string;
|
|
132
|
+
B: string;
|
|
133
|
+
scale: string;
|
|
134
|
+
epoch: string;
|
|
135
|
+
}>;
|
|
136
|
+
deposits(arg0: string): NonPayableTransactionObject<string>;
|
|
137
|
+
epochToScaleToB(arg0: number | string | BN, arg1: number | string | BN): NonPayableTransactionObject<string>;
|
|
138
|
+
epochToScaleToS(arg0: number | string | BN, arg1: number | string | BN): NonPayableTransactionObject<string>;
|
|
139
|
+
getCollBalance(): NonPayableTransactionObject<string>;
|
|
140
|
+
getCompoundedBoldDeposit(_depositor: string): NonPayableTransactionObject<string>;
|
|
141
|
+
getDepositorCollGain(_depositor: string): NonPayableTransactionObject<string>;
|
|
142
|
+
getDepositorYieldGain(_depositor: string): NonPayableTransactionObject<string>;
|
|
143
|
+
getDepositorYieldGainWithPending(_depositor: string): NonPayableTransactionObject<string>;
|
|
144
|
+
getEntireSystemColl(): NonPayableTransactionObject<string>;
|
|
145
|
+
getEntireSystemDebt(): NonPayableTransactionObject<string>;
|
|
146
|
+
getTotalBoldDeposits(): NonPayableTransactionObject<string>;
|
|
147
|
+
getYieldGainsOwed(): NonPayableTransactionObject<string>;
|
|
148
|
+
getYieldGainsPending(): NonPayableTransactionObject<string>;
|
|
149
|
+
lastBoldLossError_Offset(): NonPayableTransactionObject<string>;
|
|
150
|
+
lastBoldLossError_TotalDeposits(): NonPayableTransactionObject<string>;
|
|
151
|
+
lastCollError_Offset(): NonPayableTransactionObject<string>;
|
|
152
|
+
lastYieldError(): NonPayableTransactionObject<string>;
|
|
153
|
+
offset(_debtToOffset: number | string | BN, _collToAdd: number | string | BN): NonPayableTransactionObject<void>;
|
|
154
|
+
provideToSP(_topUp: number | string | BN, _doClaim: boolean): NonPayableTransactionObject<void>;
|
|
155
|
+
stashedColl(arg0: string): NonPayableTransactionObject<string>;
|
|
156
|
+
triggerBoldRewards(_boldYield: number | string | BN): NonPayableTransactionObject<void>;
|
|
157
|
+
troveManager(): NonPayableTransactionObject<string>;
|
|
158
|
+
withdrawFromSP(_amount: number | string | BN, _doClaim: boolean): NonPayableTransactionObject<void>;
|
|
159
|
+
};
|
|
160
|
+
events: {
|
|
161
|
+
ActivePoolAddressChanged(cb?: Callback<ActivePoolAddressChanged>): EventEmitter;
|
|
162
|
+
ActivePoolAddressChanged(options?: EventOptions, cb?: Callback<ActivePoolAddressChanged>): EventEmitter;
|
|
163
|
+
B_Updated(cb?: Callback<B_Updated>): EventEmitter;
|
|
164
|
+
B_Updated(options?: EventOptions, cb?: Callback<B_Updated>): EventEmitter;
|
|
165
|
+
BoldTokenAddressChanged(cb?: Callback<BoldTokenAddressChanged>): EventEmitter;
|
|
166
|
+
BoldTokenAddressChanged(options?: EventOptions, cb?: Callback<BoldTokenAddressChanged>): EventEmitter;
|
|
167
|
+
DefaultPoolAddressChanged(cb?: Callback<DefaultPoolAddressChanged>): EventEmitter;
|
|
168
|
+
DefaultPoolAddressChanged(options?: EventOptions, cb?: Callback<DefaultPoolAddressChanged>): EventEmitter;
|
|
169
|
+
DepositOperation(cb?: Callback<DepositOperation>): EventEmitter;
|
|
170
|
+
DepositOperation(options?: EventOptions, cb?: Callback<DepositOperation>): EventEmitter;
|
|
171
|
+
DepositUpdated(cb?: Callback<DepositUpdated>): EventEmitter;
|
|
172
|
+
DepositUpdated(options?: EventOptions, cb?: Callback<DepositUpdated>): EventEmitter;
|
|
173
|
+
EpochUpdated(cb?: Callback<EpochUpdated>): EventEmitter;
|
|
174
|
+
EpochUpdated(options?: EventOptions, cb?: Callback<EpochUpdated>): EventEmitter;
|
|
175
|
+
EtherSent(cb?: Callback<EtherSent>): EventEmitter;
|
|
176
|
+
EtherSent(options?: EventOptions, cb?: Callback<EtherSent>): EventEmitter;
|
|
177
|
+
P_Updated(cb?: Callback<P_Updated>): EventEmitter;
|
|
178
|
+
P_Updated(options?: EventOptions, cb?: Callback<P_Updated>): EventEmitter;
|
|
179
|
+
PriceFeedAddressChanged(cb?: Callback<PriceFeedAddressChanged>): EventEmitter;
|
|
180
|
+
PriceFeedAddressChanged(options?: EventOptions, cb?: Callback<PriceFeedAddressChanged>): EventEmitter;
|
|
181
|
+
S_Updated(cb?: Callback<S_Updated>): EventEmitter;
|
|
182
|
+
S_Updated(options?: EventOptions, cb?: Callback<S_Updated>): EventEmitter;
|
|
183
|
+
ScaleUpdated(cb?: Callback<ScaleUpdated>): EventEmitter;
|
|
184
|
+
ScaleUpdated(options?: EventOptions, cb?: Callback<ScaleUpdated>): EventEmitter;
|
|
185
|
+
StabilityPoolBoldBalanceUpdated(cb?: Callback<StabilityPoolBoldBalanceUpdated>): EventEmitter;
|
|
186
|
+
StabilityPoolBoldBalanceUpdated(options?: EventOptions, cb?: Callback<StabilityPoolBoldBalanceUpdated>): EventEmitter;
|
|
187
|
+
StabilityPoolCollBalanceUpdated(cb?: Callback<StabilityPoolCollBalanceUpdated>): EventEmitter;
|
|
188
|
+
StabilityPoolCollBalanceUpdated(options?: EventOptions, cb?: Callback<StabilityPoolCollBalanceUpdated>): EventEmitter;
|
|
189
|
+
TroveManagerAddressChanged(cb?: Callback<TroveManagerAddressChanged>): EventEmitter;
|
|
190
|
+
TroveManagerAddressChanged(options?: EventOptions, cb?: Callback<TroveManagerAddressChanged>): EventEmitter;
|
|
191
|
+
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
|
|
192
|
+
};
|
|
193
|
+
once(event: "ActivePoolAddressChanged", cb: Callback<ActivePoolAddressChanged>): void;
|
|
194
|
+
once(event: "ActivePoolAddressChanged", options: EventOptions, cb: Callback<ActivePoolAddressChanged>): void;
|
|
195
|
+
once(event: "B_Updated", cb: Callback<B_Updated>): void;
|
|
196
|
+
once(event: "B_Updated", options: EventOptions, cb: Callback<B_Updated>): void;
|
|
197
|
+
once(event: "BoldTokenAddressChanged", cb: Callback<BoldTokenAddressChanged>): void;
|
|
198
|
+
once(event: "BoldTokenAddressChanged", options: EventOptions, cb: Callback<BoldTokenAddressChanged>): void;
|
|
199
|
+
once(event: "DefaultPoolAddressChanged", cb: Callback<DefaultPoolAddressChanged>): void;
|
|
200
|
+
once(event: "DefaultPoolAddressChanged", options: EventOptions, cb: Callback<DefaultPoolAddressChanged>): void;
|
|
201
|
+
once(event: "DepositOperation", cb: Callback<DepositOperation>): void;
|
|
202
|
+
once(event: "DepositOperation", options: EventOptions, cb: Callback<DepositOperation>): void;
|
|
203
|
+
once(event: "DepositUpdated", cb: Callback<DepositUpdated>): void;
|
|
204
|
+
once(event: "DepositUpdated", options: EventOptions, cb: Callback<DepositUpdated>): void;
|
|
205
|
+
once(event: "EpochUpdated", cb: Callback<EpochUpdated>): void;
|
|
206
|
+
once(event: "EpochUpdated", options: EventOptions, cb: Callback<EpochUpdated>): void;
|
|
207
|
+
once(event: "EtherSent", cb: Callback<EtherSent>): void;
|
|
208
|
+
once(event: "EtherSent", options: EventOptions, cb: Callback<EtherSent>): void;
|
|
209
|
+
once(event: "P_Updated", cb: Callback<P_Updated>): void;
|
|
210
|
+
once(event: "P_Updated", options: EventOptions, cb: Callback<P_Updated>): void;
|
|
211
|
+
once(event: "PriceFeedAddressChanged", cb: Callback<PriceFeedAddressChanged>): void;
|
|
212
|
+
once(event: "PriceFeedAddressChanged", options: EventOptions, cb: Callback<PriceFeedAddressChanged>): void;
|
|
213
|
+
once(event: "S_Updated", cb: Callback<S_Updated>): void;
|
|
214
|
+
once(event: "S_Updated", options: EventOptions, cb: Callback<S_Updated>): void;
|
|
215
|
+
once(event: "ScaleUpdated", cb: Callback<ScaleUpdated>): void;
|
|
216
|
+
once(event: "ScaleUpdated", options: EventOptions, cb: Callback<ScaleUpdated>): void;
|
|
217
|
+
once(event: "StabilityPoolBoldBalanceUpdated", cb: Callback<StabilityPoolBoldBalanceUpdated>): void;
|
|
218
|
+
once(event: "StabilityPoolBoldBalanceUpdated", options: EventOptions, cb: Callback<StabilityPoolBoldBalanceUpdated>): void;
|
|
219
|
+
once(event: "StabilityPoolCollBalanceUpdated", cb: Callback<StabilityPoolCollBalanceUpdated>): void;
|
|
220
|
+
once(event: "StabilityPoolCollBalanceUpdated", options: EventOptions, cb: Callback<StabilityPoolCollBalanceUpdated>): void;
|
|
221
|
+
once(event: "TroveManagerAddressChanged", cb: Callback<TroveManagerAddressChanged>): void;
|
|
222
|
+
once(event: "TroveManagerAddressChanged", options: EventOptions, cb: Callback<TroveManagerAddressChanged>): void;
|
|
223
|
+
}
|
|
@@ -9,6 +9,74 @@ export interface EventOptions {
|
|
|
9
9
|
fromBlock?: BlockType;
|
|
10
10
|
topics?: string[];
|
|
11
11
|
}
|
|
12
|
+
export declare namespace IBorrowerOperations {
|
|
13
|
+
type InterestBatchManagerStruct = [number | string | BN, number | string | BN, number | string | BN] | {
|
|
14
|
+
minInterestRate: number | string | BN;
|
|
15
|
+
maxInterestRate: number | string | BN;
|
|
16
|
+
minInterestRateChangePeriod: number | string | BN;
|
|
17
|
+
};
|
|
18
|
+
type InterestBatchManagerStructOutputArray = [string, string, string];
|
|
19
|
+
type InterestBatchManagerStructOutputStruct = {
|
|
20
|
+
minInterestRate: string;
|
|
21
|
+
maxInterestRate: string;
|
|
22
|
+
minInterestRateChangePeriod: string;
|
|
23
|
+
};
|
|
24
|
+
type InterestBatchManagerStructOutput = InterestBatchManagerStructOutputArray & InterestBatchManagerStructOutputStruct;
|
|
25
|
+
}
|
|
26
|
+
export declare namespace ITroveManager {
|
|
27
|
+
type LatestBatchDataStruct = [
|
|
28
|
+
number | string | BN,
|
|
29
|
+
number | string | BN,
|
|
30
|
+
number | string | BN,
|
|
31
|
+
number | string | BN,
|
|
32
|
+
number | string | BN,
|
|
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
|
+
] | {
|
|
40
|
+
entireDebtWithoutRedistribution: number | string | BN;
|
|
41
|
+
entireCollWithoutRedistribution: number | string | BN;
|
|
42
|
+
accruedInterest: number | string | BN;
|
|
43
|
+
recordedDebt: number | string | BN;
|
|
44
|
+
annualInterestRate: number | string | BN;
|
|
45
|
+
weightedRecordedDebt: number | string | BN;
|
|
46
|
+
annualManagementFee: number | string | BN;
|
|
47
|
+
accruedManagementFee: number | string | BN;
|
|
48
|
+
weightedRecordedBatchManagementFee: number | string | BN;
|
|
49
|
+
lastDebtUpdateTime: number | string | BN;
|
|
50
|
+
lastInterestRateAdjTime: number | string | BN;
|
|
51
|
+
};
|
|
52
|
+
type LatestBatchDataStructOutputArray = [
|
|
53
|
+
string,
|
|
54
|
+
string,
|
|
55
|
+
string,
|
|
56
|
+
string,
|
|
57
|
+
string,
|
|
58
|
+
string,
|
|
59
|
+
string,
|
|
60
|
+
string,
|
|
61
|
+
string,
|
|
62
|
+
string,
|
|
63
|
+
string
|
|
64
|
+
];
|
|
65
|
+
type LatestBatchDataStructOutputStruct = {
|
|
66
|
+
entireDebtWithoutRedistribution: string;
|
|
67
|
+
entireCollWithoutRedistribution: string;
|
|
68
|
+
accruedInterest: string;
|
|
69
|
+
recordedDebt: string;
|
|
70
|
+
annualInterestRate: string;
|
|
71
|
+
weightedRecordedDebt: string;
|
|
72
|
+
annualManagementFee: string;
|
|
73
|
+
accruedManagementFee: string;
|
|
74
|
+
weightedRecordedBatchManagementFee: string;
|
|
75
|
+
lastDebtUpdateTime: string;
|
|
76
|
+
lastInterestRateAdjTime: string;
|
|
77
|
+
};
|
|
78
|
+
type LatestBatchDataStructOutput = LatestBatchDataStructOutputArray & LatestBatchDataStructOutputStruct;
|
|
79
|
+
}
|
|
12
80
|
export declare namespace LiquityV2View {
|
|
13
81
|
type MarketDataStruct = [
|
|
14
82
|
string,
|
|
@@ -30,7 +98,8 @@ export declare namespace LiquityV2View {
|
|
|
30
98
|
string,
|
|
31
99
|
string,
|
|
32
100
|
number | string | BN,
|
|
33
|
-
boolean
|
|
101
|
+
boolean,
|
|
102
|
+
number | string | BN
|
|
34
103
|
] | {
|
|
35
104
|
market: string;
|
|
36
105
|
CCR: number | string | BN;
|
|
@@ -52,6 +121,7 @@ export declare namespace LiquityV2View {
|
|
|
52
121
|
priceFeed: string;
|
|
53
122
|
collPrice: number | string | BN;
|
|
54
123
|
isShutDown: boolean;
|
|
124
|
+
boldDepositInSp: number | string | BN;
|
|
55
125
|
};
|
|
56
126
|
type MarketDataStructOutputArray = [
|
|
57
127
|
string,
|
|
@@ -73,7 +143,8 @@ export declare namespace LiquityV2View {
|
|
|
73
143
|
string,
|
|
74
144
|
string,
|
|
75
145
|
string,
|
|
76
|
-
boolean
|
|
146
|
+
boolean,
|
|
147
|
+
string
|
|
77
148
|
];
|
|
78
149
|
type MarketDataStructOutputStruct = {
|
|
79
150
|
market: string;
|
|
@@ -96,6 +167,7 @@ export declare namespace LiquityV2View {
|
|
|
96
167
|
priceFeed: string;
|
|
97
168
|
collPrice: string;
|
|
98
169
|
isShutDown: boolean;
|
|
170
|
+
boldDepositInSp: string;
|
|
99
171
|
};
|
|
100
172
|
type MarketDataStructOutput = MarketDataStructOutputArray & MarketDataStructOutputStruct;
|
|
101
173
|
type TroveDataStruct = [
|
|
@@ -109,6 +181,7 @@ export declare namespace LiquityV2View {
|
|
|
109
181
|
number | string | BN,
|
|
110
182
|
number | string | BN,
|
|
111
183
|
string,
|
|
184
|
+
number | string | BN,
|
|
112
185
|
number | string | BN
|
|
113
186
|
] | {
|
|
114
187
|
troveId: number | string | BN;
|
|
@@ -122,6 +195,7 @@ export declare namespace LiquityV2View {
|
|
|
122
195
|
annualInterestRate: number | string | BN;
|
|
123
196
|
interestBatchManager: string;
|
|
124
197
|
batchDebtShares: number | string | BN;
|
|
198
|
+
lastInterestRateAdjTime: number | string | BN;
|
|
125
199
|
};
|
|
126
200
|
type TroveDataStructOutputArray = [
|
|
127
201
|
string,
|
|
@@ -134,6 +208,7 @@ export declare namespace LiquityV2View {
|
|
|
134
208
|
string,
|
|
135
209
|
string,
|
|
136
210
|
string,
|
|
211
|
+
string,
|
|
137
212
|
string
|
|
138
213
|
];
|
|
139
214
|
type TroveDataStructOutputStruct = {
|
|
@@ -148,6 +223,7 @@ export declare namespace LiquityV2View {
|
|
|
148
223
|
annualInterestRate: string;
|
|
149
224
|
interestBatchManager: string;
|
|
150
225
|
batchDebtShares: string;
|
|
226
|
+
lastInterestRateAdjTime: string;
|
|
151
227
|
};
|
|
152
228
|
type TroveDataStructOutput = TroveDataStructOutputArray & TroveDataStructOutputStruct;
|
|
153
229
|
type ExistingTroveStruct = [number | string | BN, boolean] | {
|
|
@@ -161,6 +237,64 @@ export declare namespace LiquityV2View {
|
|
|
161
237
|
};
|
|
162
238
|
type ExistingTroveStructOutput = ExistingTroveStructOutputArray & ExistingTroveStructOutputStruct;
|
|
163
239
|
}
|
|
240
|
+
export declare namespace IMultiTroveGetter {
|
|
241
|
+
type CombinedTroveDataStruct = [
|
|
242
|
+
number | string | BN,
|
|
243
|
+
number | string | BN,
|
|
244
|
+
number | string | BN,
|
|
245
|
+
number | string | BN,
|
|
246
|
+
number | string | BN,
|
|
247
|
+
number | string | BN,
|
|
248
|
+
number | string | BN,
|
|
249
|
+
string,
|
|
250
|
+
number | string | BN,
|
|
251
|
+
number | string | BN,
|
|
252
|
+
number | string | BN,
|
|
253
|
+
number | string | BN
|
|
254
|
+
] | {
|
|
255
|
+
id: number | string | BN;
|
|
256
|
+
debt: number | string | BN;
|
|
257
|
+
coll: number | string | BN;
|
|
258
|
+
stake: number | string | BN;
|
|
259
|
+
annualInterestRate: number | string | BN;
|
|
260
|
+
lastDebtUpdateTime: number | string | BN;
|
|
261
|
+
lastInterestRateAdjTime: number | string | BN;
|
|
262
|
+
interestBatchManager: string;
|
|
263
|
+
batchDebtShares: number | string | BN;
|
|
264
|
+
batchCollShares: number | string | BN;
|
|
265
|
+
snapshotETH: number | string | BN;
|
|
266
|
+
snapshotBoldDebt: number | string | BN;
|
|
267
|
+
};
|
|
268
|
+
type CombinedTroveDataStructOutputArray = [
|
|
269
|
+
string,
|
|
270
|
+
string,
|
|
271
|
+
string,
|
|
272
|
+
string,
|
|
273
|
+
string,
|
|
274
|
+
string,
|
|
275
|
+
string,
|
|
276
|
+
string,
|
|
277
|
+
string,
|
|
278
|
+
string,
|
|
279
|
+
string,
|
|
280
|
+
string
|
|
281
|
+
];
|
|
282
|
+
type CombinedTroveDataStructOutputStruct = {
|
|
283
|
+
id: string;
|
|
284
|
+
debt: string;
|
|
285
|
+
coll: string;
|
|
286
|
+
stake: string;
|
|
287
|
+
annualInterestRate: string;
|
|
288
|
+
lastDebtUpdateTime: string;
|
|
289
|
+
lastInterestRateAdjTime: string;
|
|
290
|
+
interestBatchManager: string;
|
|
291
|
+
batchDebtShares: string;
|
|
292
|
+
batchCollShares: string;
|
|
293
|
+
snapshotETH: string;
|
|
294
|
+
snapshotBoldDebt: string;
|
|
295
|
+
};
|
|
296
|
+
type CombinedTroveDataStructOutput = CombinedTroveDataStructOutputArray & CombinedTroveDataStructOutputStruct;
|
|
297
|
+
}
|
|
164
298
|
export interface LiquityV2View extends BaseContract {
|
|
165
299
|
constructor(jsonInterface: any[], address?: string, options?: ContractOptions): LiquityV2View;
|
|
166
300
|
clone(): LiquityV2View;
|
|
@@ -181,6 +315,13 @@ export interface LiquityV2View extends BaseContract {
|
|
|
181
315
|
diff: string;
|
|
182
316
|
latestRandomSeed: string;
|
|
183
317
|
}>;
|
|
318
|
+
getBatchManagerInfo(_market: string, _manager: string): NonPayableTransactionObject<[
|
|
319
|
+
IBorrowerOperations.InterestBatchManagerStructOutput,
|
|
320
|
+
ITroveManager.LatestBatchDataStructOutput
|
|
321
|
+
] & {
|
|
322
|
+
managerData: IBorrowerOperations.InterestBatchManagerStructOutput;
|
|
323
|
+
batchData: ITroveManager.LatestBatchDataStructOutput;
|
|
324
|
+
}>;
|
|
184
325
|
getDebtInFront(_market: string, _troveId: number | string | BN, _acc: number | string | BN, _iterations: number | string | BN): NonPayableTransactionObject<[
|
|
185
326
|
string,
|
|
186
327
|
string
|
|
@@ -213,6 +354,7 @@ export interface LiquityV2View extends BaseContract {
|
|
|
213
354
|
nextId: string;
|
|
214
355
|
}>;
|
|
215
356
|
getMarketData(_market: string): NonPayableTransactionObject<LiquityV2View.MarketDataStructOutput>;
|
|
357
|
+
getMultipleSortedTroves(_market: string, _startIdx: number | string | BN, _count: number | string | BN): NonPayableTransactionObject<IMultiTroveGetter.CombinedTroveDataStructOutput[]>;
|
|
216
358
|
getNumOfTrovesInFrontOfTrove(_market: string, _troveId: number | string | BN, _iterations: number | string | BN): NonPayableTransactionObject<[
|
|
217
359
|
string,
|
|
218
360
|
string
|
|
@@ -38,6 +38,7 @@ export type { LendingPoolAddressesProvider } from "./LendingPoolAddressesProvide
|
|
|
38
38
|
export type { Lido } from "./Lido";
|
|
39
39
|
export type { LiquityActivePool } from "./LiquityActivePool";
|
|
40
40
|
export type { LiquityV2CollSurplusPool } from "./LiquityV2CollSurplusPool";
|
|
41
|
+
export type { LiquityV2StabilityPool } from "./LiquityV2StabilityPool";
|
|
41
42
|
export type { LiquityV2TroveNFT } from "./LiquityV2TroveNFT";
|
|
42
43
|
export type { LiquityV2View } from "./LiquityV2View";
|
|
43
44
|
export type { LiquityView } from "./LiquityView";
|
package/esm/types/liquityV2.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/positions-sdk",
|
|
3
|
-
"version": "0.0.201-fluid-dev-
|
|
3
|
+
"version": "0.0.201-fluid-dev-11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"eslint": "^8.49.0",
|
|
41
41
|
"eslint-plugin-import": "^2.31.0",
|
|
42
42
|
"mocha": "^10.2.0",
|
|
43
|
+
"nock": "^14.0.0",
|
|
43
44
|
"ts-node": "^10.9.2",
|
|
44
45
|
"typechain": "^8.3.1",
|
|
45
46
|
"typechain-target-web3-v1-3mihai3": "^6.0.2",
|
package/src/aaveV2/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { assetAmountInEth, getAssetInfo } from '@defisaver/tokens';
|
|
|
4
4
|
import {
|
|
5
5
|
Blockish, EthAddress, NetworkNumber, PositionBalances,
|
|
6
6
|
} from '../types/common';
|
|
7
|
-
import { calculateNetApy,
|
|
7
|
+
import { calculateNetApy, getStakingApy } from '../staking';
|
|
8
8
|
import { ethToWeth, wethToEth, wethToEthByAddress } from '../services/utils';
|
|
9
9
|
import { AaveLoanInfoV2Contract, createContractWrapper } from '../contracts';
|
|
10
10
|
import { aprToApy, calculateBorrowingAssetLimit } from '../moneymarket';
|
|
@@ -60,7 +60,7 @@ export const getAaveV2MarketsData = async (web3: Web3, network: NetworkNumber, s
|
|
|
60
60
|
|
|
61
61
|
const stEthMarket = markets.find(({ symbol }) => symbol === 'stETH');
|
|
62
62
|
if (stEthMarket) {
|
|
63
|
-
stEthMarket.incentiveSupplyApy = await
|
|
63
|
+
stEthMarket.incentiveSupplyApy = await getStakingApy('stETH', mainnetWeb3);
|
|
64
64
|
stEthMarket.incentiveSupplyToken = 'stETH';
|
|
65
65
|
}
|
|
66
66
|
|