@defisaver/automation-sdk 3.3.14 → 3.3.15

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.
@@ -3,9 +3,9 @@ import Dec from 'decimal.js';
3
3
  import { otherAddresses } from '@defisaver/sdk';
4
4
  import { getAssetInfo, MAXUINT } from '@defisaver/tokens';
5
5
  import * as web3Utils from 'web3-utils';
6
- import { Bundles, ChainId, CloseToAssetType, OrderType, RatioState, Strategies } from '../types/enums';
6
+ import { Bundles, ChainId, CloseToAssetType, RatioState, Strategies } from '../types/enums';
7
7
  import '../configuration';
8
- import { aaveV2Encode, chickenBondsEncode, liquityEncode, makerEncode, aaveV3Encode, compoundV2Encode, compoundV3Encode, morphoAaveV2Encode, exchangeEncode, crvUSDEncode, compoundV3L2Encode, morphoBlueEncode, sparkEncode, aaveV4Encode, } from './strategySubService';
8
+ import { chickenBondsEncode, liquityEncode, makerEncode, aaveV3Encode, compoundV3Encode, morphoAaveV2Encode, exchangeEncode, crvUSDEncode, morphoBlueEncode, sparkEncode, aaveV4Encode, } from './strategySubService';
9
9
  describe('Feature: strategySubService.ts', () => {
10
10
  describe('When testing strategySubService.makerEncode', () => {
11
11
  // @ts-ignore // TODO - this requires change in @defisaver/tokens
@@ -96,28 +96,6 @@ describe('Feature: strategySubService.ts', () => {
96
96
  });
97
97
  });
98
98
  });
99
- describe('leverageManagement()', () => {
100
- const examples = [
101
- [
102
- [
103
- 5791,
104
- new Dec('210').mul(1e16).toString(),
105
- new Dec('290').mul(1e16).toString(),
106
- new Dec('240').mul(1e16).toString(),
107
- new Dec('240').mul(1e16).toString(),
108
- true,
109
- ],
110
- [
111
- 5791, '210', '290', '240', '240', true,
112
- ]
113
- ]
114
- ];
115
- examples.forEach(([expected, actual]) => {
116
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
117
- expect(makerEncode.leverageManagement(...actual)).to.eql(expected);
118
- });
119
- });
120
- });
121
99
  describe('leverageManagementWithoutSubProxy()', () => {
122
100
  const examples = [
123
101
  // Repay scenario (isBoost=false, RatioState.UNDER)
@@ -217,27 +195,6 @@ describe('Feature: strategySubService.ts', () => {
217
195
  });
218
196
  });
219
197
  });
220
- describe('leverageManagement()', () => {
221
- const examples = [
222
- [
223
- [
224
- new Dec('210').mul(1e16).toString(),
225
- new Dec('290').mul(1e16).toString(),
226
- new Dec('240').mul(1e16).toString(),
227
- new Dec('240').mul(1e16).toString(),
228
- false,
229
- ],
230
- [
231
- '210', '290', '240', '240', false,
232
- ]
233
- ]
234
- ];
235
- examples.forEach(([expected, actual]) => {
236
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
237
- expect(liquityEncode.leverageManagement(...actual)).to.eql(expected);
238
- });
239
- });
240
- });
241
198
  describe('paybackFromChickenBondStrategySub()', () => {
242
199
  const examples = [
243
200
  [
@@ -324,43 +281,7 @@ describe('Feature: strategySubService.ts', () => {
324
281
  });
325
282
  });
326
283
  });
