@dolomite-exchange/zap-sdk 0.3.42 → 0.3.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/lib/estimators/GlvEstimator.test.js +2 -2
- package/dist/__tests__/lib/estimators/GlvEstimator.test.js.map +1 -1
- package/dist/src/lib/estimators/GlvEstimator.d.ts +3 -0
- package/dist/src/lib/estimators/GlvEstimator.js +104 -44
- package/dist/src/lib/estimators/GlvEstimator.js.map +1 -1
- package/package.json +2 -2
- package/src/lib/estimators/GlvEstimator.ts +118 -31
|
@@ -39,6 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var deployments_json_1 = __importDefault(require("@dolomite-exchange/modules-deployments/src/deploy/deployments.json"));
|
|
42
43
|
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
43
44
|
var ethers_1 = require("ethers");
|
|
44
45
|
var utils_1 = require("ethers/lib/utils");
|
|
@@ -46,7 +47,6 @@ var src_1 = require("../../../src");
|
|
|
46
47
|
var GmxV2GmEstimator_1 = require("../../../src/lib/estimators/GmxV2GmEstimator");
|
|
47
48
|
var ArbitrumOneConstants_1 = require("../../helpers/ArbitrumOneConstants");
|
|
48
49
|
var GlvEstimator_1 = require("../../../src/lib/estimators/GlvEstimator");
|
|
49
|
-
var deployments_json_1 = __importDefault(require("@dolomite-exchange/modules-deployments/src/deploy/deployments.json"));
|
|
50
50
|
describe('GlvEstimator', function () {
|
|
51
51
|
var _a;
|
|
52
52
|
var network = src_1.Network.ARBITRUM_ONE;
|
|
@@ -59,7 +59,7 @@ describe('GlvEstimator', function () {
|
|
|
59
59
|
_a[ArbitrumOneConstants_1.NATIVE_USDC_MARKET.marketId.toFixed()] = ArbitrumOneConstants_1.NATIVE_USDC_MARKET,
|
|
60
60
|
_a);
|
|
61
61
|
var config = {
|
|
62
|
-
gasPriceInWei: new bignumber_js_1.default('
|
|
62
|
+
gasPriceInWei: new bignumber_js_1.default('17000000'),
|
|
63
63
|
blockTag: 'latest',
|
|
64
64
|
filterOutZapsWithInsufficientOutput: false,
|
|
65
65
|
isLiquidation: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlvEstimator.test.js","sourceRoot":"","sources":["../../../../__tests__/lib/estimators/GlvEstimator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,iCAAgC;AAChC,0CAA8C;AAC9C,oCAA6D;AAC7D,iFAAgF;AAChF,2EAAqF;AACrF,yEAAwE;
|
|
1
|
+
{"version":3,"file":"GlvEstimator.test.js","sourceRoot":"","sources":["../../../../__tests__/lib/estimators/GlvEstimator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,9 @@ export declare class GlvEstimator {
|
|
|
13
13
|
private readonly dataStoreCache;
|
|
14
14
|
constructor(network: Network, web3Provider: ethers.providers.Provider, gmxV2Estimator: GmxV2GmEstimator);
|
|
15
15
|
private static getPriceStruct;
|
|
16
|
+
private static getGlvDepositOraclePriceCount;
|
|
17
|
+
private static getGlvWithdrawalOraclePriceCount;
|
|
18
|
+
private static adjustGasLimitForEstimate;
|
|
16
19
|
getUnwrappedAmount(isolationModeTokenAddress: Address, amountIn: Integer, outputMarketId: MarketId, marketsMap: Record<string, ApiMarket>, config: ZapConfig): Promise<EstimateOutputResult>;
|
|
17
20
|
getWrappedAmount(isolationModeTokenAddress: Address, amountIn: Integer, inputMarketId: MarketId, marketsMap: Record<string, ApiMarket>, config: ZapConfig): Promise<EstimateOutputResult>;
|
|
18
21
|
private getGmMarketByGlvToken;
|
|
@@ -81,10 +81,15 @@ var Constants_1 = require("../Constants");
|
|
|
81
81
|
var LocalCache_1 = require("../LocalCache");
|
|
82
82
|
var GmxV2GmEstimator_1 = require("./GmxV2GmEstimator");
|
|
83
83
|
var abiCoder = ethers_1.ethers.utils.defaultAbiCoder;
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
var
|
|
84
|
+
var hashString = function (value) { return (0, utils_1.keccak256)(abiCoder.encode(['string'], [value])); };
|
|
85
|
+
var ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY = hashString('ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1');
|
|
86
|
+
var ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY = hashString('ESTIMATED_GAS_FEE_PER_ORACLE_PRICE');
|
|
87
|
+
var ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY = hashString('ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR');
|
|
88
|
+
var GLV_DEPOSIT_GAS_LIMIT_KEY = hashString('GLV_DEPOSIT_GAS_LIMIT');
|
|
89
|
+
var GLV_WITHDRAWAL_GAS_LIMIT_KEY = hashString('GLV_WITHDRAWAL_GAS_LIMIT');
|
|
90
|
+
var GLV_PER_MARKET_GAS_LIMIT_KEY = hashString('GLV_PER_MARKET_GAS_LIMIT');
|
|
87
91
|
var CALLBACK_GAS_LIMIT = ethers_1.ethers.BigNumber.from(4000000);
|
|
92
|
+
var FLOAT_PRECISION = ethers_1.ethers.BigNumber.from(10).pow(30);
|
|
88
93
|
var GlvToGmMarketCacheKey = function (glvToken, isDeposit) { return "GlvToGmMarket-".concat(isDeposit
|
|
89
94
|
? 'Deposit'
|
|
90
95
|
: 'Withdrawal', "-").concat(glvToken); };
|
|
@@ -111,9 +116,19 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
111
116
|
max: pricesMap[token].maxPrice,
|
|
112
117
|
};
|
|
113
118
|
};
|
|
119
|
+
GlvEstimator.getGlvDepositOraclePriceCount = function (marketCount) {
|
|
120
|
+
return ethers_1.ethers.BigNumber.from(2 + marketCount);
|
|
121
|
+
};
|
|
122
|
+
GlvEstimator.getGlvWithdrawalOraclePriceCount = function (marketCount) {
|
|
123
|
+
return ethers_1.ethers.BigNumber.from(3 + marketCount);
|
|
124
|
+
};
|
|
125
|
+
GlvEstimator.adjustGasLimitForEstimate = function (gasEstimate, oraclePriceCount, baseGasLimit, estimatedGasFeePerOracle, multiplierFactor) {
|
|
126
|
+
var totalBaseGasLimit = baseGasLimit.add(estimatedGasFeePerOracle.mul(oraclePriceCount));
|
|
127
|
+
return totalBaseGasLimit.add(gasEstimate.mul(multiplierFactor).div(FLOAT_PRECISION));
|
|
128
|
+
};
|
|
114
129
|
GlvEstimator.prototype.getUnwrappedAmount = function (isolationModeTokenAddress, amountIn, outputMarketId, marketsMap, config) {
|
|
115
130
|
return __awaiter(this, void 0, void 0, function () {
|
|
116
|
-
var glvMarket, glvToken, glvTokenContract, calls, _a, _b, tokenToSignedPriceMap, gmMarket, multicallResults, _c, glvWithdrawalGasLimit, glvPerMarketGasLimit,
|
|
131
|
+
var glvMarket, glvToken, glvTokenContract, calls, _a, _b, tokenToSignedPriceMap, gmMarket, multicallResults, _c, glvWithdrawalGasLimit, glvPerMarketGasLimit, swapWithdrawalGasLimit, baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor, glvTokenSupply, glvPoolInfo, indexToken, longToken, shortToken, marketToken, marketTokenContract, glvPoolValueTransaction, _d, _e, _f, marketPoolValueTransaction, marketTokenSupplyTransaction, multicallResults2, glvPoolValue, marketPoolValueStruct, marketTokenSupply, glvTokenUsd, gmAmountOut, gasLimitOverride;
|
|
117
132
|
var _g, _h;
|
|
118
133
|
return __generator(this, function (_j) {
|
|
119
134
|
switch (_j.label) {
|
|
@@ -146,7 +161,7 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
146
161
|
this.getWithdrawalGasLimit(),
|
|
147
162
|
])];
|
|
148
163
|
case 3:
|
|
149
|
-
_b = __read.apply(void 0, [_j.sent(), 4]), tokenToSignedPriceMap = _b[0], gmMarket = _b[1], multicallResults = _b[2].returnData, _c = _b[3], glvWithdrawalGasLimit = _c.glvWithdrawalGasLimit, glvPerMarketGasLimit = _c.glvPerMarketGasLimit,
|
|
164
|
+
_b = __read.apply(void 0, [_j.sent(), 4]), tokenToSignedPriceMap = _b[0], gmMarket = _b[1], multicallResults = _b[2].returnData, _c = _b[3], glvWithdrawalGasLimit = _c.glvWithdrawalGasLimit, glvPerMarketGasLimit = _c.glvPerMarketGasLimit, swapWithdrawalGasLimit = _c.swapWithdrawalGasLimit, baseGasLimit = _c.baseGasLimit, gasFeePerOracle = _c.gasFeePerOracle, gasFeeMultiplierFactor = _c.gasFeeMultiplierFactor;
|
|
150
165
|
glvTokenSupply = glvTokenContract.interface.decodeFunctionResult('totalSupply', multicallResults[0])[0];
|
|
151
166
|
glvPoolInfo = this.glvReader.interface.decodeFunctionResult('getGlvInfo', multicallResults[1])[0];
|
|
152
167
|
indexToken = gmMarket.indexTokenAddress;
|
|
@@ -198,8 +213,8 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
198
213
|
gmAmountOut = marketTokenSupply.mul(glvTokenUsd).div(marketPoolValueStruct.poolValue);
|
|
199
214
|
gasLimitOverride = glvWithdrawalGasLimit
|
|
200
215
|
.add(glvPerMarketGasLimit.mul(glvPoolInfo.markets.length))
|
|
201
|
-
.add(gmWithdrawalGasLimit)
|
|
202
216
|
.add(swapWithdrawalGasLimit);
|
|
217
|
+
gasLimitOverride = GlvEstimator.adjustGasLimitForEstimate(gasLimitOverride, GlvEstimator.getGlvWithdrawalOraclePriceCount(glvPoolInfo.markets.length), baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor);
|
|
203
218
|
return [2 /*return*/, this.gmxV2Estimator.getUnwrappedAmount(gmMarket, new bignumber_js_1.default(gmAmountOut.toString()), outputMarketId, marketsMap, config, tokenToSignedPriceMap, gasLimitOverride, CALLBACK_GAS_LIMIT)];
|
|
204
219
|
}
|
|
205
220
|
});
|
|
@@ -207,7 +222,7 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
207
222
|
};
|
|
208
223
|
GlvEstimator.prototype.getWrappedAmount = function (isolationModeTokenAddress, amountIn, inputMarketId, marketsMap, config) {
|
|
209
224
|
return __awaiter(this, void 0, void 0, function () {
|
|
210
|
-
var glvMarket, glvToken, glvTokenContract, calls, _a, _b, tokenToSignedPriceMap, gmMarket, multicallResults, _c, glvDepositGasLimit, glvPerMarketGasLimit,
|
|
225
|
+
var glvMarket, glvToken, glvTokenContract, calls, _a, _b, tokenToSignedPriceMap, gmMarket, multicallResults, _c, glvDepositGasLimit, glvPerMarketGasLimit, baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor, glvTokenSupply, glvPoolInfo, gasLimitOverride, inputToken, indexToken, longToken, shortToken, marketToken, gmAmountOutResult, poolValue, marketTokenSupply, receivedMarketTokensUsd, glvPoolValue, _d, _e, _f, amountOut;
|
|
211
226
|
var _g, _h;
|
|
212
227
|
return __generator(this, function (_j) {
|
|
213
228
|
switch (_j.label) {
|
|
@@ -240,12 +255,11 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
240
255
|
this.getDepositGasLimit(),
|
|
241
256
|
])];
|
|
242
257
|
case 3:
|
|
243
|
-
_b = __read.apply(void 0, [_j.sent(), 4]), tokenToSignedPriceMap = _b[0], gmMarket = _b[1], multicallResults = _b[2].returnData, _c = _b[3], glvDepositGasLimit = _c.glvDepositGasLimit, glvPerMarketGasLimit = _c.glvPerMarketGasLimit,
|
|
258
|
+
_b = __read.apply(void 0, [_j.sent(), 4]), tokenToSignedPriceMap = _b[0], gmMarket = _b[1], multicallResults = _b[2].returnData, _c = _b[3], glvDepositGasLimit = _c.glvDepositGasLimit, glvPerMarketGasLimit = _c.glvPerMarketGasLimit, baseGasLimit = _c.baseGasLimit, gasFeePerOracle = _c.gasFeePerOracle, gasFeeMultiplierFactor = _c.gasFeeMultiplierFactor;
|
|
244
259
|
glvTokenSupply = glvTokenContract.interface.decodeFunctionResult('totalSupply', multicallResults[0])[0];
|
|
245
260
|
glvPoolInfo = this.glvReader.interface.decodeFunctionResult('getGlvInfo', multicallResults[1])[0];
|
|
246
|
-
gasLimitOverride = glvDepositGasLimit
|
|
247
|
-
|
|
248
|
-
.add(gmDepositGasLimit);
|
|
261
|
+
gasLimitOverride = glvDepositGasLimit.add(glvPerMarketGasLimit.mul(glvPoolInfo.markets.length));
|
|
262
|
+
gasLimitOverride = GlvEstimator.adjustGasLimitForEstimate(gasLimitOverride, GlvEstimator.getGlvDepositOraclePriceCount(glvPoolInfo.markets.length), baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor);
|
|
249
263
|
inputToken = marketsMap[inputMarketId.toFixed()];
|
|
250
264
|
indexToken = gmMarket.indexTokenAddress;
|
|
251
265
|
longToken = gmMarket.longTokenAddress;
|
|
@@ -337,63 +351,86 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
337
351
|
};
|
|
338
352
|
GlvEstimator.prototype.getWithdrawalGasLimit = function () {
|
|
339
353
|
return __awaiter(this, void 0, void 0, function () {
|
|
340
|
-
var gasLimit, calls, _a, returnData, glvWithdrawalGasLimit, glvPerMarketGasLimit,
|
|
341
|
-
var _b, _c, _d, _e;
|
|
342
|
-
return __generator(this, function (
|
|
343
|
-
switch (
|
|
354
|
+
var gasLimit, populateTransaction, calls, _a, returnData, glvWithdrawalGasLimit, glvPerMarketGasLimit, swapWithdrawalGasLimit, baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor, result;
|
|
355
|
+
var _b, _c, _d, _e, _f, _g;
|
|
356
|
+
return __generator(this, function (_h) {
|
|
357
|
+
switch (_h.label) {
|
|
344
358
|
case 0:
|
|
345
359
|
gasLimit = this.dataStoreCache.get(WithdrawalGasLimitCacheKey);
|
|
346
360
|
if (gasLimit) {
|
|
347
361
|
return [2 /*return*/, gasLimit];
|
|
348
362
|
}
|
|
363
|
+
populateTransaction = this.gmxV2DataStore.populateTransaction;
|
|
349
364
|
_b = {
|
|
350
365
|
target: this.gmxV2DataStore.address
|
|
351
366
|
};
|
|
352
|
-
return [4 /*yield*/,
|
|
367
|
+
return [4 /*yield*/, populateTransaction.getUint(GLV_WITHDRAWAL_GAS_LIMIT_KEY)];
|
|
353
368
|
case 1:
|
|
354
369
|
_a = [
|
|
355
|
-
(_b.callData = (
|
|
370
|
+
(_b.callData = (_h.sent()).data,
|
|
356
371
|
_b)
|
|
357
372
|
];
|
|
358
373
|
_c = {
|
|
359
374
|
target: this.gmxV2DataStore.address
|
|
360
375
|
};
|
|
361
|
-
return [4 /*yield*/,
|
|
376
|
+
return [4 /*yield*/, populateTransaction.getUint(GLV_PER_MARKET_GAS_LIMIT_KEY)];
|
|
362
377
|
case 2:
|
|
363
378
|
_a = _a.concat([
|
|
364
|
-
(_c.callData = (
|
|
379
|
+
(_c.callData = (_h.sent()).data,
|
|
365
380
|
_c)
|
|
366
381
|
]);
|
|
367
382
|
_d = {
|
|
368
383
|
target: this.gmxV2DataStore.address
|
|
369
384
|
};
|
|
370
|
-
return [4 /*yield*/,
|
|
385
|
+
return [4 /*yield*/, populateTransaction.getUint(GmxV2GmEstimator_1.SINGLE_SWAP_GAS_LIMIT_KEY)];
|
|
371
386
|
case 3:
|
|
372
387
|
_a = _a.concat([
|
|
373
|
-
(_d.callData = (
|
|
388
|
+
(_d.callData = (_h.sent()).data,
|
|
374
389
|
_d)
|
|
375
390
|
]);
|
|
376
391
|
_e = {
|
|
377
392
|
target: this.gmxV2DataStore.address
|
|
378
393
|
};
|
|
379
|
-
return [4 /*yield*/,
|
|
394
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY)];
|
|
380
395
|
case 4:
|
|
381
|
-
|
|
382
|
-
(_e.callData = (
|
|
396
|
+
_a = _a.concat([
|
|
397
|
+
(_e.callData = (_h.sent()).data,
|
|
383
398
|
_e)
|
|
384
399
|
]);
|
|
385
|
-
|
|
400
|
+
_f = {
|
|
401
|
+
target: this.gmxV2DataStore.address
|
|
402
|
+
};
|
|
403
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY)];
|
|
386
404
|
case 5:
|
|
387
|
-
|
|
405
|
+
_a = _a.concat([
|
|
406
|
+
(_f.callData = (_h.sent()).data,
|
|
407
|
+
_f)
|
|
408
|
+
]);
|
|
409
|
+
_g = {
|
|
410
|
+
target: this.gmxV2DataStore.address
|
|
411
|
+
};
|
|
412
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY)];
|
|
413
|
+
case 6:
|
|
414
|
+
calls = _a.concat([
|
|
415
|
+
(_g.callData = (_h.sent()).data,
|
|
416
|
+
_g)
|
|
417
|
+
]);
|
|
418
|
+
return [4 /*yield*/, this.multicall.callStatic.aggregate(calls)];
|
|
419
|
+
case 7:
|
|
420
|
+
returnData = (_h.sent()).returnData;
|
|
388
421
|
glvWithdrawalGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[0])[0];
|
|
389
422
|
glvPerMarketGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[1])[0];
|
|
390
|
-
|
|
391
|
-
|
|
423
|
+
swapWithdrawalGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[2])[0];
|
|
424
|
+
baseGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[3])[0];
|
|
425
|
+
gasFeePerOracle = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[4])[0];
|
|
426
|
+
gasFeeMultiplierFactor = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[5])[0];
|
|
392
427
|
result = {
|
|
393
428
|
glvWithdrawalGasLimit: glvWithdrawalGasLimit,
|
|
394
429
|
glvPerMarketGasLimit: glvPerMarketGasLimit,
|
|
395
|
-
gmWithdrawalGasLimit: gmWithdrawalGasLimit,
|
|
396
430
|
swapWithdrawalGasLimit: swapWithdrawalGasLimit,
|
|
431
|
+
baseGasLimit: baseGasLimit,
|
|
432
|
+
gasFeePerOracle: gasFeePerOracle,
|
|
433
|
+
gasFeeMultiplierFactor: gasFeeMultiplierFactor,
|
|
397
434
|
};
|
|
398
435
|
this.dataStoreCache.set(WithdrawalGasLimitCacheKey, result);
|
|
399
436
|
return [2 /*return*/, result];
|
|
@@ -403,52 +440,75 @@ var GlvEstimator = /** @class */ (function () {
|
|
|
403
440
|
};
|
|
404
441
|
GlvEstimator.prototype.getDepositGasLimit = function () {
|
|
405
442
|
return __awaiter(this, void 0, void 0, function () {
|
|
406
|
-
var gasLimit, calls, _a, returnData, glvDepositGasLimit, glvPerMarketGasLimit,
|
|
407
|
-
var _b, _c, _d;
|
|
408
|
-
return __generator(this, function (
|
|
409
|
-
switch (
|
|
443
|
+
var gasLimit, populateTransaction, calls, _a, returnData, glvDepositGasLimit, glvPerMarketGasLimit, baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor, result;
|
|
444
|
+
var _b, _c, _d, _e, _f;
|
|
445
|
+
return __generator(this, function (_g) {
|
|
446
|
+
switch (_g.label) {
|
|
410
447
|
case 0:
|
|
411
448
|
gasLimit = this.dataStoreCache.get(DepositGasLimitCacheKey);
|
|
412
449
|
if (gasLimit) {
|
|
413
450
|
return [2 /*return*/, gasLimit];
|
|
414
451
|
}
|
|
452
|
+
populateTransaction = this.gmxV2DataStore.populateTransaction;
|
|
415
453
|
_b = {
|
|
416
454
|
target: this.gmxV2DataStore.address
|
|
417
455
|
};
|
|
418
|
-
return [4 /*yield*/,
|
|
456
|
+
return [4 /*yield*/, populateTransaction.getUint(GLV_DEPOSIT_GAS_LIMIT_KEY)];
|
|
419
457
|
case 1:
|
|
420
458
|
_a = [
|
|
421
|
-
(_b.callData = (
|
|
459
|
+
(_b.callData = (_g.sent()).data,
|
|
422
460
|
_b)
|
|
423
461
|
];
|
|
424
462
|
_c = {
|
|
425
463
|
target: this.gmxV2DataStore.address
|
|
426
464
|
};
|
|
427
|
-
return [4 /*yield*/,
|
|
465
|
+
return [4 /*yield*/, populateTransaction.getUint(GLV_PER_MARKET_GAS_LIMIT_KEY)];
|
|
428
466
|
case 2:
|
|
429
467
|
_a = _a.concat([
|
|
430
|
-
(_c.callData = (
|
|
468
|
+
(_c.callData = (_g.sent()).data,
|
|
431
469
|
_c)
|
|
432
470
|
]);
|
|
433
471
|
_d = {
|
|
434
472
|
target: this.gmxV2DataStore.address
|
|
435
473
|
};
|
|
436
|
-
return [4 /*yield*/,
|
|
474
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY)];
|
|
437
475
|
case 3:
|
|
438
|
-
|
|
439
|
-
(_d.callData = (
|
|
476
|
+
_a = _a.concat([
|
|
477
|
+
(_d.callData = (_g.sent()).data,
|
|
440
478
|
_d)
|
|
441
479
|
]);
|
|
442
|
-
|
|
480
|
+
_e = {
|
|
481
|
+
target: this.gmxV2DataStore.address
|
|
482
|
+
};
|
|
483
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY)];
|
|
443
484
|
case 4:
|
|
444
|
-
|
|
485
|
+
_a = _a.concat([
|
|
486
|
+
(_e.callData = (_g.sent()).data,
|
|
487
|
+
_e)
|
|
488
|
+
]);
|
|
489
|
+
_f = {
|
|
490
|
+
target: this.gmxV2DataStore.address
|
|
491
|
+
};
|
|
492
|
+
return [4 /*yield*/, populateTransaction.getUint(ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY)];
|
|
493
|
+
case 5:
|
|
494
|
+
calls = _a.concat([
|
|
495
|
+
(_f.callData = (_g.sent()).data,
|
|
496
|
+
_f)
|
|
497
|
+
]);
|
|
498
|
+
return [4 /*yield*/, this.multicall.callStatic.aggregate(calls)];
|
|
499
|
+
case 6:
|
|
500
|
+
returnData = (_g.sent()).returnData;
|
|
445
501
|
glvDepositGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[0])[0];
|
|
446
502
|
glvPerMarketGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[1])[0];
|
|
447
|
-
|
|
503
|
+
baseGasLimit = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[2])[0];
|
|
504
|
+
gasFeePerOracle = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[3])[0];
|
|
505
|
+
gasFeeMultiplierFactor = this.gmxV2DataStore.interface.decodeFunctionResult('getUint', returnData[4])[0];
|
|
448
506
|
result = {
|
|
449
507
|
glvDepositGasLimit: glvDepositGasLimit,
|
|
450
508
|
glvPerMarketGasLimit: glvPerMarketGasLimit,
|
|
451
|
-
|
|
509
|
+
baseGasLimit: baseGasLimit,
|
|
510
|
+
gasFeePerOracle: gasFeePerOracle,
|
|
511
|
+
gasFeeMultiplierFactor: gasFeeMultiplierFactor,
|
|
452
512
|
};
|
|
453
513
|
this.dataStoreCache.set(DepositGasLimitCacheKey, result);
|
|
454
514
|
return [2 /*return*/, result];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlvEstimator.js","sourceRoot":"","sources":["../../../../src/lib/estimators/GlvEstimator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GlvEstimator.js","sourceRoot":"","sources":["../../../../src/lib/estimators/GlvEstimator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dolomite-exchange/zap-sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.43",
|
|
4
4
|
"description": "SDK for zapping any asset to any asset on Dolomite.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "NODE_ENV=test jest --runInBand",
|
|
7
|
-
"test:specific": "NODE_ENV=test jest __tests__/lib/estimators/
|
|
7
|
+
"test:specific": "NODE_ENV=test jest __tests__/lib/estimators/GlvEstimator.test.ts",
|
|
8
8
|
"coverage": "NODE_ENV=test jest --coverage --runInBand --forceExit --coverageReporters=text-lcov | node_modules/.bin/coveralls",
|
|
9
9
|
"build": "rm -rf dist/ && node_modules/.bin/tsc --module commonjs",
|
|
10
10
|
"prepublishOnly": "npm run build"
|
|
@@ -25,25 +25,29 @@ import {
|
|
|
25
25
|
MULTICALL_MAP,
|
|
26
26
|
} from '../Constants';
|
|
27
27
|
import { LocalCache } from '../LocalCache';
|
|
28
|
-
import {
|
|
29
|
-
DEPOSIT_GAS_LIMIT_KEY,
|
|
30
|
-
GmxV2GmEstimator,
|
|
31
|
-
SignedPriceData,
|
|
32
|
-
SINGLE_SWAP_GAS_LIMIT_KEY,
|
|
33
|
-
WITHDRAWAL_GAS_LIMIT_KEY,
|
|
34
|
-
} from './GmxV2GmEstimator';
|
|
28
|
+
import { GmxV2GmEstimator, SignedPriceData, SINGLE_SWAP_GAS_LIMIT_KEY } from './GmxV2GmEstimator';
|
|
35
29
|
import PricePropsStruct = GmxPrice.PricePropsStruct;
|
|
36
30
|
|
|
37
31
|
const abiCoder = ethers.utils.defaultAbiCoder;
|
|
38
32
|
|
|
39
|
-
const
|
|
33
|
+
const hashString = (value: string) => keccak256(abiCoder.encode(['string'], [value]));
|
|
34
|
+
|
|
35
|
+
const ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY = hashString('ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1');
|
|
36
|
+
|
|
37
|
+
const ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY = hashString('ESTIMATED_GAS_FEE_PER_ORACLE_PRICE');
|
|
40
38
|
|
|
41
|
-
const
|
|
39
|
+
const ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY = hashString('ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR');
|
|
42
40
|
|
|
43
|
-
const
|
|
41
|
+
const GLV_DEPOSIT_GAS_LIMIT_KEY = hashString('GLV_DEPOSIT_GAS_LIMIT');
|
|
42
|
+
|
|
43
|
+
const GLV_WITHDRAWAL_GAS_LIMIT_KEY = hashString('GLV_WITHDRAWAL_GAS_LIMIT');
|
|
44
|
+
|
|
45
|
+
const GLV_PER_MARKET_GAS_LIMIT_KEY = hashString('GLV_PER_MARKET_GAS_LIMIT');
|
|
44
46
|
|
|
45
47
|
const CALLBACK_GAS_LIMIT = ethers.BigNumber.from(4_000_000);
|
|
46
48
|
|
|
49
|
+
const FLOAT_PRECISION = ethers.BigNumber.from(10).pow(30);
|
|
50
|
+
|
|
47
51
|
const GlvToGmMarketCacheKey = (glvToken: string, isDeposit: boolean): string => `GlvToGmMarket-${isDeposit
|
|
48
52
|
? 'Deposit'
|
|
49
53
|
: 'Withdrawal'}-${glvToken}`;
|
|
@@ -109,6 +113,25 @@ export class GlvEstimator {
|
|
|
109
113
|
};
|
|
110
114
|
}
|
|
111
115
|
|
|
116
|
+
private static getGlvDepositOraclePriceCount(marketCount: number): ethers.BigNumber {
|
|
117
|
+
return ethers.BigNumber.from(2 + marketCount);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
private static getGlvWithdrawalOraclePriceCount(marketCount: number): ethers.BigNumber {
|
|
121
|
+
return ethers.BigNumber.from(3 + marketCount);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
private static adjustGasLimitForEstimate(
|
|
125
|
+
gasEstimate: ethers.BigNumber,
|
|
126
|
+
oraclePriceCount: ethers.BigNumber,
|
|
127
|
+
baseGasLimit: ethers.BigNumber,
|
|
128
|
+
estimatedGasFeePerOracle: ethers.BigNumber,
|
|
129
|
+
multiplierFactor: ethers.BigNumber,
|
|
130
|
+
): ethers.BigNumber {
|
|
131
|
+
const totalBaseGasLimit = baseGasLimit.add(estimatedGasFeePerOracle.mul(oraclePriceCount));
|
|
132
|
+
return totalBaseGasLimit.add(gasEstimate.mul(multiplierFactor).div(FLOAT_PRECISION));
|
|
133
|
+
}
|
|
134
|
+
|
|
112
135
|
public async getUnwrappedAmount(
|
|
113
136
|
isolationModeTokenAddress: Address,
|
|
114
137
|
amountIn: Integer,
|
|
@@ -135,7 +158,14 @@ export class GlvEstimator {
|
|
|
135
158
|
tokenToSignedPriceMap,
|
|
136
159
|
gmMarket,
|
|
137
160
|
{ returnData: multicallResults },
|
|
138
|
-
{
|
|
161
|
+
{
|
|
162
|
+
glvWithdrawalGasLimit,
|
|
163
|
+
glvPerMarketGasLimit,
|
|
164
|
+
swapWithdrawalGasLimit,
|
|
165
|
+
baseGasLimit,
|
|
166
|
+
gasFeePerOracle,
|
|
167
|
+
gasFeeMultiplierFactor,
|
|
168
|
+
},
|
|
139
169
|
] = await Promise.all([
|
|
140
170
|
GmxV2GmEstimator.getTokenPrices(),
|
|
141
171
|
this.getGmMarketByGlvToken(glvMarket.glvTokenAddress, false),
|
|
@@ -224,10 +254,16 @@ export class GlvEstimator {
|
|
|
224
254
|
const glvTokenUsd = glvPoolValue.mul(amountIn.toFixed()).div(glvTokenSupply);
|
|
225
255
|
const gmAmountOut = marketTokenSupply.mul(glvTokenUsd).div(marketPoolValueStruct.poolValue);
|
|
226
256
|
|
|
227
|
-
|
|
257
|
+
let gasLimitOverride = glvWithdrawalGasLimit
|
|
228
258
|
.add(glvPerMarketGasLimit.mul(glvPoolInfo.markets.length))
|
|
229
|
-
.add(gmWithdrawalGasLimit)
|
|
230
259
|
.add(swapWithdrawalGasLimit);
|
|
260
|
+
gasLimitOverride = GlvEstimator.adjustGasLimitForEstimate(
|
|
261
|
+
gasLimitOverride,
|
|
262
|
+
GlvEstimator.getGlvWithdrawalOraclePriceCount(glvPoolInfo.markets.length),
|
|
263
|
+
baseGasLimit,
|
|
264
|
+
gasFeePerOracle,
|
|
265
|
+
gasFeeMultiplierFactor,
|
|
266
|
+
);
|
|
231
267
|
|
|
232
268
|
return this.gmxV2Estimator.getUnwrappedAmount(
|
|
233
269
|
gmMarket,
|
|
@@ -267,7 +303,7 @@ export class GlvEstimator {
|
|
|
267
303
|
tokenToSignedPriceMap,
|
|
268
304
|
gmMarket,
|
|
269
305
|
{ returnData: multicallResults },
|
|
270
|
-
{ glvDepositGasLimit, glvPerMarketGasLimit,
|
|
306
|
+
{ glvDepositGasLimit, glvPerMarketGasLimit, baseGasLimit, gasFeePerOracle, gasFeeMultiplierFactor },
|
|
271
307
|
] = await Promise.all([
|
|
272
308
|
GmxV2GmEstimator.getTokenPrices(),
|
|
273
309
|
this.getGmMarketByGlvToken(glvMarket.glvTokenAddress, true),
|
|
@@ -285,9 +321,14 @@ export class GlvEstimator {
|
|
|
285
321
|
multicallResults[1],
|
|
286
322
|
)[0] as IGlvReader.GlvInfoStructOutput;
|
|
287
323
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
324
|
+
let gasLimitOverride = glvDepositGasLimit.add(glvPerMarketGasLimit.mul(glvPoolInfo.markets.length));
|
|
325
|
+
gasLimitOverride = GlvEstimator.adjustGasLimitForEstimate(
|
|
326
|
+
gasLimitOverride,
|
|
327
|
+
GlvEstimator.getGlvDepositOraclePriceCount(glvPoolInfo.markets.length),
|
|
328
|
+
baseGasLimit,
|
|
329
|
+
gasFeePerOracle,
|
|
330
|
+
gasFeeMultiplierFactor,
|
|
331
|
+
);
|
|
291
332
|
|
|
292
333
|
const inputToken = marketsMap[inputMarketId.toFixed()];
|
|
293
334
|
|
|
@@ -393,30 +434,41 @@ export class GlvEstimator {
|
|
|
393
434
|
private async getWithdrawalGasLimit(): Promise<{
|
|
394
435
|
glvWithdrawalGasLimit: ethers.BigNumber,
|
|
395
436
|
glvPerMarketGasLimit: ethers.BigNumber
|
|
396
|
-
gmWithdrawalGasLimit: ethers.BigNumber,
|
|
397
437
|
swapWithdrawalGasLimit: ethers.BigNumber,
|
|
438
|
+
baseGasLimit: ethers.BigNumber,
|
|
439
|
+
gasFeePerOracle: ethers.BigNumber,
|
|
440
|
+
gasFeeMultiplierFactor: ethers.BigNumber,
|
|
398
441
|
}> {
|
|
399
442
|
const gasLimit = this.dataStoreCache.get(WithdrawalGasLimitCacheKey);
|
|
400
443
|
if (gasLimit) {
|
|
401
444
|
return gasLimit;
|
|
402
445
|
}
|
|
403
446
|
|
|
447
|
+
const { populateTransaction } = this.gmxV2DataStore!;
|
|
404
448
|
const calls: Multicall__CallStruct[] = [
|
|
405
449
|
{
|
|
406
450
|
target: this.gmxV2DataStore!.address,
|
|
407
|
-
callData: (await
|
|
451
|
+
callData: (await populateTransaction.getUint(GLV_WITHDRAWAL_GAS_LIMIT_KEY)).data!,
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
target: this.gmxV2DataStore!.address,
|
|
455
|
+
callData: (await populateTransaction.getUint(GLV_PER_MARKET_GAS_LIMIT_KEY)).data!,
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
target: this.gmxV2DataStore!.address,
|
|
459
|
+
callData: (await populateTransaction.getUint(SINGLE_SWAP_GAS_LIMIT_KEY)).data!,
|
|
408
460
|
},
|
|
409
461
|
{
|
|
410
462
|
target: this.gmxV2DataStore!.address,
|
|
411
|
-
callData: (await
|
|
463
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY)).data!,
|
|
412
464
|
},
|
|
413
465
|
{
|
|
414
466
|
target: this.gmxV2DataStore!.address,
|
|
415
|
-
callData: (await
|
|
467
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY)).data!,
|
|
416
468
|
},
|
|
417
469
|
{
|
|
418
470
|
target: this.gmxV2DataStore!.address,
|
|
419
|
-
callData: (await
|
|
471
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY)).data!,
|
|
420
472
|
},
|
|
421
473
|
];
|
|
422
474
|
|
|
@@ -432,21 +484,33 @@ export class GlvEstimator {
|
|
|
432
484
|
returnData[1],
|
|
433
485
|
)[0] as ethers.BigNumber;
|
|
434
486
|
|
|
435
|
-
const
|
|
487
|
+
const swapWithdrawalGasLimit = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
436
488
|
'getUint',
|
|
437
489
|
returnData[2],
|
|
438
490
|
)[0] as ethers.BigNumber;
|
|
439
491
|
|
|
440
|
-
const
|
|
492
|
+
const baseGasLimit = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
441
493
|
'getUint',
|
|
442
494
|
returnData[3],
|
|
443
495
|
)[0] as ethers.BigNumber;
|
|
444
496
|
|
|
497
|
+
const gasFeePerOracle = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
498
|
+
'getUint',
|
|
499
|
+
returnData[4],
|
|
500
|
+
)[0] as ethers.BigNumber;
|
|
501
|
+
|
|
502
|
+
const gasFeeMultiplierFactor = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
503
|
+
'getUint',
|
|
504
|
+
returnData[5],
|
|
505
|
+
)[0] as ethers.BigNumber;
|
|
506
|
+
|
|
445
507
|
const result = {
|
|
446
508
|
glvWithdrawalGasLimit,
|
|
447
509
|
glvPerMarketGasLimit,
|
|
448
|
-
gmWithdrawalGasLimit,
|
|
449
510
|
swapWithdrawalGasLimit,
|
|
511
|
+
baseGasLimit,
|
|
512
|
+
gasFeePerOracle,
|
|
513
|
+
gasFeeMultiplierFactor,
|
|
450
514
|
};
|
|
451
515
|
this.dataStoreCache.set(WithdrawalGasLimitCacheKey, result);
|
|
452
516
|
|
|
@@ -456,25 +520,36 @@ export class GlvEstimator {
|
|
|
456
520
|
private async getDepositGasLimit(): Promise<{
|
|
457
521
|
glvDepositGasLimit: ethers.BigNumber,
|
|
458
522
|
glvPerMarketGasLimit: ethers.BigNumber
|
|
459
|
-
|
|
523
|
+
baseGasLimit: ethers.BigNumber,
|
|
524
|
+
gasFeePerOracle: ethers.BigNumber,
|
|
525
|
+
gasFeeMultiplierFactor: ethers.BigNumber,
|
|
460
526
|
}> {
|
|
461
527
|
const gasLimit = this.dataStoreCache.get(DepositGasLimitCacheKey);
|
|
462
528
|
if (gasLimit) {
|
|
463
529
|
return gasLimit;
|
|
464
530
|
}
|
|
465
531
|
|
|
532
|
+
const { populateTransaction } = this.gmxV2DataStore!;
|
|
466
533
|
const calls: Multicall__CallStruct[] = [
|
|
467
534
|
{
|
|
468
535
|
target: this.gmxV2DataStore!.address,
|
|
469
|
-
callData: (await
|
|
536
|
+
callData: (await populateTransaction.getUint(GLV_DEPOSIT_GAS_LIMIT_KEY)).data!,
|
|
470
537
|
},
|
|
471
538
|
{
|
|
472
539
|
target: this.gmxV2DataStore!.address,
|
|
473
|
-
callData: (await
|
|
540
|
+
callData: (await populateTransaction.getUint(GLV_PER_MARKET_GAS_LIMIT_KEY)).data!,
|
|
474
541
|
},
|
|
475
542
|
{
|
|
476
543
|
target: this.gmxV2DataStore!.address,
|
|
477
|
-
callData: (await
|
|
544
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_BASE_AMOUNT_V2_1_KEY)).data!,
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
target: this.gmxV2DataStore!.address,
|
|
548
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_PER_ORACLE_PRICE_KEY)).data!,
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
target: this.gmxV2DataStore!.address,
|
|
552
|
+
callData: (await populateTransaction.getUint(ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR_KEY)).data!,
|
|
478
553
|
},
|
|
479
554
|
];
|
|
480
555
|
|
|
@@ -490,15 +565,27 @@ export class GlvEstimator {
|
|
|
490
565
|
returnData[1],
|
|
491
566
|
)[0] as ethers.BigNumber;
|
|
492
567
|
|
|
493
|
-
const
|
|
568
|
+
const baseGasLimit = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
494
569
|
'getUint',
|
|
495
570
|
returnData[2],
|
|
496
571
|
)[0] as ethers.BigNumber;
|
|
497
572
|
|
|
573
|
+
const gasFeePerOracle = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
574
|
+
'getUint',
|
|
575
|
+
returnData[3],
|
|
576
|
+
)[0] as ethers.BigNumber;
|
|
577
|
+
|
|
578
|
+
const gasFeeMultiplierFactor = this.gmxV2DataStore!.interface.decodeFunctionResult(
|
|
579
|
+
'getUint',
|
|
580
|
+
returnData[4],
|
|
581
|
+
)[0] as ethers.BigNumber;
|
|
582
|
+
|
|
498
583
|
const result = {
|
|
499
584
|
glvDepositGasLimit,
|
|
500
585
|
glvPerMarketGasLimit,
|
|
501
|
-
|
|
586
|
+
baseGasLimit,
|
|
587
|
+
gasFeePerOracle,
|
|
588
|
+
gasFeeMultiplierFactor,
|
|
502
589
|
};
|
|
503
590
|
this.dataStoreCache.set(DepositGasLimitCacheKey, result);
|
|
504
591
|
|