@defisaver/automation-sdk 3.3.14 → 3.3.15-dev-13011-morpho-repay-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.
@@ -1,4 +1,3 @@
1
- import Dec from 'decimal.js';
2
1
  import { getAssetInfo } from '@defisaver/tokens';
3
2
  import { CloseToAssetType, Bundles, ChainId, RatioState, Strategies, } from '../types/enums';
4
3
  import { STRATEGY_IDS } from '../constants';
@@ -31,16 +30,6 @@ export const makerEncode = {
31
30
  const isBundle = false;
32
31
  return [strategyOrBundleId, isBundle, triggerData, subData];
33
32
  },
34
- leverageManagement(vaultId, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
35
- return [
36
- vaultId,
37
- new Dec(triggerRepayRatio).mul(1e16).toString(),
38
- new Dec(triggerBoostRatio).mul(1e16).toString(),
39
- new Dec(targetBoostRatio).mul(1e16).toString(),
40
- new Dec(targetRepayRatio).mul(1e16).toString(),
41
- boostEnabled,
42
- ];
43
- },
44
33
  leverageManagementWithoutSubProxy(vaultId, triggerRatio, targetRatio, ratioState, isBoost, daiAddr) {
45
34
  const bundleId = isBoost ? Bundles.MainnetIds.MAKER_BOOST : Bundles.MainnetIds.MAKER_REPAY;
46
35
  const triggerData = triggerService.makerRatioTrigger.encode(vaultId, triggerRatio, ratioState);
@@ -78,14 +67,11 @@ export const liquityEncode = {
78
67
  const isBundle = true;
79
68
  return [strategyId, isBundle, triggerData, subData];
80
69
  },
81
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
82
- return [
83
- new Dec(triggerRepayRatio).mul(1e16).toString(),
84
- new Dec(triggerBoostRatio).mul(1e16).toString(),
85
- new Dec(targetBoostRatio).mul(1e16).toString(),
86
- new Dec(targetRepayRatio).mul(1e16).toString(),
87
- boostEnabled,
88
- ];
70
+ leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
71
+ const isBundle = true;
72
+ const subData = subDataService.liquityLeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
73
+ const triggerData = triggerService.liquityRatioTrigger.encode(user, triggerRatio, ratioState);
74
+ return [strategyOrBundleId, isBundle, triggerData, subData];
89
75
  },
90
76
  dsrPayback(proxyAddress, triggerRatio, targetRatio) {
91
77
  requireAddress(proxyAddress);
@@ -118,24 +104,14 @@ export const chickenBondsEncode = {
118
104
  },
119
105
  };
120
106
  export const aaveV2Encode = {
121
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
122
- return subDataService.aaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
107
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, user, ratioState, targetRatio, triggerRatio) {
108
+ const isBundle = true;
109
+ const subData = subDataService.aaveV2LeverageManagementSubDataWithoutSubProxy.encode(market, targetRatio, ratioState);
110
+ const triggerData = triggerService.aaveV2RatioTrigger.encode(user, market, triggerRatio, ratioState);
111
+ return [strategyOrBundleId, isBundle, triggerData, subData];
123
112
  },
124
113
  };
125
114
  export const aaveV3Encode = {
126
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
127
- let subInput = '0x';
128
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
129
- .padStart(32, '0'));
130
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
131
- .padStart(32, '0'));
132
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
133
- .padStart(32, '0'));
134
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
135
- .padStart(32, '0'));
136
- subInput = subInput.concat(boostEnabled ? '01' : '00');
137
- return subInput;
138
- },
139
115
  closeToAsset(strategyOrBundleId, isBundle = true, triggerData, subData) {
140
116
  const { collAsset, collAssetId, debtAsset, debtAssetId, } = subData;
141
117
  const subDataEncoded = subDataService.aaveV3QuotePriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId);
@@ -184,13 +160,19 @@ export const aaveV3Encode = {
184
160
  },
185
161
  };
186
162
  export const compoundV2Encode = {
187
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
188
- return subDataService.compoundV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
163
+ leverageManagementWithoutSubProxy(strategyOrBundleId, user, ratioState, targetRatio, triggerRatio) {
164
+ const isBundle = true;
165
+ const subData = subDataService.compoundV2LeverageManagementSubDataWithoutSubProxy.encode(targetRatio, ratioState);
166
+ const triggerData = triggerService.compoundV2RatioTrigger.encode(user, triggerRatio, ratioState);
167
+ return [strategyOrBundleId, isBundle, triggerData, subData];
189
168
  },
190
169
  };
