@ichidao/ichi-vaults-sdk 0.1.43 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +62 -208
  2. package/dist/abis/types/AlgebraIntegralPool.d.ts +702 -793
  3. package/dist/abis/types/AlgebraPool.d.ts +693 -730
  4. package/dist/abis/types/ClPool.d.ts +789 -871
  5. package/dist/abis/types/DepositGuard.d.ts +193 -178
  6. package/dist/abis/types/DepositGuardWithHtsWrapping.d.ts +300 -297
  7. package/dist/abis/types/ERC20.d.ts +120 -147
  8. package/dist/abis/types/ERC20Wrapper.d.ts +147 -155
  9. package/dist/abis/types/IchiVault.d.ts +598 -728
  10. package/dist/abis/types/MultiFeeDistributer.d.ts +314 -423
  11. package/dist/abis/types/Multicall.d.ts +58 -73
  12. package/dist/abis/types/UniswapV3Pool.d.ts +654 -693
  13. package/dist/abis/types/common.d.ts +40 -12
  14. package/dist/abis/types/factories/AlgebraIntegralPool__factory.d.ts +2 -3
  15. package/dist/abis/types/factories/AlgebraIntegralPool__factory.js +10 -13
  16. package/dist/abis/types/factories/AlgebraIntegralPool__factory.js.map +1 -1
  17. package/dist/abis/types/factories/AlgebraPool__factory.d.ts +2 -3
  18. package/dist/abis/types/factories/AlgebraPool__factory.js +10 -13
  19. package/dist/abis/types/factories/AlgebraPool__factory.js.map +1 -1
  20. package/dist/abis/types/factories/ClPool__factory.d.ts +2 -3
  21. package/dist/abis/types/factories/ClPool__factory.js +10 -13
  22. package/dist/abis/types/factories/ClPool__factory.js.map +1 -1
  23. package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.d.ts +2 -3
  24. package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.js +10 -13
  25. package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.js.map +1 -1
  26. package/dist/abis/types/factories/DepositGuard__factory.d.ts +2 -3
  27. package/dist/abis/types/factories/DepositGuard__factory.js +10 -13
  28. package/dist/abis/types/factories/DepositGuard__factory.js.map +1 -1
  29. package/dist/abis/types/factories/ERC20Wrapper__factory.d.ts +2 -3
  30. package/dist/abis/types/factories/ERC20Wrapper__factory.js +10 -13
  31. package/dist/abis/types/factories/ERC20Wrapper__factory.js.map +1 -1
  32. package/dist/abis/types/factories/ERC20__factory.d.ts +2 -3
  33. package/dist/abis/types/factories/ERC20__factory.js +10 -13
  34. package/dist/abis/types/factories/ERC20__factory.js.map +1 -1
  35. package/dist/abis/types/factories/IchiVault__factory.d.ts +2 -3
  36. package/dist/abis/types/factories/IchiVault__factory.js +10 -13
  37. package/dist/abis/types/factories/IchiVault__factory.js.map +1 -1
  38. package/dist/abis/types/factories/MultiFeeDistributer__factory.d.ts +2 -3
  39. package/dist/abis/types/factories/MultiFeeDistributer__factory.js +10 -13
  40. package/dist/abis/types/factories/MultiFeeDistributer__factory.js.map +1 -1
  41. package/dist/abis/types/factories/Multicall__factory.d.ts +2 -3
  42. package/dist/abis/types/factories/Multicall__factory.js +10 -13
  43. package/dist/abis/types/factories/Multicall__factory.js.map +1 -1
  44. package/dist/abis/types/factories/UniswapV3Pool__factory.d.ts +2 -3
  45. package/dist/abis/types/factories/UniswapV3Pool__factory.js +10 -13
  46. package/dist/abis/types/factories/UniswapV3Pool__factory.js.map +1 -1
  47. package/dist/src/__tests__/index.test.js +356 -738
  48. package/dist/src/__tests__/index.test.js.map +1 -1
  49. package/dist/src/abis/types/AlgebraIntegralPool.d.ts +702 -793
  50. package/dist/src/abis/types/AlgebraPool.d.ts +693 -730
  51. package/dist/src/abis/types/ClPool.d.ts +789 -871
  52. package/dist/src/abis/types/DepositGuard.d.ts +193 -178
  53. package/dist/src/abis/types/DepositGuardWithHtsWrapping.d.ts +300 -297
  54. package/dist/src/abis/types/ERC20.d.ts +120 -147
  55. package/dist/src/abis/types/ERC20Wrapper.d.ts +147 -155
  56. package/dist/src/abis/types/IchiVault.d.ts +598 -728
  57. package/dist/src/abis/types/MultiFeeDistributer.d.ts +314 -423
  58. package/dist/src/abis/types/Multicall.d.ts +58 -73
  59. package/dist/src/abis/types/UniswapV3Pool.d.ts +654 -693
  60. package/dist/src/abis/types/common.d.ts +40 -12
  61. package/dist/src/abis/types/factories/AlgebraIntegralPool__factory.d.ts +2 -3
  62. package/dist/src/abis/types/factories/AlgebraPool__factory.d.ts +2 -3
  63. package/dist/src/abis/types/factories/ClPool__factory.d.ts +2 -3
  64. package/dist/src/abis/types/factories/DepositGuardWithHtsWrapping__factory.d.ts +2 -3
  65. package/dist/src/abis/types/factories/DepositGuard__factory.d.ts +2 -3
  66. package/dist/src/abis/types/factories/ERC20Wrapper__factory.d.ts +2 -3
  67. package/dist/src/abis/types/factories/ERC20__factory.d.ts +2 -3
  68. package/dist/src/abis/types/factories/IchiVault__factory.d.ts +2 -3
  69. package/dist/src/abis/types/factories/MultiFeeDistributer__factory.d.ts +2 -3
  70. package/dist/src/abis/types/factories/Multicall__factory.d.ts +2 -3
  71. package/dist/src/abis/types/factories/UniswapV3Pool__factory.d.ts +2 -3
  72. package/dist/src/contracts/index.d.ts +1 -1
  73. package/dist/src/contracts/index.js +12 -12
  74. package/dist/src/contracts/index.js.map +1 -1
  75. package/dist/src/functions/_totalBalances.d.ts +2 -3
  76. package/dist/src/functions/_totalBalances.js +46 -117
  77. package/dist/src/functions/_totalBalances.js.map +1 -1
  78. package/dist/src/functions/_vaultEvents.js +347 -488
  79. package/dist/src/functions/_vaultEvents.js.map +1 -1
  80. package/dist/src/functions/_withdrawHelpers.d.ts +2 -3
  81. package/dist/src/functions/_withdrawHelpers.js +13 -62
  82. package/dist/src/functions/_withdrawHelpers.js.map +1 -1
  83. package/dist/src/functions/calculateApr.d.ts +1 -1
  84. package/dist/src/functions/calculateApr.js +77 -150
  85. package/dist/src/functions/calculateApr.js.map +1 -1
  86. package/dist/src/functions/calculateDtr.d.ts +1 -1
  87. package/dist/src/functions/calculateDtr.js +84 -169
  88. package/dist/src/functions/calculateDtr.js.map +1 -1
  89. package/dist/src/functions/calculateFees.d.ts +1 -1
  90. package/dist/src/functions/calculateFees.js +97 -172
  91. package/dist/src/functions/calculateFees.js.map +1 -1
  92. package/dist/src/functions/chains.js +6 -6
  93. package/dist/src/functions/chains.js.map +1 -1
  94. package/dist/src/functions/claimRewards.d.ts +3 -4
  95. package/dist/src/functions/claimRewards.js +29 -92
  96. package/dist/src/functions/claimRewards.js.map +1 -1
  97. package/dist/src/functions/deposit.d.ts +7 -9
  98. package/dist/src/functions/deposit.js +199 -364
  99. package/dist/src/functions/deposit.js.map +1 -1
  100. package/dist/src/functions/depositWithHtsWrapping.d.ts +4 -6
  101. package/dist/src/functions/depositWithHtsWrapping.js +109 -226
  102. package/dist/src/functions/depositWithHtsWrapping.js.map +1 -1
  103. package/dist/src/functions/getFeeAprs.d.ts +1 -1
  104. package/dist/src/functions/getFeeAprs.js +55 -111
  105. package/dist/src/functions/getFeeAprs.js.map +1 -1
  106. package/dist/src/functions/priceFromPool.d.ts +3 -4
  107. package/dist/src/functions/priceFromPool.js +99 -208
  108. package/dist/src/functions/priceFromPool.js.map +1 -1
  109. package/dist/src/functions/rewardInfo.js +79 -159
  110. package/dist/src/functions/rewardInfo.js.map +1 -1
  111. package/dist/src/functions/totalBalances.d.ts +2 -3
  112. package/dist/src/functions/totalBalances.js +14 -67
  113. package/dist/src/functions/totalBalances.js.map +1 -1
  114. package/dist/src/functions/userBalances.d.ts +2 -3
  115. package/dist/src/functions/userBalances.js +244 -368
  116. package/dist/src/functions/userBalances.js.map +1 -1
  117. package/dist/src/functions/userRewards.d.ts +1 -1
  118. package/dist/src/functions/userRewards.js +87 -145
  119. package/dist/src/functions/userRewards.js.map +1 -1
  120. package/dist/src/functions/vault.d.ts +1 -1
  121. package/dist/src/functions/vault.js +203 -383
  122. package/dist/src/functions/vault.js.map +1 -1
  123. package/dist/src/functions/vaultBasics.js +6 -7
  124. package/dist/src/functions/vaultBasics.js.map +1 -1
  125. package/dist/src/functions/vaultMetrics.d.ts +1 -1
  126. package/dist/src/functions/vaultMetrics.js +111 -189
  127. package/dist/src/functions/vaultMetrics.js.map +1 -1
  128. package/dist/src/functions/vaultPositions.d.ts +1 -1
  129. package/dist/src/functions/vaultPositions.js +69 -134
  130. package/dist/src/functions/vaultPositions.js.map +1 -1
  131. package/dist/src/functions/vaultTvl.d.ts +1 -1
  132. package/dist/src/functions/vaultTvl.js +80 -165
  133. package/dist/src/functions/vaultTvl.js.map +1 -1
  134. package/dist/src/functions/withdraw.d.ts +6 -8
  135. package/dist/src/functions/withdraw.js +165 -295
  136. package/dist/src/functions/withdraw.js.map +1 -1
  137. package/dist/src/functions/withdrawWithErc20Wrapping.d.ts +2 -4
  138. package/dist/src/functions/withdrawWithErc20Wrapping.js +59 -126
  139. package/dist/src/functions/withdrawWithErc20Wrapping.js.map +1 -1
  140. package/dist/src/graphql/constants.js +217 -212
  141. package/dist/src/graphql/constants.js.map +1 -1
  142. package/dist/src/graphql/functions.js +30 -102
  143. package/dist/src/graphql/functions.js.map +1 -1
  144. package/dist/src/graphql/queries.js +407 -42
  145. package/dist/src/graphql/queries.js.map +1 -1
  146. package/dist/src/index.cjs.js +2 -2
  147. package/dist/src/index.esm.js +2 -2
  148. package/dist/src/src/contracts/index.d.ts +1 -1
  149. package/dist/src/src/functions/_totalBalances.d.ts +2 -3
  150. package/dist/src/src/functions/_withdrawHelpers.d.ts +2 -3
  151. package/dist/src/src/functions/calculateApr.d.ts +1 -1
  152. package/dist/src/src/functions/calculateDtr.d.ts +1 -1
  153. package/dist/src/src/functions/calculateFees.d.ts +1 -1
  154. package/dist/src/src/functions/claimRewards.d.ts +3 -4
  155. package/dist/src/src/functions/deposit.d.ts +7 -9
  156. package/dist/src/src/functions/depositWithHtsWrapping.d.ts +4 -6
  157. package/dist/src/src/functions/getFeeAprs.d.ts +1 -1
  158. package/dist/src/src/functions/priceFromPool.d.ts +3 -4
  159. package/dist/src/src/functions/totalBalances.d.ts +2 -3
  160. package/dist/src/src/functions/userBalances.d.ts +2 -3
  161. package/dist/src/src/functions/userRewards.d.ts +1 -1
  162. package/dist/src/src/functions/vault.d.ts +1 -1
  163. package/dist/src/src/functions/vaultMetrics.d.ts +1 -1
  164. package/dist/src/src/functions/vaultPositions.d.ts +1 -1
  165. package/dist/src/src/functions/vaultTvl.d.ts +1 -1
  166. package/dist/src/src/functions/withdraw.d.ts +6 -8
  167. package/dist/src/src/functions/withdrawWithErc20Wrapping.d.ts +2 -4
  168. package/dist/src/src/types/calculateGasMargin.d.ts +1 -2
  169. package/dist/src/src/types/index.d.ts +12 -13
  170. package/dist/src/src/utils/amountWithSlippage.d.ts +1 -2
  171. package/dist/src/src/utils/config/addresses.d.ts +1 -1
  172. package/dist/src/src/utils/formatBigInt.d.ts +1 -2
  173. package/dist/src/src/utils/getPrice.d.ts +1 -2
  174. package/dist/src/src/utils/multicallUtils.d.ts +9 -10
  175. package/dist/src/src/utils/parseBigInt.d.ts +1 -2
  176. package/dist/src/types/calculateGasMargin.d.ts +1 -2
  177. package/dist/src/types/calculateGasMargin.js +4 -5
  178. package/dist/src/types/calculateGasMargin.js.map +1 -1
  179. package/dist/src/types/index.d.ts +12 -13
  180. package/dist/src/types/index.js +1 -0
  181. package/dist/src/types/index.js.map +1 -1
  182. package/dist/src/utils/amountWithSlippage.d.ts +1 -2
  183. package/dist/src/utils/amountWithSlippage.js +1 -1
  184. package/dist/src/utils/amountWithSlippage.js.map +1 -1
  185. package/dist/src/utils/cache.js +2 -2
  186. package/dist/src/utils/cache.js.map +1 -1
  187. package/dist/src/utils/config/addresses.d.ts +1 -1
  188. package/dist/src/utils/config/addresses.js +276 -268
  189. package/dist/src/utils/config/addresses.js.map +1 -1
  190. package/dist/src/utils/formatBigInt.d.ts +1 -2
  191. package/dist/src/utils/formatBigInt.js +4 -5
  192. package/dist/src/utils/formatBigInt.js.map +1 -1
  193. package/dist/src/utils/getConfigByFactory.js +24 -28
  194. package/dist/src/utils/getConfigByFactory.js.map +1 -1
  195. package/dist/src/utils/getGraphUrls.js +8 -12
  196. package/dist/src/utils/getGraphUrls.js.map +1 -1
  197. package/dist/src/utils/getPrice.d.ts +1 -2
  198. package/dist/src/utils/getPrice.js +5 -6
  199. package/dist/src/utils/getPrice.js.map +1 -1
  200. package/dist/src/utils/isVelodrome.js +2 -3
  201. package/dist/src/utils/isVelodrome.js.map +1 -1
  202. package/dist/src/utils/multicallUtils.d.ts +9 -10
  203. package/dist/src/utils/multicallUtils.js +38 -93
  204. package/dist/src/utils/multicallUtils.js.map +1 -1
  205. package/dist/src/utils/parseBigInt.d.ts +1 -2
  206. package/dist/src/utils/parseBigInt.js +5 -7
  207. package/dist/src/utils/parseBigInt.js.map +1 -1
  208. package/dist/src/utils/positionKey.js +2 -4
  209. package/dist/src/utils/positionKey.js.map +1 -1
  210. package/package.json +5 -17
