@curvefi/api 2.63.0 → 2.63.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/lib/boosting.js +247 -645
  2. package/lib/constants/L2Networks.js +1 -1
  3. package/lib/constants/aliases.js +19 -19
  4. package/lib/constants/coins/arbitrum.js +5 -5
  5. package/lib/constants/coins/aurora.js +5 -5
  6. package/lib/constants/coins/avalanche.js +6 -6
  7. package/lib/constants/coins/base.js +5 -5
  8. package/lib/constants/coins/bsc.js +5 -5
  9. package/lib/constants/coins/celo.js +5 -5
  10. package/lib/constants/coins/ethereum.js +9 -9
  11. package/lib/constants/coins/fantom.js +7 -7
  12. package/lib/constants/coins/fraxtal.js +5 -5
  13. package/lib/constants/coins/kava.js +5 -5
  14. package/lib/constants/coins/mantle.js +5 -5
  15. package/lib/constants/coins/moonbeam.js +5 -5
  16. package/lib/constants/coins/optimism.js +5 -5
  17. package/lib/constants/coins/polygon.js +6 -6
  18. package/lib/constants/coins/xdai.js +5 -5
  19. package/lib/constants/coins/xlayer.js +5 -5
  20. package/lib/constants/coins/zksync.js +5 -5
  21. package/lib/constants/pools/arbitrum.js +1 -1
  22. package/lib/constants/pools/aurora.js +1 -1
  23. package/lib/constants/pools/avalanche.js +1 -1
  24. package/lib/constants/pools/base.js +1 -1
  25. package/lib/constants/pools/bsc.js +1 -1
  26. package/lib/constants/pools/celo.js +1 -1
  27. package/lib/constants/pools/ethereum.js +2 -2
  28. package/lib/constants/pools/fantom.js +1 -1
  29. package/lib/constants/pools/fraxtal.js +1 -1
  30. package/lib/constants/pools/kava.js +1 -1
  31. package/lib/constants/pools/mantle.js +1 -1
  32. package/lib/constants/pools/moonbeam.js +1 -1
  33. package/lib/constants/pools/optimism.js +1 -1
  34. package/lib/constants/pools/polygon.js +1 -1
  35. package/lib/constants/pools/xdai.js +1 -1
  36. package/lib/constants/pools/xlayer.js +1 -1
  37. package/lib/constants/pools/zksync.js +1 -1
  38. package/lib/constants/tricryptoDeployImplementations.js +1 -1
  39. package/lib/constants/utils.js +18 -19
  40. package/lib/constants/volumeNetworks.js +1 -1
  41. package/lib/curve.d.ts +10 -6
  42. package/lib/curve.js +534 -909
  43. package/lib/dao.js +351 -705
  44. package/lib/external-api.js +127 -256
  45. package/lib/factory/common.js +4 -4
  46. package/lib/factory/constants-crypto.js +33 -33
  47. package/lib/factory/constants.js +34 -34
  48. package/lib/factory/deploy.js +542 -907
  49. package/lib/factory/factory-api.js +205 -269
  50. package/lib/factory/factory-crypto.js +202 -342
  51. package/lib/factory/factory-tricrypto.js +164 -286
  52. package/lib/factory/factory-twocrypto.js +151 -269
  53. package/lib/factory/factory.js +245 -385
  54. package/lib/index.js +109 -198
  55. package/lib/interfaces.d.ts +46 -6
  56. package/lib/pools/PoolTemplate.js +1774 -3027
  57. package/lib/pools/gaugePool.js +112 -251
  58. package/lib/pools/mixins/common.js +22 -93
  59. package/lib/pools/mixins/depositBalancedAmountsMixins.js +52 -118
  60. package/lib/pools/mixins/depositMixins.js +160 -386
  61. package/lib/pools/mixins/depositWrappedMixins.js +79 -205
  62. package/lib/pools/mixins/poolBalancesMixin.js +24 -87
  63. package/lib/pools/mixins/swapMixins.js +139 -324
  64. package/lib/pools/mixins/swapWrappedMixins.js +111 -265
  65. package/lib/pools/mixins/withdrawExpectedMixins.js +27 -91
  66. package/lib/pools/mixins/withdrawImbalanceMixins.js +111 -293
  67. package/lib/pools/mixins/withdrawImbalanceWrappedMixins.js +58 -169
  68. package/lib/pools/mixins/withdrawMixins.js +139 -359
  69. package/lib/pools/mixins/withdrawOneCoinExpectedMixins.js +20 -75
  70. package/lib/pools/mixins/withdrawOneCoinMixins.js +140 -360
  71. package/lib/pools/mixins/withdrawOneCoinWrappedExpectedMixins.js +10 -51
  72. package/lib/pools/mixins/withdrawOneCoinWrappedMixins.js +60 -167
  73. package/lib/pools/mixins/withdrawWrappedMixins.js +57 -167
  74. package/lib/pools/poolConstructor.js +11 -31
  75. package/lib/pools/utils.js +301 -469
  76. package/lib/route-finder.worker.d.ts +9 -0
  77. package/lib/route-finder.worker.js +112 -0
  78. package/lib/route-graph.worker.d.ts +11 -0
  79. package/lib/route-graph.worker.js +334 -0
  80. package/lib/router.js +323 -912
  81. package/lib/utils.d.ts +8 -7
  82. package/lib/utils.js +540 -927
  83. package/package.json +3 -2
