@defisaver/automation-sdk 2.0.6 → 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.
Files changed (48) hide show
  1. package/.env.dev +5 -0
  2. package/.tests.sh +3 -0
  3. package/README.md +3 -1
  4. package/esm/automation/private/LegacyProtocol.test.d.ts +1 -0
  5. package/esm/automation/private/LegacyProtocol.test.js +25 -0
  6. package/esm/automation/private/Protocol.test.d.ts +1 -0
  7. package/esm/automation/private/Protocol.test.js +25 -0
  8. package/esm/constants/index.js +5 -0
  9. package/esm/services/contractService.d.ts +3 -2
  10. package/esm/services/contractService.js +7 -1
  11. package/esm/services/ethereumService.test.d.ts +1 -0
  12. package/esm/services/ethereumService.test.js +241 -0
  13. package/esm/services/strategiesService.js +14 -0
  14. package/esm/services/strategiesService.test.d.ts +1 -0
  15. package/esm/services/strategiesService.test.js +108 -0
  16. package/esm/services/strategySubService.d.ts +5 -3
  17. package/esm/services/strategySubService.js +10 -6
  18. package/esm/services/strategySubService.test.d.ts +1 -0
  19. package/esm/services/strategySubService.test.js +692 -0
  20. package/esm/services/subDataService.d.ts +8 -1
  21. package/esm/services/subDataService.js +23 -14
  22. package/esm/services/subDataService.test.d.ts +1 -0
  23. package/esm/services/subDataService.test.js +993 -0
  24. package/esm/services/triggerService.d.ts +7 -0
  25. package/esm/services/triggerService.js +14 -1
  26. package/esm/services/triggerService.test.js +119 -17
  27. package/esm/types/enums.d.ts +4 -2
  28. package/esm/types/enums.js +2 -0
  29. package/esm/types/index.d.ts +8 -2
  30. package/package.json +3 -3
  31. package/src/automation/private/LegacyProtocol.test.ts +24 -0
  32. package/src/automation/private/Protocol.test.ts +24 -0
  33. package/src/constants/index.ts +5 -0
  34. package/src/services/contractService.ts +17 -4
  35. package/src/services/ethereumService.test.ts +256 -0
  36. package/src/services/ethereumService.ts +2 -1
  37. package/src/services/strategiesService.test.ts +103 -0
  38. package/src/services/strategiesService.ts +27 -3
  39. package/src/services/strategySubService.test.ts +835 -0
  40. package/src/services/strategySubService.ts +28 -15
  41. package/src/services/subDataService.test.ts +1063 -0
  42. package/src/services/subDataService.ts +29 -14
  43. package/src/services/triggerService.test.ts +131 -19
  44. package/src/services/triggerService.ts +14 -0
  45. package/src/services/utils.test.ts +1 -1
  46. package/src/types/enums.ts +2 -0
  47. package/src/types/index.ts +14 -3
  48. package/umd/index.js +148 -74
@@ -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
  };
@@ -328,18 +346,13 @@ export const exchangeEncode = {
328
346
  amount: string,
329
347
  timestamp: number,
330
348
  interval: number,
331
- network: number,
349
+ network: ChainId,
332
350
  ) {
333
351
  requireAddresses([fromToken, toToken]);
334
352
  const subData = subDataService.exchangeDcaSubData.encode(fromToken, toToken, amount, interval);
335
353
  const triggerData = triggerService.exchangeTimestampTrigger.encode(timestamp, interval);
336
- const selectedNetwork = network === 1
337
- ? 'MainnetIds'
338
- : network === 10
339
- ? 'OptimismIds'
340
- : 'ArbitrumIds';
341
354
 
342
- const strategyId = Strategies[selectedNetwork].EXCHANGE_DCA;
355
+ const strategyId = STRATEGY_IDS[network].EXCHANGE_DCA;
343
356
 
344
357
  return [strategyId, false, triggerData, subData];
345
358
  },
@@ -348,8 +361,8 @@ export const exchangeEncode = {
348
361
  toToken: EthereumAddress,
349
362
  amount: string,
350
363
  targetPrice: string,
351
- goodUntil: string,
352
- orderType: number,
364
+ goodUntil: string | number,
365
+ orderType: OrderType,
353
366
  ) {
354
367
  return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
355
368
  },