327
- describe('When testing strategySubService.aaveV2Encode', () => {
328
- describe('leverageManagement()', () => {
329
- const examples = [
330
- [
331
- [new Dec(160).mul(1e16).toString(), new Dec(220).mul(1e16).toString(), new Dec(180).mul(1e16).toString(), new Dec(190).mul(1e16).toString(), true],
332
- [160, 220, 180, 190, true]
333
- ],
334
- [
335
- [new Dec(160).mul(1e16).toString(), new Dec(200).mul(1e16).toString(), new Dec(180).mul(1e16).toString(), new Dec(190).mul(1e16).toString(), false],
336
- [160, 200, 180, 190, false]
337
- ],
338
- ];
339
- examples.forEach(([expected, actual]) => {
340
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
341
- expect(aaveV2Encode.leverageManagement(...actual)).to.eql(expected);
342
- });
343
- });
344
- });
345
- });
346
284
  describe('When testing strategySubService.aaveV3Encode', () => {
347
- describe('leverageManagement()', () => {
348
- const examples = [
349
- [
350
- '0x000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e000001',
351
- [160, 220, 180, 190, true]
352
- ],
353
- [
354
- '0x000000000000000016345785d8a0000000000000000000001bc16d674ec80000000000000000000018fae27693b4000000000000000000001a5e27eef13e000000',
355
- [160, 200, 180, 190, false]
356
- ],
357
- ];
358
- examples.forEach(([expected, actual]) => {
359
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
360
- expect(aaveV3Encode.leverageManagement(...actual)).to.eql(expected);
361
- });
362
- });
363
- });
364
285
  describe('closeToAsset()', () => {
365
286
  const examples = [
366
287
  [
@@ -927,69 +848,7 @@ describe('Feature: strategySubService.ts', () => {
927
848
  });
928
849
  });
929
850
  });
930
- describe('When testing strategySubService.compoundV2Encode', () => {
931
- describe('leverageManagement()', () => {
932
- const examples = [
933
- [
934
- [new Dec(160).mul(1e16).toString(), new Dec(220).mul(1e16).toString(), new Dec(180).mul(1e16).toString(), new Dec(190).mul(1e16).toString(), true],
935
- [160, 220, 180, 190, true]
936
- ],
937
- [
938
- [new Dec(160).mul(1e16).toString(), new Dec(200).mul(1e16).toString(), new Dec(180).mul(1e16).toString(), new Dec(190).mul(1e16).toString(), false],
939
- [160, 200, 180, 190, false]
940
- ],
941
- ];
942
- examples.forEach(([expected, actual]) => {
943
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
944
- expect(compoundV2Encode.leverageManagement(...actual)).to.eql(expected);
945
- });
946
- });
947
- });
948
- });
949
851
  describe('When testing strategySubService.compoundV3Encode', () => {
950
- describe('leverageManagement()', () => {
951
- const examples = [
952
- [
953
- [
954
- web3Utils.toChecksumAddress('0x1C0F620155e85491f8D35440eb17538Ca5c55212'),
955
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
956
- new Dec(160).mul(1e16).toString(),
957
- new Dec(220).mul(1e16).toString(),
958
- new Dec(180).mul(1e16).toString(),
959
- new Dec(190).mul(1e16).toString(),
960
- true, false,
961
- ],
962
- [
963
- web3Utils.toChecksumAddress('0x1C0F620155e85491f8D35440eb17538Ca5c55212'),
964
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
965
- 160, 220, 180, 190,
966
- true, false,
967
- ]
968
- ],
969
- [
970
- [
971
- web3Utils.toChecksumAddress('0xaC0F620155e85491f8D35440eb17538Ca5c55212'),
972
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
973
- new Dec(160).mul(1e16).toString(),
974
- new Dec(210).mul(1e16).toString(),
975
- new Dec(180).mul(1e16).toString(),
976
- new Dec(190).mul(1e16).toString(),
977
- false, true,
978
- ],
979
- [
980
- web3Utils.toChecksumAddress('0xaC0F620155e85491f8D35440eb17538Ca5c55212'),
981
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
982
- 160, 210, 180, 190,
983
- false, true,
984
- ]
985
- ],
986
- ];
987
- examples.forEach(([expected, actual]) => {
988
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
989
- expect(compoundV3Encode.leverageManagement(...actual)).to.eql(expected);
990
- });
991
- });
992
- });
993
852
  describe('leverageManagementOnPrice()', () => {
994
853
  const examples = [
995
854
  [
@@ -1164,51 +1023,6 @@ describe('Feature: strategySubService.ts', () => {
1164
1023
  });
1165
1024
  });
1166
1025
  });
