@defisaver/automation-sdk 2.0.5 → 2.0.6
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/esm/automation/private/StrategiesAutomation.js +1 -1
- package/esm/constants/index.js +10 -0
- package/esm/services/strategiesService.js +26 -0
- package/esm/services/strategySubService.d.ts +12 -0
- package/esm/services/strategySubService.js +7 -0
- package/esm/services/triggerService.d.ts +10 -0
- package/esm/services/triggerService.js +29 -1
- package/esm/types/enums.d.ts +6 -0
- package/esm/types/enums.js +6 -0
- package/esm/types/index.d.ts +12 -1
- package/package.json +2 -2
- package/src/automation/private/StrategiesAutomation.ts +1 -1
- package/src/constants/index.ts +10 -0
- package/src/services/strategiesService.ts +39 -0
- package/src/services/strategySubService.ts +22 -0
- package/src/services/triggerService.test.ts +2 -1
- package/src/services/triggerService.ts +41 -0
- package/src/types/enums.ts +6 -0
- package/src/types/index.ts +14 -1
- package/umd/index.js +166 -73
|
@@ -77,7 +77,7 @@ class StrategiesAutomation extends Automation_1.default {
|
|
|
77
77
|
let subscriptions = [];
|
|
78
78
|
if (subscriptionEvents) {
|
|
79
79
|
// @ts-ignore
|
|
80
|
-
const strategiesSubs = yield this.getStrategiesSubs(subscriptionEvents.map((e) => e.returnValues.subId), _options.
|
|
80
|
+
const strategiesSubs = yield this.getStrategiesSubs(subscriptionEvents.map((e) => e.returnValues.subId), _options.toBlock);
|
|
81
81
|
subscriptions = yield Promise.all(strategiesSubs.map((sub, index) => __awaiter(this, void 0, void 0, function* () {
|
|
82
82
|
var _a;
|
|
83
83
|
let latestUpdate = subscriptionEvents[index].returnValues;
|
package/esm/constants/index.js
CHANGED
|
@@ -193,11 +193,21 @@ exports.MAINNET_BUNDLES_INFO = {
|
|
|
193
193
|
strategyId: enums_1.Strategies.Identifiers.CloseToDebt,
|
|
194
194
|
protocol: exports.PROTOCOLS.AaveV3,
|
|
195
195
|
},
|
|
196
|
+
[enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE]: {
|
|
197
|
+
strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE,
|
|
198
|
+
strategyId: enums_1.Strategies.Identifiers.CloseToDebtWithGasPrice,
|
|
199
|
+
protocol: exports.PROTOCOLS.AaveV3,
|
|
200
|
+
},
|
|
196
201
|
[enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL]: {
|
|
197
202
|
strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL,
|
|
198
203
|
strategyId: enums_1.Strategies.Identifiers.CloseToCollateral,
|
|
199
204
|
protocol: exports.PROTOCOLS.AaveV3,
|
|
200
205
|
},
|
|
206
|
+
[enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE]: {
|
|
207
|
+
strategyOrBundleId: enums_1.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE,
|
|
208
|
+
strategyId: enums_1.Strategies.Identifiers.CloseToCollateralWithGasPrice,
|
|
209
|
+
protocol: exports.PROTOCOLS.AaveV3,
|
|
210
|
+
},
|
|
201
211
|
[enums_1.Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY]: {
|
|
202
212
|
strategyOrBundleId: enums_1.Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY,
|
|
203
213
|
strategyId: enums_1.Strategies.Identifiers.Repay,
|
|
@@ -243,6 +243,30 @@ function parseAaveV3CloseOnPrice(position, parseData) {
|
|
|
243
243
|
_position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState) ? enums_1.Strategies.IdOverrides.TakeProfit : enums_1.Strategies.IdOverrides.StopLoss;
|
|
244
244
|
return _position;
|
|
245
245
|
}
|
|
246
|
+
function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
|
|
247
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
248
|
+
const { subStruct } = parseData.subscriptionEventData;
|
|
249
|
+
const triggerData = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.decode(subStruct.triggerData);
|
|
250
|
+
const subData = subDataService.aaveV3QuotePriceSubData.decode(subStruct.subData);
|
|
251
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
252
|
+
_position.strategyData.decoded.subData = subData;
|
|
253
|
+
_position.specific = {
|
|
254
|
+
collAsset: subData.collAsset,
|
|
255
|
+
collAssetId: subData.collAssetId,
|
|
256
|
+
debtAsset: subData.debtAsset,
|
|
257
|
+
debtAssetId: subData.debtAssetId,
|
|
258
|
+
baseToken: triggerData.baseTokenAddress,
|
|
259
|
+
quoteToken: triggerData.quoteTokenAddress,
|
|
260
|
+
price: triggerData.price,
|
|
261
|
+
maximumGasPrice: triggerData.maximumGasPrice,
|
|
262
|
+
ratioState: triggerData.ratioState,
|
|
263
|
+
};
|
|
264
|
+
const { ratioState } = (0, utils_1.getRatioStateInfoForAaveCloseStrategy)(_position.specific.ratioState, (0, utils_1.wethToEthByAddress)(_position.specific.collAsset, parseData.chainId), (0, utils_1.wethToEthByAddress)(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
265
|
+
_position.strategy.strategyId = (0, utils_1.isRatioStateOver)(ratioState)
|
|
266
|
+
? enums_1.Strategies.IdOverrides.TakeProfitWithGasPrice
|
|
267
|
+
: enums_1.Strategies.IdOverrides.StopLossWithGasPrice;
|
|
268
|
+
return _position;
|
|
269
|
+
}
|
|
246
270
|
function parseCompoundV2LeverageManagement(position, parseData) {
|
|
247
271
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
248
272
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
@@ -461,7 +485,9 @@ const parsingMethodsMapping = {
|
|
|
461
485
|
[enums_1.Strategies.Identifiers.Repay]: parseAaveV3LeverageManagement,
|
|
462
486
|
[enums_1.Strategies.Identifiers.Boost]: parseAaveV3LeverageManagement,
|
|
463
487
|
[enums_1.Strategies.Identifiers.CloseToDebt]: parseAaveV3CloseOnPrice,
|
|
488
|
+
[enums_1.Strategies.Identifiers.CloseToDebtWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
|
|
464
489
|
[enums_1.Strategies.Identifiers.CloseToCollateral]: parseAaveV3CloseOnPrice,
|
|
490
|
+
[enums_1.Strategies.Identifiers.CloseToCollateralWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
|
|
465
491
|
},
|
|
466
492
|
[enums_1.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
467
493
|
[enums_1.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -33,6 +33,18 @@ export declare const aaveV3Encode: {
|
|
|
33
33
|
debtAsset: EthereumAddress;
|
|
34
34
|
debtAssetId: number;
|
|
35
35
|
}): (number | boolean | string[])[];
|
|
36
|
+
closeToAssetWithMaximumGasPrice(strategyOrBundleId: number, isBundle: boolean | undefined, triggerData: {
|
|
37
|
+
baseTokenAddress: EthereumAddress;
|
|
38
|
+
quoteTokenAddress: EthereumAddress;
|
|
39
|
+
price: number;
|
|
40
|
+
ratioState: RatioState;
|
|
41
|
+
maximumGasPrice: number;
|
|
42
|
+
}, subData: {
|
|
43
|
+
collAsset: EthereumAddress;
|
|
44
|
+
collAssetId: number;
|
|
45
|
+
debtAsset: EthereumAddress;
|
|
46
|
+
debtAssetId: number;
|
|
47
|
+
}): (number | boolean | string[])[];
|
|
36
48
|
};
|
|
37
49
|
export declare const compoundV2Encode: {
|
|
38
50
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
@@ -152,6 +152,13 @@ exports.aaveV3Encode = {
|
|
|
152
152
|
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
153
153
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
154
154
|
},
|
|
155
|
+
closeToAssetWithMaximumGasPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
|
|
156
|
+
const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
|
|
157
|
+
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
158
|
+
const { baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState, } = triggerData;
|
|
159
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
|
|
160
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
161
|
+
},
|
|
155
162
|
};
|
|
156
163
|
exports.compoundV2Encode = {
|
|
157
164
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
@@ -50,6 +50,16 @@ export declare const aaveV3QuotePriceTrigger: {
|
|
|
50
50
|
ratioState: RatioState;
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
+
export declare const aaveV3QuotePriceWithMaximumGasPriceTrigger: {
|
|
54
|
+
encode(baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState, maximumGasPriceInGwei?: number): string[];
|
|
55
|
+
decode(triggerData: string[]): {
|
|
56
|
+
baseTokenAddress: EthereumAddress;
|
|
57
|
+
quoteTokenAddress: EthereumAddress;
|
|
58
|
+
price: string;
|
|
59
|
+
ratioState: RatioState;
|
|
60
|
+
maximumGasPrice: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
53
63
|
export declare const compoundV2RatioTrigger: {
|
|
54
64
|
encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
|
|
55
65
|
decode(triggerData: string[]): {
|
|
@@ -26,8 +26,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
|
|
29
|
+
exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
|
|
30
30
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
31
|
+
const tokens_1 = require("@defisaver/tokens");
|
|
31
32
|
const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
|
|
32
33
|
const web3Utils = __importStar(require("web3-utils"));
|
|
33
34
|
const utils_1 = require("./utils");
|
|
@@ -109,6 +110,33 @@ exports.aaveV3QuotePriceTrigger = {
|
|
|
109
110
|
};
|
|
110
111
|
},
|
|
111
112
|
};
|
|
113
|
+
exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = {
|
|
114
|
+
encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPriceInGwei) {
|
|
115
|
+
// Price is always in 8 decimals
|
|
116
|
+
const _price = new decimal_js_1.default(price.toString()).mul(Math.pow(10, 8)).floor().toString();
|
|
117
|
+
const _maximumGasPrice = maximumGasPriceInGwei
|
|
118
|
+
? new decimal_js_1.default(maximumGasPriceInGwei.toString()).mul(Math.pow(10, 9)).floor().toString() // We convert it to WEI
|
|
119
|
+
: tokens_1.MAXUINT; // If undefined than set to MAXUINT
|
|
120
|
+
return [
|
|
121
|
+
web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState]),
|
|
122
|
+
web3_eth_abi_1.default.encodeParameters(['uint256'], [_maximumGasPrice]),
|
|
123
|
+
];
|
|
124
|
+
},
|
|
125
|
+
decode(triggerData) {
|
|
126
|
+
const decodedPriceTrigger = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
127
|
+
const decodedMaximumGasPriceTrigger = web3_eth_abi_1.default.decodeParameters(['uint256'], triggerData[1]);
|
|
128
|
+
// Price is always in 8 decimals
|
|
129
|
+
const price = new decimal_js_1.default(decodedPriceTrigger[2]).div(Math.pow(10, 8)).toDP(8).toString();
|
|
130
|
+
const maximumGasPrice = new decimal_js_1.default(decodedMaximumGasPriceTrigger[0]).div(Math.pow(10, 9)).toDP(9).toString();
|
|
131
|
+
return {
|
|
132
|
+
baseTokenAddress: decodedPriceTrigger[0],
|
|
133
|
+
quoteTokenAddress: decodedPriceTrigger[1],
|
|
134
|
+
price,
|
|
135
|
+
ratioState: +decodedPriceTrigger[3],
|
|
136
|
+
maximumGasPrice,
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
};
|
|
112
140
|
exports.compoundV2RatioTrigger = {
|
|
113
141
|
encode(owner, ratioPercentage, ratioState) {
|
|
114
142
|
const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
|
package/esm/types/enums.d.ts
CHANGED
|
@@ -74,7 +74,9 @@ export declare namespace Strategies {
|
|
|
74
74
|
Boost = "boost",
|
|
75
75
|
EoaBoost = "eoa-boost",
|
|
76
76
|
CloseToDebt = "close-to-debt",
|
|
77
|
+
CloseToDebtWithGasPrice = "close-to-debt-with-gas-price",
|
|
77
78
|
CloseToCollateral = "close-to-collateral",
|
|
79
|
+
CloseToCollateralWithGasPrice = "close-to-collateral-with-gas-price",
|
|
78
80
|
CloseOnPriceToDebt = "close-on-price-to-debt",
|
|
79
81
|
CloseOnPriceToColl = "close-on-price-to-collateral",
|
|
80
82
|
TrailingStopToColl = "trailing-stop-to-collateral",
|
|
@@ -87,6 +89,8 @@ export declare namespace Strategies {
|
|
|
87
89
|
enum IdOverrides {
|
|
88
90
|
TakeProfit = "take-profit",
|
|
89
91
|
StopLoss = "stop-loss",
|
|
92
|
+
TakeProfitWithGasPrice = "take-profit-with-gas-price",
|
|
93
|
+
StopLossWithGasPrice = "stop-loss-with-gas-price",
|
|
90
94
|
TrailingStop = "trailing-stop",
|
|
91
95
|
LeverageManagement = "leverage-management",
|
|
92
96
|
EoaLeverageManagement = "leverage-management-eoa"
|
|
@@ -107,7 +111,9 @@ export declare namespace Bundles {
|
|
|
107
111
|
MAKER_REPAY = 10,
|
|
108
112
|
MAKER_BOOST = 11,
|
|
109
113
|
AAVE_V3_CLOSE_TO_DEBT = 12,
|
|
114
|
+
AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE = 24,
|
|
110
115
|
AAVE_V3_CLOSE_TO_COLLATERAL = 13,
|
|
116
|
+
AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE = 25,
|
|
111
117
|
MORPHO_AAVE_V2_REPAY = 14,
|
|
112
118
|
MORPHO_AAVE_V2_BOOST = 15,
|
|
113
119
|
LIQUITY_REPAY = 16,
|
package/esm/types/enums.js
CHANGED
|
@@ -89,7 +89,9 @@ var Strategies;
|
|
|
89
89
|
Identifiers["Boost"] = "boost";
|
|
90
90
|
Identifiers["EoaBoost"] = "eoa-boost";
|
|
91
91
|
Identifiers["CloseToDebt"] = "close-to-debt";
|
|
92
|
+
Identifiers["CloseToDebtWithGasPrice"] = "close-to-debt-with-gas-price";
|
|
92
93
|
Identifiers["CloseToCollateral"] = "close-to-collateral";
|
|
94
|
+
Identifiers["CloseToCollateralWithGasPrice"] = "close-to-collateral-with-gas-price";
|
|
93
95
|
Identifiers["CloseOnPriceToDebt"] = "close-on-price-to-debt";
|
|
94
96
|
Identifiers["CloseOnPriceToColl"] = "close-on-price-to-collateral";
|
|
95
97
|
Identifiers["TrailingStopToColl"] = "trailing-stop-to-collateral";
|
|
@@ -103,6 +105,8 @@ var Strategies;
|
|
|
103
105
|
(function (IdOverrides) {
|
|
104
106
|
IdOverrides["TakeProfit"] = "take-profit";
|
|
105
107
|
IdOverrides["StopLoss"] = "stop-loss";
|
|
108
|
+
IdOverrides["TakeProfitWithGasPrice"] = "take-profit-with-gas-price";
|
|
109
|
+
IdOverrides["StopLossWithGasPrice"] = "stop-loss-with-gas-price";
|
|
106
110
|
IdOverrides["TrailingStop"] = "trailing-stop";
|
|
107
111
|
IdOverrides["LeverageManagement"] = "leverage-management";
|
|
108
112
|
IdOverrides["EoaLeverageManagement"] = "leverage-management-eoa";
|
|
@@ -125,7 +129,9 @@ var Bundles;
|
|
|
125
129
|
MainnetIds[MainnetIds["MAKER_REPAY"] = 10] = "MAKER_REPAY";
|
|
126
130
|
MainnetIds[MainnetIds["MAKER_BOOST"] = 11] = "MAKER_BOOST";
|
|
127
131
|
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_DEBT"] = 12] = "AAVE_V3_CLOSE_TO_DEBT";
|
|
132
|
+
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE"] = 24] = "AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE";
|
|
128
133
|
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_COLLATERAL"] = 13] = "AAVE_V3_CLOSE_TO_COLLATERAL";
|
|
134
|
+
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE"] = 25] = "AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE";
|
|
129
135
|
MainnetIds[MainnetIds["MORPHO_AAVE_V2_REPAY"] = 14] = "MORPHO_AAVE_V2_REPAY";
|
|
130
136
|
MainnetIds[MainnetIds["MORPHO_AAVE_V2_BOOST"] = 15] = "MORPHO_AAVE_V2_BOOST";
|
|
131
137
|
MainnetIds[MainnetIds["LIQUITY_REPAY"] = 16] = "LIQUITY_REPAY";
|
package/esm/types/index.d.ts
CHANGED
|
@@ -116,13 +116,24 @@ export declare namespace Position {
|
|
|
116
116
|
price: string;
|
|
117
117
|
ratioState: RatioState;
|
|
118
118
|
}
|
|
119
|
+
interface CloseOnPriceWithMaximumGasPriceAave extends Base {
|
|
120
|
+
collAsset: EthereumAddress;
|
|
121
|
+
collAssetId: number;
|
|
122
|
+
debtAsset: EthereumAddress;
|
|
123
|
+
debtAssetId: number;
|
|
124
|
+
baseToken: EthereumAddress;
|
|
125
|
+
quoteToken: EthereumAddress;
|
|
126
|
+
price: string;
|
|
127
|
+
maximumGasPrice: string;
|
|
128
|
+
ratioState: RatioState;
|
|
129
|
+
}
|
|
119
130
|
interface TrailingStop extends Base {
|
|
120
131
|
roundId: number;
|
|
121
132
|
triggerPercentage: number;
|
|
122
133
|
closeToAssetAddr: EthereumAddress;
|
|
123
134
|
}
|
|
124
135
|
}
|
|
125
|
-
type SpecificAny = Specific.CloseOnPrice | Specific.TrailingStop | Specific.RatioProtection | Specific.CloseOnPriceAave;
|
|
136
|
+
type SpecificAny = Specific.CloseOnPrice | Specific.TrailingStop | Specific.RatioProtection | Specific.CloseOnPriceAave | Specific.CloseOnPriceWithMaximumGasPriceAave;
|
|
126
137
|
interface Automated {
|
|
127
138
|
chainId: ChainId;
|
|
128
139
|
owner: EthereumAddress;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/automation-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./umd/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"lint": "node_modules/.bin/eslint ./src",
|
|
16
16
|
"gtc": "node scripts/generateContractTypes.js",
|
|
17
17
|
"prepare": "husky install && npm run gtc",
|
|
18
|
-
"test": "mocha \"./src/**/*.test.ts\" --
|
|
18
|
+
"test": "mocha \"./src/**/*.test.ts\" --require ts-node/register --extension ts"
|
|
19
19
|
},
|
|
20
20
|
"author": "DeFi Saver",
|
|
21
21
|
"repository": "https://github.com/defisaver/automation-sdk",
|
|
@@ -97,7 +97,7 @@ export default class StrategiesAutomation extends Automation {
|
|
|
97
97
|
|
|
98
98
|
if (subscriptionEvents) {
|
|
99
99
|
// @ts-ignore
|
|
100
|
-
const strategiesSubs = await this.getStrategiesSubs(subscriptionEvents.map((e) => e.returnValues.subId), _options.
|
|
100
|
+
const strategiesSubs = await this.getStrategiesSubs(subscriptionEvents.map((e) => e.returnValues.subId), _options.toBlock);
|
|
101
101
|
|
|
102
102
|
subscriptions = await Promise.all(strategiesSubs.map(async (sub, index: number) => {
|
|
103
103
|
let latestUpdate = subscriptionEvents[index].returnValues;
|
package/src/constants/index.ts
CHANGED
|
@@ -203,11 +203,21 @@ export const MAINNET_BUNDLES_INFO: MainnetBundleInfo = {
|
|
|
203
203
|
strategyId: Strategies.Identifiers.CloseToDebt,
|
|
204
204
|
protocol: PROTOCOLS.AaveV3,
|
|
205
205
|
},
|
|
206
|
+
[Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE]: {
|
|
207
|
+
strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE,
|
|
208
|
+
strategyId: Strategies.Identifiers.CloseToDebtWithGasPrice,
|
|
209
|
+
protocol: PROTOCOLS.AaveV3,
|
|
210
|
+
},
|
|
206
211
|
[Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL]: {
|
|
207
212
|
strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL,
|
|
208
213
|
strategyId: Strategies.Identifiers.CloseToCollateral,
|
|
209
214
|
protocol: PROTOCOLS.AaveV3,
|
|
210
215
|
},
|
|
216
|
+
[Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE]: {
|
|
217
|
+
strategyOrBundleId: Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE,
|
|
218
|
+
strategyId: Strategies.Identifiers.CloseToCollateralWithGasPrice,
|
|
219
|
+
protocol: PROTOCOLS.AaveV3,
|
|
220
|
+
},
|
|
211
221
|
[Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY]: {
|
|
212
222
|
strategyOrBundleId: Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY,
|
|
213
223
|
strategyId: Strategies.Identifiers.Repay,
|
|
@@ -299,6 +299,43 @@ function parseAaveV3CloseOnPrice(position: Position.Automated, parseData: ParseD
|
|
|
299
299
|
return _position;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
+
function parseAaveV3CloseOnPriceWithMaximumGasPrice(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
303
|
+
const _position = cloneDeep(position);
|
|
304
|
+
|
|
305
|
+
const { subStruct } = parseData.subscriptionEventData;
|
|
306
|
+
|
|
307
|
+
const triggerData = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.decode(subStruct.triggerData);
|
|
308
|
+
const subData = subDataService.aaveV3QuotePriceSubData.decode(subStruct.subData);
|
|
309
|
+
|
|
310
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
311
|
+
_position.strategyData.decoded.subData = subData;
|
|
312
|
+
|
|
313
|
+
_position.specific = {
|
|
314
|
+
collAsset: subData.collAsset,
|
|
315
|
+
collAssetId: subData.collAssetId,
|
|
316
|
+
debtAsset: subData.debtAsset,
|
|
317
|
+
debtAssetId: subData.debtAssetId,
|
|
318
|
+
baseToken: triggerData.baseTokenAddress,
|
|
319
|
+
quoteToken: triggerData.quoteTokenAddress,
|
|
320
|
+
price: triggerData.price,
|
|
321
|
+
maximumGasPrice: triggerData.maximumGasPrice,
|
|
322
|
+
ratioState: triggerData.ratioState,
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
const { ratioState } = getRatioStateInfoForAaveCloseStrategy(
|
|
326
|
+
_position.specific.ratioState,
|
|
327
|
+
wethToEthByAddress(_position.specific.collAsset, parseData.chainId),
|
|
328
|
+
wethToEthByAddress(_position.specific.debtAsset, parseData.chainId),
|
|
329
|
+
parseData.chainId,
|
|
330
|
+
);
|
|
331
|
+
|
|
332
|
+
_position.strategy.strategyId = isRatioStateOver(ratioState)
|
|
333
|
+
? Strategies.IdOverrides.TakeProfitWithGasPrice
|
|
334
|
+
: Strategies.IdOverrides.StopLossWithGasPrice;
|
|
335
|
+
|
|
336
|
+
return _position;
|
|
337
|
+
}
|
|
338
|
+
|
|
302
339
|
function parseCompoundV2LeverageManagement(position: Position.Automated, parseData: ParseData): Position.Automated {
|
|
303
340
|
const _position = cloneDeep(position);
|
|
304
341
|
|
|
@@ -579,7 +616,9 @@ const parsingMethodsMapping: StrategiesToProtocolVersionMapping = {
|
|
|
579
616
|
[Strategies.Identifiers.Repay]: parseAaveV3LeverageManagement,
|
|
580
617
|
[Strategies.Identifiers.Boost]: parseAaveV3LeverageManagement,
|
|
581
618
|
[Strategies.Identifiers.CloseToDebt]: parseAaveV3CloseOnPrice,
|
|
619
|
+
[Strategies.Identifiers.CloseToDebtWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
|
|
582
620
|
[Strategies.Identifiers.CloseToCollateral]: parseAaveV3CloseOnPrice,
|
|
621
|
+
[Strategies.Identifiers.CloseToCollateralWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
|
|
583
622
|
},
|
|
584
623
|
[ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
585
624
|
[Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -256,6 +256,28 @@ export const aaveV3Encode = {
|
|
|
256
256
|
} = triggerData;
|
|
257
257
|
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
258
258
|
|
|
259
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
260
|
+
},
|
|
261
|
+
closeToAssetWithMaximumGasPrice(
|
|
262
|
+
strategyOrBundleId: number,
|
|
263
|
+
isBundle: boolean = true,
|
|
264
|
+
triggerData: {
|
|
265
|
+
baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState, maximumGasPrice: number
|
|
266
|
+
},
|
|
267
|
+
subData: {
|
|
268
|
+
collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number,
|
|
269
|
+
},
|
|
270
|
+
) {
|
|
271
|
+
const {
|
|
272
|
+
collAsset, collAssetId, debtAsset, debtAssetId,
|
|
273
|
+
} = subData;
|
|
274
|
+
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
275
|
+
|
|
276
|
+
const {
|
|
277
|
+
baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState,
|
|
278
|
+
} = triggerData;
|
|
279
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
|
|
280
|
+
|
|
259
281
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
260
282
|
},
|
|
261
283
|
};
|
|
@@ -13,7 +13,8 @@ import {
|
|
|
13
13
|
chainlinkPriceTrigger,
|
|
14
14
|
compoundV2RatioTrigger,
|
|
15
15
|
compoundV3RatioTrigger,
|
|
16
|
-
curveUsdBorrowRateTrigger,
|
|
16
|
+
curveUsdBorrowRateTrigger,
|
|
17
|
+
curveUsdSoftLiquidationTrigger,
|
|
17
18
|
exchangeOffchainPriceTrigger,
|
|
18
19
|
exchangeTimestampTrigger,
|
|
19
20
|
liquityDebtInFrontTrigger,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Dec from 'decimal.js';
|
|
2
|
+
import { MAXUINT } from '@defisaver/tokens';
|
|
2
3
|
import AbiCoder from 'web3-eth-abi';
|
|
3
4
|
import * as web3Utils from 'web3-utils';
|
|
4
5
|
|
|
@@ -100,6 +101,46 @@ export const aaveV3QuotePriceTrigger = {
|
|
|
100
101
|
},
|
|
101
102
|
};
|
|
102
103
|
|
|
104
|
+
export const aaveV3QuotePriceWithMaximumGasPriceTrigger = {
|
|
105
|
+
encode(
|
|
106
|
+
baseTokenAddress: EthereumAddress,
|
|
107
|
+
quoteTokenAddress: EthereumAddress,
|
|
108
|
+
price: number,
|
|
109
|
+
ratioState: RatioState,
|
|
110
|
+
maximumGasPriceInGwei?: number,
|
|
111
|
+
) {
|
|
112
|
+
// Price is always in 8 decimals
|
|
113
|
+
const _price = new Dec(price.toString()).mul(10 ** 8).floor().toString();
|
|
114
|
+
|
|
115
|
+
const _maximumGasPrice = maximumGasPriceInGwei
|
|
116
|
+
? new Dec(maximumGasPriceInGwei.toString()).mul(10 ** 9).floor().toString() // We convert it to WEI
|
|
117
|
+
: MAXUINT; // If undefined than set to MAXUINT
|
|
118
|
+
|
|
119
|
+
return [
|
|
120
|
+
AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState]),
|
|
121
|
+
AbiCoder.encodeParameters(['uint256'], [_maximumGasPrice]),
|
|
122
|
+
];
|
|
123
|
+
},
|
|
124
|
+
decode(
|
|
125
|
+
triggerData: TriggerData,
|
|
126
|
+
): { baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: string, ratioState: RatioState, maximumGasPrice: string } {
|
|
127
|
+
const decodedPriceTrigger = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]) as Array<string>;
|
|
128
|
+
const decodedMaximumGasPriceTrigger = AbiCoder.decodeParameters(['uint256'], triggerData[1]) as Array<string>;
|
|
129
|
+
// Price is always in 8 decimals
|
|
130
|
+
const price = new Dec(decodedPriceTrigger[2]).div(10 ** 8).toDP(8).toString();
|
|
131
|
+
|
|
132
|
+
const maximumGasPrice = new Dec(decodedMaximumGasPriceTrigger[0]).div(10 ** 9).toDP(9).toString();
|
|
133
|
+
|
|
134
|
+
return {
|
|
135
|
+
baseTokenAddress: decodedPriceTrigger[0],
|
|
136
|
+
quoteTokenAddress: decodedPriceTrigger[1],
|
|
137
|
+
price,
|
|
138
|
+
ratioState: +decodedPriceTrigger[3],
|
|
139
|
+
maximumGasPrice,
|
|
140
|
+
};
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
|
|
103
144
|
export const compoundV2RatioTrigger = {
|
|
104
145
|
encode(owner: EthereumAddress, ratioPercentage: number, ratioState: RatioState) {
|
|
105
146
|
const ratioWei = ratioPercentageToWei(ratioPercentage);
|
package/src/types/enums.ts
CHANGED
|
@@ -83,7 +83,9 @@ export namespace Strategies {
|
|
|
83
83
|
Boost = 'boost',
|
|
84
84
|
EoaBoost = 'eoa-boost',
|
|
85
85
|
CloseToDebt = 'close-to-debt',
|
|
86
|
+
CloseToDebtWithGasPrice = 'close-to-debt-with-gas-price',
|
|
86
87
|
CloseToCollateral = 'close-to-collateral',
|
|
88
|
+
CloseToCollateralWithGasPrice = 'close-to-collateral-with-gas-price',
|
|
87
89
|
CloseOnPriceToDebt = 'close-on-price-to-debt',
|
|
88
90
|
CloseOnPriceToColl = 'close-on-price-to-collateral',
|
|
89
91
|
TrailingStopToColl = 'trailing-stop-to-collateral',
|
|
@@ -96,6 +98,8 @@ export namespace Strategies {
|
|
|
96
98
|
export enum IdOverrides {
|
|
97
99
|
TakeProfit = 'take-profit',
|
|
98
100
|
StopLoss = 'stop-loss',
|
|
101
|
+
TakeProfitWithGasPrice = 'take-profit-with-gas-price',
|
|
102
|
+
StopLossWithGasPrice = 'stop-loss-with-gas-price',
|
|
99
103
|
TrailingStop = 'trailing-stop',
|
|
100
104
|
LeverageManagement = 'leverage-management',
|
|
101
105
|
EoaLeverageManagement = 'leverage-management-eoa',
|
|
@@ -117,7 +121,9 @@ export namespace Bundles {
|
|
|
117
121
|
MAKER_REPAY = 10,
|
|
118
122
|
MAKER_BOOST = 11,
|
|
119
123
|
AAVE_V3_CLOSE_TO_DEBT = 12,
|
|
124
|
+
AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE = 24,
|
|
120
125
|
AAVE_V3_CLOSE_TO_COLLATERAL = 13,
|
|
126
|
+
AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE = 25,
|
|
121
127
|
MORPHO_AAVE_V2_REPAY = 14,
|
|
122
128
|
MORPHO_AAVE_V2_BOOST = 15,
|
|
123
129
|
LIQUITY_REPAY = 16,
|
package/src/types/index.ts
CHANGED
|
@@ -140,6 +140,19 @@ export declare namespace Position {
|
|
|
140
140
|
price: string,
|
|
141
141
|
ratioState: RatioState,
|
|
142
142
|
}
|
|
143
|
+
|
|
144
|
+
interface CloseOnPriceWithMaximumGasPriceAave extends Base {
|
|
145
|
+
collAsset: EthereumAddress,
|
|
146
|
+
collAssetId: number,
|
|
147
|
+
debtAsset: EthereumAddress,
|
|
148
|
+
debtAssetId: number,
|
|
149
|
+
baseToken: EthereumAddress,
|
|
150
|
+
quoteToken: EthereumAddress,
|
|
151
|
+
price: string,
|
|
152
|
+
maximumGasPrice: string,
|
|
153
|
+
ratioState: RatioState,
|
|
154
|
+
}
|
|
155
|
+
|
|
143
156
|
interface TrailingStop extends Base {
|
|
144
157
|
roundId: number,
|
|
145
158
|
triggerPercentage: number,
|
|
@@ -147,7 +160,7 @@ export declare namespace Position {
|
|
|
147
160
|
}
|
|
148
161
|
}
|
|
149
162
|
|
|
150
|
-
type SpecificAny = Specific.CloseOnPrice | Specific.TrailingStop | Specific.RatioProtection | Specific.CloseOnPriceAave;
|
|
163
|
+
type SpecificAny = Specific.CloseOnPrice | Specific.TrailingStop | Specific.RatioProtection | Specific.CloseOnPriceAave | Specific.CloseOnPriceWithMaximumGasPriceAave;
|
|
151
164
|
|
|
152
165
|
export interface Automated {
|
|
153
166
|
chainId: ChainId,
|
package/umd/index.js
CHANGED
|
@@ -283,11 +283,21 @@ var MAINNET_BUNDLES_INFO = {
|
|
|
283
283
|
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.CloseToDebt,
|
|
284
284
|
protocol: PROTOCOLS.AaveV3
|
|
285
285
|
},
|
|
286
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE]: {
|
|
287
|
+
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE,
|
|
288
|
+
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.CloseToDebtWithGasPrice,
|
|
289
|
+
protocol: PROTOCOLS.AaveV3
|
|
290
|
+
},
|
|
286
291
|
[_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL]: {
|
|
287
292
|
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL,
|
|
288
293
|
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.CloseToCollateral,
|
|
289
294
|
protocol: PROTOCOLS.AaveV3
|
|
290
295
|
},
|
|
296
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE]: {
|
|
297
|
+
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE,
|
|
298
|
+
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.CloseToCollateralWithGasPrice,
|
|
299
|
+
protocol: PROTOCOLS.AaveV3
|
|
300
|
+
},
|
|
291
301
|
[_types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY]: {
|
|
292
302
|
strategyOrBundleId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Bundles.MainnetIds.MORPHO_AAVE_V2_REPAY,
|
|
293
303
|
strategyId: _types_enums__WEBPACK_IMPORTED_MODULE_0__.Strategies.Identifiers.Repay,
|
|
@@ -513,7 +523,9 @@ var Strategies;
|
|
|
513
523
|
Identifiers["Boost"] = "boost";
|
|
514
524
|
Identifiers["EoaBoost"] = "eoa-boost";
|
|
515
525
|
Identifiers["CloseToDebt"] = "close-to-debt";
|
|
526
|
+
Identifiers["CloseToDebtWithGasPrice"] = "close-to-debt-with-gas-price";
|
|
516
527
|
Identifiers["CloseToCollateral"] = "close-to-collateral";
|
|
528
|
+
Identifiers["CloseToCollateralWithGasPrice"] = "close-to-collateral-with-gas-price";
|
|
517
529
|
Identifiers["CloseOnPriceToDebt"] = "close-on-price-to-debt";
|
|
518
530
|
Identifiers["CloseOnPriceToColl"] = "close-on-price-to-collateral";
|
|
519
531
|
Identifiers["TrailingStopToColl"] = "trailing-stop-to-collateral";
|
|
@@ -528,6 +540,8 @@ var Strategies;
|
|
|
528
540
|
(function (IdOverrides) {
|
|
529
541
|
IdOverrides["TakeProfit"] = "take-profit";
|
|
530
542
|
IdOverrides["StopLoss"] = "stop-loss";
|
|
543
|
+
IdOverrides["TakeProfitWithGasPrice"] = "take-profit-with-gas-price";
|
|
544
|
+
IdOverrides["StopLossWithGasPrice"] = "stop-loss-with-gas-price";
|
|
531
545
|
IdOverrides["TrailingStop"] = "trailing-stop";
|
|
532
546
|
IdOverrides["LeverageManagement"] = "leverage-management";
|
|
533
547
|
IdOverrides["EoaLeverageManagement"] = "leverage-management-eoa";
|
|
@@ -551,7 +565,9 @@ var Bundles;
|
|
|
551
565
|
MainnetIds[MainnetIds["MAKER_REPAY"] = 10] = "MAKER_REPAY";
|
|
552
566
|
MainnetIds[MainnetIds["MAKER_BOOST"] = 11] = "MAKER_BOOST";
|
|
553
567
|
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_DEBT"] = 12] = "AAVE_V3_CLOSE_TO_DEBT";
|
|
568
|
+
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE"] = 24] = "AAVE_V3_CLOSE_TO_DEBT_WITH_GAS_PRICE";
|
|
554
569
|
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_COLLATERAL"] = 13] = "AAVE_V3_CLOSE_TO_COLLATERAL";
|
|
570
|
+
MainnetIds[MainnetIds["AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE"] = 25] = "AAVE_V3_CLOSE_TO_COLLATERAL_WITH_GAS_PRICE";
|
|
555
571
|
MainnetIds[MainnetIds["MORPHO_AAVE_V2_REPAY"] = 14] = "MORPHO_AAVE_V2_REPAY";
|
|
556
572
|
MainnetIds[MainnetIds["MORPHO_AAVE_V2_BOOST"] = 15] = "MORPHO_AAVE_V2_BOOST";
|
|
557
573
|
MainnetIds[MainnetIds["LIQUITY_REPAY"] = 16] = "LIQUITY_REPAY";
|
|
@@ -1006,8 +1022,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1006
1022
|
/* harmony import */ var _services_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
|
|
1007
1023
|
/* harmony import */ var _Automation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
|
|
1008
1024
|
/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5);
|
|
1009
|
-
function ownKeys(
|
|
1010
|
-
function _objectSpread(
|
|
1025
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1026
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1011
1027
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
1012
1028
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
1013
1029
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -1142,8 +1158,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1142
1158
|
/* harmony import */ var web3_eth_abi__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_eth_abi__WEBPACK_IMPORTED_MODULE_0__);
|
|
1143
1159
|
/* harmony import */ var _contractService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
|
|
1144
1160
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
|
|
1145
|
-
function ownKeys(
|
|
1146
|
-
function _objectSpread(
|
|
1161
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1162
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1147
1163
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1148
1164
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
1149
1165
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -1313,8 +1329,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1313
1329
|
/* harmony export */ });
|
|
1314
1330
|
/* harmony import */ var _private_StrategiesAutomation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
|
|
1315
1331
|
/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
|
|
1316
|
-
function ownKeys(
|
|
1317
|
-
function _objectSpread(
|
|
1332
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1333
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1318
1334
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1319
1335
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
1320
1336
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -1344,8 +1360,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1344
1360
|
/* harmony import */ var _services_ethereumService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);
|
|
1345
1361
|
/* harmony import */ var _services_strategiesService__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28);
|
|
1346
1362
|
/* harmony import */ var _Automation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
|
|
1347
|
-
function ownKeys(
|
|
1348
|
-
function _objectSpread(
|
|
1363
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1364
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1349
1365
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
1350
1366
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
1351
1367
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -1434,7 +1450,7 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_5__["def
|
|
|
1434
1450
|
var subscriptions = [];
|
|
1435
1451
|
if (subscriptionEvents) {
|
|
1436
1452
|
// @ts-ignore
|
|
1437
|
-
var strategiesSubs = yield _this5.getStrategiesSubs(subscriptionEvents.map(e => e.returnValues.subId), _options.
|
|
1453
|
+
var strategiesSubs = yield _this5.getStrategiesSubs(subscriptionEvents.map(e => e.returnValues.subId), _options.toBlock);
|
|
1438
1454
|
subscriptions = yield Promise.all(strategiesSubs.map( /*#__PURE__*/function () {
|
|
1439
1455
|
var _ref = _asyncToGenerator(function* (sub, index) {
|
|
1440
1456
|
var latestUpdate = subscriptionEvents[index].returnValues;
|
|
@@ -1445,7 +1461,7 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_5__["def
|
|
|
1445
1461
|
subId: latestUpdate.subId
|
|
1446
1462
|
}
|
|
1447
1463
|
}));
|
|
1448
|
-
latestUpdate = _objectSpread(_objectSpread({}, latestUpdate), updates === null || updates === void 0
|
|
1464
|
+
latestUpdate = _objectSpread(_objectSpread({}, latestUpdate), updates === null || updates === void 0 || (_updates = updates[updates.length - 1]) === null || _updates === void 0 ? void 0 : _updates.returnValues);
|
|
1449
1465
|
}
|
|
1450
1466
|
return _this5.getParsedSubscriptions({
|
|
1451
1467
|
chainId: _this5.chainId,
|
|
@@ -1526,8 +1542,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1526
1542
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
|
|
1527
1543
|
/* harmony import */ var _subDataService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(30);
|
|
1528
1544
|
/* harmony import */ var _triggerService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(313);
|
|
1529
|
-
function ownKeys(
|
|
1530
|
-
function _objectSpread(
|
|
1545
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1546
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1531
1547
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1532
1548
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
1533
1549
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -1780,6 +1796,32 @@ function parseAaveV3CloseOnPrice(position, parseData) {
|
|
|
1780
1796
|
_position.strategy.strategyId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isRatioStateOver)(ratioState) ? _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.TakeProfit : _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.StopLoss;
|
|
1781
1797
|
return _position;
|
|
1782
1798
|
}
|
|
1799
|
+
function parseAaveV3CloseOnPriceWithMaximumGasPrice(position, parseData) {
|
|
1800
|
+
var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
|
|
1801
|
+
var {
|
|
1802
|
+
subStruct
|
|
1803
|
+
} = parseData.subscriptionEventData;
|
|
1804
|
+
var triggerData = _triggerService__WEBPACK_IMPORTED_MODULE_6__.aaveV3QuotePriceWithMaximumGasPriceTrigger.decode(subStruct.triggerData);
|
|
1805
|
+
var subData = _subDataService__WEBPACK_IMPORTED_MODULE_5__.aaveV3QuotePriceSubData.decode(subStruct.subData);
|
|
1806
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
1807
|
+
_position.strategyData.decoded.subData = subData;
|
|
1808
|
+
_position.specific = {
|
|
1809
|
+
collAsset: subData.collAsset,
|
|
1810
|
+
collAssetId: subData.collAssetId,
|
|
1811
|
+
debtAsset: subData.debtAsset,
|
|
1812
|
+
debtAssetId: subData.debtAssetId,
|
|
1813
|
+
baseToken: triggerData.baseTokenAddress,
|
|
1814
|
+
quoteToken: triggerData.quoteTokenAddress,
|
|
1815
|
+
price: triggerData.price,
|
|
1816
|
+
maximumGasPrice: triggerData.maximumGasPrice,
|
|
1817
|
+
ratioState: triggerData.ratioState
|
|
1818
|
+
};
|
|
1819
|
+
var {
|
|
1820
|
+
ratioState
|
|
1821
|
+
} = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getRatioStateInfoForAaveCloseStrategy)(_position.specific.ratioState, (0,_utils__WEBPACK_IMPORTED_MODULE_4__.wethToEthByAddress)(_position.specific.collAsset, parseData.chainId), (0,_utils__WEBPACK_IMPORTED_MODULE_4__.wethToEthByAddress)(_position.specific.debtAsset, parseData.chainId), parseData.chainId);
|
|
1822
|
+
_position.strategy.strategyId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.isRatioStateOver)(ratioState) ? _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.TakeProfitWithGasPrice : _types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.IdOverrides.StopLossWithGasPrice;
|
|
1823
|
+
return _position;
|
|
1824
|
+
}
|
|
1783
1825
|
function parseCompoundV2LeverageManagement(position, parseData) {
|
|
1784
1826
|
var _position = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(position);
|
|
1785
1827
|
var {
|
|
@@ -2029,7 +2071,9 @@ var parsingMethodsMapping = {
|
|
|
2029
2071
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseAaveV3LeverageManagement,
|
|
2030
2072
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Boost]: parseAaveV3LeverageManagement,
|
|
2031
2073
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.CloseToDebt]: parseAaveV3CloseOnPrice,
|
|
2032
|
-
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.
|
|
2074
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.CloseToDebtWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice,
|
|
2075
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.CloseToCollateral]: parseAaveV3CloseOnPrice,
|
|
2076
|
+
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.CloseToCollateralWithGasPrice]: parseAaveV3CloseOnPriceWithMaximumGasPrice
|
|
2033
2077
|
},
|
|
2034
2078
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.ProtocolIdentifiers.StrategiesAutomation.CompoundV2]: {
|
|
2035
2079
|
[_types_enums__WEBPACK_IMPORTED_MODULE_3__.Strategies.Identifiers.Repay]: parseCompoundV2LeverageManagement,
|
|
@@ -32328,6 +32372,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32328
32372
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
32329
32373
|
/* harmony export */ aaveV2RatioTrigger: () => (/* binding */ aaveV2RatioTrigger),
|
|
32330
32374
|
/* harmony export */ aaveV3QuotePriceTrigger: () => (/* binding */ aaveV3QuotePriceTrigger),
|
|
32375
|
+
/* harmony export */ aaveV3QuotePriceWithMaximumGasPriceTrigger: () => (/* binding */ aaveV3QuotePriceWithMaximumGasPriceTrigger),
|
|
32331
32376
|
/* harmony export */ aaveV3RatioTrigger: () => (/* binding */ aaveV3RatioTrigger),
|
|
32332
32377
|
/* harmony export */ cBondsRebondTrigger: () => (/* binding */ cBondsRebondTrigger),
|
|
32333
32378
|
/* harmony export */ chainlinkPriceTrigger: () => (/* binding */ chainlinkPriceTrigger),
|
|
@@ -32347,11 +32392,14 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32347
32392
|
/* harmony export */ });
|
|
32348
32393
|
/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
|
|
32349
32394
|
/* harmony import */ var decimal_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(decimal_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
32350
|
-
/* harmony import */ var
|
|
32351
|
-
/* harmony import */ var
|
|
32352
|
-
/* harmony import */ var
|
|
32353
|
-
/* harmony import */ var
|
|
32354
|
-
/* harmony import */ var
|
|
32395
|
+
/* harmony import */ var _defisaver_tokens__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
|
|
32396
|
+
/* harmony import */ var _defisaver_tokens__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_defisaver_tokens__WEBPACK_IMPORTED_MODULE_1__);
|
|
32397
|
+
/* harmony import */ var web3_eth_abi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
|
|
32398
|
+
/* harmony import */ var web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(web3_eth_abi__WEBPACK_IMPORTED_MODULE_2__);
|
|
32399
|
+
/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);
|
|
32400
|
+
/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_3__);
|
|
32401
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
|
|
32402
|
+
|
|
32355
32403
|
|
|
32356
32404
|
|
|
32357
32405
|
|
|
@@ -32359,10 +32407,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32359
32407
|
var chainlinkPriceTrigger = {
|
|
32360
32408
|
encode(tokenAddr, price, state) {
|
|
32361
32409
|
var _price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(price).mul(1e8).floor().toString();
|
|
32362
|
-
return [
|
|
32410
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256', 'uint8'], [tokenAddr, _price, state])];
|
|
32363
32411
|
},
|
|
32364
32412
|
decode(triggerData) {
|
|
32365
|
-
var decodedData =
|
|
32413
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
32366
32414
|
return {
|
|
32367
32415
|
tokenAddr: decodedData[0],
|
|
32368
32416
|
price: new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[1]).div(1e8).toString(),
|
|
@@ -32373,10 +32421,10 @@ var chainlinkPriceTrigger = {
|
|
|
32373
32421
|
var trailingStopTrigger = {
|
|
32374
32422
|
encode(tokenAddr, percentage, roundId) {
|
|
32375
32423
|
var _percentage = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(percentage).mul(1e8).toString();
|
|
32376
|
-
return [
|
|
32424
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256', 'uint80'], [tokenAddr, _percentage, roundId])];
|
|
32377
32425
|
},
|
|
32378
32426
|
decode(triggerData) {
|
|
32379
|
-
var decodedData =
|
|
32427
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256', 'uint80'], triggerData[0]);
|
|
32380
32428
|
var triggerPercentage = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[1]).div(1e8).toNumber();
|
|
32381
32429
|
return {
|
|
32382
32430
|
tokenAddr: decodedData[0],
|
|
@@ -32387,29 +32435,29 @@ var trailingStopTrigger = {
|
|
|
32387
32435
|
};
|
|
32388
32436
|
var makerRatioTrigger = {
|
|
32389
32437
|
encode(vaultId, ratioPercentage, ratioState) {
|
|
32390
|
-
var ratioWei = (0,
|
|
32391
|
-
return [
|
|
32438
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32439
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['uint256', 'uint256', 'uint8'], [vaultId, ratioWei, ratioState])];
|
|
32392
32440
|
},
|
|
32393
32441
|
decode(triggerData) {
|
|
32394
|
-
var decodedData =
|
|
32442
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['uint256', 'uint256', 'uint8'], triggerData[0]);
|
|
32395
32443
|
return {
|
|
32396
32444
|
vaultId: +decodedData[0],
|
|
32397
|
-
ratio: (0,
|
|
32445
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[1]),
|
|
32398
32446
|
ratioState: +decodedData[2]
|
|
32399
32447
|
};
|
|
32400
32448
|
}
|
|
32401
32449
|
};
|
|
32402
32450
|
var aaveV3RatioTrigger = {
|
|
32403
32451
|
encode(owner, market, ratioPercentage, ratioState) {
|
|
32404
|
-
var ratioWei = (0,
|
|
32405
|
-
return [
|
|
32452
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32453
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
|
|
32406
32454
|
},
|
|
32407
32455
|
decode(triggerData) {
|
|
32408
|
-
var decodedData =
|
|
32456
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32409
32457
|
return {
|
|
32410
32458
|
owner: decodedData[0],
|
|
32411
32459
|
market: decodedData[1],
|
|
32412
|
-
ratio: (0,
|
|
32460
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
|
|
32413
32461
|
ratioState: Number(decodedData[3])
|
|
32414
32462
|
};
|
|
32415
32463
|
}
|
|
@@ -32417,10 +32465,10 @@ var aaveV3RatioTrigger = {
|
|
|
32417
32465
|
var morphoAaveV2RatioTrigger = {
|
|
32418
32466
|
encode(owner, ratioPercentage, ratioState) {
|
|
32419
32467
|
var ratioWei = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(ratioPercentage).mul(1e16).toString();
|
|
32420
|
-
return [
|
|
32468
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint128', 'uint8'], [owner, ratioWei, ratioState])];
|
|
32421
32469
|
},
|
|
32422
32470
|
decode(triggerData) {
|
|
32423
|
-
var decodedData =
|
|
32471
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint128', 'uint8'], triggerData[0]);
|
|
32424
32472
|
return {
|
|
32425
32473
|
owner: decodedData[0],
|
|
32426
32474
|
ratio: new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[1]).div(1e16).toNumber(),
|
|
@@ -32432,10 +32480,10 @@ var aaveV3QuotePriceTrigger = {
|
|
|
32432
32480
|
encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
|
|
32433
32481
|
// Price is always in 8 decimals
|
|
32434
32482
|
var _price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(price.toString()).mul(10 ** 8).floor().toString();
|
|
32435
|
-
return [
|
|
32483
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
|
|
32436
32484
|
},
|
|
32437
32485
|
decode(triggerData) {
|
|
32438
|
-
var decodedData =
|
|
32486
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32439
32487
|
// Price is always in 8 decimals
|
|
32440
32488
|
var price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[2]).div(10 ** 8).toDP(8).toString();
|
|
32441
32489
|
return {
|
|
@@ -32446,40 +32494,64 @@ var aaveV3QuotePriceTrigger = {
|
|
|
32446
32494
|
};
|
|
32447
32495
|
}
|
|
32448
32496
|
};
|
|
32497
|
+
var aaveV3QuotePriceWithMaximumGasPriceTrigger = {
|
|
32498
|
+
encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPriceInGwei) {
|
|
32499
|
+
// Price is always in 8 decimals
|
|
32500
|
+
var _price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(price.toString()).mul(10 ** 8).floor().toString();
|
|
32501
|
+
var _maximumGasPrice = maximumGasPriceInGwei ? new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(maximumGasPriceInGwei.toString()).mul(10 ** 9).floor().toString() // We convert it to WEI
|
|
32502
|
+
: _defisaver_tokens__WEBPACK_IMPORTED_MODULE_1__.MAXUINT; // If undefined than set to MAXUINT
|
|
32503
|
+
|
|
32504
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState]), web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['uint256'], [_maximumGasPrice])];
|
|
32505
|
+
},
|
|
32506
|
+
decode(triggerData) {
|
|
32507
|
+
var decodedPriceTrigger = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32508
|
+
var decodedMaximumGasPriceTrigger = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['uint256'], triggerData[1]);
|
|
32509
|
+
// Price is always in 8 decimals
|
|
32510
|
+
var price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedPriceTrigger[2]).div(10 ** 8).toDP(8).toString();
|
|
32511
|
+
var maximumGasPrice = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedMaximumGasPriceTrigger[0]).div(10 ** 9).toDP(9).toString();
|
|
32512
|
+
return {
|
|
32513
|
+
baseTokenAddress: decodedPriceTrigger[0],
|
|
32514
|
+
quoteTokenAddress: decodedPriceTrigger[1],
|
|
32515
|
+
price,
|
|
32516
|
+
ratioState: +decodedPriceTrigger[3],
|
|
32517
|
+
maximumGasPrice
|
|
32518
|
+
};
|
|
32519
|
+
}
|
|
32520
|
+
};
|
|
32449
32521
|
var compoundV2RatioTrigger = {
|
|
32450
32522
|
encode(owner, ratioPercentage, ratioState) {
|
|
32451
|
-
var ratioWei = (0,
|
|
32452
|
-
return [
|
|
32523
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32524
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256', 'uint8'], [owner, ratioWei, ratioState])];
|
|
32453
32525
|
},
|
|
32454
32526
|
decode(triggerData) {
|
|
32455
|
-
var decodedData =
|
|
32527
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
32456
32528
|
return {
|
|
32457
32529
|
owner: decodedData[0],
|
|
32458
|
-
ratio: (0,
|
|
32530
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[1]),
|
|
32459
32531
|
ratioState: +decodedData[2]
|
|
32460
32532
|
};
|
|
32461
32533
|
}
|
|
32462
32534
|
};
|
|
32463
32535
|
var liquityRatioTrigger = {
|
|
32464
32536
|
encode(owner, ratioPercentage, ratioState) {
|
|
32465
|
-
var ratioWei = (0,
|
|
32466
|
-
return [
|
|
32537
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32538
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256', 'uint8'], [owner, ratioWei, ratioState])];
|
|
32467
32539
|
},
|
|
32468
32540
|
decode(triggerData) {
|
|
32469
|
-
var decodedData =
|
|
32541
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
32470
32542
|
return {
|
|
32471
32543
|
owner: decodedData[0],
|
|
32472
|
-
ratio: (0,
|
|
32544
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[1]),
|
|
32473
32545
|
ratioState: +decodedData[2]
|
|
32474
32546
|
};
|
|
32475
32547
|
}
|
|
32476
32548
|
};
|
|
32477
32549
|
var liquityDebtInFrontTrigger = {
|
|
32478
32550
|
encode(owner, debtInFrontMin) {
|
|
32479
|
-
return [
|
|
32551
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256'], [owner, debtInFrontMin])];
|
|
32480
32552
|
},
|
|
32481
32553
|
decode(triggerData) {
|
|
32482
|
-
var decodedData =
|
|
32554
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256'], triggerData[0]);
|
|
32483
32555
|
return {
|
|
32484
32556
|
owner: decodedData[0],
|
|
32485
32557
|
debtInFrontMin: decodedData[1]
|
|
@@ -32488,25 +32560,25 @@ var liquityDebtInFrontTrigger = {
|
|
|
32488
32560
|
};
|
|
32489
32561
|
var aaveV2RatioTrigger = {
|
|
32490
32562
|
encode(owner, market, ratioPercentage, ratioState) {
|
|
32491
|
-
var ratioWei = (0,
|
|
32492
|
-
return [
|
|
32563
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32564
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
|
|
32493
32565
|
},
|
|
32494
32566
|
decode(triggerData) {
|
|
32495
|
-
var decodedData =
|
|
32567
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32496
32568
|
return {
|
|
32497
32569
|
owner: decodedData[0],
|
|
32498
32570
|
market: decodedData[1],
|
|
32499
|
-
ratio: (0,
|
|
32571
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
|
|
32500
32572
|
ratioState: +decodedData[3]
|
|
32501
32573
|
};
|
|
32502
32574
|
}
|
|
32503
32575
|
};
|
|
32504
32576
|
var cBondsRebondTrigger = {
|
|
32505
32577
|
encode(bondId) {
|
|
32506
|
-
return [
|
|
32578
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['uint256'], [bondId])];
|
|
32507
32579
|
},
|
|
32508
32580
|
decode(triggerData) {
|
|
32509
|
-
var decodedData =
|
|
32581
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['uint256'], triggerData[0]);
|
|
32510
32582
|
return {
|
|
32511
32583
|
bondId: decodedData[0]
|
|
32512
32584
|
};
|
|
@@ -32514,15 +32586,15 @@ var cBondsRebondTrigger = {
|
|
|
32514
32586
|
};
|
|
32515
32587
|
var compoundV3RatioTrigger = {
|
|
32516
32588
|
encode(owner, market, ratioPercentage, ratioState) {
|
|
32517
|
-
var ratioWei = (0,
|
|
32518
|
-
return [
|
|
32589
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32590
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
|
|
32519
32591
|
},
|
|
32520
32592
|
decode(triggerData) {
|
|
32521
|
-
var decodedData =
|
|
32593
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32522
32594
|
return {
|
|
32523
32595
|
owner: decodedData[0],
|
|
32524
32596
|
market: decodedData[1],
|
|
32525
|
-
ratio: (0,
|
|
32597
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
|
|
32526
32598
|
ratioState: +decodedData[3]
|
|
32527
32599
|
};
|
|
32528
32600
|
}
|
|
@@ -32531,10 +32603,10 @@ var exchangeTimestampTrigger = {
|
|
|
32531
32603
|
encode(timestamp, interval) {
|
|
32532
32604
|
var timestampWei = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(timestamp).toString();
|
|
32533
32605
|
var intervalWei = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(interval).toString();
|
|
32534
|
-
return [
|
|
32606
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['uint256', 'uint256'], [timestampWei, intervalWei])];
|
|
32535
32607
|
},
|
|
32536
32608
|
decode(triggerData) {
|
|
32537
|
-
var decodedData =
|
|
32609
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['uint256', 'uint256'], triggerData[0]);
|
|
32538
32610
|
return {
|
|
32539
32611
|
timestamp: Number(decodedData[0]),
|
|
32540
32612
|
interval: Number(decodedData[1])
|
|
@@ -32545,10 +32617,10 @@ var exchangeOffchainPriceTrigger = {
|
|
|
32545
32617
|
encode(targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals) {
|
|
32546
32618
|
var decimals = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(toTokenDecimals).plus(18).minus(fromTokenDecimals).toNumber();
|
|
32547
32619
|
var price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(targetPrice.toString()).mul(10 ** decimals).floor().toString();
|
|
32548
|
-
return [
|
|
32620
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['uint256', 'uint256', 'uint8'], [price, goodUntil, orderType])];
|
|
32549
32621
|
},
|
|
32550
32622
|
decode(triggerData, fromTokenDecimals, toTokenDecimals) {
|
|
32551
|
-
var decodedData =
|
|
32623
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['uint256', 'uint256', 'uint8'], triggerData[0]);
|
|
32552
32624
|
var decimals = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(toTokenDecimals).plus(18).minus(fromTokenDecimals).toString();
|
|
32553
32625
|
var price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[0]).div(new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(10).pow(decimals)).toDP(fromTokenDecimals).toString();
|
|
32554
32626
|
return {
|
|
@@ -32560,15 +32632,15 @@ var exchangeOffchainPriceTrigger = {
|
|
|
32560
32632
|
};
|
|
32561
32633
|
var sparkRatioTrigger = {
|
|
32562
32634
|
encode(owner, market, ratioPercentage, ratioState) {
|
|
32563
|
-
var ratioWei = (0,
|
|
32564
|
-
return [
|
|
32635
|
+
var ratioWei = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.ratioPercentageToWei)(ratioPercentage);
|
|
32636
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, market, ratioWei, ratioState])];
|
|
32565
32637
|
},
|
|
32566
32638
|
decode(triggerData) {
|
|
32567
|
-
var decodedData =
|
|
32639
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32568
32640
|
return {
|
|
32569
32641
|
owner: decodedData[0],
|
|
32570
32642
|
market: decodedData[1],
|
|
32571
|
-
ratio: (0,
|
|
32643
|
+
ratio: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.weiToRatioPercentage)(decodedData[2]),
|
|
32572
32644
|
ratioState: Number(decodedData[3])
|
|
32573
32645
|
};
|
|
32574
32646
|
}
|
|
@@ -32577,10 +32649,10 @@ var sparkQuotePriceTrigger = {
|
|
|
32577
32649
|
encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
|
|
32578
32650
|
// Price is always in 8 decimals
|
|
32579
32651
|
var _price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(price.toString()).mul(10 ** 8).floor().toString();
|
|
32580
|
-
return [
|
|
32652
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
|
|
32581
32653
|
},
|
|
32582
32654
|
decode(triggerData) {
|
|
32583
|
-
var decodedData =
|
|
32655
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
32584
32656
|
// Price is always in 8 decimals
|
|
32585
32657
|
var price = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(decodedData[2]).div(10 ** 8).toDP(8).toString();
|
|
32586
32658
|
return {
|
|
@@ -32598,11 +32670,11 @@ var curveUsdBorrowRateTrigger = {
|
|
|
32598
32670
|
var rate = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(targetRate).div(100)).plus(1)).ln().div(365).div(86400).toString();
|
|
32599
32671
|
var rateWei = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(rate).mul(10 ** 18).floor().toString(); // 18 decimals
|
|
32600
32672
|
|
|
32601
|
-
return [
|
|
32673
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'uint256', 'uint8'], [market, rateWei, rateState])];
|
|
32602
32674
|
},
|
|
32603
32675
|
decode(triggerData) {
|
|
32604
|
-
var decodedData =
|
|
32605
|
-
var rateEth =
|
|
32676
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
32677
|
+
var rateEth = web3_utils__WEBPACK_IMPORTED_MODULE_3__.fromWei(decodedData[1], 'ether');
|
|
32606
32678
|
|
|
32607
32679
|
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
32608
32680
|
var exponentRate = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(rateEth).mul(365).mul(86400);
|
|
@@ -32618,10 +32690,10 @@ var curveUsdSoftLiquidationTrigger = {
|
|
|
32618
32690
|
encode(market, owner, percentage) {
|
|
32619
32691
|
// 100% = 1e18 => 1% = 1e16
|
|
32620
32692
|
var _percentage = new (decimal_js__WEBPACK_IMPORTED_MODULE_0___default())(percentage).mul(10 ** 16).floor().toString();
|
|
32621
|
-
return [
|
|
32693
|
+
return [web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().encodeParameters(['address', 'address', 'uint256'], [market, owner, _percentage])];
|
|
32622
32694
|
},
|
|
32623
32695
|
decode(triggerData) {
|
|
32624
|
-
var decodedData =
|
|
32696
|
+
var decodedData = web3_eth_abi__WEBPACK_IMPORTED_MODULE_2___default().decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
|
|
32625
32697
|
return {
|
|
32626
32698
|
market: decodedData[0],
|
|
32627
32699
|
owner: decodedData[1],
|
|
@@ -32641,8 +32713,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32641
32713
|
/* harmony export */ });
|
|
32642
32714
|
/* harmony import */ var _private_StrategiesAutomation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
|
|
32643
32715
|
/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
|
|
32644
|
-
function ownKeys(
|
|
32645
|
-
function _objectSpread(
|
|
32716
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32717
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32646
32718
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
32647
32719
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
32648
32720
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -32667,8 +32739,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32667
32739
|
/* harmony export */ });
|
|
32668
32740
|
/* harmony import */ var _private_StrategiesAutomation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27);
|
|
32669
32741
|
/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);
|
|
32670
|
-
function ownKeys(
|
|
32671
|
-
function _objectSpread(
|
|
32742
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
32743
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32672
32744
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
32673
32745
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
32674
32746
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
@@ -32841,6 +32913,27 @@ var aaveV3Encode = {
|
|
|
32841
32913
|
} = triggerData;
|
|
32842
32914
|
var triggerDataEncoded = _triggerService__WEBPACK_IMPORTED_MODULE_4__.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
32843
32915
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
32916
|
+
},
|
|
32917
|
+
closeToAssetWithMaximumGasPrice(strategyOrBundleId) {
|
|
32918
|
+
var isBundle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
32919
|
+
var triggerData = arguments.length > 2 ? arguments[2] : undefined;
|
|
32920
|
+
var subData = arguments.length > 3 ? arguments[3] : undefined;
|
|
32921
|
+
var {
|
|
32922
|
+
collAsset,
|
|
32923
|
+
collAssetId,
|
|
32924
|
+
debtAsset,
|
|
32925
|
+
debtAssetId
|
|
32926
|
+
} = subData;
|
|
32927
|
+
var subDataEncoded = _subDataService__WEBPACK_IMPORTED_MODULE_3__.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
32928
|
+
var {
|
|
32929
|
+
baseTokenAddress,
|
|
32930
|
+
quoteTokenAddress,
|
|
32931
|
+
price,
|
|
32932
|
+
maximumGasPrice,
|
|
32933
|
+
ratioState
|
|
32934
|
+
} = triggerData;
|
|
32935
|
+
var triggerDataEncoded = _triggerService__WEBPACK_IMPORTED_MODULE_4__.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
|
|
32936
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
32844
32937
|
}
|
|
32845
32938
|
};
|
|
32846
32939
|
var compoundV2Encode = {
|