@defisaver/automation-sdk 3.1.10 → 3.1.14-spark-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/cjs/automation/private/StrategiesAutomation.d.ts +5 -3
  2. package/cjs/automation/private/StrategiesAutomation.js +27 -10
  3. package/cjs/automation/private/StrategiesAutomation.test.js +25 -0
  4. package/cjs/constants/index.d.ts +1 -0
  5. package/cjs/constants/index.js +352 -11
  6. package/cjs/index.d.ts +2 -1
  7. package/cjs/index.js +1 -1
  8. package/cjs/services/ethereumService.js +21 -14
  9. package/cjs/services/ethereumService.test.js +3 -0
  10. package/cjs/services/strategiesService.js +329 -54
  11. package/cjs/services/strategiesService.test.js +1 -0
  12. package/cjs/services/strategySubService.d.ts +24 -5
  13. package/cjs/services/strategySubService.js +116 -10
  14. package/cjs/services/strategySubService.test.js +1049 -173
  15. package/cjs/services/subDataService.d.ts +361 -88
  16. package/cjs/services/subDataService.js +799 -249
  17. package/cjs/services/subDataService.test.js +1287 -142
  18. package/cjs/services/triggerService.d.ts +100 -9
  19. package/cjs/services/triggerService.js +188 -19
  20. package/cjs/services/triggerService.test.js +437 -46
  21. package/cjs/services/utils.d.ts +1 -1
  22. package/cjs/services/utils.js +10 -2
  23. package/cjs/services/utils.test.js +0 -77
  24. package/cjs/types/enums.d.ts +88 -12
  25. package/cjs/types/enums.js +78 -2
  26. package/cjs/types/index.d.ts +59 -1
  27. package/esm/automation/private/StrategiesAutomation.d.ts +5 -3
  28. package/esm/automation/private/StrategiesAutomation.js +27 -10
  29. package/esm/automation/private/StrategiesAutomation.test.js +25 -0
  30. package/esm/constants/index.d.ts +1 -0
  31. package/esm/constants/index.js +351 -10
  32. package/esm/index.d.ts +2 -1
  33. package/esm/index.js +2 -2
  34. package/esm/services/ethereumService.js +21 -14
  35. package/esm/services/ethereumService.test.js +3 -0
  36. package/esm/services/strategiesService.js +330 -55
  37. package/esm/services/strategiesService.test.js +1 -0
  38. package/esm/services/strategySubService.d.ts +24 -5
  39. package/esm/services/strategySubService.js +115 -9
  40. package/esm/services/strategySubService.test.js +1052 -176
  41. package/esm/services/subDataService.d.ts +361 -88
  42. package/esm/services/subDataService.js +799 -249
  43. package/esm/services/subDataService.test.js +1288 -143
  44. package/esm/services/triggerService.d.ts +100 -9
  45. package/esm/services/triggerService.js +187 -18
  46. package/esm/services/triggerService.test.js +438 -47
  47. package/esm/services/utils.d.ts +1 -1
  48. package/esm/services/utils.js +10 -2
  49. package/esm/services/utils.test.js +1 -52
  50. package/esm/types/enums.d.ts +88 -12
  51. package/esm/types/enums.js +78 -2
  52. package/esm/types/index.d.ts +59 -1
  53. package/package.json +4 -5
  54. package/src/automation/private/StrategiesAutomation.test.ts +40 -0
  55. package/src/automation/private/StrategiesAutomation.ts +38 -15
  56. package/src/constants/index.ts +353 -11
  57. package/src/index.ts +4 -2
  58. package/src/services/ethereumService.test.ts +3 -0
  59. package/src/services/ethereumService.ts +23 -16
  60. package/src/services/strategiesService.test.ts +1 -0
  61. package/src/services/strategiesService.ts +387 -72
  62. package/src/services/strategySubService.test.ts +1330 -316
  63. package/src/services/strategySubService.ts +365 -12
  64. package/src/services/subDataService.test.ts +1413 -170
  65. package/src/services/subDataService.ts +1148 -431
  66. package/src/services/triggerService.test.ts +482 -52
  67. package/src/services/triggerService.ts +272 -27
  68. package/src/services/utils.test.ts +0 -59
  69. package/src/services/utils.ts +15 -4
  70. package/src/types/enums.ts +78 -2
  71. package/src/types/index.ts +74 -1
  72. package/umd/index.js +0 -34219
@@ -90,6 +90,21 @@ export declare const liquityDebtInFrontWithLimitTrigger: {
90
90
  debtInFrontMin: string;
91
91
  };
92
92
  };