1167
- describe('limitOrder()', () => {
1168
- const examples = [
1169
- [
1170
- [
1171
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
1172
- web3Utils.toChecksumAddress(getAssetInfo('DAI', ChainId.Ethereum).address),
1173
- '2131',
1174
- '0.53123',
1175
- '1696590921159',
1176
- `${OrderType.STOP_LOSS}`
1177
- ],
1178
- [
1179
- web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
1180
- web3Utils.toChecksumAddress(getAssetInfo('DAI', ChainId.Ethereum).address),
1181
- '2131',
1182
- '0.53123',
1183
- 1696590921159,
1184
- OrderType.STOP_LOSS
1185
- ]
1186
- ],
1187
- [
1188
- [
1189
- web3Utils.toChecksumAddress(getAssetInfo('LINK', ChainId.Arbitrum).address),
1190
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Arbitrum).address),
1191
- '2131',
1192
- '0.43123',
1193
- '1646590921159',
1194
- `${OrderType.TAKE_PROFIT}`
1195
- ],
1196
- [
1197
- web3Utils.toChecksumAddress(getAssetInfo('LINK', ChainId.Arbitrum).address),
1198
- web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Arbitrum).address),
1199
- '2131',
1200
- '0.43123',
1201
- 1646590921159,
1202
- OrderType.TAKE_PROFIT
1203
- ]
1204
- ],
1205
- ];
1206
- examples.forEach(([expected, actual]) => {
1207
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1208
- expect(exchangeEncode.limitOrder(...actual)).to.eql(expected);
1209
- });
1210
- });
1211
- });
1212
1026
  });
1213
1027
  describe('When testing strategySubService.crvUSDEncode', () => {
1214
1028
  describe('leverageManagement()', () => {
@@ -1422,55 +1236,7 @@ describe('Feature: strategySubService.ts', () => {
1422
1236
  });
1423
1237
  });
1424
1238
  });