@@ -1,9 +1,7 @@
1
- import { ContractTransaction, Overrides } from '@ethersproject/contracts';
2
- import { JsonRpcProvider } from '@ethersproject/providers';
3
- import { BigNumber } from 'ethers';
1
+ import { JsonRpcProvider, ContractTransactionResponse, Overrides, Signer } from 'ethers';
4
2
  import { SupportedDex } from '../types';
5
- export declare function approveVaultToken(accountAddress: string, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, shares?: string | number | BigNumber, overrides?: Overrides): Promise<ContractTransaction>;
6
- export declare function isVaultTokenApproved(accountAddress: string, shares: string | number | BigNumber, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex): Promise<boolean>;
7
- export declare function withdraw(accountAddress: string, shares: string | number | BigNumber, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, overrides?: Overrides): Promise<ContractTransaction>;
8
- export declare function withdrawWithSlippage(accountAddress: string, shares: string | number | BigNumber, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransaction>;
9
- export declare function withdrawNativeToken(accountAddress: string, shares: string | number | BigNumber, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransaction>;
3
+ export declare function approveVaultToken(accountAddress: string, vaultAddress: string, signer: Signer, dex: SupportedDex, shares?: string | number | bigint, overrides?: Overrides): Promise<ContractTransactionResponse>;
4
+ export declare function isVaultTokenApproved(accountAddress: string, shares: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex): Promise<boolean>;
5
+ export declare function withdraw(accountAddress: string, shares: string | number | bigint, vaultAddress: string, signer: Signer, dex: SupportedDex, overrides?: Overrides): Promise<ContractTransactionResponse>;
6
+ export declare function withdrawWithSlippage(accountAddress: string, shares: string | number | bigint, vaultAddress: string, signer: Signer, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransactionResponse>;
7
+ export declare function withdrawNativeToken(accountAddress: string, shares: string | number | bigint, vaultAddress: string, signer: Signer, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransactionResponse>;
@@ -1,316 +1,186 @@
1
1
  "use strict";
2
2
  /* eslint-disable import/prefer-default-export */
3
- var __assign = (this && this.__assign) || function () {
4
- __assign = Object.assign || function(t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
- t[p] = s[p];
9
- }
10
- return t;
11
- };
12
- return __assign.apply(this, arguments);
13
- };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
- var __generator = (this && this.__generator) || function (thisArg, body) {
24
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
25
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
- function verb(n) { return function (v) { return step([n, v]); }; }
27
- function step(op) {
28
- if (f) throw new TypeError("Generator is already executing.");
29
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
31
- if (y = 0, t) op = [op[0] & 2, t.value];
32
- switch (op[0]) {
33
- case 0: case 1: t = op; break;
34
- case 4: _.label++; return { value: op[1], done: false };
35
- case 5: _.label++; y = op[1]; op = [0]; continue;
36
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
- default:
38
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
- if (t[2]) _.ops.pop();
43
- _.trys.pop(); continue;
44
- }
45
- op = body.call(thisArg, _);
46
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
- }
49
- };
50
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
51
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
52
5
  };
53
6
  Object.defineProperty(exports, "__esModule", { value: true });
54
7
  exports.withdrawNativeToken = exports.withdrawWithSlippage = exports.withdraw = exports.isVaultTokenApproved = exports.approveVaultToken = void 0;
55
- var ethers_1 = require("ethers");
56
- var constants_1 = require("@ethersproject/constants");
57
- var contracts_1 = require("../contracts");
58
- var parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
59
- var types_1 = require("../types");
60
- var _withdrawHelpers_1 = require("./_withdrawHelpers");
61
- var calculateGasMargin_1 = require("../types/calculateGasMargin");
8
+ const ethers_1 = require("ethers");
9
+ const contracts_1 = require("../contracts");
10
+ const parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
11
+ const types_1 = require("../types");
12
+ const calculateGasMargin_1 = require("../types/calculateGasMargin");
62
13
  // eslint-disable-next-line import/no-cycle
63
- var vault_1 = require("./vault");
64
- var addresses_1 = require("../utils/config/addresses");
65
- var amountWithSlippage_1 = __importDefault(require("../utils/amountWithSlippage"));
66
- var userBalances_1 = require("./userBalances");
67
- var vaultBasics_1 = __importDefault(require("./vaultBasics"));
68
- function approveVaultToken(accountAddress, vaultAddress, jsonProvider, dex, shares, overrides) {
69
- var _a, _b;
70
- return __awaiter(this, void 0, void 0, function () {
71
- var chainId, signer, vaultTokenContract, sharesBN, depositGuardAddress, gasLimit, _c, _d;
72
- return __generator(this, function (_e) {
73
- switch (_e.label) {
74
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
75
- case 1:
76
- chainId = (_e.sent()).chainId;
77
- signer = jsonProvider.getSigner(accountAddress);
78
- vaultTokenContract = (0, contracts_1.getERC20Contract)(vaultAddress, signer);
79
- sharesBN = shares
80
- ? shares instanceof ethers_1.BigNumber
81
- ? shares
82
- : (0, parseBigInt_1.default)(shares, types_1.ichiVaultDecimals)
83
- : constants_1.MaxUint256;
84
- depositGuardAddress = (_a = addresses_1.addressConfig[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.address;
85
- if (!depositGuardAddress) {
86
- throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
87
- }
88
- if (!((_b = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _b !== void 0)) return [3 /*break*/, 2];
89
- _c = _b;
90
- return [3 /*break*/, 4];
91
- case 2:
92
- _d = calculateGasMargin_1.calculateGasMargin;
93
- return [4 /*yield*/, vaultTokenContract.estimateGas.approve(depositGuardAddress, sharesBN)];
94
- case 3:
95
- _c = _d.apply(void 0, [_e.sent()]);
96
- _e.label = 4;
97
- case 4:
98
- gasLimit = _c;
99
- return [2 /*return*/, vaultTokenContract.approve(depositGuardAddress, sharesBN, { gasLimit: gasLimit })];
100
- }
101
- });
102
- });
14
+ const vault_1 = require("./vault");
15
+ const addresses_1 = require("../utils/config/addresses");
16
+ const amountWithSlippage_1 = __importDefault(require("../utils/amountWithSlippage"));
17
+ const userBalances_1 = require("./userBalances");
18
+ const vaultBasics_1 = __importDefault(require("./vaultBasics"));
19
+ async function approveVaultToken(accountAddress, vaultAddress, signer, dex, shares, overrides) {
20
+ if (!signer.provider) {
21
+ throw new Error('Signer must be connected to a provider');
22
+ }
23
+ const jsonProvider = signer.provider;
24
+ const { chainId } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
25
+ const vaultTokenContract = (0, contracts_1.getERC20Contract)(vaultAddress, signer);
26
+ // eslint-disable-next-line no-nested-ternary
27
+ const sharesBN = shares
28
+ ? typeof shares === 'bigint'
29
+ ? shares
30
+ : (0, parseBigInt_1.default)(shares, types_1.ichiVaultDecimals)
31
+ : ethers_1.MaxUint256;
32
+ const depositGuardAddress = addresses_1.addressConfig[chainId][dex]?.depositGuard.address;
33
+ if (!depositGuardAddress) {
34
+ throw new Error(`Deposit Guard for vault ${vaultAddress} not found on chain ${chainId} and dex ${dex}`);
35
+ }
36
+ const gasLimit = overrides?.gasLimit ??
37
+ (0, calculateGasMargin_1.calculateGasMargin)(await vaultTokenContract.approve.estimateGas(depositGuardAddress, sharesBN));
38
+ return vaultTokenContract.approve(depositGuardAddress, sharesBN, { gasLimit });
103
39
  }
104
40
  exports.approveVaultToken = approveVaultToken;
105
- function isVaultTokenApproved(accountAddress, shares, vaultAddress, jsonProvider, dex) {
106
- return __awaiter(this, void 0, void 0, function () {
107
- var _a, chainId, vault;
108
- return __generator(this, function (_b) {
109
- switch (_b.label) {
110
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
111
- case 1:
112
- _a = _b.sent(), chainId = _a.chainId, vault = _a.vault;
113
- return [2 /*return*/, (0, _withdrawHelpers_1._isVaultTokenApproved)(accountAddress, shares, vault, chainId, jsonProvider, dex)];
114
- }
115
- });
116
- });
41
+ // eslint-disable-next-line no-underscore-dangle
42
+ async function _isVaultTokenApproved(accountAddress, shares, vault, chainId, jsonProvider, dex) {
43
+ const vaultTokenContract = (0, contracts_1.getERC20Contract)(vault.id, jsonProvider);
44
+ const depositGuardAddress = addresses_1.addressConfig[chainId][dex]?.depositGuard.address;
45
+ if (!depositGuardAddress) {
46
+ throw new Error(`Deposit Guard for vault ${vault.id} not found on chain ${chainId} and dex ${dex}`);
47
+ }
48
+ const currentAllowanceBN = await vaultTokenContract.allowance(accountAddress, depositGuardAddress);
49
+ const sharesBN = typeof shares === 'bigint' ? shares : (0, parseBigInt_1.default)(shares, types_1.ichiVaultDecimals);
50
+ return currentAllowanceBN > 0n && currentAllowanceBN >= sharesBN;
51
+ }
52
+ async function isVaultTokenApproved(accountAddress, shares, vaultAddress, jsonProvider, dex) {
53
+ const { chainId, vault } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
54
+ return _isVaultTokenApproved(accountAddress, shares, vault, chainId, jsonProvider, dex);
117
55
  }
118
56
  exports.isVaultTokenApproved = isVaultTokenApproved;
119
- function withdraw(accountAddress, shares, vaultAddress, jsonProvider, dex, overrides) {
120
- var _a;
121
- return __awaiter(this, void 0, void 0, function () {
122
- var chainId, signer, vaultContract, userShares, withdrawShares, params, gasLimit, _b, _c;
123
- var _d;
124
- return __generator(this, function (_e) {
125
- switch (_e.label) {
126
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
127
- case 1:
128
- chainId = (_e.sent()).chainId;
129
- signer = jsonProvider.getSigner(accountAddress);
130
- vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, signer);
131
- userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
132
- withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
133
- return [4 /*yield*/, userShares];
134
- case 2:
135
- if ((_e.sent()).lt(withdrawShares)) {
136
- throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
137
- }
138
- params = [
139
- shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18),
140
- accountAddress,
141
- ];
142
- if (!((_a = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _a !== void 0)) return [3 /*break*/, 3];
143
- _b = _a;
144
- return [3 /*break*/, 5];
145
- case 3:
146
- _c = calculateGasMargin_1.calculateGasMargin;
147
- return [4 /*yield*/, (_d = vaultContract.estimateGas).withdraw.apply(_d, params)];
148
- case 4:
149
- _b = _c.apply(void 0, [_e.sent()]);
150
- _e.label = 5;
151
- case 5:
152
- gasLimit = _b;
153
- params[2] = __assign(__assign({}, overrides), { gasLimit: gasLimit });
154
- return [2 /*return*/, vaultContract.withdraw.apply(vaultContract, params)];
155
- }
156
- });
157
- });
57
+ async function withdraw(accountAddress, shares, vaultAddress, signer, dex, overrides) {
58
+ if (!signer.provider) {
59
+ throw new Error('Signer must be connected to a provider');
60
+ }
61
+ const jsonProvider = signer.provider;
62
+ const { chainId } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
63
+ const vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, signer);
64
+ const userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
65
+ const withdrawShares = typeof shares === 'bigint' ? shares : (0, parseBigInt_1.default)(shares, 18);
66
+ if ((await userShares) < withdrawShares) {
67
+ throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
68
+ }
69
+ const sharesBN = typeof shares === 'bigint' ? shares : (0, parseBigInt_1.default)(shares, 18);
70
+ const gasLimit = overrides?.gasLimit ?? (0, calculateGasMargin_1.calculateGasMargin)(await vaultContract.withdraw.estimateGas(sharesBN, accountAddress));
71
+ return vaultContract.withdraw(sharesBN, accountAddress, { ...overrides, gasLimit });
158
72
  }
159
73
  exports.withdraw = withdraw;
160
- function withdrawWithSlippage(accountAddress, shares, vaultAddress, jsonProvider, dex, percentSlippage, overrides) {
161
- var _a, _b, _c;
162
- if (percentSlippage === void 0) { percentSlippage = 1; }
163
- return __awaiter(this, void 0, void 0, function () {
164
- var _d, chainId, vault, signer, vaultDeployerAddress, depositGuardAddress, userShares, withdrawShares, isApproved, depositGuardContract, maxGasLimit, amounts, gasLimit, _e, _f, tx;
165
- return __generator(this, function (_g) {
166
- switch (_g.label) {
167
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
168
- case 1:
169
- _d = _g.sent(), chainId = _d.chainId, vault = _d.vault;
170
- if (((_a = addresses_1.addressConfig[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.version) !== 2) {
171
- throw new Error("Unsupported function for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
172
- }
173
- signer = jsonProvider.getSigner(accountAddress);
174
- vaultDeployerAddress = (0, vaultBasics_1.default)(vaultAddress, chainId, dex);
175
- depositGuardAddress = (_b = addresses_1.addressConfig[chainId][dex]) === null || _b === void 0 ? void 0 : _b.depositGuard.address;
176
- if (!depositGuardAddress) {
177
- throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
178
- }
179
- userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
180
- withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
181
- return [4 /*yield*/, userShares];
182
- case 2:
183
- if ((_g.sent()).lt(withdrawShares)) {
184
- throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
185
- }
186
- return [4 /*yield*/, (0, _withdrawHelpers_1._isVaultTokenApproved)(accountAddress, withdrawShares, vault, chainId, jsonProvider, dex)];
187
- case 3:
188
- isApproved = _g.sent();
189
- if (!isApproved) {
190
- throw new Error("Vault token transfer is not approved for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
191
- }
192
- depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
193
- maxGasLimit = (0, calculateGasMargin_1.getGasLimit)(chainId);
194
- return [4 /*yield*/, depositGuardContract.callStatic.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, ethers_1.BigNumber.from(0), ethers_1.BigNumber.from(0), {
195
- gasLimit: maxGasLimit,
196
- })];
197
- case 4:
198
- amounts = _g.sent();
199
- // reduce the estimated LP amount by an acceptable slippage %, default - 1%
200
- if (percentSlippage < 0.01)
201
- throw new Error('Slippage parameter is less than 0.01%.');
202
- if (percentSlippage > 100)
203
- throw new Error('Slippage parameter is more than 100%.');
204
- amounts = {
205
- 0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
206
- 1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
207
- amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
208
- amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
209
- };
210
- if (!((_c = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _c !== void 0)) return [3 /*break*/, 5];
211
- _e = _c;
212
- return [3 /*break*/, 7];
213
- case 5:
214
- _f = calculateGasMargin_1.calculateGasMargin;
215
- return [4 /*yield*/, depositGuardContract.estimateGas.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
216
- case 6:
217
- _e = _f.apply(void 0, [_g.sent()]);
218
- _g.label = 7;
219
- case 7:
220
- gasLimit = _e;
221
- return [4 /*yield*/, depositGuardContract.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
222
- case 8:
223
- tx = _g.sent();
224
- return [2 /*return*/, tx];
225
- }
226
- });
74
+ async function withdrawWithSlippage(accountAddress, shares, vaultAddress, signer, dex, percentSlippage = 1, overrides) {
75
+ if (!signer.provider) {
76
+ throw new Error('Signer must be connected to a provider');
77
+ }
78
+ const jsonProvider = signer.provider;
79
+ const { chainId, vault } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
80
+ if (addresses_1.addressConfig[chainId][dex]?.depositGuard.version !== 2) {
81
+ throw new Error(`Unsupported function for vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
82
+ }
83
+ const vaultDeployerAddress = (0, vaultBasics_1.default)(vaultAddress, chainId, dex);
84
+ // obtain Deposit Guard contract
85
+ const depositGuardAddress = addresses_1.addressConfig[chainId][dex]?.depositGuard.address;
86
+ if (!depositGuardAddress) {
87
+ throw new Error(`Deposit Guard for vault ${vaultAddress} not found on chain ${chainId} and dex ${dex}`);
88
+ }
89
+ const userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
90
+ const withdrawShares = typeof shares === 'bigint' ? shares : (0, parseBigInt_1.default)(shares, 18);
91
+ if ((await userShares) < withdrawShares) {
92
+ throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
93
+ }
94
+ const isApproved = await _isVaultTokenApproved(accountAddress, withdrawShares, vault, chainId, jsonProvider, dex);
95
+ if (!isApproved) {
96
+ throw new Error(`Vault token transfer is not approved for vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
97
+ }
98
+ const depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
99
+ const maxGasLimit = (0, calculateGasMargin_1.getGasLimit)(chainId);
100
+ // the first call: get estimated LP amount
101
+ let amounts = await depositGuardContract.forwardWithdrawFromICHIVault.staticCall(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, 0n, 0n, {
102
+ gasLimit: maxGasLimit,
227
103
  });
104
+ // reduce the estimated LP amount by an acceptable slippage %, default - 1%
105
+ if (percentSlippage < 0.01)
106
+ throw new Error('Slippage parameter is less than 0.01%.');
107
+ if (percentSlippage > 100)
108
+ throw new Error('Slippage parameter is more than 100%.');
109
+ amounts = {
110
+ 0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
111
+ 1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
112
+ amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
113
+ amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
114
+ };
115
+ const gasLimit = overrides?.gasLimit ??
116
+ (0, calculateGasMargin_1.calculateGasMargin)(await depositGuardContract.forwardWithdrawFromICHIVault.estimateGas(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1]));
117
+ // the second call: actual deposit transaction
118
+ const tx = await depositGuardContract.forwardWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], {
119
+ ...overrides,
120
+ gasLimit,
121
+ });
122
+ return tx;
228
123
  }
229
124
  exports.withdrawWithSlippage = withdrawWithSlippage;
230
- function withdrawNativeToken(accountAddress, shares, vaultAddress, jsonProvider, dex, percentSlippage, overrides) {
231
- var _a, _b, _c;
232
- if (percentSlippage === void 0) { percentSlippage = 1; }
233
- return __awaiter(this, void 0, void 0, function () {
234
- var _d, chainId, vault, signer, vaultDeployerAddress, userShares, withdrawShares, isApproved, depositGuardAddress, depositGuardContract, wrappedNative, _e, maxGasLimit, amounts, gasLimit, _f, _g, tx;
235
- return __generator(this, function (_h) {
236
- switch (_h.label) {
237
- case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
238
- case 1:
239
- _d = _h.sent(), chainId = _d.chainId, vault = _d.vault;
240
- if (chainId === types_1.SupportedChainId.celo) {
241
- throw new Error("This function is not supported on chain ".concat(chainId));
242
- }
243
- if (((_a = addresses_1.addressConfig[chainId][dex]) === null || _a === void 0 ? void 0 : _a.depositGuard.version) !== 2) {
244
- throw new Error("Unsupported function for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
245
- }
246
- signer = jsonProvider.getSigner(accountAddress);
247
- vaultDeployerAddress = (0, vaultBasics_1.default)(vaultAddress, chainId, dex);
248
- userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
249
- withdrawShares = shares instanceof ethers_1.BigNumber ? shares : (0, parseBigInt_1.default)(shares, 18);
250
- return [4 /*yield*/, userShares];
251
- case 2:
252
- if ((_h.sent()).lt(withdrawShares)) {
253
- throw new Error("Withdraw amount exceeds user shares amount in vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
254
- }
255
- return [4 /*yield*/, (0, _withdrawHelpers_1._isVaultTokenApproved)(accountAddress, withdrawShares, vault, chainId, jsonProvider, dex)];
256
- case 3:
257
- isApproved = _h.sent();
258
- if (!isApproved) {
259
- throw new Error("Vault token transfer is not approved for vault ".concat(vaultAddress, " on chain ").concat(chainId, " and dex ").concat(dex));
260
- }
261
- depositGuardAddress = (_b = addresses_1.addressConfig[chainId][dex]) === null || _b === void 0 ? void 0 : _b.depositGuard.address;
262
- if (!depositGuardAddress) {
263
- throw new Error("Deposit Guard for vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
264
- }
265
- depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
266
- if (!(chainId === types_1.SupportedChainId.hedera)) return [3 /*break*/, 4];
267
- _e = '0x0000000000000000000000000000000000163b5a';
268
- return [3 /*break*/, 6];
269
- case 4: return [4 /*yield*/, depositGuardContract.WRAPPED_NATIVE()];
270
- case 5:
271
- _e = _h.sent();
272
- _h.label = 6;
273
- case 6:
274
- wrappedNative = _e;
275
- if (wrappedNative.toLowerCase() !== vault.tokenA.toLowerCase() &&
276
- wrappedNative.toLowerCase() !== vault.tokenB.toLowerCase()) {
277
- throw new Error('None of vault tokens is wrapped native token');
278
- }
279
- maxGasLimit = (0, calculateGasMargin_1.getGasLimit)(chainId);
280
- return [4 /*yield*/, depositGuardContract.callStatic.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, ethers_1.BigNumber.from(0), ethers_1.BigNumber.from(0), {
281
- gasLimit: maxGasLimit,
282
- })];
283
- case 7:
284
- amounts = _h.sent();
285
- // reduce the estimated LP amount by an acceptable slippage %, default - 1%
286
- if (percentSlippage < 0.01)
287
- throw new Error('Slippage parameter is less than 0.01%.');
288
- if (percentSlippage > 100)
289
- throw new Error('Slippage parameter is more than 100%.');
290
- amounts = {
291
- 0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
292
- 1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
293
- amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
294
- amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
295
- };
296
- if (!((_c = overrides === null || overrides === void 0 ? void 0 : overrides.gasLimit) !== null && _c !== void 0)) return [3 /*break*/, 8];
297
- _f = _c;
298
- return [3 /*break*/, 10];
299
- case 8:
300
- _g = calculateGasMargin_1.calculateGasMargin;
301
- return [4 /*yield*/, depositGuardContract.estimateGas.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1])];
302
- case 9:
303
- _f = _g.apply(void 0, [_h.sent()]);
304
- _h.label = 10;
305
- case 10:
306
- gasLimit = _f;
307
- return [4 /*yield*/, depositGuardContract.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], __assign(__assign({}, overrides), { gasLimit: gasLimit }))];
308
- case 11:
309
- tx = _h.sent();
310
- return [2 /*return*/, tx];
311
- }
312
- });
125
+ async function withdrawNativeToken(accountAddress, shares, vaultAddress, signer, dex, percentSlippage = 1, overrides) {
126
+ if (!signer.provider) {
127
+ throw new Error('Signer must be connected to a provider');
128
+ }
129
+ const jsonProvider = signer.provider;
130
+ const { chainId, vault } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
131
+ if (chainId === types_1.SupportedChainId.celo) {
132
+ throw new Error(`This function is not supported on chain ${chainId}`);
133
+ }
134
+ if (addresses_1.addressConfig[chainId][dex]?.depositGuard.version !== 2) {
135
+ throw new Error(`Unsupported function for vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
136
+ }
137
+ const vaultDeployerAddress = (0, vaultBasics_1.default)(vaultAddress, chainId, dex);
138
+ const userShares = (0, userBalances_1.getUserBalance)(accountAddress, vaultAddress, jsonProvider, dex, true);
139
+ const withdrawShares = typeof shares === 'bigint' ? shares : (0, parseBigInt_1.default)(shares, 18);
140
+ if ((await userShares) < withdrawShares) {
141
+ throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
142
+ }
143
+ const isApproved = await _isVaultTokenApproved(accountAddress, withdrawShares, vault, chainId, jsonProvider, dex);
144
+ if (!isApproved) {
145
+ throw new Error(`Vault token transfer is not approved for vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
146
+ }
147
+ // obtain Deposit Guard contract
148
+ const depositGuardAddress = addresses_1.addressConfig[chainId][dex]?.depositGuard.address;
149
+ if (!depositGuardAddress) {
150
+ throw new Error(`Deposit Guard for vault ${vaultAddress} not found on chain ${chainId} and dex ${dex}`);
151
+ }
152
+ const depositGuardContract = (0, contracts_1.getDepositGuardContract)(depositGuardAddress, signer);
153
+ const wrappedNative = chainId === types_1.SupportedChainId.hedera
154
+ ? '0x0000000000000000000000000000000000163b5a'
155
+ : await depositGuardContract.WRAPPED_NATIVE();
156
+ if (wrappedNative.toLowerCase() !== vault.tokenA.toLowerCase() &&
157
+ wrappedNative.toLowerCase() !== vault.tokenB.toLowerCase()) {
158
+ throw new Error('None of vault tokens is wrapped native token');
159
+ }
160
+ const maxGasLimit = (0, calculateGasMargin_1.getGasLimit)(chainId);
161
+ // the first call: get estimated LP amount
162
+ let amounts = await depositGuardContract.forwardNativeWithdrawFromICHIVault.staticCall(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, 0n, 0n, {
163
+ gasLimit: maxGasLimit,
164
+ });
165
+ // reduce the estimated LP amount by an acceptable slippage %, default - 1%
166
+ if (percentSlippage < 0.01)
167
+ throw new Error('Slippage parameter is less than 0.01%.');
168
+ if (percentSlippage > 100)
169
+ throw new Error('Slippage parameter is more than 100%.');
170
+ amounts = {
171
+ 0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
172
+ 1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
173
+ amount0: (0, amountWithSlippage_1.default)(amounts[0], percentSlippage),
174
+ amount1: (0, amountWithSlippage_1.default)(amounts[1], percentSlippage),
175
+ };
176
+ const gasLimit = overrides?.gasLimit ??
177
+ (0, calculateGasMargin_1.calculateGasMargin)(await depositGuardContract.forwardNativeWithdrawFromICHIVault.estimateGas(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1]));
178
+ // the second call: actual deposit transaction
179
+ const tx = await depositGuardContract.forwardNativeWithdrawFromICHIVault(vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, amounts[0], amounts[1], {
180
+ ...overrides,
181
+ gasLimit,
313
182
  });
183
+ return tx;
314
184
  }
315
185
  exports.withdrawNativeToken = withdrawNativeToken;
316
186
  //# sourceMappingURL=withdraw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/functions/withdraw.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { ContractTransaction, Overrides } from '@ethersproject/contracts';
2
- import { JsonRpcProvider } from '@ethersproject/providers';
3
- import { BigNumber } from 'ethers';
1
+ import { ContractTransactionResponse, Overrides, Signer } from 'ethers';
4
2
  import { SupportedDex } from '../types';
5
- export declare function withdrawWithErc20Wrapping(accountAddress: string, shares: string | number | BigNumber, vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransaction>;
3
+ export declare function withdrawWithErc20Wrapping(accountAddress: string, shares: string | number | bigint, vaultAddress: string, signer: Signer, dex: SupportedDex, percentSlippage?: number, overrides?: Overrides): Promise<ContractTransactionResponse>;