191
170
  export const compoundV3Encode = {
192
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA) {
193
- return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
171
+ leverageManagementWithoutSubProxy(strategyOrBundleId, market, baseToken, user, ratioState, targetRatio, triggerRatio) {
172
+ const isBundle = true;
173
+ const subData = subDataService.compoundV3LeverageManagementSubDataWithoutSubProxy.encode(market, baseToken, targetRatio, ratioState);
174
+ const triggerData = triggerService.compoundV3RatioTrigger.encode(user, market, triggerRatio, ratioState);
175
+ return [strategyOrBundleId, isBundle, triggerData, subData];
194
176
  },
195
177
  leverageManagementOnPrice(strategyOrBundleId, market, collToken, baseToken, targetRatio, price, priceState, ratioState, // REPAY for repay on price, BOOST for boost on price
196
178
  user) {
@@ -207,11 +189,6 @@ export const compoundV3Encode = {
207
189
  return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
208
190
  },
209
191
  };
210
- export const compoundV3L2Encode = {
211
- leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA = false) {
212
- return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
213
- },
214
- };
215
192
  export const morphoAaveV2Encode = {
216
193
  leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
217
194
  return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
@@ -225,24 +202,15 @@ export const exchangeEncode = {
225
202
  const strategyId = STRATEGY_IDS[network].EXCHANGE_DCA;
226
203
  return [strategyId, false, triggerData, subData];
227
204
  },
228
- limitOrder(fromToken, toToken, amount, targetPrice, goodUntil, orderType) {
229
- return subDataService.exchangeLimitOrderSubData.encode(fromToken, toToken, amount, targetPrice, goodUntil, orderType);
205
+ limitOrderWithoutSubProxy(fromToken, toToken, amount, targetPrice, goodUntil, orderType, fromTokenDecimals, toTokenDecimals, network) {
206
+ requireAddresses([fromToken, toToken]);
207
+ const subData = subDataService.exchangeLimitOrderSubDataWithoutSubProxy.encode(fromToken, toToken, amount);
208
+ const triggerData = triggerService.exchangeOffchainPriceTrigger.encode(targetPrice, Number(goodUntil), orderType, fromTokenDecimals, toTokenDecimals);
209
+ const strategyId = STRATEGY_IDS[network].EXCHANGE_LIMIT_ORDER;
210
+ return [strategyId, false, triggerData, subData];
230
211
  },
231
212
  };
232
213
  export const sparkEncode = {
233
- leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
234
- let subInput = '0x';
235
- subInput = subInput.concat(new Dec(triggerRepayRatio).mul(1e16).toHex().slice(2)
236
- .padStart(32, '0'));
237
- subInput = subInput.concat(new Dec(triggerBoostRatio).mul(1e16).toHex().slice(2)
238
- .padStart(32, '0'));
239
- subInput = subInput.concat(new Dec(targetBoostRatio).mul(1e16).toHex().slice(2)
240
- .padStart(32, '0'));
241
- subInput = subInput.concat(new Dec(targetRepayRatio).mul(1e16).toHex().slice(2)
242
- .padStart(32, '0'));
243
- subInput = subInput.concat(boostEnabled ? '01' : '00');
244
- return subInput;
245
- },
246
214
  leverageManagementOnPrice(strategyOrBundleId, isBundle = true, triggerData, subData) {
247
215
  const { collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, } = subData;
248
216
  const subDataEncoded = subDataService.sparkLeverageManagementOnPriceSubData.encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio);
@@ -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()', () => {
@@ -1383,94 +1197,113 @@ describe('Feature: strategySubService.ts', () => {
1383
1197
  });
1384
1198
  });
1385
1199
  });