1425
- describe('When testing strategySubService.compoundV3L2Encode', () => {
1426
- describe('leverageManagement()', () => {
1427
- const examples = [
1428
- [
1429
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1430
- [
1431
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1432
- web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1433
- 160, 220, 180, 190,
1434
- true,
1435
- false,
1436
- ],
1437
- ],
1438
- [
1439
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1440
- [
1441
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1442
- web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1443
- 160, 220, 180, 110,
1444
- false,
1445
- false,
1446
- ],
1447
- ],
1448
- ];
1449
- examples.forEach(([expected, actual]) => {
1450
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1451
- expect(compoundV3L2Encode.leverageManagement(...actual)).to.eql(expected);
1452
- });
1453
- });
1454
- });
1455
- });
1456
1239
  describe('When testing strategySubService.sparkEncode', () => {
1457
- describe('leverageManagement()', () => {
1458
- const examples = [
1459
- [
1460
- '0x0000000000000000136dcc951d8c00000000000000000000214e8348c4f0000000000000000000001d24b2dfac52000000000000000000001a5e27eef13e000001',
1461
- [140, 240, 210, 190, true]
1462
- ],
1463
- [
1464
- '0x0000000000000000130337bdce49000000000000000000001988fe4052b800000000000000000000281b57b028e1000000000000000000002223acf76376000000',
1465
- [137, 184, 289, 246, false]
1466
- ]
1467
- ];
1468
- examples.forEach(([expected, actual]) => {
1469
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1470
- expect(sparkEncode.leverageManagement(...actual)).to.eql(expected);
1471
- });
1472
- });
1473
- });
1474
1240
  describe('leverageManagementOnPrice()', () => {
1475
1241
  const examples = [
1476
1242
  [
@@ -89,6 +89,13 @@ export declare const liquityLeverageManagementSubData: {
89
89
  targetRatio: number;
90
90
  };
91
91
  };
92
+ export declare const liquityLeverageManagementSubDataWithoutSubProxy: {
93
+ encode(targetRatio: number, ratioState: RatioState): string[];
94
+ decode(subData: string[]): {
95
+ targetRatio: number;
96
+ ratioState: RatioState;
97
+ };
98
+ };
92
99
  export declare const liquityCloseSubData: {
93
100
  encode(closeToAssetAddr: EthereumAddress, chainId?: ChainId, collAddr?: EthereumAddress, debtAddr?: EthereumAddress): string[];
94
101
  decode(subData: string[]): {
@@ -177,6 +184,14 @@ export declare const aaveV2LeverageManagementSubData: {
177
184
  targetRatio: number;
178
185
  };
179
186
  };
187
+ export declare const aaveV2LeverageManagementSubDataWithoutSubProxy: {
188
+ encode(market: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
189
+ decode(subData: string[]): {
190
+ market: EthereumAddress;
191
+ targetRatio: number;
192
+ ratioState: RatioState;
193
+ };
194
+ };
180
195
  /**
181
196
  ___ ___ ____ ____ _______ ____ ____ ____
182
197
  / \ / \ \ \ / / | ____| \ \ / / |___ \
@@ -320,6 +335,13 @@ export declare const compoundV2LeverageManagementSubData: {
320
335
  targetRatio: number;
321
336
  };
322
337
  };
338
+ export declare const compoundV2LeverageManagementSubDataWithoutSubProxy: {
339
+ encode(targetRatio: number, ratioState: RatioState): string[];
340
+ decode(subData: string[]): {
341
+ targetRatio: number;
342
+ ratioState: RatioState;
343
+ };
344
+ };
323
345
  /**
324
346
  ______ ______ .___ ___. .______ ____ ____ ____
325
347
  / | / __ \ | \/ | | _ \ \ \ / / |___ \
@@ -334,10 +356,13 @@ export declare const compoundV3LeverageManagementSubData: {
334
356
  targetRatio: number;
335
357
  };
336
358
  };
337
- export declare const compoundV3L2LeverageManagementSubData: {
338
- encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string;
359
+ export declare const compoundV3LeverageManagementSubDataWithoutSubProxy: {
360
+ encode(market: EthereumAddress, baseToken: EthereumAddress, targetRatio: number, ratioState: RatioState): string[];
339
361
  decode(subData: string[]): {
362
+ market: EthereumAddress;
363
+ baseToken: EthereumAddress;
340
364
  targetRatio: number;
365
+ ratioState: RatioState;
341
366
  };
342
367
  };
343
368
  export declare const compoundV3LeverageManagementOnPriceSubData: {
@@ -386,6 +411,14 @@ export declare const exchangeLimitOrderSubData: {
386
411
  amount: string;
387
412
  };
388
413
  };
414
+ export declare const exchangeLimitOrderSubDataWithoutSubProxy: {
415
+ encode(fromToken: EthereumAddress, toToken: EthereumAddress, amount: string): string[];
416
+ decode: (subData: string[], chainId: ChainId) => {
417
+ fromToken: string;
418
+ toToken: string;
419
+ amount: string;
420
+ };
421
+ };
389
422
  /**
390
423
  _______..______ ___ .______ __ ___
391
424
  / || _ \ / \ | _ \ | |/ /
@@ -161,6 +161,23 @@ export const liquityLeverageManagementSubData = {
161
161
  return { targetRatio };
162
162
  },
163
163
  };
164
+ export const liquityLeverageManagementSubDataWithoutSubProxy = {
165
+ encode(targetRatio, ratioState) {
166
+ const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
167
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
168
+ const isRepay = ratioState === RatioState.UNDER;
169
+ const collActionType = isRepay ? CollActionType.WITHDRAW : CollActionType.SUPPLY;
170
+ const debtActionType = isRepay ? DebtActionType.PAYBACK : DebtActionType.BORROW;
171
+ const collActionTypeEncoded = AbiCoder.encodeParameter('uint8', collActionType);
172
+ const debtActionTypeEncoded = AbiCoder.encodeParameter('uint8', debtActionType);
173
+ return [encodedRatioState, encodedTargetRatio, collActionTypeEncoded, debtActionTypeEncoded];
174
+ },
175
+ decode(subData) {
176
+ const ratioState = AbiCoder.decodeParameter('uint8', subData[0]);
177
+ const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[1]));
178
+ return { targetRatio, ratioState };
179
+ },
180
+ };
164
181
  export const liquityCloseSubData = {
165
182
  encode(closeToAssetAddr, chainId = ChainId.Ethereum, collAddr, debtAddr) {
166
183
  const _collAddr = collAddr || getAssetInfo('WETH', chainId).address;
@@ -392,6 +409,25 @@ export const aaveV2LeverageManagementSubData = {
392
409
  return { targetRatio };
393
410
  },
394
411
  };
412
+ export const aaveV2LeverageManagementSubDataWithoutSubProxy = {
413
+ encode(market, targetRatio, ratioState) {
414
+ const encodedMarket = AbiCoder.encodeParameter('address', market);
415
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
416
+ const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
417
+ const isBoost = ratioState === RatioState.OVER;
418
+ if (isBoost) {
419
+ const enableAsCollEncoded = AbiCoder.encodeParameter('uint256', 1);
420
+ return [encodedMarket, encodedTargetRatio, encodedRatioState, enableAsCollEncoded];
421
+ }
422
+ return [encodedMarket, encodedTargetRatio, encodedRatioState];
423
+ },
424
+ decode(subData) {
425
+ const market = AbiCoder.decodeParameter('address', subData[0]);
426
+ const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[1]));
427
+ const ratioState = AbiCoder.decodeParameter('uint8', subData[2]);
428
+ return { market, targetRatio, ratioState };
429
+ },
430
+ };
395
431
  /**
396
432
  ___ ___ ____ ____ _______ ____ ____ ____
397
433
  / \ / \ \ \ / / | ____| \ \ / / |___ \
@@ -746,6 +782,23 @@ export const compoundV2LeverageManagementSubData = {
746
782
  return { targetRatio };
747
783
  },
748
784
  };
785
+ export const compoundV2LeverageManagementSubDataWithoutSubProxy = {
786
+ encode(targetRatio, ratioState) {
787
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
788
+ const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
789
+ const isBoost = ratioState === RatioState.OVER;
790
+ if (isBoost) {
791
+ const enableAsCollEncoded = AbiCoder.encodeParameter('uint256', 1);
792
+ return [encodedTargetRatio, encodedRatioState, enableAsCollEncoded];
793
+ }
794
+ return [encodedTargetRatio, encodedRatioState];
795
+ },
796
+ decode(subData) {
797
+ const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[0]));
798
+ const ratioState = AbiCoder.decodeParameter('uint8', subData[1]);
799
+ return { targetRatio, ratioState };
800
+ },
801
+ };
749
802
  /**
750
803
  ______ ______ .___ ___. .______ ____ ____ ____
751
804
  / | / __ \ | \/ | | _ \ \ \ / / |___ \
@@ -773,27 +826,22 @@ export const compoundV3LeverageManagementSubData = {
773
826
  return { targetRatio };
774
827
  },
775
828
  };
776
- export const compoundV3L2LeverageManagementSubData = {
777
- encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
778
- let subInput = '0x';
779
- subInput = subInput.concat(market.slice(2));
780
- subInput = subInput.concat(baseToken.slice(2));
781
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
782
- .padStart(32, '0'));
783
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
784
- .padStart(32, '0'));
785
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
786
- .padStart(32, '0'));
787
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
788
- .padStart(32, '0'));
789
- subInput = subInput.concat(boostEnabled ? '01' : '00');
790
- subInput = subInput.concat(isEOA ? '01' : '00');
791
- return subInput;
829
+ export const compoundV3LeverageManagementSubDataWithoutSubProxy = {
830
+ encode(market, baseToken, targetRatio, ratioState) {
831
+ const encodedMarket = AbiCoder.encodeParameter('address', market);
832
+ const encodedBaseToken = AbiCoder.encodeParameter('address', baseToken);
833
+ const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
834
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
835
+ return [encodedMarket, encodedBaseToken, encodedRatioState, encodedTargetRatio];
792
836
  },
793
837
  decode(subData) {
794
- const ratioWei = AbiCoder.decodeParameter('uint256', subData[3]);
795
- const targetRatio = weiToRatioPercentage(ratioWei);
796
- return { targetRatio };
838
+ const market = AbiCoder.decodeParameter('address', subData[0]);
839
+ const baseToken = AbiCoder.decodeParameter('address', subData[1]);
840
+ const ratioState = AbiCoder.decodeParameter('uint8', subData[2]);
841
+ const targetRatio = weiToRatioPercentage(AbiCoder.decodeParameter('uint256', subData[3]));
842
+ return {
843
+ market, baseToken, targetRatio, ratioState,
844
+ };
797
845
  },
798
846
  };
799
847
  export const compoundV3LeverageManagementOnPriceSubData = {
@@ -899,6 +947,21 @@ export const exchangeLimitOrderSubData = {
899
947
  return { fromToken, toToken, amount };
900
948
  },
901
949
  };
950
+ export const exchangeLimitOrderSubDataWithoutSubProxy = {
951
+ encode(fromToken, toToken, amount) {
952
+ return [
953
+ AbiCoder.encodeParameter('address', fromToken),
954
+ AbiCoder.encodeParameter('address', toToken),
955
+ AbiCoder.encodeParameter('uint256', amount),
956
+ ];
957
+ },
958
+ decode: (subData, chainId) => {
959
+ const fromToken = AbiCoder.decodeParameter('address', subData[0]).toString();
960
+ const toToken = AbiCoder.decodeParameter('address', subData[1]).toString();
961
+ const amount = assetAmountInEth(AbiCoder.decodeParameter('uint256', subData[2]).toString(), getAssetInfoByAddress(fromToken, chainId).symbol);
962
+ return { fromToken, toToken, amount };
963
+ },
964
+ };
902
965
  /**
903
966
  _______..______ ___ .______ __ ___
904
967
  / || _ \ / \ | _ \ | |/ /
@@ -1309,48 +1309,6 @@ describe('Feature: subDataService.ts', () => {
1309
1309
  });
1310
1310
  });
1311
1311
  });
1312
- describe('When testing subDataService.compoundV3L2LeverageManagementSubData', () => {
1313
- describe('encode()', () => {
1314
- const examples = [
1315
- [
1316
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1317
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 190, true, false]
1318
- ],
1319
- [
1320
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1321
- [web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'), web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'), 160, 220, 180, 110, false, false]
1322
- ],
1323
- ];
1324
- examples.forEach(([expected, actual]) => {
1325
- it(`Given ${actual} should return expected value: ${expected}`, () => {
1326
- expect(subDataService.compoundV3L2LeverageManagementSubData.encode(...actual)).to.eql(expected);
1327
- });
1328
- });
1329
- });
1330
- describe('decode()', () => {
1331
- const examples = [
1332
- [
1333
- { targetRatio: 200 },
1334
- [
1335
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000213d212133AFaB8F2B829B1066c7E43cAd94E2c',
1336
- '0x0000000000000000000000000000000000000000000000000000000000000001', '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
1337
- ],
1338
- ],
1339
- [
1340
- { targetRatio: 123 },
1341
- [
1342
- '0x0000000000000000000000000313d212133AFaB8F2B829B1066c7E43cAd94E2c', '0x0000000000000000000000000413d212133AFaB8F2B829B1066c7E43cAd94E2c',
1343
- '0x0000000000000000000000000000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000000000001111d67bb1bb0000',
1344
- ],
1345
- ],
1346
- ];
1347
- examples.forEach(([expected, actual]) => {
1348
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1349
- expect(subDataService.compoundV3L2LeverageManagementSubData.decode(actual)).to.eql(expected);
1350
- });
1351
- });
1352
- });
1353
- });
1354
1312
  describe('When testing subDataService.morphoBlueLeverageManagementSubData', () => {
1355
1313
  describe('encode()', () => {
1356
1314
  const examples = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defisaver/automation-sdk",
3
- "version": "3.3.14",
3
+ "version": "3.3.15",
4
4
  "description": "",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",