93
+ export declare const liquityV2DebtInFrontTrigger: {
94
+ encode(market: EthereumAddress, troveId: string, debtInFrontMin: string): string[];
95
+ decode(triggerData: string[]): {
96
+ market: EthereumAddress;
97
+ troveId: string;
98
+ debtInFrontMin: string;
99
+ };
100
+ };
101
+ export declare const liquityV2AdjustTimeTrigger: {
102
+ encode(market: EthereumAddress, troveId: string): string[];
103
+ decode(triggerData: string[]): {
104
+ market: EthereumAddress;
105
+ troveId: string;
106
+ };
107
+ };
93
108
  export declare const aaveV2RatioTrigger: {
94
109
  encode(owner: EthereumAddress, market: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
95
110
  decode(triggerData: string[]): {
@@ -138,15 +153,6 @@ export declare const sparkRatioTrigger: {
138
153
  ratioState: number;
139
154
  };
140
155
  };
141
- export declare const sparkQuotePriceTrigger: {
142
- encode(baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState): string[];
143
- decode(triggerData: string[]): {
144
- baseTokenAddress: EthereumAddress;
145
- quoteTokenAddress: EthereumAddress;
146
- price: string;
147
- ratioState: RatioState;
148
- };
149
- };
150
156
  export declare const curveUsdBorrowRateTrigger: {
151
157
  encode(market: EthereumAddress, targetRate: string, rateState: RatioState): string[];
152
158
  decode(triggerData: string[]): {
@@ -232,3 +238,88 @@ export declare const fluidRatioTrigger: {
232
238
  ratioState: number;
233
239
  };
234
240
  };
241
+ export declare const compoundV3PriceTrigger: {
242
+ encode(market: EthereumAddress, collToken: EthereumAddress, user: EthereumAddress, price: number, priceState: RatioState): string[];
243
+ decode(triggerData: string[]): {
244
+ market: string;
245
+ collToken: string;
246
+ user: string;
247
+ price: string;
248
+ priceState: number;
249
+ };
250
+ };
251
+ export declare const compoundV3PriceRangeTrigger: {
252
+ encode(market: EthereumAddress, collToken: EthereumAddress, lowerPrice: number, upperPrice: number): string[];
253
+ decode(triggerData: string[]): {
254
+ market: string;
255
+ collToken: string;
256
+ lowerPrice: string;
257
+ upperPrice: string;
258
+ };
259
+ };
260
+ export declare const aaveV3QuotePriceRangeTrigger: {
261
+ encode(collToken: EthereumAddress, debtToken: EthereumAddress, lowerPrice: number, upperPrice: number): string[];
262
+ decode(triggerData: string[]): {
263
+ collToken: string;
264
+ debtToken: string;
265
+ lowerPrice: string;
266
+ upperPrice: string;
267
+ };
268
+ };
269
+ export declare const sparkQuotePriceRangeTrigger: {
270
+ encode(collToken: EthereumAddress, debtToken: EthereumAddress, lowerPrice: number, upperPrice: number): string[];
271
+ decode(triggerData: string[]): {
272
+ collToken: string;
273
+ debtToken: string;
274
+ lowerPrice: string;
275
+ upperPrice: string;
276
+ };
277
+ };
278
+ export declare const morphoBluePriceRangeTrigger: {
279
+ encode(oracle: EthereumAddress, collateralToken: EthereumAddress, loanToken: EthereumAddress, lowerPrice: number, upperPrice: number): string[];
280
+ decode(triggerData: string[]): {
281
+ oracle: string;
282
+ collateralToken: string;
283
+ loanToken: string;
284
+ lowerPrice: string;
285
+ upperPrice: string;
286
+ };
287
+ };
288
+ export declare const sparkQuotePriceTrigger: {
289
+ encode(baseTokenAddr: EthereumAddress, quoteTokenAddr: EthereumAddress, price: number, ratioState: RatioState): string[];
290
+ decode(triggerData: string[]): {
291
+ baseTokenAddr: string;
292
+ quoteTokenAddr: string;
293
+ price: string;
294
+ ratioState: number;
295
+ };
296
+ };
297
+ export declare const aaveV4RatioTrigger: {
298
+ encode(owner: EthereumAddress, spoke: EthereumAddress, ratioPercentage: number, ratioState: RatioState): string[];
299
+ decode(triggerData: string[]): {
300
+ owner: string;
301
+ spoke: string;
302
+ ratio: number;
303
+ ratioState: number;
304
+ };
305
+ };
306
+ export declare const aaveV4QuotePriceTrigger: {
307
+ encode(spoke: EthereumAddress, baseTokenId: number, quoteTokenId: number, price: string, ratioState: RatioState): string[];
308
+ decode(triggerData: string[]): {
309
+ spoke: string;
310
+ baseTokenId: number;
311
+ quoteTokenId: number;
312
+ price: string;
313
+ ratioState: number;
314
+ };
315
+ };
316
+ export declare const aaveV4QuotePriceRangeTrigger: {
317
+ encode(spoke: EthereumAddress, baseTokenId: number, quoteTokenId: number, lowerPrice: string, upperPrice: string): string[];
318
+ decode(triggerData: string[]): {
319
+ spoke: string;
320
+ baseTokenId: number;
321
+ quoteTokenId: number;
322
+ lowerPrice: string;
323
+ upperPrice: string;
324
+ };
325
+ };
@@ -26,7 +26,7 @@ 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.fluidRatioTrigger = exports.morphoBluePriceTrigger = exports.closePriceTrigger = exports.liquityV2QuotePriceTrigger = exports.liquityV2RatioTrigger = exports.morphoBlueRatioTrigger = exports.crvUsdHealthRatioTrigger = exports.crvUSDRatioTrigger = exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkQuotePriceTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger = exports.liquityRatioTrigger = exports.compoundV2RatioTrigger = exports.aaveV3QuotePriceWithMaximumGasPriceTrigger = exports.aaveV3QuotePriceTrigger = exports.morphoAaveV2RatioTrigger = exports.aaveV3RatioTrigger = exports.makerRatioTrigger = exports.trailingStopTrigger = exports.chainlinkPriceTrigger = void 0;
29
+ exports.aaveV4QuotePriceRangeTrigger = exports.aaveV4QuotePriceTrigger = exports.aaveV4RatioTrigger = exports.sparkQuotePriceTrigger = exports.morphoBluePriceRangeTrigger = exports.sparkQuotePriceRangeTrigger = exports.aaveV3QuotePriceRangeTrigger = exports.compoundV3PriceRangeTrigger = exports.compoundV3PriceTrigger = exports.fluidRatioTrigger = exports.morphoBluePriceTrigger = exports.closePriceTrigger = exports.liquityV2QuotePriceTrigger = exports.liquityV2RatioTrigger = exports.morphoBlueRatioTrigger = exports.crvUsdHealthRatioTrigger = exports.crvUSDRatioTrigger = exports.curveUsdSoftLiquidationTrigger = exports.curveUsdBorrowRateTrigger = exports.sparkRatioTrigger = exports.exchangeOffchainPriceTrigger = exports.exchangeTimestampTrigger = exports.compoundV3RatioTrigger = exports.cBondsRebondTrigger = exports.aaveV2RatioTrigger = exports.liquityV2AdjustTimeTrigger = exports.liquityV2DebtInFrontTrigger = exports.liquityDebtInFrontWithLimitTrigger = 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
31
  const tokens_1 = require("@defisaver/tokens");
32
32
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
@@ -179,6 +179,32 @@ exports.liquityDebtInFrontTrigger = {
179
179
  },
180
180
  };
181
181
  exports.liquityDebtInFrontWithLimitTrigger = exports.liquityDebtInFrontTrigger;
182
+ exports.liquityV2DebtInFrontTrigger = {
183
+ encode(market, troveId, debtInFrontMin) {
184
+ const debtInFrontMinWei = web3Utils.toWei(new decimal_js_1.default(debtInFrontMin).toString(), 'ether');
185
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint256'], [market, troveId, debtInFrontMinWei])];
186
+ },
187
+ decode(triggerData) {
188
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint256'], triggerData[0]);
189
+ return {
190
+ market: decodedData[0],
191
+ troveId: decodedData[1],
192
+ debtInFrontMin: new decimal_js_1.default(decodedData[2]).div(Math.pow(10, 18)).toString(),
193
+ };
194
+ },
195
+ };
196
+ exports.liquityV2AdjustTimeTrigger = {
197
+ encode(market, troveId) {
198
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256'], [market, troveId])];
199
+ },
200
+ decode(triggerData) {
201
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256'], triggerData[0]);
202
+ return {
203
+ market: decodedData[0],
204
+ troveId: decodedData[1],
205
+ };
206
+ },
207
+ };
182
208
  exports.aaveV2RatioTrigger = {
183
209
  encode(owner, market, ratioPercentage, ratioState) {
184
210
  const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
@@ -264,24 +290,6 @@ exports.sparkRatioTrigger = {
264
290
  };
265
291
  },
266
292
  };
267
- exports.sparkQuotePriceTrigger = {
268
- encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
269
- // Price is always in 8 decimals
270
- const _price = new decimal_js_1.default(price.toString()).mul(Math.pow(10, 8)).floor().toString();
271
- return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
272
- },
273
- decode(triggerData) {
274
- const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
275
- // Price is always in 8 decimals
276
- const price = new decimal_js_1.default(decodedData[2]).div(Math.pow(10, 8)).toDP(8).toString();
277
- return {
278
- price,
279
- baseTokenAddress: decodedData[0],
280
- quoteTokenAddress: decodedData[1],
281
- ratioState: +decodedData[3],
282
- };
283
- },
284
- };
285
293
  exports.curveUsdBorrowRateTrigger = {
286
294
  encode(market, targetRate, rateState) {
287
295
  // the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
@@ -445,3 +453,164 @@ exports.fluidRatioTrigger = {
445
453
  };
446
454
  },
447
455
  };
456
+ exports.compoundV3PriceTrigger = {
457
+ encode(market, collToken, user, price, priceState) {
458
+ const _price = new decimal_js_1.default(price.toString()).mul(1e8).floor().toString();
459
+ return [
460
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'address', 'uint256', 'uint8'], [market, collToken, user, _price, priceState]),
461
+ ];
462
+ },
463
+ decode(triggerData) {
464
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'address', 'uint256', 'uint8'], triggerData[0]);
465
+ return {
466
+ market: decodedData[0],
467
+ collToken: decodedData[1],
468
+ user: decodedData[2],
469
+ price: new decimal_js_1.default(decodedData[3]).div(1e8).toString(),
470
+ priceState: Number(decodedData[4]),
471
+ };
472
+ },
473
+ };
474
+ exports.compoundV3PriceRangeTrigger = {
475
+ encode(market, collToken, lowerPrice, upperPrice) {
476
+ const lowerPriceFormatted = new decimal_js_1.default(lowerPrice).mul(1e8).floor().toString();
477
+ const upperPriceFormatted = new decimal_js_1.default(upperPrice).mul(1e8).floor().toString();
478
+ return [
479
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint256'], [market, collToken, lowerPriceFormatted, upperPriceFormatted]),
480
+ ];
481
+ },
482
+ decode(triggerData) {
483
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
484
+ return {
485
+ market: decodedData[0],
486
+ collToken: decodedData[1],
487
+ lowerPrice: new decimal_js_1.default(decodedData[2]).div(1e8).toString(),
488
+ upperPrice: new decimal_js_1.default(decodedData[3]).div(1e8).toString(),
489
+ };
490
+ },
491
+ };
492
+ exports.aaveV3QuotePriceRangeTrigger = {
493
+ encode(collToken, debtToken, lowerPrice, upperPrice) {
494
+ // Price is scaled to 1e8
495
+ const lowerPriceFormatted = new decimal_js_1.default(lowerPrice).mul(1e8).floor().toString();
496
+ const upperPriceFormatted = new decimal_js_1.default(upperPrice).mul(1e8).floor().toString();
497
+ return [
498
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint256'], [collToken, debtToken, lowerPriceFormatted, upperPriceFormatted]),
499
+ ];
500
+ },
501
+ decode(triggerData) {
502
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
503
+ return {
504
+ collToken: decodedData[0],
505
+ debtToken: decodedData[1],
506
+ lowerPrice: new decimal_js_1.default(decodedData[2]).div(1e8).toString(),
507
+ upperPrice: new decimal_js_1.default(decodedData[3]).div(1e8).toString(),
508
+ };
509
+ },
510
+ };
511
+ exports.sparkQuotePriceRangeTrigger = {
512
+ encode(collToken, debtToken, lowerPrice, upperPrice) {
513
+ // Price is scaled to 1e8
514
+ const lowerPriceFormatted = new decimal_js_1.default(lowerPrice).mul(1e8).floor().toString();
515
+ const upperPriceFormatted = new decimal_js_1.default(upperPrice).mul(1e8).floor().toString();
516
+ return [
517
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint256'], [collToken, debtToken, lowerPriceFormatted, upperPriceFormatted]),
518
+ ];
519
+ },
520
+ decode(triggerData) {
521
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
522
+ return {
523
+ collToken: decodedData[0],
524
+ debtToken: decodedData[1],
525
+ lowerPrice: new decimal_js_1.default(decodedData[2]).div(1e8).toString(),
526
+ upperPrice: new decimal_js_1.default(decodedData[3]).div(1e8).toString(),
527
+ };
528
+ },
529
+ };
530
+ exports.morphoBluePriceRangeTrigger = {
531
+ encode(oracle, collateralToken, loanToken, lowerPrice, upperPrice) {
532
+ // Price is scaled to 1e8
533
+ const lowerPriceFormatted = new decimal_js_1.default(lowerPrice).mul(1e8).floor().toString();
534
+ const upperPriceFormatted = new decimal_js_1.default(upperPrice).mul(1e8).floor().toString();
535
+ return [
536
+ web3_eth_abi_1.default.encodeParameters(['address', 'address', 'address', 'uint256', 'uint256'], [oracle, collateralToken, loanToken, lowerPriceFormatted, upperPriceFormatted]),
537
+ ];
538
+ },
539
+ decode(triggerData) {
540
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'address', 'uint256', 'uint256'], triggerData[0]);
541
+ return {
542
+ oracle: decodedData[0],
543
+ collateralToken: decodedData[1],
544
+ loanToken: decodedData[2],
545
+ lowerPrice: new decimal_js_1.default(decodedData[3]).div(1e8).toString(),
546
+ upperPrice: new decimal_js_1.default(decodedData[4]).div(1e8).toString(),
547
+ };
548
+ },
549
+ };
550
+ exports.sparkQuotePriceTrigger = {
551
+ encode(baseTokenAddr, quoteTokenAddr, price, ratioState) {
552
+ const _price = new decimal_js_1.default(price.toString()).mul(1e8).floor().toString();
553
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddr, quoteTokenAddr, _price, ratioState])];
554
+ },
555
+ decode(triggerData) {
556
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
557
+ return {
558
+ baseTokenAddr: decodedData[0],
559
+ quoteTokenAddr: decodedData[1],
560
+ price: new decimal_js_1.default(decodedData[2]).div(1e8).toString(),
561
+ ratioState: Number(decodedData[3]),
562
+ };
563
+ },
564
+ };
565
+ exports.aaveV4RatioTrigger = {
566
+ encode(owner, spoke, ratioPercentage, ratioState) {
567
+ const ratioWei = (0, utils_1.ratioPercentageToWei)(ratioPercentage);
568
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, spoke, ratioWei, ratioState])];
569
+ },
570
+ decode(triggerData) {
571
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
572
+ return {
573
+ owner: decodedData[0],
574
+ spoke: decodedData[1],
575
+ ratio: (0, utils_1.weiToRatioPercentage)(decodedData[2]),
576
+ ratioState: Number(decodedData[3]),
577
+ };
578
+ },
579
+ };
580
+ exports.aaveV4QuotePriceTrigger = {
581
+ encode(spoke, baseTokenId, quoteTokenId, price, ratioState) {
582
+ // Price is intentionally scaled to 1e18 for higher precision.
583
+ const _price = new decimal_js_1.default(price).mul(1e18).floor().toString();
584
+ return [web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint8'], [spoke, baseTokenId, quoteTokenId, _price, ratioState])];
585
+ },
586
+ decode(triggerData) {
587
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint8'], triggerData[0]);
588
+ return {
589
+ spoke: decodedData[0],
590
+ baseTokenId: Number(decodedData[1]),
591
+ quoteTokenId: Number(decodedData[2]),
592
+ price: new decimal_js_1.default(decodedData[3]).div(1e18).toString(),
593
+ ratioState: Number(decodedData[4]),
594
+ };
595
+ },
596
+ };
597
+ exports.aaveV4QuotePriceRangeTrigger = {
598
+ encode(spoke, baseTokenId, quoteTokenId, lowerPrice, upperPrice) {
599
+ // Price is intentionally scaled to 1e18 for higher precision.
600
+ const lowerPriceFormatted = new decimal_js_1.default(lowerPrice).mul(1e18).floor().toString();
601
+ const upperPriceFormatted = new decimal_js_1.default(upperPrice).mul(1e18).floor().toString();
602
+ return [
603
+ web3_eth_abi_1.default.encodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint256'], [spoke, baseTokenId, quoteTokenId, lowerPriceFormatted, upperPriceFormatted]),
604
+ ];
605
+ },
606
+ decode(triggerData) {
607
+ const decodedData = web3_eth_abi_1.default.decodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint256'], triggerData[0]);
608
+ return {
609
+ spoke: decodedData[0],
610
+ baseTokenId: Number(decodedData[1]),
611
+ quoteTokenId: Number(decodedData[2]),
612
+ lowerPrice: new decimal_js_1.default(decodedData[3]).div(1e18).toString(),
613
+ upperPrice: new decimal_js_1.default(decodedData[4]).div(1e18).toString(),
614
+ };
615
+ },
616
+ };