@curvefi/llamalend-api 1.1.10 → 2.0.0

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 (138) hide show
  1. package/docs/MIGRATION.md +325 -0
  2. package/docs/SUPPORT_LLv2.md +409 -0
  3. package/lib/constants/abis/OneWayLendingFactoryV2ABI.json +543 -0
  4. package/lib/constants/aliases.d.ts +0 -11
  5. package/lib/constants/aliases.js +1 -86
  6. package/lib/constants/coins.d.ts +0 -11
  7. package/lib/constants/coins.js +0 -14
  8. package/lib/constants/utils.d.ts +2 -0
  9. package/lib/constants/utils.js +2 -0
  10. package/lib/index.d.ts +10 -4
  11. package/lib/interfaces.d.ts +3 -2
  12. package/lib/lendMarkets/LendMarketTemplate.d.ts +13 -502
  13. package/lib/lendMarkets/LendMarketTemplate.js +237 -2860
  14. package/lib/lendMarkets/fetch/fetchFactoryData.d.ts +13 -0
  15. package/lib/lendMarkets/fetch/fetchFactoryData.js +101 -0
  16. package/lib/lendMarkets/fetch/fetchLendMarkets.d.ts +3 -0
  17. package/lib/lendMarkets/fetch/fetchLendMarkets.js +94 -0
  18. package/lib/lendMarkets/interfaces/common/amm.d.ts +10 -0
  19. package/lib/lendMarkets/interfaces/common/amm.js +1 -0
  20. package/lib/lendMarkets/interfaces/common/index.d.ts +5 -0
  21. package/lib/lendMarkets/interfaces/common/index.js +5 -0
  22. package/lib/lendMarkets/interfaces/common/prices.d.ts +13 -0
  23. package/lib/lendMarkets/interfaces/common/prices.js +1 -0
  24. package/lib/lendMarkets/interfaces/common/userPosition.d.ts +39 -0
  25. package/lib/lendMarkets/interfaces/common/userPosition.js +1 -0
  26. package/lib/lendMarkets/interfaces/common/vault.d.ts +55 -0
  27. package/lib/lendMarkets/interfaces/common/vault.js +1 -0
  28. package/lib/lendMarkets/interfaces/common/wallet.d.ts +8 -0
  29. package/lib/lendMarkets/interfaces/common/wallet.js +1 -0
  30. package/lib/lendMarkets/interfaces/v1/index.d.ts +4 -0
  31. package/lib/lendMarkets/interfaces/v1/index.js +4 -0
  32. package/lib/lendMarkets/interfaces/v1/leverageV1.d.ts +90 -0
  33. package/lib/lendMarkets/interfaces/v1/leverageV1.js +1 -0
  34. package/lib/lendMarkets/interfaces/v1/loanV1.d.ts +73 -0
  35. package/lib/lendMarkets/interfaces/v1/loanV1.js +1 -0
  36. package/lib/lendMarkets/interfaces/v1/statsV1.d.ts +49 -0
  37. package/lib/lendMarkets/interfaces/v1/statsV1.js +1 -0
  38. package/lib/lendMarkets/interfaces/v2/index.d.ts +3 -0
  39. package/lib/lendMarkets/interfaces/v2/index.js +3 -0
  40. package/lib/lendMarkets/interfaces/v2/leverageV2.d.ts +90 -0
  41. package/lib/lendMarkets/interfaces/v2/leverageV2.js +1 -0
  42. package/lib/lendMarkets/interfaces/v2/loanV2.d.ts +73 -0
  43. package/lib/lendMarkets/interfaces/v2/loanV2.js +1 -0
  44. package/lib/lendMarkets/interfaces/v2/statsV2.d.ts +49 -0
  45. package/lib/lendMarkets/interfaces/v2/statsV2.js +1 -0
  46. package/lib/lendMarkets/lendMarketConstructor.js +1 -1
  47. package/lib/lendMarkets/modules/common/amm.d.ts +19 -0
  48. package/lib/lendMarkets/modules/common/amm.js +137 -0
  49. package/lib/lendMarkets/modules/common/index.d.ts +9 -0
  50. package/lib/lendMarkets/modules/common/index.js +9 -0
  51. package/lib/lendMarkets/modules/common/leverageZapV1Base.d.ts +118 -0
  52. package/lib/lendMarkets/modules/common/leverageZapV1Base.js +770 -0
  53. package/lib/lendMarkets/modules/{leverageZapV2.d.ts → common/leverageZapV2Base.d.ts} +10 -5
  54. package/lib/lendMarkets/modules/{leverageZapV2.js → common/leverageZapV2Base.js} +36 -32
  55. package/lib/lendMarkets/modules/common/loanBase.d.ts +115 -0
  56. package/lib/lendMarkets/modules/common/loanBase.js +793 -0
  57. package/lib/lendMarkets/modules/common/prices.d.ts +19 -0
  58. package/lib/lendMarkets/modules/common/prices.js +104 -0
  59. package/lib/lendMarkets/modules/common/statsBase.d.ts +69 -0
  60. package/lib/lendMarkets/modules/common/statsBase.js +291 -0
  61. package/lib/lendMarkets/modules/common/userPosition.d.ts +46 -0
  62. package/lib/lendMarkets/modules/common/userPosition.js +223 -0
  63. package/lib/lendMarkets/modules/common/vault.d.ts +69 -0
  64. package/lib/lendMarkets/modules/common/vault.js +535 -0
  65. package/lib/lendMarkets/modules/common/wallet.d.ts +13 -0
  66. package/lib/lendMarkets/modules/common/wallet.js +28 -0
  67. package/lib/lendMarkets/modules/index.d.ts +1 -1
  68. package/lib/lendMarkets/modules/index.js +1 -1
  69. package/lib/lendMarkets/modules/v1/index.d.ts +4 -0
  70. package/lib/lendMarkets/modules/v1/index.js +4 -0
  71. package/lib/lendMarkets/modules/v1/leverageV1ZapV1.d.ts +3 -0
  72. package/lib/lendMarkets/modules/v1/leverageV1ZapV1.js +3 -0
  73. package/lib/lendMarkets/modules/v1/leverageV1ZapV2.d.ts +3 -0
  74. package/lib/lendMarkets/modules/v1/leverageV1ZapV2.js +3 -0
  75. package/lib/lendMarkets/modules/v1/loanV1.d.ts +4 -0
  76. package/lib/lendMarkets/modules/v1/loanV1.js +3 -0
  77. package/lib/lendMarkets/modules/v1/statsV1.d.ts +3 -0
  78. package/lib/lendMarkets/modules/v1/statsV1.js +3 -0
  79. package/lib/lendMarkets/modules/v2/index.d.ts +4 -0
  80. package/lib/lendMarkets/modules/v2/index.js +4 -0
  81. package/lib/lendMarkets/modules/v2/leverageV2ZapV1.d.ts +3 -0
  82. package/lib/lendMarkets/modules/v2/leverageV2ZapV1.js +3 -0
  83. package/lib/lendMarkets/modules/v2/leverageV2ZapV2.d.ts +3 -0
  84. package/lib/lendMarkets/modules/v2/leverageV2ZapV2.js +3 -0
  85. package/lib/lendMarkets/modules/v2/loanV2.d.ts +4 -0
  86. package/lib/lendMarkets/modules/v2/loanV2.js +3 -0
  87. package/lib/lendMarkets/modules/v2/statsV2.d.ts +3 -0
  88. package/lib/lendMarkets/modules/v2/statsV2.js +3 -0
  89. package/lib/llamalend.d.ts +6 -6
  90. package/lib/llamalend.js +46 -210
  91. package/lib/utils.js +2 -33
  92. package/package.json +1 -1
  93. package/src/constants/abis/OneWayLendingFactoryV2ABI.json +543 -0
  94. package/src/constants/aliases.ts +1 -97
  95. package/src/constants/coins.ts +0 -25
  96. package/src/constants/utils.ts +4 -0
  97. package/src/interfaces.ts +3 -2
  98. package/src/lendMarkets/LendMarketTemplate.ts +318 -3222
  99. package/src/lendMarkets/fetch/fetchFactoryData.ts +113 -0
  100. package/src/lendMarkets/fetch/fetchLendMarkets.ts +108 -0
  101. package/src/lendMarkets/interfaces/common/amm.ts +11 -0
  102. package/src/lendMarkets/interfaces/common/index.ts +5 -0
  103. package/src/lendMarkets/interfaces/common/prices.ts +13 -0
  104. package/src/lendMarkets/interfaces/common/userPosition.ts +24 -0
  105. package/src/lendMarkets/interfaces/common/vault.ts +48 -0
  106. package/src/lendMarkets/interfaces/common/wallet.ts +3 -0
  107. package/src/lendMarkets/interfaces/v1/index.ts +4 -0
  108. package/src/lendMarkets/interfaces/v1/leverageV1.ts +84 -0
  109. package/src/lendMarkets/interfaces/v1/loanV1.ts +77 -0
  110. package/src/lendMarkets/interfaces/v1/statsV1.ts +21 -0
  111. package/src/lendMarkets/interfaces/v2/index.ts +3 -0
  112. package/src/lendMarkets/interfaces/v2/leverageV2.ts +84 -0
  113. package/src/lendMarkets/interfaces/v2/loanV2.ts +77 -0
  114. package/src/lendMarkets/interfaces/v2/statsV2.ts +21 -0
  115. package/src/lendMarkets/lendMarketConstructor.ts +1 -1
  116. package/src/lendMarkets/modules/common/amm.ts +132 -0
  117. package/src/lendMarkets/modules/common/index.ts +9 -0
  118. package/src/lendMarkets/modules/common/leverageZapV1Base.ts +912 -0
  119. package/src/lendMarkets/modules/{leverageZapV2.ts → common/leverageZapV2Base.ts} +41 -37
  120. package/src/lendMarkets/modules/common/loanBase.ts +773 -0
  121. package/src/lendMarkets/modules/common/prices.ts +111 -0
  122. package/src/lendMarkets/modules/common/statsBase.ts +313 -0
  123. package/src/lendMarkets/modules/common/userPosition.ts +243 -0
  124. package/src/lendMarkets/modules/common/vault.ts +551 -0
  125. package/src/lendMarkets/modules/common/wallet.ts +29 -0
  126. package/src/lendMarkets/modules/index.ts +1 -1
  127. package/src/lendMarkets/modules/v1/index.ts +4 -0
  128. package/src/lendMarkets/modules/v1/leverageV1ZapV1.ts +3 -0
  129. package/src/lendMarkets/modules/v1/leverageV1ZapV2.ts +3 -0
  130. package/src/lendMarkets/modules/v1/loanV1.ts +4 -0
  131. package/src/lendMarkets/modules/v1/statsV1.ts +3 -0
  132. package/src/lendMarkets/modules/v2/index.ts +4 -0
  133. package/src/lendMarkets/modules/v2/leverageV2ZapV1.ts +3 -0
  134. package/src/lendMarkets/modules/v2/leverageV2ZapV2.ts +3 -0
  135. package/src/lendMarkets/modules/v2/loanV2.ts +4 -0
  136. package/src/lendMarkets/modules/v2/statsV2.ts +3 -0
  137. package/src/llamalend.ts +47 -244
  138. package/src/utils.ts +2 -35
