@defisaver/automation-sdk 2.1.2 → 2.1.4
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 +4 -0
- package/esm/automation/private/StrategiesAutomation.js +3 -1
- package/esm/constants/index.js +20 -0
- package/esm/services/strategiesService.js +40 -1
- package/esm/services/strategySubService.d.ts +6 -0
- package/esm/services/strategySubService.js +16 -1
- package/esm/services/strategySubService.test.js +91 -1
- package/esm/services/subDataService.d.ts +14 -1
- package/esm/services/subDataService.js +39 -1
- package/esm/services/subDataService.test.js +204 -108
- package/esm/services/triggerService.d.ts +9 -0
- package/esm/services/triggerService.js +16 -1
- package/esm/services/triggerService.test.js +36 -0
- package/esm/types/enums.d.ts +8 -3
- package/esm/types/enums.js +5 -0
- package/esm/types/index.d.ts +5 -1
- package/package.json +2 -2
- package/src/automation/private/StrategiesAutomation.ts +4 -0
- package/src/constants/index.ts +20 -0
- package/src/services/strategiesService.ts +46 -1
- package/src/services/strategySubService.test.ts +99 -1
- package/src/services/strategySubService.ts +35 -0
- package/src/services/subDataService.test.ts +225 -112
- package/src/services/subDataService.ts +58 -0
- package/src/services/triggerService.test.ts +37 -0
- package/src/services/triggerService.ts +24 -0
- package/src/types/enums.ts +5 -0
- package/src/types/index.ts +6 -1
- package/umd/index.js +145 -2
- package/.yarn/releases/yarn-1.22.1.cjs +0 -147386
- package/.yarnrc.yml +0 -3
package/.env
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
RPC_1=https://mainnet.infura.io/v3/a3503e4501d040cd9ea2c913c68983a1
|
|
2
|
+
RPC_10=https://opt-mainnet.g.alchemy.com/v2/Pwh-hdbsP7Bf0CP_UMw4_Pw-NfHhSpIA
|
|
3
|
+
RPC_8453=https://base-mainnet.g.alchemy.com/v2/TERsAaPNcA7sgCVHHAMBvd95UtT4wCEf
|
|
4
|
+
RPC_42161=https://arb-mainnet.g.alchemy.com/v2/Pwh-hdbsP7Bf0CP_UMw4_Pw-NfHhSpIA
|
|
@@ -127,7 +127,9 @@ class StrategiesAutomation extends Automation_1.default {
|
|
|
127
127
|
&& s.strategy.strategyId === current.strategy.strategyId
|
|
128
128
|
&& s.protocol.id === current.protocol.id
|
|
129
129
|
&& (s.protocol.id !== enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO // reflexer needs to get added if we have it
|
|
130
|
-
|| s.strategyData.decoded.subData.vaultId === current.strategyData.decoded.triggerData.vaultId)
|
|
130
|
+
|| s.strategyData.decoded.subData.vaultId === current.strategyData.decoded.triggerData.vaultId)
|
|
131
|
+
&& (s.protocol.id !== enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD // merge only crvUSD leverage management for the same market
|
|
132
|
+
|| s.strategyData.decoded.subData.controller.toLowerCase() === current.strategyData.decoded.triggerData.controller.toLowerCase())));
|
|
131
133
|
if (mergePairIndex !== -1) {
|
|
132
134
|
const mergePair = copyList[mergePairIndex];
|
|
133
135
|
if ((0, utils_1.isDefined)(mergePair)) {
|
package/esm/constants/index.js
CHANGED
|
@@ -273,6 +273,16 @@ exports.MAINNET_BUNDLES_INFO = {
|
|
|
273
273
|
strategyId: enums_1.Strategies.Identifiers.Boost,
|
|
274
274
|
protocol: exports.PROTOCOLS.CompoundV2,
|
|
275
275
|
},
|
|
276
|
+
[enums_1.Bundles.MainnetIds.CRVUSD_REPAY]: {
|
|
277
|
+
strategyOrBundleId: enums_1.Bundles.MainnetIds.CRVUSD_REPAY,
|
|
278
|
+
strategyId: enums_1.Strategies.Identifiers.Repay,
|
|
279
|
+
protocol: exports.PROTOCOLS.CrvUSD,
|
|
280
|
+
},
|
|
281
|
+
[enums_1.Bundles.MainnetIds.CRVUSD_BOOST]: {
|
|
282
|
+
strategyOrBundleId: enums_1.Bundles.MainnetIds.CRVUSD_BOOST,
|
|
283
|
+
strategyId: enums_1.Strategies.Identifiers.Boost,
|
|
284
|
+
protocol: exports.PROTOCOLS.CrvUSD,
|
|
285
|
+
},
|
|
276
286
|
};
|
|
277
287
|
exports.OPTIMISM_BUNDLES_INFO = {
|
|
278
288
|
[enums_1.Bundles.OptimismIds.AAVE_V3_REPAY]: {
|
|
@@ -317,6 +327,16 @@ exports.ARBITRUM_BUNDLES_INFO = {
|
|
|
317
327
|
strategyId: enums_1.Strategies.Identifiers.CloseToCollateral,
|
|
318
328
|
protocol: exports.PROTOCOLS.AaveV3,
|
|
319
329
|
},
|
|
330
|
+
[enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_BUNDLE]: {
|
|
331
|
+
strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_BOOST_BUNDLE,
|
|
332
|
+
strategyId: enums_1.Strategies.Identifiers.Boost,
|
|
333
|
+
protocol: exports.PROTOCOLS.CompoundV3,
|
|
334
|
+
},
|
|
335
|
+
[enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_BUNDLE]: {
|
|
336
|
+
strategyOrBundleId: enums_1.Bundles.ArbitrumIds.COMP_V3_SW_REPAY_BUNDLE,
|
|
337
|
+
strategyId: enums_1.Strategies.Identifiers.Repay,
|
|
338
|
+
protocol: exports.PROTOCOLS.CompoundV3,
|
|
339
|
+
},
|
|
320
340
|
};
|
|
321
341
|
exports.BUNDLES_INFO = {
|
|
322
342
|
[enums_1.ChainId.Ethereum]: exports.MAINNET_BUNDLES_INFO,
|
|
@@ -321,8 +321,11 @@ function parseCompoundV3LeverageManagement(position, parseData) {
|
|
|
321
321
|
const _position = (0, lodash_1.cloneDeep)(position);
|
|
322
322
|
const { subStruct, subId } = parseData.subscriptionEventData;
|
|
323
323
|
const { isEnabled } = parseData.strategiesSubsData;
|
|
324
|
+
const subDataDecoder = position.chainId !== 1
|
|
325
|
+
? subDataService.compoundV3L2LeverageManagementSubData
|
|
326
|
+
: subDataService.compoundV3LeverageManagementSubData;
|
|
324
327
|
const triggerData = triggerService.compoundV3RatioTrigger.decode(subStruct.triggerData);
|
|
325
|
-
const subData =
|
|
328
|
+
const subData = subDataDecoder.decode(subStruct.subData);
|
|
326
329
|
_position.strategyData.decoded.triggerData = triggerData;
|
|
327
330
|
_position.strategyData.decoded.subData = subData;
|
|
328
331
|
_position.owner = triggerData.owner.toLowerCase();
|
|
@@ -501,6 +504,38 @@ function parseLiquityDebtInFrontRepay(position, parseData) {
|
|
|
501
504
|
};
|
|
502
505
|
return _position;
|
|
503
506
|
}
|
|
507
|
+
function parseCrvUSDLeverageManagement(position, parseData) {
|
|
508
|
+
const _position = (0, lodash_1.cloneDeep)(position);
|
|
509
|
+
const { subStruct, subId, subHash } = parseData.subscriptionEventData;
|
|
510
|
+
const { isEnabled } = parseData.strategiesSubsData;
|
|
511
|
+
const triggerData = triggerService.crvUSDRatioTrigger.decode(subStruct.triggerData);
|
|
512
|
+
const subData = subDataService.crvUSDLeverageManagementSubData.decode(subStruct.subData);
|
|
513
|
+
_position.strategyData.decoded.triggerData = triggerData;
|
|
514
|
+
_position.strategyData.decoded.subData = subData;
|
|
515
|
+
const isRepay = _position.strategy.strategyId === enums_1.Strategies.Identifiers.Repay;
|
|
516
|
+
if (isRepay) {
|
|
517
|
+
_position.specific = {
|
|
518
|
+
triggerRepayRatio: triggerData.ratio,
|
|
519
|
+
targetRepayRatio: subData.targetRatio,
|
|
520
|
+
repayEnabled: isEnabled,
|
|
521
|
+
subId1: Number(subId),
|
|
522
|
+
subHashRepay: subHash,
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
_position.specific = {
|
|
527
|
+
triggerBoostRatio: triggerData.ratio,
|
|
528
|
+
targetBoostRatio: subData.targetRatio,
|
|
529
|
+
boostEnabled: isEnabled,
|
|
530
|
+
subId2: Number(subId),
|
|
531
|
+
subHashBoost: subHash,
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
_position.positionId = (0, utils_1.getPositionId)(_position.chainId, _position.protocol.id, _position.owner, triggerData.controller);
|
|
535
|
+
_position.strategy.strategyId = enums_1.Strategies.IdOverrides.LeverageManagement;
|
|
536
|
+
_position.specific.mergeWithSameId = true;
|
|
537
|
+
return _position;
|
|
538
|
+
}
|
|
504
539
|
const parsingMethodsMapping = {
|
|
505
540
|
[enums_1.ProtocolIdentifiers.StrategiesAutomation.MakerDAO]: {
|
|
506
541
|
[enums_1.Strategies.Identifiers.SavingsLiqProtection]: parseMakerSavingsLiqProtection,
|
|
@@ -560,6 +595,10 @@ const parsingMethodsMapping = {
|
|
|
560
595
|
[enums_1.Strategies.Identifiers.CloseToDebt]: parseSparkCloseOnPrice,
|
|
561
596
|
[enums_1.Strategies.Identifiers.CloseToCollateral]: parseSparkCloseOnPrice,
|
|
562
597
|
},
|
|
598
|
+
[enums_1.ProtocolIdentifiers.StrategiesAutomation.CrvUSD]: {
|
|
599
|
+
[enums_1.Strategies.Identifiers.Repay]: parseCrvUSDLeverageManagement,
|
|
600
|
+
[enums_1.Strategies.Identifiers.Boost]: parseCrvUSDLeverageManagement,
|
|
601
|
+
},
|
|
563
602
|
};
|
|
564
603
|
function getParsingMethod(id, strategy) {
|
|
565
604
|
return parsingMethodsMapping[id][strategy.strategyId];
|
|
@@ -54,6 +54,9 @@ export declare const compoundV2Encode: {
|
|
|
54
54
|
export declare const compoundV3Encode: {
|
|
55
55
|
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean, isEOA: boolean): string[];
|
|
56
56
|
};
|
|
57
|
+
export declare const compoundV3L2Encode: {
|
|
58
|
+
leverageManagement(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
59
|
+
};
|
|
57
60
|
export declare const morphoAaveV2Encode: {
|
|
58
61
|
leverageManagement(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
59
62
|
};
|
|
@@ -75,3 +78,6 @@ export declare const sparkEncode: {
|
|
|
75
78
|
debtAssetId: number;
|
|
76
79
|
}): (number | boolean | string[])[];
|
|
77
80
|
};
|
|
81
|
+
export declare const crvUSDEncode: {
|
|
82
|
+
leverageManagement(owner: EthereumAddress, controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, triggerRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress): (boolean | string[] | Bundles.MainnetIds)[];
|
|
83
|
+
};
|
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
|
|
29
|
+
exports.crvUSDEncode = exports.sparkEncode = exports.exchangeEncode = exports.morphoAaveV2Encode = exports.compoundV3L2Encode = exports.compoundV3Encode = exports.compoundV2Encode = exports.aaveV3Encode = exports.aaveV2Encode = exports.chickenBondsEncode = exports.liquityEncode = exports.makerEncode = void 0;
|
|
30
30
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
31
31
|
const tokens_1 = require("@defisaver/tokens");
|
|
32
32
|
const enums_1 = require("../types/enums");
|
|
@@ -179,6 +179,11 @@ exports.compoundV3Encode = {
|
|
|
179
179
|
return subDataService.compoundV3LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled, isEOA);
|
|
180
180
|
},
|
|
181
181
|
};
|
|
182
|
+
exports.compoundV3L2Encode = {
|
|
183
|
+
leverageManagement(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
184
|
+
return subDataService.compoundV3L2LeverageManagementSubData.encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
185
|
+
},
|
|
186
|
+
};
|
|
182
187
|
exports.morphoAaveV2Encode = {
|
|
183
188
|
leverageManagement(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
184
189
|
return subDataService.morphoAaveV2LeverageManagementSubData.encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled);
|
|
@@ -218,3 +223,13 @@ exports.sparkEncode = {
|
|
|
218
223
|
return [strategyOrBundleId, isBundle, triggerDataEncoded, subDataEncoded];
|
|
219
224
|
},
|
|
220
225
|
};
|
|
226
|
+
exports.crvUSDEncode = {
|
|
227
|
+
leverageManagement(owner, controllerAddr, ratioState, targetRatio, triggerRatio, collTokenAddr, crvUSDAddr) {
|
|
228
|
+
const subData = subDataService.crvUSDLeverageManagementSubData.encode(controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr);
|
|
229
|
+
const triggerData = triggerService.crvUSDRatioTrigger.encode(owner, controllerAddr, triggerRatio, ratioState);
|
|
230
|
+
// over is boost, under is repay
|
|
231
|
+
const strategyOrBundleId = ratioState === enums_1.RatioState.OVER ? enums_1.Bundles.MainnetIds.CRVUSD_BOOST : enums_1.Bundles.MainnetIds.CRVUSD_REPAY;
|
|
232
|
+
const isBundle = true;
|
|
233
|
+
return [strategyOrBundleId, isBundle, triggerData, subData];
|
|
234
|
+
},
|
|
235
|
+
};
|
|
@@ -293,7 +293,7 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
293
293
|
describe('rebond()', () => {
|
|
294
294
|
const examples = [
|
|
295
295
|
[
|
|
296
|
-
[
|
|
296
|
+
['0x00000000000000000000000000000000000000000000000000000000000005e3'],
|
|
297
297
|
[1507]
|
|
298
298
|
]
|
|
299
299
|
];
|
|
@@ -689,4 +689,94 @@ describe('Feature: strategySubService.ts', () => {
|
|
|
689
689
|
});
|
|
690
690
|
});
|
|
691
691
|
});
|
|
692
|
+
describe('When testing strategySubService.crvUSDEncode', () => {
|
|
693
|
+
describe('leverageManagement()', () => {
|
|
694
|
+
const examples = [
|
|
695
|
+
[
|
|
696
|
+
[
|
|
697
|
+
enums_1.Bundles.MainnetIds.CRVUSD_REPAY,
|
|
698
|
+
true,
|
|
699
|
+
[
|
|
700
|
+
'0x0000000000000000000000001031d218133afab8c2b819b1366c7e434ad91e9c000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635000000000000000000000000000000000000000000000000136dcc951d8c00000000000000000000000000000000000000000000000000000000000000000001',
|
|
701
|
+
],
|
|
702
|
+
[
|
|
703
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
704
|
+
'0x0000000000000000000000000000000000000000000000000000000000000001',
|
|
705
|
+
'0x0000000000000000000000000000000000000000000000001a5e27eef13e0000',
|
|
706
|
+
'0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
707
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
708
|
+
],
|
|
709
|
+
],
|
|
710
|
+
[
|
|
711
|
+
web3Utils.toChecksumAddress('0x1031d218133AFaB8c2B819B1366c7E434Ad91E9c'),
|
|
712
|
+
web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'),
|
|
713
|
+
enums_1.RatioState.UNDER,
|
|
714
|
+
190,
|
|
715
|
+
140,
|
|
716
|
+
'0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
717
|
+
'0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E',
|
|
718
|
+
]
|
|
719
|
+
],
|
|
720
|
+
[
|
|
721
|
+
[
|
|
722
|
+
enums_1.Bundles.MainnetIds.CRVUSD_BOOST,
|
|
723
|
+
true,
|
|
724
|
+
[
|
|
725
|
+
'0x0000000000000000000000000043d218133afab8f2b829b106633e434ad94e2c000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d42196350000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000'
|
|
726
|
+
],
|
|
727
|
+
[
|
|
728
|
+
'0x000000000000000000000000a920de414ea4ab66b97da1bfe9e6eca7d4219635',
|
|
729
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
730
|
+
'0x00000000000000000000000000000000000000000000000016345785d8a00000',
|
|
731
|
+
'0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
732
|
+
'0x000000000000000000000000f939e0a03fb07f59a73314e73794be0e57ac1b4e',
|
|
733
|
+
],
|
|
734
|
+
],
|
|
735
|
+
[
|
|
736
|
+
web3Utils.toChecksumAddress('0x0043d218133AFaB8F2B829B106633E434Ad94E2c'),
|
|
737
|
+
web3Utils.toChecksumAddress('0xa920de414ea4ab66b97da1bfe9e6eca7d4219635'),
|
|
738
|
+
enums_1.RatioState.OVER,
|
|
739
|
+
160,
|
|
740
|
+
200,
|
|
741
|
+
'0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
742
|
+
'0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E',
|
|
743
|
+
]
|
|
744
|
+
],
|
|
745
|
+
];
|
|
746
|
+
examples.forEach(([expected, actual]) => {
|
|
747
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
748
|
+
(0, chai_1.expect)(strategySubService_1.crvUSDEncode.leverageManagement(...actual)).to.eql(expected);
|
|
749
|
+
});
|
|
750
|
+
});
|
|
751
|
+
});
|
|
752
|
+
});
|
|
753
|
+
describe('When testing strategySubService.compoundV3L2Encode', () => {
|
|
754
|
+
describe('leverageManagement()', () => {
|
|
755
|
+
const examples = [
|
|
756
|
+
[
|
|
757
|
+
'0x0313D212133AFab8F2b829B1066c7e43caD94e2c0213D212133AfaB8F2b829B1066C7E43cAD94E2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000001a5e27eef13e000001',
|
|
758
|
+
[
|
|
759
|
+
web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
|
|
760
|
+
web3Utils.toChecksumAddress('0x0213d212133AFaB8F2B829B1066c7E43cAd94E2c'),
|
|
761
|
+
160, 220, 180, 190,
|
|
762
|
+
true
|
|
763
|
+
],
|
|
764
|
+
],
|
|
765
|
+
[
|
|
766
|
+
'0x0313D212133AFab8F2b829B1066c7e43caD94e2c0413d212133afAb8F2B829b1066C7e43cAd94e2c000000000000000016345785d8a0000000000000000000001e87f85809dc0000000000000000000018fae27693b4000000000000000000000f43fc2c04ee000000',
|
|
767
|
+
[
|
|
768
|
+
web3Utils.toChecksumAddress('0x0313d212133AFaB8F2B829B1066c7E43cAd94E2c'),
|
|
769
|
+
web3Utils.toChecksumAddress('0x0413d212133AFaB8F2B829B1066c7E43cAd94E2c'),
|
|
770
|
+
160, 220, 180, 110,
|
|
771
|
+
false
|
|
772
|
+
],
|
|
773
|
+
],
|
|
774
|
+
];
|
|
775
|
+
examples.forEach(([expected, actual]) => {
|
|
776
|
+
it(`Given ${actual} should return expected value: ${JSON.stringify(expected)}`, () => {
|
|
777
|
+
(0, chai_1.expect)(strategySubService_1.compoundV3L2Encode.leverageManagement(...actual)).to.eql(expected);
|
|
778
|
+
});
|
|
779
|
+
});
|
|
780
|
+
});
|
|
781
|
+
});
|
|
692
782
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EthereumAddress } from '../types';
|
|
2
2
|
import type { OrderType } from '../types/enums';
|
|
3
|
-
import { ChainId } from '../types/enums';
|
|
3
|
+
import { ChainId, RatioState } from '../types/enums';
|
|
4
4
|
export declare const makerRepayFromSavingsSubData: {
|
|
5
5
|
encode(vaultId: number, targetRatioPercentage: number, chainId: ChainId, daiAddr?: EthereumAddress, mcdCdpManagerAddr?: EthereumAddress): string[];
|
|
6
6
|
decode(subData: string[]): {
|
|
@@ -72,6 +72,12 @@ export declare const compoundV3LeverageManagementSubData: {
|
|
|
72
72
|
targetRatio: number;
|
|
73
73
|
};
|
|
74
74
|
};
|
|
75
|
+
export declare const compoundV3L2LeverageManagementSubData: {
|
|
76
|
+
encode(market: EthereumAddress, baseToken: EthereumAddress, triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string;
|
|
77
|
+
decode(subData: string[]): {
|
|
78
|
+
targetRatio: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
75
81
|
export declare const morphoAaveV2LeverageManagementSubData: {
|
|
76
82
|
encode(triggerRepayRatio: number, triggerBoostRatio: number, targetBoostRatio: number, targetRepayRatio: number, boostEnabled: boolean): string[];
|
|
77
83
|
decode(subData: string[]): {
|
|
@@ -145,3 +151,10 @@ export declare const liquityDebtInFrontRepaySubData: {
|
|
|
145
151
|
targetRatioIncrease: number;
|
|
146
152
|
};
|
|
147
153
|
};
|
|
154
|
+
export declare const crvUSDLeverageManagementSubData: {
|
|
155
|
+
encode: (controllerAddr: EthereumAddress, ratioState: RatioState, targetRatio: number, collTokenAddr: EthereumAddress, crvUSDAddr: EthereumAddress) => string[];
|
|
156
|
+
decode: (subData: string[]) => {
|
|
157
|
+
controller: string;
|
|
158
|
+
targetRatio: number;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
|
|
6
|
+
exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
|
|
7
7
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
8
|
const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
|
|
9
9
|
const tokens_1 = require("@defisaver/tokens");
|
|
@@ -180,6 +180,28 @@ exports.compoundV3LeverageManagementSubData = {
|
|
|
180
180
|
return { targetRatio };
|
|
181
181
|
},
|
|
182
182
|
};
|
|
183
|
+
exports.compoundV3L2LeverageManagementSubData = {
|
|
184
|
+
encode(market, baseToken, triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
185
|
+
let subInput = '0x';
|
|
186
|
+
subInput = subInput.concat(market.slice(2).padStart(32, '0'));
|
|
187
|
+
subInput = subInput.concat(baseToken.slice(2).padStart(32, '0'));
|
|
188
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerRepayRatio).mul(1e16).toHex().slice(2)
|
|
189
|
+
.padStart(32, '0'));
|
|
190
|
+
subInput = subInput.concat(new decimal_js_1.default(triggerBoostRatio).mul(1e16).toHex().slice(2)
|
|
191
|
+
.padStart(32, '0'));
|
|
192
|
+
subInput = subInput.concat(new decimal_js_1.default(targetBoostRatio).mul(1e16).toHex().slice(2)
|
|
193
|
+
.padStart(32, '0'));
|
|
194
|
+
subInput = subInput.concat(new decimal_js_1.default(targetRepayRatio).mul(1e16).toHex().slice(2)
|
|
195
|
+
.padStart(32, '0'));
|
|
196
|
+
subInput = subInput.concat(boostEnabled ? '01' : '00');
|
|
197
|
+
return subInput;
|
|
198
|
+
},
|
|
199
|
+
decode(subData) {
|
|
200
|
+
const ratioWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[3]);
|
|
201
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(ratioWei);
|
|
202
|
+
return { targetRatio };
|
|
203
|
+
},
|
|
204
|
+
};
|
|
183
205
|
exports.morphoAaveV2LeverageManagementSubData = {
|
|
184
206
|
encode(triggerRepayRatio, triggerBoostRatio, targetBoostRatio, targetRepayRatio, boostEnabled) {
|
|
185
207
|
return [
|
|
@@ -340,3 +362,19 @@ exports.liquityDebtInFrontRepaySubData = {
|
|
|
340
362
|
return { targetRatioIncrease };
|
|
341
363
|
},
|
|
342
364
|
};
|
|
365
|
+
exports.crvUSDLeverageManagementSubData = {
|
|
366
|
+
encode: (controllerAddr, ratioState, targetRatio, collTokenAddr, crvUSDAddr) => {
|
|
367
|
+
const controllerAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', controllerAddr);
|
|
368
|
+
const ratioStateEncoded = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
|
|
369
|
+
const targetRatioEncoded = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
|
|
370
|
+
const collTokenAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', collTokenAddr);
|
|
371
|
+
const crvUSDAddrEncoded = web3_eth_abi_1.default.encodeParameter('address', crvUSDAddr);
|
|
372
|
+
return [controllerAddrEncoded, ratioStateEncoded, targetRatioEncoded, collTokenAddrEncoded, crvUSDAddrEncoded];
|
|
373
|
+
},
|
|
374
|
+
decode: (subData) => {
|
|
375
|
+
const controller = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
|
|
376
|
+
const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[2]);
|
|
377
|
+
const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
|
|
378
|
+
return { controller, targetRatio };
|
|
379
|
+
},
|
|
380
|
+
};
|