@defisaver/automation-sdk 2.0.5 → 2.0.8
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/.env.dev +5 -0
- package/.tests.sh +3 -0
- package/README.md +3 -1
- package/esm/automation/private/LegacyProtocol.test.d.ts +1 -0
- package/esm/automation/private/LegacyProtocol.test.js +25 -0
- package/esm/automation/private/Protocol.test.d.ts +1 -0
- package/esm/automation/private/Protocol.test.js +25 -0
- package/esm/automation/private/StrategiesAutomation.js +1 -1
- package/esm/constants/index.js +15 -0
- package/esm/services/contractService.d.ts +3 -2
- package/esm/services/contractService.js +7 -1
- package/esm/services/ethereumService.test.d.ts +1 -0
- package/esm/services/ethereumService.test.js +241 -0
- package/esm/services/strategiesService.js +40 -0
- package/esm/services/strategiesService.test.d.ts +1 -0
- package/esm/services/strategiesService.test.js +108 -0
- package/esm/services/strategySubService.d.ts +17 -3
- package/esm/services/strategySubService.js +17 -6
- package/esm/services/strategySubService.test.d.ts +1 -0
- package/esm/services/strategySubService.test.js +692 -0
- package/esm/services/subDataService.d.ts +8 -1
- package/esm/services/subDataService.js +23 -14
- package/esm/services/subDataService.test.d.ts +1 -0
- package/esm/services/subDataService.test.js +993 -0
- package/esm/services/triggerService.d.ts +17 -0
- package/esm/services/triggerService.js +42 -1
- package/esm/services/triggerService.test.js +119 -17
- package/esm/types/enums.d.ts +10 -2
- package/esm/types/enums.js +8 -0
- package/esm/types/index.d.ts +19 -2
- package/package.json +3 -3
- package/src/automation/private/LegacyProtocol.test.ts +24 -0
- package/src/automation/private/Protocol.test.ts +24 -0
- package/src/automation/private/StrategiesAutomation.ts +1 -1
- package/src/constants/index.ts +15 -0
- package/src/services/contractService.ts +17 -4
- package/src/services/ethereumService.test.ts +256 -0
- package/src/services/ethereumService.ts +2 -1
- package/src/services/strategiesService.test.ts +103 -0
- package/src/services/strategiesService.ts +66 -3
- package/src/services/strategySubService.test.ts +835 -0
- package/src/services/strategySubService.ts +50 -15
- package/src/services/subDataService.test.ts +1063 -0
- package/src/services/subDataService.ts +29 -14
- package/src/services/triggerService.test.ts +133 -20
- package/src/services/triggerService.ts +55 -0
- package/src/services/utils.test.ts +1 -1
- package/src/types/enums.ts +8 -0
- package/src/types/index.ts +27 -3
- package/umd/index.js +282 -115
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import Dec from 'decimal.js';
|
|
2
2
|
import { getAssetInfo } from '@defisaver/tokens';
|
|
3
3
|
|
|
4
|
+
import type { OrderType } from '../types/enums';
|
|
4
5
|
import {
|
|
5
6
|
Bundles, ChainId, RatioState, Strategies,
|
|
6
7
|
} from '../types/enums';
|
|
7
8
|
import type { EthereumAddress, StrategyOrBundleIds } from '../types';
|
|
8
9
|
|
|
10
|
+
import { STRATEGY_IDS } from '../constants';
|
|
11
|
+
|
|
9
12
|
import * as subDataService from './subDataService';
|
|
10
13
|
import * as triggerService from './triggerService';
|
|
11
14
|
import { compareAddresses, requireAddress, requireAddresses } from './utils';
|
|
@@ -73,12 +76,12 @@ export const makerEncode = {
|
|
|
73
76
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
74
77
|
},
|
|
75
78
|
leverageManagement(
|
|
76
|
-
vaultId:number,
|
|
77
|
-
triggerRepayRatio:string,
|
|
78
|
-
triggerBoostRatio:string,
|
|
79
|
-
targetBoostRatio:string,
|
|
80
|
-
targetRepayRatio:string,
|
|
81
|
-
boostEnabled:boolean,
|
|
79
|
+
vaultId: number,
|
|
80
|
+
triggerRepayRatio: string,
|
|
81
|
+
triggerBoostRatio: string,
|
|
82
|
+
targetBoostRatio: string,
|
|
83
|
+
targetRepayRatio: string,
|
|
84
|
+
boostEnabled: boolean,
|
|
82
85
|
) {
|
|
83
86
|
return [
|
|
84
87
|
vaultId,
|
|
@@ -192,6 +195,21 @@ export const liquityEncode = {
|
|
|
192
195
|
|
|
193
196
|
const isBundle = false;
|
|
194
197
|
|
|
198
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
199
|
+
},
|
|
200
|
+
debtInFrontRepay(
|
|
201
|
+
proxyAddress: EthereumAddress,
|
|
202
|
+
debtInFrontMin: string,
|
|
203
|
+
targetRatioIncrease: number,
|
|
204
|
+
) {
|
|
205
|
+
requireAddress(proxyAddress);
|
|
206
|
+
const subData = subDataService.liquityDebtInFrontRepaySubData.encode(targetRatioIncrease);
|
|
207
|
+
const triggerData = triggerService.liquityDebtInFrontWithLimitTrigger.encode(proxyAddress, debtInFrontMin);
|
|
208
|
+
|
|
209
|
+
const strategyOrBundleId = Strategies.MainnetIds.LIQUITY_DEBT_IN_FRONT_REPAY;
|
|
210
|
+
|
|
211
|
+
const isBundle = false;
|
|
212
|
+
|
|
195
213
|
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
196
214
|
},
|
|
197
215
|
};
|
|
@@ -256,6 +274,28 @@ export const aaveV3Encode = {
|
|
|
256
274
|
} = triggerData;
|
|
257
275
|
const triggerDataEncoded = triggerService.aaveV3QuotePriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState);
|
|
258
276
|
|
|
277
|
+
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
278
|
+
},
|
|
279
|
+
closeToAssetWithMaximumGasPrice(
|
|
280
|
+
strategyOrBundleId: number,
|
|
281
|
+
isBundle: boolean = true,
|
|
282
|
+
triggerData: {
|
|
283
|
+
baseTokenAddress: EthereumAddress, quoteTokenAddress: EthereumAddress, price: number, ratioState: RatioState, maximumGasPrice: number
|
|
284
|
+
},
|
|
285
|
+
subData: {
|
|
286
|
+
collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number,
|
|
287
|
+
},
|
|
288
|
+
) {
|
|
289
|
+
const {
|
|
290
|
+
collAsset, collAssetId, debtAsset, debtAssetId,
|
|
291
|
+
} = subData;
|
|
292
|
+
const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
|
|
293
|
+
|
|
294
|
+
const {
|
|
295
|
+
baseTokenAddress, quoteTokenAddress, price, maximumGasPrice, ratioState,
|
|
296
|
+
} = triggerData;
|
|
297
|
+
const triggerDataEncoded = triggerService.aaveV3QuotePriceWithMaximumGasPriceTrigger.encode(baseTokenAddress, quoteTokenAddress, price, ratioState, maximumGasPrice);
|
|
298
|
+
|
|
259
299
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
260
300
|
},
|
|
261
301
|
};
|
|
@@ -306,18 +346,13 @@ export const exchangeEncode = {
|
|
|
306
346
|
amount: string,
|
|
307
347
|
timestamp: number,
|
|
308
348
|
interval: number,
|
|
309
|
-
network:
|
|
349
|
+
network: ChainId,
|
|
310
350
|
) {
|
|
311
351
|
requireAddresses([fromToken, toToken]);
|
|
312
352
|
const subData = subDataService.exchangeDcaSubData.encode(fromToken, toToken, amount, interval);
|
|
313
353
|
const triggerData = triggerService.exchangeTimestampTrigger.encode(timestamp, interval);
|
|
314
|
-
const selectedNetwork = network === 1
|
|
315
|
-
? 'MainnetIds'
|
|
316
|
-
: network === 10
|
|
317
|
-
? 'OptimismIds'
|
|
318
|
-
: 'ArbitrumIds';
|
|
319
354
|
|
|
320
|
-
const strategyId =
|
|
355
|
+
const strategyId = STRATEGY_IDS[network].EXCHANGE_DCA;
|
|
321
356
|
|
|
322
357
|
return [strategyId, false, triggerData, subData];
|
|
323
358
|
},
|
|
@@ -326,8 +361,8 @@ export const exchangeEncode = {
|
|
|
326
361
|
toToken: EthereumAddress,
|
|
327
362
|
amount: string,
|
|
328
363
|
targetPrice: string,
|
|
329
|
-
goodUntil: string,
|
|
330
|
-
orderType:
|
|
364
|
+
goodUntil: string | number,
|
|
365
|
+
orderType: OrderType,
|
|
331
366
|
) {
|
|
332
367
|
return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
|
|
333
368
|
},
|