@@ -0,0 +1,223 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import memoize from "memoizee";
11
+ import { BN, formatUnits, _getAddress, toBN, } from "../../../utils";
12
+ import { _getUserCollateral, _getUserCollateralForce } from "../../../external-api";
13
+ export class UserPositionModule {
14
+ constructor(market) {
15
+ this._userState = memoize((...args_1) => __awaiter(this, [...args_1], void 0, function* (address = "") {
16
+ address = _getAddress.call(this.llamalend, address);
17
+ const contract = this.llamalend.contracts[this.market.addresses.controller].contract;
18
+ const [_collateral, _borrowed, _debt, _N] = yield contract.user_state(address, this.llamalend.constantOptions);
19
+ return { _collateral, _borrowed, _debt, _N };
20
+ }), {
21
+ promise: true,
22
+ maxAge: 10 * 1000, // 10s
23
+ });
24
+ this.market = market;
25
+ this.llamalend = market.getLlamalend();
26
+ }
27
+ userLoanExists() {
28
+ return __awaiter(this, arguments, void 0, function* (address = "") {
29
+ address = _getAddress.call(this.llamalend, address);
30
+ return yield this.llamalend.contracts[this.market.addresses.controller].contract.loan_exists(address, this.llamalend.constantOptions);
31
+ });
32
+ }
33
+ userState() {
34
+ return __awaiter(this, arguments, void 0, function* (address = "") {
35
+ const { _collateral, _borrowed, _debt, _N } = yield this._userState(address);
36
+ return {
37
+ collateral: formatUnits(_collateral, this.market.collateral_token.decimals),
38
+ borrowed: formatUnits(_borrowed, this.market.borrowed_token.decimals),
39
+ debt: formatUnits(_debt, this.market.borrowed_token.decimals),
40
+ N: formatUnits(_N, 0),
41
+ };
42
+ });
43
+ }
44
+ userStateBigInt() {
45
+ return __awaiter(this, arguments, void 0, function* (address = "") {
46
+ return yield this._userState(address);
47
+ });
48
+ }
49
+ userHealth() {
50
+ return __awaiter(this, arguments, void 0, function* (full = true, address = "") {
51
+ address = _getAddress.call(this.llamalend, address);
52
+ let _health = yield this.llamalend.contracts[this.market.addresses.controller].contract.health(address, full, this.llamalend.constantOptions);
53
+ _health = _health * BigInt(100);
54
+ return formatUnits(_health);
55
+ });
56
+ }
57
+ _userBands(address) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ address = _getAddress.call(this.llamalend, address);
60
+ const _bands = yield this.llamalend.contracts[this.market.addresses.amm].contract.read_user_tick_numbers(address, this.llamalend.constantOptions);
61
+ return Array.from(_bands).reverse();
62
+ });
63
+ }
64
+ userBands() {
65
+ return __awaiter(this, arguments, void 0, function* (address = "") {
66
+ return (yield this._userBands(address)).map((_t) => Number(_t));
67
+ });
68
+ }
69
+ userBandsBigInt() {
70
+ return __awaiter(this, arguments, void 0, function* (address = "") {
71
+ return yield this._userBands(address);
72
+ });
73
+ }
74
+ userRange() {
75
+ return __awaiter(this, arguments, void 0, function* (address = "") {
76
+ const [n2, n1] = yield this.userBands(address);
77
+ if (n1 == n2)
78
+ return 0;
79
+ return n2 - n1 + 1;
80
+ });
81
+ }
82
+ userPrices() {
83
+ return __awaiter(this, arguments, void 0, function* (address = "") {
84
+ address = _getAddress.call(this.llamalend, address);
85
+ const _prices = yield this.llamalend.contracts[this.market.addresses.controller].contract.user_prices(address, this.llamalend.constantOptions);
86
+ return _prices.map((_p) => formatUnits(_p)).reverse();
87
+ });
88
+ }
89
+ userLoss() {
90
+ return __awaiter(this, arguments, void 0, function* (userAddress = "") {
91
+ userAddress = _getAddress.call(this.llamalend, userAddress);
92
+ const [userCollateral, _current_collateral_estimation] = yield Promise.all([
93
+ _getUserCollateral(this.llamalend.constants.NETWORK_NAME, this.market.addresses.controller, userAddress),
94
+ this.llamalend.contracts[this.market.addresses.amm].contract.get_y_up(userAddress),
95
+ ]);
96
+ const deposited_collateral = userCollateral.total_deposit_precise;
97
+ const current_collateral_estimation = this.llamalend.formatUnits(_current_collateral_estimation, this.market.collateral_token.decimals);
98
+ if (BN(deposited_collateral).lte(0)) {
99
+ return {
100
+ deposited_collateral,
101
+ current_collateral_estimation,
102
+ loss: "0.0",
103
+ loss_pct: "0.0",
104
+ };
105
+ }
106
+ const loss = BN(deposited_collateral).minus(current_collateral_estimation).toString();
107
+ const loss_pct = BN(loss).div(deposited_collateral).times(100).toString();
108
+ return {
109
+ deposited_collateral,
110
+ current_collateral_estimation,
111
+ loss,
112
+ loss_pct,
113
+ };
114
+ });
115
+ }
116
+ userBandsBalances() {
117
+ return __awaiter(this, arguments, void 0, function* (address = "") {
118
+ const [n2, n1] = yield this.userBands(address);
119
+ if (n1 == 0 && n2 == 0)
120
+ return {};
121
+ address = _getAddress.call(this.llamalend, address);
122
+ const contract = this.llamalend.contracts[this.market.addresses.amm].contract;
123
+ const [_borrowed, _collateral] = yield contract.get_xy(address, this.llamalend.constantOptions);
124
+ const res = {};
125
+ for (let i = n1; i <= n2; i++) {
126
+ res[i] = {
127
+ collateral: formatUnits(_collateral[i - n1], this.market.collateral_token.decimals),
128
+ borrowed: formatUnits(_borrowed[i - n1], this.market.borrowed_token.decimals),
129
+ };
130
+ }
131
+ return res;
132
+ });
133
+ }
134
+ currentLeverage() {
135
+ return __awaiter(this, arguments, void 0, function* (userAddress = '') {
136
+ userAddress = _getAddress.call(this.llamalend, userAddress);
137
+ const [userCollateral, { collateral }] = yield Promise.all([
138
+ _getUserCollateral(this.llamalend.constants.NETWORK_NAME, this.market.addresses.controller, userAddress),
139
+ this.userState(userAddress),
140
+ ]);
141
+ const total_deposit_from_user = userCollateral.total_deposit_from_user_precise;
142
+ return BN(collateral).div(total_deposit_from_user).toString();
143
+ });
144
+ }
145
+ currentPnL() {
146
+ return __awaiter(this, arguments, void 0, function* (userAddress = '') {
147
+ userAddress = _getAddress.call(this.llamalend, userAddress);
148
+ const calls = [
149
+ this.llamalend.contracts[this.market.addresses.controller].multicallContract.user_state(userAddress, this.llamalend.constantOptions),
150
+ this.llamalend.contracts[this.market.addresses.amm].multicallContract.price_oracle(userAddress),
151
+ ];
152
+ const [userState, oraclePrice] = yield this.llamalend.multicallProvider.all(calls);
153
+ if (!(userState || oraclePrice)) {
154
+ throw new Error('Multicall error');
155
+ }
156
+ const debt = userState[2];
157
+ const userCollateral = yield _getUserCollateral(this.llamalend.constants.NETWORK_NAME, this.market.addresses.controller, userAddress);
158
+ const totalDepositUsdValueFull = userCollateral.total_deposit_usd_value;
159
+ const totalDepositUsdValueUser = userCollateral.total_deposit_from_user_usd_value;
160
+ const totalBorrowed = userCollateral.total_borrowed;
161
+ const oraclePriceFormatted = this.llamalend.formatUnits(oraclePrice, 18);
162
+ const debtFormatted = this.llamalend.formatUnits(debt, 18);
163
+ const { _collateral: AmmCollateral, _borrowed: AmmBorrowed } = yield this._userState(userAddress);
164
+ const [AmmCollateralFormatted, AmmBorrowedFormatted] = [this.llamalend.formatUnits(AmmCollateral, this.market.collateral_token.decimals), this.llamalend.formatUnits(AmmBorrowed, this.market.borrowed_token.decimals)];
165
+ const a = BN(AmmCollateralFormatted).times(oraclePriceFormatted);
166
+ const b = BN(totalBorrowed).minus(debtFormatted);
167
+ const currentPosition = a.plus(AmmBorrowedFormatted).plus(b);
168
+ const currentProfit = currentPosition.minus(totalDepositUsdValueFull);
169
+ const percentage = currentProfit.div(totalDepositUsdValueUser).times(100);
170
+ return {
171
+ currentPosition: currentPosition.toFixed(this.market.borrowed_token.decimals).toString(),
172
+ deposited: totalDepositUsdValueUser.toString(),
173
+ currentProfit: currentProfit.toFixed(this.market.borrowed_token.decimals).toString(),
174
+ percentage: percentage.toFixed(2).toString(),
175
+ };
176
+ });
177
+ }
178
+ userBoost() {
179
+ return __awaiter(this, arguments, void 0, function* (address = "") {
180
+ if (this.market.addresses.gauge === this.llamalend.constants.ZERO_ADDRESS) {
181
+ throw Error(`${this.market.name} doesn't have gauge`);
182
+ }
183
+ if (this.market.vault.rewardsOnly()) {
184
+ throw Error(`${this.market.name} has Rewards-Only Gauge. Use stats.rewardsApy instead`);
185
+ }
186
+ address = _getAddress.call(this.llamalend, address);
187
+ const gaugeContract = this.llamalend.contracts[this.market.addresses.gauge].multicallContract;
188
+ const [workingBalanceBN, balanceBN] = (yield this.llamalend.multicallProvider.all([
189
+ gaugeContract.working_balances(address),
190
+ gaugeContract.balanceOf(address),
191
+ ])).map((value) => toBN(value));
192
+ if (balanceBN.isZero()) {
193
+ return '1.0';
194
+ }
195
+ const boostBN = workingBalanceBN.div(0.4).div(balanceBN);
196
+ if (boostBN.lt(1))
197
+ return '1.0';
198
+ if (boostBN.gt(2.5))
199
+ return '2.5';
200
+ return boostBN.toFixed(4).replace(/([0-9])0+$/, '$1');
201
+ });
202
+ }
203
+ getCurrentLeverageParams(userAddress) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const [userCollateralData, { collateral: stateCollateral }] = yield Promise.all([
206
+ _getUserCollateral(this.llamalend.constants.NETWORK_NAME, this.market.addresses.controller, userAddress),
207
+ this.userState(userAddress),
208
+ ]);
209
+ return {
210
+ stateCollateral,
211
+ totalDepositFromUser: String(userCollateralData.total_deposit_from_user_precise),
212
+ };
213
+ });
214
+ }
215
+ forceUpdateUserState(newTx, userAddress) {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ const address = userAddress || this.llamalend.signerAddress;
218
+ if (!address)
219
+ throw Error("Need to connect wallet or pass address into args");
220
+ yield _getUserCollateralForce(this.llamalend.constants.NETWORK_NAME, this.market.addresses.controller, address, newTx);
221
+ });
222
+ }
223
+ }
@@ -0,0 +1,69 @@
1
+ import memoize from "memoizee";
2
+ import type { TAmount, TGas, IReward } from "../../../interfaces";
3
+ import type { LendMarketTemplate } from "../../LendMarketTemplate";
4
+ export declare class VaultModule {
5
+ private market;
6
+ private llamalend;
7
+ constructor(market: LendMarketTemplate);
8
+ vaultMaxDeposit(address?: string): Promise<string>;
9
+ vaultPreviewDeposit(amount: TAmount): Promise<string>;
10
+ vaultDepositIsApproved(borrowed: TAmount): Promise<boolean>;
11
+ vaultDepositApproveEstimateGas(borrowed: TAmount): Promise<TGas>;
12
+ vaultDepositApprove(borrowed: TAmount): Promise<string[]>;
13
+ private _vaultDeposit;
14
+ vaultDepositEstimateGas(amount: TAmount): Promise<TGas>;
15
+ vaultDeposit(amount: TAmount): Promise<string>;
16
+ vaultMaxMint(address?: string): Promise<string>;
17
+ vaultPreviewMint(amount: TAmount): Promise<string>;
18
+ vaultMintIsApproved(borrowed: TAmount): Promise<boolean>;
19
+ vaultMintApproveEstimateGas(borrowed: TAmount): Promise<TGas>;
20
+ vaultMintApprove(borrowed: TAmount): Promise<string[]>;
21
+ private _vaultMint;
22
+ vaultMintEstimateGas(amount: TAmount): Promise<TGas>;
23
+ vaultMint(amount: TAmount): Promise<string>;
24
+ vaultMaxWithdraw(address?: string): Promise<string>;
25
+ vaultPreviewWithdraw(amount: TAmount): Promise<string>;
26
+ private _vaultWithdraw;
27
+ vaultWithdrawEstimateGas(amount: TAmount): Promise<TGas>;
28
+ vaultWithdraw(amount: TAmount): Promise<string>;
29
+ vaultMaxRedeem(address?: string): Promise<string>;
30
+ vaultPreviewRedeem(amount: TAmount): Promise<string>;
31
+ private _vaultRedeem;
32
+ vaultRedeemEstimateGas(amount: TAmount): Promise<TGas>;
33
+ vaultRedeem(amount: TAmount): Promise<string>;
34
+ vaultConvertToShares(assets: TAmount): Promise<string>;
35
+ vaultConvertToAssets(shares: TAmount): Promise<string>;
36
+ vaultStakeIsApproved(vaultShares: number | string): Promise<boolean>;
37
+ vaultStakeApproveEstimateGas(vaultShares: number | string): Promise<TGas>;
38
+ vaultStakeApprove(vaultShares: number | string): Promise<string[]>;
39
+ vaultStakeEstimateGas(vaultShares: number | string): Promise<TGas>;
40
+ vaultStake(vaultShares: number | string): Promise<string>;
41
+ vaultUnstakeEstimateGas(vaultShares: number | string): Promise<TGas>;
42
+ vaultUnstake(vaultShares: number | string): Promise<string>;
43
+ vaultRewardsOnly(): boolean;
44
+ vaultTotalLiquidity(useAPI?: boolean): Promise<string>;
45
+ private _calcCrvApr;
46
+ vaultCrvApr(): Promise<[baseApy: number, boostedApy: number]>;
47
+ vaultClaimableCrv(address?: string): Promise<string>;
48
+ private _vaultClaimCrv;
49
+ vaultClaimCrvEstimateGas(): Promise<TGas>;
50
+ vaultClaimCrv(): Promise<string>;
51
+ vaultRewardTokens: (() => Promise<{
52
+ token: string;
53
+ symbol: string;
54
+ decimals: number;
55
+ }[]>) & memoize.Memoized<() => Promise<{
56
+ token: string;
57
+ symbol: string;
58
+ decimals: number;
59
+ }[]>>;
60
+ vaultRewardsApr: (useApi?: boolean) => Promise<IReward[]>;
61
+ vaultClaimableRewards(address?: string): Promise<{
62
+ token: string;
63
+ symbol: string;
64
+ amount: string;
65
+ }[]>;
66
+ private _vaultClaimRewards;
67
+ vaultClaimRewardsEstimateGas(): Promise<TGas>;
68
+ vaultClaimRewards(): Promise<string>;
69
+ }