@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.
- package/cjs/automation/private/StrategiesAutomation.d.ts +5 -3
- package/cjs/automation/private/StrategiesAutomation.js +27 -10
- package/cjs/automation/private/StrategiesAutomation.test.js +25 -0
- package/cjs/constants/index.d.ts +1 -0
- package/cjs/constants/index.js +352 -11
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +1 -1
- package/cjs/services/ethereumService.js +21 -14
- package/cjs/services/ethereumService.test.js +3 -0
- package/cjs/services/strategiesService.js +329 -54
- package/cjs/services/strategiesService.test.js +1 -0
- package/cjs/services/strategySubService.d.ts +24 -5
- package/cjs/services/strategySubService.js +116 -10
- package/cjs/services/strategySubService.test.js +1049 -173
- package/cjs/services/subDataService.d.ts +361 -88
- package/cjs/services/subDataService.js +799 -249
- package/cjs/services/subDataService.test.js +1287 -142
- package/cjs/services/triggerService.d.ts +100 -9
- package/cjs/services/triggerService.js +188 -19
- package/cjs/services/triggerService.test.js +437 -46
- package/cjs/services/utils.d.ts +1 -1
- package/cjs/services/utils.js +10 -2
- package/cjs/services/utils.test.js +0 -77
- package/cjs/types/enums.d.ts +88 -12
- package/cjs/types/enums.js +78 -2
- package/cjs/types/index.d.ts +59 -1
- package/esm/automation/private/StrategiesAutomation.d.ts +5 -3
- package/esm/automation/private/StrategiesAutomation.js +27 -10
- package/esm/automation/private/StrategiesAutomation.test.js +25 -0
- package/esm/constants/index.d.ts +1 -0
- package/esm/constants/index.js +351 -10
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -2
- package/esm/services/ethereumService.js +21 -14
- package/esm/services/ethereumService.test.js +3 -0
- package/esm/services/strategiesService.js +330 -55
- package/esm/services/strategiesService.test.js +1 -0
- package/esm/services/strategySubService.d.ts +24 -5
- package/esm/services/strategySubService.js +115 -9
- package/esm/services/strategySubService.test.js +1052 -176
- package/esm/services/subDataService.d.ts +361 -88
- package/esm/services/subDataService.js +799 -249
- package/esm/services/subDataService.test.js +1288 -143
- package/esm/services/triggerService.d.ts +100 -9
- package/esm/services/triggerService.js +187 -18
- package/esm/services/triggerService.test.js +438 -47
- package/esm/services/utils.d.ts +1 -1
- package/esm/services/utils.js +10 -2
- package/esm/services/utils.test.js +1 -52
- package/esm/types/enums.d.ts +88 -12
- package/esm/types/enums.js +78 -2
- package/esm/types/index.d.ts +59 -1
- package/package.json +4 -5
- package/src/automation/private/StrategiesAutomation.test.ts +40 -0
- package/src/automation/private/StrategiesAutomation.ts +38 -15
- package/src/constants/index.ts +353 -11
- package/src/index.ts +4 -2
- package/src/services/ethereumService.test.ts +3 -0
- package/src/services/ethereumService.ts +23 -16
- package/src/services/strategiesService.test.ts +1 -0
- package/src/services/strategiesService.ts +387 -72
- package/src/services/strategySubService.test.ts +1330 -316
- package/src/services/strategySubService.ts +365 -12
- package/src/services/subDataService.test.ts +1413 -170
- package/src/services/subDataService.ts +1148 -431
- package/src/services/triggerService.test.ts +482 -52
- package/src/services/triggerService.ts +272 -27
- package/src/services/utils.test.ts +0 -59
- package/src/services/utils.ts +15 -4
- package/src/types/enums.ts +78 -2
- package/src/types/index.ts +74 -1
- 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
|
+
};
|
|
@@ -150,6 +150,32 @@ export const liquityDebtInFrontTrigger = {
|
|
|
150
150
|
},
|
|
151
151
|
};
|
|
152
152
|
export const liquityDebtInFrontWithLimitTrigger = liquityDebtInFrontTrigger;
|
|
153
|
+
export const liquityV2DebtInFrontTrigger = {
|
|
154
|
+
encode(market, troveId, debtInFrontMin) {
|
|
155
|
+
const debtInFrontMinWei = web3Utils.toWei(new Dec(debtInFrontMin).toString(), 'ether');
|
|
156
|
+
return [AbiCoder.encodeParameters(['address', 'uint256', 'uint256'], [market, troveId, debtInFrontMinWei])];
|
|
157
|
+
},
|
|
158
|
+
decode(triggerData) {
|
|
159
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'uint256', 'uint256'], triggerData[0]);
|
|
160
|
+
return {
|
|
161
|
+
market: decodedData[0],
|
|
162
|
+
troveId: decodedData[1],
|
|
163
|
+
debtInFrontMin: new Dec(decodedData[2]).div(Math.pow(10, 18)).toString(),
|
|
164
|
+
};
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
export const liquityV2AdjustTimeTrigger = {
|
|
168
|
+
encode(market, troveId) {
|
|
169
|
+
return [AbiCoder.encodeParameters(['address', 'uint256'], [market, troveId])];
|
|
170
|
+
},
|
|
171
|
+
decode(triggerData) {
|
|
172
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'uint256'], triggerData[0]);
|
|
173
|
+
return {
|
|
174
|
+
market: decodedData[0],
|
|
175
|
+
troveId: decodedData[1],
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
};
|
|
153
179
|
export const aaveV2RatioTrigger = {
|
|
154
180
|
encode(owner, market, ratioPercentage, ratioState) {
|
|
155
181
|
const ratioWei = ratioPercentageToWei(ratioPercentage);
|
|
@@ -235,24 +261,6 @@ export const sparkRatioTrigger = {
|
|
|
235
261
|
};
|
|
236
262
|
},
|
|
237
263
|
};
|
|
238
|
-
export const sparkQuotePriceTrigger = {
|
|
239
|
-
encode(baseTokenAddress, quoteTokenAddress, price, ratioState) {
|
|
240
|
-
// Price is always in 8 decimals
|
|
241
|
-
const _price = new Dec(price.toString()).mul(Math.pow(10, 8)).floor().toString();
|
|
242
|
-
return [AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddress, quoteTokenAddress, _price, ratioState])];
|
|
243
|
-
},
|
|
244
|
-
decode(triggerData) {
|
|
245
|
-
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
246
|
-
// Price is always in 8 decimals
|
|
247
|
-
const price = new Dec(decodedData[2]).div(Math.pow(10, 8)).toDP(8).toString();
|
|
248
|
-
return {
|
|
249
|
-
price,
|
|
250
|
-
baseTokenAddress: decodedData[0],
|
|
251
|
-
quoteTokenAddress: decodedData[1],
|
|
252
|
-
ratioState: +decodedData[3],
|
|
253
|
-
};
|
|
254
|
-
},
|
|
255
|
-
};
|
|
256
264
|
export const curveUsdBorrowRateTrigger = {
|
|
257
265
|
encode(market, targetRate, rateState) {
|
|
258
266
|
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
@@ -416,3 +424,164 @@ export const fluidRatioTrigger = {
|
|
|
416
424
|
};
|
|
417
425
|
},
|
|
418
426
|
};
|
|
427
|
+
export const compoundV3PriceTrigger = {
|
|
428
|
+
encode(market, collToken, user, price, priceState) {
|
|
429
|
+
const _price = new Dec(price.toString()).mul(1e8).floor().toString();
|
|
430
|
+
return [
|
|
431
|
+
AbiCoder.encodeParameters(['address', 'address', 'address', 'uint256', 'uint8'], [market, collToken, user, _price, priceState]),
|
|
432
|
+
];
|
|
433
|
+
},
|
|
434
|
+
decode(triggerData) {
|
|
435
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
436
|
+
return {
|
|
437
|
+
market: decodedData[0],
|
|
438
|
+
collToken: decodedData[1],
|
|
439
|
+
user: decodedData[2],
|
|
440
|
+
price: new Dec(decodedData[3]).div(1e8).toString(),
|
|
441
|
+
priceState: Number(decodedData[4]),
|
|
442
|
+
};
|
|
443
|
+
},
|
|
444
|
+
};
|
|
445
|
+
export const compoundV3PriceRangeTrigger = {
|
|
446
|
+
encode(market, collToken, lowerPrice, upperPrice) {
|
|
447
|
+
const lowerPriceFormatted = new Dec(lowerPrice).mul(1e8).floor().toString();
|
|
448
|
+
const upperPriceFormatted = new Dec(upperPrice).mul(1e8).floor().toString();
|
|
449
|
+
return [
|
|
450
|
+
AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint256'], [market, collToken, lowerPriceFormatted, upperPriceFormatted]),
|
|
451
|
+
];
|
|
452
|
+
},
|
|
453
|
+
decode(triggerData) {
|
|
454
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
|
|
455
|
+
return {
|
|
456
|
+
market: decodedData[0],
|
|
457
|
+
collToken: decodedData[1],
|
|
458
|
+
lowerPrice: new Dec(decodedData[2]).div(1e8).toString(),
|
|
459
|
+
upperPrice: new Dec(decodedData[3]).div(1e8).toString(),
|
|
460
|
+
};
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
export const aaveV3QuotePriceRangeTrigger = {
|
|
464
|
+
encode(collToken, debtToken, lowerPrice, upperPrice) {
|
|
465
|
+
// Price is scaled to 1e8
|
|
466
|
+
const lowerPriceFormatted = new Dec(lowerPrice).mul(1e8).floor().toString();
|
|
467
|
+
const upperPriceFormatted = new Dec(upperPrice).mul(1e8).floor().toString();
|
|
468
|
+
return [
|
|
469
|
+
AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint256'], [collToken, debtToken, lowerPriceFormatted, upperPriceFormatted]),
|
|
470
|
+
];
|
|
471
|
+
},
|
|
472
|
+
decode(triggerData) {
|
|
473
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
|
|
474
|
+
return {
|
|
475
|
+
collToken: decodedData[0],
|
|
476
|
+
debtToken: decodedData[1],
|
|
477
|
+
lowerPrice: new Dec(decodedData[2]).div(1e8).toString(),
|
|
478
|
+
upperPrice: new Dec(decodedData[3]).div(1e8).toString(),
|
|
479
|
+
};
|
|
480
|
+
},
|
|
481
|
+
};
|
|
482
|
+
export const sparkQuotePriceRangeTrigger = {
|
|
483
|
+
encode(collToken, debtToken, lowerPrice, upperPrice) {
|
|
484
|
+
// Price is scaled to 1e8
|
|
485
|
+
const lowerPriceFormatted = new Dec(lowerPrice).mul(1e8).floor().toString();
|
|
486
|
+
const upperPriceFormatted = new Dec(upperPrice).mul(1e8).floor().toString();
|
|
487
|
+
return [
|
|
488
|
+
AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint256'], [collToken, debtToken, lowerPriceFormatted, upperPriceFormatted]),
|
|
489
|
+
];
|
|
490
|
+
},
|
|
491
|
+
decode(triggerData) {
|
|
492
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint256'], triggerData[0]);
|
|
493
|
+
return {
|
|
494
|
+
collToken: decodedData[0],
|
|
495
|
+
debtToken: decodedData[1],
|
|
496
|
+
lowerPrice: new Dec(decodedData[2]).div(1e8).toString(),
|
|
497
|
+
upperPrice: new Dec(decodedData[3]).div(1e8).toString(),
|
|
498
|
+
};
|
|
499
|
+
},
|
|
500
|
+
};
|
|
501
|
+
export const morphoBluePriceRangeTrigger = {
|
|
502
|
+
encode(oracle, collateralToken, loanToken, lowerPrice, upperPrice) {
|
|
503
|
+
// Price is scaled to 1e8
|
|
504
|
+
const lowerPriceFormatted = new Dec(lowerPrice).mul(1e8).floor().toString();
|
|
505
|
+
const upperPriceFormatted = new Dec(upperPrice).mul(1e8).floor().toString();
|
|
506
|
+
return [
|
|
507
|
+
AbiCoder.encodeParameters(['address', 'address', 'address', 'uint256', 'uint256'], [oracle, collateralToken, loanToken, lowerPriceFormatted, upperPriceFormatted]),
|
|
508
|
+
];
|
|
509
|
+
},
|
|
510
|
+
decode(triggerData) {
|
|
511
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'address', 'uint256', 'uint256'], triggerData[0]);
|
|
512
|
+
return {
|
|
513
|
+
oracle: decodedData[0],
|
|
514
|
+
collateralToken: decodedData[1],
|
|
515
|
+
loanToken: decodedData[2],
|
|
516
|
+
lowerPrice: new Dec(decodedData[3]).div(1e8).toString(),
|
|
517
|
+
upperPrice: new Dec(decodedData[4]).div(1e8).toString(),
|
|
518
|
+
};
|
|
519
|
+
},
|
|
520
|
+
};
|
|
521
|
+
export const sparkQuotePriceTrigger = {
|
|
522
|
+
encode(baseTokenAddr, quoteTokenAddr, price, ratioState) {
|
|
523
|
+
const _price = new Dec(price.toString()).mul(1e8).floor().toString();
|
|
524
|
+
return [AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint8'], [baseTokenAddr, quoteTokenAddr, _price, ratioState])];
|
|
525
|
+
},
|
|
526
|
+
decode(triggerData) {
|
|
527
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
528
|
+
return {
|
|
529
|
+
baseTokenAddr: decodedData[0],
|
|
530
|
+
quoteTokenAddr: decodedData[1],
|
|
531
|
+
price: new Dec(decodedData[2]).div(1e8).toString(),
|
|
532
|
+
ratioState: Number(decodedData[3]),
|
|
533
|
+
};
|
|
534
|
+
},
|
|
535
|
+
};
|
|
536
|
+
export const aaveV4RatioTrigger = {
|
|
537
|
+
encode(owner, spoke, ratioPercentage, ratioState) {
|
|
538
|
+
const ratioWei = ratioPercentageToWei(ratioPercentage);
|
|
539
|
+
return [AbiCoder.encodeParameters(['address', 'address', 'uint256', 'uint8'], [owner, spoke, ratioWei, ratioState])];
|
|
540
|
+
},
|
|
541
|
+
decode(triggerData) {
|
|
542
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'address', 'uint256', 'uint8'], triggerData[0]);
|
|
543
|
+
return {
|
|
544
|
+
owner: decodedData[0],
|
|
545
|
+
spoke: decodedData[1],
|
|
546
|
+
ratio: weiToRatioPercentage(decodedData[2]),
|
|
547
|
+
ratioState: Number(decodedData[3]),
|
|
548
|
+
};
|
|
549
|
+
},
|
|
550
|
+
};
|
|
551
|
+
export const aaveV4QuotePriceTrigger = {
|
|
552
|
+
encode(spoke, baseTokenId, quoteTokenId, price, ratioState) {
|
|
553
|
+
// Price is intentionally scaled to 1e18 for higher precision.
|
|
554
|
+
const _price = new Dec(price).mul(1e18).floor().toString();
|
|
555
|
+
return [AbiCoder.encodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint8'], [spoke, baseTokenId, quoteTokenId, _price, ratioState])];
|
|
556
|
+
},
|
|
557
|
+
decode(triggerData) {
|
|
558
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint8'], triggerData[0]);
|
|
559
|
+
return {
|
|
560
|
+
spoke: decodedData[0],
|
|
561
|
+
baseTokenId: Number(decodedData[1]),
|
|
562
|
+
quoteTokenId: Number(decodedData[2]),
|
|
563
|
+
price: new Dec(decodedData[3]).div(1e18).toString(),
|
|
564
|
+
ratioState: Number(decodedData[4]),
|
|
565
|
+
};
|
|
566
|
+
},
|
|
567
|
+
};
|
|
568
|
+
export const aaveV4QuotePriceRangeTrigger = {
|
|
569
|
+
encode(spoke, baseTokenId, quoteTokenId, lowerPrice, upperPrice) {
|
|
570
|
+
// Price is intentionally scaled to 1e18 for higher precision.
|
|
571
|
+
const lowerPriceFormatted = new Dec(lowerPrice).mul(1e18).floor().toString();
|
|
572
|
+
const upperPriceFormatted = new Dec(upperPrice).mul(1e18).floor().toString();
|
|
573
|
+
return [
|
|
574
|
+
AbiCoder.encodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint256'], [spoke, baseTokenId, quoteTokenId, lowerPriceFormatted, upperPriceFormatted]),
|
|
575
|
+
];
|
|
576
|
+
},
|
|
577
|
+
decode(triggerData) {
|
|
578
|
+
const decodedData = AbiCoder.decodeParameters(['address', 'uint256', 'uint256', 'uint256', 'uint256'], triggerData[0]);
|
|
579
|
+
return {
|
|
580
|
+
spoke: decodedData[0],
|
|
581
|
+
baseTokenId: Number(decodedData[1]),
|
|
582
|
+
quoteTokenId: Number(decodedData[2]),
|
|
583
|
+
lowerPrice: new Dec(decodedData[3]).div(1e18).toString(),
|
|
584
|
+
upperPrice: new Dec(decodedData[4]).div(1e18).toString(),
|
|
585
|
+
};
|
|
586
|
+
},
|
|
587
|
+
};
|