@@ -7,143 +7,77 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
10
  import BigNumber from 'bignumber.js';
38
11
  import { BN } from "../../utils.js";
39
12
  function _depositBalancedAmounts(poolBalances, walletBalances, decimals) {
40
- var poolBalancesBN = poolBalances.map(BN);
41
- var walletBalancesBN = walletBalances.map(BN);
42
- var poolTotalLiquidityBN = poolBalancesBN.reduce(function (a, b) { return a.plus(b); });
43
- var poolBalancesRatiosBN = poolBalancesBN.map(function (b) { return b.div(poolTotalLiquidityBN); });
13
+ const poolBalancesBN = poolBalances.map(BN);
14
+ const walletBalancesBN = walletBalances.map(BN);
15
+ const poolTotalLiquidityBN = poolBalancesBN.reduce((a, b) => a.plus(b));
16
+ const poolBalancesRatiosBN = poolBalancesBN.map((b) => b.div(poolTotalLiquidityBN));
44
17
  // Cross factors for each wallet balance used as reference to see the
45
18
  // max that can be used according to the lowest relative wallet balance
46
- var balancedAmountsForEachScenarioBN = walletBalancesBN.map(function (_, i) { return (walletBalancesBN.map(function (_, j) { return (poolBalancesRatiosBN[j].times(walletBalancesBN[i]).div(poolBalancesRatiosBN[i])); })); });
47
- var firstCoinBalanceForEachScenarioBN = balancedAmountsForEachScenarioBN.map(function (_a) {
48
- var a = _a[0];
49
- return a;
50
- });
51
- var scenarioWithLowestBalancesBN = firstCoinBalanceForEachScenarioBN.map(String).indexOf(BigNumber.min.apply(BigNumber, firstCoinBalanceForEachScenarioBN).toString());
52
- return balancedAmountsForEachScenarioBN[scenarioWithLowestBalancesBN].map(function (a, i) { return a.toFixed(decimals[i]); });
19
+ const balancedAmountsForEachScenarioBN = walletBalancesBN.map((_, i) => (walletBalancesBN.map((_, j) => (poolBalancesRatiosBN[j].times(walletBalancesBN[i]).div(poolBalancesRatiosBN[i])))));
20
+ const firstCoinBalanceForEachScenarioBN = balancedAmountsForEachScenarioBN.map(([a]) => a);
21
+ const scenarioWithLowestBalancesBN = firstCoinBalanceForEachScenarioBN.map(String).indexOf(BigNumber.min(...firstCoinBalanceForEachScenarioBN).toString());
22
+ return balancedAmountsForEachScenarioBN[scenarioWithLowestBalancesBN].map((a, i) => a.toFixed(decimals[i]));
53
23
  }
54
24
  // @ts-ignore