1386
- describe('closeOnPrice()', () => {
1200
+ describe('leverageManagementOnPrice()', () => {
1387
1201
  const examples = [
1388
1202
  [
1389
1203
  [
1390
- Bundles.MainnetIds.MORPHO_BLUE_CLOSE,
1204
+ Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
1391
1205
  true,
1392
- ['0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
1206
+ ['0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000003a352944000000000000000000000000000000000000000000000000000000000000000001'],
1393
1207
  [
1394
1208
  '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
1395
1209
  '0x0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0',
1396
1210
  '0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc',
1397
1211
  '0x0000000000000000000000000000000000000000000000000000000000000000',
1398
1212
  '0x0000000000000000000000000000000000000000000000000d1d507e40be8000',
1213
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
1399
1214
  '0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c',
1400
- '0x0000000000000000000000000000000000000000000000000000000000000005',
1401
1215
  ],
1402
1216
  ],
1403
1217
  [
1404
- Bundles.MainnetIds.MORPHO_BLUE_CLOSE,
1218
+ Bundles.MainnetIds.MORPHO_BLUE_REPAY_ON_PRICE,
1219
+ true,
1405
1220
  web3Utils.toChecksumAddress('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
1406
1221
  web3Utils.toChecksumAddress('0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'),
1407
1222
  web3Utils.toChecksumAddress('0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC'),
1408
1223
  web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
1409
1224
  '945000000000000000',
1410
1225
  web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
1411
- 1500,
1412
- CloseToAssetType.DEBT,
1226
+ 200,
1227
+ 2500,
1228
+ RatioState.UNDER,
1229
+ ],
1230
+ ],
1231
+ [
1232
+ [
1233
+ Bundles.MainnetIds.MORPHO_BLUE_BOOST_ON_PRICE,
1234
+ true,
1235
+ ['0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000005d21dba0000000000000000000000000000000000000000000000000000000000000000000'],
1236
+ [
1237
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
1238
+ '0x0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0',
1239
+ '0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc',
1240
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1241
+ '0x0000000000000000000000000000000000000000000000000d1d507e40be8000',
1242
+ '0x00000000000000000000000000000000000000000000000016345785d8a00000',
1243
+ '0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c',
1244
+ ],
1245
+ ],
1246
+ [
1247
+ Bundles.MainnetIds.MORPHO_BLUE_BOOST_ON_PRICE,
1248
+ true,
1249
+ web3Utils.toChecksumAddress('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
1250
+ web3Utils.toChecksumAddress('0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'),
1251
+ web3Utils.toChecksumAddress('0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC'),
1252
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
1253
+ '945000000000000000',
1254
+ web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
1255
+ 160,
1413
1256
  4000,
1414
- CloseToAssetType.COLLATERAL
1415
- ]
1257
+ RatioState.OVER,
1258
+ ],
1416
1259
  ],
1417
1260
  ];
1418
1261
  examples.forEach(([expected, actual]) => {
1419
1262
  it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1420
- expect(morphoBlueEncode.closeOnPrice(...actual)).to.eql(expected);
1263
+ expect(morphoBlueEncode.leverageManagementOnPrice(...actual)).to.eql(expected);
1421
1264
  });
1422
1265
  });
1423
1266
  });
1424
- });
1425
- describe('When testing strategySubService.compoundV3L2Encode', () => {
1426
- describe('leverageManagement()', () => {
1267
+ describe('closeOnPrice()', () => {
1427
1268
  const examples = [
1428
1269
  [
1429
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e00000100',
1430
1270
  [
1431
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1432
- web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1433
- 160, 220, 180, 190,
1271
+ Bundles.MainnetIds.MORPHO_BLUE_CLOSE,
1434
1272
  true,
1435
- false,
1273
+ ['0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
1274
+ [
1275
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
1276
+ '0x0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0',
1277
+ '0x000000000000000000000000870ac11d48b15db9a138cf899d20f13f79ba00bc',
1278
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1279
+ '0x0000000000000000000000000000000000000000000000000d1d507e40be8000',
1280
+ '0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c',
1281
+ '0x0000000000000000000000000000000000000000000000000000000000000005',
1282
+ ],
1436
1283
  ],
1437
- ],
1438
- [
1439
- '0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee00000000',
1440
1284
  [
1441
- web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1442
- web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'),
1443
- 160, 220, 180, 110,
1444
- false,
1445
- false,
1446
- ],
1285
+ Bundles.MainnetIds.MORPHO_BLUE_CLOSE,
1286
+ web3Utils.toChecksumAddress('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
1287
+ web3Utils.toChecksumAddress('0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0'),
1288
+ web3Utils.toChecksumAddress('0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC'),
1289
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
1290
+ '945000000000000000',
1291
+ web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
1292
+ 1500,
1293
+ CloseToAssetType.DEBT,
1294
+ 4000,
1295
+ CloseToAssetType.COLLATERAL
1296
+ ]
1447
1297
  ],
1448
1298
  ];
1449
1299
  examples.forEach(([expected, actual]) => {
1450
- it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
1451
- expect(compoundV3L2Encode.leverageManagement(...actual)).to.eql(expected);
1300
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1301
+ expect(morphoBlueEncode.closeOnPrice(...actual)).to.eql(expected);
1452
1302
  });
1453
1303
  });
1454
1304
  });
1455
1305
  });
1456
1306
  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
1307
  describe('leverageManagementOnPrice()', () => {
1475
1308
  const examples = [
1476
1309
  [
@@ -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
  / || _ \ / \ | _ \ | |/ /