@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.
Files changed (68) hide show
  1. package/cjs/aaveV2/index.js +1 -1
  2. package/cjs/config/contracts.d.ts +87 -6
  3. package/cjs/config/contracts.js +15 -2
  4. package/cjs/fluid/index.d.ts +25 -2
  5. package/cjs/fluid/index.js +1 -1
  6. package/cjs/helpers/liquityV2Helpers/index.js +2 -2
  7. package/cjs/liquityV2/index.d.ts +9 -4
  8. package/cjs/liquityV2/index.js +69 -10
  9. package/cjs/markets/index.d.ts +1 -1
  10. package/cjs/markets/index.js +2 -1
  11. package/cjs/markets/liquityV2/index.d.ts +2 -1
  12. package/cjs/markets/liquityV2/index.js +12 -1
  13. package/cjs/markets/spark/marketAssets.js +1 -1
  14. package/cjs/morphoAaveV2/index.js +1 -1
  15. package/cjs/morphoAaveV3/index.js +1 -2
  16. package/cjs/spark/index.js +1 -2
  17. package/cjs/staking/staking.d.ts +1 -6
  18. package/cjs/staking/staking.js +20 -23
  19. package/cjs/types/contracts/generated/LiquityV2StabilityPool.d.ts +223 -0
  20. package/cjs/types/contracts/generated/LiquityV2StabilityPool.js +5 -0
  21. package/cjs/types/contracts/generated/LiquityV2View.d.ts +144 -2
  22. package/cjs/types/contracts/generated/index.d.ts +1 -0
  23. package/cjs/types/liquityV2.d.ts +1 -0
  24. package/esm/aaveV2/index.js +2 -2
  25. package/esm/config/contracts.d.ts +87 -6
  26. package/esm/config/contracts.js +15 -2
  27. package/esm/fluid/index.d.ts +25 -2
  28. package/esm/fluid/index.js +1 -1
  29. package/esm/helpers/liquityV2Helpers/index.js +2 -2
  30. package/esm/liquityV2/index.d.ts +9 -4
  31. package/esm/liquityV2/index.js +64 -10
  32. package/esm/markets/index.d.ts +1 -1
  33. package/esm/markets/index.js +1 -1
  34. package/esm/markets/liquityV2/index.d.ts +2 -1
  35. package/esm/markets/liquityV2/index.js +10 -0
  36. package/esm/markets/spark/marketAssets.js +1 -1
  37. package/esm/morphoAaveV2/index.js +2 -2
  38. package/esm/morphoAaveV3/index.js +1 -2
  39. package/esm/spark/index.js +1 -2
  40. package/esm/staking/staking.d.ts +1 -6
  41. package/esm/staking/staking.js +24 -22
  42. package/esm/types/contracts/generated/LiquityV2StabilityPool.d.ts +223 -0
  43. package/esm/types/contracts/generated/LiquityV2StabilityPool.js +4 -0
  44. package/esm/types/contracts/generated/LiquityV2View.d.ts +144 -2
  45. package/esm/types/contracts/generated/index.d.ts +1 -0
  46. package/esm/types/liquityV2.d.ts +1 -0
  47. package/package.json +2 -1
  48. package/src/aaveV2/index.ts +2 -2
  49. package/src/config/contracts.js +15 -2
  50. package/src/fluid/index.ts +1 -1
  51. package/src/helpers/liquityV2Helpers/index.ts +3 -3
  52. package/src/liquityV2/index.ts +79 -12
  53. package/src/markets/index.ts +1 -1
  54. package/src/markets/liquityV2/index.ts +13 -2
  55. package/src/markets/spark/marketAssets.ts +1 -1
  56. package/src/morphoAaveV2/index.ts +2 -2
  57. package/src/morphoAaveV3/index.ts +1 -2
  58. package/src/spark/index.ts +1 -2
  59. package/src/staking/staking.ts +22 -22
  60. package/src/types/contracts/generated/LiquityV2StabilityPool.ts +453 -0
  61. package/src/types/contracts/generated/LiquityV2View.ts +173 -2
  62. package/src/types/contracts/generated/index.ts +1 -0
  63. package/src/types/liquityV2.ts +1 -0
  64. package/cjs/services/dsrService.d.ts +0 -3
  65. package/cjs/services/dsrService.js +0 -28
  66. package/esm/services/dsrService.d.ts +0 -3
  67. package/esm/services/dsrService.js +0 -21
  68. package/src/services/dsrService.ts +0 -16
@@ -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) => "0" | Promise<any> | 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;
@@ -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
- export const getStETHApy = (web3, fromBlock = 17900000, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
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
- export const getCbETHApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
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
- export const getREthApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
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
- export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, void 0, function* () {
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
- export const getSsrApy = () => __awaiter(void 0, void 0, void 0, function* () {
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
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -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";
@@ -108,4 +108,5 @@ export interface LiquityV2TroveData {
108
108
  leveragedAsset: string;
109
109
  liquidationPrice: string;
110
110
  debtInFront: string;
111
+ lastInterestRateAdjTime: string;
111
112
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/positions-sdk",
3
- "version": "0.0.201-fluid-dev-9",
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",
@@ -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, getStETHApy } from '../staking';
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 getStETHApy(mainnetWeb3);
63
+ stEthMarket.incentiveSupplyApy = await getStakingApy('stETH', mainnetWeb3);
64
64
  stEthMarket.incentiveSupplyToken = 'stETH';
65
65
  }
66
66