55
- export var depositBalancedAmountsMixin = {
56
- depositBalancedAmounts: function () {
57
- return __awaiter(this, void 0, void 0, function () {
58
- var poolBalances, walletBalances, _a, _b, balancedAmountsBN;
59
- return __generator(this, function (_c) {
60
- switch (_c.label) {
61
- case 0: return [4 /*yield*/, this.stats.underlyingBalances()];
62
- case 1:
63
- poolBalances = _c.sent();
64
- _b = (_a = Object).values;
65
- return [4 /*yield*/, this.walletUnderlyingCoinBalances()];
66
- case 2:
67
- walletBalances = _b.apply(_a, [_c.sent()]);
68
- balancedAmountsBN = (_depositBalancedAmounts(poolBalances, walletBalances, this.underlyingDecimals));
69
- return [2 /*return*/, balancedAmountsBN.map(function (b, i) { return BigNumber.min(BN(b), BN(walletBalances[i])).toString(); })];
70
- }
71
- });
25
+ export const depositBalancedAmountsMixin = {
26
+ depositBalancedAmounts() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ // @ts-ignore
29
+ const poolBalances = yield this.stats.underlyingBalances();
30
+ // @ts-ignore
31
+ const walletBalances = Object.values(yield this.walletUnderlyingCoinBalances());
32
+ const balancedAmountsBN = (_depositBalancedAmounts(poolBalances, walletBalances, this.underlyingDecimals));
33
+ return balancedAmountsBN.map((b, i) => BigNumber.min(BN(b), BN(walletBalances[i])).toString());
72
34
  });
73
35
  },
74
36
  };
75
37
  // @ts-ignore
76
- export var depositBalancedAmountsCryptoMixin = {
77
- depositBalancedAmounts: function () {
78
- return __awaiter(this, void 0, void 0, function () {
79
- var poolBalances, walletBalances, _a, _b, prices, poolBalancesUSD, walletBalancesUSD, balancedAmountsUSD;
80
- var _this = this;
81
- return __generator(this, function (_c) {
82
- switch (_c.label) {
83
- case 0: return [4 /*yield*/, this.stats.underlyingBalances()];
84
- case 1:
85
- poolBalances = _c.sent();
86
- _b = (_a = Object).values;
87
- return [4 /*yield*/, this.walletUnderlyingCoinBalances()];
88
- case 2:
89
- walletBalances = _b.apply(_a, [_c.sent()]);
90
- return [4 /*yield*/, this._underlyingPrices()];
91
- case 3:
92
- prices = _c.sent();
93
- poolBalancesUSD = poolBalances.map(function (b, i) { return BN(b).times(prices[i]).toString(); });
94
- walletBalancesUSD = walletBalances.map(function (b, i) { return BN(b).times(prices[i]).toString(); });
95
- balancedAmountsUSD = _depositBalancedAmounts(poolBalancesUSD, walletBalancesUSD, this.underlyingDecimals);
96
- return [2 /*return*/, balancedAmountsUSD.map(function (b, i) { return BigNumber.min(BN(BN(b).div(prices[i]).toFixed(_this.underlyingDecimals[i])), BN(walletBalances[i])).toString(); })];
97
- }
98
- });
38
+ export const depositBalancedAmountsCryptoMixin = {
39
+ depositBalancedAmounts() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ // @ts-ignore
42
+ const poolBalances = yield this.stats.underlyingBalances();
43
+ // @ts-ignore
44
+ const walletBalances = Object.values(yield this.walletUnderlyingCoinBalances());
45
+ // @ts-ignore
46
+ const prices = yield this._underlyingPrices();
47
+ const poolBalancesUSD = poolBalances.map((b, i) => BN(b).times(prices[i]).toString());
48
+ const walletBalancesUSD = walletBalances.map((b, i) => BN(b).times(prices[i]).toString());
49
+ const balancedAmountsUSD = _depositBalancedAmounts(poolBalancesUSD, walletBalancesUSD, this.underlyingDecimals);
50
+ return balancedAmountsUSD.map((b, i) => BigNumber.min(BN(BN(b).div(prices[i]).toFixed(this.underlyingDecimals[i])), BN(walletBalances[i])).toString());
99
51
  });
100
52
  },
101
53
  };
102
54
  // @ts-ignore
103
- export var depositWrappedBalancedAmountsMixin = {
104
- depositWrappedBalancedAmounts: function () {
105
- return __awaiter(this, void 0, void 0, function () {
106
- var poolBalances, walletBalances, _a, _b, balancedAmountsBN;
107
- return __generator(this, function (_c) {
108
- switch (_c.label) {
109
- case 0: return [4 /*yield*/, this.stats.wrappedBalances()];
110
- case 1:
111
- poolBalances = _c.sent();
112
- _b = (_a = Object).values;
113
- return [4 /*yield*/, this.walletWrappedCoinBalances()];
114
- case 2:
115
- walletBalances = _b.apply(_a, [_c.sent()]);
116
- balancedAmountsBN = (_depositBalancedAmounts(poolBalances, walletBalances, this.underlyingDecimals));
117
- return [2 /*return*/, balancedAmountsBN.map(function (b, i) { return BigNumber.min(BN(b), BN(walletBalances[i])).toString(); })];
118
- }
119
- });
55
+ export const depositWrappedBalancedAmountsMixin = {
56
+ depositWrappedBalancedAmounts() {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ // @ts-ignore
59
+ const poolBalances = yield this.stats.wrappedBalances();
60
+ // @ts-ignore
61
+ const walletBalances = Object.values(yield this.walletWrappedCoinBalances());
62
+ const balancedAmountsBN = (_depositBalancedAmounts(poolBalances, walletBalances, this.underlyingDecimals));
63
+ return balancedAmountsBN.map((b, i) => BigNumber.min(BN(b), BN(walletBalances[i])).toString());
120
64
  });
121
65
  },
122
66
  };
123
67
  // @ts-ignore
124
- export var depositWrappedBalancedAmountsCryptoMixin = {
125
- depositWrappedBalancedAmounts: function () {
126
- return __awaiter(this, void 0, void 0, function () {
127
- var poolBalances, walletBalances, _a, _b, prices, poolBalancesUSD, walletBalancesUSD, balancedAmountsUSD;
128
- var _this = this;
129
- return __generator(this, function (_c) {
130
- switch (_c.label) {
131
- case 0: return [4 /*yield*/, this.stats.wrappedBalances()];
132
- case 1:
133
- poolBalances = (_c.sent()).map(Number);
134
- _b = (_a = Object).values;
135
- return [4 /*yield*/, this.walletWrappedCoinBalances()];
136
- case 2:
137
- walletBalances = _b.apply(_a, [_c.sent()]).map(Number);
138
- return [4 /*yield*/, this._wrappedPrices()];
139
- case 3:
140
- prices = _c.sent();
141
- poolBalancesUSD = poolBalances.map(function (b, i) { return BN(b).times(prices[i]).toString(); });
142
- walletBalancesUSD = walletBalances.map(function (b, i) { return BN(b).times(prices[i]).toString(); });
143
- balancedAmountsUSD = _depositBalancedAmounts(poolBalancesUSD, walletBalancesUSD, this.wrappedDecimals);
144
- return [2 /*return*/, balancedAmountsUSD.map(function (b, i) { return BigNumber.min(BN(BN(b).div(prices[i]).toFixed(_this.wrappedDecimals[i])), BN(walletBalances[i])).toString(); })];
145
- }
146
- });
68
+ export const depositWrappedBalancedAmountsCryptoMixin = {
69
+ depositWrappedBalancedAmounts() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ // @ts-ignore
72
+ const poolBalances = (yield this.stats.wrappedBalances()).map(Number);
73
+ // @ts-ignore
74
+ const walletBalances = Object.values(yield this.walletWrappedCoinBalances()).map(Number);
75
+ // @ts-ignore
76
+ const prices = yield this._wrappedPrices();
77
+ const poolBalancesUSD = poolBalances.map((b, i) => BN(b).times(prices[i]).toString());
78
+ const walletBalancesUSD = walletBalances.map((b, i) => BN(b).times(prices[i]).toString());
79
+ const balancedAmountsUSD = _depositBalancedAmounts(poolBalancesUSD, walletBalancesUSD, this.wrappedDecimals);
80
+ return balancedAmountsUSD.map((b, i) => BigNumber.min(BN(BN(b).div(prices[i]).toFixed(this.wrappedDecimals[i])), BN(walletBalances[i])).toString());
147
81
  });
148
82
  },
149
83
  };